我想在窗口中为特定属性提供最大化,并在最大化状态结束时将其更改回来。我正在使用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 :(得分:2)
创建窗口并观察窗口时设置“窗口状态事件”信号。见http://developer.gnome.org/gtk/2.24/GtkWindow.html#gtk-window-maximize 并且 http://developer.gnome.org/gtk/2.24/GtkWidget.html#GtkWidget-window-state-event
你的onmax()将是GDK_WINDOW_STATE_MAXIMIZED变为TRUE时调用的处理程序。 见http://developer.gnome.org/gdk/stable/gdk-Events.html#GDK-STRUCTURE-MASK:CAPS 和http://developer.gnome.org/gdk/stable/gdk-Event-Structures.html#GdkEventWindowState 和http://developer.gnome.org/gdk/stable/gdk-Event-Structures.html#GdkWindowState
对不起,没有实际编写代码的帮助远不止于此。谷歌可能有一些很好的例子,然后可能不会。对于那些已经可以做GTK +信号的人来说,实际上有哪些文档。
编辑:我在C中做GTK +,我引用的页面是C。
编辑#2:只要发送信号并且信号数据是重要的,就执行处理程序(回调)。我可能会做一个开关:对我感兴趣的每个信号数据值的情况,并可能为其他函数设置一个标志,以便稍后阅读。