diff --git a/docs/reference/gtk/getting_started.xml.in b/docs/reference/gtk/getting_started.xml.in index 7d56f54395..758b4f0d9d 100644 --- a/docs/reference/gtk/getting_started.xml.in +++ b/docs/reference/gtk/getting_started.xml.in @@ -415,9 +415,8 @@ In this step, we use a GtkBuilder template to associate a GtkBuilder ui file with our application window class. - Our simple ui file puts a GtkHeaderBar on top of a GtkStack - widget. The header bar contains a GtkStackSwitcher, which is a - standalone widget to show a row of 'tabs' for the pages of a GtkStack. + Our simple ui file gives the window a title, and puts a GtkStack + widget as the main content. @@ -572,11 +571,14 @@ example_app_window_open (ExampleAppWindow *win, (full source) - Note that we did not have to touch the stack switcher - at all. It gets all its information from the stack that it - belongs to. Here, we are passing the label to show for each - file as the last argument to the gtk_stack_add_titled() - function. + Lastly, we add a GtkStackSwitcher to the titlebar area + in the ui file, and we tell it to display information about our + stack. + + The stack switcher gets all its information it needs to + display tabs from the stack that it belongs to. Here, we are + passing the label to show for each file as the last argument to + the gtk_stack_add_titled() function. Our application is beginning to take shape: @@ -590,25 +592,25 @@ example_app_window_open (ExampleAppWindow *win,
- An application menu + A menu - An application menu is shown by GNOME shell at the top of the - screen. It is meant to collect infrequently used actions that affect + The menu is shown at the right side of the headerbar. + It is meant to collect infrequently used actions that affect the whole application. - Just like the window template, we specify our application menu + Just like the window template, we specify our menu in a ui file, and add it as a resource to our binary. - MISSING XINCLUDE CONTENT + MISSING XINCLUDE CONTENT - To associate the app menu with the application, we have to call - gtk_application_set_app_menu(). Since app menus work by activating - GActions, we also have to add a suitable set of actions to our - application. + To make the menu appear, we have to load the ui file and + associate the resulting menu model with the menu button that we've + added to the headerbar. Since menus work by activating GActions, + we also have to add a suitable set of actions to our application. - Both of these tasks are best done in the startup() vfunc, + Adding the actions is best done in the startup() vfunc, which is guaranteed to be called once for each primary application instance: @@ -651,11 +653,6 @@ example_app_startup (GApplication *app) gtk_application_set_accels_for_action (GTK_APPLICATION (app), "app.quit", quit_accels); - - builder = gtk_builder_new_from_resource ("/org/gtk/exampleapp/app-menu.ui"); - app_menu = G_MENU_MODEL (gtk_builder_get_object (builder, "appmenu")); - gtk_application_set_app_menu (GTK_APPLICATION (app), app_menu); - g_object_unref (builder); } static void @@ -799,7 +796,7 @@ preferences_activated (GSimpleAction *action, Adding a search bar We continue to flesh out the functionality of our application. - For now, we add search. GTK supports this with #GtkSearchEntry and + For now, we add search. GTK supports this with GtkSearchEntry and GtkSearchBar. The search bar is a widget that can slide in from the top to present a search entry. @@ -1005,35 +1002,6 @@ example_app_window_init (ExampleAppWindow *win)
-
- Header bar - - Our application already uses a GtkHeaderBar, but so far it - still gets a 'normal' window titlebar on top of that. This is a - bit redundant, and we will now tell GTK to use the header bar - as replacement for the titlebar. To do so, we move it around to - be a direct child of the window, and set its type to be titlebar. - - - MISSING XINCLUDE CONTENT - - - A small extra bonus of using a header bar is that we get - a fallback application menu for free. Here is how the - application now looks, if this fallback is used. - - - - - - - - - - If we set up the window icon for our window, the menu button - will use that instead of the generic placeholder icon you see - here. -
diff --git a/docs/reference/gtk/images/getting-started-app1.png b/docs/reference/gtk/images/getting-started-app1.png index bf33a44ad3..a382510bbd 100644 Binary files a/docs/reference/gtk/images/getting-started-app1.png and b/docs/reference/gtk/images/getting-started-app1.png differ diff --git a/docs/reference/gtk/images/getting-started-app2.png b/docs/reference/gtk/images/getting-started-app2.png index ca4c0e1e4c..40f71c5e3f 100644 Binary files a/docs/reference/gtk/images/getting-started-app2.png and b/docs/reference/gtk/images/getting-started-app2.png differ diff --git a/docs/reference/gtk/images/getting-started-app3.png b/docs/reference/gtk/images/getting-started-app3.png index 164ae62c80..22b5a3683c 100644 Binary files a/docs/reference/gtk/images/getting-started-app3.png and b/docs/reference/gtk/images/getting-started-app3.png differ diff --git a/docs/reference/gtk/images/getting-started-app4.png b/docs/reference/gtk/images/getting-started-app4.png index 99d05913c2..fcfc05dd78 100644 Binary files a/docs/reference/gtk/images/getting-started-app4.png and b/docs/reference/gtk/images/getting-started-app4.png differ diff --git a/docs/reference/gtk/images/getting-started-app6.png b/docs/reference/gtk/images/getting-started-app6.png index 0e89713af5..cdb20aa949 100644 Binary files a/docs/reference/gtk/images/getting-started-app6.png and b/docs/reference/gtk/images/getting-started-app6.png differ diff --git a/docs/reference/gtk/images/getting-started-app7.png b/docs/reference/gtk/images/getting-started-app7.png index 1490a1b3dc..2e3c375d76 100644 Binary files a/docs/reference/gtk/images/getting-started-app7.png and b/docs/reference/gtk/images/getting-started-app7.png differ diff --git a/docs/reference/gtk/images/getting-started-app8.png b/docs/reference/gtk/images/getting-started-app8.png index 00ff9b5554..b86771102e 100644 Binary files a/docs/reference/gtk/images/getting-started-app8.png and b/docs/reference/gtk/images/getting-started-app8.png differ diff --git a/docs/reference/gtk/images/getting-started-app9.png b/docs/reference/gtk/images/getting-started-app9.png index 472da3e081..3a39c30dbc 100644 Binary files a/docs/reference/gtk/images/getting-started-app9.png and b/docs/reference/gtk/images/getting-started-app9.png differ diff --git a/examples/application1/README b/examples/application1/README index 739ecd967d..d075ef3217 100644 --- a/examples/application1/README +++ b/examples/application1/README @@ -1,3 +1,5 @@ +Step 1: A trivial application + To make gnome-shell use the desktop file and icon for this example while running it uninstalled, do the following: diff --git a/examples/application10/Makefile.example b/examples/application10/Makefile.example deleted file mode 100644 index 4c8396568f..0000000000 --- a/examples/application10/Makefile.example +++ /dev/null @@ -1,35 +0,0 @@ -CC ?= gcc -PKGCONFIG = $(shell which pkg-config) -CFLAGS = $(shell $(PKGCONFIG) --cflags gtk4) -LIBS = $(shell $(PKGCONFIG) --libs gtk4) -GLIB_COMPILE_RESOURCES = $(shell $(PKGCONFIG) --variable=glib_compile_resources gio-2.0) -GLIB_COMPILE_SCHEMAS = $(shell $(PKGCONFIG) --variable=glib_compile_schemas gio-2.0) - -SRC = exampleapp.c exampleappwin.c exampleappprefs.c main.c -BUILT_SRC = resources.c - -OBJS = $(BUILT_SRC:.c=.o) $(SRC:.c=.o) - -all: exampleapp - -org.gtk.exampleapp.gschema.valid: org.gtk.exampleapp.gschema.xml - $(GLIB_COMPILE_SCHEMAS) --strict --dry-run --schema-file=$< && mkdir -p $(@D) && touch $@ - -gschemas.compiled: org.gtk.exampleapp.gschema.valid - $(GLIB_COMPILE_SCHEMAS) . - -resources.c: exampleapp.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=. --generate-dependencies exampleapp.gresource.xml) - $(GLIB_COMPILE_RESOURCES) exampleapp.gresource.xml --target=$@ --sourcedir=. --generate-source - -%.o: %.c - $(CC) -c -o $(@F) $(CFLAGS) $< - -exampleapp: $(OBJS) gschemas.compiled - $(CC) -o $(@F) $(OBJS) $(LIBS) - -clean: - rm -f org.gtk.exampleapp.gschema.valid - rm -f gschemas.compiled - rm -f $(BUILT_SRC) - rm -f $(OBJS) - rm -f exampleapp diff --git a/examples/application10/exampleapp.c b/examples/application10/exampleapp.c deleted file mode 100644 index 64a3ceb100..0000000000 --- a/examples/application10/exampleapp.c +++ /dev/null @@ -1,114 +0,0 @@ -#include - -#include "exampleapp.h" -#include "exampleappwin.h" -#include "exampleappprefs.h" - -struct _ExampleApp -{ - GtkApplication parent; -}; - -G_DEFINE_TYPE(ExampleApp, example_app, GTK_TYPE_APPLICATION); - -static void -example_app_init (ExampleApp *app) -{ -} - -static void -preferences_activated (GSimpleAction *action, - GVariant *parameter, - gpointer app) -{ - ExampleAppPrefs *prefs; - GtkWindow *win; - - win = gtk_application_get_active_window (GTK_APPLICATION (app)); - prefs = example_app_prefs_new (EXAMPLE_APP_WINDOW (win)); - gtk_window_present (GTK_WINDOW (prefs)); -} - -static void -quit_activated (GSimpleAction *action, - GVariant *parameter, - gpointer app) -{ - g_application_quit (G_APPLICATION (app)); -} - -static GActionEntry app_entries[] = -{ - { "preferences", preferences_activated, NULL, NULL, NULL }, - { "quit", quit_activated, NULL, NULL, NULL } -}; - -static void -example_app_startup (GApplication *app) -{ - GtkBuilder *builder; - GMenuModel *app_menu; - const gchar *quit_accels[2] = { "Q", NULL }; - - G_APPLICATION_CLASS (example_app_parent_class)->startup (app); - - g_action_map_add_action_entries (G_ACTION_MAP (app), - app_entries, G_N_ELEMENTS (app_entries), - app); - gtk_application_set_accels_for_action (GTK_APPLICATION (app), - "app.quit", - quit_accels); - - builder = gtk_builder_new_from_resource ("/org/gtk/exampleapp/app-menu.ui"); - app_menu = G_MENU_MODEL (gtk_builder_get_object (builder, "appmenu")); - gtk_application_set_app_menu (GTK_APPLICATION (app), app_menu); - g_object_unref (builder); -} - -static void -example_app_activate (GApplication *app) -{ - ExampleAppWindow *win; - - win = example_app_window_new (EXAMPLE_APP (app)); - gtk_window_present (GTK_WINDOW (win)); -} - -static void -example_app_open (GApplication *app, - GFile **files, - gint n_files, - const gchar *hint) -{ - GList *windows; - ExampleAppWindow *win; - int i; - - windows = gtk_application_get_windows (GTK_APPLICATION (app)); - if (windows) - win = EXAMPLE_APP_WINDOW (windows->data); - else - win = example_app_window_new (EXAMPLE_APP (app)); - - for (i = 0; i < n_files; i++) - example_app_window_open (win, files[i]); - - gtk_window_present (GTK_WINDOW (win)); -} - -static void -example_app_class_init (ExampleAppClass *class) -{ - G_APPLICATION_CLASS (class)->startup = example_app_startup; - G_APPLICATION_CLASS (class)->activate = example_app_activate; - G_APPLICATION_CLASS (class)->open = example_app_open; -} - -ExampleApp * -example_app_new (void) -{ - return g_object_new (EXAMPLE_APP_TYPE, - "application-id", "org.gtk.exampleapp", - "flags", G_APPLICATION_HANDLES_OPEN, - NULL); -} diff --git a/examples/application10/exampleapp.gresource.xml b/examples/application10/exampleapp.gresource.xml deleted file mode 100644 index ace59c8bb7..0000000000 --- a/examples/application10/exampleapp.gresource.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - window.ui - app-menu.ui - gears-menu.ui - prefs.ui - - diff --git a/examples/application10/exampleapp.h b/examples/application10/exampleapp.h deleted file mode 100644 index 51093791a3..0000000000 --- a/examples/application10/exampleapp.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef __EXAMPLEAPP_H -#define __EXAMPLEAPP_H - -#include - - -#define EXAMPLE_APP_TYPE (example_app_get_type ()) -G_DECLARE_FINAL_TYPE (ExampleApp, example_app, EXAMPLE, APP, GtkApplication) - - -ExampleApp *example_app_new (void); - - -#endif /* __EXAMPLEAPP_H */ diff --git a/examples/application10/exampleappprefs.c b/examples/application10/exampleappprefs.c deleted file mode 100644 index 4bdf6542ca..0000000000 --- a/examples/application10/exampleappprefs.c +++ /dev/null @@ -1,59 +0,0 @@ -#include - -#include "exampleapp.h" -#include "exampleappwin.h" -#include "exampleappprefs.h" - -struct _ExampleAppPrefs -{ - GtkDialog parent; - - GSettings *settings; - GtkWidget *font; - GtkWidget *transition; -}; - -G_DEFINE_TYPE (ExampleAppPrefs, example_app_prefs, GTK_TYPE_DIALOG) - -static void -example_app_prefs_init (ExampleAppPrefs *prefs) -{ - gtk_widget_init_template (GTK_WIDGET (prefs)); - prefs->settings = g_settings_new ("org.gtk.exampleapp"); - - g_settings_bind (prefs->settings, "font", - prefs->font, "font", - G_SETTINGS_BIND_DEFAULT); - g_settings_bind (prefs->settings, "transition", - prefs->transition, "active-id", - G_SETTINGS_BIND_DEFAULT); -} - -static void -example_app_prefs_dispose (GObject *object) -{ - ExampleAppPrefs *prefs; - - prefs = EXAMPLE_APP_PREFS (object); - - g_clear_object (&prefs->settings); - - G_OBJECT_CLASS (example_app_prefs_parent_class)->dispose (object); -} - -static void -example_app_prefs_class_init (ExampleAppPrefsClass *class) -{ - G_OBJECT_CLASS (class)->dispose = example_app_prefs_dispose; - - gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (class), - "/org/gtk/exampleapp/prefs.ui"); - gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), ExampleAppPrefs, font); - gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), ExampleAppPrefs, transition); -} - -ExampleAppPrefs * -example_app_prefs_new (ExampleAppWindow *win) -{ - return g_object_new (EXAMPLE_APP_PREFS_TYPE, "transient-for", win, "use-header-bar", TRUE, NULL); -} diff --git a/examples/application10/exampleappprefs.h b/examples/application10/exampleappprefs.h deleted file mode 100644 index 2f08819ffb..0000000000 --- a/examples/application10/exampleappprefs.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef __EXAMPLEAPPPREFS_H -#define __EXAMPLEAPPPREFS_H - -#include -#include "exampleappwin.h" - - -#define EXAMPLE_APP_PREFS_TYPE (example_app_prefs_get_type ()) -G_DECLARE_FINAL_TYPE (ExampleAppPrefs, example_app_prefs, EXAMPLE, APP_PREFS, GtkDialog) - - -ExampleAppPrefs *example_app_prefs_new (ExampleAppWindow *win); - - -#endif /* __EXAMPLEAPPPREFS_H */ diff --git a/examples/application10/exampleappwin.c b/examples/application10/exampleappwin.c deleted file mode 100644 index 16a8658f36..0000000000 --- a/examples/application10/exampleappwin.c +++ /dev/null @@ -1,295 +0,0 @@ -#include - -#include "exampleapp.h" -#include "exampleappwin.h" - -struct _ExampleAppWindow -{ - GtkApplicationWindow parent; - - GSettings *settings; - GtkWidget *stack; - GtkWidget *search; - GtkWidget *searchbar; - GtkWidget *searchentry; - GtkWidget *gears; - GtkWidget *sidebar; - GtkWidget *words; - GtkWidget *lines; - GtkWidget *lines_label; -}; - -G_DEFINE_TYPE (ExampleAppWindow, example_app_window, GTK_TYPE_APPLICATION_WINDOW) - -static void -search_text_changed (GtkEntry *entry, - ExampleAppWindow *win) -{ - const gchar *text; - GtkWidget *tab; - GtkWidget *view; - GtkTextBuffer *buffer; - GtkTextIter start, match_start, match_end; - - text = gtk_editable_get_text (GTK_EDITABLE (entry)); - - if (text[0] == '\0') - return; - - tab = gtk_stack_get_visible_child (GTK_STACK (win->stack)); - view = gtk_scrolled_window_get_child (GTK_SCROLLED_WINDOW (tab)); - buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view)); - - /* Very simple-minded search implementation */ - gtk_text_buffer_get_start_iter (buffer, &start); - if (gtk_text_iter_forward_search (&start, text, GTK_TEXT_SEARCH_CASE_INSENSITIVE, - &match_start, &match_end, NULL)) - { - gtk_text_buffer_select_range (buffer, &match_start, &match_end); - gtk_text_view_scroll_to_iter (GTK_TEXT_VIEW (view), &match_start, - 0.0, FALSE, 0.0, 0.0); - } -} - -static void -find_word (GtkButton *button, - ExampleAppWindow *win) -{ - const gchar *word; - - word = gtk_button_get_label (button); - gtk_editable_set_text (GTK_EDITABLE (win->searchentry), word); -} - -static void -update_words (ExampleAppWindow *win) -{ - GHashTable *strings; - GHashTableIter iter; - GtkWidget *tab, *view, *row; - GtkTextBuffer *buffer; - GtkTextIter start, end; - GList *children, *l; - gchar *word, *key; - - tab = gtk_stack_get_visible_child (GTK_STACK (win->stack)); - - if (tab == NULL) - return; - - view = gtk_scrolled_window_get_child (GTK_SCROLLED_WINDOW (tab)); - buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view)); - - strings = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL); - - gtk_text_buffer_get_start_iter (buffer, &start); - while (!gtk_text_iter_is_end (&start)) - { - while (!gtk_text_iter_starts_word (&start)) - { - if (!gtk_text_iter_forward_char (&start)) - goto done; - } - end = start; - if (!gtk_text_iter_forward_word_end (&end)) - goto done; - word = gtk_text_buffer_get_text (buffer, &start, &end, FALSE); - g_hash_table_add (strings, g_utf8_strdown (word, -1)); - g_free (word); - start = end; - } - -done: - children = gtk_container_get_children (GTK_CONTAINER (win->words)); - for (l = children; l; l = l->next) - gtk_container_remove (GTK_CONTAINER (win->words), GTK_WIDGET (l->data)); - g_list_free (children); - - g_hash_table_iter_init (&iter, strings); - while (g_hash_table_iter_next (&iter, (gpointer *)&key, NULL)) - { - row = gtk_button_new_with_label (key); - g_signal_connect (row, "clicked", - G_CALLBACK (find_word), win); - gtk_container_add (GTK_CONTAINER (win->words), row); - } - - g_hash_table_unref (strings); -} - -static void -update_lines (ExampleAppWindow *win) -{ - GtkWidget *tab, *view; - GtkTextBuffer *buffer; - int count; - gchar *lines; - - tab = gtk_stack_get_visible_child (GTK_STACK (win->stack)); - - if (tab == NULL) - return; - - view = gtk_scrolled_window_get_child (GTK_SCROLLED_WINDOW (tab)); - buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view)); - - count = gtk_text_buffer_get_line_count (buffer); - lines = g_strdup_printf ("%d", count); - gtk_label_set_text (GTK_LABEL (win->lines), lines); - g_free (lines); -} - -static void -visible_child_changed (GObject *stack, - GParamSpec *pspec, - ExampleAppWindow *win) -{ - if (gtk_widget_in_destruction (GTK_WIDGET (stack))) - return; - - gtk_search_bar_set_search_mode (GTK_SEARCH_BAR (win->searchbar), FALSE); - update_words (win); - update_lines (win); -} - -static void -words_changed (GObject *sidebar, - GParamSpec *pspec, - ExampleAppWindow *win) -{ - update_words (win); -} - -static void -example_app_window_init (ExampleAppWindow *win) -{ - GtkBuilder *builder; - GMenuModel *menu; - GAction *action; - - gtk_widget_init_template (GTK_WIDGET (win)); - win->settings = g_settings_new ("org.gtk.exampleapp"); - - g_settings_bind (win->settings, "transition", - win->stack, "transition-type", - G_SETTINGS_BIND_DEFAULT); - - g_settings_bind (win->settings, "show-words", - win->sidebar, "reveal-child", - G_SETTINGS_BIND_DEFAULT); - - g_object_bind_property (win->search, "active", - win->searchbar, "search-mode-enabled", - G_BINDING_BIDIRECTIONAL); - - g_signal_connect (win->sidebar, "notify::reveal-child", - G_CALLBACK (words_changed), win); - - builder = gtk_builder_new_from_resource ("/org/gtk/exampleapp/gears-menu.ui"); - menu = G_MENU_MODEL (gtk_builder_get_object (builder, "menu")); - gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (win->gears), menu); - g_object_unref (builder); - - action = g_settings_create_action (win->settings, "show-words"); - g_action_map_add_action (G_ACTION_MAP (win), action); - g_object_unref (action); - - action = (GAction*) g_property_action_new ("show-lines", win->lines, "visible"); - g_action_map_add_action (G_ACTION_MAP (win), action); - g_object_unref (action); - - g_object_bind_property (win->lines, "visible", - win->lines_label, "visible", - G_BINDING_DEFAULT); - - g_object_set (gtk_settings_get_default (), "gtk-shell-shows-app-menu", FALSE, NULL); - gtk_application_window_set_show_menubar (GTK_APPLICATION_WINDOW (win), TRUE); -} - -static void -example_app_window_dispose (GObject *object) -{ - ExampleAppWindow *win; - - win = EXAMPLE_APP_WINDOW (object); - - g_clear_object (&win->settings); - - G_OBJECT_CLASS (example_app_window_parent_class)->dispose (object); -} - -static void -example_app_window_class_init (ExampleAppWindowClass *class) -{ - G_OBJECT_CLASS (class)->dispose = example_app_window_dispose; - - gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (class), - "/org/gtk/exampleapp/window.ui"); - - gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), ExampleAppWindow, stack); - gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), ExampleAppWindow, search); - gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), ExampleAppWindow, searchbar); - gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), ExampleAppWindow, searchentry); - gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), ExampleAppWindow, gears); - gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), ExampleAppWindow, words); - gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), ExampleAppWindow, sidebar); - gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), ExampleAppWindow, lines); - gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), ExampleAppWindow, lines_label); - - gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (class), search_text_changed); - gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (class), visible_child_changed); -} - -ExampleAppWindow * -example_app_window_new (ExampleApp *app) -{ - return g_object_new (EXAMPLE_APP_WINDOW_TYPE, "application", app, NULL); -} - -void -example_app_window_open (ExampleAppWindow *win, - GFile *file) -{ - gchar *basename; - GtkWidget *scrolled, *view; - gchar *contents; - gsize length; - GtkTextBuffer *buffer; - GtkTextTag *tag; - GtkTextIter start_iter, end_iter; - - basename = g_file_get_basename (file); - - scrolled = gtk_scrolled_window_new (NULL, NULL); - gtk_widget_set_hexpand (scrolled, TRUE); - gtk_widget_set_vexpand (scrolled, TRUE); - view = gtk_text_view_new (); - gtk_text_view_set_editable (GTK_TEXT_VIEW (view), FALSE); - gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (view), FALSE); - gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW (scrolled), view); - gtk_stack_add_titled (GTK_STACK (win->stack), scrolled, basename, basename); - - buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view)); - - if (g_file_load_contents (file, NULL, &contents, &length, NULL, NULL)) - { - gtk_text_buffer_set_text (buffer, contents, length); - g_free (contents); - } - - tag = gtk_text_buffer_create_tag (buffer, NULL, NULL); - g_settings_bind (win->settings, "font", - tag, "font", - G_SETTINGS_BIND_DEFAULT); - - gtk_text_buffer_get_start_iter (buffer, &start_iter); - gtk_text_buffer_get_end_iter (buffer, &end_iter); - gtk_text_buffer_apply_tag (buffer, tag, &start_iter, &end_iter); - - g_free (basename); - - gtk_widget_set_sensitive (win->search, TRUE); - - update_words (win); - update_lines (win); -} diff --git a/examples/application10/exampleappwin.h b/examples/application10/exampleappwin.h deleted file mode 100644 index 88de502f88..0000000000 --- a/examples/application10/exampleappwin.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef __EXAMPLEAPPWIN_H -#define __EXAMPLEAPPWIN_H - -#include -#include "exampleapp.h" - - -#define EXAMPLE_APP_WINDOW_TYPE (example_app_window_get_type ()) -G_DECLARE_FINAL_TYPE (ExampleAppWindow, example_app_window, EXAMPLE, APP_WINDOW, GtkApplicationWindow) - -ExampleAppWindow *example_app_window_new (ExampleApp *app); -void example_app_window_open (ExampleAppWindow *win, - GFile *file); - - -#endif /* __EXAMPLEAPPWIN_H */ diff --git a/examples/application10/gears-menu.ui b/examples/application10/gears-menu.ui deleted file mode 100644 index 0b3d15e1be..0000000000 --- a/examples/application10/gears-menu.ui +++ /dev/null @@ -1,14 +0,0 @@ - - -
- - _Words - win.show-words - - - _Lines - win.show-lines - -
-
-
diff --git a/examples/application10/main.c b/examples/application10/main.c deleted file mode 100644 index ad5b022b3f..0000000000 --- a/examples/application10/main.c +++ /dev/null @@ -1,16 +0,0 @@ -#include - -#include "exampleapp.h" - -int -main (int argc, char *argv[]) -{ - /* Since this example is running uninstalled, - * we have to help it find its schema. This - * is *not* necessary in properly installed - * application. - */ - g_setenv ("GSETTINGS_SCHEMA_DIR", ".", FALSE); - - return g_application_run (G_APPLICATION (example_app_new ()), argc, argv); -} diff --git a/examples/application10/meson.build b/examples/application10/meson.build deleted file mode 100644 index ee07654567..0000000000 --- a/examples/application10/meson.build +++ /dev/null @@ -1,14 +0,0 @@ -app10_resources = gnome.compile_resources('exampleapp10 resources', - 'exampleapp.gresource.xml', - source_dir: '.') - -app10_schemas = gnome.compile_schemas() - -executable('exampleapp10', - 'main.c', - 'exampleapp.c', - 'exampleappwin.c', - 'exampleappprefs.c', - app10_resources, - app10_schemas, - dependencies: libgtk_dep) diff --git a/examples/application10/org.gtk.exampleapp.gschema.xml b/examples/application10/org.gtk.exampleapp.gschema.xml deleted file mode 100644 index a6929a859b..0000000000 --- a/examples/application10/org.gtk.exampleapp.gschema.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - 'Monospace 12' - Font - The font to be used for content. - - - - - - - - 'none' - Transition - The transition to use when switching tabs. - - - false - Show words - Whether to show a word list in the sidebar - - - diff --git a/examples/application10/prefs.ui b/examples/application10/prefs.ui deleted file mode 100644 index 9551758c8f..0000000000 --- a/examples/application10/prefs.ui +++ /dev/null @@ -1,67 +0,0 @@ - - - - diff --git a/examples/application10/window.ui b/examples/application10/window.ui deleted file mode 100644 index d3f737fa28..0000000000 --- a/examples/application10/window.ui +++ /dev/null @@ -1,81 +0,0 @@ - - - - diff --git a/examples/application2/README b/examples/application2/README new file mode 100644 index 0000000000..5b0ae68635 --- /dev/null +++ b/examples/application2/README @@ -0,0 +1 @@ +Step 2: Populating the window diff --git a/examples/application2/window.ui b/examples/application2/window.ui index 595df79ef0..5b0eb1d58e 100644 --- a/examples/application2/window.ui +++ b/examples/application2/window.ui @@ -1,3 +1,4 @@ +