home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Fred Fish Collection 1.5
/
ffcollection-1-5-1992-11.iso
/
ff_progs
/
ui_utils
/
aib623.lha
/
source
/
windows.c
< prev
next >
Wrap
C/C++ Source or Header
|
1992-03-21
|
9KB
|
396 lines
#include "aib.h"
#include "extern.h"
/* prototypes */
void other_gads (struct Gadget *,UWORD);
void replace_flags (void);
void capture_flags (void);
void Modify_Theirs (void);
void capture_params(void);
void replace_params(void);
/************************* modified ***************************************/
void Modify_Theirs (void)
{
WORD zoom[4];
zoom[0]=theirs.zl;
zoom[1]=theirs.zt;
zoom[2]=theirs.zw;
zoom[3]=theirs.zh;
if (theirs.sketchpad) CloseWindow(theirs.sketchpad);
if (their_menu)
{
if (menu) FreeMenus(menu);
if ( !(menu=CreateMenus(their_menu,GTMN_FrontPen,0,
TAG_DONE))) abort_me("no menu!");
if (!(LayoutMenus(menu,vi,
GTMN_TextAttr,menuta,
TAG_DONE))) abort_me("no layout!");
}
if (theirs.zoom)
theirs.sketchpad = OpenWindowTags(NULL,
WA_Activate, theirs.act,
WA_IDCMP,CLOSEWINDOW | NEWSIZE | REFRESHWINDOW | MENUPICK |
SLIDERIDCMP | STRINGIDCMP | BUTTONIDCMP |
CHECKBOXIDCMP | MXIDCMP | MENUPICK |LISTVIEWIDCMP,
WA_Gadgets,sketchlist,
WA_Left,theirs.left,
WA_Width,theirs.width,
WA_Top,theirs.top,
WA_Height,theirs.height,
WA_InnerHeight,theirs.innerh,
WA_InnerWidth,theirs.innerw,
WA_DragBar,theirs.drag,
WA_DepthGadget, theirs.depth,
WA_CloseGadget, theirs.close,
WA_SizeGadget, theirs.size,
WA_MinWidth,theirs.minw,
WA_MinHeight,theirs.minh,
WA_MaxHeight,theirs.maxh,
WA_MaxWidth,theirs.maxw,
WA_RptQueue,theirs.rpt,
WA_Backdrop, theirs.back,
WA_ReportMouse,theirs.report,
WA_NoCareRefresh, theirs.nocare,
WA_Borderless, theirs.bord,
WA_SimpleRefresh,TRUE,
WA_RMBTrap, theirs.rmb,
WA_Title,theirs.title,
WA_Zoom,zoom,
TAG_DONE);
else
theirs.sketchpad = OpenWindowTags(NULL,
WA_Activate, theirs.act,
WA_IDCMP,CLOSEWINDOW | NEWSIZE | REFRESHWINDOW | MENUPICK |
SLIDERIDCMP | STRINGIDCMP | BUTTONIDCMP |
CHECKBOXIDCMP | MXIDCMP | MENUPICK |LISTVIEWIDCMP,
WA_Gadgets,sketchlist,
WA_Left,theirs.left,
WA_Width,theirs.width,
WA_Top,theirs.top,
WA_Height,theirs.height,
WA_InnerHeight,theirs.innerh,
WA_InnerWidth,theirs.innerw,
WA_DragBar,theirs.drag,
WA_DepthGadget, theirs.depth,
WA_CloseGadget, theirs.close,
WA_SizeGadget, theirs.size,
WA_MinWidth,theirs.minw,
WA_MinHeight,theirs.minh,
WA_MaxHeight,theirs.maxh,
WA_MaxWidth,theirs.maxw,
WA_RptQueue,theirs.rpt,
WA_Backdrop, theirs.back,
WA_ReportMouse,theirs.report,
WA_NoCareRefresh, theirs.nocare,
WA_Borderless, theirs.bord,
WA_RMBTrap, theirs.rmb,
WA_Title,theirs.title,
WA_SimpleRefresh,TRUE,
TAG_DONE);
GT_RefreshWindow(theirs.sketchpad,NULL);
if (their_menu) SetMenuStrip(theirs.sketchpad,menu);
}
/****************** other gads (for windows )*********************************/
void other_gads (struct Gadget *gad, UWORD code)
{
switch (gad->GadgetID) {
/* toggle window flags */
case W1_size:
their.size = (their.size)?FALSE:TRUE;
printf("%d\n",their.size);
break;
case W1_drag:
their.drag = (their.drag)?FALSE:TRUE;
break;
case W1_dept:
their.depth = (their.depth)?FALSE:TRUE;
break;
case W1_clos:
their.close = (their.close)?FALSE:TRUE;
break;
case W1_back:
their.back = (their.back)?FALSE:TRUE;
break;
case W1_repo:
their.report = (their.report)?FALSE:TRUE;
break;
case W1_noca:
their.nocare = (their.nocare)?FALSE:TRUE;
break;
case W1_bord:
their.bord = (their.bord)?FALSE:TRUE;
break;
case W1_acti:
their.act = (their.act)?FALSE:TRUE;
break;
case W1_rmbt:
their.rmb = (their.rmb)?FALSE:TRUE;
break;
case W1_simp:
their.simple = (their.simple)?FALSE:TRUE;
break;
case W1_smar:
their.smart = (their.smart)?FALSE:TRUE;
break;
case W1_sizer:
their.sizer = (their.sizer)?FALSE:TRUE;
break;
case W1_sizeb:
their.sizeb = (their.sizeb)?FALSE:TRUE;
break;
case W1_auto:
their.aut = (their.aut)?FALSE:TRUE;
break;
case W1_gimm:
their.gimme = (their.gimme)?FALSE:TRUE;
break;
/*** main window specs ****/
case W_tit:
strcpy(their.title,((struct StringInfo *)gad->SpecialInfo)->Buffer);
break;
case W_lef:
their.left = ((struct StringInfo *)gad->SpecialInfo)->LongInt;
break;
case W_top:
their.top = ((struct StringInfo *)gad->SpecialInfo)->LongInt;
break;
case W_wid:
their.width = ((struct StringInfo *)gad->SpecialInfo)->LongInt;
break;
case W_hei:
their.height = ((struct StringInfo *)gad->SpecialInfo)->LongInt;
break;
case W_IDC:
break;
case W_fla:
break;
case W_minw:
their.minw = ((struct StringInfo *)gad->SpecialInfo)->LongInt;
break;
case W_minh:
their.minh = ((struct StringInfo *)gad->SpecialInfo)->LongInt;
break;
case W_maxw:
their.maxw = ((struct StringInfo *)gad->SpecialInfo)->LongInt;
break;
case W_maxh:
their.maxh = ((struct StringInfo *)gad->SpecialInfo)->LongInt;
break;
case W_inw:
their.innerw = ((struct StringInfo *)gad->SpecialInfo)->LongInt;
break;
case W_inh:
their.innerh = ((struct StringInfo *)gad->SpecialInfo)->LongInt;
break;
case W_pubn:
break;
case W_pub:
break;
case W_pubf:
break;
case W_zoo1:
their.zl = ((struct StringInfo *)gad->SpecialInfo)->LongInt;
break;
case W_zoo2:
their.zt = ((struct StringInfo *)gad->SpecialInfo)->LongInt;
break;
case W_zoo3:
their.zw = ((struct StringInfo *)gad->SpecialInfo)->LongInt;
break;
case W_zoo4:
their.zh = ((struct StringInfo *)gad->SpecialInfo)->LongInt;
break;
case W_zoo:
their.zoom = (their.zoom)?FALSE:TRUE;
GT_SetGadgetAttrs(zt,window,NULL,
GA_Disabled,!their.zoom,
TAG_DONE);
GT_SetGadgetAttrs(zw,window,NULL,
GA_Disabled,!their.zoom,
TAG_DONE);
GT_SetGadgetAttrs(zh,window,NULL,
GA_Disabled,!their.zoom,
TAG_DONE);
GT_SetGadgetAttrs(zl,window,NULL,
GA_Disabled,!their.zoom,
TAG_DONE);
break;
case W_rpt:
their.report = ((struct StringInfo *)gad->SpecialInfo)->LongInt;
break;
default:
menu_opts(gad, code);
break;
}
}
/******************************* capture params ****************************/
void capture_params(void)
{
their.top = theirs.top;
their.width = theirs.width;
strcpy (their.title,theirs.title);
their.height = theirs.height;
their.left = theirs.left;
their.minw = theirs.minw;
their.minh = theirs.minh;
their.maxh = theirs.maxh;
their.maxw = theirs.maxw;
their.innerw = theirs.innerw;
their.innerh = theirs.innerh;
their.rpt = theirs.rpt;
their.zt = theirs.zt;
their.zh = theirs.zh;
their.zl = theirs.zl;
their.zw = theirs.zw;
their.zoom = theirs.zoom;
their.flags = theirs.flags;
}
/************************* replace params ********************************/
void replace_params(void)
{
theirs.top = their.top;
theirs.width = their.width;
strcpy (theirs.title,their.title);
theirs.height = their.height;
theirs.left = their.left;
theirs.minw = their.minw;
theirs.minh = their.minh;
theirs.maxh = their.maxh;
theirs.maxw = their.maxw;
theirs.innerw = their.innerw;
theirs.innerh = their.innerh;
theirs.rpt = their.rpt;
theirs.zt = their.zt;
theirs.zh = their.zh;
theirs.zl = their.zl;
theirs.zw = their.zw;
theirs.zoom = their.zoom;
theirs.flags = their.flags;
Modify_Theirs();
}
/******************* replace flags ******************************************/
void replace_flags(void)
{
theirs.size = their.size;
theirs.drag = their.drag;
theirs.depth = their.depth;
theirs.close = their.close;
theirs.back = their.back;
theirs.report = their.report;
theirs.nocare = their.nocare;
theirs.bord = their.bord;
theirs.act = their.act;
theirs.rmb = their.rmb;
theirs.simple = their.simple;
theirs.smart = their.smart;
theirs.sizer = their.sizer;
theirs.sizeb = their.sizeb;
theirs.aut = their.aut;
theirs.gimme = their.gimme;
Modify_Theirs();
}
/*********************** caputre flags **********************************/
void capture_flags(void)
{
their.size = theirs.size;
their.drag = theirs.drag;
their.depth = theirs.depth;
their.close = theirs.close;
their.back = theirs.back;
their.report = theirs.report;
their.nocare = theirs.nocare;
their.bord = theirs.bord;
their.act = theirs.act;
their.rmb = theirs.rmb;
their.simple = theirs.simple;
their.smart = theirs.smart;
their.sizer = theirs.sizer;
their.sizeb = theirs.sizeb;
their.aut = theirs.aut;
their.gimme = theirs.gimme;
}