home *** CD-ROM | disk | FTP | other *** search
- /*
- * WICONIFY A utility that allows you to iconify any Intuition window
- * on any screen, and to open WB windows on any screen.
- *
- * wMenu.c Definitions and static arrays of menu items.
- *
- * Copyright 1990 by Davide P. Cervone, all rights reserved.
- * You may use this code, provided this copyright notice is kept intact.
- */
-
- #define INTUITION_PREFERENCES_H /* don't need 'em */
- #include <intuition/intuition.h>
- #include "wMenu.h"
-
-
- /*
- * These macros do all the hard work of setting up the static menu
- * items.
- */
-
- #define CHECK(n,t,c,f,mx)\
- {\
- {NEXTMENU(n),MENU_LEFT,MENU_TOP+MENUH*(n+OFFSET),MENU_W,MENUH,\
- (ITEMTEXT|HIGHCOMP|CHECKIT|ITEMENABLED|COMMSEQ)+(f),mx,\
- (APTR)&MENU_NAME[n].IText,NULL,c,NULL,NULL},CHKTEXT(t)\
- }
-
- #define LABEL(n,t)\
- {\
- {NEXTMENU(n),MENU_LEFT,MENU_TOP+MENUH*n,MENU_W,MENUH,\
- (ITEMTEXT|HIGHNONE|ITEMENABLED),0,(APTR)&MENU_NAME[n].IText,\
- NULL,0,NULL,NULL},SUBTEXT(t)\
- }
-
- #define LABL2(n,t)\
- {\
- {NEXTMENU(n),MENU_LEFT,MENU_TOP+MENUH*(n-NS_DEPTH5+NS_DEPTH1),MENU_W,MENUH,\
- (ITEMTEXT|HIGHNONE|ITEMENABLED),0,(APTR)&MENU_NAME[n].IText,\
- NULL,0,NULL,NULL},SUBTEXT(t)\
- }
-
- #define DEPTH(n,t)\
- {\
- {NEXTMENU(n),MENU_LEFT+(n-NS_DEPTH1)*CHARW*3+6,MENU_TOP+MENUH*NS_DEPTH1,\
- CHARW*3,MENUH,(ITEMTEXT|HIGHCOMP|ITEMENABLED),0,\
- (APTR)&MENU_NAME[n].IText,NULL,0,NULL,NULL},DEPTEXT(t)\
- }
-
- #define SLINE(n,l)\
- {\
- {NEXTMENU(n),MENU_LEFT,MENU_TOP+MENUH*n,MENU_W,MENUH,\
- ITEMTEXT|HIGHNONE,~(1<<n),(APTR)&MENU_NAME[n].IText,NULL,0,NULL,NULL},\
- MENUTEXT(l)\
- }
-
-
- #define MITEM(n,t,c,f,s)\
- {\
- {NEXTMENU(n),MENU_L,MENUH*n,MENU_W,MENUH,\
- (ITEMTEXT|HIGHCOMP|COMMSEQ|ITEMENABLED)+(f),~(1<<n),\
- (APTR)&MENU_NAME[n].IText,NULL,c,(struct MenuItem *)s,NULL},\
- MENUTEXT(t)\
- }
-
- #define MLINE(n,l)\
- {\
- {NEXTMENU(n),MENU_L,MENUH*n,MENU_W,MENUH,ITEMTEXT|HIGHNONE,~(1<<n),\
- (APTR)&MENU_NAME[n].IText,NULL,0,NULL,NULL},MENUTEXT(l)\
- }
-
- static char Line[] = "--------------------";
- static struct TextAttr wFont = {"topaz.font",8,FS_NORMAL,0};
-
-
- /*
- * The menus are declared as arrays of menu items, prelinked and
- * initialized. The macros set up all the links, the names, the
- * command key equivalents, and the mutual excludes. The data needed
- * by the macros (MENU_NAME, etc) must be declared at the top of
- * each menu (and removed at the bottom to avoid macro redefinition warnings)
- */
-
- struct wMenuItem OpenWindowMenu[] =
- {
- #define MENU_NAME OpenWindowMenu
- #define MENU_NUM SCREEN_MENU
- #define MENU_W MENUW(MAX_OPEN_LEN)
- #define MENU_TOP (-2*MENUH)
- #define MENU_LEFT ((NEWSCREEN_LEN+4)*CHARW)
- #define OFFSET 0
- #define NEXTMENU(n) NEXT(n)
- LABEL(OW_ON, "On:"),
- CHECK(OW_ACTIVESCRN, "Active Screen", 'A', CHECKED, MX(OW_CURRENTWB)| MX(OW_REALWB)),
- CHECK(OW_CURRENTWB, "Current WB", 'W', 0, MX(OW_ACTIVESCRN)| MX(OW_REALWB)),
- CHECK(OW_REALWB, "Real WB", '=', 0, MX(OW_ACTIVESCRN)| MX(OW_CURRENTWB)),
- SLINE(OW_LINE,&Line[0]),
- #undef NEXTMENU
- #define NEXTMENU(n) NULL
- CHECK(OW_AUTORESIZE, "Size to Fit", 'S', CHECKED| MENUTOGGLE, 0)
-
- #undef MENU_NAME
- #undef MENU_NUM
- #undef MENU_W
- #undef MENU_TOP
- #undef MENU_LEFT
- #undef OFFSET
- #undef NEXTMENU
- };
-
- struct wMenuItem NewScreenMenu[] =
- {
- #define MENU_NAME NewScreenMenu
- #define MENU_NUM SCREEN_MENU
- #define MENU_W MENUW(MAX_NSCR_LEN)
- #define MENU_TOP (-MENUH)
- #define MENU_LEFT ((NEWSCREEN_LEN+4)*CHARW)
- #define OFFSET (-NS_DEPTH5+NS_DEPTH1)
- #define NEXTMENU(n) NEXT(n)
- LABEL(NS_DEPTH, "Depth:"),
- DEPTH(NS_DEPTH1, "1"),
- DEPTH(NS_DEPTH2, "2"),
- DEPTH(NS_DEPTH3, "3"),
- DEPTH(NS_DEPTH4, "4"),
- DEPTH(NS_DEPTH5, "5"),
- LABL2(NS_TYPE, "Type:"),
- CHECK(NS_HIRES, "HIRES", 'H', CHECKED, MX(NS_LORES)),
- CHECK(NS_LORES, "LORES", 'L', 0, MX(NS_HIRES)),
- CHECK(NS_INTERLACE, "Interlace", 'I', MENUTOGGLE,0),
- #undef NEXTMENU
- #define NEXTMENU(n) NULL
- CHECK(NS_HAM, "HAM", '+', MENUTOGGLE,0),
-
- #undef MENU_NAME
- #undef MENU_NUM
- #undef MENU_W
- #undef NEXTMENU
- };
-
- struct wMenuItem IconMenu[] =
- {
- #define MENU_NAME IconMenu
- #define MENU_NUM ICON_MENU
- #define MENU_W MENUW(MAX_ICON_LEN)
- #define MENU_L -CHARW
- #define NEXTMENU(n) NEXT(n)
- MITEM(IM_OPEN, "Open", 'O',DISABLED,NULL),
- MITEM(IM_CLOSE, "Close", 'C',DISABLED,NULL),
- MITEM(IM_LOCK, "Lock", '#',DISABLED,NULL),
- MITEM(IM_CLEANUP, "Clean Up", 'K',DISABLED,NULL),
- MLINE(IM_LINE1,&Line[6]),
- MITEM(IM_ORGANIZE, "Organize", 'R',DISABLED,NULL),
- MITEM(IM_OPENALL, "Open All", 'P',DISABLED,NULL),
- MLINE(IM_LINE2,&Line[6]),
- MITEM(IM_ABOUT, "About...", '?',0,NULL),
- #undef NEXTMENU
- #define NEXTMENU(n) NULL
- MITEM(IM_END, "End", 0,-COMMSEQ,NULL),
-
- #undef MENU_NAME
- #undef MENU_NUM
- #undef MENU_W
- #undef MENU_L
- #undef NEXTMENU
- };
-
- struct wMenuItem ScreenMenu[] =
- {
- #define MENU_NAME ScreenMenu
- #define MENU_NUM SCREEN_MENU
- #define MENU_W MENUW(MAX_SCRN_LEN)
- #define MENU_L -4*CHARW
- #define NEXTMENU(n) NEXT(n)
- MITEM(SM_TOFRONT, "To Front", '>',0,NULL),
- MITEM(SM_TOBACK, "To Back", '<',0,NULL),
- MITEM(SM_WBTOFRONT, "WB To Front", 'N',0,NULL),
- MLINE(SM_LINE1,&Line[2]),
- MITEM(SM_TOGGLE, "Toggle Title", 'T',0,NULL),
- MITEM(SM_ICONIFY, "Iconify", '*',0,NULL),
- MLINE(SM_LINE2,&Line[2]),
- MITEM(SM_NEWCLI, "New CLI", '.',0,NULL),
- MITEM(SM_MAKEWB, "Make WB", 'M',0,NULL),
- MITEM(SM_OPENWINDOW, "Open Windows", 0,-COMMSEQ,&OpenWindowMenu[0]),
- MITEM(SM_NEWSCREEN, "New Screen", 0,-COMMSEQ,&NewScreenMenu[0]),
- #undef NEXTMENU
- #define NEXTMENU(n) NULL
- MITEM(SM_CLOSESCREEN,"Close Screen", 0,-COMMSEQ,NULL),
-
- #undef MENU_NAME
- #undef MENU_NUM
- #undef MENU_W
- #undef NEXTMENU
- };
-
-
- #define MENU(i,t,n,l,s)\
- {&wMenu[i+1],l*CHARW+10,0,(n+1)*CHARW,MENUH,MENUENABLED,t,&s[0].Item,0,0,0,0}
- #define LAST(i,t,n,l,s)\
- {NULL,l*CHARW+10,0,(n+1)*CHARW,MENUH,MENUENABLED,t,&s[0].Item,0,0,0,0}
-
- struct Menu wMenu[] =
- {
- MENU(ICON_MENU, "Icon", 4, 0, IconMenu),
- LAST(SCREEN_MENU, "Screen", 6, 6, ScreenMenu),
- };
-