Updating branch refs/heads/andrzejr/deskbar-launcher
         to e8bc0a9a0453aa7501c73aa3151565cb023e8ab9 (commit)
       from f9af320ee3f50582039e8f596c87948a37029770 (commit)

commit e8bc0a9a0453aa7501c73aa3151565cb023e8ab9
Author: Andrzej <ndrwr...@gmail.com>
Date:   Mon Dec 12 23:41:36 2011 +0900

    launcher: accumulated changes from andrzejr/deskbar-github branch.

 plugins/launcher/launcher.c |   36 ++++++++++++++++++++++++++++++------
 1 files changed, 30 insertions(+), 6 deletions(-)

diff --git a/plugins/launcher/launcher.c b/plugins/launcher/launcher.c
index b2354a3..cc90685 100644
--- a/plugins/launcher/launcher.c
+++ b/plugins/launcher/launcher.c
@@ -70,6 +70,8 @@ static void               launcher_plugin_orientation_changed 
          (XfcePan
                                                                          
GtkOrientation        orientation);
 static gboolean           launcher_plugin_size_changed                  
(XfcePanelPlugin      *panel_plugin,
                                                                          gint  
                size);
+static void               launcher_plugin_nrows_changed                 
(XfcePanelPlugin      *panel_plugin,
+                                                                         guint 
                nrows);
 static void               launcher_plugin_configure_plugin              
(XfcePanelPlugin      *panel_plugin);
 static void               launcher_plugin_screen_position_changed       
(XfcePanelPlugin      *panel_plugin,
                                                                          
XfceScreenPosition    position);
@@ -270,6 +272,7 @@ launcher_plugin_class_init (LauncherPluginClass *klass)
   plugin_class->free_data = launcher_plugin_free_data;
   plugin_class->orientation_changed = launcher_plugin_orientation_changed;
   plugin_class->size_changed = launcher_plugin_size_changed;
+  plugin_class->nrows_changed = launcher_plugin_nrows_changed;
   plugin_class->configure_plugin = launcher_plugin_configure_plugin;
   plugin_class->screen_position_changed = 
launcher_plugin_screen_position_changed;
   plugin_class->removed = launcher_plugin_removed;
@@ -852,10 +855,13 @@ launcher_plugin_set_property (GObject      *object,
         gtk_widget_destroy (plugin->child);
 
       /* create child */
-      if (G_UNLIKELY (plugin->show_label))
+      if (G_UNLIKELY (plugin->show_label)) {
         plugin->child = gtk_label_new (NULL);
-      else
+        xfce_panel_plugin_set_small (XFCE_PANEL_PLUGIN (plugin), FALSE);
+      } else {
         plugin->child = xfce_panel_image_new ();
+        xfce_panel_plugin_set_small (XFCE_PANEL_PLUGIN (plugin), TRUE);
+      }
       gtk_container_add (GTK_CONTAINER (plugin->button), plugin->child);
       gtk_widget_show (plugin->child);
 
@@ -1004,6 +1010,8 @@ launcher_plugin_construct (XfcePanelPlugin *panel_plugin)
   /* show the configure menu item */
   xfce_panel_plugin_menu_show_configure (XFCE_PANEL_PLUGIN (plugin));
 
+  xfce_panel_plugin_set_small (panel_plugin, TRUE);
+
   /* lookup the config directory where this launcher stores it's desktop files 
*/
   file = g_strdup_printf (RELATIVE_CONFIG_PATH,
                           xfce_panel_plugin_get_name (XFCE_PANEL_PLUGIN 
(plugin)),
@@ -1235,6 +1243,7 @@ launcher_plugin_size_changed (XfcePanelPlugin 
*panel_plugin,
   gint               a_width, a_height;
   gboolean           horizontal;
   LauncherArrowType  arrow_position;
+  guint              nrows;
 
   /* initialize the plugin size */
   p_width = p_height = size;
@@ -1281,15 +1290,30 @@ launcher_plugin_size_changed (XfcePanelPlugin 
*panel_plugin,
     }
 
   /* set the panel plugin size */
-  if (plugin->show_label)
-    gtk_widget_set_size_request (GTK_WIDGET (panel_plugin), -1, -1);
-  else
-    gtk_widget_set_size_request (GTK_WIDGET (panel_plugin), p_width, p_height);
+  nrows = xfce_panel_plugin_get_nrows (XFCE_PANEL_PLUGIN (plugin));
+  if (plugin->show_label) {
+    horizontal = !!(xfce_panel_plugin_get_orientation (panel_plugin) ==
+                    GTK_ORIENTATION_HORIZONTAL);
+    if (horizontal)
+      gtk_widget_set_size_request (GTK_WIDGET (plugin), -1, -1);
+    else
+      gtk_widget_set_size_request (GTK_WIDGET (plugin), -1, p_height / nrows);
+  } else
+    gtk_widget_set_size_request (GTK_WIDGET (plugin), p_width / nrows, 
p_height / nrows);
 
   return TRUE;
 }
 
 
+static void
+launcher_plugin_nrows_changed (XfcePanelPlugin *panel_plugin,
+                               guint            nrows)
+{
+  launcher_plugin_size_changed (XFCE_PANEL_PLUGIN (panel_plugin),
+                                xfce_panel_plugin_get_size (XFCE_PANEL_PLUGIN 
(panel_plugin)));
+}
+
+
 
 static void
 launcher_plugin_configure_plugin (XfcePanelPlugin *panel_plugin)
_______________________________________________
Xfce4-commits mailing list
Xfce4-commits@xfce.org
https://mail.xfce.org/mailman/listinfo/xfce4-commits

Reply via email to