【问题标题】:how to set xfce's panel plugin width如何设置xfce的面板插件宽度
【发布时间】:2016-09-06 17:50:14
【问题描述】:

我构建了一个简单的 xfce 面板插件,它显示一个标记为“Hello World”的按钮。但是,只能显示一半的字符串。

http://en.zimagez.com/miniature/debian807092016010347.png

代码很简单:

#include <gtk/gtk.h>
#include <libxfce4panel/xfce-panel-plugin.h>

static void sample_construct(XfcePanelPlugin *plugin);
XFCE_PANEL_PLUGIN_REGISTER(sample_construct);

static void hello(GtkWidget *widget, gpointer data)
{
    g_print("Hello World\n");
}

static void sample_construct(XfcePanelPlugin *plugin)
{
    GtkWidget *button;

    button = gtk_button_new_with_label ("Hello World");
    g_signal_connect (button, "clicked", G_CALLBACK (hello), NULL);
    gtk_container_add (GTK_CONTAINER (plugin), button);
    gtk_widget_show (button);
}

使用此脚本构建和安装:

#!/bin/bash

gcc -Wall -shared -o libsample.so -fPIC sample.c $(pkg-config --cflags --libs libxfce4panel-1.0) $(pkg-config --cflags --libs gtk+-2.0) || \
    { echo "Compiling failed!"; exit 10; }

cp libsample.so /usr/lib/xfce4/panel-plugins
cp sample.desktop /usr/share/xfce4/panel-plugins

其他信息:xfce4.10,Debian 8 jessie。

【问题讨论】:

    标签: gtk xfce


    【解决方案1】:

    您错过了“尺寸改变”的信号。 如果您添加以下代码,它将按预期工作:

    static gboolean
    sample_size_changed (XfcePanelPlugin *plugin,
                         gint             size,
                         void            *data)
    {
      GtkOrientation orientation;
    
      orientation = xfce_panel_plugin_get_orientation (plugin);
    
      if (orientation == GTK_ORIENTATION_HORIZONTAL)
        gtk_widget_set_size_request (GTK_WIDGET (plugin), -1, size);
      else
        gtk_widget_set_size_request (GTK_WIDGET (plugin), size, -1);
    
      return TRUE;
    }
    
    static void sample_construct(XfcePanelPlugin *plugin)
    {
    ...
        g_signal_connect (G_OBJECT (plugin), "size-changed",
                        G_CALLBACK (sample_size_changed), NULL);
    
        gtk_widget_show_all (button);
    }
    

    请注意,您还缺少重要的回调,例如“free-data”和“orientation-changed”。注意,由于Xfce 4.12,GTK+ 3.0插件也支持,你只需要在.desktop文件中设置X-XFCE-API=2.0即可。

    来源:xfce4-sample-plugin

    【讨论】:

      猜你喜欢
      • 2013-12-25
      • 2017-04-08
      • 1970-01-01
      • 1970-01-01
      • 2011-06-09
      • 2014-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多