home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fresh Fish 8
/
FreshFishVol8-CD1.bin
/
new
/
util
/
cdity
/
yak
/
src
/
blank_window.c
< prev
next >
Wrap
C/C++ Source or Header
|
1994-10-13
|
8KB
|
361 lines
/*
* Source machine generated by GadToolsBox V2.0b
* which is (c) Copyright 1991-1993 Jaba Development
*
* GUI Designed by : Martin W Scott and Gaël Marziou
*/
#include <exec/types.h>
#include <intuition/intuition.h>
#include <intuition/classes.h>
#include <intuition/classusr.h>
#include <intuition/imageclass.h>
#include <intuition/gadgetclass.h>
#include <intuition/intuitionbase.h>
#include <libraries/gadtools.h>
#include <graphics/displayinfo.h>
#include <graphics/gfxbase.h>
#include <proto/exec.h>
#include <proto/intuition.h>
#include <proto/gadtools.h>
#include <proto/graphics.h>
#include <proto/locale.h>
#include <proto/utility.h>
#include <string.h>
#include "version.h"
#include "yak.h"
#include "gui.h"
#define CATCOMP_NUMBERS
#include "locale/yak_locale_strings.h"
extern struct Catalog *Catalog;
extern LONG (*HandleIDCMP)(void);
struct Window *BlankWnd = NULL;
struct Gadget *BlankGList = NULL;
struct Gadget *BlankGadgets[Blank_CNT];
UWORD BlankLeft = 0;
UWORD BlankWidth = 383;
UWORD BlankHeight = 105;
UBYTE *BlankWdt = NULL;
UBYTE *MBMethod0Labels[4];
VOID
InitMBMethod0Labels()
{
MBMethod0Labels[0] = getString(NONE_STRING);
MBMethod0Labels[1] = getString(SPRITES_STRING);
MBMethod0Labels[2] = getString(COPPER_STRING);
MBMethod0Labels[3] = NULL;
}
#define Blank_TNUM 1
struct IntuiText BlankIText[Blank_TNUM] =
{
2,0,JAM1,261,81,NULL,NULL,NULL
};
UWORD BlankGTypes[] =
{
INTEGER_KIND,
INTEGER_KIND,
CYCLE_KIND,
BUTTON_KIND,
CHECKBOX_KIND
};
struct NewGadget BlankNGad[] =
{
160,53,51,14,NULL,NULL,GD_ScrTONum ,PLACETEXT_LEFT ,NULL ,NULL,
160,68,51,14,NULL,NULL,GD_MouseTONum ,PLACETEXT_LEFT ,NULL ,NULL,
195,3,170,14,NULL,NULL,GD_MBMethod ,PLACETEXT_LEFT ,NULL ,NULL,
140,88,100,13,NULL,NULL,GD_Return3 ,PLACETEXT_IN ,NULL ,NULL,
7,19,26,11,NULL,NULL,GD_BlankMouseOnKey,PLACETEXT_RIGHT,NULL ,NULL
};
VOID InitBlankNGad (VOID)
{
BlankNGad[GD_ScrTONum].ng_GadgetText = getString(SCREENTIMEOUT_STRING);
BlankNGad[GD_MouseTONum].ng_GadgetText = getString(MOUSETIMEOUT_STRING);
BlankNGad[GD_MBMethod].ng_GadgetText = getString(MOUSEBLANK_METHOD_STRING);
BlankNGad[GD_Return3].ng_GadgetText = getString(OK_STRING);
BlankNGad[GD_BlankMouseOnKey].ng_GadgetText = getString(BlankMouseOnKey_STRING);
}
ULONG BlankGTags[] =
{
(GTIN_Number),0,(GTIN_MaxChars),4,(STRINGA_Justification),STRINGRIGHT,(TAG_DONE),
(GTIN_Number),0,(GTIN_MaxChars),4,(STRINGA_Justification),STRINGRIGHT,(TAG_DONE),
(GTCY_Labels),(ULONG)&MBMethod0Labels[ 0 ],(TAG_DONE),
(TAG_DONE),
(GTCB_Scaled),TRUE,(TAG_DONE),
};
VOID
BlankRender()
{
UBYTE cnt;
UWORD X,Y, Width;
ComputeFont(BlankWidth,BlankHeight);
Width = ComputeX( 380 );
X = OffX +ComputeX(2);
DrawBevelBox( BlankWnd->RPort, X,
OffY +ComputeY(85),
Width,
ComputeY( 19 ),
GT_VisualInfo, VisualInfo, TAG_DONE );
Y = OffY +ComputeY(35);
BlankIText[ 0 ].LeftEdge = X +5;
BlankIText[ 0 ].TopEdge = Y +3;
DrawBevelBox( BlankWnd->RPort, X, Y,
Width,
ComputeY( 50 ),
GT_VisualInfo, VisualInfo, TAG_DONE );
DrawBevelBox( BlankWnd->RPort, X,
OffY + ComputeY( 1 ),
Width,
ComputeY( 34 ),
GT_VisualInfo, VisualInfo, TAG_DONE );
for (cnt = 0; cnt < Blank_TNUM; cnt++)
{
BlankIText[ cnt ].ITextFont = Font;
PrintIText(BlankWnd->RPort,&BlankIText[ cnt ],0,0);
}
}
int
OpenBlankWindow()
{
struct NewGadget ng;
struct Gadget *g;
UWORD lc,tc;
UWORD wleft = BlankLeft,wtop = WindowTop,ww,wh;
ComputeFont(BlankWidth,BlankHeight);
ww = ComputeX(BlankWidth);
wh = ComputeY(BlankHeight);
if ((wleft +ww +OffX +Scr->WBorRight) > Scr->Width) wleft = Scr->Width -ww;
if ((wtop +wh +OffY +Scr->WBorBottom) > Scr->Height) wtop = Scr->Height -wh;
if (! (g = CreateContext(&BlankGList)))
{
return(1L);
}
for(lc = 0,tc = 0; lc < Blank_CNT; lc++)
{
CopyMem((char *)&BlankNGad[ lc ],(char *)&ng,(long)sizeof(struct NewGadget));
ng.ng_VisualInfo = VisualInfo;
ng.ng_TextAttr = Font;
ng.ng_LeftEdge = OffX +ComputeX(ng.ng_LeftEdge);
ng.ng_TopEdge = OffY +ComputeY(ng.ng_TopEdge);
ng.ng_Width = ComputeX(ng.ng_Width);
ng.ng_Height = ComputeY(ng.ng_Height);
BlankGadgets[ lc ] = g = CreateGadgetA((ULONG)BlankGTypes[ lc ],g,&ng,(struct TagItem *) &BlankGTags[ tc ]);
while(BlankGTags[ tc ])
tc += 2;
tc++;
if (NOT g)
return(2L);
}
if (NOT (BlankWnd = OpenWindowTags(NULL,
WA_Left, wleft,
WA_Top, wtop,
WA_Width, ww +OffX +Scr->WBorRight,
WA_Height, wh +OffY +Scr->WBorBottom,
WA_IDCMP, LISTVIEWIDCMP|STRINGIDCMP|CYCLEIDCMP|BUTTONIDCMP|IDCMP_CLOSEWINDOW|IDCMP_VANILLAKEY|IDCMP_REFRESHWINDOW,
WA_Flags, WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_CLOSEGADGET|WFLG_SMART_REFRESH,
WA_Gadgets, BlankGList,
WA_Title, BlankWdt,
WA_ScreenTitle, getString(COPYRIGHT_STRING),
WA_PubScreenName,PubScreenName,
TAG_DONE)))
return(4L);
GT_RefreshWindow(BlankWnd,NULL);
BlankRender();
return(0L);
}
VOID
CloseBlankWindow()
{
CloseOneWindow(BlankWnd,NULL,BlankGList);
BlankWnd = NULL;
}
/* initialise all gadgets of Blank window */
static void
InitBlankGadgets(void)
{
InitToggleGadgets(BLANK_WINDOW);
InitWindowGadget(GDX_ScrTONum, GTIN_Number, blanksecs, BLANK_WINDOW);
InitWindowGadget(GDX_MouseTONum, GTIN_Number, mblanksecs, BLANK_WINDOW);
InitWindowGadget(GDX_MBMethod, GTCY_Active, mouseblank, BLANK_WINDOW);
}
/* handle Blank window events */
LONG
HandleBlankIDCMP(void)
{
struct IntuiMessage *msg;
struct Gadget *gadget;
ULONG class;
UWORD code;
LONG num;
while (msg = GT_GetIMsg(BlankWnd->UserPort))
{
class = msg->Class;
code = msg->Code;
gadget = (struct Gadget *)msg->IAddress;
GT_ReplyIMsg(msg);
switch (class)
{
case CLOSEWINDOW:
HideInterface();
return ROOT_OKAY;
case GADGETUP:
case GADGETDOWN:
switch (gadget->GadgetID)
{
case GD_Return3:
UpdateWindowsPosition();
CloseBlankWindow();
if (!ShowRootWindow())
PostError(getString(Couldnt_open_other_window_ERR));
return ROOT_OKAY;
case GD_MBMethod:
mouseblank = code;
mblankcount = mblanktimeout;
break;
case GD_ScrTONum:
num = GetNumber(gadget);
if (num >= 0)
{
blanksecs = num;
blankcount = blanktimeout = blanksecs*10;
}
else
{
InitWindowGadget(GDX_ScrTONum, GTIN_Number, blanksecs, BLANK_WINDOW);
DisplayBeep(BlankWnd->WScreen);
}
break;
case GD_MouseTONum:
num = GetNumber(gadget);
if (num >= 0)
{
mblanksecs = num;
mblankcount = mblanktimeout = mblanksecs*10;
}
else
{
InitWindowGadget(GDX_MouseTONum, GTIN_Number, mblanksecs, BLANK_WINDOW);
DisplayBeep(BlankWnd->WScreen);
}
break;
case GD_BlankMouseOnKey:
blankmouseonkey ^= TRUE;
break;
} /* switch (gadget->GadgetID) */
break;
case REFRESHWINDOW:
GT_BeginRefresh(BlankWnd);
GT_EndRefresh(BlankWnd, TRUE);
break;
} /* switch (class) */
} /* while more messages */
return ROOT_OKAY;
}
/* show our blank window */
BOOL
ShowBlankWindow(void)
{
if (!OpenBlankWindow()) /* like the name says... */
{
InitBlankGadgets();
wndsigflag = 1 << BlankW