![]() |
ENGLISH VERSION |
|
![]() |
Links | | | Forum | | | Kommentare | | | News melden |
![]() |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
![]() |
amiga-news.de Forum > Programmierung > Toolbar-Buttons mit Reaction | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
-1- | [ - Beitrag schreiben - ] |
01.06.2004, 19:46 Uhr cgutjahr Posts: 2783 [Administrator] |
Ich schreibe gerade eine GUI - allerdings aufgrund mäßiger C-Kenntnisse mit ARexx (AWNPipe). Ich hoffe, ihr könnte eventuelle Lösungsvorschläge abstrakt genug halten, damit ich noch durchblicke ![]() Meine GUI enthält eine Art "Toolbar" (die Buttons am oberen Fensterrand): Screenshot Die Buttons sind in einer Gruppe (bei AWNPipe nennt sich das "Layout") zusammengefasst. Die Gruppe hat die Eigenschaften "horizontal" (die Elemente der Gruppe sind horizontal angeordnet), "even" (alle Buttons in der Gruppe sind gleich groß) sowie "SpaceInner" und "SpaceOuter" ("Spacer" sowohl um die einzelnen Elemente als auch um die komplette Gruppe). Bei der Definition der Buttons wird nur der Gadget-Text und der gewünschte Zeichensatz angegeben, sonst nichts. Mein Problem ist, dass die Buttons ebenfalls größer werden, wenn ich das Fenster vergrößere: Screenshot Wie kann ich das verhindern? Die Dokumentation von AWNPipe ist da leider etwas dürftig. Beispielsweise kann ich für einen Button die Eigenschaften "minwidth"/"minheight", "weightedwidth"/"weightedheight" und "nominal size" ángeben. Während "minwidth" klar ist, ist mir etwas schleierhaft was "weightedwidth" sein soll (die "relative Größe" des Buttons im Vergleich zu den anderen Buttons?) und "nominal size" (ein Switch, der keine Parameter akzeptiert) sagt mir überhaupt nichts. Hat jemand Vorschläge (ich hoffe ihr könnt mir folgen ![]() Ach ja, falls jemand sich mit AWNPipe auskennt, hier der entsprechende Code: examplecode.txt -- Gutjahrs ![]() [ Dieser Beitrag wurde von cgutjahr am 01.06.2004 editiert. ] [ Dieser Beitrag wurde von cgutjahr am 01.06.2004 editiert. ] [ - Antworten - Zitieren - Direktlink - ] |
01.06.2004, 20:40 Uhr Mazze Posts: 263 Nutzer |
Hallo, hat AWNPipe etwas mit ReAction zu tun? Wenn ich bei ReAction verhindern will, dass sich ein Button beim Vergrößern des Fensters vergrößert, mache ich das so: code:LAYOUT_AddChild ButtonObject GA_ID ... etc ButtonEnd CHILD_WeightedWidth, 0, CHILD_WeightedHeight,0, Wenn sich mehrere Buttons in einem Layout befinden, gebe ich auch beim Layout die Weighted-Parameter an. Die Weighted-Parameter sind eigentlich dazu da, um bei mehreren Gadgets die prozentualen Größenverhältnisse zueinander festzulegen. Bei '0' wird die kleinstmöglichste Größe veranlasst. Nachtrag: Ich habe mir den Screenshot angeschaut. In deinem Fall würde ich nur WeightedHeight angeben. [ Dieser Beitrag wurde von Mazze am 01.06.2004 editiert. ] [ - Antworten - Zitieren - Direktlink - ] |
01.06.2004, 21:48 Uhr cgutjahr Posts: 2783 [Administrator] |
Zitat:AWNPipe ist eine ziemlich mächtige GUI, die es (u.a.) ermöglicht, von jeder (Skript-)Sprache bzw. DOS aus eine Reaction-GUI zu erstellen (du schickst die GUI-Definition an die Pipe und wenn du das Fenster geöffnet hast wartest du darauf, dass die Pipe die Events zurückliefert). Die GUI kann dabei beliebig komplex sein und auch noch nachträglich geändert werden (Buttons (de)aktivieren, Einträge zu Listview hinzufügen etc.). Ist halt leider nur mäßig dokumentiert... Zitat:Hm, daraus werde ich jetzt nicht schlau, kannst du mal versuchen im Klartext zu beschreiben, was du da machst?code:LAYOUT_AddChild ButtonObject GA_ID ... etc ButtonEnd CHILD_WeightedWidth, 0, CHILD_WeightedHeight,0, Zitat:Ah, okay. Da hätte ich fast selbst drauf kommen können ![]() Zitat:Warum? Danke für die Tips. -- Gutjahrs ![]() [ - Antworten - Zitieren - Direktlink - ] |
01.06.2004, 22:38 Uhr Mazze Posts: 263 Nutzer |
Zitat:Zitat:ReAction selbst ist auch nicht besonders gut dokumentiert. Im NDK3.9 gibt es die Autodocs zu den ReAction-Klassen/Gadgets/Images. Zitat:Hm, daraus werde ich jetzt nicht schlau, kannst du mal versuchen im Klartext zu beschreiben, was du da machst?code:LAYOUT_AddChild ButtonObject GA_ID ... etc ButtonEnd CHILD_WeightedWidth, 0, CHILD_WeightedHeight,0, [/quote] Wenn man in C eine ReAction-GUI schreibt, kommen 2 Besonderheiten der Sprache C zum Einsatz: Makros und flexible Parameterlisten. Schritt für Schritt würde das etwa so aussehen: code:Object *button1 = NewObject(BUTTON_GetClass(),NULL, GA_ID, 1, GA_Text, "OK", GA_RelVerify, TRUE, TAG_DONE); (GA_RelVerify ist erforderlich, damit ein Event ausgelöst wird, GA_ID steht dann im Event-Loop zur Verfügung) Object *button2 = NewObject(BUTTON_GetClass,NULL, GA_ID, 2, GA_Text, "Cancel", GA_Relverify, TRUE, TAG_DONE); Object *inner_layout = NewObject(LAYOUT_GetClass(),NULL, LAYOUT_AddChild, button1, //button 1 hinzufügen CHILD_WeightedHeight, 0, //Höhe für button1 minimieren LAYOUT_AddChild, button2, // button 2 hinzufügen CHILD_WeightedHeight,0, // Höhe für button2 minimieren TAG_DONE); Object *outer_layout = NewObject(LAYOUT_GetClass(),NULL, LAYOUT_AddChild, inner_layout, CHILD_WeightedHeight, 0, //Höhe für Toolbar minimieren ... weitere Gadgets TAG_DONE); Gewöhnungsbedürftig ist, dass die CHILD...-Attribute zum Layout gehören, sie beeinflußen aber das unmittelbar zuvor erzeugte Gadget Zitat:Die Taskbar soll in der Höhe zusammengestaucht werden. Dazu ist sowohl bei den Buttons als auch beim Layout, in dem die Buttons stehen, WeightedHeight,0 erforderlich.Zitat:Warum? In der Breite hängt es eigentlich nur davon ab, was dir optisch besser gefällt. Mit EvenSize hast Du ja bereits erreicht, dass alle Buttons gleich groß sind. Mit einem WeightedWidth,0 beim Layout könntest Du die Toolbar z.B. in die linke Ecke zwängen. [ - Antworten - Zitieren - Direktlink - ] |
02.06.2004, 15:11 Uhr cgutjahr Posts: 2783 [Administrator] |
Zitat:Okay, werde ich mir mal ansehen, danke. Zitat:Ah, jetzt steige ich durch! ![]() Vielen Dank für die Erläuterungen. WeightedWidth/height tut genau das, was ich brauche. Eine Frage noch: Ist es möglich, einen Button zu erstellen, der sowohl ein Bild als auch einen Text enthält (ähnlich wie die Toolbar-Knöpfe in YAM)? -- Gutjahrs ![]() [ - Antworten - Zitieren - Direktlink - ] |
02.06.2004, 19:00 Uhr Mazze Posts: 263 Nutzer |
Zitat: Da bleibt Dir wohl nichts andres übrig, als den Text vorher ins Bild reinzumalen. Oder die Texte als Label-Image drunter zu setzen. [ - Antworten - Zitieren - Direktlink - ] |
03.06.2004, 15:49 Uhr cygnusEd Posts: 104 Nutzer |
Hi, Michael Christoph (Meicky-Soft) hat ebenfalls einen gelungenen Workshop über Reaction gemacht. Wurde im Amiga-Magazin veröffendlicht und ist über http://www.meicky-soft.de/amiga-magazin/reaction.html online zu lesen. Gruß CygnusEd [ - Antworten - Zitieren - Direktlink - ] |
-1- | [ - Beitrag schreiben - ] |
amiga-news.de Forum > Programmierung > Toolbar-Buttons mit Reaction | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
![]() |
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2025 by amiga-news.de - alle Rechte vorbehalten. |
![]() |