keine Bilder auf MaxGui Buttons auf dem MAC?
Übersicht

![]() |
MidimasterBetreff: keine Bilder auf MaxGui Buttons auf dem MAC? |
![]() Antworten mit Zitat ![]() |
---|---|---|
In der Windows-Version erhalte ich auf den Checkbuttons (als Taster dargestellt) Icons statt Texte. Auf dem MAC scheitert das. Geht das nicht, oder mache ich was falsch?
BlitzMax: [AUSKLAPPEN] ' createbutton.bmx |
||
FWeinbehemals "ich" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Für solche Sachen, lohnt es sich in den Code des Cocoateils der MaxGui zu schauen:
Code: [AUSKLAPPEN] void NSSetImage(nsgadget *gadget,NSImage *image,int flags){
PanelView *panel; NSButton *button; NSMenuItem *menu; switch (gadget->internalclass){ case GADGET_PANEL: panel=(PanelView*)gadget->handle; [panel setImage:image withFlags:flags]; break; case GADGET_BUTTON: if ((flags & GADGETPIXMAP_ICON) && (gadget->style <= BUTTON_PUSH)){ button=(NSButton *)gadget->handle; [button setImage:image]; if (flags & GADGETPIXMAP_NOTEXT) { [button setImagePosition:NSImageOnly]; } else { [button setImagePosition:NSImageLeft]; } } break; case GADGET_MENUITEM: if (flags & GADGETPIXMAP_ICON){ menu=(NSMenuItem*)gadget->handle; [menu setImage:image]; } break; } } Dort kann man sehen, dass GADGET_BUTTON nur dann ein Bild bekommen, wenn es Maximal ein BUTTON_PUSH ist. Also reicht es das BUTTON_CHECKBOX aus dem Code zu streichen und es Funktioniert, natürlich ist es dann keine Checkbox mehr: BlitzMax: [AUSKLAPPEN] ' createbutton.bmx So sieht es dann aus: ![]() Hatte das "Quadratbild" gerade Griffbereit. [EDIT] Als fix könntest du den MaxGui Code anpassen (was sehr unschön ist) oder die NSSetImage Methode in einem eingenen Modul implementieren und dir eine eigene SetGadgetPixmap Funktion schreiben. Der Fix würde dann so aussehen: Einfach das: Code: [AUSKLAPPEN] if ((flags & GADGETPIXMAP_ICON) && (gadget->style <= BUTTON_PUSH)){
mit dem hier: Code: [AUSKLAPPEN] if ((flags & GADGETPIXMAP_ICON) && (gadget->style <= (BUTTON_PUSH + BUTTON_CHECKBOX))){
ersetzen. |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
ah, danke für diese Information. Bewunder! In die dahinterliegenden C-Routinen würde ich mich ja nie schauen trauen, geschweige denn dort was ändern....
Wie schätzt Du das ein? Ist das eher ein Bug oder gab es wahrscheinlich gute Gründe den Button als Checkbox nicht für Bilder freizugeben? |
||
![]() |
d-bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mit Cocoa sind Checkboxes einfach nicht in der Lage Icons oder Bilder zu haben.
Wurde wohl von Apple nicht vorgesehen. Gilt übrigens auch für Radiobuttons. Apple selbst treibt bei solchen Custom-Gadgets in ihren Programmen sehr viel Schindluder. |
||
Macintosh |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
In welchen programmen gibt es denn icons an checkboxen/radio buttons?
Man kann custom-views aber auch sehr sauber schreiben ;) |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Macintosh:
für mein Notenschreib-Editor innerhalb meines aktuellen Projekt wäre es sehr ergonomisch, wenn der User die Auswahl-Optionen lieber über Icons als über Texte wahrnimmt. Sieh selbst: so ist es viel verständlicher, wozu all die Buttons dienen sollen: und die untere Hälfte zeigt, wie es dann leider am MAC aussieht. Klar kann man die Custom-Views selber schreiben, aber wozu hat man den eine GUI? Und wie meine anderen Beiträge heute zeigen ist die MaxGui da eben sehr schnell an Grenzen angekommen...(SetGadgetSensitivity()-Mangel bei den Combo-Boxen oder Tabber-Problem am MAC) |
||
![]() |
d-bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
Aha, ich dachte wir reden hier über Checkbox, also die Viecher mit den Haken vorne.
Das was du möchtest ist durchaus möglich. Allerdings hat BRL das nicht in MaxGUI vorgesehen. Von ca. 20 verschiedenen Button-Arten die Cocoa bietet hat man nur einen Bruchteil in MaxGUI vorgesehen. Da bleibt dir nur der Weg, den "Ich" beschrieben hat. |
||
FWeinbehemals "ich" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich habe mal ein kleines Modul zusammengeschnürt was die Funktionen bereitstellt. >Hier<
Das ganze ist Undokumentiert. Und so würde man es dann Benutzt: BlitzMax: [AUSKLAPPEN] ' createbutton.bmx In dem Modul sind noch ein paar Funktionen mehr drin die sollten im Moment aber nicht stören. |
||
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group