[Xfce4-commits] <xfce4-panel:andrzejr/deskbar-applicationsmenu> applicationsmenu: syncing with nick/desktop-mode.
Andrzej
noreply at xfce.org
Tue Dec 13 07:20:01 CET 2011
Updating branch refs/heads/andrzejr/deskbar-applicationsmenu
to cd4b663b59a04caab2a7feeac9cebff37d95390c (commit)
from 2370ecfba014032408dfb237c81dcb7bf113d32e (commit)
commit cd4b663b59a04caab2a7feeac9cebff37d95390c
Author: Andrzej <ndrwrdck at gmail.com>
Date: Tue Dec 13 13:52:01 2011 +0900
applicationsmenu: syncing with nick/desktop-mode.
plugins/applicationsmenu/applicationsmenu.c | 100 +++++++++++++-------------
1 files changed, 50 insertions(+), 50 deletions(-)
diff --git a/plugins/applicationsmenu/applicationsmenu.c b/plugins/applicationsmenu/applicationsmenu.c
index ca4eac1..0193f8d 100644
--- a/plugins/applicationsmenu/applicationsmenu.c
+++ b/plugins/applicationsmenu/applicationsmenu.c
@@ -103,8 +103,6 @@ static gboolean applications_menu_plugin_size_changed (XfcePanelPlugin
gint size);
static void applications_menu_plugin_mode_changed (XfcePanelPlugin *panel_plugin,
XfcePanelPluginMode mode);
-static void applications_menu_plugin_nrows_changed (XfcePanelPlugin *panel_plugin,
- guint nrows);
static void applications_menu_plugin_configure_plugin (XfcePanelPlugin *panel_plugin);
static gboolean applications_menu_plugin_remote_event (XfcePanelPlugin *panel_plugin,
const gchar *name,
@@ -140,7 +138,6 @@ applications_menu_plugin_class_init (ApplicationsMenuPluginClass *klass)
plugin_class->free_data = applications_menu_plugin_free_data;
plugin_class->size_changed = applications_menu_plugin_size_changed;
plugin_class->mode_changed = applications_menu_plugin_mode_changed;
- plugin_class->nrows_changed = applications_menu_plugin_nrows_changed;
plugin_class->configure_plugin = applications_menu_plugin_configure_plugin;
plugin_class->remote_event = applications_menu_plugin_remote_event;
@@ -346,8 +343,14 @@ applications_menu_plugin_set_property (GObject *object,
plugin->button_title != NULL ? plugin->button_title : "");
gtk_widget_set_tooltip_text (plugin->button,
exo_str_is_empty (plugin->button_title) ? NULL : plugin->button_title);
- applications_menu_plugin_size_changed (XFCE_PANEL_PLUGIN (plugin),
- xfce_panel_plugin_get_size (XFCE_PANEL_PLUGIN (plugin)));
+
+ /* check if the label still fits */
+ if (xfce_panel_plugin_get_mode (XFCE_PANEL_PLUGIN (plugin)) == XFCE_PANEL_PLUGIN_MODE_DESKBAR
+ && plugin->show_button_title)
+ {
+ applications_menu_plugin_size_changed (XFCE_PANEL_PLUGIN (plugin),
+ xfce_panel_plugin_get_size (XFCE_PANEL_PLUGIN (plugin)));
+ }
return;
case PROP_BUTTON_ICON:
@@ -425,80 +428,77 @@ applications_menu_plugin_size_changed (XfcePanelPlugin *panel_plugin,
gint size)
{
ApplicationsMenuPlugin *plugin = XFCE_APPLICATIONS_MENU_PLUGIN (panel_plugin);
+ gint row_size;
gint icon_size;
GtkStyle *style;
- gint plugin_size;
- gint plugin_nrows;
XfcePanelPluginMode mode;
- GtkOrientation orientation;
GtkRequisition label_size;
+ GtkOrientation orientation;
+ gint border_thickness;
- plugin_size = xfce_panel_plugin_get_size (panel_plugin);
- plugin_nrows = (gint) xfce_panel_plugin_get_nrows (panel_plugin);
+ row_size = size / xfce_panel_plugin_get_nrows (panel_plugin);
- if (size > 2 * plugin_size / plugin_nrows)
- size = 2 * plugin_size / plugin_nrows;
+ gtk_box_set_child_packing (GTK_BOX (plugin->box), plugin->icon,
+ !plugin->show_button_title, !plugin->show_button_title,
+ 0, GTK_PACK_START);
- style = gtk_widget_get_style (plugin->button);
- icon_size = size - 2 * MAX (style->xthickness, style->ythickness);
+ mode = xfce_panel_plugin_get_mode (panel_plugin);
- xfce_panel_image_set_size (XFCE_PANEL_IMAGE (plugin->icon), icon_size);
+ if (mode == XFCE_PANEL_PLUGIN_MODE_HORIZONTAL)
+ orientation = GTK_ORIENTATION_HORIZONTAL;
+ else
+ orientation = GTK_ORIENTATION_VERTICAL;
- mode = xfce_panel_plugin_get_mode (panel_plugin);
- orientation = (mode == XFCE_PANEL_PLUGIN_MODE_HORIZONTAL) ?
- GTK_ORIENTATION_HORIZONTAL : GTK_ORIENTATION_VERTICAL;
+ if (!plugin->show_button_title)
+ {
+ xfce_panel_image_set_size (XFCE_PANEL_IMAGE (plugin->icon), -1);
- /* deskbar mode & button title */
- if (plugin->show_button_title &&
- mode == XFCE_PANEL_PLUGIN_MODE_DESKBAR)
+ if (mode == XFCE_PANEL_PLUGIN_MODE_HORIZONTAL)
+ gtk_widget_set_size_request (GTK_WIDGET (panel_plugin), row_size, size);
+ else
+ gtk_widget_set_size_request (GTK_WIDGET (panel_plugin), size, row_size);
+ }
+ else
{
- gtk_widget_size_request(GTK_WIDGET (plugin->label), &label_size);
+ style = gtk_widget_get_style (plugin->button);
+ border_thickness = 2 * MAX (style->xthickness, style->ythickness) + 2;
- /* the title fits next to the icon */
- if (label_size.width <= plugin_size - size - MAX (style->xthickness, style->ythickness))
+ icon_size = row_size - border_thickness;
+ xfce_panel_image_set_size (XFCE_PANEL_IMAGE (plugin->icon), icon_size);
+ gtk_widget_set_size_request (GTK_WIDGET (panel_plugin), -1, -1);
+
+ if (mode == XFCE_PANEL_PLUGIN_MODE_DESKBAR)
{
- orientation = GTK_ORIENTATION_HORIZONTAL;
+ /* check if the label fits next to the icon */
+ gtk_widget_size_request (GTK_WIDGET (plugin->label), &label_size);
+ if (label_size.width <= size - border_thickness - icon_size)
+ orientation = GTK_ORIENTATION_HORIZONTAL;
}
}
- gtk_orientable_set_orientation (GTK_ORIENTABLE (plugin->box),
- orientation);
+
+ gtk_orientable_set_orientation (GTK_ORIENTABLE (plugin->box), orientation);
+
return TRUE;
}
static void
-applications_menu_plugin_mode_changed (XfcePanelPlugin *panel_plugin,
- XfcePanelPluginMode mode)
+applications_menu_plugin_mode_changed (XfcePanelPlugin *panel_plugin,
+ XfcePanelPluginMode mode)
{
ApplicationsMenuPlugin *plugin = XFCE_APPLICATIONS_MENU_PLUGIN (panel_plugin);
+ gint angle;
- if (mode != XFCE_PANEL_PLUGIN_MODE_VERTICAL)
- {
- gtk_orientable_set_orientation (GTK_ORIENTABLE (plugin->box), GTK_ORIENTATION_HORIZONTAL);
- /* gtk_box_reorder_child (GTK_BOX (plugin->box), plugin->icon, 0); */
- gtk_label_set_angle (GTK_LABEL (plugin->label), 0);
- }
- else
- {
- gtk_orientable_set_orientation (GTK_ORIENTABLE (plugin->box), GTK_ORIENTATION_VERTICAL);
- /* gtk_box_reorder_child (GTK_BOX (plugin->box), plugin->icon, -1); */
- gtk_label_set_angle (GTK_LABEL (plugin->label), 270);
- }
- applications_menu_plugin_size_changed (panel_plugin,
- xfce_panel_plugin_get_size (panel_plugin));
-}
-
+ angle = (mode == XFCE_PANEL_PLUGIN_MODE_VERTICAL) ? 270 : 0;
+ gtk_label_set_angle (GTK_LABEL (plugin->label), angle);
-static void
-applications_menu_plugin_nrows_changed (XfcePanelPlugin *panel_plugin,
- guint nrows)
-{
applications_menu_plugin_size_changed (panel_plugin,
- xfce_panel_plugin_get_size (panel_plugin));
+ xfce_panel_plugin_get_size (panel_plugin));
}
+
static void
applications_menu_plugin_configure_plugin_file_set (GtkFileChooserButton *button,
ApplicationsMenuPlugin *plugin)
More information about the Xfce4-commits
mailing list