static void panel_properties_dialog_setup_size_spin (PanelPropertiesDialog *dialog, GladeXML *gui) { dialog->size_widgets = glade_xml_get_widget (gui, "size_widgets"); g_return_if_fail (dialog->size_widgets != NULL); dialog->size_spin = glade_xml_get_widget (gui, "size_spin"); g_return_if_fail (dialog->size_spin != NULL); dialog->size_label = glade_xml_get_widget (gui, "size_label"); g_return_if_fail (dialog->size_label != NULL); dialog->size_label_pixels = glade_xml_get_widget (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_is_writable_toplevel_size (dialog->toplevel)) { 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_size_spin_update_range (PanelPropertiesDialog *dialog) { //TODO: we should also do this when the monitor size changes /* note: we might not be fully setup, so we have to do checks */ if (!dialog->size_spin) return; 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)); }
static void panel_properties_dialog_update_orientation (PanelPropertiesDialog *dialog, GConfValue *value) { PanelOrientation orientation; GtkTreeModel *model; GtkTreeIter iter; OrientationComboItem *item; int max_size; int spin_size; int profile_size; if (!value || value->type != GCONF_VALUE_STRING) return; if (!panel_profile_map_orientation_string (gconf_value_get_string (value), &orientation)) return; /* change the maximum size of the panel */ //TODO: we should also do this when the monitor size changes max_size = panel_toplevel_get_maximum_size (dialog->toplevel); spin_size = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (dialog->size_spin)); profile_size = panel_profile_get_toplevel_size (dialog->toplevel); gtk_spin_button_set_range (GTK_SPIN_BUTTON (dialog->size_spin), panel_toplevel_get_minimum_size (dialog->toplevel), max_size); if (spin_size > max_size) gtk_spin_button_set_value (GTK_SPIN_BUTTON (dialog->size_spin), max_size); else if (spin_size != profile_size) gtk_spin_button_set_value (GTK_SPIN_BUTTON (dialog->size_spin), MIN (profile_size, max_size)); /* update the orientation combo box */ model = gtk_combo_box_get_model (GTK_COMBO_BOX (dialog->orientation_combo)); if (!gtk_tree_model_get_iter_first (model, &iter)) return; do { gtk_tree_model_get (model, &iter, COLUMN_ITEM, &item, -1); if (item != NULL && item->orientation == orientation) { gtk_combo_box_set_active_iter (GTK_COMBO_BOX (dialog->orientation_combo), &iter); return; } } while (gtk_tree_model_iter_next (model, &iter)); }