如何在Gtk#中创建所有可能的小部件正确处理的菜单项?我在Gtk#菜单中添加了复制/粘贴/等操作,但是如何将其传递给任何具有焦点的窗口小部件?你需要为每个可能的小部件连接一些东西吗?
例如,我希望能够从Gtk.Labels和Gtk.TextAreas复制,并粘贴到Gtk.Entries和Gtk.TextAreas。同样,当打开,例如,只读Gtk.TextArea时,“粘贴”菜单选项不应该是敏感的。
相关,我希望能够在应用程序之间进行复制/粘贴,这应该适用于Linux,Mac和Windows。
任何指针都赞赏!很想在C#中看到一个能够正确处理这个问题的简单示例。我在MonoDevelop工作,BTW。
答案 0 :(得分:2)
无论如何,我在C中有一个简单的例子。查看此文件中的action_cut()
,action_copy()
和action_paste()
函数:https://github.com/ptomato/gnome-inform7/blob/master/src/actions.c
如果您希望保持您的操作敏感或不敏感,具体取决于哪个窗口小部件具有焦点,您将需要连接到一些信号,该信号会告诉您焦点何时更改,然后相应地调整这些操作的敏感度。在我的头顶,那将是notify::focus-child
。