static gboolean exitbutton_size_changed(XfcePanelPlugin *plugin, gint size, ExitbuttonPlugin *exitbutton) { /* shrink the gtk button's image to new size -*/ #ifdef HAS_PANEL_49 size /= xfce_panel_plugin_get_nrows (plugin); #endif gtk_widget_set_size_request(GTK_WIDGET(exitbutton->button), size, size); /* we handled the change */ return TRUE; }
static void places_button_resize(PlacesButton *self) { gboolean show_label; gint new_size; gboolean vertical = FALSE; #ifdef HAS_PANEL_49 gboolean deskbar = FALSE; #endif gint nrows = 1; if (self->plugin == NULL) return; new_size = xfce_panel_plugin_get_size(self->plugin); self->plugin_size = new_size; DBG("Panel size: %d", new_size); show_label = self->label_text != NULL; #ifdef HAS_PANEL_49 if (xfce_panel_plugin_get_mode(self->plugin) == XFCE_PANEL_PLUGIN_MODE_DESKBAR) deskbar = TRUE; else if (xfce_panel_plugin_get_mode(self->plugin) == XFCE_PANEL_PLUGIN_MODE_VERTICAL) vertical = TRUE; nrows = xfce_panel_plugin_get_nrows(self->plugin); #else if (xfce_panel_plugin_get_orientation(self->plugin) == GTK_ORIENTATION_VERTICAL) vertical = TRUE; #endif new_size /= nrows; if (show_label) { #ifdef HAS_PANEL_49 xfce_panel_plugin_set_small (self->plugin, deskbar ? FALSE : TRUE); #endif if (vertical) gtk_alignment_set (GTK_ALIGNMENT (self->alignment), 0.5, 0.0, 0.0, 1.0); else gtk_alignment_set (GTK_ALIGNMENT (self->alignment), 0.0, 0.5, 1.0, 0.0); } else { #ifdef HAS_PANEL_49 xfce_panel_plugin_set_small(self->plugin, TRUE); #endif gtk_alignment_set (GTK_ALIGNMENT (self->alignment), 0.5, 0.5, 1.0, 1.0); } /* label */ places_button_resize_label(self, show_label); }
static gboolean xkb_calculate_sizes (t_xkb *xkb, GtkOrientation orientation, gint panel_size) { guint nrows; nrows = xfce_panel_plugin_get_nrows (xkb->plugin); panel_size /= nrows; TRACE ("calculate_sizes(%p: %d,%d)", xkb, panel_size, nrows); switch (orientation) { case GTK_ORIENTATION_HORIZONTAL: xkb->vsize = panel_size; if (nrows > 1) { xkb->hsize = xkb->vsize; } else { xkb->hsize = (int) (1.33 * panel_size); } gtk_widget_set_size_request (xkb->btn, xkb->hsize, xkb->vsize); break; case GTK_ORIENTATION_VERTICAL: xkb->hsize = panel_size; if (nrows > 1) { xkb->vsize = xkb->hsize; } else { xkb->vsize = (int) (0.75 * panel_size); } if (xkb->vsize < 10) xkb->vsize = 10; gtk_widget_set_size_request (xkb->btn, xkb->hsize, xkb->vsize); break; default: break; } DBG ("size requested: h/v (%p: %d/%d)", xkb, xkb->hsize, xkb->vsize); xkb_refresh_gui (xkb); return TRUE; }