amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > WB-Desktop Fenster finden [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

24.03.2004, 00:12 Uhr

AND
Posts: 9
Nutzer
Kann mir jemand sagen, wie ich den Fensterpointer des WB-Hauptfensters (des WB-Desktops) herausfinden kann.

Gruesse, Andre

[ - Antworten - Zitieren - Direktlink - ]

24.03.2004, 09:19 Uhr

tokai
Posts: 1071
Nutzer
Den brauchst du nicht. Wirklich. :-)

Den braucht man nur, wenn man etwas 'unsauberes' (Patch, etc.) machen möchte.

Trotzdem, hier so könnte es gehen (aber sobald sich der Screen schliesst o.ä.: BOOM, BANG, GURU. Weil der Window ptr dann nicht mehr valid ist. You've been warned!!! :P ) :

code:
#include <exec/exec.h>
#include <exec/types.h>
#include <intuition/intuition.h>

#include <proto/dos.h>
#include <proto/exec.h>
#include <proto/intuition.h>

struct IntuitionBase *IntuitionBase;

int main(void)
{
    struct Screen *scr;
    struct Window *win;

    if ( (IntuitionBase = (struct IntuitionBase *)
                          OpenLibrary("intuition.library",50UL)) )
    {
        Printf("intuibase done.n");

        if ( (scr = LockPubScreen("Workbench") ) )
        {
            STRPTR teststr = "~~~~tokai ruleeeeezzzzz!~~~";
            STRPTR store;
            ULONG  lockib;

            Printf("workbench screen looked.n");

            lockib = LockIBase(NULL);
            win = scr->FirstWindow;
            while (win->NextWindow)
            {
                win = win->NextWindow;
            }
            UnlockIBase(lockib);

            store = win->ScreenTitle;

            Printf("stored title %sn",store);

            Printf("Replacing title stringn");
            SetWindowTitles(win,NULL,teststr);

            Printf("Wait for CTRL-Cn");

            Wait(SIGBREAKF_CTRL_C);

            Printf("Reset title stringn");
            SetWindowTitles(win,NULL,store);

            UnlockPubScreen(NULL,scr);
            Printf("workbench screen unlocked.n");
        }

        CloseLibrary((struct Library *)IntuitionBase);
    }

    return 0;
}



regards,
tokai




--
http://www.christianrosentreter.com



IRC: #amiganews.de @ARCNET (e.g. de3.arcnet.vapor.com/ port 6667)

[ Dieser Beitrag wurde von tokai am 24.03.2004 editiert. ]

[ - Antworten - Zitieren - Direktlink - ]

24.03.2004, 19:34 Uhr

AND
Posts: 9
Nutzer
Zitat:
Original von tokai:
Den brauchst du nicht. Wirklich. :-)

Den braucht man nur, wenn man etwas 'unsauberes' (Patch, etc.) machen möchte.


Stimmt nur halb. Was ich machen möchte, und das tue ich tatsächlich,
ist das Rename "in place" zu machen. D.h. man kann quasi den Text direkt unter dem Piktogramm editieren.

Dazu bestimme ich die Position des Piktogramms und öffne genau über dem Text ein Fenster mit einem Stringadget.

Die Pos. des Icons ist aber relativ zum Fenster. Wenn das Icon nicht direkt auf dem WB-Desktop liegt, habe ich das Fenster durch den ChangeWorkbenchSelection-hook bereits.

Und dieser liefert mir, wie ich nun weiss, auch das WB-Hauptfenster, wenn ich eben mit ChangeWorkbenchSelection(NULL, hook) des Desktop scanne.

Das Programm läuft schon gut, ist aber noch nicht ausgereift.

Gruss, Andre



[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > WB-Desktop Fenster finden [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.