![]() |
DEUTSCHE VERSION |
|
![]() |
Links | | | Forums | | | Comments | | | Report news |
![]() |
Chat | | | Polls | | | Newsticker | | | Archive |
![]() |
amiga-news.de Forum > Programmierung > ListBrowser.gadget und LBNCA_RenderHook? | [ - Search - New posts - Register - Login - ] |
-1- | [ - Post reply - ] |
2006-09-21, 22:28 h Rudolph Posts: 15 User |
Moin! Ich habe eine GUI unter OS4 gebaut die aus einem String.gadget, einem Button.gadget und einem ListBrowser.gadget besteht. Und dafür zu sorgen, dass die GUI halwegs so aussieht, wir ich das möchte, war noch der einfache Teil. Nun habe ich einen RenderHook für den ListBrowser eingebaut, im wesentlichen, um farbige Einträge bekommen zu können, die bei Multi-Auswahl nicht doch wieder alle gleich aussehen. Und auch das funktioniert nach einigen Schwierigkeiten recht gut. Ich habe mehrere Spalten editierbar eingestellt. Wenn ich nun das editieren aktiviere, dann springt der Text um einen Pixel nach Links und einen Pixel nach unten. Was wäre denn eine korrekte Formel für die im Move() Befehl auszurechnenden Koordinaten? Momentan verwende ich msg->lbdm_Bounds.MinX und msg->lbdm_Bounds.MinY + msg->lbdm_RastPort->TxBaseLine. Jeweils +1 würde das Problem ja lösen, das halten ich nur nicht für besonders clever... Und ich hätte da durchaus noch mehr Fragen zu Reaction. Es gibt so vieles, was man in keinem Beispiel finden kann. Gruss, Rudolph [ - Answer - Quote - Direct link - ] |
2006-09-28, 16:23 h Rudolph Posts: 15 User |
Da hat echt *niemand* einen schlauen Tipp für? Gar keiner? Hat denn wirklich noch nie jemand ernsthaft versucht, ListBrowser.gadget für mehr als ein kleine statische Liste mit single-select zu verwenden? Ganz allgemein wäre ich auch dankbar für Tipps, in welchen Aminet oder OS4Depot Archiven sich noch Source-Codes zu Reaction basierten GUI's "verstecken". Gruss, Rudolph [ - Answer - Quote - Direct link - ] |
2006-09-28, 18:31 h Holger Posts: 8116 User |
@Rudolph: Wieviele Reaction-basierte Programme dieser Komplexität fallen Dir denn da auf Anhieb ein? Ich fürchte, Du liegst richtig, es hat noch niemand ernsthaft versucht, ListBrowser.gadget für mehr als eine kleine statische Liste mit single-select zu verwenden. Na ja, vielleicht doch mit ner größeren Liste, vielleicht sogar ner dynamischen Liste (das heißt noch nicht unbedingt editierbar), aber vermutlich nicht mit eigenem Render-Hook. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Answer - Quote - Direct link - ] |
2006-09-28, 20:39 h ZeroG Posts: 1488 User |
Also mir fällt zu RenderHooks und ListBrowsern nur ein Beispiel ein. Ist im aktuellen SDK zu finden unter: SDK:Examples/Reaction/OS4Examples/ListBrowser/LB_Example.c Wenn dir das nicht hilft, stell die Frage doch mal hier: http://utilitybase.com/ Mitunter sind da auch die OS4-Entwickler (wenn mal Zeit ist), und die sollten (müßten?) das wissen. [ - Answer - Quote - Direct link - ] |
2006-09-28, 21:46 h Rudolph Posts: 15 User |
Zitat: Nicht eines. Aber das hat ja nun noch nicht so viel zu sagen. Wer könnte von sich behaupten, alle AmigaOS Programme ausprobiert zu haben? Zitat: Vielleicht sollte ich wirklich Beispiel-Code aus dem Projekt extrahieren sobald alles so funktioniert, wie ich mir das vorstelle. Ich habe jetzt erstmal "+1" für X und Y eingebaut, zusammen mit einem entsprechendem Kommentar. [ - Answer - Quote - Direct link - ] |
2006-09-28, 22:00 h Rudolph Posts: 15 User |
Zitat: Das Bespiel kenne ich ja, da wird aber leider "nur" eine Ellipse gemalt. Alle Beispiele haben leider was gemeinsam. Erstens erklären sie nichts und zweitens hören sie da auf, wo es interessant wird. Eine Reaction GUI zu bauen die halbwegs gut aussieht war noch einfach. Ein Reaction GUI mit Funktion zu hinterlegen kann sich ganz schön hinziehen. Ein interessantes Problem mit dem RenderHook ist zum Beispiel, dass man zwar die Zeile (Node) geliefert bekommt aber leider nicht, die Spalte (Column). So weiss man zwar wohin, doch leider nicht, was man schreiben soll. Das kann man entweder lösen, indem man für jede Spalte einen eigenen Hook mit beinahe identischen Code installiert oder aber für jede Spalte eine eigene Hook-Struktur hat in deren h_data man vermerkt, welche Spalte gemeint ist. Zitat: Ich habe auch schon in den Mailing-Liste gefragt. Nur eine Antwort habe ich leider nicht erhalten. Ich sollte einfach nochmal fragen. [ - Answer - Quote - Direct link - ] |
2006-09-29, 12:32 h thomas Posts: 7721 User |
Zitat: Ich denke, horizontal sollte +1 ok sein, aber vertikal solltest du den Text zentrieren. Die Abweichung dürfte der automatische Rahmen sein, den das Listbrowser-Gadget um den Text zeichnet. Ich denke auch, daß es nicht vorgesehen ist, daß eine Spalte mit Render-Hook gleichzeitig editierbar ist. Der Render-Hook muß ja nicht unbedingt Text zeichnen, das Editor-Fenster editiert aber immer den Text. Zitat: Ich denke, da das Tag ja nunmal LBNCA_RenderHook heißt, also definitiv auf die Spalte bezogen ist und nicht auf die Zeile, mußt du wohl damit leben, daß du für jede Spalte eine eigene Hook-Struktur brauchst. Gruß Thomas -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ - Answer - Quote - Direct link - ] |
2006-09-29, 18:28 h ZeroG Posts: 1488 User |
Damit könnte man ja mal einem der Friedens behelligen, als Featurerequest für OS4.1 (oder 4.0). [ - Answer - Quote - Direct link - ] |
2006-09-30, 10:22 h Rudolph Posts: 15 User |
Zitat: Es muss ja auch einen Weg geben, dass korrekt zu machen. Der "Rahmen" ist auch nicht bei allen Versionen gleich und im schlimmsten Fall auch noch abhängig von irgendwelchen Benutzer-Einstellungen. Zitat: Das ist ja kein Problem, der Render-Hook wird im Editier-Modus nicht benutzt, dann wird die Spalte ja zum String-Gadget. Zitat: Klar geht das, ich halte das nur für eine weitere Schwachstelle im Design um die ich herumprogrammieren muss. Warum benutze ich überhaupt einen Render-Hook? Ganz einfach, weil alle ausgewählten Zeilen die gleiche Farbkombination bekommen, das sieht einfach nur beknackt aus, wenn die nicht-ausgewählten Zeilen bunt sind, damit man sie besser auseinanderhalten kann... [ - Answer - Quote - Direct link - ] |
2006-09-30, 10:30 h Rudolph Posts: 15 User |
Zitat: Mal davon ab, dass das an die falsche Adresse gehen würde, weil die Herren schlichtweg für andere Komponenten "die Mütze auf haben". Wieso ein "Featurerequest"? Bestenfalls doch die Anfrage nach mehr Dokumentation? Und das Problem der lückenhaften Dokumentation ist mit Sicherheit bekannt. Ich hatte nur gehofft, das sich hier zufällig jemand findet, der sich schon mal mit dem Thema herumgeschlagen hat. [ - Answer - Quote - Direct link - ] |
2006-09-30, 14:11 h ZeroG Posts: 1488 User |
Zitat:Klar haben die andere Komponenten an der Backe. Aber zumindes Hans-Jörg ist (laut seiner emailsignatur) technischer Direktor des OS4-Projekts, und somit für Featurerequest nicht unbedingt der schlechteste Ansprechpartner. Oder? Zitat: Nun, ich hab das ganze so verstanden das du innerhalb des Renderhooks eine möglichkeit haben wolltest die betroffene Spalte zu erhalten, um nicht nicht für jede Spalte einen eigenen Hook bzw. eine eigene Hook-Struktur zu installieren. Oder zumindest eine Möglichkeit an die breite des Rahmens zu kommen der für dein "springen" sorgt. Wo ich gerade bei Rahmen bin: Das editieren in ListBrowsern läuft ja über das string.gadget. Wenn jetzt das string.gadget das bevel.image für den Rahmen benutzt, währe es doch mal ganz interessant zu sehen was passiert wenn du über LISTBROWSER_EditTags ein BVS_NONE an das string.gadget gibts. Edit: Hab gerade BEVEL_Style, BVS_NONE, ins StringExample eingebaut und den Rahmen um das Gadget kann man so tätsächlich einstellen. Vielleicht fehlt nur die möglichkeit nachzusehen wie breit BVS_FIELD ist (wird laut autodoc für string.gadgets benutzt). [ Dieser Beitrag wurde von ZeroG am 30.09.2006 um 19:39 Uhr geändert. ] [ - Answer - Quote - Direct link - ] |
-1- | [ - Post reply - ] |
amiga-news.de Forum > Programmierung > ListBrowser.gadget und LBNCA_RenderHook? | [ - Search - New posts - Register - Login - ] |
![]() |
Masthead |
Privacy policy |
Netiquette |
Advertising |
Contact
Copyright © 1998-2025 by amiga-news.de - all rights reserved. |
![]() |