static void ide_workbench_constructed (GObject *object) { IdeWorkbench *self = (IdeWorkbench *)object; G_OBJECT_CLASS (ide_workbench_parent_class)->constructed (object); gtk_application_window_set_show_menubar (GTK_APPLICATION_WINDOW (self), FALSE); ide_workbench_add_perspective (self, g_object_new (IDE_TYPE_PREFERENCES_PERSPECTIVE, "visible", TRUE, NULL)); if (self->disable_greeter == FALSE) { ide_workbench_add_perspective (self, g_object_new (IDE_TYPE_GREETER_PERSPECTIVE, "visible", TRUE, NULL)); ide_workbench_set_visible_perspective_name (self, "greeter"); } ide_workbench_actions_init (self); }
static void gw_window_constructed (GObject *object) { GwWindow *window; GwWindowPrivate *priv; gboolean os_shows_app_menu; GtkSettings *settings; //Chain the parent class { G_OBJECT_CLASS (gw_window_parent_class)->constructed (object); } window = GW_WINDOW (object); priv = window->priv; settings = gtk_settings_get_default (); g_object_get (settings, "gtk-shell-shows-app-menu", &os_shows_app_menu, NULL); gtk_widget_add_events (GTK_WIDGET (window), GDK_FOCUS_CHANGE_MASK); gtk_application_window_set_show_menubar (GTK_APPLICATION_WINDOW (window), FALSE); priv->accelgroup = gtk_accel_group_new (); gtk_window_add_accel_group (GTK_WINDOW (window), priv->accelgroup); gtk_window_set_application (GTK_WINDOW (window), GTK_APPLICATION (priv->application)); priv->builder = gtk_builder_new (); gw_window_load_ui_xml (window, priv->ui_xml); priv->toplevel = GTK_WIDGET (gw_window_get_object (GW_WINDOW (window), "toplevel")); g_signal_connect (G_OBJECT (window), "configure-event", G_CALLBACK (gw_window_configure_event_cb), NULL); g_signal_connect (window, "focus-in-event", G_CALLBACK (gw_window_focus_in_event_cb), NULL); }
GtkWidget * libbalsa_window_get_menu_bar(GtkApplicationWindow * window, const GActionEntry * entries, gint n_entries, const gchar * ui_file, GError ** error, gpointer cb_data) { GActionMap *map = G_ACTION_MAP(window); GtkBuilder *builder; GtkWidget *menu_bar = NULL; g_action_map_add_action_entries(map, entries, n_entries, cb_data); builder = gtk_builder_new(); if (gtk_builder_add_from_file(builder, ui_file, error)) { GMenuModel *menu_model; menu_model = G_MENU_MODEL(gtk_builder_get_object(builder, "menubar")); menu_bar = gtk_menu_bar_new_from_model(menu_model); libbalsa_window_set_accels(window, menu_model); gtk_application_window_set_show_menubar(window, FALSE); } g_object_unref(builder); return menu_bar; }
static void ide_workbench_constructed (GObject *object) { IdeWorkbench *self = (IdeWorkbench *)object; G_OBJECT_CLASS (ide_workbench_parent_class)->constructed (object); gtk_application_window_set_show_menubar (GTK_APPLICATION_WINDOW (self), FALSE); ide_workbench_actions_init (self); }
static void example_app_window_init (ExampleAppWindow *win) { ExampleAppWindowPrivate *priv; GtkBuilder *builder; GMenuModel *menu; GAction *action; priv = example_app_window_get_instance_private (win); gtk_widget_init_template (GTK_WIDGET (win)); priv->settings = g_settings_new ("com.lonelycactus.exampleapp"); g_settings_bind (priv->settings, "transition", priv->stack, "transition-type", G_SETTINGS_BIND_DEFAULT); g_settings_bind (priv->settings, "show-words", priv->sidebar, "reveal-child", G_SETTINGS_BIND_DEFAULT); g_object_bind_property (priv->search, "active", priv->searchbar, "search-mode-enabled", G_BINDING_BIDIRECTIONAL); g_signal_connect (priv->connect, "toggled", G_CALLBACK (toggle_server), win); g_signal_connect (priv->sidebar, "notify::reveal-child", G_CALLBACK (words_changed), win); builder = gtk_builder_new_from_resource ("/com/lonelycactus/exampleapp/gears-menu.ui"); menu = G_MENU_MODEL (gtk_builder_get_object (builder, "menu")); gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (priv->gears), menu); g_object_unref (builder); action = g_settings_create_action (priv->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", priv->lines, "visible"); g_action_map_add_action (G_ACTION_MAP (win), action); g_object_unref (action); g_object_bind_property (priv->lines, "visible", priv->lines_label, "visible", G_BINDING_DEFAULT); service_init(); service_start_accepting_new_connections(); 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 gtk_application_window_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { GtkApplicationWindow *window = GTK_APPLICATION_WINDOW (object); switch (prop_id) { case PROP_SHOW_MENUBAR: gtk_application_window_set_show_menubar (window, g_value_get_boolean (value)); break; default: g_assert_not_reached (); } }
static void spektro_activate_cb(GtkApplication *app, gpointer user_data) { GtkBuilder *builder = gtk_builder_new_from_file("spektro.ui"); GtkApplicationWindow *app_window = GTK_APPLICATION_WINDOW( gtk_builder_get_object(builder, "main-window")); g_object_set(G_OBJECT(app_window), "application", app, NULL); gtk_application_window_set_show_menubar(app_window, FALSE); GtkGrid *grid = GTK_GRID(gtk_builder_get_object(builder, "grid")); // set up area where the spectrograph is displayed GtkScrolledWindow *scroll =GTK_SCROLLED_WINDOW( gtk_builder_get_object(builder, "scrolledwindow")); GtkImage *canvas = GTK_IMAGE(gtk_builder_get_object(builder, "canvas")); // file menu GtkFileChooserDialog *file_chooser = GTK_FILE_CHOOSER_DIALOG(gtk_builder_get_object(builder, "file-chooser-dialog")); GtkMenuItem *menu_open = GTK_MENU_ITEM(gtk_builder_get_object(builder, "menu-file-open")); g_signal_connect(G_OBJECT(menu_open), "activate", G_CALLBACK(open_cb), builder); GtkMenuItem *menu_quit = GTK_MENU_ITEM(gtk_builder_get_object(builder, "menu-file-quit")); g_signal_connect(G_OBJECT(menu_quit), "activate", G_CALLBACK(quit_cb), app); // open preferences window with menu GtkDialog *prefs = GTK_DIALOG(gtk_builder_get_object(builder, "preferences-dialog")); GtkMenuItem *menu_prefs = GTK_MENU_ITEM(gtk_builder_get_object(builder, "menu-edit-prefs")); g_signal_connect(G_OBJECT(menu_prefs), "activate", G_CALLBACK(prefs_cb), builder); // about dialog GtkAboutDialog *about = GTK_ABOUT_DIALOG(gtk_builder_get_object(builder, "about-dialog")); GtkMenuItem *menu_about = GTK_MENU_ITEM(gtk_builder_get_object(builder, "menu-help-about")); g_signal_connect(G_OBJECT(menu_about), "activate", G_CALLBACK(about_cb), about); return; }
static GtkWidget* create_new_window (GtkApplication *application, GVariantDict *options) { dg_lmem gchar* command = NULL; dg_lmem gchar* title = NULL; gboolean opt_show_title; gboolean opt_update_title; gboolean opt_no_headerbar; g_object_get (dwt_settings_get_instance (), "show-title", &opt_show_title, "update-title", &opt_update_title, "no-header-bar", &opt_no_headerbar, "command", &command, "title", &title, NULL); const gchar *opt_command = command; const gchar *opt_title = title; const gchar *opt_workdir = NULL; if (options) { gboolean opt_no_auto_title = FALSE; g_variant_dict_lookup (options, "title-on-maximize", "b", &opt_show_title); g_variant_dict_lookup (options, "no-header-bar", "b", &opt_no_headerbar); g_variant_dict_lookup (options, "no-auto-title", "b", &opt_no_auto_title); g_variant_dict_lookup (options, "workdir", "&s", &opt_workdir); g_variant_dict_lookup (options, "command", "&s", &opt_command); g_variant_dict_lookup (options, "title", "&s", &opt_title); if (opt_no_auto_title) opt_update_title = FALSE; } if (!opt_workdir) opt_workdir = g_get_home_dir (); if (!opt_command) opt_command = guess_shell (); /* * Title either comes from the default value of the "title" setting, * or from the command line flag, but should never be NULL at this * point. */ g_assert (opt_title); dg_lerr GError *gerror = NULL; gint command_argv_len = 0; gchar **command_argv = NULL; if (!g_shell_parse_argv (opt_command, &command_argv_len, &command_argv, &gerror)) { g_printerr ("%s: coult not parse command: %s\n", __func__, gerror->message); return NULL; } GtkWidget *window = gtk_application_window_new (application); gtk_widget_set_visual (window, gdk_screen_get_system_visual (gtk_widget_get_screen (window))); gtk_application_window_set_show_menubar (GTK_APPLICATION_WINDOW (window), FALSE); gtk_window_set_title (GTK_WINDOW (window), opt_title); gtk_window_set_hide_titlebar_when_maximized (GTK_WINDOW (window), !opt_show_title); g_action_map_add_action_entries (G_ACTION_MAP (window), win_actions, G_N_ELEMENTS (win_actions), window); VteTerminal *vtterm = VTE_TERMINAL (vte_terminal_new ()); configure_term_widget (vtterm, options); term_char_size_changed (vtterm, vte_terminal_get_char_width (vtterm), vte_terminal_get_char_height (vtterm), window); g_signal_connect (G_OBJECT (window), "notify::has-toplevel-focus", G_CALLBACK (window_has_toplevel_focus_notified), vtterm); g_signal_connect (G_OBJECT (vtterm), "char-size-changed", G_CALLBACK (term_char_size_changed), window); g_signal_connect (G_OBJECT (vtterm), "child-exited", G_CALLBACK (term_child_exited), window); g_signal_connect (G_OBJECT (vtterm), "bell", G_CALLBACK (term_beeped), window); g_signal_connect (G_OBJECT (vtterm), "button-release-event", G_CALLBACK (term_mouse_button_released), setup_popover (vtterm)); /* * Propagate title changes to the window. */ if (opt_update_title) g_object_bind_property (G_OBJECT (vtterm), "window-title", G_OBJECT (window), "title", G_BINDING_DEFAULT); if (!opt_no_headerbar) setup_header_bar (window, vtterm, opt_show_title); gtk_container_add (GTK_CONTAINER (window), GTK_WIDGET (vtterm)); gtk_widget_set_receives_default (GTK_WIDGET (vtterm), TRUE); /* We need to realize and show the window for it to have a valid XID */ gtk_widget_show_all (window); gchar **command_env = g_get_environ (); #ifdef GDK_WINDOWING_X11 if (GDK_IS_X11_SCREEN (gtk_widget_get_screen (window))) { GdkWindow *gdk_window = gtk_widget_get_window (window); if (gdk_window) { gchar window_id[NDIGITS10(unsigned long)]; snprintf (window_id, sizeof (window_id), "%lu", GDK_WINDOW_XID (gdk_window)); command_env = g_environ_setenv (command_env, "WINDOWID", window_id, TRUE); } else { g_printerr ("No window, cannot set $WINDOWID!\n"); } }
void main_window_toggle_fullscreen(MainWindow *wnd) { ControlBox *control_box = CONTROL_BOX(wnd->control_box); GtkContainer* main_box = GTK_CONTAINER(wnd->main_box); GtkContainer* fs_control = GTK_CONTAINER(wnd->fs_control); if(wnd->fullscreen) { g_object_ref(wnd->control_box); gtk_container_remove(fs_control, wnd->control_box); gtk_container_add(main_box, wnd->control_box); g_object_unref(wnd->control_box); control_box_set_fullscreen_state(control_box, FALSE); gtk_window_unfullscreen(GTK_WINDOW(wnd)); gtk_widget_hide(wnd->fs_control); if(main_window_get_csd_enabled(wnd)) { control_box_set_fullscreen_btn_visible (CONTROL_BOX(wnd->control_box), FALSE); } else { gtk_application_window_set_show_menubar (GTK_APPLICATION_WINDOW(wnd), TRUE); } if(wnd->playlist_visible) { gtk_widget_show(wnd->playlist); } wnd->fullscreen = FALSE; } else { GdkScreen *screen; gint width; gint height; screen = gtk_window_get_screen(GTK_WINDOW(wnd)); width = gdk_screen_width()/2; g_object_ref(wnd->control_box); gtk_container_remove(main_box, wnd->control_box); gtk_container_add(fs_control, wnd->control_box); g_object_unref(wnd->control_box); control_box_set_fullscreen_state(control_box, TRUE); gtk_window_fullscreen(GTK_WINDOW(wnd)); gtk_window_set_screen(GTK_WINDOW(wnd->fs_control), screen); gtk_widget_show(wnd->fs_control); gtk_widget_set_opacity(wnd->fs_control, 0); if(main_window_get_csd_enabled(wnd)) { control_box_set_fullscreen_btn_visible (CONTROL_BOX(wnd->control_box), TRUE); } else { gtk_application_window_set_show_menubar (GTK_APPLICATION_WINDOW(wnd), FALSE); } if(wnd->playlist_visible) { gtk_widget_hide(wnd->playlist); } gtk_window_get_size( GTK_WINDOW(wnd->fs_control), NULL, &height ); gtk_window_resize( GTK_WINDOW(wnd->fs_control), width, height ); gtk_window_move( GTK_WINDOW(wnd->fs_control), (gdk_screen_width()/2)-(width/2), gdk_screen_height()-height ); gtk_window_set_transient_for( GTK_WINDOW(wnd->fs_control), GTK_WINDOW(wnd) ); wnd->fullscreen = TRUE; } }