🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.sys.amiga.tech
Article #1006

Re: BOOPSI-Layout?

#1006
From: Reinhard Katzmann
Date: Sun, 01 Oct 1995 11:39
58 lines
2793 bytes
Joerg Kollmann (joergk@p233.informatik.uni-bremen.de) wrote:
: Hallo,

: ich experimentiere gerade mit einer BOOPSI-Klasse, 
: die in der Layout-Method ein anderes Gadget aus
: dem Window entfernen, zerstören, neu anlegen und
: wieder an die Gadget-Liste des Fensters anhängen soll.
: Das funktioniert aber offenbar nicht mit RemoveGadget(),
: AddGadget(), sondern nur, wenn ich das Gadget "eigenhändig"
: aus der Gadgetliste entferne bzw. anhänge.

Genau weiss ich es nicht, aber ich vermute, dass die Funktionen
nur mit den normalen Gadgets funktionieren, aber nicht mit
BOOPSI-Gadgets. BOOPSI-Gadgets haben ein spezielle Methode
(OM_DISPOSE), mit dem sie sich zerstoeren und den Speicher
freigeben, den sie belegen.

: Warum funktionieren Add/RemoveGadget während des layouts
: nicht und darf man überhaupt selbst die Gadgetliste eines
: Windows modifizieren?

Soweit ich mich an die RKMs erinnere, darf man das nicht tun.
BOOPSI-Gadgets werden wie alle BOOPSI-Objekte mit DisposeObject()
zerstoert. Sie sind auch nicht in einer Liste angeordnet, sondern
in einer Gruppe. Ich empfehle dir die BOOPSI Sektion aus den
RKMs zu lesen (in der Gruppe kann man Gadgets mit bestimmten
Methoden hinzufuegen und auch wieder entfernen.)

: Gibt es sonst eine andere Möglichkeit, ein Gadget nach
: Größenveränderung des Fensters und vor dem Neurendern
: auszutauschen?

Ich kann die Frage nicht beantworten, da ich nicht weiss, was
fuer ein Gadget du benutzt (BOOPSI, normal, GadTools).
Diese drei Typen sollte man sehr sorgfaeltig auseinanderhalten.

Ich habe vor relativ kurzer Zeit eine Boopsi Klasse entworfen, allerdings
auf Basis einer anderen und ausserdem mit Hilfe von BGUI. Dort
laeuft das so ab, dass in der Superklasse der Rahmen gerendert
wird (die ist von BGUI und ich vermute die normale BOOPSI SuperClass
macht das gleiche) und ich dann den Rest rendere (d.h. im Prinzip
neuzeichnen. Ich vermute, dass in der SuperClass auch das alte
Gadget geloescht wird. Das sieht dann ungefaehr so aus:

    /* First we let the superclass render */
    if ( rc = DoSuperMethodA( cl, obj, ( Msg )gpr )) {

      /* Now we do our own rendering */

      ...
    }

- Reinhard Katzmann

--
EMAIL: suamor@student.uni-tuebingen.de (Yes, I'm Suamor :-)

One day I hope to finish my RPG Pertergrin.
Technical Details
Message-ID: <44lulp$3r1@wsiserv.Informatik.Uni-Tuebingen.De>
Path: arc1-ca.pugleaf.net!news.wsi!katzmann
References: <44bjie$jud@gina.zfn.uni-bremen.de>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!news.wsi!katzmann
From: katzmann@peanuts.informatik.uni-tuebingen.de (Reinhard Katzmann)
Newsgroups: de.comp.sys.amiga.tech
Subject: Re: BOOPSI-Layout?
Date: 1 Oct 1995 11:39:36 GMT
Organization: Technische Informatik, Uni Tuebingen
Message-ID: <44lulp$3r1@wsiserv.Informatik.Uni-Tuebingen.De>
References: <44bjie$jud@gina.zfn.uni-bremen.de>
NNTP-Posting-Host: gw192.informatik.uni-tuebingen.de
X-Newsreader: TIN [version 1.2 PL2]