Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Context-Menü Buddy-Liste erweitern
#1
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
Zitieren
#2
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/~konradgraef...w_plugin.c
[2] https://developer.pidgin.im/doxygen/2.0....ad0f96b2c5
Welche Pidgin-Version setzt du ein?
Welches Betriebssystem?
Was sagt das Debug-Fenster?

[Bild: pidginbanner.png]
Zitieren
#3
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?
Zitieren
#4
(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?
Welche Pidgin-Version setzt du ein?
Welches Betriebssystem?
Was sagt das Debug-Fenster?

[Bild: pidginbanner.png]
Zitieren
#5
(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
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste