Динамические ярлыки для меню сообщений?

Я являюсь разработчиком Unity Mail , и мне интересно, можно ли добавить ярлык в меню сообщений из приложения (написано на Python).

Мне нужно подключить его user-display к функции в приложении. Например, это необходимо для команды «Пометить все как прочитанное».

В спецификации говорится только о статических ярлыках, которые добавляются в файл .desktop:

В самом файле .desktop приложение может указывать ярлык действия , которые могут быть вызваны независимо от того, запущена ли программа. Синтаксис этих действий определен в ApplicationShortcuts .

7
задан 16 October 2011 в 14:10

2 ответа

Вы всегда можете получить файл рабочего стола для запуска сценария, который вы используете для выбора необходимого действия на основе какого-либо сохраненного файла или другого указания.

0
ответ дан 16 October 2011 в 14:10

Да, хотя созданные вручную привязки не раскрывают его, вам придется использовать для этого интроспективные привязки GObject. К сожалению, пока нет учебника, который бы их использовал.

Для этого вам нужно получить свой IndicateServer и вызвать для него set_menu. Который принимает в качестве параметра Dbusmenu, который вы хотели бы предоставить. Есть много способов сделать это, но позвольте мне дать вам небольшой псевдокод (поскольку я не бегло говорю на Python). Надеемся, что кто-то с правами доступа может помочь.

menuserver = Dbusmenu.Server("/my/unique/path")
root = Dbusmenu.Menuitem()
menuserver.set_root(root)

first = Dbusmenu.Menuitem()
first.property_set("label", "First")
first.connect("item-activated", call_me_on_click)
root.child_append(first)

second = Dbusmenu.Menuitem()
second.property_set("label", "Second")
root.append_child(second)

indicateserver.set_menu(menuserver)

Существуют и другие свойства, которые можно установить в пунктах меню, чтобы делать практически все, что вы хотите. Вы также можете создавать их из меню GTK, если вам удобнее использовать DbusmenuGtk.parse_menu_structure(). Существует также Документация API для DbusMenu .

0
ответ дан 16 October 2011 в 14:10

Другие вопросы по тегам:

Похожие вопросы: