home *** CD-ROM | disk | FTP | other *** search
- /*
- Filemaster - Multitasking directory utility.
- Copyright (C) 2000 Toni Wilen
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2
- of the License, or (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
- #include "fmgui.h"
-
- void commandanswer(struct GUIBase*);
- WORD allocconfig(struct CMenuConfig*,WORD);
- void *getconfig(struct CMenuConfig*);
- struct CMenuConfig *getconfignumber(WORD);
- WORD findbuild(struct CMenuConfig*);
- UBYTE *findbuildstring(struct CMenuConfig*);
-
- #define FMCONFIGVERSION 21
-
- #define USERCOMMANDS 60
- #define BUILDCOMMANDS 31
- #define TOTALCOMMANDS (USERCOMMANDS+BUILDCOMMANDS)
- #define FMPENS 12
-
- struct CMenuConfig {
- UBYTE cmenucount;
- UBYTE position; // 0=invisible,1=gadget bar,2=corner,4=menubar
- UBYTE frontpen;
- UBYTE backpen;
- UBYTE priority;
- UBYTE shortcut[24];
- UBYTE label[10];
- WORD moreconfiglen;
- void *moreconfig;
- };
-
- struct ExecuteFlags {
- unsigned shellwindow:1;
- unsigned cd:2;
- unsigned rescan:2;
- unsigned startfront:2;
- unsigned endfront:2;
- unsigned iconify:1;
- BYTE timeout;
- ULONG stack;
- };
-
- struct OwnCommand {
- UBYTE namematch[128];
- UBYTE matchbytes[128];
- UBYTE command[128];
- struct ExecuteFlags ef;
- };
-
- struct Match {
- UBYTE patname[PATTERN];
- UBYTE patflags[32];
- UBYTE patcomm[80];
- ULONG patsize;
- ULONG patsize2;
- ULONG patdate;
- ULONG patdate2;
- unsigned mcase:2;
- unsigned mfiles:2;
- unsigned mdirs:2;
- unsigned msize:3;
- unsigned mdate:3;
- unsigned mflags:1;
- unsigned mcomm:1;
- unsigned msortby:3;
- unsigned msortud:1;
- unsigned mmix:1;
- unsigned mdrawersfirst:1;
- };
-
- struct DirListLayout {
- UBYTE width;
- unsigned type:4;
- unsigned rightaligned:1;
- unsigned rightlock:1;
- };
-
- struct ScreenConfig {
- UWORD width;
- UWORD height;
- ULONG screenmode;
- unsigned depth:4;
- unsigned overscan:3;
- unsigned autoscroll:1;
- };
-
- struct FMConfig {
- struct ScreenConfig mainscreen;
- struct ScreenConfig textscreen;
- WORD windowtop;
- WORD windowleft;
- WORD windowheight;
- WORD windowwidth;
- WORD sleepwindowtop;
- WORD sleepwindowleft;
- UBYTE sliderh;
- UBYTE sliderw;
- UBYTE spaceh;
- UBYTE spacew;
- UBYTE whitepen;
- UBYTE blackpen;
- UBYTE devicepen;
- UBYTE dirpen;
- UBYTE filepen;
- UBYTE txtpen;
- UBYTE hilipen;
- UBYTE backpen;
- UBYTE backfillpen;
- UBYTE mainbackfillpen;
- UBYTE sourcepen;
- UBYTE destpen;
- UBYTE sliderpen;
- UBYTE stringpen;
- BYTE pri[3];
- UBYTE doubleclick;
- UBYTE rightmouse;
- UBYTE middlemouse;
- UBYTE screentype; //0=custom,1=public custom,2=workbench,3=on public
- ULONG flags;
- BYTE mainpriority;
- BYTE subpriority;
- LONG dosbuffersize; // HACKCHECK bits 31-24 = zero
-
- struct DirListLayout dl[5];
-
- struct TextAttr txtfontattr;
- struct TextAttr listfontattr;
- struct TextAttr txtshowfontattr;
- struct TextAttr reqfontattr;
- struct TextAttr smallfontattr;
-
- WORD listinfo[COLS+1][ROWS+2];
- UBYTE cmenutype;
- UBYTE cmenucolumns; //rows and columns!
- UBYTE cmenuposition;
-
- UBYTE colors[COLORS*3];
-
- UBYTE txtfontname[80];
- UBYTE listfontname[80];
- UBYTE txtshowfontname[80];
- UBYTE reqfontname[80];
- UBYTE smallfontname[80];
- UBYTE pubscreen[MAXPUBSCREENNAME+1];
- UBYTE hotkey[16];
-
- UBYTE usepicturedt:1;
- UBYTE usesampledt:1;
- UBYTE useexecutedt:1;
- UBYTE useicondt:1;
- UBYTE usefontdt:1;
- UBYTE useascdt:1;
- UBYTE usemoddt:1;
- UBYTE usehexdt:1;
-
- struct CMenuConfig cmenuconfig[TOTALCOMMANDS];
-
- };
-
-
- #define QUITCONFIG 1
- #define SLEEPCONFIG 2
- #define STODCONFIG 3
- #define CONFIGCONFIG 4
- #define EXCLUDECONFIG 5
- #define INCLUDECONFIG 6
- #define PARSECONFIG 7
-
- #define DRIVESCONFIG 8
- #define PARENTCONFIG 9
- #define INVERTCONFIG 10
- #define CLEARCONFIG 11
- #define OPERATECONFIG 12
- #define COPYCONFIG 13
- #define COPYASCONFIG 14
- #define MOVECONFIG 15
- #define DELETECONFIG 16
- #define MAKEDIRCONFIG 17
- #define SHOWASCCONFIG 18
- #define SHOWHEXCONFIG 19
- #define SHOWPICCONFIG 20
- #define PLAYMODCONFIG 21
- #define DISKINFOCONFIG 22
- #define EXECUTECONFIG 23
- #define DISKSIZECONFIG 24
- #define MODINFOCONFIG 25
- #define HEARCONFIG 26
- #define FILEEDITCONFIG 27
- #define DISKEDITCONFIG 28
- #define ABOUTCONFIG 29
- #define REGISTERCONFIG 30
- #define EMPTYCONFIG 31
-
- #define MSUBPROC 0x01
- #define MDOUBLED 0x02
- #define MWINDOWED 0x04
- #define MHSCROLL 0x08
- #define MVSCROLL 0x10
- #define MDOSREQ 0x20
- #define MLOCALE 0x40
-