Quote
YogiQuote
siria
user options to either keep button pressed or only toggle images
Wäre es möglich dies für alle Elemente (Bilder) auf der Privacy-Leiste zu machen?
Falls ja, könntest Du bitte anhand eines konkreten Beispiels zeigen wie und was in "main.kmm" geändert werden muss?
Eine Option brauche ich nicht, immer nur Bildewchsel würde vollkommen reichen.
Ich würde es mit dem Klassic skin (KM-74, KM-75b3) ausprobieren und falls es funzt auch Screennshots machen.
In KM ist alles möglich
(okay, fast)
Um nur
Iconwechsel ohne Dauerdruck-Zustand zu kriegen, suchst du nach dem "checkbutton" command, das führt den Wechsel des momentanen Druckzustands aus.
Im Gegensatz zu Checkmarks in Menus hat das übrigens nichts automatisch mit irgendwelchen Prefs zu tun, sondern ist eine Zusatzaktion, die bei jedem Buttonclick explizit aufgerufen werden muss. Wird meistens von einem Macromodul namens SyncButton (freier Name) ausgeführt, das z.B. von den Priv-Toggle-Macros aufgerufen wird, nachdem die eigentliche Aktion (toggle pref) ausgeführt wurde.
Anstatt den Druckzustand zu ändern, kannst du genausogut das Icon für den COLD-Zustand jedesmal auswechseln, ist aber ein wenig komplizierter.
Schau mal im Adblock macro das syncbutton macro an, da wird je nach UserPref mal "
checkbutton" oder "
SetButtonImage" ausgeführt.
Die beiden Befehle sind sich sehr ähnlich, nur das Ende ist unterschiedlich:
Bei Checkbutton endet es mit "0" oder "1" für den Druckzustand.
Bei SetButtonImage ist die Endung "COLD,adblockplus.bmp[0]" oder [1]
Do-it-yourself Anleitung:
Du suchst also in main.kmm nach "
Checkbutton". Dort ist es als Variable eingebaut, einfach dieses Wort ersetzen durch "
SetButtonImage".
Tja, und dann wirds etwas umständlich, und man muss explizit die Bildernamen angeben, was bei verschiedenen Skins dann evt. nicht funktioniert.
Aus sowas hier:
pluginmsg(toolbars,$__c,$__toolbar.$__m."Cookies),".(getpref(INT,$pref_Cookies)==2 ? 1 : 0));
pluginmsg(toolbars,$__c,$__toolbar.$__m."JavaScript),".(getpref(BOOL,$pref_JavaScript) ? 0 : 1));
musst du für Klassik-Skin sowas machen:
pluginmsg(toolbars,$__c,$__toolbar.$__m."Cookies),
COLD,".(getpref(INT,$pref_Cookies)==2 ?
"privhot.bmp[2]" : "privcold.bmp[2]"));
pluginmsg(toolbars,$__c,$__toolbar.$__m."JavaScript),
COLD,".(getpref(BOOL,$pref_JavaScript) ?
"privcold.bmp[5]" : "privhot.bmp[5]"));
Dabei immer schön aufpassen, dass 1 zu hot wird und 0 zu cold, die Reihenfolge ist je nach Pref nämlich verschieden.
Hast du eigentlich schon einen Editor mit Macro-Highlighting?
Würd ich unbedingt benutzen, macht die Sache extrem viel übersichtlicher. Ich benutz den gleichen wie kko, mit ein paar Updates:
http://kmeleonbrowser.org/forum/read.php?9,109335,129077#msg-129077
Edited 2 time(s). Last edit at 02/18/2015 09:55PM by siria.