home *** CD-ROM | disk | FTP | other *** search
-
- /*
- * skew3.c -- stuff needed for writing output file
- *
- */
-
- #include <dos/dos.h>
-
- #include "skew.h"
-
- /* flags related to gadgets & output file */
- extern LONG Flag1, Flag2A, Flag2B, Flag3;
-
- /* flags for cycle gadgets on display #2 (zero indexing) */
- extern LONG
- WaitingMode_FLAG, Variables_FLAG, Comments_FLAG, FillIns_FLAG,
- WaitingMode_START, Variables_START, Comments_START, FillIns_START,
- TopArgs_FLAG, TopReturn_FLAG, TestVarScope_FLAG;
-
- /* name for top-level function, as well as prefix & suffix for the rest */
- extern char *IDCMP_WIN_BUF, *TOP_LEVEL_BUF, *PREFIX_BUF, *SUFFIX_BUF,
- *TEST_VAR_BUF;
-
- BOOL Writing_Done = FALSE; /* TRUE when work was saved and no gadget hit */
-
-
- /* we hope AmigaDOS will handle error checking for us */
- __regargs VOID GenerateCode( BPTR );
-
- static VOID WriteHeader( VOID );
- static VOID WriteGlobalDefs( VOID );
- static VOID WriteLocalDefs( VOID );
- static VOID WriteProtos( VOID );
- static VOID WriteTopLevelF( VOID );
- static VOID WriteCases( VOID );
- static VOID WriteFSkeletons( VOID );
- static VOID WriteFillIn( VOID );
- static VOID Pad( VOID );
-
- static VOID WriteRefreshTopL( VOID );
- static VOID lowWriteRefreshTopL( VOID );
- static VOID WriteRefreshSkel( VOID );
- static VOID lowWriteRefreshSkel( VOID );
-
- __regargs static VOID lowWriteProtos( BOOL, LONG, UBYTE * );
- __regargs static VOID lowWriteCases( BOOL, LONG, LONG, UBYTE *, UBYTE * );
- __regargs static VOID lowWriteFSkeletons( BOOL, LONG, UBYTE * );
-
-
- VOID
- GenerateCode( BPTR fh )
- {
- SelectOutput( fh );
-
- if ( Comments_FLAG != NO_COMMENTS )
- WriteHeader();
- else
- PutStr( "\n" ); /* start one line lower */
-
- if ( TestVarScope_FLAG == TestVar_GLOBAL ) {
- PutStr( "BOOL " );
- PutStr( TEST_VAR_BUF );
- PutStr( " = FALSE;\n" );
- }
-
- if ( Variables_FLAG == GLOBAL )
- WriteGlobalDefs();
-
- if ( Flag3 & Prototypes_FLAG )
- WriteProtos();
-
- WriteTopLevelF();
-
- if ( Flag3 & Skeletons_FLAG )
- WriteFSkeletons();
-
- Writing_Done = TRUE;
- }
-
-
- VOID
- WriteHeader()
- {
- PutStr( "\n/*\n * Code generated by SKEleton Writer v1.20\n */\n\n" );
- }
-
-
- VOID
- WriteGlobalDefs()
- {
- PutStr( "\n" );
-
- if ( ( Flag1 & CLASS_FLAG ) | Flag2A | Flag2B )
- PutStr( "ULONG Class;\n" );
-
- if ( Flag1 & CODE_FLAG && Flag1 & QUALIFIER_FLAG )
- PutStr( "USHORT Code, Qualifier;\n" );
- else if ( Flag1 & CODE_FLAG )
- PutStr( "USHORT Code;" );
- else if ( Flag1 & QUALIFIER_FLAG )
- PutStr( "USHORT Qualifier;\n" );
-
- if ( Flag1 & IADDRESS_FLAG )
- PutStr( "APTR IAddress;\n" );
-
- if ( Flag1 & MOUSEX_FLAG && Flag1 & MOUSEY_FLAG )
- PutStr( "SHORT MouseX, MouseY;\n" );
- else if ( Flag1 & MOUSEX_FLAG )
- PutStr( "SHORT MouseX;\n" );
- else if ( Flag1 & MOUSEY_FLAG )
- PutStr( "SHORT MouseY;\n" );
-
- if ( Flag1 & SECONDS_FLAG && Flag1 & MICROS_FLAG )
- PutStr( "ULONG Seconds, Micros;\n" );
- else if ( Flag1 & SECONDS_FLAG )
- PutStr( "ULONG Seconds;\n" );
- else if ( Flag1 & MICROS_FLAG )
- PutStr( "ULONG Micros;\n" );
- }
-
-
- VOID
- WriteLocalDefs()
- {
- PutStr( "\n" );
-
-
- if ( ( Flag1 & CLASS_FLAG ) | Flag2A | Flag2B )
- PutStr( " ULONG class;\n" );
-
- if ( Flag1 & CODE_FLAG && Flag1 & QUALIFIER_FLAG )
- PutStr( " USHORT code, qualifier;\n" );
- else if ( Flag1 & CODE_FLAG )
- PutStr( " USHORT code;" );
- else if ( Flag1 & QUALIFIER_FLAG )
- PutStr( " USHORT qualifier;\n" );
-
- if ( Flag1 & IADDRESS_FLAG )
- PutStr( " APTR iaddress;\n" );
-
- if ( Flag1 & MOUSEX_FLAG && Flag1 & MOUSEY_FLAG )
- PutStr( " SHORT mouse_x, mouse_y;\n" );
- else if ( Flag1 & MOUSEX_FLAG )
- PutStr( " SHORT mouse_x;\n" );
- else if ( Flag1 & MOUSEY_FLAG )
- PutStr( " SHORT mouse_y;\n" );
-
- if ( Flag1 & SECONDS_FLAG && Flag1 & MICROS_FLAG )
- PutStr( " ULONG seconds, micros;\n" );
- else if ( Flag1 & SECONDS_FLAG )
- PutStr( " ULONG seconds;\n" );
- else if ( Flag1 & MICROS_FLAG )
- PutStr( " ULONG micros;\n" );
- }
-
-
- VOID
- WriteProtos()
- {
- PutStr( "\n" );
-
- if ( TopArgs_FLAG ) {
- if ( TopReturn_FLAG )
- VPrintf( "LONG %s( struct Window * );\n\n", (LONG *)&TOP_LEVEL_BUF );
- else
- VPrintf( "VOID %s( struct Window * );\n\n", (LONG *)&TOP_LEVEL_BUF );
- }
- else {
- if ( TopReturn_FLAG )
- VPrintf( "LONG %s( VOID );\n\n", (LONG *)&TOP_LEVEL_BUF );
- else
- VPrintf( "VOID %s( VOID );\n\n", (LONG *)&TOP_LEVEL_BUF );
- }
-
- /* still lots of brute force, but less... */
-
- /* Flag2A */
- lowWriteProtos( TRUE, MOUSEBUTTONS_F_FLAG, "MouseButtons" );
- lowWriteProtos( TRUE, MOUSEMOVE_F_FLAG, "MouseMove" );
- lowWriteProtos( TRUE, GADGETDOWN_F_FLAG, "GadgetDown" );
- lowWriteProtos( TRUE, GADGETUP_F_FLAG, "GadgetUp" );
- lowWriteProtos( TRUE, CLOSEWINDOW_F_FLAG, "CloseWindow" );
- lowWriteProtos( TRUE, MENUPICK_F_FLAG, "MenuPick" );
- lowWriteProtos( TRUE, MENUVERIFY_F_FLAG, "MenuVerify" );
- lowWriteProtos( TRUE, MENUHELP_F_FLAG, "MenuHelp" );
- lowWriteProtos( TRUE, RAWKEY_F_FLAG, "RawKey" );
- lowWriteProtos( TRUE, VANILLAKEY_F_FLAG, "VanillaKey" );
- lowWriteProtos( TRUE, REQSET_F_FLAG, "ReqSet" );
- lowWriteProtos( TRUE, REQCLEAR_F_FLAG, "ReqClear" );
- lowWriteProtos( TRUE, REQVERIFY_F_FLAG, "ReqVerify" );
-
- /* Flag2B */
- lowWriteProtos( FALSE, NEWSIZE_F_FLAG, "NewSize" );
- lowWriteProtos( FALSE, SIZEVERIFY_F_FLAG, "SizeVerify" );
- lowWriteProtos( FALSE, ACTIVEWINDOW_F_FLAG, "ActiveWindow" );
- lowWriteProtos( FALSE, INACTIVEWINDOW_F_FLAG, "InactiveWindow" );
- lowWriteProtos( FALSE, CHANGEWINDOW_F_FLAG, "ChangeWindow" );
- lowWriteProtos( FALSE, REFRESHWINDOW_F_FLAG, "RefreshWindow" );
- lowWriteProtos( FALSE, DISKINSERTED_F_FLAG, "DiskInserted" );
- lowWriteProtos( FALSE, DISKREMOVED_F_FLAG, "DiskRemoved" );
- lowWriteProtos( FALSE, NEWPREFS_F_FLAG, "NewPrefs" );
- lowWriteProtos( FALSE, INTUITICKS_F_FLAG, "IntuiTicks" );
- lowWriteProtos( FALSE, IDCMPUPDATE_F_FLAG, "IDCMPUpdate" );
- lowWriteProtos( FALSE, LONELYMESSAGE_F_FLAG, "LonelyMessage" );
- }
-
-
- VOID
- lowWriteProtos( BOOL fA, LONG flag, UBYTE *name )
- {
- LONG our_flag = ( fA ) ? Flag2A : Flag2B;
-
- if ( our_flag & flag ) {
- if ( Variables_FLAG == LOCAL ) {
- WriteFillIn();
- Pad();
- PutStr( PREFIX_BUF );
- PutStr( name );
- VPrintf( "%s(", (LONG *)&SUFFIX_BUF );
- Pad();
- WriteFillIn();
- Pad();
- PutStr( ");\n" );
- }
- else {
- VPrintf( "VOID %s", (LONG *)&PREFIX_BUF );
- PutStr( name );
- VPrintf( "%s( VOID );\n", (LONG *)&SUFFIX_BUF );
- }
- }
- }
-
-
-
- VOID
- WriteTopLevelF()
- {
- if ( TopArgs_FLAG ) {
- if ( TopReturn_FLAG )
- VPrintf( "\n\nLONG %s( struct Window *wnd )\n{", (LONG *)&TOP_LEVEL_BUF );
- else
- VPrintf( "\n\nVOID %s( struct Window *wnd )\n{", (LONG *)&TOP_LEVEL_BUF );
- }
- else {
- if ( TopReturn_FLAG )
- VPrintf( "\n\nLONG %s()\n{", (LONG *)&TOP_LEVEL_BUF );
- else
- VPrintf( "\n\nVOID %s()\n{", (LONG *)&TOP_LEVEL_BUF );
- }
-
- PutStr( "\n struct IntuiMessage *msg;\n" );
-
- if ( Variables_FLAG == LOCAL )
- WriteLocalDefs();
-
- PutStr( "\n" );
-
- if ( TestVarScope_FLAG == TestVar_LOCAL ) {
- PutStr( " BOOL " );
- PutStr( TEST_VAR_BUF );
- PutStr( " = FALSE;\n\n" );
- }
-
- PutStr( " while ( ! " );
- PutStr( TEST_VAR_BUF );
- PutStr( " ) {\n" );
-
- if ( WaitingMode_FLAG == PASSIVE ) {
- if ( TopArgs_FLAG )
- PutStr( " WaitPort( wnd->UserPort );\n" );
- else
- VPrintf( " WaitPort( %s->UserPort );\n",
- (LONG *)&IDCMP_WIN_BUF );
- }
- else {
- PutStr( "\n " );
- WriteFillIn();
-
- if ( Comments_FLAG == VERBOSE_COMMENTS ) {
- PutStr( " /* do your thing while you're looping */\n\n" );
- }
- else {
- PutStr( "\n\n" );
- }
- }
-
- if ( Flag1 & gadtools_FLAG ) {
- if ( TopArgs_FLAG ) {
- PutStr( " while ( msg = (struct IntuiMessage *)GT_GetIMsg( wnd->UserPort ) ) {\n" );
- }
- else {
- VPrintf( " while ( msg = (struct IntuiMessage *)GT_GetIMsg( %s->UserPort ) ) {\n",
- (LONG *)&IDCMP_WIN_BUF );
- }
- }
- else {
- if ( TopArgs_FLAG ) {
- PutStr( " while ( msg = (struct IntuiMessage *)GetMsg( wnd->UserPort ) ) {\n" );
- }
- else {
- VPrintf( " while ( msg = (struct IntuiMessage *)GetMsg( %s->UserPort ) ) {\n",
- (LONG *)&IDCMP_WIN_BUF );
- }
- }
-
- PutStr( "\n" );
-
- /* assignements */
- if ( ( Flag1 & CLASS_FLAG ) | Flag2A | Flag2B ) {
- if ( Variables_FLAG == LOCAL )
- PutStr( " class = msg->Class;\n" );
- else
- PutStr( " Class = msg->Class;\n" );
- }
-
- if ( Flag1 & CODE_FLAG ) {
- if ( Variables_FLAG == LOCAL )
- PutStr( " code = msg->Code;\n" );
- else
- PutStr( " Code = msg->Code;\n" );
- }
-
- if ( Flag1 & QUALIFIER_FLAG ) {
- if ( Variables_FLAG == LOCAL )
- PutStr( " qualifier = msg->Qualifier;\n" );
- else
- PutStr( " Qualifier = msg->Qualifier;\n" );
- }
-
- if ( Flag1 & IADDRESS_FLAG ) {
- if ( Variables_FLAG == LOCAL )
- PutStr( " iaddress = msg->IAddress;\n" );
- else
- PutStr( " IAddress = msg->IAddress;\n" );
- }
-
- if ( Flag1 & MOUSEX_FLAG ) {
- if ( Variables_FLAG == LOCAL )
- PutStr( " mouse_x = msg->MouseX;\n" );
- else
- PutStr( " MouseX = msg->MouseX;\n" );
- }
-
- if ( Flag1 & MOUSEY_FLAG ) {
- if ( Variables_FLAG == LOCAL )
- PutStr( " mouse_y = msg->MouseY;\n" );
- else
- PutStr( " MouseY = msg->MouseY;\n" );
- }
-
- if ( Flag1 & SECONDS_FLAG ) {
- if ( Variables_FLAG == LOCAL )
- PutStr( " seconds = msg->Seconds;\n" );
- else
- PutStr( " Seconds = msg->Seconds;\n" );
- }
-
- if ( Flag1 & MICROS_FLAG ) {
- if ( Variables_FLAG == LOCAL )
- PutStr( " micros = msg->Micros;\n" );
- else
- PutStr( " Micros = msg->Micros;\n" );
- }
-
- PutStr( "\n" );
-
- /* we are replying the message... */
- if ( Flag1 & gadtools_FLAG )
- PutStr( " GT_ReplyIMsg( msg );\n" );
- else
- PutStr( " ReplyMsg( msg );\n" );
-
- /* switch */
- if ( Variables_FLAG == LOCAL ) {
- PutStr( "\n switch ( class ) {\n" );
- }
- else {
- PutStr( "\n switch ( Class ) {\n" );
- }
-
- if ( !Flag2A && !Flag2B )
- PutStr( "\n\n" );
- else
- WriteCases();
-
- PutStr( " default:\n" );
- PutStr( " " );
- WriteFillIn();
- PutStr( "\n break;\n" );
- PutStr( " }\n }\n }\n\n" );
-
- /* write stuff for replying outstanding messages */
-
- if ( Comments_FLAG == VERBOSE_COMMENTS )
- PutStr( " /* reply all outstanding messages */\n" );
-
- if ( Flag1 & gadtools_FLAG ) {
- if ( TopArgs_FLAG ) {
- PutStr( " while ( msg = (struct IntuiMessage *)GT_GetIMsg( wnd->UserPort ) )\n" );
- }
- else {
- VPrintf( " while ( msg = (struct IntuiMessage *)GT_GetIMsg( %s->UserPort ) )\n",
- (LONG *)&IDCMP_WIN_BUF );
- }
- PutStr( " GT_ReplyIMsg( msg );\n" );
- }
- else {
- if ( TopArgs_FLAG ) {
- PutStr( " while ( msg = (struct IntuiMessage *)GetMsg( wnd->UserPort ) )\n" );
- }
- else {
- VPrintf( " while ( msg = (struct IntuiMessage *)GetMsg( %s->UserPort ) )\n",
- (LONG *)&IDCMP_WIN_BUF );
- }
- PutStr( " ReplyMsg( msg );\n" );
- }
-
- if ( TopReturn_FLAG ) {
- PutStr( "\n return( " );
- WriteFillIn();
- PutStr( " );\n" );
- }
-
- PutStr( "}\n" );
- }
-
-
- VOID
- WriteCases()
- {
- /* Flag2A */
- lowWriteCases( TRUE, MOUSEBUTTONS_FLAG, MOUSEBUTTONS_F_FLAG, "MouseButtons", "IDCMP_MOUSEBUTTONS" );
- lowWriteCases( TRUE, MOUSEMOVE_FLAG, MOUSEMOVE_F_FLAG, "MouseMove", "IDCMP_MOUSEMOVE" );
- lowWriteCases( TRUE, GADGETDOWN_FLAG, GADGETDOWN_F_FLAG, "GadgetDown", "IDCMP_GADGETDOWN" );
- lowWriteCases( TRUE, GADGETUP_FLAG, GADGETUP_F_FLAG, "GadgetUp", "IDCMP_GADGETUP" );
- lowWriteCases( TRUE, CLOSEWINDOW_FLAG, CLOSEWINDOW_F_FLAG, "CloseWindow", "IDCMP_CLOSEWINDOW" );
- lowWriteCases( TRUE, MENUPICK_FLAG, MENUPICK_F_FLAG, "MenuPick", "IDCMP_MENUPICK" );
- lowWriteCases( TRUE, MENUVERIFY_FLAG, MENUVERIFY_F_FLAG, "MenuVerify", "IDCMP_MENUVERIFY" );
- lowWriteCases( TRUE, MENUHELP_FLAG, MENUHELP_F_FLAG, "MenuHelp", "IDCMP_MENUHELP" );
- lowWriteCases( TRUE, RAWKEY_FLAG, RAWKEY_F_FLAG, "RawKey", "IDCMP_RAWKEY" );
- lowWriteCases( TRUE, VANILLAKEY_FLAG, VANILLAKEY_F_FLAG, "VanillaKey", "IDCMP_VANILLAKEY" );
- lowWriteCases( TRUE, REQSET_FLAG, REQSET_F_FLAG, "ReqSet", "IDCMP_REQSET" );
- lowWriteCases( TRUE, REQCLEAR_FLAG, REQCLEAR_F_FLAG, "ReqClear", "IDCMP_REQCLEAR" );
- lowWriteCases( TRUE, REQVERIFY_FLAG, REQVERIFY_F_FLAG, "ReqVerify", "IDCMP_REQVERIFY" );
-
- /* Flag2B */
- lowWriteCases( FALSE, NEWSIZE_FLAG, NEWSIZE_F_FLAG, "NewSize", "IDCMP_NEWSIZE" );
- lowWriteCases( FALSE, SIZEVERIFY_FLAG, SIZEVERIFY_F_FLAG, "SizeVerify", "IDCMP_SIZEVERIFY" );
- lowWriteCases( FALSE, ACTIVEWINDOW_FLAG, ACTIVEWINDOW_F_FLAG, "ActiveWindow", "IDCMP_ACTIVEWINDOW" );
- lowWriteCases( FALSE, INACTIVEWINDOW_FLAG, INACTIVEWINDOW_F_FLAG, "InactiveWindow", "IDCMP_INACTIVEWINDOW" );
- lowWriteCases( FALSE, CHANGEWINDOW_FLAG, CHANGEWINDOW_F_FLAG, "ChangeWindow", "IDCMP_CHANGEWINDOW" );
-
- /* we refresh window automatically if gadtools are used! */
- if ( Flag1 & gadtools_FLAG || Flag2B & REFRESHWINDOW_FLAG || Flag2B & REFRESHWINDOW_F_FLAG )
- WriteRefreshTopL();
-
- lowWriteCases( FALSE, DISKINSERTED_FLAG, DISKINSERTED_F_FLAG, "DiskInserted", "IDCMP_DISKINSERTED" );
- lowWriteCases( FALSE, DISKREMOVED_FLAG, DISKREMOVED_F_FLAG, "DiskRemoved", "IDCMP_DISKREMOVED" );
- lowWriteCases( FALSE, NEWPREFS_FLAG, NEWPREFS_F_FLAG, "NewPrefs", "IDCMP_NEWPREFS" );
- lowWriteCases( FALSE, INTUITICKS_FLAG, INTUITICKS_F_FLAG, "IntuiTicks", "IDCMP_INTUITICKS" );
- lowWriteCases( FALSE, IDCMPUPDATE_FLAG, IDCMPUPDATE_F_FLAG, "IDCMPUpdate", "IDCMP_IDCMPUPDATE" );
- lowWriteCases( FALSE, LONELYMESSAGE_FLAG, LONELYMESSAGE_F_FLAG, "LonelyMessage", "IDCMP_LONELYMESSAGE" );
- }
-
-
- VOID
- lowWriteCases( BOOL fA, LONG flag, LONG f_flag,
- UBYTE *low_name, UBYTE *up_name )
- {
- LONG our_flag = ( fA ) ? Flag2A : Flag2B;
-
- if ( our_flag & flag || our_flag & f_flag ) {
- PutStr( " case " );
- PutStr( up_name );
- PutStr( ":\n" );
- if ( our_flag & f_flag ) {
- PutStr( " " );
- PutStr( (UBYTE *)PREFIX_BUF );
- PutStr( low_name );
- VPrintf( "%s(", (LONG *)&SUFFIX_BUF );
- Pad();
- if ( Variables_FLAG == LOCAL )
- WriteFillIn();
- Pad();
- PutStr( ");\n" );
- }
- else {
- PutStr( " " );
- WriteFillIn();
- PutStr( "\n" );
- }
- PutStr( " break;\n" );
- }
- }
-
-
- VOID
- WriteRefreshTopL()
- {
- PutStr( " case " );
- PutStr( "IDCMP_REFRESHWINDOW" );
- PutStr( ":\n" );
- if ( Flag2B & REFRESHWINDOW_F_FLAG ) {
- PutStr( " " );
- PutStr( (UBYTE *)PREFIX_BUF );
- PutStr( "RefreshWindow" );
- VPrintf( "%s(", (LONG *)&SUFFIX_BUF );
- Pad();
- if ( Variables_FLAG == LOCAL )
- WriteFillIn();
- Pad();
- PutStr( ");\n" );
- }
- else {
- PutStr( " " );
- lowWriteRefreshTopL();
- PutStr( "\n" );
- }
- PutStr( " break;\n" );
- }
-
-
- VOID
- lowWriteRefreshTopL()
- {
- if ( Flag1 & gadtools_FLAG ) {
-
- /* O.K. -- the guy explicitly asked for refreshing... */
- if (Flag2B & REFRESHWINDOW_FLAG || Flag2B & REFRESHWINDOW_F_FLAG ) {
- if ( TopArgs_FLAG ) {
- PutStr( "GT_BeginRefresh( wnd );\n\n" );
- if ( Comments_FLAG == VERBOSE_COMMENTS )
- PutStr( " /* own rendering (if needed) here */\n\n" );
- PutStr( " GT_EndRefresh( wnd, TRUE );" );
- }
- else {
- VPrintf( "GT_BeginRefresh( %s );\n\n", (LONG *)&IDCMP_WIN_BUF );
- if ( Comments_FLAG == VERBOSE_COMMENTS ) {
- PutStr( " /* own rendering (if needed) here */\n\n" );
- }
- VPrintf( " GT_EndRefresh( %s, TRUE );", (LONG *)&IDCMP_WIN_BUF );
- }
- }
-
- /* he gets refreshing AGINST his will! */
- else {
- if ( TopArgs_FLAG ) {
- PutStr( "GT_BeginRefresh( wnd );" );
- if ( Comments_FLAG != NO_COMMENTS )
- PutStr( " /* NECESSARY with gadtools! */" );
- PutStr( "\n GT_EndRefresh( wnd, TRUE );" );
- }
- else {
- VPrintf( "GT_BeginRefresh( %s );", (LONG *)&IDCMP_WIN_BUF );
- if ( Comments_FLAG != NO_COMMENTS )
- PutStr( " /* NECESSARY with gadtools! */" );
- VPrintf( "\n GT_EndRefresh( %s, TRUE );", (LONG *)&IDCMP_WIN_BUF );
- }
- }
- }
-
- /* he says NO GADTOOLS required -- if so -- no AI needed either */
- else {
- if ( TopArgs_FLAG ) {
- PutStr( "BeginRefresh( wnd );\n\n" );
- if ( Comments_FLAG == VERBOSE_COMMENTS ) {
- PutStr( " /* own rendering (if needed) here */\n\n" );
- }
- PutStr( " EndRefresh( wnd, TRUE );" );
- }
- else {
- VPrintf( "BeginRefresh( %s );\n\n", (LONG *)&IDCMP_WIN_BUF );
- if ( Comments_FLAG == VERBOSE_COMMENTS ) {
- PutStr( " /* own rendering (if needed) here */\n\n" );
- }
- VPrintf( " EndRefresh( %s, TRUE );", (LONG *)&IDCMP_WIN_BUF );
- }
- }
- }
-
-
- VOID
- WriteFSkeletons()
- {
- PutStr( "\n\n" );
-
- /* still lots of raw force; perhaps should use arrays,
- ** but in fact this ain't bad...
- */
-
- /* Flag2A */
- lowWriteFSkeletons( TRUE, MOUSEBUTTONS_F_FLAG, "MouseButtons" );
- lowWriteFSkeletons( TRUE, MOUSEMOVE_F_FLAG, "MouseMove" );
- lowWriteFSkeletons( TRUE, GADGETDOWN_F_FLAG, "GadgetDown" );
- lowWriteFSkeletons( TRUE, GADGETUP_F_FLAG, "GadgetUp" );
- lowWriteFSkeletons( TRUE, CLOSEWINDOW_F_FLAG, "CloseWindow" );
- lowWriteFSkeletons( TRUE, MENUPICK_F_FLAG, "MenuPick" );
- lowWriteFSkeletons( TRUE, MENUVERIFY_F_FLAG, "MenuVerify" );
- lowWriteFSkeletons( TRUE, MENUHELP_F_FLAG, "MenuHelp" );
- lowWriteFSkeletons( TRUE, RAWKEY_F_FLAG, "RawKey" );
- lowWriteFSkeletons( TRUE, VANILLAKEY_F_FLAG, "VanillaKey" );
- lowWriteFSkeletons( TRUE, REQSET_F_FLAG, "ReqSet" );
- lowWriteFSkeletons( TRUE, REQCLEAR_F_FLAG, "ReqClear" );
- lowWriteFSkeletons( TRUE, REQVERIFY_F_FLAG, "ReqVerify" );
-
- /* Flag2B */
- lowWriteFSkeletons( FALSE, NEWSIZE_F_FLAG, "NewSize" );
- lowWriteFSkeletons( FALSE, SIZEVERIFY_F_FLAG, "SizeVerify" );
- lowWriteFSkeletons( FALSE, ACTIVEWINDOW_F_FLAG, "ActiveWindow" );
- lowWriteFSkeletons( FALSE, INACTIVEWINDOW_F_FLAG, "InactiveWindow" );
- lowWriteFSkeletons( FALSE, CHANGEWINDOW_F_FLAG, "ChangeWindow" );
-
- if ( Flag2B & REFRESHWINDOW_F_FLAG )
- WriteRefreshSkel();
-
- lowWriteFSkeletons( FALSE, DISKINSERTED_F_FLAG, "DiskInserted" );
- lowWriteFSkeletons( FALSE, DISKREMOVED_F_FLAG, "DiskRemoved" );
- lowWriteFSkeletons( FALSE, NEWPREFS_F_FLAG, "NewPrefs" );
- lowWriteFSkeletons( FALSE, INTUITICKS_F_FLAG, "IntuiTicks" );
- lowWriteFSkeletons( FALSE, IDCMPUPDATE_F_FLAG, "IDCMPUpdate" );
- lowWriteFSkeletons( FALSE, LONELYMESSAGE_F_FLAG, "LonelyMessage" );
- }
-
-
-
- VOID
- lowWriteFSkeletons( BOOL fA, LONG flag, UBYTE *name )
- {
- LONG our_flag = ( fA ) ? Flag2A : Flag2B;
-
- if ( our_flag & flag ) {
- if ( Variables_FLAG == LOCAL ) {
- WriteFillIn();
- Pad();
- PutStr( (UBYTE *)PREFIX_BUF );
- PutStr( name );
- VPrintf( "%s(", (LONG *)&SUFFIX_BUF );
- Pad();
- WriteFillIn();
- Pad();
- PutStr( ")\n{\n " );
- WriteFillIn();
- PutStr( "\n}\n\n" );
- }
- else {
- PutStr( "\nVOID " );
- PutStr( (UBYTE *)PREFIX_BUF );
- PutStr( name );
- VPrintf( "%s() \n{\n ", (LONG *)&SUFFIX_BUF );
- WriteFillIn();
- PutStr( "\n}\n\n" );
- }
- }
- }
-
-
- VOID
- WriteRefreshSkel()
- {
- if ( Variables_FLAG == LOCAL ) {
- WriteFillIn();
- Pad();
- PutStr( (UBYTE *)PREFIX_BUF );
- PutStr( "RefreshWindow" );
- if ( TopArgs_FLAG ) {
- VPrintf( "%s( struct Window *wnd )\n{n ", (LONG *)&SUFFIX_BUF );
- lowWriteRefreshSkel();
- }
- else {
- VPrintf( "%s(", (LONG *)&SUFFIX_BUF );
- Pad();
- WriteFillIn();
- Pad();
- PutStr( ")\n{\n " );
- lowWriteRefreshSkel();
- }
- }
- else {
- PutStr( "\nVOID " );
- PutStr( "RefreshWindow" );
- if ( TopArgs_FLAG ) {
- VPrintf( "%s( struct Window *wnd )\n{\n ", (LONG *)&SUFFIX_BUF );
- lowWriteRefreshSkel();
- }
- else {
- VPrintf( "%s() \n{\n ", (LONG *)&SUFFIX_BUF );
- lowWriteRefreshSkel();
- }
- }
- }
-
-
- VOID
- lowWriteRefreshSkel()
- {
- if ( Flag1 & gadtools_FLAG ) {
- if ( TopArgs_FLAG ) {
- PutStr( "GT_BeginRefresh( wnd );\n\n");
- if ( Comments_FLAG == VERBOSE_COMMENTS ) {
- PutStr( " /* own rendering (if needed) here */\n\n" );
- }
- PutStr( " GT_EndRefresh( wnd, TRUE );");
- }
- else {
- VPrintf( "GT_BeginRefresh( %s );\n\n", (LONG *)&IDCMP_WIN_BUF );
- if ( Comments_FLAG == VERBOSE_COMMENTS ) {
- PutStr( " /* own rendering (if needed) here */\n\n" );
- }
- VPrintf( " GT_EndRefresh( %s, TRUE );", (LONG *)&IDCMP_WIN_BUF );
- }
- }
- else {
- if ( TopArgs_FLAG ) {
- PutStr( "BeginRefresh( wnd );\n\n");
- if ( Comments_FLAG == VERBOSE_COMMENTS ) {
- PutStr( " /* own rendering (if needed) here */\n\n" );
- }
- PutStr( " EndRefresh( wnd, TRUE );");
- }
- else {
- VPrintf( "BeginRefresh( %s );\n\n", (LONG *)&IDCMP_WIN_BUF );
- if ( Comments_FLAG == VERBOSE_COMMENTS ) {
- PutStr( " /* own rendering (if needed) here */\n\n" );
- }
- VPrintf( " EndRefresh( %s, TRUE );", (LONG *)&IDCMP_WIN_BUF );
- }
- }
-
- PutStr( "\n}\n\n" );
- }
-
-
- VOID
- WriteFillIn()
- {
- switch ( FillIns_FLAG ) {
- case 0:
- return;
- case 1:
- PutStr( "@@@@@@@@@@" );
- break;
- case 2:
- PutStr( "/* @@ */" );
- break;
- case 3:
- PutStr( "@@" );
- break;
- }
- }
-
-
- VOID
- Pad()
- {
- if ( FillIns_FLAG != FILLS_NONE && Variables_FLAG == LOCAL )
- PutStr( " " );
- }
-
-