Updating branch refs/heads/master
         to 336b0b9a3001bf75803a042b080f3eb845bfff5a (commit)
       from 133ce7045b9ec45421a397fe9ac17eb3e288d21d (commit)

commit 336b0b9a3001bf75803a042b080f3eb845bfff5a
Author: Andrzej <ndrwr...@gmail.com>
Date:   Fri Feb 24 15:33:33 2012 +0900

    Adapting the plugin to panel version 4.9+
    
    Signed-off-by: Enrico Tröger <enrico.troe...@uvena.de>

 panel-plugin/xfce4-dict-plugin.c |   83 +++++++++++++++++++++++--------------
 1 files changed, 51 insertions(+), 32 deletions(-)

diff --git a/panel-plugin/xfce4-dict-plugin.c b/panel-plugin/xfce4-dict-plugin.c
index 332f6ca..c52a449 100644
--- a/panel-plugin/xfce4-dict-plugin.c
+++ b/panel-plugin/xfce4-dict-plugin.c
@@ -51,6 +51,7 @@ typedef struct
 
        GtkWidget *panel_button;
        GtkWidget *panel_button_image;
+       GtkWidget *box;
 } DictPanelData;
 
 
@@ -81,28 +82,49 @@ static GdkPixbuf *dict_plugin_load_and_scale(const guint8 
*data, gint dstw, gint
 
 static gboolean dict_plugin_panel_set_size(XfcePanelPlugin *plugin, gint 
wsize, DictPanelData *dpd)
 {
-       gint width;
-       gint height = wsize;
-       gint size = wsize - 2 - (2 * MAX(dpd->panel_button->style->xthickness,
+       gint size;
+       gint bsize = wsize;
+
+#if defined (LIBXFCE4PANEL_CHECK_VERSION) && LIBXFCE4PANEL_CHECK_VERSION 
(4,9,0)
+       bsize /= xfce_panel_plugin_get_nrows(plugin);
+#endif
+
+       size = bsize - 2 - (2 * MAX(dpd->panel_button->style->xthickness,
                                                                         
dpd->panel_button->style->ythickness));
 
        dpd->dd->icon = dict_plugin_load_and_scale(dict_gui_get_icon_data(), 
size, -1);
 
        gtk_image_set_from_pixbuf(GTK_IMAGE(dpd->panel_button_image), 
dpd->dd->icon);
 
+#if defined (LIBXFCE4PANEL_CHECK_VERSION) && LIBXFCE4PANEL_CHECK_VERSION 
(4,9,0)
+       if (dpd->dd->show_panel_entry &&
+               xfce_panel_plugin_get_mode(dpd->plugin) != 
XFCE_PANEL_PLUGIN_MODE_VERTICAL)
+       {
+               xfce_panel_plugin_set_small (plugin, FALSE);
+               if (xfce_panel_plugin_get_mode(dpd->plugin) == 
XFCE_PANEL_PLUGIN_MODE_HORIZONTAL)
+                       gtk_widget_set_size_request(dpd->dd->panel_entry, 
dpd->dd->panel_entry_size, -1);
+               else
+                       gtk_widget_set_size_request(dpd->dd->panel_entry, -1, 
-1);
+               gtk_orientable_set_orientation(GTK_ORIENTABLE(dpd->box), 
xfce_panel_plugin_get_orientation(dpd->plugin));
+               gtk_widget_show(dpd->dd->panel_entry);
+       }
+       else
+       {
+               gtk_widget_hide(dpd->dd->panel_entry);
+               xfce_panel_plugin_set_small (plugin, TRUE);
+       }
+#else
        if (dpd->dd->show_panel_entry &&
                xfce_panel_plugin_get_orientation(plugin) == 
GTK_ORIENTATION_HORIZONTAL)
        {
-               width = size + dpd->dd->panel_entry_size;
+               gtk_widget_show(dpd->dd->panel_entry);
                gtk_widget_set_size_request(dpd->dd->panel_entry, 
dpd->dd->panel_entry_size, -1);
        }
        else
-               width = size;
-
-       if (xfce_panel_plugin_get_orientation(plugin) == 
GTK_ORIENTATION_VERTICAL)
-               height -= 4; /* reduce some of the height because it creates 
too much space otherwise */
+               gtk_widget_hide(dpd->dd->panel_entry);
+#endif
 
-       gtk_widget_set_size_request(dpd->panel_button, wsize, height);
+       gtk_widget_set_size_request(dpd->panel_button, bsize, bsize);
 
        return TRUE;
 }
@@ -254,14 +276,20 @@ static void dict_plugin_free_data(XfcePanelPlugin 
*plugin, DictPanelData *dpd)
 }
 
 
+#if defined (LIBXFCE4PANEL_CHECK_VERSION) && LIBXFCE4PANEL_CHECK_VERSION 
(4,9,0)
+static void dict_plugin_panel_change_mode(XfcePanelPlugin *plugin,
+                                                                               
                 XfcePanelPluginMode mode, DictPanelData *dpd)
+{
+       dict_plugin_panel_set_size(plugin, xfce_panel_plugin_get_size(plugin), 
dpd);
+}
+
+#else
 static void dict_plugin_panel_change_orientation(XfcePanelPlugin *plugin,
                                                                                
                 GtkOrientation orientation, DictPanelData *dpd)
 {
-       if (! dpd->dd->show_panel_entry || orientation == 
GTK_ORIENTATION_VERTICAL)
-               gtk_widget_hide(dpd->dd->panel_entry);
-       else
-               gtk_widget_show(dpd->dd->panel_entry);
+       dict_plugin_panel_set_size(plugin, xfce_panel_plugin_get_size(plugin), 
dpd);
 }
+#endif
 
 
 static void dict_plugin_style_set(XfcePanelPlugin *plugin, gpointer unused, 
DictPanelData *dpd)
@@ -278,14 +306,6 @@ static void dict_plugin_write_rc_file(XfcePanelPlugin 
*plugin, DictPanelData *dp
 
 static void dict_plugin_panel_save_settings(DictPanelData *dpd)
 {
-       if (dpd->dd->show_panel_entry &&
-               xfce_panel_plugin_get_orientation(dpd->plugin) == 
GTK_ORIENTATION_HORIZONTAL)
-       {
-               gtk_widget_show(dpd->dd->panel_entry);
-       }
-       else
-               gtk_widget_hide(dpd->dd->panel_entry);
-
        dict_plugin_panel_set_size(dpd->plugin, 
xfce_panel_plugin_get_size(dpd->plugin), dpd);
 }
 
@@ -395,7 +415,6 @@ static void dict_plugin_drag_data_received(GtkWidget 
*widget, GdkDragContext *dr
 static void dict_plugin_construct(XfcePanelPlugin *plugin)
 {
        DictPanelData *dpd = g_new0(DictPanelData, 1);
-       GtkWidget *hbox;
 
        xfce_textdomain(GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR, "UTF-8");
 
@@ -425,7 +444,11 @@ static void dict_plugin_construct(XfcePanelPlugin *plugin)
        g_signal_connect(dpd->dd->close_button, "clicked", 
G_CALLBACK(dict_plugin_close_button_clicked), dpd);
        g_signal_connect(plugin, "free-data", 
G_CALLBACK(dict_plugin_free_data), dpd);
        g_signal_connect(plugin, "size-changed", 
G_CALLBACK(dict_plugin_panel_set_size), dpd);
+#if defined (LIBXFCE4PANEL_CHECK_VERSION) && LIBXFCE4PANEL_CHECK_VERSION 
(4,9,0)
+       g_signal_connect(plugin, "mode-changed", G_CALLBACK 
(dict_plugin_panel_change_mode), dpd);
+#else
        g_signal_connect(plugin, "orientation-changed", 
G_CALLBACK(dict_plugin_panel_change_orientation), dpd);
+#endif
        g_signal_connect(plugin, "style-set", 
G_CALLBACK(dict_plugin_style_set), dpd);
        g_signal_connect(plugin, "save", G_CALLBACK(dict_plugin_write_rc_file), 
dpd);
        g_signal_connect(plugin, "configure-plugin", 
G_CALLBACK(dict_plugin_properties_dialog), dpd);
@@ -447,18 +470,14 @@ static void dict_plugin_construct(XfcePanelPlugin *plugin)
        g_signal_connect(dpd->dd->panel_entry, "button-press-event", 
G_CALLBACK(entry_buttonpress_cb), dpd);
        g_signal_connect(dpd->dd->panel_entry, "changed", 
G_CALLBACK(entry_changed_cb), dpd);
 
-       if (dpd->dd->show_panel_entry &&
-               xfce_panel_plugin_get_orientation(dpd->plugin) == 
GTK_ORIENTATION_HORIZONTAL)
-       {
-               gtk_widget_show(dpd->dd->panel_entry);
-       }
+       dpd->box = gtk_hbox_new(FALSE, 3);
+       gtk_widget_show(dpd->box);
 
-       hbox = gtk_hbox_new(FALSE, 3);
-       gtk_widget_show(hbox);
+       gtk_box_pack_start(GTK_BOX(dpd->box), dpd->panel_button, FALSE, FALSE, 
0);
+       gtk_box_pack_start(GTK_BOX(dpd->box), dpd->dd->panel_entry, FALSE, 
FALSE, 0);
+       gtk_container_add(GTK_CONTAINER(plugin), dpd->box);
 
-       gtk_box_pack_start(GTK_BOX(hbox), dpd->panel_button, FALSE, FALSE, 0);
-       gtk_box_pack_start(GTK_BOX(hbox), dpd->dd->panel_entry, FALSE, FALSE, 
0);
-       gtk_container_add(GTK_CONTAINER(plugin), hbox);
+       dict_plugin_panel_set_size(dpd->plugin, 
xfce_panel_plugin_get_size(dpd->plugin), dpd);
 
        xfce_panel_plugin_add_action_widget(plugin, dpd->panel_button);
        dict_plugin_set_selection(dpd);
_______________________________________________
Xfce4-commits mailing list
Xfce4-commits@xfce.org
https://mail.xfce.org/mailman/listinfo/xfce4-commits

Reply via email to