home *** CD-ROM | disk | FTP | other *** search
- /*
- ** GadTools layout toolkit
- **
- ** Copyright © 1993-1996 by Olaf `Olsen' Barthel
- ** Freely distributable.
- **
- ** :ts=4
- */
-
- #ifndef _GTLAYOUT_GLOBAL_H
- #include "gtlayout_global.h"
- #endif
-
- VOID
- LTP_GetDisplayClip(struct Screen *screen,WORD *left,WORD *top,WORD *width,WORD *height)
- {
- struct TagItem tags[2] = { VTAG_VIEWPORTEXTRA_GET, NULL, TAG_DONE };
-
- if(!VideoControl(screen->ViewPort.ColorMap,tags))
- {
- struct ViewPortExtra *vpe = (struct ViewPortExtra *)tags[0].ti_Data;
- struct Rectangle clip;
-
- QueryOverscan(GetVPModeID(&screen->ViewPort),&clip,OSCAN_TEXT);
-
- *width = vpe->DisplayClip.MaxX - vpe->DisplayClip.MinX + 1;
- *height = vpe->DisplayClip.MaxY - vpe->DisplayClip.MinY + 1;
-
- if(*width < clip.MaxX - clip.MinX + 1)
- *width = clip.MaxX - clip.MinX + 1;
-
- if(*height < clip.MaxY - clip.MinY + 1)
- *height = clip.MaxY - clip.MinY + 1;
-
- if(*width > screen->Width)
- *width = screen->Width;
-
- if(*height > screen->Height)
- *height = screen->Height;
- }
- else
- {
- *width = screen->Width;
- *height = screen->Height;
- }
-
- *left = screen->LeftEdge;
- *top = screen->TopEdge;
-
- if(*left > 0)
- *left = 0;
- else
- *left = -(*left);
-
- if(*top > 0)
- *top = 0;
- else
- *top = -(*top);
-
- if((*left > screen->Width) || (*left < 0))
- *left = 0;
-
- if ((*top > screen->Height) || (*top < 0))
- *top = 0;
- }
-