static void panel_properties_dialog_opacity_scale_setup (PanelPropertiesDialog *dialog, GtkBuilder *gui) { GtkWidget *opacity_label; GtkWidget *opacity_legend; dialog->opacity_scale = PANEL_GTK_BUILDER_GET (gui, "opacity_scale"); g_return_if_fail (dialog->opacity_scale != NULL); opacity_label = PANEL_GTK_BUILDER_GET (gui, "opacity_label"); g_return_if_fail (opacity_label != NULL); opacity_legend = PANEL_GTK_BUILDER_GET (gui, "opacity_legend"); g_return_if_fail (opacity_legend != NULL); panel_properties_dialog_background_color_update (dialog); g_signal_connect_swapped (dialog->opacity_scale, "value_changed", G_CALLBACK (panel_properties_dialog_opacity_scale_changed), dialog); g_settings_bind_writable (dialog->settings_background, PANEL_BACKGROUND_COLOR_KEY, opacity_label, "sensitive", FALSE); g_settings_bind_writable (dialog->settings_background, PANEL_BACKGROUND_COLOR_KEY, opacity_legend, "sensitive", FALSE); g_settings_bind_writable (dialog->settings_background, PANEL_BACKGROUND_COLOR_KEY, dialog->opacity_scale, "sensitive", FALSE); if (!g_settings_is_writable (dialog->settings_background, PANEL_BACKGROUND_COLOR_KEY)) gtk_widget_show (dialog->writability_warn_background); }
static void panel_properties_dialog_setup_size_spin (PanelPropertiesDialog *dialog, GtkBuilder *gui) { dialog->size_widgets = PANEL_GTK_BUILDER_GET (gui, "size_widgets"); g_return_if_fail (dialog->size_widgets != NULL); dialog->size_spin = PANEL_GTK_BUILDER_GET (gui, "size_spin"); g_return_if_fail (dialog->size_spin != NULL); dialog->size_label = PANEL_GTK_BUILDER_GET (gui, "size_label"); g_return_if_fail (dialog->size_label != NULL); dialog->size_label_pixels = PANEL_GTK_BUILDER_GET (gui, "size_label_pixels"); g_return_if_fail (dialog->size_label_pixels != NULL); gtk_spin_button_set_range (GTK_SPIN_BUTTON (dialog->size_spin), panel_toplevel_get_minimum_size (dialog->toplevel), panel_toplevel_get_maximum_size (dialog->toplevel)); gtk_spin_button_set_value (GTK_SPIN_BUTTON (dialog->size_spin), panel_profile_get_toplevel_size (dialog->toplevel)); g_signal_connect_swapped (dialog->size_spin, "value_changed", G_CALLBACK (panel_properties_dialog_size_changed), dialog); if ( ! panel_profile_key_is_writable (dialog->toplevel, PANEL_TOPLEVEL_SIZE_KEY)) { gtk_widget_set_sensitive (dialog->size_spin, FALSE); gtk_widget_set_sensitive (dialog->size_label, FALSE); gtk_widget_set_sensitive (dialog->size_label_pixels, FALSE); gtk_widget_show (dialog->writability_warn_general); } }
static void panel_properties_dialog_size_spin_setup (PanelPropertiesDialog *dialog, GtkBuilder *gui) { GtkWidget *size_label; GtkWidget *size_label_pixels; dialog->size_spin = PANEL_GTK_BUILDER_GET (gui, "size_spin"); g_return_if_fail (dialog->size_spin != NULL); size_label = PANEL_GTK_BUILDER_GET (gui, "size_label"); g_return_if_fail (size_label != NULL); size_label_pixels = PANEL_GTK_BUILDER_GET (gui, "size_label_pixels"); g_return_if_fail (size_label_pixels != NULL); panel_properties_size_spin_update_range (dialog); g_settings_bind (dialog->settings, PANEL_TOPLEVEL_SIZE_KEY, dialog->size_spin, "value", G_SETTINGS_BIND_DEFAULT); g_settings_bind_writable (dialog->settings, PANEL_TOPLEVEL_SIZE_KEY, size_label, "sensitive", FALSE); g_settings_bind_writable (dialog->settings, PANEL_TOPLEVEL_SIZE_KEY, size_label_pixels, "sensitive", FALSE); if (!g_settings_is_writable (dialog->settings, PANEL_TOPLEVEL_SIZE_KEY)) gtk_widget_show (dialog->writability_warn_general); }
static void panel_properties_dialog_color_button_setup (PanelPropertiesDialog *dialog, GtkBuilder *gui) { GtkWidget *color_label; dialog->color_button = PANEL_GTK_BUILDER_GET (gui, "color_button"); g_return_if_fail (dialog->color_button != NULL); color_label = PANEL_GTK_BUILDER_GET (gui, "color_label"); g_return_if_fail (color_label != NULL); panel_properties_dialog_background_color_update (dialog); g_signal_connect_swapped (dialog->color_button, "color_set", G_CALLBACK (panel_properties_dialog_color_button_changed), dialog); g_settings_bind_writable (dialog->settings_background, PANEL_BACKGROUND_COLOR_KEY, color_label, "sensitive", FALSE); g_settings_bind_writable (dialog->settings_background, PANEL_BACKGROUND_COLOR_KEY, dialog->color_button, "sensitive", FALSE); if (!g_settings_is_writable (dialog->settings_background, PANEL_BACKGROUND_COLOR_KEY)) gtk_widget_show (dialog->writability_warn_background); }
static void panel_properties_dialog_setup_color_button (PanelPropertiesDialog *dialog, GtkBuilder *gui) { PanelColor color; dialog->color_button = PANEL_GTK_BUILDER_GET (gui, "color_button"); g_return_if_fail (dialog->color_button != NULL); dialog->color_label = PANEL_GTK_BUILDER_GET (gui, "color_label"); g_return_if_fail (dialog->color_label != NULL); panel_profile_get_background_color (dialog->toplevel, &color); gtk_color_button_set_color (GTK_COLOR_BUTTON (dialog->color_button), &(color.gdk)); g_signal_connect_swapped (dialog->color_button, "color_set", G_CALLBACK (panel_properties_dialog_color_changed), dialog); if ( ! panel_profile_background_key_is_writable (dialog->toplevel, "color")) { gtk_widget_set_sensitive (dialog->color_button, FALSE); gtk_widget_set_sensitive (dialog->color_label, FALSE); gtk_widget_show (dialog->writability_warn_background); } }
static void panel_properties_dialog_setup_opacity_scale (PanelPropertiesDialog *dialog, GtkBuilder *gui) { guint16 opacity; gdouble percentage; dialog->opacity_scale = PANEL_GTK_BUILDER_GET (gui, "opacity_scale"); g_return_if_fail (dialog->opacity_scale != NULL); dialog->opacity_label = PANEL_GTK_BUILDER_GET (gui, "opacity_label"); g_return_if_fail (dialog->opacity_label != NULL); dialog->opacity_legend = PANEL_GTK_BUILDER_GET (gui, "opacity_legend"); g_return_if_fail (dialog->opacity_legend != NULL); opacity = panel_profile_get_background_opacity (dialog->toplevel); percentage = (opacity * 100.0) / 65535; gtk_range_set_value (GTK_RANGE (dialog->opacity_scale), percentage); g_signal_connect_swapped (dialog->opacity_scale, "value_changed", G_CALLBACK (panel_properties_dialog_opacity_changed), dialog); if ( ! panel_profile_background_key_is_writable (dialog->toplevel, "opacity")) { gtk_widget_set_sensitive (dialog->opacity_scale, FALSE); gtk_widget_set_sensitive (dialog->opacity_label, FALSE); gtk_widget_set_sensitive (dialog->opacity_legend, FALSE); gtk_widget_show (dialog->writability_warn_background); } }
static void panel_run_dialog_setup_program_list (PanelRunDialog *dialog, GtkBuilder *gui) { GtkTreeSelection *selection; dialog->program_list = PANEL_GTK_BUILDER_GET (gui, "program_list"); dialog->program_list_box = PANEL_GTK_BUILDER_GET (gui, "program_list_box"); dialog->program_label = PANEL_GTK_BUILDER_GET (gui, "program_label"); dialog->main_box = PANEL_GTK_BUILDER_GET (gui, "main_box"); /* Ref the box so it doesn't get destroyed when it is * removed from the visible area of the dialog box. */ g_object_ref (dialog->program_list_box); if (panel_profile_get_enable_program_list ()) { selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (dialog->program_list)); gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE); g_signal_connect (selection, "changed", G_CALLBACK (program_list_selection_changed), dialog); g_signal_connect (dialog->program_list, "row-activated", G_CALLBACK (program_list_selection_activated), dialog); /* start loading the list of applications */ dialog->add_items_idle_id = g_idle_add_full (G_PRIORITY_LOW, (GSourceFunc) panel_run_dialog_add_items_idle, dialog, NULL); } }
static PanelPropertiesDialog * panel_properties_dialog_new (PanelToplevel *toplevel, GtkBuilder *gui) { PanelPropertiesDialog *dialog; char *toplevel_settings_path; dialog = g_new0 (PanelPropertiesDialog, 1); g_object_set_qdata_full (G_OBJECT (toplevel), panel_properties_dialog_quark, dialog, (GDestroyNotify) panel_properties_dialog_free); dialog->toplevel = toplevel; g_object_get (toplevel, "settings-path", &toplevel_settings_path, NULL); dialog->settings = g_settings_new_with_path (PANEL_TOPLEVEL_SCHEMA, toplevel_settings_path); dialog->settings_background = g_settings_get_child (dialog->settings, PANEL_BACKGROUND_SCHEMA_CHILD); g_free (toplevel_settings_path); dialog->properties_dialog = PANEL_GTK_BUILDER_GET (gui, "panel_properties_dialog"); g_signal_connect_swapped (dialog->properties_dialog, "response", G_CALLBACK (panel_properties_dialog_response), dialog); g_signal_connect_swapped (dialog->properties_dialog, "destroy", G_CALLBACK (panel_properties_dialog_destroy), dialog); gtk_window_set_screen (GTK_WINDOW (dialog->properties_dialog), gtk_window_get_screen (GTK_WINDOW (toplevel))); dialog->writability_warn_general = PANEL_GTK_BUILDER_GET (gui, "writability_warn_general"); dialog->writability_warn_background = PANEL_GTK_BUILDER_GET (gui, "writability_warn_background"); panel_properties_dialog_setup_orientation_combo (dialog, gui); panel_properties_dialog_size_spin_setup (dialog, gui); panel_properties_dialog_expand_toggle_setup (dialog, gui); panel_properties_dialog_autohide_toggle_setup (dialog, gui); panel_properties_dialog_hidebuttons_toggle_setup (dialog, gui); panel_properties_dialog_arrows_toggle_setup (dialog, gui); panel_properties_dialog_image_chooser_setup (dialog, gui); panel_properties_dialog_color_button_setup (dialog, gui); panel_properties_dialog_opacity_scale_setup (dialog, gui); panel_properties_dialog_background_radios_setup (dialog, gui); g_signal_connect (dialog->settings_background, "changed", G_CALLBACK (panel_properties_dialog_background_changed), dialog); panel_toplevel_push_autohide_disabler (dialog->toplevel); panel_widget_register_open_dialog (panel_toplevel_get_panel_widget (dialog->toplevel), dialog->properties_dialog); gtk_widget_show (dialog->properties_dialog); return dialog; }
static void panel_properties_dialog_setup_icon_chooser (PanelPropertiesDialog *dialog, GtkBuilder *gui) { char *custom_icon; dialog->icon_align = PANEL_GTK_BUILDER_GET (gui, "icon_align"); g_return_if_fail (dialog->icon_align != NULL); dialog->icon_chooser = panel_icon_chooser_new (NULL); panel_icon_chooser_set_fallback_icon_name (PANEL_ICON_CHOOSER (dialog->icon_chooser), PANEL_ICON_DRAWER); gtk_widget_show (dialog->icon_chooser); gtk_container_add (GTK_CONTAINER (dialog->icon_align), dialog->icon_chooser); dialog->icon_label = PANEL_GTK_BUILDER_GET (gui, "icon_label"); g_return_if_fail (dialog->icon_label != NULL); custom_icon = panel_profile_get_attached_custom_icon (dialog->toplevel); panel_icon_chooser_set_icon (PANEL_ICON_CHOOSER (dialog->icon_chooser), custom_icon); g_free (custom_icon); g_signal_connect (dialog->icon_chooser, "changed", G_CALLBACK (panel_properties_dialog_icon_changed), dialog); if (!panel_profile_is_writable_attached_custom_icon (dialog->toplevel)) { gtk_widget_set_sensitive (dialog->icon_chooser, FALSE); gtk_widget_set_sensitive (dialog->icon_label, FALSE); if (panel_toplevel_get_is_attached (dialog->toplevel)) gtk_widget_show (dialog->writability_warn_general); } }
static void panel_properties_dialog_setup_orientation_combo (PanelPropertiesDialog *dialog, GtkBuilder *gui) { GtkWidget *orientation_label; GtkListStore *model; GtkTreeIter iter; GtkCellRenderer *renderer; int i; dialog->orientation_combo = PANEL_GTK_BUILDER_GET (gui, "orientation_combo"); g_return_if_fail (dialog->orientation_combo != NULL); orientation_label = PANEL_GTK_BUILDER_GET (gui, "orientation_label"); g_return_if_fail (orientation_label != NULL); model = gtk_list_store_new (NUMBER_COLUMNS, G_TYPE_STRING, G_TYPE_POINTER); gtk_combo_box_set_model (GTK_COMBO_BOX (dialog->orientation_combo), GTK_TREE_MODEL (model)); for (i = 0; i < G_N_ELEMENTS (orientation_items); i++) { gtk_list_store_append (model, &iter); gtk_list_store_set (model, &iter, COLUMN_TEXT, g_dpgettext2 (NULL, "Orientation", orientation_items [i].name), COLUMN_ITEM, &(orientation_items [i]), -1); } renderer = gtk_cell_renderer_text_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (dialog->orientation_combo), renderer, TRUE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (dialog->orientation_combo), renderer, "text", COLUMN_TEXT, NULL); panel_properties_dialog_orientation_update (dialog); g_signal_connect_swapped (dialog->orientation_combo, "changed", G_CALLBACK (panel_properties_dialog_orientation_changed), dialog); g_signal_connect (dialog->settings_background, "changed::"PANEL_TOPLEVEL_ORIENTATION_KEY, G_CALLBACK (panel_properties_dialog_orientation_setting_changed), dialog); g_settings_bind_writable (dialog->settings, PANEL_TOPLEVEL_ORIENTATION_KEY, orientation_label, "sensitive", FALSE); g_settings_bind_writable (dialog->settings, PANEL_TOPLEVEL_ORIENTATION_KEY, dialog->orientation_combo, "sensitive", FALSE); if (!g_settings_is_writable (dialog->settings, PANEL_TOPLEVEL_ORIENTATION_KEY)) gtk_widget_show (dialog->writability_warn_general); }
static void panel_properties_dialog_setup_background_radios (PanelPropertiesDialog *dialog, GtkBuilder *gui) { PanelBackgroundType background_type; GtkWidget *active_radio; dialog->default_radio = PANEL_GTK_BUILDER_GET (gui, "default_radio"); dialog->color_radio = PANEL_GTK_BUILDER_GET (gui, "color_radio"); dialog->image_radio = PANEL_GTK_BUILDER_GET (gui, "image_radio"); dialog->color_widgets = PANEL_GTK_BUILDER_GET (gui, "color_widgets"); dialog->image_widgets = PANEL_GTK_BUILDER_GET (gui, "image_widgets"); background_type = panel_profile_get_background_type (dialog->toplevel); switch (background_type) { case PANEL_BACK_NONE: active_radio = dialog->default_radio; break; case PANEL_BACK_COLOR: active_radio = dialog->color_radio; break; case PANEL_BACK_IMAGE: active_radio = dialog->image_radio; break; default: active_radio = NULL; g_assert_not_reached (); } gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (active_radio), TRUE); panel_properties_dialog_upd_sensitivity (dialog, background_type); g_signal_connect_swapped (dialog->default_radio, "toggled", G_CALLBACK (panel_properties_dialog_background_toggled), dialog); g_signal_connect_swapped (dialog->color_radio, "toggled", G_CALLBACK (panel_properties_dialog_background_toggled), dialog); g_signal_connect_swapped (dialog->image_radio, "toggled", G_CALLBACK (panel_properties_dialog_background_toggled), dialog); if ( ! panel_profile_background_key_is_writable (dialog->toplevel, "type")) { gtk_widget_set_sensitive (dialog->default_radio, FALSE); gtk_widget_set_sensitive (dialog->color_radio, FALSE); gtk_widget_set_sensitive (dialog->image_radio, FALSE); gtk_widget_show (dialog->writability_warn_background); } }
static void panel_properties_dialog_setup_image_chooser (PanelPropertiesDialog *dialog, GtkBuilder *gui) { char *image; dialog->image_chooser = PANEL_GTK_BUILDER_GET (gui, "image_chooser"); panel_gtk_file_chooser_add_image_preview (GTK_FILE_CHOOSER (dialog->image_chooser)); image = panel_profile_get_background_image (dialog->toplevel); if (PANEL_GLIB_STR_EMPTY (image)) gtk_file_chooser_unselect_all (GTK_FILE_CHOOSER (dialog->image_chooser)); else gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (dialog->image_chooser), image); if (image) g_free (image); dialog->selection_emitted = 0; g_signal_connect_swapped (dialog->image_chooser, "selection-changed", G_CALLBACK (panel_properties_dialog_image_changed), dialog); if ( ! panel_profile_background_key_is_writable (dialog->toplevel, "image")) { gtk_widget_set_sensitive (dialog->image_chooser, FALSE); gtk_widget_show (dialog->writability_warn_background); } }
static PanelRunDialog * panel_run_dialog_new (GdkScreen *screen, GtkBuilder *gui, guint32 activate_time) { PanelRunDialog *dialog; dialog = g_new0 (PanelRunDialog, 1); dialog->run_dialog = PANEL_GTK_BUILDER_GET (gui, "panel_run_dialog"); g_signal_connect_swapped (dialog->run_dialog, "response", G_CALLBACK (panel_run_dialog_response), dialog); g_signal_connect_swapped (dialog->run_dialog, "destroy", G_CALLBACK (panel_run_dialog_destroy), dialog); dialog->run_button = PANEL_GTK_BUILDER_GET (gui, "run_button"); dialog->terminal_checkbox = PANEL_GTK_BUILDER_GET (gui, "terminal_checkbox"); dialog->settings = g_settings_new (PANEL_RUN_SCHEMA); panel_run_dialog_setup_pixmap (dialog, gui); panel_run_dialog_setup_entry (dialog, gui); panel_run_dialog_setup_file_button (dialog, gui); panel_run_dialog_setup_program_list (dialog, gui); panel_run_dialog_setup_list_expander (dialog, gui); panel_run_dialog_set_default_icon (dialog, FALSE); panel_run_dialog_update_content (dialog, panel_profile_get_show_program_list ()); gtk_widget_set_sensitive (dialog->run_button, FALSE); gtk_dialog_set_default_response (GTK_DIALOG (dialog->run_dialog), GTK_RESPONSE_OK); gtk_window_set_screen (GTK_WINDOW (dialog->run_dialog), screen); gtk_widget_grab_focus (dialog->combobox); gtk_widget_realize (dialog->run_dialog); gdk_x11_window_set_user_time (gtk_widget_get_window (dialog->run_dialog), activate_time); gtk_widget_show (dialog->run_dialog); return dialog; }
static void panel_properties_dialog_setup_orientation_combo (PanelPropertiesDialog *dialog, GtkBuilder *gui) { PanelOrientation orientation; GtkListStore *model; GtkTreeIter iter; GtkCellRenderer *renderer; int i; dialog->orientation_combo = PANEL_GTK_BUILDER_GET (gui, "orientation_combo"); g_return_if_fail (dialog->orientation_combo != NULL); dialog->orientation_label = PANEL_GTK_BUILDER_GET (gui, "orientation_label"); g_return_if_fail (dialog->orientation_label != NULL); orientation = panel_profile_get_toplevel_orientation (dialog->toplevel); model = gtk_list_store_new (NUMBER_COLUMNS, G_TYPE_STRING, G_TYPE_POINTER); gtk_combo_box_set_model (GTK_COMBO_BOX (dialog->orientation_combo), GTK_TREE_MODEL (model)); for (i = 0; i < G_N_ELEMENTS (orientation_items); i++) { gtk_list_store_append (model, &iter); gtk_list_store_set (model, &iter, COLUMN_TEXT, g_dpgettext2 (NULL, "Orientation", orientation_items [i].name), COLUMN_ITEM, &(orientation_items [i]), -1); if (orientation == orientation_items [i].orientation) gtk_combo_box_set_active_iter (GTK_COMBO_BOX (dialog->orientation_combo), &iter); } renderer = gtk_cell_renderer_text_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (dialog->orientation_combo), renderer, TRUE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (dialog->orientation_combo), renderer, "text", COLUMN_TEXT, NULL); g_signal_connect_swapped (dialog->orientation_combo, "changed", G_CALLBACK (panel_properties_dialog_orientation_changed), dialog); panel_properties_dialog_setup_orientation_combo_sensitivty (dialog, NULL); }
static void panel_run_dialog_setup_file_button (PanelRunDialog *dialog, GtkBuilder *gui) { dialog->file_button = PANEL_GTK_BUILDER_GET (gui, "file_button"); g_signal_connect (dialog->file_button, "clicked", G_CALLBACK (file_button_clicked), dialog); }
static void panel_properties_dialog_hidebuttons_toggle_setup (PanelPropertiesDialog *dialog, GtkBuilder *gui) { panel_properties_dialog_setup_toggle (dialog, gui, "hidebuttons_toggle", PANEL_TOPLEVEL_ENABLE_BUTTONS_KEY, TRUE); dialog->hidebuttons_toggle = PANEL_GTK_BUILDER_GET (gui, "hidebuttons_toggle"); }
static void panel_properties_dialog_background_radios_setup (PanelPropertiesDialog *dialog, GtkBuilder *gui) { dialog->default_radio = PANEL_GTK_BUILDER_GET (gui, "default_radio"); dialog->color_radio = PANEL_GTK_BUILDER_GET (gui, "color_radio"); dialog->image_radio = PANEL_GTK_BUILDER_GET (gui, "image_radio"); dialog->color_widgets = PANEL_GTK_BUILDER_GET (gui, "color_widgets"); dialog->image_widgets = PANEL_GTK_BUILDER_GET (gui, "image_widgets"); panel_properties_dialog_background_type_update (dialog); g_signal_connect_swapped (dialog->default_radio, "toggled", G_CALLBACK (panel_properties_dialog_background_radios_toggled), dialog); g_signal_connect_swapped (dialog->color_radio, "toggled", G_CALLBACK (panel_properties_dialog_background_radios_toggled), dialog); g_signal_connect_swapped (dialog->image_radio, "toggled", G_CALLBACK (panel_properties_dialog_background_radios_toggled), dialog); g_settings_bind_writable (dialog->settings_background, PANEL_BACKGROUND_TYPE_KEY, dialog->default_radio, "sensitive", FALSE); g_settings_bind_writable (dialog->settings_background, PANEL_BACKGROUND_TYPE_KEY, dialog->color_radio, "sensitive", FALSE); g_settings_bind_writable (dialog->settings_background, PANEL_BACKGROUND_TYPE_KEY, dialog->image_radio, "sensitive", FALSE); if (!g_settings_is_writable (dialog->settings_background, PANEL_BACKGROUND_TYPE_KEY)) gtk_widget_show (dialog->writability_warn_background); }
static void panel_run_dialog_setup_entry (PanelRunDialog *dialog, GtkBuilder *gui) { GdkScreen *screen; int width_request; GtkWidget *entry; dialog->combobox = PANEL_GTK_BUILDER_GET (gui, "comboboxentry"); entry = gtk_bin_get_child (GTK_BIN (dialog->combobox)); gtk_entry_set_activates_default (GTK_ENTRY (entry), TRUE); gtk_combo_box_set_model (GTK_COMBO_BOX (dialog->combobox), _panel_run_get_recent_programs_list (dialog)); gtk_combo_box_set_entry_text_column (GTK_COMBO_BOX (dialog->combobox), 0); screen = gtk_window_get_screen (GTK_WINDOW (dialog->run_dialog)); /* 1/4 the width of the first monitor should be a good value */ width_request = panel_multiscreen_width (screen, 0) / 4; g_object_set (G_OBJECT (dialog->combobox), "width_request", width_request, NULL); g_signal_connect (entry, "key-press-event", G_CALLBACK (entry_event), dialog); dialog->changed_id = g_signal_connect (dialog->combobox, "changed", G_CALLBACK (combobox_changed), dialog); gtk_drag_dest_unset (dialog->combobox); gtk_drag_dest_set (dialog->combobox, GTK_DEST_DEFAULT_MOTION|GTK_DEST_DEFAULT_HIGHLIGHT, NULL, 0, GDK_ACTION_COPY); gtk_drag_dest_add_uri_targets (dialog->combobox); g_signal_connect (dialog->combobox, "drag_data_received", G_CALLBACK (entry_drag_data_received), dialog); }
static void panel_properties_dialog_setup_toggle (PanelPropertiesDialog *dialog, GtkBuilder *gui, const char *toggle_name_in_ui, const char *settings_key, gboolean bind_sensitivity) { GtkWidget *toggle = PANEL_GTK_BUILDER_GET (gui, toggle_name_in_ui); GSettingsBindFlags flags = G_SETTINGS_BIND_DEFAULT; if (!bind_sensitivity) flags |= G_SETTINGS_BIND_NO_SENSITIVITY; g_settings_bind (dialog->settings, settings_key, toggle, "active", flags); if (!g_settings_is_writable (dialog->settings, settings_key)) gtk_widget_show (dialog->writability_warn_general); }
static void panel_properties_dialog_image_chooser_setup (PanelPropertiesDialog *dialog, GtkBuilder *gui) { dialog->image_chooser = PANEL_GTK_BUILDER_GET (gui, "image_chooser"); panel_gtk_file_chooser_add_image_preview (GTK_FILE_CHOOSER (dialog->image_chooser)); panel_properties_dialog_background_image_update (dialog); g_signal_connect_swapped (dialog->image_chooser, "file-set", G_CALLBACK (panel_properties_dialog_image_chooser_changed), dialog); g_settings_bind_writable (dialog->settings_background, PANEL_BACKGROUND_IMAGE_URI_KEY, dialog->image_chooser, "sensitive", FALSE); if (!g_settings_is_writable (dialog->settings_background, PANEL_BACKGROUND_IMAGE_URI_KEY)) gtk_widget_show (dialog->writability_warn_background); }
static void panel_run_dialog_setup_pixmap (PanelRunDialog *dialog, GtkBuilder *gui) { dialog->pixmap = PANEL_GTK_BUILDER_GET (gui, "icon_pixmap"); #if GTK_CHECK_VERSION (3, 0, 0) g_signal_connect (dialog->pixmap, "style-updated", G_CALLBACK (panel_run_dialog_style_updated), dialog); #else g_signal_connect (dialog->pixmap, "style-set", G_CALLBACK (panel_run_dialog_style_set), dialog); #endif g_signal_connect (dialog->pixmap, "screen-changed", G_CALLBACK (panel_run_dialog_screen_changed), dialog); g_signal_connect (dialog->run_dialog, "drag_data_get", G_CALLBACK (pixmap_drag_data_get), dialog); }
static void panel_run_dialog_setup_list_expander (PanelRunDialog *dialog, GtkBuilder *gui) { dialog->list_expander = PANEL_GTK_BUILDER_GET (gui, "list_expander"); if (panel_profile_get_enable_program_list ()) { gtk_expander_set_expanded (GTK_EXPANDER (dialog->list_expander), panel_profile_get_show_program_list ()); if ( ! panel_profile_is_writable_show_program_list ()) gtk_widget_set_sensitive (dialog->list_expander, FALSE); g_signal_connect (dialog->list_expander, "notify::expanded", G_CALLBACK (list_expander_toggled), dialog); g_signal_connect (dialog->settings, "changed::" PANEL_RUN_SHOW_PROGRAM_LIST_KEY, G_CALLBACK (panel_run_dialog_content_notify), dialog); } }
static void panel_properties_dialog_arrows_toggle_setup (PanelPropertiesDialog *dialog, GtkBuilder *gui) { panel_properties_dialog_setup_toggle (dialog, gui, "arrows_toggle", PANEL_TOPLEVEL_ENABLE_ARROWS_KEY, FALSE); dialog->arrows_toggle = PANEL_GTK_BUILDER_GET (gui, "arrows_toggle"); panel_properties_dialog_arrows_sensitivity_update (dialog->settings, NULL, dialog); g_signal_connect (dialog->settings, "changed::"PANEL_TOPLEVEL_ENABLE_BUTTONS_KEY, G_CALLBACK (panel_properties_dialog_arrows_sensitivity_update), dialog); g_signal_connect (dialog->settings, "writable-changed::"PANEL_TOPLEVEL_ENABLE_ARROWS_KEY, G_CALLBACK (panel_properties_dialog_arrows_sensitivity_update), dialog); }
static PanelPropertiesDialog * panel_properties_dialog_new (PanelToplevel *toplevel, GtkBuilder *gui) { PanelPropertiesDialog *dialog; char *toplevel_settings_path; dialog = g_new0 (PanelPropertiesDialog, 1); g_object_set_qdata_full (G_OBJECT (toplevel), panel_properties_dialog_quark, dialog, (GDestroyNotify) panel_properties_dialog_free); dialog->toplevel = toplevel; dialog->properties_dialog = PANEL_GTK_BUILDER_GET (gui, "panel_properties_dialog"); g_signal_connect_swapped (dialog->properties_dialog, "response", G_CALLBACK (panel_properties_dialog_response), dialog); g_signal_connect_swapped (dialog->properties_dialog, "destroy", G_CALLBACK (panel_properties_dialog_destroy), dialog); gtk_window_set_screen (GTK_WINDOW (dialog->properties_dialog), gtk_window_get_screen (GTK_WINDOW (toplevel))); dialog->writability_warn_general = PANEL_GTK_BUILDER_GET (gui, "writability_warn_general"); dialog->writability_warn_background = PANEL_GTK_BUILDER_GET (gui, "writability_warn_background"); dialog->general_vbox = PANEL_GTK_BUILDER_GET (gui, "general_vbox"); dialog->general_table = PANEL_GTK_BUILDER_GET (gui, "general_table"); panel_properties_dialog_setup_orientation_combo (dialog, gui); panel_properties_dialog_setup_size_spin (dialog, gui); panel_properties_dialog_setup_icon_chooser (dialog, gui); panel_properties_dialog_setup_expand_toggle (dialog, gui); panel_properties_dialog_setup_autohide_toggle (dialog, gui); panel_properties_dialog_setup_hidebuttons_toggle (dialog, gui); panel_properties_dialog_setup_arrows_toggle (dialog, gui); g_signal_connect_swapped (dialog->expand_toggle, "toggled", G_CALLBACK (panel_properties_dialog_setup_orientation_combo_sensitivty), dialog); panel_properties_update_arrows_toggle_visible ( dialog, GTK_TOGGLE_BUTTON (dialog->hidebuttons_toggle)); g_signal_connect_swapped (dialog->hidebuttons_toggle, "toggled", G_CALLBACK (panel_properties_update_arrows_toggle_visible), dialog); g_object_get (toplevel, "settings-path", &toplevel_settings_path, NULL); dialog->settings = g_settings_new_with_path (PANEL_TOPLEVEL_SCHEMA, toplevel_settings_path); gchar *toplevel_background_path; toplevel_background_path = g_strdup_printf ("%sbackground/", toplevel_settings_path); dialog->background_settings = g_settings_new_with_path (PANEL_TOPLEVEL_BACKGROUND_SCHEMA, toplevel_background_path); g_free (toplevel_background_path); g_signal_connect (dialog->settings, "changed", G_CALLBACK (panel_properties_dialog_toplevel_notify), dialog); panel_properties_dialog_setup_color_button (dialog, gui); panel_properties_dialog_setup_image_chooser (dialog, gui); panel_properties_dialog_setup_opacity_scale (dialog, gui); panel_properties_dialog_setup_background_radios (dialog, gui); g_signal_connect (dialog->background_settings, "changed", G_CALLBACK (panel_properties_dialog_background_notify), dialog); panel_properties_dialog_update_for_attached (dialog, panel_toplevel_get_is_attached (dialog->toplevel)); panel_toplevel_push_autohide_disabler (dialog->toplevel); panel_widget_register_open_dialog (panel_toplevel_get_panel_widget (dialog->toplevel), dialog->properties_dialog); #if !GTK_CHECK_VERSION (3, 0, 0) /* FIXME re-add once GTK3 support is fixed */ g_signal_connect (dialog->properties_dialog, "event", G_CALLBACK (config_event), PANEL_GTK_BUILDER_GET (gui, "notebook")); #endif gtk_widget_show (dialog->properties_dialog); return dialog; }