diff --git a/bin/DAControlGUI.guide b/bin/DAControlGUI.guide index 361bf34..4f57246 100644 --- a/bin/DAControlGUI.guide +++ b/bin/DAControlGUI.guide @@ -33,10 +33,11 @@ @{b}Features@{ub} 1. Loads a specific ADF file and mounts it. (To mount ADF image by double-clicking on it) 2. Removes an ADF file from a unit and then loads a new ADF file. - 3. Ejects an / Eject All ADF file. (*) + 3. Ejects an / Eject All ADF file (also from Tools menu). (*) 4. Displays list of mounted devices. 5. Creates ADF image. 6. Iconify / Uniconify on workbench. + 7. Runs as a commodity. (*) That's why this app was created. :) diff --git a/bin/DAControlGUI.info b/bin/DAControlGUI.info index b9aaee5..ec89fba 100644 Binary files a/bin/DAControlGUI.info and b/bin/DAControlGUI.info differ diff --git a/functionsLib/Makefile.vbcc b/functionsLib/Makefile.vbcc new file mode 100644 index 0000000..209b3e8 --- /dev/null +++ b/functionsLib/Makefile.vbcc @@ -0,0 +1,14 @@ +CC := vc +aos68k +CFLAGS := +AR := join + +OBJS := functions.o +DEPS := functions.h + +all: functions.lib + +%.o: %.c $(DEPS) + $(CC) $(CFLAGS) -c -o $@ $< + +functions.lib: $(OBJS) + $(AR) $^ AS $@ diff --git a/functionsLib/functions.c b/functionsLib/functions.c index 4f58d84..91bc50b 100644 --- a/functionsLib/functions.c +++ b/functionsLib/functions.c @@ -21,12 +21,12 @@ BOOL fileExist(STRPTR filePath) /*=============================== RunDAControl ===============================*/ -void RunDAControl(char parameter[BUFFERSIZE]) +void RunDAControl(char *parameter) { char dacontrolPATH[BUFFERSIZE]; strcpy(dacontrolPATH, "SYS:C/DAControl "); strcat(dacontrolPATH, parameter); - Execute(dacontrolPATH, NULL, NULL); + Execute(dacontrolPATH, 0, 0); } /*=============================== @@ -79,7 +79,7 @@ char* fulltrim(char* str) return str; } -extern BOOL isContainsAdfExt(STRPTR filePath) +BOOL isContainsAdfExt(STRPTR filePath) { int i; char * isPointAdfStr; @@ -92,4 +92,4 @@ extern BOOL isContainsAdfExt(STRPTR filePath) isPointAdfStr = strstr(fPath, padf); if(isPointAdfStr) return 1; else return 0; -} \ No newline at end of file +} diff --git a/functionsLib/functions.h b/functionsLib/functions.h index 0cbd2fe..845c90b 100644 --- a/functionsLib/functions.h +++ b/functionsLib/functions.h @@ -11,7 +11,7 @@ #define BUFFERSIZE 0X200 extern BOOL fileExist(STRPTR filePath); -extern void RunDAControl(char parameter[BUFFERSIZE]); +extern void RunDAControl(char *parameter); extern char* fulltrim(char* str); extern char* substring(char*, int , int); extern BOOL isContainsAdfExt(STRPTR filePath); diff --git a/functionsLib/functions.lib b/functionsLib/functions.lib deleted file mode 100644 index f1e6378..0000000 Binary files a/functionsLib/functions.lib and /dev/null differ diff --git a/functionsLib/functions.o b/functionsLib/functions.o deleted file mode 100644 index 9454661..0000000 Binary files a/functionsLib/functions.o and /dev/null differ diff --git a/guide/DAControlGUI.guide b/guide/DAControlGUI.guide index 361bf34..4f57246 100644 --- a/guide/DAControlGUI.guide +++ b/guide/DAControlGUI.guide @@ -33,10 +33,11 @@ @{b}Features@{ub} 1. Loads a specific ADF file and mounts it. (To mount ADF image by double-clicking on it) 2. Removes an ADF file from a unit and then loads a new ADF file. - 3. Ejects an / Eject All ADF file. (*) + 3. Ejects an / Eject All ADF file (also from Tools menu). (*) 4. Displays list of mounted devices. 5. Creates ADF image. 6. Iconify / Uniconify on workbench. + 7. Runs as a commodity. (*) That's why this app was created. :) diff --git a/info/DAControlGUI.info b/info/DAControlGUI.info index b9aaee5..ec89fba 100644 Binary files a/info/DAControlGUI.info and b/info/DAControlGUI.info differ diff --git a/src/Makefile.vbcc b/src/Makefile.vbcc new file mode 100644 index 0000000..84df2e1 --- /dev/null +++ b/src/Makefile.vbcc @@ -0,0 +1,14 @@ +CC := vc +aos68k +CFLAGS := -c99 +LIBS := -lfunctions -lamiga -lreaction + +OBJS := main.o +DEPS := menu.h includes.h version.h + +all: DAControlGUI + +%.o: %.c $(DEPS) + $(CC) $(CFLAGS) -c -o $@ $< + +DAControlGUI: $(OBJS) + $(CC) $(CFLAGS) -o $@ $^ $(LIBS) diff --git a/src/functions.h b/src/functions.h new file mode 100644 index 0000000..845c90b --- /dev/null +++ b/src/functions.h @@ -0,0 +1,19 @@ +#ifndef FUNCTIONS_H +#define FUNCTIONS_H + +#include +#include +#include +#include +#include +#include + +#define BUFFERSIZE 0X200 + +extern BOOL fileExist(STRPTR filePath); +extern void RunDAControl(char *parameter); +extern char* fulltrim(char* str); +extern char* substring(char*, int , int); +extern BOOL isContainsAdfExt(STRPTR filePath); + +#endif diff --git a/src/functions.lib b/src/functions.lib deleted file mode 100644 index f1e6378..0000000 Binary files a/src/functions.lib and /dev/null differ diff --git a/src/includes.h b/src/includes.h index 4ebae9b..682e397 100644 --- a/src/includes.h +++ b/src/includes.h @@ -1,57 +1,68 @@ -#ifndef INCLUDES_H -#define INCLUDES_H - -#define STREQUAL(s1, s2) (strcmp(s1, s2) == 0) - -#include -#include - -#include -#include -#include -#include - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#define ALL_REACTION_MACROS -#define ALL_REACTION_CLASSES -#include -#include - -#define ASM __asm -#define REG(x) register __ ## x - -#define BASEDEF(base) struct Library *base##Base = NULL -#define OPENLIB(base,name) if (!((base##Base) = OpenLibrary ((name),0))) CloseLibs() -#define CLOSELIB(base) if (base##Base) {CloseLibrary (base##Base); base##Base=NULL;} - -#define NAME_MAX 0X020 -#define PATH_MAX 0X100 -#define MAX_LISTED_ADF 0X200 -#define BUFFERSIZE 0X200 - -#include - -#endif \ No newline at end of file +#ifndef INCLUDES_H +#define INCLUDES_H + +#define STREQUAL(s1, s2) (strcmp(s1, s2) == 0) + +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#define ALL_REACTION_MACROS +#define ALL_REACTION_CLASSES +#include +#include + +#define ASM __asm +#define REG(x) register __ ## x + +#define BASEDEF(base) struct Library *base##Base = NULL +#define OPENLIB(base,name) if (!((base##Base) = OpenLibrary ((name),0))) CloseLibs() +#define CLOSELIB(base) if (base##Base) {CloseLibrary (base##Base); base##Base=NULL;} + +#define NAME_MAX 0X020 +#define PATH_MAX 0X100 +#define MAX_LISTED_ADF 0X200 +#define BUFFERSIZE 0X200 + +#include + +#endif diff --git a/src/main.c b/src/main.c index 7882f63..5f7b4a9 100644 --- a/src/main.c +++ b/src/main.c @@ -42,10 +42,15 @@ NOSTanDardIO #include "includes.h" #include "menu.h" +#include "functions.h" #include "version.h" +BASEDEF(Intuition); +BASEDEF(Utility); +BASEDEF(GadTools); BASEDEF(Icon); BASEDEF(Workbench); +BASEDEF(Cx); BASEDEF(Window); BASEDEF(Layout); BASEDEF(CheckBox); @@ -95,7 +100,9 @@ void createAdfWin(void); void setDisable(struct Gadget* gad, BOOL value); void createADFList(void); void buttonsDisable(BOOL b); -void iconify(void); +void iconify(BOOL addIcon); +void uniconify(void); +void getTooltypes(UBYTE **tooltypes); #define PREFFILEPATH "SYS:Prefs/Env-Archive/DAControlGUI.prefs" void SavePrefs(void); @@ -133,10 +140,20 @@ int selectedIndex; WORD count; struct List adfList; +enum { + DACG_Eject = 1, + DACG_Show +}; + char appPath[PATH_MAX+NAME_MAX]; char curPath[PATH_MAX]; char manualPath[PATH_MAX+NAME_MAX]; +BOOL CXpopup = TRUE; +LONG CXpri = 0; +BOOL EjectMenu = TRUE; + +struct MsgPort* AppMenuMP = NULL; struct MsgPort* AppPort = NULL; struct DiskObject* dobj = NULL; struct AppIcon* appicon = NULL; @@ -145,10 +162,13 @@ struct AppMenuItem* appmenuitem = NULL; int selectedDeviceNo; -int main(void) +int main(int argc, char **argv) { int ret = 0; - + UBYTE **tooltypes; + char i; + int olddir; + if(!fileExist("SYS:C/DAControl")) // do you have os 3.2? { AppTerminate(); @@ -174,6 +194,14 @@ int main(void) OPENLIB(Dos, "dos.library"); OPENLIB(Icon, "icon.library"); OPENLIB(Workbench, "workbench.library"); + OPENLIB(GadTools, "gadtools.library"); + OPENLIB(Intuition, "intuition.library"); + OPENLIB(Utility, "utility.library"); + OPENLIB(Cx, "commodities.library"); + + tooltypes = ArgArrayInit(argc, argv); + getTooltypes(tooltypes); + ArgArrayDone(); ret = appMain(); @@ -181,6 +209,26 @@ int main(void) return ret; } +void getTooltypes(UBYTE **tooltypes) +{ + char *s; + + s = ArgString(tooltypes, "CX_POPUP", "YES"); + + if(MatchToolValue(s, "NO")) { + CXpopup = FALSE; + } + + CXpri = ArgInt(tooltypes, "CX_PRIORITY", 0); + + if(FindToolType(tooltypes, "NOEJECTMENU")) { + EjectMenu = FALSE; + } + + +} + + int makeMenu(APTR MenuVisualInfo) { if (NULL == (dacMenu = CreateMenusA( dacMenuNewMenu, NULL))) return( 1L ); @@ -188,13 +236,119 @@ int makeMenu(APTR MenuVisualInfo) return( 0L ); } +void ejectADFMenu(struct AppMessage *EjectADFMsg) +{ + ULONG i = 0, j = 0; + char VolName[104]; + int index = -1; + + /* Make sure our list is up-to-date before searching it */ + createADFList(); + + for(i = 0; i < EjectADFMsg->am_NumArgs; i++) { + if(EjectADFMsg->am_ArgList[i].wa_Name[0] == 0) { + NameFromLock(EjectADFMsg->am_ArgList[i].wa_Lock, &VolName, 104); + VolName[strlen(VolName)-1] = 0; + for(j = 0; j < MAX_LISTED_ADF; j++) { + if(strcmp(col2[j], VolName) == 0) { + index = j; + break; + } + } + if(index>=0) Eject(col1[index]); + } + } + + createADFList(); +} + +void removeEjectADFMenu(struct AppMenuItem *ejectADFItem) +{ + struct AppMessage *appmsg = NULL; + + if(EjectMenu == FALSE) return; + + RemoveAppMenuItem(ejectADFItem); + + while(appmsg = (struct AppMessage *)GetMsg(AppMenuMP)) { + ReplyMsg((struct Message *)appmsg); + } + DeleteMsgPort(AppMenuMP); +} + +struct AppMenuItem *addEjectADFMenu(void) +{ + struct AppMenuItem *appmenuitem = NULL; + + if(EjectMenu == FALSE) return; + + if(AppMenuMP = CreateMsgPort()) { + appmenuitem = AddAppMenuItemA(DACG_Eject, 0, "Eject ADF", AppMenuMP, NULL); + if(appmenuitem == NULL) { + DeleteMsgPort(AppMenuMP); + AppMenuMP = NULL; + } + } + + return appmenuitem; +} + +unregisterCommodity(CxObj *CXBroker, struct MsgPort *CXMP) +{ + CxMsg *msg; + + DeleteCxObj(CXBroker); + while(msg = (CxMsg *)GetMsg(CXMP)) + ReplyMsg((struct Message *)msg); + + DeletePort(CXMP); +} + +struct MsgPort *registerCommodity(CxObj **CXBroker) +{ + struct MsgPort *CXMP = NULL; + struct NewBroker newbroker; + CxObj *broker = NULL; + + if(CXMP = CreateMsgPort()) { + newbroker.nb_Version = NB_VERSION; + newbroker.nb_Name = APPNAME; + newbroker.nb_Title = APPNAME" "MAJOR"."MINOR"."BUILD; + newbroker.nb_Descr = "GUI for DAControl on AmigaOS 3.2"; + newbroker.nb_Unique = NBU_UNIQUE | NBU_NOTIFY; + newbroker.nb_Flags = COF_SHOW_HIDE; + newbroker.nb_Pri = CXpri; + newbroker.nb_Port = CXMP; + newbroker.nb_ReservedChannel = 0; + + if(broker = CxBroker(&newbroker, NULL)) { + ActivateCxObj(broker, 1L); + *CXBroker = broker; + } else { + DeleteMsgPort(CXMP); + return NULL; + } + } + + return CXMP; +} + int appMain() { ULONG result; UWORD code; + ULONG wait = 0; + struct MsgPort *CXMP = NULL; + ULONG CXSignal = 0; + CxObj *CXBroker = NULL; + ULONG CXmsgid, CXmsgtype; + CxMsg *CXmsg; + struct AppMenuItem *EjectADFItem = NULL; + ULONG AppMenuSignal = 0; + struct AppMessage *AppMenuMsg; ScreenPtr = LockPubScreen(NULL); - VisualInfoPtr = GetVisualInfo(ScreenPtr, NULL); + VisualInfoPtr = GetVisualInfoA(ScreenPtr, NULL); //InitHook(&HookStruct, HookFunc, NULL); @@ -211,7 +365,7 @@ int appMain() dobj=GetDiskObject(appPath); if(dobj!=0) { - dobj->do_Type=NULL; + dobj->do_Type=0; } if (!(WindowObjectPtr = NewObject @@ -316,92 +470,151 @@ int appMain() done=TRUE; } - UnlockPubScreen(ScreenPtr); + UnlockPubScreen(NULL, ScreenPtr); ScreenPtr = NULL; + makeMenu(VisualInfoPtr); + + CXMP = registerCommodity(&CXBroker); + if(CXMP) { + CXSignal = (1 << CXMP->mp_SigBit); + } else { + CXpopup = FALSE; + done = TRUE; + } - if (!(WindowPtr = (struct Window *) DoMethod(WindowObjectPtr, WM_OPEN, NULL))) - { - done=TRUE; + if(CXpopup) { + if (!(WindowPtr = (struct Window *) DoMethod(WindowObjectPtr, WM_OPEN, NULL))) + { + done=TRUE; + } + GetAttr(WINDOW_SigMask, WindowObjectPtr, &signal); + SetMenuStrip(WindowPtr, dacMenu); } - - makeMenu(VisualInfoPtr); - SetMenuStrip(WindowPtr, dacMenu); + createADFList(); - - GetAttr(WINDOW_SigMask, WindowObjectPtr, &signal); + EjectADFItem = addEjectADFMenu(); + AppMenuSignal = (1 << AppMenuMP->mp_SigBit); while(!done) { - Wait(signal | (1 << WindowPtr->UserPort->mp_SigBit)); - - while ((result = DoMethod(WindowObjectPtr, WM_HANDLEINPUT, &code)) != WMHI_LASTMSG) - { switch (result & WMHI_CLASSMASK) - { - case WMHI_CLOSEWINDOW: - done = TRUE; - break; + wait = Wait(signal | (1 << WindowPtr->UserPort->mp_SigBit) | AppMenuSignal | CXSignal); + + if(wait & CXSignal) { + while(CXmsg = (CxMsg *)GetMsg(CXMP)) { + CXmsgid = CxMsgID(CXmsg); + CXmsgtype = CxMsgType(CXmsg); + ReplyMsg((struct Message *)CXmsg); + + switch(CXmsgtype) { + case CXM_COMMAND: + switch(CXmsgid) { + case CXCMD_KILL: + done = TRUE; + break; + case CXCMD_APPEAR: + case CXCMD_UNIQUE: + uniconify(); + break; + case CXCMD_DISAPPEAR: + iconify(FALSE); + break; + + /* Nothing to disable yet, here for later use */ + case CXCMD_ENABLE: + case CXCMD_DISABLE: + default: + break; - case WMHI_GADGETUP: - switch(result & WMHI_GADGETMASK) - { + } + break; + case CXM_IEVENT: + /* TODO: popup hotkey */ + default: + break; + } + } + } else if(wait & AppMenuSignal) { + while(AppMenuMsg = (struct AppMessage *)GetMsg(AppMenuMP)) { + switch(AppMenuMsg->am_ID) { + case DACG_Eject: + ejectADFMenu(AppMenuMsg); + break; + case DACG_Show: + uniconify(); + break; + } + ReplyMsg((struct Message *)AppMenuMsg); + } + } else { + while ((result = DoMethod(WindowObjectPtr, WM_HANDLEINPUT, &code)) != WMHI_LASTMSG) + { switch (result & WMHI_CLASSMASK) + { + case WMHI_CLOSEWINDOW: + done = TRUE; + break; + + case WMHI_GADGETUP: + switch(result & WMHI_GADGETMASK) + { - case IDLOADCHANGE: - loadChangeAdfWin(); - break; + case IDLOADCHANGE: + loadChangeAdfWin(); + break; - case IDCREATE: - createAdfWin(); - break; + case IDCREATE: + createAdfWin(); + break; - case IDEJECT: - clickEject(); - break; + case IDEJECT: + clickEject(); + break; - case IDEJECTALL: - clickEjectAll(); - break; - - case IDREFRESH: - createADFList(); - break; - - case IDLISTBROWSER: - selectedIndex = code; - break; - - default: - break; - } - break; + case IDEJECTALL: + clickEjectAll(); + break; + + case IDREFRESH: + createADFList(); + break; + + case IDLISTBROWSER: + selectedIndex = code; + break; + + default: + break; + } + break; - case WMHI_ICONIFY: /* iconify / uniconify */ - iconify(); - break; + case WMHI_ICONIFY: /* iconify / uniconify */ + iconify(TRUE); + break; - case WMHI_MENUPICK: - ProcessMenuIDCMPdacMenu(code); - break; + case WMHI_MENUPICK: + ProcessMenuIDCMPdacMenu(code); + break; - case WMHI_RAWKEY: - switch(code) - { - case 0x45: // press ESC to quit - done=TRUE; - break; + case WMHI_RAWKEY: + switch(code) + { + case 0x45: // press ESC to quit + done=TRUE; + break; - default: + default: + break; + } break; - } - break; - default: - break; + default: + break; + } } - } + } } - + appTop = WindowPtr->TopEdge; appLeft = WindowPtr->LeftEdge; appWidth = WindowPtr->Width; @@ -411,9 +624,15 @@ int appMain() freeList(&adfList); ClearMenuStrip(WindowPtr); FreeVisualInfo(VisualInfoPtr); - + + if(appicon) RemoveAppIcon(appicon); + if(appmenuitem) RemoveAppMenuItem(appmenuitem); + + unregisterCommodity(CXBroker, CXMP); + removeEjectADFMenu(EjectADFItem); + // delete log file - Execute("Delete RAM:dacgui.log >NIL:", NULL, NULL); + Execute("Delete T:dacgui.log >NIL:", 0, 0); return 0; } @@ -467,7 +686,7 @@ void CloseLibs(void) { if (ScreenPtr) { - UnlockPubScreen(NULL); + UnlockPubScreen(NULL, ScreenPtr); ScreenPtr = NULL; } @@ -481,6 +700,10 @@ void CloseLibs(void) if (AppPort) DeleteMsgPort(AppPort); + CLOSELIB(Intuition); + CLOSELIB(Utility); + CLOSELIB(GadTools); + CLOSELIB(Cx); CLOSELIB(Workbench); CLOSELIB(Icon); CLOSELIB(Layout); @@ -514,7 +737,7 @@ void ProcessMenuIDCMPdacMenu(UWORD MenuNumber) About(); break; case DAControlGUIMenuIconify : - iconify(); + iconify(TRUE); break; case DAControlGUIMenuQuit : done=TRUE; @@ -553,7 +776,7 @@ void ProcessMenuIDCMPdacMenu(UWORD MenuNumber) break; case HelpMenuManual : - Execute(manualPath, NULL, NULL); + Execute(manualPath, 0, 0); break; } break; @@ -656,13 +879,13 @@ void createADFList(void) //int x; BPTR fp; BOOL ejectDisable = FALSE; - RunDAControl("INFO SHOWVOLUMES >RAM:dacgui.log"); - fp = Open("RAM:dacgui.log", MODE_OLDFILE); + RunDAControl("INFO SHOWVOLUMES >T:dacgui.log"); + fp = Open("T:dacgui.log", MODE_OLDFILE); count=0; if(fp) { - UBYTE buffer[BUFFERSIZE]; + char *buffer = AllocVec(BUFFERSIZE, MEMF_CLEAR); while(FGets(fp, buffer, BUFFERSIZE)) { if((count>0)&&(strlen(buffer)>0)) @@ -672,7 +895,7 @@ void createADFList(void) col2[count-1]= fulltrim(substring(buffer, 18, 32)); // volume name col4[count-1]= fulltrim(substring(buffer, 79, 11)); // access col5[count-1]= fulltrim(substring(buffer, 91, strlen(buffer)-90)); // file - free(buffer); + FreeVec(buffer); } count++; } @@ -1249,16 +1472,14 @@ void SavePrefs(void) } } -void iconify(void) +void uniconify(void) { - AppPort = CreateMsgPort(); - appicon=AddAppIconA(0L, 0L, "DAControlGUI", AppPort, NULL, dobj, NULL); - appmenuitem=AddAppMenuItemA(0L, 0L, "DAControlGUI", AppPort, NULL); - RA_CloseWindow(WindowObjectPtr); - WindowPtr = NULL; - WaitPort(AppPort); - RemoveAppIcon(appicon); - RemoveAppMenuItem(appmenuitem); + if(appicon) RemoveAppIcon(appicon); + if(appmenuitem) RemoveAppMenuItem(appmenuitem); + + appicon = NULL; + appmenuitem = NULL; + WindowPtr = (struct Window *) RA_OpenWindow(WindowObjectPtr); if (WindowPtr) @@ -1270,4 +1491,14 @@ void iconify(void) { done = TRUE; } -} \ No newline at end of file +} + +void iconify(BOOL addIcon) +{ + if(addIcon) { + appicon=AddAppIconA(DACG_Show, 0L, "DAControlGUI", AppMenuMP, NULL, dobj, NULL); + appmenuitem=AddAppMenuItemA(DACG_Show, 0L, "DAControlGUI", AppMenuMP, NULL); + } + RA_CloseWindow(WindowObjectPtr); + WindowPtr = NULL; +} diff --git a/src/menu.h b/src/menu.h index 4855fef..7779453 100644 --- a/src/menu.h +++ b/src/menu.h @@ -1,54 +1,54 @@ -#ifndef MENU_H -#define MENU_H - -//------------------------------- -#define DAControlGUIMenu 0 -#define DAControlGUIMenuAbout 0 -#define DAControlGUIMenuBar1 1 -#define DAControlGUIMenuIconify 2 -#define DAControlGUIMenuBar2 3 -#define DAControlGUIMenuQuit 4 -//------------------------------- -#define Controls 1 -#define ControlsLoadChange 0 -#define ControlsCreate 1 -#define ControlsBar2 2 -#define ControlsEject 3 -#define ControlsEjectAll 4 -#define ControlsBar3 5 -#define ControlsRefresh 6 -//------------------------------- -#define HelpMenu 2 -#define HelpMenuManual 0 - -struct NewMenu dacMenuNewMenu[] = -{ - NM_TITLE, (STRPTR)"DAControlGUI" , NULL , 0, NULL, (APTR)~0, - NM_ITEM , (STRPTR)"About" , NULL , 0, 0L, (APTR)~0, - NM_ITEM , NM_BARLABEL , NULL , 0, 0L, (APTR)~0, - NM_ITEM , (STRPTR)"Iconify" , "I" , 0, 0L, (APTR)~0, - NM_ITEM , NM_BARLABEL , NULL , 0, 0L, (APTR)~0, - NM_ITEM , (STRPTR)"Quit" , "Q" , 0, 0L, (APTR)~0, - - NM_TITLE, (STRPTR)"Controls" , NULL , 0, NULL, (APTR)~0, - NM_ITEM , (STRPTR)"Load / Change ADF" , "L" , 0, 0L, (APTR)~0, - NM_ITEM , (STRPTR)"Create ADF" , "C" , 0, 0L, (APTR)~0, - NM_ITEM , NM_BARLABEL , NULL , 0, 0L, (APTR)~0, - NM_ITEM , (STRPTR)"Eject ADF" , "E" , 0, 0L, (APTR)~0, - NM_ITEM , (STRPTR)"Eject All" , "A" , 0, 0L, (APTR)~0, - NM_ITEM , NM_BARLABEL , NULL , 0, 0L, (APTR)~0, - NM_ITEM , (STRPTR)"Refresh" , "R" , 0, 0L, (APTR)~0, - - NM_TITLE, (STRPTR)"Help" , NULL , 0, NULL, (APTR)~0, - NM_ITEM , (STRPTR)"Manual" , "M" , 0, 0L, (APTR)~0, - - NM_END , NULL , NULL , 0, 0L, (APTR)~0 -}; - -ULONG dacMenuTags[] = -{ - (GT_TagBase+67), TRUE, - (TAG_DONE) -}; - -#endif \ No newline at end of file +#ifndef MENU_H +#define MENU_H + +//------------------------------- +#define DAControlGUIMenu 0 +#define DAControlGUIMenuAbout 0 +#define DAControlGUIMenuBar1 1 +#define DAControlGUIMenuIconify 2 +#define DAControlGUIMenuBar2 3 +#define DAControlGUIMenuQuit 4 +//------------------------------- +#define Controls 1 +#define ControlsLoadChange 0 +#define ControlsCreate 1 +#define ControlsBar2 2 +#define ControlsEject 3 +#define ControlsEjectAll 4 +#define ControlsBar3 5 +#define ControlsRefresh 6 +//------------------------------- +#define HelpMenu 2 +#define HelpMenuManual 0 + +struct NewMenu dacMenuNewMenu[] = +{ + NM_TITLE, (STRPTR)"DAControlGUI" , NULL , 0, 0L, (APTR)~0, + NM_ITEM , (STRPTR)"About..." , NULL , 0, 0L, (APTR)~0, + NM_ITEM , NM_BARLABEL , NULL , 0, 0L, (APTR)~0, + NM_ITEM , (STRPTR)"Iconify" , "I" , 0, 0L, (APTR)~0, + NM_ITEM , NM_BARLABEL , NULL , 0, 0L, (APTR)~0, + NM_ITEM , (STRPTR)"Quit" , "Q" , 0, 0L, (APTR)~0, + + NM_TITLE, (STRPTR)"Controls" , NULL , 0, 0L, (APTR)~0, + NM_ITEM , (STRPTR)"Load / Change ADF..." , "L" , 0, 0L, (APTR)~0, + NM_ITEM , (STRPTR)"Create ADF..." , "C" , 0, 0L, (APTR)~0, + NM_ITEM , NM_BARLABEL , NULL , 0, 0L, (APTR)~0, + NM_ITEM , (STRPTR)"Eject ADF" , "E" , 0, 0L, (APTR)~0, + NM_ITEM , (STRPTR)"Eject All" , "A" , 0, 0L, (APTR)~0, + NM_ITEM , NM_BARLABEL , NULL , 0, 0L, (APTR)~0, + NM_ITEM , (STRPTR)"Refresh" , "R" , 0, 0L, (APTR)~0, + + NM_TITLE, (STRPTR)"Help" , NULL , 0, 0L, (APTR)~0, + NM_ITEM , (STRPTR)"Manual..." , "M" , 0, 0L, (APTR)~0, + + NM_END , NULL , NULL , 0, 0L, (APTR)~0 +}; + +ULONG dacMenuTags[] = +{ + (GT_TagBase+67), TRUE, + (TAG_DONE) +}; + +#endif