Dynamische Verknüpfungen für das Messaging-Menü?


7

Ich bin Unity Mail- Entwickler und frage mich, ob es möglich ist, innerhalb der Anwendung eine Verknüpfung zum Messaging-Menü hinzuzufügen (es ist in Python geschrieben).

Ich muss es user-displaymit einer Funktion in der Anwendung verbinden. Dies wird beispielsweise für den Befehl "Alle als gelesen markieren" benötigt.

Die Spezifikation bezieht sich nur auf statische Verknüpfungen, die der .desktop-Datei hinzugefügt werden:

In der .desktopDatei selbst kann eine Anwendung Verknüpfungsaktionen angeben , die unabhängig davon aufgerufen werden können, ob das Programm ausgeführt wird. Die Syntax dieser Aktionen wird in ApplicationShortcuts definiert .

Antworten:


3

Ja, obwohl die handgefertigten Bindungen es nicht verfügbar machen, müssen Sie die GObject Introspected-Bindungen verwenden, um dies zu tun. Leider gibt es noch kein Tutorial, das diese verwendet.

Dazu müssen Sie Ihren IndicateServer herunterladen und set_menu aufrufen. Dabei wird das Dbus-Menü als Parameter verwendet, das Sie bereitstellen möchten. Es gibt viele Möglichkeiten, dies zu tun, aber ich möchte Ihnen einen kurzen Pseudocode geben (da ich Python nicht fließend spreche). Hoffentlich kann jemand mit Bearbeitungsprivilegien helfen.

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)

Es gibt andere Eigenschaften, die für Menüelemente festgelegt werden können, um fast alles zu tun, was Sie wollen. Sie können sie auch aus GTK-Menüs erstellen, wenn dies für Sie mit dem Menü bequemer ist DbusmenuGtk.parse_menu_structure(). Es gibt auch eine API-Dokumentation für DbusMenu .


0

Sie können die Desktop-Datei jederzeit dazu bringen, ein Skript auszuführen, mit dem Sie die erforderliche Aktion basierend auf einer gespeicherten Datei oder einer anderen Angabe auswählen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.