2014-06-20 75 views
0

在C中GTK +出現少許問題後,我認爲我最終設法解決了最複雜的問題。 ;遺憾的是沒有/GTK C - `GtkStock'&`GTK_CAN_FOCUS`已棄用

使用的g_signal_connect後:

g_signal_connect (ur, "toggled",G_CALLBACK(user_read_only), (gpointer *)filename); 

其中功能user_read_only是這樣的:

void user_read_only(GtkWidget *widget, gpointer *filename) 
{ 
    if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))){ 
     int stat; 
     stat = chmod(data, S_IRUSR); 
     printf("Added Read attribute to user in file: %s\n", (char *)filename); 
    } else { 
     printf("No Read attribute to user in file: %s\n", (char *)filename); 
    } 
} 

我編譯使用:

gcc -o s8 s8.c `pkg-config --libs --cflags gtk+-2.0` 

我得到以下警告:

s8.c: In function ‘main’: 
    s8.c:49:1: warning: ‘GtkStock’ is deprecated [-Wdeprecated-declarations] dialog = gtk_file_chooser_dialog_new ("Open File",NULL,GTK_FILE_CHOOSER_ACTION_OPEN,GTK_STOCK_CANCEL,GTK_RESPONSE_CANCEL,GTK‌​_STOCK_OPEN,GTK_RESPONSE_ACCEPT,NULL); 
    ^
    s8.c:49:1: warning: ‘GtkStock’ is deprecated [-Wdeprecated-declarations] 
    s8.c:78:29: error: ‘GTK_CAN_FOCUS’ undeclared (first use in this function) 

    GTK_WIDGET_UNSET_FLAGS(ur, GTK_CAN_FOCUS); 

我試圖找到關於我應該如何去做的信息。在這個警告中出現的唯一的東西是嘗試使用gtk + 3.0

有沒有辦法去解決這個問題?我需要對話框讓用戶選擇文件,用戶可以設置chmods。

在此先感謝。使用

gtk_widget_set_can_focus(ur) 

而不是

GTK_WIDGET_UNSET_FLAGS(ur, GTK_CAN_FOCUS); 

documentation

回答