diff options
author | Denis Gorodnichev <[email protected]> | 2014-07-24 10:37:41 +0400 |
---|---|---|
committer | infirit <[email protected]> | 2014-11-25 18:06:24 +0100 |
commit | b25395fab6fe9ee38bc0cd359941d0a825d88451 (patch) | |
tree | e7b6720a543a00495fae1dd1423d652056bedb03 /src/tools | |
parent | b8d8e52f0effbf76ff909f88932098d4daf4336e (diff) | |
download | marco-b25395fab6fe9ee38bc0cd359941d0a825d88451.tar.bz2 marco-b25395fab6fe9ee38bc0cd359941d0a825d88451.tar.xz |
merge metacity(gtk3) changes
merge metacity(gtk3) changes
fix warnings
clean up unused variables
replace UNUSED_VARIABLE by G_GNUC_UNUSED
Diffstat (limited to 'src/tools')
-rw-r--r-- | src/tools/marco-mag.c | 4 | ||||
-rw-r--r-- | src/tools/marco-window-demo.c | 452 |
2 files changed, 361 insertions, 95 deletions
diff --git a/src/tools/marco-mag.c b/src/tools/marco-mag.c index a87c9e3a..4b9f16c3 100644 --- a/src/tools/marco-mag.c +++ b/src/tools/marco-mag.c @@ -163,8 +163,8 @@ shutdown_grab (void) #else gdk_keyboard_ungrab (gtk_get_current_event_time ()); gdk_pointer_ungrab (gtk_get_current_event_time ()); - gtk_grab_remove (grab_widget); #endif + gtk_grab_remove (grab_widget); } static void @@ -245,6 +245,7 @@ begin_area_grab (void) GdkDeviceManager *manager; GdkDevice *device; #endif + if (grab_widget == NULL) { grab_widget = gtk_invisible_new (); @@ -267,7 +268,6 @@ begin_area_grab (void) GDK_BUTTON_RELEASE_MASK | GDK_BUTTON_PRESS_MASK | GDK_POINTER_MOTION_MASK, NULL, gtk_get_current_event_time ()) != GDK_GRAB_SUCCESS) - { g_warning ("Failed to grab pointer to do eyedropper"); return; diff --git a/src/tools/marco-window-demo.c b/src/tools/marco-window-demo.c index 8cfaf952..1585b385 100644 --- a/src/tools/marco-window-demo.c +++ b/src/tools/marco-window-demo.c @@ -29,7 +29,14 @@ #define gtk_hbox_new(X, Y) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, Y) #endif +#if GTK_CHECK_VERSION (3, 0, 0) +static void +do_appwindow (GSimpleAction *action, + GVariant *parameter, + gpointer user_data); +#else static GtkWidget* do_appwindow (void); +#endif static gboolean aspect_on; @@ -223,7 +230,11 @@ main (int argc, char **argv) g_error_free (err); } +#if GTK_CHECK_VERSION (3, 0, 0) + do_appwindow (NULL, NULL, NULL); +#else do_appwindow (); +#endif gtk_main (); @@ -289,18 +300,32 @@ response_cb (GtkDialog *dialog, } } +#if GTK_CHECK_VERSION (3, 0, 0) +static void +dialog_cb (GSimpleAction *action, + GVariant *parameter, + gpointer callback_data) +#else static void dialog_cb (gpointer callback_data, guint callback_action, GtkWidget *widget) +#endif { make_dialog (GTK_WIDGET (callback_data), 1); } +#if GTK_CHECK_VERSION (3, 0, 0) +static void +modal_dialog_cb (GSimpleAction *action, + GVariant *parameter, + gpointer callback_data) +#else static void modal_dialog_cb (gpointer callback_data, guint callback_action, GtkWidget *widget) +#endif { GtkWidget *dialog; @@ -317,18 +342,32 @@ modal_dialog_cb (gpointer callback_data, gtk_widget_destroy (dialog); } +#if GTK_CHECK_VERSION (3, 0, 0) +static void +no_parent_dialog_cb (GSimpleAction *action, + GVariant *parameter, + gpointer callback_data) +#else static void no_parent_dialog_cb (gpointer callback_data, guint callback_action, GtkWidget *widget) +#endif { make_dialog (NULL, 1); } +#if GTK_CHECK_VERSION (3, 0, 0) +static void +utility_cb (GSimpleAction *action, + GVariant *parameter, + gpointer callback_data) +#else static void utility_cb (gpointer callback_data, guint callback_action, GtkWidget *widget) +#endif { GtkWidget *window; GtkWidget *vbox; @@ -359,10 +398,17 @@ utility_cb (gpointer callback_data, gtk_widget_show_all (window); } +#if GTK_CHECK_VERSION (3, 0, 0) +static void +toolbar_cb (GSimpleAction *action, + GVariant *parameter, + gpointer callback_data) +#else static void toolbar_cb (gpointer callback_data, guint callback_action, GtkWidget *widget) +#endif { GtkWidget *window; GtkWidget *vbox; @@ -384,10 +430,17 @@ toolbar_cb (gpointer callback_data, gtk_widget_show_all (window); } +#if GTK_CHECK_VERSION (3, 0, 0) +static void +menu_cb (GSimpleAction *action, + GVariant *parameter, + gpointer callback_data) +#else static void menu_cb (gpointer callback_data, guint callback_action, GtkWidget *widget) +#endif { GtkWidget *window; GtkWidget *vbox; @@ -409,10 +462,17 @@ menu_cb (gpointer callback_data, gtk_widget_show_all (window); } +#if GTK_CHECK_VERSION (3, 0, 0) +static void +override_redirect_cb (GSimpleAction *action, + GVariant *parameter, + gpointer callback_data) +#else static void override_redirect_cb (gpointer callback_data, guint callback_action, GtkWidget *widget) +#endif { GtkWidget *window; GtkWidget *vbox; @@ -431,10 +491,17 @@ override_redirect_cb (gpointer callback_data, gtk_widget_show_all (window); } +#if GTK_CHECK_VERSION (3, 0, 0) +static void +border_only_cb (GSimpleAction *action, + GVariant *parameter, + gpointer callback_data) +#else static void border_only_cb (gpointer callback_data, guint callback_action, GtkWidget *widget) +#endif { GtkWidget *window; GtkWidget *vbox; @@ -501,10 +568,17 @@ focus_label (GtkWidget *window) return label; } +#if GTK_CHECK_VERSION (3, 0, 0) +static void +splashscreen_cb (GSimpleAction *action, + GVariant *parameter, + gpointer callback_data) +#else static void splashscreen_cb (gpointer callback_data, guint callback_action, GtkWidget *widget) +#endif { GtkWidget *window; GtkWidget *image; @@ -610,11 +684,37 @@ make_dock (int type) gtk_widget_show_all (window); } +#if GTK_CHECK_VERSION (3, 0, 0) +static void +dock_cb (GSimpleAction *action, + GVariant *parameter, + gpointer callback_data) +#else static void dock_cb (gpointer callback_data, guint callback_action, GtkWidget *widget) +#endif { +#if GTK_CHECK_VERSION (3, 0, 0) + guint callback_action; + const gchar *name; + + g_object_get (G_OBJECT (action), "name", &name, NULL); + + if (!g_strcmp0 (name, "top-dock")) + callback_action = DOCK_TOP; + else if (!g_strcmp0 (name, "bottom-dock")) + callback_action = DOCK_BOTTOM; + else if (!g_strcmp0 (name, "left-dock")) + callback_action = DOCK_LEFT; + else if (!g_strcmp0 (name, "right-dock")) + callback_action = DOCK_RIGHT; + else if (!g_strcmp0 (name, "all-docks")) + callback_action = DOCK_ALL; + else + return; +#endif if (callback_action == DOCK_ALL) { make_dock (DOCK_TOP); @@ -628,33 +728,25 @@ dock_cb (gpointer callback_data, } } -#if GTK_CHECK_VERSION(3, 0, 0) - -static void top_dock_cb() - { make_dock(DOCK_TOP); } - -static void bottom_dock_cb() - { make_dock(DOCK_BOTTOM); } - -static void left_dock_cb() - { make_dock(DOCK_LEFT); } - -static void right_dock_cb() - { make_dock(DOCK_RIGHT); } - -static void all_dock_cb() - { dock_cb(NULL, DOCK_ALL, NULL); } - -#endif - +#if GTK_CHECK_VERSION (3, 0, 0) +static void +desktop_cb (GSimpleAction *action, + GVariant *parameter, + gpointer callback_data) +#else static void desktop_cb (gpointer callback_data, guint callback_action, GtkWidget *widget) +#endif { GtkWidget *window; GtkWidget *label; +#if GTK_CHECK_VERSION (3, 0, 0) + GdkRGBA desktop_color; +#else GdkColor desktop_color; +#endif window = gtk_window_new (GTK_WINDOW_TOPLEVEL); set_gtk_window_type (GTK_WINDOW (window), "_NET_WM_WINDOW_TYPE_DESKTOP"); @@ -663,11 +755,20 @@ desktop_cb (gpointer callback_data, gdk_screen_width (), gdk_screen_height ()); gtk_window_move (GTK_WINDOW (window), 0, 0); +#if GTK_CHECK_VERSION (3, 0, 0) + desktop_color.red = 0.32; + desktop_color.green = 0.46; + desktop_color.blue = 0.65; + desktop_color.alpha = 1.0; + + gtk_widget_override_background_color (window, 0, &desktop_color); +#else desktop_color.red = 0x5144; desktop_color.green = 0x75D6; desktop_color.blue = 0xA699; gtk_widget_modify_bg (window, GTK_STATE_NORMAL, &desktop_color); +#endif label = focus_label (window); @@ -676,62 +777,7 @@ desktop_cb (gpointer callback_data, gtk_widget_show_all (window); } -#if GTK_CHECK_VERSION(3, 0, 0) - -static gchar ui_definition[] = -"<ui>\ - <menubar name=\"MainMenuBar\">\ - <menu name=\"WindowsMenu\">\ - <menuitem name=\"Dialog\" action=\"DialogAction\" />\ - <menuitem name=\"ModalDialog\" action=\"ModalDialogAction\" />\ - <menuitem name=\"ParentlessDialog\" action=\"ParentlessDialogAction\" />\ - <menuitem name=\"Utility\" action=\"UtilityAction\" />\ - <menuitem name=\"Splashscreen\" action=\"SplashscreenAction\" />\ - <menuitem name=\"TopDock\" action=\"TopDockAction\" />\ - <menuitem name=\"BottomDock\" action=\"BottomDockAction\" />\ - <menuitem name=\"LeftDock\" action=\"LeftDockAction\" />\ - <menuitem name=\"RightDock\" action=\"RightDockAction\" />\ - <menuitem name=\"AllDocks\" action=\"AllDocksAction\" />\ - <menuitem name=\"Desktop\" action=\"DesktopAction\" />\ - <menuitem name=\"Menu\" action=\"MenuAction\" />\ - <menuitem name=\"Toolbar\" action=\"ToolbarAction\" />\ - <menuitem name=\"OverrideRedirect\" action=\"OverrideRedirectAction\" />\ - <menuitem name=\"BorderOnly\" action=\"BorderOnlyAction\" />\ - </menu>\ - </menubar>\ -</ui>"; - -static GtkActionEntry entries[] = -{ - /* - struct GtkActionEntry { - const gchar *name; - const gchar *stock_id; - const gchar *label; - const gchar *accelerator; - const gchar *tooltip; - GCallback callback; - }; */ - - {"DialogAction" , NULL , "_Dialog" , "<control>d" , NULL , G_CALLBACK(dialog_cb)} , - {"ModalDialogAction" , NULL , "_Modal dialog" , NULL , NULL , G_CALLBACK(modal_dialog_cb)} , - {"ParentlessDialogAction" , NULL , "_Parentless dialog" , NULL , NULL , G_CALLBACK(no_parent_dialog_cb)} , - {"UtilityAction" , NULL , "_Utility" , "<control>u" , NULL , G_CALLBACK(utility_cb)} , - {"SplashscreenAction" , NULL , "_Splashscreen" , "<control>s" , NULL , G_CALLBACK(splashscreen_cb)} , - {"TopDockAction" , NULL , "_Top dock" , NULL , NULL , G_CALLBACK(top_dock_cb)} , - {"BottomDockAction" , NULL , "_Bottom dock" , NULL , NULL , G_CALLBACK(bottom_dock_cb)} , - {"LeftDockAction" , NULL , "_Left dock" , NULL , NULL , G_CALLBACK(left_dock_cb)} , - {"RightDockAction" , NULL , "_Right dock" , NULL , NULL , G_CALLBACK(right_dock_cb)} , - {"AllDocksAction" , NULL , "_All docks" , NULL , NULL , G_CALLBACK(all_dock_cb)} , - {"DesktopAction" , NULL , "Des_ktop" , NULL , NULL , G_CALLBACK(desktop_cb)} , - {"MenuAction" , NULL , "Me_nu" , NULL , NULL , G_CALLBACK(menu_cb)} , - {"ToolbarAction" , NULL , "Tool_bar" , NULL , NULL , G_CALLBACK(toolbar_cb)} , - {"OverrideRedirectAction" , NULL , "Override Redirect" , NULL , NULL , G_CALLBACK(override_redirect_cb)} , - {"BorderOnly" , NULL , "Border Only" , NULL , NULL , G_CALLBACK(border_only_cb)} , -}; - -#else - +#if !GTK_CHECK_VERSION(3, 0, 0) static GtkItemFactoryEntry menu_items[] = { { "/_Windows", NULL, NULL, 0, "<Branch>" }, @@ -755,16 +801,30 @@ static GtkItemFactoryEntry menu_items[] = #endif +#if GTK_CHECK_VERSION (3, 0, 0) +static void +sleep_cb (GSimpleAction *action, + GVariant *parameter, + gpointer data) +#else static void sleep_cb (GtkWidget *button, gpointer data) +#endif { sleep (1000); } +#if GTK_CHECK_VERSION (3, 0, 0) +static void +toggle_aspect_ratio (GSimpleAction *action, + GVariant *parameter, + gpointer data) +#else static void toggle_aspect_ratio (GtkWidget *button, gpointer data) +#endif { GtkWidget *window; GdkGeometry geom; @@ -782,7 +842,11 @@ toggle_aspect_ratio (GtkWidget *button, aspect_on = !aspect_on; +#if GTK_CHECK_VERSION(3, 0, 0) + window = gtk_widget_get_ancestor (GTK_WIDGET(data), GTK_TYPE_WINDOW); +#else window = gtk_widget_get_ancestor (button, GTK_TYPE_WINDOW); +#endif if (window) gtk_window_set_geometry_hints (GTK_WINDOW (window), GTK_WIDGET (data), @@ -791,20 +855,38 @@ toggle_aspect_ratio (GtkWidget *button, } +#if GTK_CHECK_VERSION (3, 0, 0) +static void +toggle_decorated_cb (GSimpleAction *action, + GVariant *parameter, + gpointer data) +#else static void toggle_decorated_cb (GtkWidget *button, gpointer data) +#endif { GtkWidget *window; +#if GTK_CHECK_VERSION (3, 0, 0) + window = gtk_widget_get_ancestor (data, GTK_TYPE_WINDOW); +#else window = gtk_widget_get_ancestor (button, GTK_TYPE_WINDOW); +#endif if (window) gtk_window_set_decorated (GTK_WINDOW (window), !gtk_window_get_decorated (GTK_WINDOW (window))); } +#if GTK_CHECK_VERSION (3, 0, 0) +static void +clicked_toolbar_cb (GSimpleAction *action, + GVariant *parameter, + gpointer data) +#else static void clicked_toolbar_cb (GtkWidget *button, gpointer data) +#endif { GtkWidget *dialog; @@ -870,21 +952,172 @@ destroy_cb (GtkWidget *w, gpointer data) gtk_main_quit (); } +#if GTK_CHECK_VERSION (3, 0, 0) +static const gchar *xml = + "<interface>" + "<menu id='menubar'>" + "<submenu>" + "<attribute name='label'>Windows</attribute>" + "<section>" + "<item>" + "<attribute name='label'>Dialog</attribute>" + "<attribute name='action'>demo.dialog1</attribute>" + "<attribute name='accel'><control>d</attribute>" + "</item>" + "<item>" + "<attribute name='label'>Modal dialog</attribute>" + "<attribute name='action'>demo.dialog2</attribute>" + "</item>" + "<item>" + "<attribute name='label'>Parentless dialog</attribute>" + "<attribute name='action'>demo.dialog3</attribute>" + "</item>" + "<item>" + "<attribute name='label'>Utility</attribute>" + "<attribute name='action'>demo.utility</attribute>" + "<attribute name='accel'><control>u</attribute>" + "</item>" + "<item>" + "<attribute name='label'>Splashscreen</attribute>" + "<attribute name='action'>demo.splashscreen</attribute>" + "<attribute name='accel'><control>s</attribute>" + "</item>" + "<item>" + "<attribute name='label'>Top dock</attribute>" + "<attribute name='action'>demo.top-dock</attribute>" + "</item>" + "<item>" + "<attribute name='label'>Bottom dock</attribute>" + "<attribute name='action'>demo.bottom-dock</attribute>" + "</item>" + "<item>" + "<attribute name='label'>Left dock</attribute>" + "<attribute name='action'>demo.left-dock</attribute>" + "</item>" + "<item>" + "<attribute name='label'>Right dock</attribute>" + "<attribute name='action'>demo.right-dock</attribute>" + "</item>" + "<item>" + "<attribute name='label'>All docks</attribute>" + "<attribute name='action'>demo.all-docks</attribute>" + "</item>" + "<item>" + "<attribute name='label'>Desktop</attribute>" + "<attribute name='action'>demo.desktop</attribute>" + "</item>" + "<item>" + "<attribute name='label'>Menu</attribute>" + "<attribute name='action'>demo.menu</attribute>" + "</item>" + "<item>" + "<attribute name='label'>Toolbar</attribute>" + "<attribute name='action'>demo.toolbar</attribute>" + "</item>" + "<item>" + "<attribute name='label'>Override Redirect</attribute>" + "<attribute name='action'>demo.override-redirect</attribute>" + "</item>" + "<item>" + "<attribute name='label'>Border Only</attribute>" + "<attribute name='action'>demo.border-only</attribute>" + "</item>" + "</section>" + "</submenu>" + "</menu>" + "</interface>"; + +static GActionEntry demo_entries[] = +{ + /* menubar */ + { "dialog1", dialog_cb, NULL, NULL, NULL, {} }, + { "dialog2", modal_dialog_cb, NULL, NULL, NULL, {} }, + { "dialog3", no_parent_dialog_cb, NULL, NULL, NULL, {} }, + { "utility", utility_cb, NULL, NULL, NULL, {} }, + { "splashscreen", splashscreen_cb, NULL, NULL, NULL, {} }, + { "top-dock", dock_cb, NULL, NULL, NULL, {} }, + { "bottom-dock", dock_cb, NULL, NULL, NULL, {} }, + { "left-dock", dock_cb, NULL, NULL, NULL, {} }, + { "right-dock", dock_cb, NULL, NULL, NULL, {} }, + { "all-docks", dock_cb, NULL, NULL, NULL, {} }, + { "desktop", desktop_cb, NULL, NULL, NULL, {} }, + { "menu", menu_cb, NULL, NULL, NULL, {} }, + { "toolbar", toolbar_cb, NULL, NULL, NULL, {} }, + { "override-redirect", override_redirect_cb, NULL, NULL, NULL, {} }, + { "border-only", border_only_cb, NULL, NULL, NULL, {} }, + /* toolbar */ + { "new", do_appwindow, NULL, NULL, NULL, {} }, + { "lock", sleep_cb, NULL, NULL, NULL, {} }, + { "decorations", toggle_decorated_cb, NULL, NULL, NULL, {} }, + { "quit", clicked_toolbar_cb, NULL, NULL, NULL, {} }, + { "ratio", toggle_aspect_ratio, NULL, NULL, NULL, {} }, +}; + +static GtkWidget * +create_toolbar (void) +{ + GtkWidget *toolbar; + GtkToolItem *item; + + toolbar = gtk_toolbar_new (); + + item = gtk_tool_button_new (gtk_image_new_from_icon_name ("document-new", GTK_ICON_SIZE_SMALL_TOOLBAR), NULL); + gtk_tool_item_set_tooltip_markup (item, "Open another one of these windows"); + gtk_actionable_set_action_name (GTK_ACTIONABLE (item), "demo.new"); + gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); + + item = gtk_tool_button_new (gtk_image_new_from_icon_name ("document-open", GTK_ICON_SIZE_SMALL_TOOLBAR), NULL); + gtk_tool_item_set_tooltip_markup (item, "This is a demo button that locks up the demo"); + gtk_actionable_set_action_name (GTK_ACTIONABLE (item), "demo.lock"); + gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); + + item = gtk_tool_button_new (gtk_image_new_from_icon_name ("document-open", GTK_ICON_SIZE_SMALL_TOOLBAR), NULL); + gtk_tool_item_set_tooltip_markup (item, "This is a demo button that toggles window decorations"); + gtk_actionable_set_action_name (GTK_ACTIONABLE (item), "demo.decorations"); + gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); + + item = gtk_tool_button_new (gtk_image_new_from_icon_name ("document-open", GTK_ICON_SIZE_SMALL_TOOLBAR), NULL); + gtk_tool_item_set_tooltip_markup (item, "This is a demo button that locks the aspect ratio using a hint"); + gtk_actionable_set_action_name (GTK_ACTIONABLE (item), "demo.ratio"); + gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); + + item = gtk_tool_button_new (gtk_image_new_from_icon_name ("gtk-quit", GTK_ICON_SIZE_SMALL_TOOLBAR), NULL); + gtk_tool_item_set_tooltip_markup (item, "This is a demo button with a 'quit' icon"); + gtk_actionable_set_action_name (GTK_ACTIONABLE (item), "demo.quit"); + gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); + + return toolbar; +} +#endif + +#if GTK_CHECK_VERSION (3, 0, 0) +static void +do_appwindow (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) +#else static GtkWidget * do_appwindow (void) +#endif { GtkWidget *window; +#if GTK_CHECK_VERSION (3, 0, 0) + GtkWidget *grid; +#else GtkWidget *table; +#endif GtkWidget *toolbar; +#if !GTK_CHECK_VERSION (3, 0, 0) GtkWidget *handlebox; +#endif GtkWidget *statusbar; GtkWidget *contents; GtkWidget *sw; GtkTextBuffer *buffer; #if GTK_CHECK_VERSION(3, 0, 0) - GtkActionGroup *action_group; - GtkUIManager *ui_manager; + GSimpleActionGroup *action_group; + GtkBuilder *builder; #else GtkAccelGroup *accel_group; GtkItemFactory *item_factory; @@ -904,29 +1137,44 @@ do_appwindow (void) g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (destroy_cb), NULL); +#if GTK_CHECK_VERSION (3, 0, 0) + grid = gtk_grid_new (); + + gtk_widget_set_vexpand (grid, TRUE); + gtk_widget_set_hexpand (grid, TRUE); + + gtk_container_add (GTK_CONTAINER (window), grid); +#else table = gtk_table_new (1, 4, FALSE); gtk_container_add (GTK_CONTAINER (window), table); +#endif - #if GTK_CHECK_VERSION(3, 0, 0) +#if GTK_CHECK_VERSION(3, 0, 0) + action_group = g_simple_action_group_new (); + builder = gtk_builder_new_from_string (xml, -1); - action_group = gtk_action_group_new("ActionGroups"); - gtk_action_group_add_actions(action_group, entries, G_N_ELEMENTS(entries), NULL); + g_action_map_add_action_entries (G_ACTION_MAP (action_group), + demo_entries, + G_N_ELEMENTS (demo_entries), + window); + gtk_widget_insert_action_group (window, "demo", G_ACTION_GROUP (action_group)); - ui_manager = gtk_ui_manager_new(); - gtk_ui_manager_insert_action_group(ui_manager, action_group, 0); - gtk_ui_manager_add_ui_from_string(ui_manager, ui_definition, -1, NULL); + /* Create the menubar + */ - gtk_table_attach (GTK_TABLE (table), - gtk_ui_manager_get_widget (ui_manager, "/MainMenuBar"), - /* X direction */ /* Y direction */ - 0, 1, 0, 1, - GTK_EXPAND | GTK_FILL, 0, - 0, 0); + GMenuModel *model = G_MENU_MODEL (gtk_builder_get_object (builder, "menubar")); + GtkWidget *menubar = gtk_menu_bar_new_from_model (model); + gtk_grid_attach (GTK_GRID (grid), menubar, 0, 0, 1, 1); + gtk_widget_set_hexpand (menubar, TRUE); - gtk_window_add_accel_group (GTK_WINDOW (window), gtk_ui_manager_get_accel_group (ui_manager)); + /* Create the toolbar + */ - #else + toolbar = create_toolbar (); + gtk_grid_attach (GTK_GRID (grid), toolbar, 0, 1, 1, 1); + gtk_widget_set_hexpand (toolbar, TRUE); +#else /* Create the menubar */ @@ -958,7 +1206,7 @@ do_appwindow (void) 0, 0); - #endif +#endif /* Create document */ @@ -972,12 +1220,19 @@ do_appwindow (void) gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_IN); +#if GTK_CHECK_VERSION (3, 0, 0) + gtk_grid_attach (GTK_GRID (grid), sw, 0, 2, 1, 1); + + gtk_widget_set_hexpand (sw, TRUE); + gtk_widget_set_vexpand (sw, TRUE); +#else gtk_table_attach (GTK_TABLE (table), sw, /* X direction */ /* Y direction */ 0, 1, 2, 3, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); +#endif gtk_window_set_default_size (GTK_WINDOW (window), 200, 200); @@ -989,6 +1244,7 @@ do_appwindow (void) gtk_container_add (GTK_CONTAINER (sw), contents); +#if !GTK_CHECK_VERSION (3, 0, 0) /* Create the toolbar */ toolbar = gtk_toolbar_new (); @@ -1060,16 +1316,21 @@ do_appwindow (void) 0, 1, 1, 2, GTK_EXPAND | GTK_FILL, 0, 0, 0); - +#endif /* Create statusbar */ statusbar = gtk_statusbar_new (); +#if GTK_CHECK_VERSION (3, 0, 0) + gtk_grid_attach (GTK_GRID (grid), statusbar, 0, 3, 1, 1); + gtk_widget_set_hexpand (statusbar, TRUE); +#else gtk_table_attach (GTK_TABLE (table), statusbar, /* X direction */ /* Y direction */ 0, 1, 3, 4, GTK_EXPAND | GTK_FILL, 0, 0, 0); +#endif /* Show text widget info in the statusbar */ buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (contents)); @@ -1097,7 +1358,12 @@ do_appwindow (void) gtk_widget_show_all (window); +#if GTK_CHECK_VERSION (3, 0, 0) + g_object_unref (action_group); + g_object_unref (builder); +#else return window; +#endif } |