/** * rstto_preferences_dialog_init: * @dialog: The PreferencesDialog, used for configuring ristretto * properties. * * * This function initializes the preferences-dialog. * * * get_properties () * * configure_display_tab * * background_color_frame * * quality_frame * * configure_fullscreen_tab * * clock_frame * * thumbnails_frame * * configure_slideshow_tab * * slideshow_timeout_frame * * configure_control_tab * * scrollwheel_frame * * configure_behaviour_tab * * startup_frame * * desktop_frame */ static void rstto_preferences_dialog_init ( RsttoPreferencesDialog *dialog ) { /* Variable Section */ gboolean bool_invert_zoom_direction; gboolean bool_bgcolor_override; guint uint_slideshow_timeout; gboolean bool_hide_thumbnails_fullscreen; gboolean bool_wrap_images; gboolean bool_maximize_on_startup; gboolean bool_show_clock; gboolean bool_limit_quality; gchar *str_desktop_type = NULL; GdkColor *bgcolor; GtkWidget *timeout_lbl, *timeout_hscale; GtkWidget *display_main_vbox; GtkWidget *display_main_lbl; GtkWidget *fullscreen_main_vbox; GtkWidget *fullscreen_main_lbl; GtkWidget *slideshow_main_vbox; GtkWidget *slideshow_main_lbl; GtkWidget *control_main_vbox; GtkWidget *control_main_lbl; GtkWidget *behaviour_main_vbox; GtkWidget *behaviour_main_lbl; GtkWidget *behaviour_desktop_lbl; GtkWidget *notebook = gtk_notebook_new (); /* Code Section */ dialog->priv = g_new0 (RsttoPreferencesDialogPriv, 1); dialog->priv->settings = rstto_settings_new (); /* * Get all properties from the ristretto settings container */ g_object_get ( G_OBJECT (dialog->priv->settings), "invert-zoom-direction", &bool_invert_zoom_direction, "bgcolor-override", &bool_bgcolor_override, "bgcolor", &bgcolor, "slideshow-timeout", &uint_slideshow_timeout, "hide-thumbnails-fullscreen", &bool_hide_thumbnails_fullscreen, "maximize-on-startup", &bool_maximize_on_startup, "wrap-images", &bool_wrap_images, "desktop-type", &str_desktop_type, "show-clock", &bool_show_clock, "limit-quality", &bool_limit_quality, NULL); /* * Configure the display tab */ display_main_vbox = gtk_vbox_new(FALSE, 0); display_main_lbl = gtk_label_new(_("Display")); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), display_main_vbox, display_main_lbl); /** * Bg-color frame */ dialog->priv->display_tab.bgcolor_vbox = gtk_vbox_new (FALSE, 0); dialog->priv->display_tab.bgcolor_frame = xfce_gtk_frame_box_new_with_content(_("Background color"), dialog->priv->display_tab.bgcolor_vbox); gtk_box_pack_start (GTK_BOX (display_main_vbox), dialog->priv->display_tab.bgcolor_frame, FALSE, FALSE, 0); dialog->priv->display_tab.bgcolor_override_check_button = gtk_check_button_new_with_label (_("Override background color:")); dialog->priv->display_tab.bgcolor_hbox = gtk_hbox_new (FALSE, 4); dialog->priv->display_tab.bgcolor_color_button = gtk_color_button_new(); gtk_box_pack_start (GTK_BOX (dialog->priv->display_tab.bgcolor_hbox), dialog->priv->display_tab.bgcolor_override_check_button, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (dialog->priv->display_tab.bgcolor_hbox), dialog->priv->display_tab.bgcolor_color_button, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (dialog->priv->display_tab.bgcolor_vbox), dialog->priv->display_tab.bgcolor_hbox, FALSE, FALSE, 0); /* set current value */ gtk_color_button_set_color (GTK_COLOR_BUTTON (dialog->priv->display_tab.bgcolor_color_button), bgcolor); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dialog->priv->display_tab.bgcolor_override_check_button), bool_bgcolor_override); gtk_widget_set_sensitive (GTK_WIDGET (dialog->priv->display_tab.bgcolor_color_button), bool_bgcolor_override); /* connect signals */ g_signal_connect (G_OBJECT (dialog->priv->display_tab.bgcolor_override_check_button), "toggled", (GCallback)cb_bgcolor_override_toggled, dialog); g_signal_connect (G_OBJECT (dialog->priv->display_tab.bgcolor_color_button), "color-set", G_CALLBACK (cb_bgcolor_color_set), dialog); dialog->priv->display_tab.quality_vbox = gtk_vbox_new(FALSE, 0); dialog->priv->display_tab.quality_frame = xfce_gtk_frame_box_new_with_content(_("Quality"), dialog->priv->display_tab.quality_vbox); gtk_box_pack_start (GTK_BOX (display_main_vbox), dialog->priv->display_tab.quality_frame, FALSE, FALSE, 0); dialog->priv->display_tab.quality_label = gtk_label_new ( _("With this option enabled, the maximum image-quality will be limited to the screen-size.")); gtk_label_set_line_wrap (GTK_LABEL (dialog->priv->display_tab.quality_label), TRUE); gtk_misc_set_alignment(GTK_MISC(dialog->priv->display_tab.quality_label), 0, 0.5); dialog->priv->display_tab.quality_button = gtk_check_button_new_with_label (_("Limit rendering quality")); gtk_container_add (GTK_CONTAINER (dialog->priv->display_tab.quality_vbox), dialog->priv->display_tab.quality_label); gtk_container_add (GTK_CONTAINER (dialog->priv->display_tab.quality_vbox), dialog->priv->display_tab.quality_button); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dialog->priv->display_tab.quality_button), bool_limit_quality); g_signal_connect (G_OBJECT (dialog->priv->display_tab.quality_button), "toggled", (GCallback)cb_limit_quality_check_button_toggled, dialog); /* * Fullscreen tab */ fullscreen_main_vbox = gtk_vbox_new(FALSE, 0); fullscreen_main_lbl = gtk_label_new(_("Fullscreen")); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), fullscreen_main_vbox, fullscreen_main_lbl); dialog->priv->fullscreen_tab.thumbnail_vbox = gtk_vbox_new(FALSE, 0); dialog->priv->fullscreen_tab.thumbnail_frame = xfce_gtk_frame_box_new_with_content(_("Thumbnails"), dialog->priv->fullscreen_tab.thumbnail_vbox); gtk_box_pack_start (GTK_BOX (fullscreen_main_vbox), dialog->priv->fullscreen_tab.thumbnail_frame, FALSE, FALSE, 0); dialog->priv->fullscreen_tab.hide_thumbnails_fullscreen_lbl = gtk_label_new(_("The thumbnail bar can be automatically hidden when the window is fullscreen.")); gtk_label_set_line_wrap (GTK_LABEL (dialog->priv->fullscreen_tab.hide_thumbnails_fullscreen_lbl), TRUE); gtk_misc_set_alignment(GTK_MISC(dialog->priv->fullscreen_tab.hide_thumbnails_fullscreen_lbl), 0, 0.5); dialog->priv->fullscreen_tab.hide_thumbnails_fullscreen_check_button = gtk_check_button_new_with_label (_("Hide thumbnail bar when fullscreen")); gtk_box_pack_start (GTK_BOX (dialog->priv->fullscreen_tab.thumbnail_vbox), dialog->priv->fullscreen_tab.hide_thumbnails_fullscreen_lbl, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (dialog->priv->fullscreen_tab.thumbnail_vbox), dialog->priv->fullscreen_tab.hide_thumbnails_fullscreen_check_button, FALSE, FALSE, 0); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dialog->priv->fullscreen_tab.hide_thumbnails_fullscreen_check_button), bool_hide_thumbnails_fullscreen); dialog->priv->fullscreen_tab.clock_vbox = gtk_vbox_new(FALSE, 0); dialog->priv->fullscreen_tab.clock_frame = xfce_gtk_frame_box_new_with_content(_("Clock"), dialog->priv->fullscreen_tab.clock_vbox); gtk_box_pack_start (GTK_BOX (fullscreen_main_vbox), dialog->priv->fullscreen_tab.clock_frame, FALSE, FALSE, 0); dialog->priv->fullscreen_tab.clock_label = gtk_label_new ( _("Show an analog clock that displays the current time when the window is fullscreen")); gtk_label_set_line_wrap (GTK_LABEL (dialog->priv->fullscreen_tab.clock_label), TRUE); gtk_misc_set_alignment(GTK_MISC(dialog->priv->fullscreen_tab.clock_label), 0, 0.5); dialog->priv->fullscreen_tab.clock_button = gtk_check_button_new_with_label (_("Show Fullscreen Clock")); gtk_container_add (GTK_CONTAINER (dialog->priv->fullscreen_tab.clock_vbox), dialog->priv->fullscreen_tab.clock_label); gtk_container_add (GTK_CONTAINER (dialog->priv->fullscreen_tab.clock_vbox), dialog->priv->fullscreen_tab.clock_button); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dialog->priv->fullscreen_tab.clock_button), bool_show_clock); g_signal_connect (G_OBJECT (dialog->priv->fullscreen_tab.hide_thumbnails_fullscreen_check_button), "toggled", (GCallback)cb_hide_thumbnails_fullscreen_check_button_toggled, dialog); g_signal_connect (G_OBJECT (dialog->priv->fullscreen_tab.clock_button), "toggled", (GCallback)cb_show_clock_check_button_toggled, dialog); /* * Slideshow tab */ slideshow_main_vbox = gtk_vbox_new(FALSE, 0); slideshow_main_lbl = gtk_label_new(_("Slideshow")); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), slideshow_main_vbox, slideshow_main_lbl); dialog->priv->slideshow_tab.timeout_vbox = gtk_vbox_new(FALSE, 0); dialog->priv->slideshow_tab.timeout_frame = xfce_gtk_frame_box_new_with_content(_("Timeout"), dialog->priv->slideshow_tab.timeout_vbox); gtk_box_pack_start (GTK_BOX (slideshow_main_vbox), dialog->priv->slideshow_tab.timeout_frame, FALSE, FALSE, 0); timeout_lbl = gtk_label_new(_("The time period an individual image is displayed during a slideshow\n(in seconds)")); timeout_hscale = gtk_hscale_new_with_range(1, 60, 1); gtk_misc_set_alignment(GTK_MISC(timeout_lbl), 0, 0.5); gtk_misc_set_padding(GTK_MISC(timeout_lbl), 2, 2); gtk_box_pack_start(GTK_BOX(dialog->priv->slideshow_tab.timeout_vbox), timeout_lbl, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(dialog->priv->slideshow_tab.timeout_vbox), timeout_hscale, FALSE, TRUE, 0); gtk_range_set_value (GTK_RANGE (timeout_hscale), (gdouble)uint_slideshow_timeout); g_signal_connect ( G_OBJECT (timeout_hscale), "value-changed", (GCallback)cb_slideshow_timeout_value_changed, dialog); control_main_vbox = gtk_vbox_new(FALSE, 0); control_main_lbl = gtk_label_new(_("Control")); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), control_main_vbox, control_main_lbl); dialog->priv->control_tab.scroll_vbox = gtk_vbox_new(FALSE, 0); dialog->priv->control_tab.scroll_frame = xfce_gtk_frame_box_new_with_content(_("Scroll wheel"), dialog->priv->control_tab.scroll_vbox); gtk_box_pack_start (GTK_BOX (control_main_vbox), dialog->priv->control_tab.scroll_frame, FALSE, FALSE, 0); dialog->priv->control_tab.zoom_invert_check_button = gtk_check_button_new_with_label (_("Invert zoom direction")); gtk_container_add (GTK_CONTAINER (dialog->priv->control_tab.scroll_vbox), dialog->priv->control_tab.zoom_invert_check_button); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dialog->priv->control_tab.zoom_invert_check_button), bool_invert_zoom_direction); g_signal_connect ( G_OBJECT (dialog->priv->control_tab.zoom_invert_check_button), "toggled", (GCallback)cb_invert_zoom_direction_check_button_toggled, dialog); /* * Behaviour tab */ behaviour_main_vbox = gtk_vbox_new(FALSE, 0); behaviour_main_lbl = gtk_label_new(_("Behaviour")); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), behaviour_main_vbox, behaviour_main_lbl); /********************************************/ dialog->priv->behaviour_tab.startup_vbox = gtk_vbox_new(FALSE, 0); dialog->priv->behaviour_tab.startup_frame = xfce_gtk_frame_box_new_with_content(_("Startup"), dialog->priv->behaviour_tab.startup_vbox); gtk_box_pack_start (GTK_BOX (behaviour_main_vbox), dialog->priv->behaviour_tab.startup_frame, FALSE, FALSE, 0); dialog->priv->behaviour_tab.maximize_window_on_startup_check_button = gtk_check_button_new_with_label (_("Maximize window on startup when opening an image")); gtk_container_add (GTK_CONTAINER (dialog->priv->behaviour_tab.startup_vbox), dialog->priv->behaviour_tab.maximize_window_on_startup_check_button); gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON (dialog->priv->behaviour_tab.maximize_window_on_startup_check_button), bool_maximize_on_startup); dialog->priv->behaviour_tab.wrap_images_check_button = gtk_check_button_new_with_label (_("Wrap around images")); gtk_container_add (GTK_CONTAINER (dialog->priv->behaviour_tab.startup_vbox), dialog->priv->behaviour_tab.wrap_images_check_button); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dialog->priv->behaviour_tab.wrap_images_check_button), bool_wrap_images); g_signal_connect ( G_OBJECT (dialog->priv->behaviour_tab.wrap_images_check_button), "toggled", (GCallback)cb_wrap_images_check_button_toggled, dialog); g_signal_connect ( G_OBJECT (dialog->priv->behaviour_tab.maximize_window_on_startup_check_button), "toggled", (GCallback)cb_maximize_on_startup_check_button_toggled, dialog); /********************************************/ dialog->priv->behaviour_tab.desktop_vbox = gtk_vbox_new(FALSE, 4); dialog->priv->behaviour_tab.desktop_frame = xfce_gtk_frame_box_new_with_content( _("Desktop"), dialog->priv->behaviour_tab.desktop_vbox); gtk_box_pack_start ( GTK_BOX (behaviour_main_vbox), dialog->priv->behaviour_tab.desktop_frame, FALSE, FALSE, 0); behaviour_desktop_lbl = gtk_label_new(NULL); gtk_label_set_markup ( GTK_LABEL (behaviour_desktop_lbl), _("Configure which system is currently managing your desktop.\n" "This setting determines the method <i>Ristretto</i> will use\n" "to configure the desktop wallpaper.")); gtk_misc_set_alignment( GTK_MISC(behaviour_desktop_lbl), 0, 0.5); gtk_box_pack_start ( GTK_BOX (dialog->priv->behaviour_tab.desktop_vbox), behaviour_desktop_lbl, FALSE, FALSE, 0); dialog->priv->behaviour_tab.choose_desktop_combo_box = gtk_combo_box_new_text(); gtk_box_pack_start ( GTK_BOX (dialog->priv->behaviour_tab.desktop_vbox), dialog->priv->behaviour_tab.choose_desktop_combo_box, FALSE, FALSE, 0); gtk_combo_box_insert_text( GTK_COMBO_BOX (dialog->priv->behaviour_tab.choose_desktop_combo_box), DESKTOP_TYPE_NONE, _("None")); gtk_combo_box_insert_text ( GTK_COMBO_BOX (dialog->priv->behaviour_tab.choose_desktop_combo_box), DESKTOP_TYPE_XFCE, _("Xfce")); gtk_combo_box_insert_text ( GTK_COMBO_BOX (dialog->priv->behaviour_tab.choose_desktop_combo_box), DESKTOP_TYPE_GNOME, _("GNOME")); if (str_desktop_type != NULL) { if (0 == g_ascii_strcasecmp (str_desktop_type, "xfce")) { gtk_combo_box_set_active ( GTK_COMBO_BOX (dialog->priv->behaviour_tab.choose_desktop_combo_box), DESKTOP_TYPE_XFCE); } else { if (0 == g_ascii_strcasecmp (str_desktop_type, "gnome")) { gtk_combo_box_set_active ( GTK_COMBO_BOX (dialog->priv->behaviour_tab.choose_desktop_combo_box), DESKTOP_TYPE_GNOME); } else { gtk_combo_box_set_active ( GTK_COMBO_BOX (dialog->priv->behaviour_tab.choose_desktop_combo_box), DESKTOP_TYPE_NONE); } } } else { /* Default, set it to xfce */ gtk_combo_box_set_active ( GTK_COMBO_BOX (dialog->priv->behaviour_tab.choose_desktop_combo_box), DESKTOP_TYPE_XFCE); } g_signal_connect ( G_OBJECT(dialog->priv->behaviour_tab.choose_desktop_combo_box), "changed", (GCallback)cb_choose_desktop_combo_box_changed, dialog); gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), notebook); gtk_widget_show_all (notebook); /* Window should not be resizable */ gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE); gtk_dialog_add_button (GTK_DIALOG (dialog), GTK_STOCK_CLOSE, GTK_RESPONSE_OK); }
void places_cfg_open_dialog(PlacesCfg *cfg) { GtkWidget *dlg; GtkWidget *frame_button, *vbox_button; GtkWidget *frame_menu, *vbox_menu; #if USE_RECENT_DOCUMENTS GtkWidget *frame_recent, *vbox_recent; #endif GtkWidget *frame_search, *vbox_search; GtkWidget *tmp_box, *tmp_label, *tmp_widget; GtkObject * adj; DBG("configure plugin"); dlg = pcfg_make_empty_dialog(cfg); /* BUTTON: frame, vbox */ vbox_button = gtk_vbox_new(FALSE, 4); gtk_widget_show(vbox_button); frame_button = xfce_gtk_frame_box_new_with_content(_("Button"), vbox_button); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dlg)->vbox), frame_button, FALSE, FALSE, 0); /* BUTTON: Show Icon/Label */ tmp_box = gtk_hbox_new(FALSE, 15); gtk_widget_show(tmp_box); gtk_box_pack_start(GTK_BOX(vbox_button), tmp_box, FALSE, FALSE, 0); tmp_label = gtk_label_new_with_mnemonic(_("_Show")); gtk_widget_show(tmp_label); gtk_box_pack_start(GTK_BOX(tmp_box), tmp_label, FALSE, FALSE, 0); tmp_widget = gtk_combo_box_new_text(); gtk_label_set_mnemonic_widget(GTK_LABEL(tmp_label), tmp_widget); gtk_combo_box_append_text(GTK_COMBO_BOX(tmp_widget), _("Icon Only")); gtk_combo_box_append_text(GTK_COMBO_BOX(tmp_widget), _("Label Only")); gtk_combo_box_append_text(GTK_COMBO_BOX(tmp_widget), _("Icon and Label")); exo_mutual_binding_new (G_OBJECT (cfg), "show-button-type", G_OBJECT (tmp_widget), "active"); gtk_widget_show(tmp_widget); gtk_box_pack_start(GTK_BOX(tmp_box), tmp_widget, FALSE, FALSE, 0); /* BUTTON: Label text entry */ tmp_box = gtk_hbox_new(FALSE, 15); gtk_widget_show(tmp_box); gtk_box_pack_start(GTK_BOX(vbox_button), tmp_box, FALSE, FALSE, 0); tmp_label = gtk_label_new_with_mnemonic(_("_Label")); gtk_widget_show(tmp_label); gtk_box_pack_start(GTK_BOX(tmp_box), tmp_label, FALSE, FALSE, 0); tmp_widget = gtk_entry_new(); gtk_label_set_mnemonic_widget(GTK_LABEL(tmp_label), tmp_widget); exo_mutual_binding_new (G_OBJECT (cfg), "button-label", G_OBJECT (tmp_widget), "text"); gtk_widget_show(tmp_widget); gtk_box_pack_start(GTK_BOX(tmp_box), tmp_widget, FALSE, FALSE, 0); /* MENU: frame, vbox */ vbox_menu = gtk_vbox_new(FALSE, 4); gtk_widget_show(vbox_menu); frame_menu = xfce_gtk_frame_box_new_with_content(_("Menu"), vbox_menu); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dlg)->vbox), frame_menu, FALSE, FALSE, 0); /* MENU: Show Icons */ tmp_widget = gtk_check_button_new_with_mnemonic(_("Show _icons in menu")); exo_mutual_binding_new (G_OBJECT (cfg), "show-icons", G_OBJECT (tmp_widget), "active"); gtk_widget_show(tmp_widget); gtk_box_pack_start(GTK_BOX(vbox_menu), tmp_widget, FALSE, FALSE, 0); /* MENU: Show Removable Media */ tmp_widget = gtk_check_button_new_with_mnemonic(_("Show _removable media")); exo_mutual_binding_new (G_OBJECT (cfg), "show-volumes", G_OBJECT (tmp_widget), "active"); gtk_widget_show(tmp_widget); gtk_box_pack_start(GTK_BOX(vbox_menu), tmp_widget, FALSE, FALSE, 0); /* MENU: - Mount and Open (indented) */ tmp_box = gtk_hbox_new(FALSE, 15); /* Gray out this box when "Show removable media" is off */ exo_binding_new (G_OBJECT (cfg), "show-volumes", G_OBJECT (tmp_box), "sensitive"); tmp_widget = gtk_label_new(" "); /* TODO: is there a more appropriate widget? */ gtk_widget_show(tmp_widget); gtk_box_pack_start(GTK_BOX(tmp_box), tmp_widget, FALSE, FALSE, 0); tmp_widget = gtk_check_button_new_with_mnemonic(_("Mount and _Open on click")); exo_mutual_binding_new (G_OBJECT (cfg), "mount-open-volumes", G_OBJECT (tmp_widget), "active"); gtk_widget_show(tmp_widget); gtk_box_pack_start(GTK_BOX(tmp_box), tmp_widget, FALSE, FALSE, 0); gtk_widget_show(tmp_box); gtk_box_pack_start(GTK_BOX(vbox_menu), tmp_box, FALSE, FALSE, 0); /* MENU: Show GTK Bookmarks */ tmp_widget = gtk_check_button_new_with_mnemonic(_("Show GTK _bookmarks")); exo_mutual_binding_new (G_OBJECT (cfg), "show-bookmarks", G_OBJECT (tmp_widget), "active"); gtk_widget_show(tmp_widget); gtk_box_pack_start(GTK_BOX(vbox_menu), tmp_widget, FALSE, FALSE, 0); #if USE_RECENT_DOCUMENTS /* MENU: Show Recent Documents */ tmp_widget = gtk_check_button_new_with_mnemonic(_("Show recent _documents")); exo_mutual_binding_new (G_OBJECT (cfg), "show-recent", G_OBJECT (tmp_widget), "active"); gtk_widget_show(tmp_widget); gtk_box_pack_start(GTK_BOX(vbox_menu), tmp_widget, FALSE, FALSE, 0); /* RECENT DOCUMENTS: frame, vbox */ vbox_recent = gtk_vbox_new(FALSE, 4); gtk_widget_show(vbox_recent); /* Gray out this box when "Show recent documents" is off */ exo_binding_new (G_OBJECT (cfg), "show-recent", G_OBJECT (vbox_recent), "sensitive"); frame_recent = xfce_gtk_frame_box_new_with_content(_("Recent Documents"), vbox_recent); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dlg)->vbox), frame_recent, FALSE, FALSE, 0); /* RECENT DOCUMENTS: Show clear option */ tmp_widget = gtk_check_button_new_with_mnemonic(_("Show cl_ear option")); exo_mutual_binding_new (G_OBJECT (cfg), "show-recent-clear", G_OBJECT (tmp_widget), "active"); gtk_widget_show(tmp_widget); gtk_box_pack_start(GTK_BOX(vbox_recent), tmp_widget, FALSE, FALSE, 0); /* RECENT DOCUMENTS: Number to display */ tmp_box = gtk_hbox_new(FALSE, 15); gtk_widget_show(tmp_box); gtk_box_pack_start(GTK_BOX(vbox_recent), tmp_box, FALSE, FALSE, 0); tmp_label = gtk_label_new_with_mnemonic(_("_Number to display")); gtk_widget_show(tmp_label); gtk_box_pack_start(GTK_BOX(tmp_box), tmp_label, FALSE, FALSE, 0); adj = gtk_adjustment_new(cfg->show_recent_number, 1, 25, 1, 5, 0); tmp_widget = gtk_spin_button_new(GTK_ADJUSTMENT(adj), 1, 0); gtk_label_set_mnemonic_widget(GTK_LABEL(tmp_label), tmp_widget); exo_mutual_binding_new (G_OBJECT (cfg), "show-recent-number", G_OBJECT (adj), "value"); gtk_widget_show(tmp_widget); gtk_box_pack_start(GTK_BOX(tmp_box), tmp_widget, FALSE, FALSE, 0); #endif /* Search: frame, vbox */ vbox_search = gtk_vbox_new(FALSE, 4); gtk_widget_show(vbox_search); frame_search = xfce_gtk_frame_box_new_with_content(_("Search"), vbox_search); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dlg)->vbox), frame_search, FALSE, FALSE, 0); /* Search: command */ tmp_box = gtk_hbox_new(FALSE, 15); gtk_widget_show(tmp_box); gtk_box_pack_start(GTK_BOX(vbox_search), tmp_box, FALSE, FALSE, 0); tmp_label = gtk_label_new_with_mnemonic(_("Co_mmand")); gtk_widget_show(tmp_label); gtk_box_pack_start(GTK_BOX(tmp_box), tmp_label, FALSE, FALSE, 0); tmp_widget = gtk_entry_new(); gtk_label_set_mnemonic_widget(GTK_LABEL(tmp_label), tmp_widget); exo_mutual_binding_new (G_OBJECT (cfg), "search-cmd", G_OBJECT (tmp_widget), "text"); gtk_widget_show(tmp_widget); gtk_box_pack_start(GTK_BOX(tmp_box), tmp_widget, FALSE, FALSE, 0); gtk_widget_show_all(dlg); }
static void xfburn_preferences_dialog_init (XfburnPreferencesDialog * obj) { GtkBox *box = GTK_BOX (GTK_DIALOG (obj)->vbox); XfburnPreferencesDialogPrivate *priv = XFBURN_PREFERENCES_DIALOG_GET_PRIVATE (obj); GtkWidget *vbox, *vbox2, *vbox3, *hbox; GtkWidget *label; GtkWidget *frame; GtkWidget *scrolled_window; GtkListStore *icon_store, *store; gint x,y; GdkPixbuf *icon = NULL; GtkTreeIter iter; GtkTreeViewColumn *column_name; GtkCellRenderer *cell_icon, *cell_name; GtkWidget *button_close; gint idx; gtk_window_set_title (GTK_WINDOW (obj), _("Preferences")); xfce_titled_dialog_set_subtitle (XFCE_TITLED_DIALOG (obj), _("Tune how Xfburn behaves")); gtk_window_set_default_size (GTK_WINDOW (obj), 775, 400); gtk_window_set_destroy_with_parent (GTK_WINDOW (obj), TRUE); gtk_window_set_icon_name (GTK_WINDOW (obj), GTK_STOCK_PREFERENCES); gtk_dialog_set_has_separator (GTK_DIALOG (obj), FALSE); hbox = gtk_hbox_new (FALSE, 0); gtk_box_pack_start (box, hbox, TRUE, TRUE, 0); gtk_widget_show (hbox); scrolled_window = gtk_scrolled_window_new (NULL, NULL); g_object_set (G_OBJECT (scrolled_window), "hscrollbar-policy", GTK_POLICY_NEVER, "shadow-type", GTK_SHADOW_IN, "vscrollbar-policy", GTK_POLICY_NEVER, NULL); gtk_box_pack_start (GTK_BOX (hbox), scrolled_window, FALSE, FALSE, 0); gtk_widget_show (scrolled_window); /* icon bar */ icon_store = gtk_list_store_new (SETTINGS_LIST_N_COLUMNS, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_INT); priv->icon_bar = exo_icon_bar_new_with_model (GTK_TREE_MODEL (icon_store)); exo_icon_bar_set_pixbuf_column (EXO_ICON_BAR (priv->icon_bar), SETTINGS_LIST_PIXBUF_COLUMN); exo_icon_bar_set_text_column (EXO_ICON_BAR (priv->icon_bar), SETTINGS_LIST_TEXT_COLUMN); gtk_container_add (GTK_CONTAINER (scrolled_window), priv->icon_bar); gtk_widget_show (priv->icon_bar); /* notebook */ priv->notebook = gtk_notebook_new (); gtk_container_set_border_width (GTK_CONTAINER (priv->notebook), BORDER); g_object_set (G_OBJECT (priv->notebook), "show-border", FALSE, "show-tabs", FALSE, NULL); gtk_box_pack_start (GTK_BOX (hbox), priv->notebook, TRUE, TRUE, BORDER); gtk_widget_show (priv->notebook); /* general tab */ vbox = gtk_vbox_new (FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox), BORDER); idx = gtk_notebook_append_page (GTK_NOTEBOOK (priv->notebook), vbox, NULL); gtk_widget_show (vbox); vbox2 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox2); frame = xfce_gtk_frame_box_new_with_content (_("Temporary directory"), vbox2); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, BORDER); gtk_widget_show (frame); priv->chooser_button = gtk_file_chooser_button_new (_("Temporary directory"), GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER); gtk_box_pack_start (GTK_BOX (vbox2), priv->chooser_button, FALSE, FALSE, BORDER); gtk_widget_show (priv->chooser_button); priv->check_clean_tmpdir = gtk_check_button_new_with_mnemonic (_("_Clean temporary directory on exit")); gtk_box_pack_start (GTK_BOX (vbox2), priv->check_clean_tmpdir, FALSE, FALSE, BORDER); gtk_widget_show (priv->check_clean_tmpdir); vbox2 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox2); frame = xfce_gtk_frame_box_new_with_content (_("File browser"), vbox2); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, BORDER); gtk_widget_show (frame); priv->check_show_hidden = gtk_check_button_new_with_mnemonic (_("Show _hidden files")); gtk_box_pack_start (GTK_BOX (vbox2), priv->check_show_hidden, FALSE, FALSE, BORDER); gtk_widget_show (priv->check_show_hidden); g_signal_connect (G_OBJECT (priv->check_show_hidden), "clicked", G_CALLBACK (cb_show_hidden_clicked), NULL); priv->check_show_human_readable = gtk_check_button_new_with_mnemonic (_("Show human_readable filesizes")); gtk_box_pack_start (GTK_BOX (vbox2), priv->check_show_human_readable, FALSE, FALSE, BORDER); gtk_widget_show (priv->check_show_human_readable); icon = gtk_widget_render_icon (GTK_WIDGET (priv->icon_bar), GTK_STOCK_PROPERTIES, GTK_ICON_SIZE_DIALOG, NULL); gtk_list_store_append (icon_store, &iter); gtk_list_store_set (icon_store, &iter, SETTINGS_LIST_PIXBUF_COLUMN, icon, SETTINGS_LIST_TEXT_COLUMN, _("General"), SETTINGS_LIST_INDEX_COLUMN, idx, -1); g_object_unref (G_OBJECT (icon)); /* devices tab */ vbox = gtk_vbox_new (FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox), BORDER); idx = gtk_notebook_append_page (GTK_NOTEBOOK (priv->notebook), vbox, NULL); gtk_widget_show (vbox); label = gtk_label_new (_("Devices")); gtk_widget_show (label); gtk_notebook_set_tab_label (GTK_NOTEBOOK (priv->notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (priv->notebook), 1), label); gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT); vbox2 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox2); frame = xfce_gtk_frame_box_new_with_content (_("Detected devices"), vbox2); gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, BORDER); gtk_widget_show (frame); scrolled_window = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_window), GTK_SHADOW_IN); gtk_widget_show (scrolled_window); gtk_box_pack_start (GTK_BOX (vbox2), scrolled_window, TRUE, TRUE, BORDER); store = gtk_list_store_new (DEVICE_LIST_N_COLUMNS, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN); priv->treeview_devices = gtk_tree_view_new_with_model (GTK_TREE_MODEL (store)); gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (store), DEVICE_LIST_COLUMN_NAME, GTK_SORT_ASCENDING); gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (priv->treeview_devices), TRUE); gtk_widget_show (priv->treeview_devices); gtk_container_add (GTK_CONTAINER (scrolled_window), priv->treeview_devices); g_object_unref (store); /* add columns */ column_name = gtk_tree_view_column_new (); gtk_tree_view_column_set_title (column_name, _("Name")); gtk_tree_view_column_set_expand (column_name, TRUE); cell_icon = gtk_cell_renderer_pixbuf_new (); gtk_tree_view_column_pack_start (column_name, cell_icon, FALSE); gtk_tree_view_column_set_attributes (column_name, cell_icon, "pixbuf", DEVICE_LIST_COLUMN_ICON, NULL); g_object_set (cell_icon, "xalign", 0.0, "ypad", 0, NULL); cell_name = gtk_cell_renderer_text_new (); gtk_tree_view_column_pack_start (column_name, cell_name, TRUE); gtk_tree_view_column_set_attributes (column_name, cell_name, "text", DEVICE_LIST_COLUMN_NAME, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (priv->treeview_devices), column_name); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (priv->treeview_devices), -1, _("Node"), gtk_cell_renderer_text_new (), "text", DEVICE_LIST_COLUMN_NODE, NULL); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (priv->treeview_devices), -1, _("Write CD-R"), gtk_cell_renderer_toggle_new (), "active", DEVICE_LIST_COLUMN_CDR, NULL); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (priv->treeview_devices), -1, _("Write CD-RW"), gtk_cell_renderer_toggle_new (), "active", DEVICE_LIST_COLUMN_CDRW, NULL); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (priv->treeview_devices), -1, _("Write DVD-R"), gtk_cell_renderer_toggle_new (), "active", DEVICE_LIST_COLUMN_DVDR, NULL); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (priv->treeview_devices), -1, _("Write DVD-RAM"), gtk_cell_renderer_toggle_new (), "active", DEVICE_LIST_COLUMN_DVDRAM, NULL); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (priv->treeview_devices), -1, _("Write Blu-ray"), gtk_cell_renderer_toggle_new (), "active", DEVICE_LIST_COLUMN_BD, NULL); hbox = gtk_hbox_new (FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox2), hbox, FALSE, FALSE, BORDER); gtk_widget_show (hbox); priv->button_scan = xfce_gtk_button_new_mixed (GTK_STOCK_CDROM, _("Sc_an for devices")); gtk_box_pack_end (GTK_BOX (hbox), priv->button_scan, FALSE, FALSE, BORDER); g_signal_connect (G_OBJECT (priv->button_scan), "clicked", G_CALLBACK (scan_button_clicked_cb), obj); gtk_widget_show (priv->button_scan); gtk_icon_size_lookup (GTK_ICON_SIZE_DIALOG, &x, &y); icon = gtk_icon_theme_load_icon ( gtk_icon_theme_get_default(), "media-optical", x, GTK_ICON_LOOKUP_GENERIC_FALLBACK, NULL); if (!icon) icon = gtk_icon_theme_load_icon ( gtk_icon_theme_get_default(), "media-cdrom", x, GTK_ICON_LOOKUP_GENERIC_FALLBACK, NULL); if (!icon) icon = gtk_icon_theme_load_icon ( gtk_icon_theme_get_default(), GTK_STOCK_CDROM, x, GTK_ICON_LOOKUP_GENERIC_FALLBACK, NULL); gtk_list_store_append (icon_store, &iter); gtk_list_store_set (icon_store, &iter, SETTINGS_LIST_PIXBUF_COLUMN, icon, SETTINGS_LIST_TEXT_COLUMN, _("Devices"), SETTINGS_LIST_INDEX_COLUMN, idx, -1); if (icon) g_object_unref (G_OBJECT (icon)); exo_mutual_binding_new (G_OBJECT (priv->notebook), "page", G_OBJECT (priv->icon_bar), "active"); /* below the device list */ #if 0 priv->check_empty_speed_list = gtk_check_button_new_with_mnemonic (_("Show warning on _empty speed list")); gtk_box_pack_start (GTK_BOX (vbox2), priv->check_empty_speed_list, FALSE, FALSE, BORDER); gtk_widget_show (priv->check_empty_speed_list); #endif /* fifo */ vbox3 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox3); frame = xfce_gtk_frame_box_new_with_content (_("FIFO buffer size (in kb)"), vbox3); gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, BORDER); gtk_widget_show (frame); priv->scale_fifo = gtk_hscale_new_with_range (0.0, FIFO_MAX_SIZE, 32.0); gtk_scale_set_value_pos (GTK_SCALE (priv->scale_fifo), GTK_POS_LEFT); gtk_range_set_value (GTK_RANGE (priv->scale_fifo), 0); gtk_box_pack_start (GTK_BOX (vbox3), priv->scale_fifo, FALSE, FALSE, BORDER/2); gtk_widget_show (priv->scale_fifo); /* action buttons */ button_close = gtk_button_new_from_stock ("gtk-close"); gtk_widget_show (button_close); gtk_dialog_add_action_widget (GTK_DIALOG (obj), button_close, GTK_RESPONSE_CLOSE); GTK_WIDGET_SET_FLAGS (button_close, GTK_CAN_DEFAULT); gtk_widget_grab_focus (button_close); gtk_widget_grab_default (button_close); g_signal_connect (G_OBJECT (obj), "response", G_CALLBACK (xfburn_preferences_dialog_response_cb), priv); refresh_devices_list (obj); g_object_unref (icon_store); }
static void xfburn_burn_image_dialog_init (XfburnBurnImageDialog * obj) { GtkBox *box = GTK_BOX (GTK_DIALOG (obj)->vbox); XfburnBurnImageDialogPrivate *priv = XFBURN_BURN_IMAGE_DIALOG_GET_PRIVATE (obj); GdkPixbuf *icon = NULL; GtkFileFilter *filter; GtkWidget *frame; GtkWidget *vbox; GtkWidget *button; XfburnDevice *device; gtk_window_set_title (GTK_WINDOW (obj), _("Burn image")); gtk_window_set_destroy_with_parent (GTK_WINDOW (obj), TRUE); icon = gtk_widget_render_icon (GTK_WIDGET (obj), XFBURN_STOCK_BURN_CD, GTK_ICON_SIZE_DIALOG, NULL); gtk_window_set_icon (GTK_WINDOW (obj), icon); g_object_unref (icon); /* file */ priv->chooser_image = gtk_file_chooser_button_new (_("Image to burn"), GTK_FILE_CHOOSER_ACTION_OPEN); gtk_widget_show (priv->chooser_image); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, _("All files")); gtk_file_filter_add_pattern (filter, "*"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER(priv->chooser_image), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, _("ISO images")); gtk_file_filter_add_pattern (filter, "*.[iI][sS][oO]"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (priv->chooser_image), filter); gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (priv->chooser_image), filter); if(xfburn_main_has_initial_dir ()) { gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (priv->chooser_image), xfburn_main_get_initial_dir ()); } if (last_file) { gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (priv->chooser_image), last_file); } frame = xfce_gtk_frame_box_new_with_content (_("Image to burn"), priv->chooser_image); gtk_widget_show (frame); gtk_box_pack_start (box, frame, FALSE, FALSE, BORDER); /* red label for image */ priv->image_label = gtk_label_new (""); gtk_widget_show (priv->image_label); gtk_box_pack_start (GTK_BOX (box), priv->image_label, FALSE, FALSE, 0); update_image_label (GTK_FILE_CHOOSER (priv->chooser_image), obj); g_signal_connect (G_OBJECT (priv->chooser_image), "selection-changed", G_CALLBACK (update_image_label), obj); /* devices list */ priv->device_box = xfburn_device_box_new (SHOW_CD_WRITERS | SHOW_CDRW_WRITERS | SHOW_DVD_WRITERS | SHOW_MODE_SELECTION | SHOW_SPEED_SELECTION); gtk_widget_show (priv->device_box); frame = xfce_gtk_frame_box_new_with_content (_("Burning device"), priv->device_box); gtk_widget_show (frame); gtk_box_pack_start (box, frame, FALSE, FALSE, BORDER); /* options */ vbox = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox); frame = xfce_gtk_frame_box_new_with_content (_("Options"), vbox); gtk_widget_show (frame); gtk_box_pack_start (box, frame, FALSE, FALSE, BORDER); priv->check_eject = gtk_check_button_new_with_mnemonic (_("E_ject disk")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->check_eject), TRUE); gtk_widget_show (priv->check_eject); gtk_box_pack_start (GTK_BOX (vbox), priv->check_eject, FALSE, FALSE, BORDER); priv->check_dummy = gtk_check_button_new_with_mnemonic (_("_Dummy write")); gtk_widget_show (priv->check_dummy); gtk_box_pack_start (GTK_BOX (vbox), priv->check_dummy, FALSE, FALSE, BORDER); priv->check_burnfree = gtk_check_button_new_with_mnemonic (_("Burn_Free")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->check_burnfree), TRUE); gtk_widget_show (priv->check_burnfree); gtk_box_pack_start (GTK_BOX (vbox), priv->check_burnfree, FALSE, FALSE, BORDER); priv->check_stream_recording = gtk_check_button_new_with_mnemonic (_("Stream _Recording")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->check_stream_recording), TRUE); gtk_widget_show (priv->check_stream_recording); gtk_box_pack_start (GTK_BOX (vbox), priv->check_stream_recording, FALSE, FALSE, BORDER); priv->check_quit = gtk_check_button_new_with_mnemonic (_("_Quit after success")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->check_quit), xfburn_settings_get_boolean("quit_after_success", FALSE)); gtk_widget_show (priv->check_quit); gtk_box_pack_start (GTK_BOX (vbox), priv->check_quit, FALSE, FALSE, BORDER); /* action buttons */ button = gtk_button_new_from_stock (GTK_STOCK_CANCEL); gtk_widget_show (button); gtk_dialog_add_action_widget (GTK_DIALOG (obj), button, GTK_RESPONSE_CANCEL); priv->burn_button = xfburn_gtk_button_new_mixed (XFBURN_STOCK_BURN_CD, _("_Burn image")); gtk_widget_show (priv->burn_button); g_signal_connect (G_OBJECT (priv->burn_button), "clicked", G_CALLBACK (cb_clicked_ok), obj); gtk_container_add (GTK_CONTAINER( GTK_DIALOG(obj)->action_area), priv->burn_button); //gtk_dialog_add_action_widget (GTK_DIALOG (obj), button, GTK_RESPONSE_OK); GTK_WIDGET_SET_FLAGS (priv->burn_button, GTK_CAN_DEFAULT); gtk_widget_grab_focus (priv->burn_button); gtk_widget_grab_default (priv->burn_button); priv->devlist = xfburn_device_list_new (); priv->handler_volchange = g_signal_connect (G_OBJECT (priv->devlist), "volume-change-end", G_CALLBACK (cb_volume_change_end), obj); g_signal_connect (G_OBJECT (obj), "response", G_CALLBACK (cb_dialog_response), obj); device = xfburn_device_list_get_current_device (priv->devlist); if (device) cb_volume_change_end (priv->devlist, TRUE, device, obj); }