amiga-news DEUTSCHE VERSION
.
Links| Forums| Comments| Report news
.
Chat| Polls| Newsticker| Archive
.

amiga-news.de Forum > Programmierung > WB-Desktop Fenster finden [ - Search - New posts - Register - Login - ]

-1- [ - Post reply - ]

2004-03-24, 00:12 h

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

Gruesse, Andre

[ - Answer - Quote - Direct link - ]

2004-03-24, 09:19 h

tokai
Posts: 1071
User
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. ]

[ - Answer - Quote - Direct link - ]

2004-03-24, 19:34 h

AND
Posts: 9
User
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



[ - Answer - Quote - Direct link - ]


-1- [ - Post reply - ]


amiga-news.de Forum > Programmierung > WB-Desktop Fenster finden [ - Search - New posts - Register - Login - ]


.
Masthead | Privacy policy | Netiquette | Advertising | Contact
Copyright © 1998-2024 by amiga-news.de - all rights reserved.
.