2016-09-06 7 views
0

я построить один простой Xfce плагин панели, которая dispalys кнопки помечена как «Hello World». Тем не менее, только половина строк может быть отображена.как установить ширину панели плагина Xfce в

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.

ответ

0

Вы пропустили сигнал «с измененным размером». Если добавить следующий код он будет работать, как ожидалось:

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); 
} 

enter image description here

Обратите внимание, что вы также отсутствуют важные функции обратного вызова, такие как «свободного данных» и «ориентации-изменилось». Обратите внимание, что поскольку Xfce 4.12 поддерживаются плагины GTK + 3.0, вам нужно только установить X-XFCE-API = 2.0 в файл .desktop.

xfce4-sample-plugin

+0

Это действительно работает! Спасибо! –

 Смежные вопросы

  • Нет связанных вопросов^_^