2016-09-06 10 views
0

XFCE의 패널 플러그인 폭을 설정하는 방법에 대해 설명합니다. 그러나, 문자열의 절반 만 표시 할 수 있습니다.난에 "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 플러그인도 지원되므로 .desktop 파일에서 X-XFCE-API = 2.0 만 설정하면됩니다.

출처 : xfce4-sample-plugin

+0

작동하지 않습니다! 고마워! –