Pidgin Forum
Context-Menü Buddy-Liste erweitern - Druckversion

+- Pidgin Forum (https://forum.pidgin-im.de)
+-- Forum: Hilfe-Bereich (https://forum.pidgin-im.de/forumdisplay.php?fid=4)
+--- Forum: Development (https://forum.pidgin-im.de/forumdisplay.php?fid=16)
+---- Forum: Plugins (https://forum.pidgin-im.de/forumdisplay.php?fid=18)
+---- Thema: Context-Menü Buddy-Liste erweitern (/showthread.php?tid=1673)



Context-Menü Buddy-Liste erweitern - jamesv1994 - 11.09.2013

Hallo Leute,
ich möchte gerne ein Plugin entwickeln, dass das Context-Menü eines jeden Buddies in der Buddy-Liste um einen Eintrag erweitert. Leider habe ich nach vier Stunden googlen keine Anleitung gefunden, wie ich dies bewerkstelligen kann. Auch habe ich mir schon andere Plugins angeschaut(Birthday-Reminder). Dort kann ich leider nicht ermitteln, was genau für den einen Eintrag erforderlich ist. Ich habe es geschaft, einen Eintrag im Context-Menü für Pidgin selbst zu erstellen, da ich aber User-spezifische Daten verarbeiten möchte, benötige ich den Eintrag schon beim User selbst.

Vielleicht kann mir einer (gerne auch mit Code-Beispielen) erklären, wie ich das Context-Menü dort einbinden kann.

Über eure Hilfe würde ich mich sehr freuen.

Vielen Dank!

LG James


RE: Context-Menü Buddy-Liste erweitern - Freakazoid - 11.09.2013

Ja, der Birthday Reminder ist vielleicht etwas umfangreich. Schau dir mal mein HSMW Plugin[1] an, das ist etwas übersichtlicher.

Im Prinzip musst du eine Callback-Funktion (hier extended_buddy_menu_cb()) mit dem Signal "blist-node-extended-menu" verbinden. Die wird dann jedes Mal aufgerufen, wenn jemand mit der Rechten Maustaste auf einen Kontakt klickt und bekommt eben den PurpleBuddy und eine GList übergeben, an die du dann deinen Menüpunkt mit g_list_append() anhängen kannst. Deinen Menüpunkt selbst erstellst du mit purple_menu_action_new(). Bei mir passiert das in den Zeilen 109 und 110, wobei ich vorher in den Zeilen 99 bis 107 noch ein Untermenü zusammenbaue, das seinerseits wieder eine GList aus mehreren PurpleMenuAction ist.

So, ich könnte jetzt noch mehr in's Detail gehen, aber vielleicht hilft dir das schon. Wenn nicht: weiter fragen. Wink

[1] http://bazaar.launchpad.net/~konradgraefe/pidgin-hsmw/trunk/view/head:/src/hsmw_plugin.c
[2] https://developer.pidgin.im/doxygen/2.0.0/html/util_8h.html#c87a31e68518aad7be1eb3ad0f96b2c5


RE: Context-Menü Buddy-Liste erweitern - jamesv1994 - 11.09.2013

Hallo Freakazoid,
ich danke dir für diese Antwort. Sie hat mir SEHR geholfen. Ich habe nun einen Eintrag im Context-Menü, der bei Klick darauf eine Callback-Funktion aufruft.

Eine Frage habe ich noch, dafür werde ich aber einen extra Thread machen.

Wo kann ich deinen Beitrag bewerten?


Vielen Dank!

LG

--Edit:
Wo kann ich den Thread eigentlich als erledigt markieren?

--Edit2:
Eine Frage habe ich noch:
Kann ich die Reihenfolge beeinflussen? Also kann ich sagen, ich möchte meinen Eintrag exakt an der dritten Stelle haben?


RE: Context-Menü Buddy-Liste erweitern - Freakazoid - 11.09.2013

(11.09.2013, 15:40)jamesv1994 schrieb: Wo kann ich deinen Beitrag bewerten?
Das brauchst du nicht. Ich weiß auch so, dass ich gut bin. Wink

(11.09.2013, 15:40)jamesv1994 schrieb: Wo kann ich den Thread eigentlich als erledigt markieren?
Du könntest deinen ersten Post editieren und dort dann "[ERLEDIGT]" in den Betreff schreiben. Aber ich glaube, da wärst du hier der einzige.

(11.09.2013, 15:40)jamesv1994 schrieb: Kann ich die Reihenfolge beeinflussen? Also kann ich sagen, ich möchte meinen Eintrag exakt an der dritten Stelle haben?
Das weiß ich nicht. Da musst du dir mal anschauen, was in der GList genau drin steht, die du übergeben bekommst. Vielleicht hast du Glück und die anderen Menüpunkte stehen da schon drin, dann könnte es gehen. Evtl. sind es aber nur die Menüpunkte, die von anderen Plugins da rein geworfen wurden. Oder es ist gar eine völlig neue Liste, dann geht's mit Sicherheit nicht. Wink Aber ist das denn wichtig?


RE: Context-Menü Buddy-Liste erweitern - jamesv1994 - 12.09.2013

(11.09.2013, 22:08)Freakazoid schrieb:
(11.09.2013, 15:40)jamesv1994 schrieb: Wo kann ich deinen Beitrag bewerten?
Das brauchst du nicht. Ich weiß auch so, dass ich gut bin. Wink
hahaha das freut mich Big Grin

(11.09.2013, 22:08)Freakazoid schrieb:
(11.09.2013, 15:40)jamesv1994 schrieb: Wo kann ich den Thread eigentlich als erledigt markieren?
Du könntest deinen ersten Post editieren und dort dann "[ERLEDIGT]" in den Betreff schreiben. Aber ich glaube, da wärst du hier der einzige.
Das geht nur in den ersten 15 Minuten.

(11.09.2013, 22:08)Freakazoid schrieb:
(11.09.2013, 15:40)jamesv1994 schrieb: Kann ich die Reihenfolge beeinflussen? Also kann ich sagen, ich möchte meinen Eintrag exakt an der dritten Stelle haben?
Das weiß ich nicht. Da musst du dir mal anschauen, was in der GList genau drin steht, die du übergeben bekommst. Vielleicht hast du Glück und die anderen Menüpunkte stehen da schon drin, dann könnte es gehen. Evtl. sind es aber nur die Menüpunkte, die von anderen Plugins da rein geworfen wurden. Oder es ist gar eine völlig neue Liste, dann geht's mit Sicherheit nicht. Wink Aber ist das denn wichtig?
Also, ich finde an der Stelle wo der Eintrag ist, wirkt er etwas verloren.
Wäre schöner. Sonst wird der Eintrag ja nicht genutzt, wenn er nicht erkannt wird Wink