2 * Source machine generated by GadToolsBox V1.4
3 * which is (c) Copyright 1991,92 Jaba Development
8 struct Screen
*Scr
= NULL
;
9 UBYTE
*PubScreenName
= "Workbench";
10 APTR VisualInfo
= NULL
;
11 struct Window
*Project0Wnd
= NULL
;
12 struct Gadget
*Project0GList
= NULL
;
13 struct IntuiMessage Project0Msg
;
14 struct Menu
*Project0Menus
= NULL
;
15 struct Gadget
*Project0Gadgets
[5];
16 UWORD Project0Left
= 10;
17 UWORD Project0Top
= 15;
18 UWORD Project0Width
= 368;
19 UWORD Project0Height
= 63;
20 UBYTE
*Project0Wdt
= (UBYTE
*)"Shuffle V1.1";
21 struct TextAttr
*Font
, Attr
;
25 UBYTE
*tiles0Labels
[NUMTILES
+ 1] = {
33 UBYTE
*shuffle0Labels
[NUMSHUFFLES
+ 1] = {
44 UBYTE
*mode0Labels
[] = {
45 (UBYTE
*)"Move Tiles",
50 struct NewMenu Project0NewMenu
[] = {
51 { NM_TITLE
, (STRPTR
)"Project", NULL
, 0, 0L, NULL
, },
52 { NM_ITEM
, (STRPTR
)"Load...", (STRPTR
)"L", 0, 0L, (APTR
)Project0loadconfig
, },
53 { NM_ITEM
, (STRPTR
)"Save", (STRPTR
)"C", 0, 0L, (APTR
)Project0saveconfig
, },
54 { NM_ITEM
, (STRPTR
)"Save as...", (STRPTR
)"S", 0, 0L, (APTR
)Project0saveasconfig
, },
55 { NM_ITEM
, (STRPTR
)NM_BARLABEL
, NULL
, 0, 0L, NULL
, },
56 { NM_ITEM
, (STRPTR
)"Save as default", (STRPTR
)"D", 0, 0L, (APTR
)Project0savedefault
, },
57 { NM_ITEM
, (STRPTR
)NM_BARLABEL
, NULL
, 0, 0L, NULL
, },
58 { NM_ITEM
, (STRPTR
)"About...", (STRPTR
)"A", 0, 0L, (APTR
)Project0about
, },
59 { NM_ITEM
, (STRPTR
)NM_BARLABEL
, NULL
, 0, 0L, NULL
, },
60 { NM_ITEM
, (STRPTR
)"Quit", (STRPTR
)"Q", 0, 0L, (APTR
)Project0quit
, },
61 { NM_TITLE
, (STRPTR
)"Options", NULL
, 0, 0L, NULL
, },
62 { NM_ITEM
, (STRPTR
)"Write Icons", (STRPTR
)"I",CHECKIT
| MENUTOGGLE
| CHECKED
, 0L, (APTR
)Project0Icon
, },
63 { NM_END
, NULL
, NULL
, 0, 0L, NULL
}
66 UWORD Project0GTypes
[] = {
74 struct NewGadget Project0NGad
[] = {
75 { 14, 4, 346, 14, (UBYTE
*)"_Start", NULL
, GD_start
, PLACETEXT_IN
, NULL
, (APTR
)startClicked
, },
76 { 14, 24, 136, 15, (UBYTE
*)"_Tiles", NULL
, GD_tiles
, PLACETEXT_RIGHT
, NULL
, (APTR
)tilesClicked
, },
77 { 278, 24, 82, 15, (UBYTE
*)"Shu_ffle", NULL
, GD_shuffle
, PLACETEXT_LEFT
, NULL
, (APTR
)shuffleClicked
, },
78 { 278, 44, 26, 11, (UBYTE
*)"_Numbers", NULL
, GD_numbers
, PLACETEXT_LEFT
, NULL
, (APTR
)numbersClicked
, },
79 { 14, 41, 136, 15, (UBYTE
*)"_Mode", NULL
, GD_mode
, PLACETEXT_RIGHT
, NULL
, (APTR
)modeClicked
},
82 IPTR Project0GTags
[] = {
83 (GT_Underscore
), '_', (TAG_DONE
),
84 (GTCY_Labels
), (IPTR
)&tiles0Labels
[ 0 ], (GT_Underscore
), '_', (TAG_DONE
),
85 (GTCY_Labels
), (IPTR
)&shuffle0Labels
[ 0 ], (GT_Underscore
), '_', (TAG_DONE
),
86 (GTCB_Checked
), TRUE
, (GT_Underscore
), '_', (TAG_DONE
),
87 (GTCY_Labels
), (IPTR
)&mode0Labels
[ 0 ], (GT_Underscore
), '_', (TAG_DONE
)
91 static UWORD
ComputeX( UWORD value
)
93 return(( UWORD
)((( FontX
* value
) + 4 ) / 8 ));
96 static UWORD
ComputeY( UWORD value
)
98 return(( UWORD
)((( FontY
* value
) + 4 ) / 8 ));
101 static void ComputeFont( UWORD width
, UWORD height
)
104 Font
->ta_Name
= (STRPTR
)GfxBase
->DefaultFont
->tf_Message
.mn_Node
.ln_Name
;
105 Font
->ta_YSize
= FontY
= GfxBase
->DefaultFont
->tf_YSize
;
106 FontX
= GfxBase
->DefaultFont
->tf_XSize
;
108 OffX
= Scr
->WBorLeft
;
109 OffY
= Scr
->RastPort
.TxHeight
+ Scr
->WBorTop
+ 1;
111 if ( width
&& height
) {
112 if (( ComputeX( width
) + OffX
+ Scr
->WBorRight
) > Scr
->Width
)
114 if (( ComputeY( height
) + OffY
+ Scr
->WBorBottom
) > Scr
->Height
)
120 Font
->ta_Name
= (STRPTR
)"topaz.font";
121 FontX
= FontY
= Font
->ta_YSize
= 8;
124 int SetupScreen( void )
126 if ( ! ( Scr
= LockPubScreen( PubScreenName
)))
131 if ( ! ( VisualInfo
= GetVisualInfo( Scr
, TAG_DONE
)))
134 if ( ! ( info
.dri
= GetScreenDrawInfo( Scr
)))
140 void CloseDownScreen( void )
144 FreeScreenDrawInfo(Scr
,info
.dri
);
148 FreeVisualInfo( VisualInfo
);
153 UnlockPubScreen( NULL
, Scr
);
158 int HandleProject0IDCMP( void )
160 struct IntuiMessage
*m
;
165 while(( m
= GT_GetIMsg( Project0Wnd
->UserPort
))) {
167 CopyMem(( char * )m
, ( char * )&Project0Msg
, (long)sizeof( struct IntuiMessage
));
171 switch ( Project0Msg
.Class
) {
173 case IDCMP_REFRESHWINDOW
:
174 GT_BeginRefresh( Project0Wnd
);
175 GT_EndRefresh( Project0Wnd
, TRUE
);
178 case IDCMP_CLOSEWINDOW
:
179 running
= Project0CloseWindow();
182 case IDCMP_VANILLAKEY
:
183 running
= Project0VanillaKey();
187 func
= ( void * )(( struct Gadget
* )Project0Msg
.IAddress
)->UserData
;
191 while( Project0Msg
.Code
!= MENUNULL
)
193 n
= ItemAddress( Project0Menus
, Project0Msg
.Code
);
194 func
= (void *)(GTMENUITEM_USERDATA( n
));
196 Project0Msg
.Code
= n
->NextSelect
;
204 int OpenProject0Window( void )
209 UWORD wleft
= Project0Left
, wtop
= Project0Top
, ww
, wh
;
211 ComputeFont( Project0Width
, Project0Height
);
213 ww
= ComputeX( Project0Width
);
214 wh
= ComputeY( Project0Height
);
216 if (( wleft
+ ww
+ OffX
+ Scr
->WBorRight
) > Scr
->Width
) wleft
= Scr
->Width
- ww
;
217 if (( wtop
+ wh
+ OffY
+ Scr
->WBorBottom
) > Scr
->Height
) wtop
= Scr
->Height
- wh
;
219 if ( ! ( g
= CreateContext( &Project0GList
)))
222 for( lc
= 0, tc
= 0; lc
< Project0_CNT
; lc
++ ) {
224 CopyMem((char * )&Project0NGad
[ lc
], (char * )&ng
, (long)sizeof( struct NewGadget
));
226 ng
.ng_VisualInfo
= VisualInfo
;
227 ng
.ng_TextAttr
= Font
;
228 ng
.ng_LeftEdge
= OffX
+ ComputeX( ng
.ng_LeftEdge
);
229 ng
.ng_TopEdge
= OffY
+ ComputeY( ng
.ng_TopEdge
);
230 ng
.ng_Width
= ComputeX( ng
.ng_Width
);
231 ng
.ng_Height
= ComputeY( ng
.ng_Height
);
233 Project0Gadgets
[ lc
] = g
= CreateGadgetA((ULONG
)Project0GTypes
[ lc
], g
, &ng
, ( struct TagItem
* )&Project0GTags
[ tc
] );
235 while( Project0GTags
[ tc
] ) tc
+= 2;
242 if ( ! ( Project0Menus
= CreateMenus( Project0NewMenu
, GTMN_FrontPen
, 0L, TAG_DONE
)))
245 LayoutMenus( Project0Menus
, VisualInfo
, TAG_DONE
);
247 if ( ! ( Project0Wnd
= OpenWindowTags( NULL
,
250 WA_Width
, ww
+ OffX
+ Scr
->WBorRight
,
251 WA_Height
, wh
+ OffY
+ Scr
->WBorBottom
,
252 WA_IDCMP
, IDCMP_MENUPICK
|IDCMP_MOUSEBUTTONS
| IDCMP_VANILLAKEY
|BUTTONIDCMP
|CYCLEIDCMP
|IDCMP_CLOSEWINDOW
|IDCMP_REFRESHWINDOW
,
253 WA_Flags
, WFLG_ACTIVATE
|WFLG_DRAGBAR
|WFLG_DEPTHGADGET
|WFLG_CLOSEGADGET
|WFLG_SMART_REFRESH
,
254 WA_Gadgets
, Project0GList
,
255 WA_Title
, Project0Wdt
,
256 WA_ScreenTitle
, "Shuffle V1.1 Copyright (©)1993 by CEKASOFT All Rights Reserved",
261 SetMenuStrip( Project0Wnd
, Project0Menus
);
262 GT_RefreshWindow( Project0Wnd
, NULL
);
267 void CloseProject0Window( void )
270 CloseWindow( Project0Wnd
);
274 if ( Project0GList
) {
275 FreeGadgets( Project0GList
);
276 Project0GList
= NULL
;