Как подключить пункты меню Копировать / Вставить / Выбрать / Вырезать к виджетам Gtk #? - PullRequest
0 голосов
/ 26 октября 2011

Как вы создаете пункты меню в Gtk #, которые правильно обрабатываются всеми возможными виджетами? Я добавил Copy / Paste / etc Actions в меню Gtk #, но как это передается любому виджету, который имеет фокус? Вам нужно подключить что-нибудь для каждого возможного виджета?

Например, я хотел бы иметь возможность копировать из Gtk.Labels и Gtk.TextAreas, а также вставлять в Gtk.Entries и Gtk.TextAreas. Аналогично, пункт меню «Вставить» не должен быть чувствительным, если, скажем, на Gtk.TextArea только для чтения.

В связи с этим, я хотел бы иметь возможность копировать / вставлять между приложениями, и это должно работать на Linux, Mac и Windows.

Любые указатели приветствуются! Хотелось бы увидеть простой пример в C #, который обрабатывает это правильно. Я работаю в MonoDevelop, кстати.

1 Ответ

2 голосов
/ 27 октября 2011

У меня есть простой пример на C, в любом случае. См. Функции action_cut(), action_copy() и action_paste() в этом файле: https://github.com/ptomato/gnome-inform7/blob/master/src/actions.c

Если вы хотите, чтобы ваши действия были чувствительными или нечувствительными в зависимости от того, какой виджет имеет фокус, вам нужно будет подключиться к некоторому сигналу, который сообщает вам, когда фокус изменяется, и затем соответствующим образом настроить чувствительность этих действий. С моей головы это будет notify::focus-child.

...