home *** CD-ROM | disk | FTP | other *** search
- /* window.c
- *
- * (c) Copyright 1992 Commodore-Amiga, Inc. All rights reserved.
- *
- * This software is provided as-is and is subject to change; no warranties
- * are made. All use is at your own risk. No liability or responsibility
- * is assumed.
- *
- */
-
- #include "hyperbrowser.h"
-
- /*****************************************************************************/
-
- STRPTR DumpWindowFlags (struct GlobalData * gd, struct Window * win)
- {
- ULONG flags = win->Flags;
-
- memset (gd->gd_FBuffer, 0, sizeof (gd->gd_FBuffer));
-
- /* Gadget information */
- if (flags & WFLG_SIZEGADGET)
- strcat (gd->gd_FBuffer, "size ");
-
- if (flags & WFLG_DRAGBAR)
- strcat (gd->gd_FBuffer, "drag ");
-
- if (flags & WFLG_DEPTHGADGET)
- strcat (gd->gd_FBuffer, "depth ");
-
- if (flags & WFLG_CLOSEGADGET)
- strcat (gd->gd_FBuffer, "close ");
-
- if (flags & WFLG_HASZOOM)
- strcat (gd->gd_FBuffer, "zoom ");
-
- /* Refresh */
- switch (flags & WFLG_REFRESHBITS)
- {
- case WFLG_SMART_REFRESH:
- strcat (gd->gd_FBuffer, "smart ");
- break;
-
- case WFLG_SIMPLE_REFRESH:
- strcat (gd->gd_FBuffer, "simple ");
- break;
-
- case WFLG_SUPER_BITMAP:
- strcat (gd->gd_FBuffer, "super ");
- break;
-
- case WFLG_OTHER_REFRESH:
- strcat (gd->gd_FBuffer, "other ");
- break;
- }
-
- /* Misc. */
- if (flags & WFLG_GIMMEZEROZERO)
- strcat (gd->gd_FBuffer, "gzz ");
-
- if (flags & WFLG_RMBTRAP)
- strcat (gd->gd_FBuffer, "rmb ");
-
- if (flags & WFLG_NOCAREREFRESH)
- strcat (gd->gd_FBuffer, "nocare ");
-
- if (flags & WFLG_NW_EXTENDED)
- strcat (gd->gd_FBuffer, "ext. ");
-
- if (flags & WFLG_NEWLOOKMENUS)
- strcat (gd->gd_FBuffer, "nlm ");
-
- if (flags & WFLG_VISITOR)
- strcat (gd->gd_FBuffer, "visitor ");
-
- if (flags & WFLG_ZOOMED)
- strcat (gd->gd_FBuffer, "zoomed ");
-
- return (gd->gd_FBuffer);
- }
-
- /*****************************************************************************/
-
- void showwindow (struct GlobalData * gd, ULONG address)
- {
- struct Screen *scr;
- struct Window *win;
- BOOL found = FALSE;
- ULONG lock;
-
- /* Just in case we don't find the screen */
- strcpy (gd->gd_Node, "@{b}window gone@{ub}\n");
-
- /* Search for the screen */
- lock = LockIBase (0);
- for (scr = IntuitionBase->FirstScreen; scr && !found; scr = scr->NextScreen)
- {
- for (win = scr->FirstWindow; win && !found; win = win->NextWindow)
- {
- /* Is this the window we were looking for? */
- if (win == (struct Window *) address)
- {
- /* Build the screen information */
- strcpy (gd->gd_Node, "@{b}Window@{ub}\n\n");
- bprintf (gd, " Address: @{\"%08lx\" link HYPERNOZY.MEMORY.(%08lx)}\n", (void *) address, (void *) address);
- bprintf (gd, " Next Window: @{\"%08lx\" link HYPERNOZY.WINDOW.(%08lx)}\n", win->NextWindow, win->NextWindow);
- bprintf (gd, " Box: %ld, %ld, %ld, %ld\n", (void *) win->LeftEdge, (void *) win->TopEdge, (void *) win->Width, (void *) win->Height);
- bprintf (gd, " Minimum Size: %ld, %ld\n", (void *) win->MinWidth, (void *) win->MinHeight);
- bprintf (gd, " Maximum Size: %ld, %ld\n", (void *) win->MaxWidth, (void *) win->MaxHeight);
- bprintf (gd, " Flags: %s\n", DumpWindowFlags (gd, win));
- bprintf (gd, " Menu: @{\"%08lx\" link HYPERNOZY.MENU.(%08lx)}\n", (void *) win->MenuStrip, (void *) win->MenuStrip);
- bprintf (gd, " Title: %s\n", ((win->Title) ? win->Title : ""));
- bprintf (gd, " FirstRequest: @{\"%08lx\" link HYPERNOZY.REQUESTER.(%08lx)}\n", win->FirstRequest, win->FirstRequest);
- bprintf (gd, " DMRRequest: @{\"%08lx\" link HYPERNOZY.REQUESTER.(%08lx)}\n", win->DMRequest, win->DMRequest);
- bprintf (gd, " Req. Count: %ld\n", (void *) win->ReqCount);
- bprintf (gd, " Screen: @{\"%08lx\" link HYPERNOZY.SCREEN.(%08lx)}\n", win->WScreen, win->WScreen);
- bprintf (gd, " RastPort: @{\"%08lx\" link HYPERNOZY.RASTPORT.(%08lx)}\n", win->RPort, win->RPort);
- bprintf (gd, " Border Sizes: %ld, %ld, %ld, %ld\n", (void *) win->BorderLeft, (void *) win->BorderTop, (void *) win->BorderRight, (void *) win->BorderBottom);
- bprintf (gd, "Border RastPort: @{\"%08lx\" link HYPERNOZY.RASTPORT.(%08lx)}\n", win->BorderRPort, win->BorderRPort);
- bprintf (gd, " First Gadget: @{\"%08lx\" link HYPERNOZY.GADGETLIST.(%08lx)}\n", win->FirstGadget, win->FirstGadget);
- bprintf (gd, " Parent Window: @{\"%08lx\" link HYPERNOZY.WINDOW.(%08lx)}\n", win->Parent, win->Parent);
- bprintf (gd, " Desc. Window: @{\"%08lx\" link HYPERNOZY.WINDOW.(%08lx)}\n", win->Descendant, win->Descendant);
- bprintf (gd, " Pointer Data: @{\"%08lx\" link HYPERNOZY.MEMORY.(%08lx)}\n", win->Pointer, win->Pointer);
- bprintf (gd, " Pointer Box: %ld, %ld, %ld, %ld\n", (void *)win->XOffset, (void *)win->YOffset, (void *)win->PtrWidth, (void *) win->PtrHeight);
- bprintf (gd, " IDCMP Flags: %08lx\n", (void *) win->IDCMPFlags);
- bprintf (gd, " User Port: @{\"%08lx\" link HYPERNOZY.MSGPORT.(%08lx)}\n", win->UserPort, win->UserPort);
- bprintf (gd, " Window Port: @{\"%08lx\" link HYPERNOZY.MSGPORT.(%08lx)}\n", win->WindowPort, win->WindowPort);
- bprintf (gd, " Message Key: @{\"%08lx\" link HYPERNOZY.MEMORY.(%08lx)}\n", win->MessageKey, win->MessageKey);
- bprintf (gd, " Detail, Block: %ld, %ld\n", (void *) win->DetailPen, (void *) win->BlockPen);
- bprintf (gd, " Check Mark: @{\"%08lx\" link HYPERNOZY.IMAGE.(%08lx)}\n", win->CheckMark, win->CheckMark);
- bprintf (gd, " Screen Title: %s\n", (win->ScreenTitle) ? win->ScreenTitle : "");
- bprintf (gd, " Ext. Data: @{\"%08lx\" link HYPERNOZY.MEMORY.(%08lx)}\n", win->ExtData, win->ExtData);
- bprintf (gd, " User Data: @{\"%08lx\" link HYPERNOZY.MEMORY.(%08lx)}\n", win->UserData, win->UserData);
- bprintf (gd, " Layer: @{\"%08lx\" link HYPERNOZY.LAYER.(%08lx)}\n", win->WLayer, &win->WLayer);
- bprintf (gd, " Font: @{\"%08lx\" link HYPERNOZY.FONT.(%08lx)}\n", win->IFont, win->IFont);
- bprintf (gd, " More Flags: %08lx\n", (void *) win->MoreFlags);
-
- /* Show that we found it */
- found = TRUE;
- }
- }
- }
- UnlockIBase (lock);
-
- }
-