home *** CD-ROM | disk | FTP | other *** search
- /*
- * Source machine generated by GadToolsBox V2.0
- * which is (c) Copyright 1991-1993 Jaba Development
- *
- * GUI Designed by : -- Unnamed --
- */
-
- #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 <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/utility.h>
- //#include <proto/dos.h>
- #include <string.h>
- #include <stdio.h>
- #include <dos/dos.h>
- //#include <proto/asl.h>
- #include <libraries/asl.h>
- #include <clib/asl_protos.h>
- #include <clib/exec_protos.h>
- #include <clib/intuition_protos.h>
- #include <clib/gadtools_protos.h>
- #include <clib/graphics_protos.h>
- #include <clib/utility_protos.h>
- #include <clib/dos_protos.h>
- #include <dos/dostags.h>
-
- #include "EngClock_Prefs.h"
-
- #define PREFS_FILE "s:engclock.prefs"
- #define VERS 1 /* Version for backwards compat */
- #define ID "EngCPrefs"
- #define ENGLISH 1
- #define FRENCH 2
- #define SPANISH 3
-
- short displevel(int code);
- short drawspecial(void);
- BOOL handlepgadgets(int iaddress, int code);
- short writeprefs(void);
- char *callasl(struct Window *win, char *title, char *initialdir);
- void adaptlanguage(void);
- void convertdate(int code);
- int prefsgui(void);
-
- BPTR handle2;
- BOOL exit_flag2=FALSE;
- char buffer[400];
-
- extern struct Window *win_p;
- extern struct TextAttr font1;
- extern struct Screen *pubscreen;
- extern char *publister(void);
- extern void msg(char *msg);
- extern void getdate(void);
- extern char *analysis(char *fname);
- extern int language;
- extern BOOL locale;
-
- extern struct Library *AslBase;
- extern struct IntuitionBase *IntuitionBase;
- extern struct GfxBase *GfxBase;
- extern struct Library *UtilityBase;
- extern struct Library *GadToolsBase;
- extern struct Library *DiskfontBase;
- extern struct Library *IFFParseBase;
- extern struct Library *DataTypesBase;
- extern struct Library *TranslatorBase;
- extern struct Library *DOSBase;
-
- char time1[50], time2[50];
-
- int preset=1; /* Current preset for alarm events */
-
- struct IntuiText level_text= {
- 1,0,JAM1,295,134,&font1,NULL,NULL };
-
-
- struct Event {
- BOOL used;
- int type; /* Type of event */
- int hours; /* Time of event */
- int minutes;
- int timecode;
- char message[256];
- int day;
- int month;
- int year;
- BOOL enabledate;
- int freq;
- };
-
- extern struct {
- /* Prefs structure used for preferences file format */
-
- char header[10]; /* I.D. Header */
- int vers; /* Version of preferences file */
- int x; /* X dimension of window when saved */
- int y; /* Y dimension of window when saved */
- int width; /* Width of window when saved */
- int height; /* Height of window when saved */
- int planguage; /* Language selected (menu) when saved, low pri */
- int just; /* Justification of text, 0=Left, 1=Centre, 2=Right */
- short date; /* Display date?, 0 = No, 1=Yes */
- short wtf; /* Window to front ? */
- int time_col[8];
- int date_col[8];
- short autoadjust; /* Use automatic adjustment on window ? */
- char backdrop[256]; /* Backdrop image */
- char pub[139]; /* Default public screen */
- char accent[256]; /* Language file for tRanslate */
- char tkey[100];
- char hkey[100];
- struct Event events[11]; /* For the alarm! */
-
- }prefs;
-
- int current_mode=2; /* Current selected colour mode */
-
- APTR VisualInfo = NULL;
- struct Window *Project0Wnd = NULL;
- struct Gadget *Project0GList = NULL;
- struct Gadget *Project0Gadgets[27];
- extern Class *initGet( void );
- struct IClass *getClass = NULL;
- struct _Object *getImage = NULL;
- UWORD Project0Left = 0;
- UWORD Project0Top = 0;
- UWORD Project0Width = 560;
- UWORD Project0Height = 245;
- UBYTE *Project0Wdt = (UBYTE *)"EngClock Prefs";
-
- UBYTE *Lang0Labels[] = {
- (UBYTE *)"English",
- (UBYTE *)"Français",
- (UBYTE *)"Español",
- NULL };
-
- UBYTE *Just0Labels[] = {
- (UBYTE *)"Left",
- (UBYTE *)"Centre",
- (UBYTE *)"Right",
- NULL };
-
- UBYTE *Type0Labels[] = {
- (UBYTE *)"Requester",
- (UBYTE *)"Sound File",
- (UBYTE *)"AmigaDOS Command",
- (UBYTE *)"Speech",
- NULL };
-
- struct TextAttr topaz8 = {
- ( STRPTR )"topaz.font", 8, 0x00, 0x01 };
-
- struct IntuiText Project0IText[] = {
- 1, 0, JAM1,213, 6, &topaz8, (UBYTE *)"Language:-", &Project0IText[1],
- 1, 0, JAM1,20, 6, &topaz8, (UBYTE *)"Justification:-", &Project0IText[2],
- 1, 0, JAM1,378, 6, &topaz8, (UBYTE *)"Alarm Settings:-", NULL };
-
- UWORD Project0GTypes[] = {
- SLIDER_KIND,
- BUTTON_KIND,
- BUTTON_KIND,
- SLIDER_KIND,
- SLIDER_KIND,
- CHECKBOX_KIND,
- MX_KIND,
- MX_KIND,
- CHECKBOX_KIND,
- CHECKBOX_KIND,
- STRING_KIND,
- STRING_KIND,
- GENERIC_KIND,
- GENERIC_KIND,
- SLIDER_KIND,
- TEXT_KIND,
- TEXT_KIND,
- SLIDER_KIND,
- CYCLE_KIND,
- STRING_KIND,
- CHECKBOX_KIND,
- BUTTON_KIND,
- GENERIC_KIND,
- STRING_KIND,
- GENERIC_KIND,
- STRING_KIND,
- STRING_KIND
- };
-
- struct NewGadget Project0NGad[] = {
- 89, 123, 184, 11, (UBYTE *)"Colours", NULL, GD_ColourSlider, PLACETEXT_LEFT, NULL, NULL,
- 9, 226, 106, 14, (UBYTE *)"Save", NULL, GD_But_Use, PLACETEXT_IN, NULL, NULL,
- 438, 226, 106, 14, (UBYTE *)"Use", NULL, GD_But_Cancel, PLACETEXT_IN, NULL, NULL,
- 111, 105, 102, 13, (UBYTE *)"Time Colour", NULL, GD_Time_Colour, PLACETEXT_LEFT, NULL, NULL,
- 113, 89, 100, 13, (UBYTE *)"Date Colour", NULL, GD_Date_Colour, PLACETEXT_LEFT, NULL, NULL,
- 164, 72, 26, 11, (UBYTE *)"Display Date", NULL, GD_Check_Date, PLACETEXT_RIGHT, NULL, NULL,
- 278, 21, 17, 9, NULL, NULL, GD_Lang, PLACETEXT_LEFT, NULL, NULL,
- 19, 23, 17, 9, NULL, NULL, GD_Just, PLACETEXT_RIGHT, NULL, NULL,
- 16, 61, 26, 11, (UBYTE *)"Auto adjust", NULL, GD_Check_Auto, PLACETEXT_RIGHT, NULL, NULL,
- 164, 59, 26, 11, (UBYTE *)"WindowToFront", NULL, GD_WinFront, PLACETEXT_RIGHT, NULL, NULL,
- 118, 141, 162, 14, (UBYTE *)"Public Screen", NULL, GD_Pub, PLACETEXT_LEFT, NULL, NULL,
- 76, 159, 203, 14, (UBYTE *)"Backdrop", NULL, GD_Back, PLACETEXT_LEFT, NULL, NULL,
- 282, 141, 20, 14, NULL, NULL, GD_Pub_Get, 0, NULL, NULL,
- 282, 159, 20, 14, NULL, NULL, GD_Asl_Get, 0, NULL, NULL,
- 387, 33, 106, 11, (UBYTE *)"Event number", NULL, GD_A_Preset, PLACETEXT_ABOVE, NULL, NULL,
- 334, 73, 201, 13, (UBYTE *)"Time of event", NULL, GD_Time1, PLACETEXT_ABOVE, NULL, NULL,
- 334, 87, 201, 13, NULL, NULL, GD_Time2, 0, NULL, NULL,
- 333, 103, 201, 12, NULL, NULL, GD_Time_Set, 0, NULL, NULL,
- 335, 131, 201, 15, (UBYTE *)"Type of event", NULL, GD_Type, PLACETEXT_ABOVE, NULL, NULL,
- 334, 162, 185, 14, (UBYTE *)"Parameter", NULL, GD_Msg, PLACETEXT_ABOVE, NULL, NULL,
- 339, 47, 26, 11, (UBYTE *)"Enable Event", NULL, GD_Enable, PLACETEXT_RIGHT, NULL, NULL,
- 480,47, 60,11,(UBYTE *)"Date",NULL,GD_Date,PLACETEXT_IN,NULL,NULL,
- 524,162,20,14,NULL,NULL,GD_GetParam,0,NULL,NULL,
- 134,183,384,14,(UBYTE *)"Accent Filename",NULL,GD_Accent,PLACETEXT_LEFT,NULL,NULL,
- 524,183,20,14,NULL,NULL,GD_GetAccent,0,NULL,NULL,
- 126,202,150,14,(UBYTE *)"Window hotkey",NULL,GD_HotKey,PLACETEXT_LEFT,NULL,NULL,
- 392,202,150,14,(UBYTE *)"Talky hotkey",NULL,GD_TalkKey,PLACETEXT_LEFT,NULL,NULL
-
- };
-
- ULONG Project0GTags[] = {
- (GTSL_Max), 7, (GTSL_LevelPlace), (PLACETEXT_RIGHT), (PGA_Freedom), LORIENT_HORIZ, (GA_RelVerify), TRUE, (TAG_DONE),
- (TAG_DONE),
- (TAG_DONE),
- (GTSL_Max), 1, (PGA_Freedom), LORIENT_HORIZ, (GA_Immediate), TRUE, (GA_RelVerify), TRUE, (TAG_DONE),
- (GTSL_Max), 1, (PGA_Freedom), LORIENT_HORIZ, (GA_Immediate), TRUE, (GA_RelVerify), TRUE, (TAG_DONE),
- (TAG_DONE),
- (GTMX_Labels), (ULONG)&Lang0Labels[ 0 ], (GTMX_Spacing), 3, (TAG_DONE),
- (GTMX_Labels), (ULONG)&Just0Labels[ 0 ], (GTMX_Spacing), 2, (TAG_DONE),
- (TAG_DONE),
- (TAG_DONE),
- (GTST_MaxChars), 139, (TAG_DONE),
- (GTST_MaxChars), 256, (TAG_DONE),
- (TAG_DONE),
- (TAG_DONE),
- (GTSL_Min), 1, (GTSL_Max), 10, (GTSL_MaxLevelLen), 3, (GTSL_LevelFormat), (ULONG)"%ld", (GTSL_LevelPlace), (PLACETEXT_RIGHT), (PGA_Freedom), LORIENT_HORIZ, (GA_RelVerify), TRUE, (TAG_DONE),
- (GTTX_Border), TRUE, (TAG_DONE),
- (GTTX_Border), TRUE, (TAG_DONE),
- (GTSL_Min),1,(GTSL_Max), 576, (GTSL_LevelPlace), (PLACETEXT_RIGHT), (PGA_Freedom), LORIENT_HORIZ, (GA_RelVerify), TRUE, (TAG_DONE),
- (GTCY_Labels), (ULONG)&Type0Labels[ 0 ], (TAG_DONE),
- (GTST_MaxChars), 256, (TAG_DONE),
- (TAG_DONE),
- (TAG_DONE),
- (TAG_DONE),
- (GTST_MaxChars), 256, (TAG_DONE),
- (TAG_DONE),
- (GTST_MaxChars), 100, (TAG_DONE)
- };
-
- int SetupScreen( void )
- {
- if ( ! ( VisualInfo = GetVisualInfo( pubscreen, TAG_DONE )))
- return( 2L );
-
- if ( ! ( getClass = initGet()))
- return( 3L );
-
- if ( ! ( getImage = NewObject( getClass, NULL, GT_VisualInfo, VisualInfo, TAG_DONE )))
- return( 4L );
-
- return( 0L );
- }
-
- void CloseDownScreen( void )
- {
- if ( getImage ) {
- DisposeObject( getImage );
- getImage = NULL;
- }
-
- if ( getClass ) {
- FreeClass( getClass );
- getClass = NULL;
- }
-
- if ( VisualInfo ) {
- FreeVisualInfo( VisualInfo );
- VisualInfo = NULL;
- }
-
- }
-
- void Project0Render( void )
- {
- UWORD offx, offy;
-
- offx = Project0Wnd->BorderLeft;
- offy = Project0Wnd->BorderTop;
-
- PrintIText( Project0Wnd->RPort, Project0IText, offx, offy );
- }
-
- int OpenProject0Window( void )
- {
- struct NewGadget ng;
- struct Gadget *g;
- UWORD lc, tc;
- UWORD offx = pubscreen->WBorLeft, offy = pubscreen->WBorTop + pubscreen->RastPort.TxHeight + 1;
-
- if ( ! ( g = CreateContext( &Project0GList )))
- return( 1L );
-
- for( lc = 0, tc = 0; lc < Project0_CNT; lc++ ) {
-
- CopyMem((char * )&Project0NGad[ lc ], (char * )&ng, (long)sizeof( struct NewGadget ));
-
- ng.ng_VisualInfo = VisualInfo;
- ng.ng_TextAttr = &topaz8;
- ng.ng_LeftEdge += offx;
- ng.ng_TopEdge += offy;
-
- Project0Gadgets[ lc ] = g = CreateGadgetA((ULONG)Project0GTypes[ lc ], g, &ng, ( struct TagItem * )&Project0GTags[ tc ] );
-
- if ( Project0GTypes[ lc ] == GENERIC_KIND ) {
- g->Flags |= GFLG_GADGIMAGE | GFLG_GADGHIMAGE;
- g->Activation |= GACT_RELVERIFY;
- g->GadgetRender = (APTR)getImage;
- g->SelectRender = (APTR)getImage;
- }
-
- while( Project0GTags[ tc ] ) tc += 2;
- tc++;
-
- if ( NOT g )
- return( 2L );
- }
-
- if ( ! ( Project0Wnd = OpenWindowTags( NULL,
- WA_Left, Project0Left,
- WA_Top, Project0Top,
- WA_Width, Project0Width,
- WA_Height, Project0Height + offy,
- WA_IDCMP, SLIDERIDCMP|BUTTONIDCMP|CHECKBOXIDCMP|MXIDCMP|STRINGIDCMP|IDCMP_GADGETUP|TEXTIDCMP|CYCLEIDCMP|IDCMP_CLOSEWINDOW|IDCMP_REFRESHWINDOW,
- WA_Flags, WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_CLOSEGADGET|WFLG_SMART_REFRESH|WFLG_ACTIVATE,
- WA_Gadgets, Project0GList,
- WA_Title, Project0Wdt,
- WA_ScreenTitle, "EngClock Prefs",
- WA_PubScreen, pubscreen,
- TAG_DONE )))
- return( 4L );
-
- GT_RefreshWindow( Project0Wnd, NULL );
-
- Project0Render();
-
- return( 0L );
- }
-
- void CloseProject0Window( void )
- {
- if ( Project0Wnd ) {
- CloseWindow( Project0Wnd );
- Project0Wnd = NULL;
- }
-
- if ( Project0GList ) {
- FreeGadgets( Project0GList );
- Project0GList = NULL;
- }
- }
-
- int prefsgui(void) {
-
- ULONG class, code, iaddress, offx, offy;
- struct IntuiMessage *msg2;
-
- exit_flag2=FALSE;
-
- SetupScreen();
- adaptlanguage();
-
- OpenProject0Window();
-
- displevel(0);
- drawspecial();
- if(prefs.planguage > 0)
- GT_SetGadgetAttrs(Project0Gadgets[GD_Lang],Project0Wnd,NULL,GTMX_Active,prefs.planguage-1,TAG_END);
-
- GT_SetGadgetAttrs(Project0Gadgets[GD_Just],Project0Wnd,NULL,GTMX_Active,prefs.just,TAG_END);
- GT_SetGadgetAttrs(Project0Gadgets[GD_Time_Colour],Project0Wnd,NULL,GTSL_Level,prefs.time_col[0],TAG_END);
- GT_SetGadgetAttrs(Project0Gadgets[GD_Date_Colour],Project0Wnd,NULL,GTSL_Level,prefs.date_col[0],TAG_END);
- GT_SetGadgetAttrs(Project0Gadgets[GD_Check_Date],Project0Wnd,NULL,GTCB_Checked,prefs.date,TAG_END);
- GT_SetGadgetAttrs(Project0Gadgets[GD_Check_Auto],Project0Wnd,NULL,GTCB_Checked,prefs.autoadjust,TAG_END);
- GT_SetGadgetAttrs(Project0Gadgets[GD_Pub],Project0Wnd,NULL,GTST_String,prefs.pub,TAG_END);
- GT_SetGadgetAttrs(Project0Gadgets[GD_Back],Project0Wnd,NULL,GTST_String,prefs.backdrop,TAG_END);
- GT_SetGadgetAttrs(Project0Gadgets[GD_WinFront],Project0Wnd,NULL,GTCB_Checked,prefs.wtf,TAG_END);
-
- convertdate(prefs.events[1].timecode);
- GT_SetGadgetAttrs(Project0Gadgets[GD_Time1],Project0Wnd,NULL,GTTX_Text,time1,TAG_END);
- GT_SetGadgetAttrs(Project0Gadgets[GD_Time2],Project0Wnd,NULL,GTTX_Text,time2,TAG_END);
- GT_SetGadgetAttrs(Project0Gadgets[GD_Msg],Project0Wnd,NULL,GTST_String,prefs.events[1].message,TAG_END);
- GT_SetGadgetAttrs(Project0Gadgets[GD_Type],Project0Wnd,NULL,GTCY_Active,prefs.events[1].type,TAG_END);
- GT_SetGadgetAttrs(Project0Gadgets[GD_Time_Set],Project0Wnd,NULL,GTSL_Level,prefs.events[1].timecode,TAG_END);
- GT_SetGadgetAttrs(Project0Gadgets[GD_Enable],Project0Wnd,NULL,GTCB_Checked,prefs.events[1].used,TAG_END);
- GT_SetGadgetAttrs(Project0Gadgets[GD_HotKey],Project0Wnd,NULL,GTST_String,prefs.hkey,TAG_END);
- GT_SetGadgetAttrs(Project0Gadgets[GD_TalkKey],Project0Wnd,NULL,GTST_String,prefs.tkey,TAG_END);
-
- if(locale) GT_SetGadgetAttrs(Project0Gadgets[GD_Lang],Project0Wnd,NULL,GA_Disabled,TRUE,TAG_END);
-
- GT_SetGadgetAttrs(Project0Gadgets[GD_Accent],Project0Wnd,NULL,GTST_String,prefs.accent,TAG_END);
- GT_RefreshWindow(Project0Wnd,NULL);
-
- offx=Project0Wnd->BorderLeft-4;
- offy=Project0Wnd->BorderTop-11;
-
- SetAPen(Project0Wnd->RPort,prefs.time_col[0]);
- RectFill(Project0Wnd->RPort,241+offx,115+offy,299+offx,125+offy);
- SetAPen(Project0Wnd->RPort,prefs.date_col[0]);
- RectFill(Project0Wnd->RPort,241+offx,99+offy,299+offx,109+offy);
- SetAPen(Project0Wnd->RPort,1);
-
- while(1) {
- Wait(1<<Project0Wnd->UserPort->mp_SigBit);
- while(msg2=(struct IntuiMessage *)GT_GetIMsg(Project0Wnd->UserPort)) {
- class=msg2->Class;
- code=msg2->Code;
- iaddress=(ULONG)msg2->IAddress;
- GT_ReplyIMsg(msg2);
-
- switch(class) {
- case CLOSEWINDOW:
- goto cleanup;
- break;
- case GADGETUP:
- case GADGETDOWN:
- case MOUSEMOVE:
- if(!handlepgadgets(iaddress,code))
- goto cleanup;
- if(exit_flag2)
- goto cleanup;
- break;
- default:
- //msg("Unknown msg!");
- break;
- }
- }
- }
-
- cleanup:
-
- CloseProject0Window();
- CloseDownScreen();
-
- return;
- }
-
- BOOL handlepgadgets(int iaddress, int code) {
- struct Gadget *gad;
- struct StringInfo *si;
- char pub[139];
- char *tmp=NULL;
- char stuff[200];
- char olddir[200];
- int cols=2, i=0;
- UWORD offx, offy;
-
- BPTR thandle; /* temp handle */
-
- offx=Project0Wnd->BorderLeft-4;
- offy=Project0Wnd->BorderTop-11;
-
- gad=(struct Gadget *)iaddress;
- si=(struct StringInfo *)gad->SpecialInfo;
-
- switch(gad->GadgetID) {
- case GD_ColourSlider:
- current_mode=code;
- displevel(code);
- for(i=0; i<code; i++) {
- cols=cols*2;
- }
- GT_SetGadgetAttrs(Project0Gadgets[GD_Time_Colour],Project0Wnd,NULL,GTSL_Max,(cols-1),GTSL_Level,prefs.time_col[code],TAG_END);
- GT_SetGadgetAttrs(Project0Gadgets[GD_Date_Colour],Project0Wnd,NULL,GTSL_Max,(cols-1),GTSL_Level,prefs.date_col[code],TAG_END);
- GT_RefreshWindow(Project0Wnd,NULL);
-
- SetAPen(Project0Wnd->RPort,prefs.time_col[code]);
- RectFill(Project0Wnd->RPort,241+offx,115+offy,299+offx,125+offy);
- SetAPen(Project0Wnd->RPort,prefs.date_col[code]);
- RectFill(Project0Wnd->RPort,241+offx,99+offy,299+offx,109+offy);
- SetAPen(Project0Wnd->RPort,1);
-
- break;
- case GD_But_Use:
- writeprefs();
- exit_flag2=TRUE;
- return(0);
- break;
- case GD_But_Cancel:
- exit_flag2=TRUE;
- return(0);
- break;
- case GD_Time_Colour:
- SetAPen(Project0Wnd->RPort,code);
- RectFill(Project0Wnd->RPort,241+offx,115+offy,299+offx,125+offy);
- SetAPen(Project0Wnd->RPort,1);
- prefs.time_col[current_mode]=code;
- break;
- case GD_Date_Colour:
- SetAPen(Project0Wnd->RPort,code);
- RectFill(Project0Wnd->RPort,241+offx,99+offy,299+offx,109+offy);
- SetAPen(Project0Wnd->RPort,1);
- prefs.date_col[current_mode]=code;
- break;
- case GD_Check_Date:
- prefs.date=code;
- break;
- case GD_Pub_Get:
- tmp=NULL;
- tmp=publister();
- if(tmp!=(char *)1234) {
- sprintf(pub,"%s",tmp);
- if(strcmp(pub,"")) {
- strcpy(prefs.pub,pub);
- GT_SetGadgetAttrs(Project0Gadgets[GD_Pub],Project0Wnd,NULL,GTST_String,prefs.pub,TAG_DONE);
- GT_RefreshWindow(Project0Wnd,NULL);
- }
- }
- break;
- case GD_Check_Auto:
- prefs.autoadjust=code;
- break;
- case GD_Date:
- getdate();
- break;
- case GD_Lang:
- prefs.planguage=(code+1);
- language=code+1;
- break;
- case GD_Just:
- prefs.just=code;
- break;
- case GD_WinFront:
- prefs.wtf=code;
- break;
- case GD_Back:
- strcpy(prefs.backdrop,si->Buffer);
- thandle=Open(prefs.backdrop,MODE_OLDFILE);
- if(!thandle) {
- DisplayBeep(NULL);
- strcpy(prefs.backdrop,"");
- GT_SetGadgetAttrs(Project0Gadgets[GD_Back],Project0Wnd,NULL,GTST_String,prefs.backdrop,TAG_END);
- GT_RefreshWindow(Project0Wnd,NULL);
- }
- if(thandle) Close(thandle);
- break;
- case GD_Pub:
- strcpy(prefs.pub,si->Buffer);
- break;
- case GD_Asl_Get:
- // What was the old dir?
- strcpy(olddir,"");
- strcpy(stuff,prefs.backdrop);
- for(i=strlen(stuff); i>-1; i--) {
- if(stuff[i]=='/') {
- stuff[i]=NULL;
- strcpy(olddir,stuff);
- stuff[i]='/';
- break;
- }
- }
- // Did that work?
- if(!(strcmp(olddir,""))) {
- // Ok, lets try :
- for(i=strlen(stuff); i>-1; i--) {
- if(stuff[i]==':') {
- stuff[i+1]=NULL;
- strcpy(olddir,stuff);
- stuff[i]='/';
- }
- }
- }
- switch(language) {
- case ENGLISH:
- case FRENCH:
- tmp=callasl(Project0Wnd,"Pick a file for the backdrop",olddir);
- break;
- case SPANISH:
- tmp=callasl(Project0Wnd,"Elija una imagen cono fondo",olddir);
- break;
- default:
- tmp=callasl(Project0Wnd,"Pick a file for the backdrop",olddir);
- break;
- }
-
- if(tmp) {
- sprintf(prefs.backdrop,"%s",tmp);
- thandle=Open(prefs.backdrop,MODE_OLDFILE);
- if(!thandle) {
- DisplayBeep(NULL);
- strcpy(prefs.backdrop,"");
- GT_SetGadgetAttrs(Project0Gadgets[GD_Back],Project0Wnd,NULL,GTST_String,prefs.backdrop,TAG_END);
- GT_RefreshWindow(Project0Wnd,NULL);
- }
- if(thandle) Close(thandle);
- GT_SetGadgetAttrs(Project0Gadgets[GD_Back],Project0Wnd,NULL,GTST_String,prefs.backdrop,TAG_END);
- GT_RefreshWindow(Project0Wnd,NULL);
- }
- break;
- case GD_A_Preset:
- preset=code;
- convertdate(prefs.events[preset].timecode);
- GT_SetGadgetAttrs(Project0Gadgets[GD_Time1],Project0Wnd,NULL,GTTX_Text,time1,TAG_END);
- GT_SetGadgetAttrs(Project0Gadgets[GD_Time2],Project0Wnd,NULL,GTTX_Text,time2,TAG_END);
- GT_SetGadgetAttrs(Project0Gadgets[GD_Msg],Project0Wnd,NULL,GTST_String,prefs.events[preset].message,TAG_END);
- GT_SetGadgetAttrs(Project0Gadgets[GD_Type],Project0Wnd,NULL,GTCY_Active,prefs.events[preset].type,TAG_END);
- GT_SetGadgetAttrs(Project0Gadgets[GD_Time_Set],Project0Wnd,NULL,GTSL_Level,prefs.events[preset].timecode,TAG_END);
- GT_SetGadgetAttrs(Project0Gadgets[GD_Enable],Project0Wnd,NULL,GTCB_Checked,prefs.events[preset].used,TAG_END);
- GT_RefreshWindow(Project0Wnd,NULL);
- break;
- case GD_Time_Set:
- /* code 0 = It's just gone one o'clock (am) */
- /* If code is even, It's Just gone
- if code is odd, Its nearly */
- /* Reset */
- prefs.events[preset].hours=0;
- prefs.events[preset].minutes=0;
- prefs.events[preset].timecode=code;
-
- convertdate(code);
-
- GT_SetGadgetAttrs(Project0Gadgets[GD_Time1],Project0Wnd,NULL,GTTX_Text,time1,TAG_END);
- GT_SetGadgetAttrs(Project0Gadgets[GD_Time2],Project0Wnd,NULL,GTTX_Text,time2,TAG_END);
-
- GT_RefreshWindow(Project0Wnd,NULL);
- break;
- case GD_Type:
- prefs.events[preset].type=code;
-
- break;
- case GD_Msg:
- strcpy(prefs.events[preset].message,si->Buffer);
- break;
- case GD_Enable:
- prefs.events[preset].used=code;
- break;
- case GD_GetParam:
- // What was the old dir?
- strcpy(olddir,"");
- strcpy(stuff,prefs.events[preset].message);
- for(i=strlen(stuff); i>-1; i--) {
- if(stuff[i]=='/') {
- stuff[i]=NULL;
- strcpy(olddir,stuff);
- stuff[i]='/';
- break;
- }
- }
- // Did that work?
- if(!(strcmp(olddir,""))) {
- // Ok, lets try :
- for(i=strlen(stuff); i>-1; i--) {
- if(stuff[i]==':') {
- stuff[i+1]=NULL;
- strcpy(olddir,stuff);
- stuff[i]='/';
- }
- }
- }
-
- strcpy(prefs.events[preset].message,callasl(Project0Wnd,"Select a file as a parameter for your event",olddir));
- if(prefs.events[preset].type==1) // Sound
- strcpy(prefs.events[preset].message,analysis(prefs.events[preset].message));
- GT_SetGadgetAttrs(Project0Gadgets[GD_Msg],Project0Wnd,NULL,GTST_String,prefs.events[preset].message,TAG_END);
- GT_RefreshWindow(Project0Wnd,NULL);
-
- break;
-
- case GD_Accent:
- strcpy(prefs.accent,si->Buffer);
- thandle=Open(prefs.accent,MODE_OLDFILE);
- if(!thandle) {
- DisplayBeep(NULL);
- strcpy(prefs.accent,"");
- GT_SetGadgetAttrs(Project0Gadgets[GD_Accent],Project0Wnd,NULL,GTST_String,prefs.accent,TAG_END);
- GT_RefreshWindow(Project0Wnd,NULL);
- }
- if(thandle) Close(thandle);
- break;
- case GD_GetAccent:
- tmp=callasl(Project0Wnd,"Choose your accent","LOCALE:Accents");
- if(tmp) {
- sprintf(prefs.accent,"%s",tmp);
- thandle=Open(prefs.accent,MODE_OLDFILE);
- if(!thandle) {
- DisplayBeep(NULL);
- strcpy(prefs.accent,"");
- GT_SetGadgetAttrs(Project0Gadgets[GD_Accent],Project0Wnd,NULL,GTST_String,prefs.accent,TAG_END);
- GT_RefreshWindow(Project0Wnd,NULL);
- }
- if(thandle) Close(thandle);
- GT_SetGadgetAttrs(Project0Gadgets[GD_Accent],Project0Wnd,NULL,GTST_String,prefs.accent,TAG_END);
- GT_RefreshWindow(Project0Wnd,NULL);
- }
- break;
- case GD_HotKey:
- strcpy(prefs.hkey,si->Buffer);
- break;
- case GD_TalkKey:
- strcpy(prefs.tkey,si->Buffer);
- break;
-
-
- }
-
- return(1);
- }
-
- short displevel(int code) {
- UWORD offx, offy;
- int i=0, cols=2;
- char text[5];
-
- offx=Project0Wnd->BorderLeft-4;
- offy=Project0Wnd->BorderTop-11;
-
- for(i=0; i<code; i++) {
- cols=cols*2;
- }
- sprintf(text,"%ld",cols);
- level_text.IText=text;
- SetAPen(Project0Wnd->RPort,0);
- RectFill(Project0Wnd->RPort,293+offx,131+offy,320+offx,142+offy);
- SetAPen(Project0Wnd->RPort,1);
- PrintIText(Project0Wnd->RPort,&level_text,offx,offy);
-
- return(1);
- }
-
- short drawspecial(void) {
- UWORD offx, offy;
-
- offx=Project0Wnd->BorderLeft-4;
- offy=Project0Wnd->BorderTop-11;
-
- /* Outline to time colour */
-
- Move(Project0Wnd->RPort,240+offx,98+offy);
- Draw(Project0Wnd->RPort,300+offx,98+offy);
-
- Move(Project0Wnd->RPort,300+offx,98+offy);
- Draw(Project0Wnd->RPort,300+offx,110+offy);
-
- Move(Project0Wnd->RPort,300+offx,110+offy);
- Draw(Project0Wnd->RPort,240+offx,110+offy);
-
- Move(Project0Wnd->RPort,240+offx,110+offy);
- Draw(Project0Wnd->RPort,240+offx,98+offy);
-
- /* Ouline to date colour */
-
- Move(Project0Wnd->RPort,240+offx,114+offy);
- Draw(Project0Wnd->RPort,300+offx,114+offy);
-
- Move(Project0Wnd->RPort,300+offx,114+offy);
- Draw(Project0Wnd->RPort,300+offx,126+offy);
-
- Move(Project0Wnd->RPort,300+offx,126+offy);
- Draw(Project0Wnd->RPort,240+offx,126+offy);
-
- Move(Project0Wnd->RPort,240+offx,126+offy);
- Draw(Project0Wnd->RPort,240+offx,114+offy);
-
- return(1);
- }
-
- short writeprefs(void) {
- int bytes;
-
- handle2=Open(PREFS_FILE,MODE_READWRITE);
- if (!handle2) {
- DisplayBeep(0L);
- return(0); }
-
- /* First update the prefs structure */
- prefs.vers=VERS; /* Current version of prefs file format */
- strcpy(prefs.header,ID); /* Header */
- prefs.x=win_p->LeftEdge;
- prefs.y=win_p->TopEdge;
- prefs.width=win_p->Width;
- prefs.height=win_p->Height;
- /* Note that the planguage element does not need to be updated */
- bytes=FWrite(handle2,(char *)&prefs,1,sizeof(prefs));
- if(bytes!=sizeof(prefs))
- /* File was not written properly! */
- DisplayBeep(NULL);
-
- Close(handle2);
- return(0);
- }
-
-
- char *callasl(struct Window *win, char *title, char *initialdir) {
- struct FileRequester *fr;
- char buffer2[200];
- struct TagItem tags[] = {
- ASL_Hail,(ULONG)NULL,
- ASL_Pattern,(ULONG)"#?",
- ASL_FuncFlags,FILF_PATGAD,
- ASL_Window,(ULONG)NULL,
- ASL_Dir,(ULONG)NULL,
- TAG_DONE
- };
-
- if(!(AslBase=OpenLibrary("asl.library",0)))
- return(NULL);
-
- tags[0].ti_Data=(ULONG)title;
- tags[3].ti_Data=(ULONG)win;
- tags[4].ti_Data=(ULONG)initialdir;
-
- fr=(struct FileRequester *)AllocAslRequest(ASL_FileRequest,&tags[0]);
- if(!fr) {
- msg("Unable to open asl requester!");
- CloseLibrary(AslBase);
- return(0);
- }
-
- if(!AslRequest(fr,NULL)) {
- FreeAslRequest(fr);
- CloseLibrary(AslBase);
- return(0);
- }
-
- sprintf(buffer,"%s",fr->rf_Dir);
- sprintf(buffer2,"%s",fr->rf_File);
-
- if(buffer[strlen(buffer)-1]!=':' && buffer[strlen(buffer)-1]!='/' ) {
- /* No device name nor trailing slash */
- if(strcmp(buffer,"")) {
- /* Make sure something is in there */
- strcat(buffer,"/");
- }
- }
-
- strcat(buffer,buffer2);
-
-
- FreeAslRequest(fr);
-
- CloseLibrary(AslBase);
- return(&buffer[0]);
- }
-
-
- void adaptlanguage(void) {
-
- switch(language) {
- case ENGLISH:
- break;
- case FRENCH:
- Just0Labels[0]="Gauche";
- Just0Labels[1]="Droit";
- Just0Labels[2]="Centre";
- Type0Labels[0]="Demander";
- Type0Labels[1]="Bruit (IFF)";
- Type0Labels[2]="Ordre (AmigaDOS)";
- Type0Labels[3]="Parole";
- Project0IText[0].IText="Langue";
- Project0IText[1].IText="Justification";
- Project0IText[2].IText="Réveille-matin:-";
- Project0NGad[0].ng_GadgetText="Couleurs";
- Project0NGad[1].ng_GadgetText="Sauver";
- Project0NGad[2].ng_GadgetText="Emploi";
- Project0NGad[3].ng_GadgetText="Couleur(date)";
- Project0NGad[4].ng_GadgetText="Couleur(temp)";
- Project0NGad[5].ng_GadgetText="Date ?";
- Project0NGad[8].ng_GadgetText="Automatique";
- Project0NGad[10].ng_GadgetText="écran (pub)";
- Project0NGad[11].ng_GadgetText="Image";
- Project0NGad[9].ng_GadgetText="Fenêtre á face";
- Project0NGad[14].ng_GadgetText="Nombre";
- Project0NGad[15].ng_GadgetText="Temps";
- Project0NGad[18].ng_GadgetText="Type";
- Project0NGad[19].ng_GadgetText="Texte";
- Project0NGad[20].ng_GadgetText="Emploi cas?";
-
-
- break;
- case SPANISH:
- Just0Labels[0]="A la Izquierdo";
- Just0Labels[2]="A la Derecho";
- Just0Labels[1]="Centrado";
- Type0Labels[0]="Petición";
- Type0Labels[1]="Sonido (IFF)";
- Type0Labels[2]="Orden (AmigaDOS)";
- Type0Labels[3]="Habla";
- Project0IText[0].IText="Lenguaje";
- Project0IText[1].IText="Justificado Texto";
- Project0IText[2].IText="Despertador";
- Project0NGad[0].ng_GadgetText="Nº Colores";
- Project0NGad[1].ng_GadgetText="Guardar";
- Project0NGad[2].ng_GadgetText="Usar";
- Project0NGad[3].ng_GadgetText="Color (Hora)";
- Project0NGad[4].ng_GadgetText="Color (Fecha)";
- Project0NGad[5].ng_GadgetText="Monstrar Fecha";
- Project0NGad[8].ng_GadgetText="Auto Ajuste";
- Project0NGad[10].ng_GadgetText="PantPública";
- Project0NGad[11].ng_GadgetText="Imagen";
- Project0NGad[9].ng_GadgetText="Primer Plano";
- Project0NGad[14].ng_GadgetText="NÚmero";
- Project0NGad[19].ng_GadgetText="Texto";
- Project0NGad[20].ng_GadgetText="Suceso ?";
- Project0NGad[21].ng_GadgetText="Fecha";
- Project0NGad[15].ng_GadgetText="Tiempo";
- Project0NGad[18].ng_GadgetText="Tipo";
-
- break;
-
- }
-
- }
- void convertdate(int code) {
- int tme,i,hours_count;
- BOOL pm,odd=FALSE;
-
- tme=(code/2)*2;
- if(code!=tme)
- strcpy(time1,"Just gone ");
- else {
- strcpy(time1,"Nearly ");
- odd=TRUE;
- tme++;
- };
- hours_count=1;
- while (tme > 24) {
- tme=tme-24;
- hours_count++;
- }
- if(hours_count==25) hours_count=1;
- tme=(tme/2)*5;
- if(tme == 60) { tme=0; hours_count++; }
-
- pm=FALSE;
- if(hours_count > 12) {
- pm=TRUE;
- hours_count+= - 12;
- }
-
- if(hours_count == 12) {
- if(pm) pm=FALSE; else pm=TRUE;
- }
- if (tme !=0) strcat(time1,engnums[tme]);
- prefs.events[preset].minutes=tme;
- if(odd) prefs.events[preset].minutes+= -2;
-
- if (tme !=0) strcat(time1," ");
- if (tme !=0) {
- if(tme <= 30)
- strcat(time1,"past ");
- else {
- strcat(time1,"to ");
- }
- }
- /* if(tme>30) prefs.events[preset].hours=hours_count+1;
- else */
-
- prefs.events[preset].hours=hours_count;
-
-
- if(prefs.events[preset].minutes==-2) {
- prefs.events[preset].hours--;
- prefs.events[preset].minutes=58;
- if(prefs.events[preset].hours==-1)
- prefs.events[preset].hours=23;
- }
- if(prefs.events[preset].hours==25)
- prefs.events[preset].hours=0;
-
- if(tme>30 && hours_count==12) {
- hours_count=0;
- prefs.events[preset].hours=0;
- }
-
- if(hours_count==13) {
- hours_count=1;
- prefs.events[preset].hours=1;
- }
-
- if(tme>30) strcat(time1,engnums[hours_count+1]);
- else
- strcat(time1,engnums[hours_count]);
-
- if(hours_count==11 && tme>30) {
- if(pm) pm=FALSE;
- else
- pm=TRUE;
- }
-
- if(!pm) {
- if(hours_count==11) {
- if(tme >30) {
- prefs.events[preset].hours+=12;
- }
- if(hours_count==12) {
- prefs.events[preset].hours+=12;
- }
- }
- }
- if(pm==0 && prefs.events[preset].hours==12) prefs.events[preset].hours=0;
- if(pm) prefs.events[preset].hours+=12;
-
- if(prefs.events[preset].hours==25) prefs.events[preset].hours=1;
- if(prefs.events[preset].hours==24) prefs.events[preset].hours=0;
-
-
-
- if(pm) strcat(time1," (pm)"); else strcat(time1," (am)");
-
-
- switch(language) {
- case ENGLISH:
- break;
-
- case FRENCH:
- strcpy(time1,""); /* Clear out English */
- if(prefs.events[preset].hours>12) {
- pm=TRUE;
- prefs.events[preset].hours+=-12;
- } else
- pm=FALSE;
-
- tme=(prefs.events[preset].minutes/5)*5;
-
- if((prefs.events[preset].minutes-tme)>2)
- strcat(time1,"Bientôt ");
-
- if(prefs.events[preset].minutes<=32) {
- strcat(time1,engnums[prefs.events[preset].hours]);
- }
- else {
- if(prefs.events[preset].hours==12) {
- strcat(time1,engnums[1]); }
- else {
- strcat(time1,engnums[prefs.events[preset].hours+1]);
- }
- }
-
- strcat(time1," heures");
-
- if(prefs.events[preset].minutes>2 & prefs.events[preset].minutes<58) {
- strcat(time1," ");
- if(prefs.events[preset].minutes>32)
- strcat(time1,"moins ");
-
- if((prefs.events[preset].minutes-tme)<=2)
- strcat(time1,engnums[(prefs.events[preset].minutes/5)*5]);
- else
- strcat(time1,engnums[((prefs.events[preset].minutes/5)+1)*5]);
- }
- if((prefs.events[preset].minutes-tme)<=2)
- strcat(time1," passées");
-
- if(pm) {
- prefs.events[preset].hours+=12;
- strcat(time1," (pm)");
- } else
- strcat(time1," (am)");
-
- break;
-
- case SPANISH:
- strcpy(time1,""); /* Clear out English */
-
- if(prefs.events[preset].hours>12) {
- pm=TRUE;
- prefs.events[preset].hours+=-12;
- } else
- pm=FALSE;
-
- if(odd) strcpy(time1,"Aproximadamente ");
- tme=(prefs.events[preset].minutes/5)*5;
- if(prefs.events[preset].minutes<=32)
- strcat(time1,engnums[prefs.events[preset].hours]);
- else {
- if(prefs.events[preset].hours==12)
- strcat(time1,engnums[1]);
- else
- strcat(time1,engnums[prefs.events[preset].hours+1]);
- }
- if(prefs.events[preset].minutes>2 & prefs.events[preset].minutes<58) {
- if(prefs.events[preset].minutes<=32)
- strcat(time1," y");
- else
- strcat(time1," menos");
- strcat(time1," ");
- if((prefs.events[preset].minutes-tme)<=2) {
- strcat(time1,engnums[(prefs.events[preset].minutes/5)*5]); }
- else {
- strcat(time1,engnums[((prefs.events[preset].minutes/5)+1)*5]); }
- }
- if(pm) {
- prefs.events[preset].hours+=12;
- strcat(time1," (pm)");
- } else
- strcat(time1," (am)");
- break;
- default:
- break;
- }
-
- if(strlen(time1) > 23) {
- for(i=0; i<22; i++) {
- time2[i]=time1[24+i];
- }
- time2[i+1]=0L;
- } else
- strcpy(time2,"");
-
- }
-
-
- /* The meaning of life is simple, its just that I can't think of it at the
- moment. */
-