2011-09-28 112 views
1

我想給一個窗口一個特定的屬性只有當它被最大化時並在最大化狀態結束時將其改回。我正在使用Gtk#,但所有GTK綁定答案都是受歡迎的。我所尋找的是這樣的(僞):如何檢查窗口是否在Gtk中最大化?

OnMaximise += new Mhandler(); 
Mhandler(){ property = true;} 

或:

Resize += delegate() { 
    if (isMaximised()) property=true; else property = false;}; 

或C-方式:

gtk_window_on_maximise(GTK_WINDOW(mwin),onmax); 
void onmax() 
{ 
    if (gtk_window_is_max(GTK_WINDOW(mwin))   
      gtk_window_set_property(GTK_WINDOW(mwin),true); 
    else gtk_window_set_property(GTK_WINDOW(mwin),false); 
} 

有什麼建議?謝謝

+0

@ Pedro77也許是因爲我使用GTK#?我什麼時候問C++? – ApprenticeHacker

回答

2

當您創建窗口並觀察窗口時,設置「窗口狀態事件」信號。見http://developer.gnome.org/gtk/2.24/GtkWindow.html#gtk-window-maximizehttp://developer.gnome.org/gtk/2.24/GtkWidget.html#GtkWidget-window-state-event

你的最大制動持續()是當GDK_WINDOW_STATE_MAXIMIZED爲TRUE,將調用的處理程序。 見http://developer.gnome.org/gdk/stable/gdk-Events.html#GDK-STRUCTURE-MASK:CAPShttp://developer.gnome.org/gdk/stable/gdk-Event-Structures.html#GdkEventWindowStatehttp://developer.gnome.org/gdk/stable/gdk-Event-Structures.html#GdkWindowState

對不起,不能幫助遠不止這些,而無需實際編寫代碼。谷歌可能有一些很好的例子,然後可能不會。實際上,對於那些已經可以做GTK +信號的人來說,哪些文檔是有用的。

編輯:我做的GTK + C和我所引用的網頁是C.

編輯#2:處理器(回調)每當發送的信號,並將信號數據是最重要的是執行。我可能會對每個感興趣的信號數據值做一次切換:對於其他函數稍後可能會設置的標誌。

+0

謝謝。正如我前面所說的那樣,不存在C的可能性。我只是想知道如何去做。 – ApprenticeHacker