home *** CD-ROM | disk | FTP | other *** search
/ Enigma Amiga Life 113 / EnigmaAmiga113CD.iso / software / sviluppo / fm2000 / config.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-02-04  |  4.8 KB  |  217 lines

  1. /*
  2.      Filemaster - Multitasking directory utility.
  3.      Copyright (C) 2000  Toni Wilen
  4.      
  5.      This program is free software; you can redistribute it and/or
  6.      modify it under the terms of the GNU General Public License
  7.      as published by the Free Software Foundation; either version 2
  8.      of the License, or (at your option) any later version.
  9.      
  10.      This program is distributed in the hope that it will be useful,
  11.      but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13.      GNU General Public License for more details.
  14.      
  15.      You should have received a copy of the GNU General Public License
  16.      along with this program; if not, write to the Free Software
  17.      Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  18. */
  19.  
  20. #include "fmgui.h"
  21.  
  22. void commandanswer(struct GUIBase*);
  23. WORD allocconfig(struct CMenuConfig*,WORD);
  24. void *getconfig(struct CMenuConfig*);
  25. struct CMenuConfig *getconfignumber(WORD);
  26. WORD findbuild(struct CMenuConfig*);
  27. UBYTE *findbuildstring(struct CMenuConfig*);
  28.  
  29. #define FMCONFIGVERSION 21
  30.  
  31. #define USERCOMMANDS 60
  32. #define BUILDCOMMANDS 31
  33. #define TOTALCOMMANDS (USERCOMMANDS+BUILDCOMMANDS)
  34. #define FMPENS 12
  35.  
  36. struct CMenuConfig {
  37.     UBYTE    cmenucount;
  38.     UBYTE    position; // 0=invisible,1=gadget bar,2=corner,4=menubar
  39.     UBYTE    frontpen;
  40.     UBYTE    backpen;
  41.     UBYTE    priority;
  42.     UBYTE    shortcut[24];
  43.     UBYTE    label[10];
  44.     WORD    moreconfiglen;
  45.     void    *moreconfig;
  46. };
  47.  
  48. struct ExecuteFlags {
  49.     unsigned shellwindow:1;
  50.     unsigned cd:2;
  51.     unsigned rescan:2;
  52.     unsigned startfront:2;
  53.     unsigned endfront:2;
  54.     unsigned iconify:1;
  55.     BYTE timeout;
  56.     ULONG stack;
  57. };    
  58.  
  59. struct OwnCommand {
  60.     UBYTE    namematch[128];
  61.     UBYTE    matchbytes[128];
  62.     UBYTE    command[128];
  63.     struct    ExecuteFlags ef;
  64. };
  65.  
  66. struct Match {
  67.     UBYTE    patname[PATTERN];
  68.     UBYTE    patflags[32];
  69.     UBYTE    patcomm[80];
  70.     ULONG    patsize;
  71.     ULONG    patsize2;
  72.     ULONG    patdate;
  73.     ULONG    patdate2;
  74.         unsigned mcase:2;
  75.         unsigned mfiles:2;
  76.         unsigned mdirs:2;
  77.         unsigned msize:3;
  78.         unsigned mdate:3;
  79.         unsigned mflags:1;
  80.         unsigned mcomm:1;
  81.         unsigned msortby:3;
  82.         unsigned msortud:1;
  83.         unsigned mmix:1;
  84.         unsigned mdrawersfirst:1;
  85. };
  86.  
  87. struct DirListLayout {
  88.     UBYTE width;
  89.     unsigned type:4;
  90.     unsigned rightaligned:1;
  91.     unsigned rightlock:1;
  92. };
  93.  
  94. struct ScreenConfig {
  95.     UWORD    width;
  96.     UWORD    height;
  97.     ULONG    screenmode;
  98.     unsigned depth:4;
  99.     unsigned overscan:3;
  100.     unsigned autoscroll:1;
  101. };
  102.  
  103. struct FMConfig {
  104.     struct    ScreenConfig mainscreen;
  105.     struct    ScreenConfig textscreen;
  106.     WORD    windowtop;
  107.     WORD    windowleft;
  108.     WORD    windowheight;
  109.     WORD    windowwidth;
  110.     WORD    sleepwindowtop;
  111.     WORD    sleepwindowleft;
  112.     UBYTE    sliderh;
  113.     UBYTE    sliderw;
  114.     UBYTE    spaceh;
  115.     UBYTE    spacew;
  116.     UBYTE    whitepen;
  117.     UBYTE    blackpen;
  118.     UBYTE    devicepen;
  119.     UBYTE    dirpen;
  120.     UBYTE    filepen;
  121.     UBYTE    txtpen;
  122.     UBYTE    hilipen;
  123.     UBYTE    backpen;
  124.     UBYTE    backfillpen;
  125.     UBYTE    mainbackfillpen;
  126.     UBYTE    sourcepen;
  127.     UBYTE    destpen;
  128.     UBYTE    sliderpen;
  129.     UBYTE    stringpen;
  130.     BYTE    pri[3];
  131.     UBYTE    doubleclick;
  132.     UBYTE    rightmouse;
  133.     UBYTE    middlemouse;
  134.     UBYTE    screentype;    //0=custom,1=public custom,2=workbench,3=on public
  135.     ULONG    flags;
  136.     BYTE    mainpriority;
  137.     BYTE    subpriority;
  138.     LONG    dosbuffersize;    // HACKCHECK bits 31-24 = zero
  139.  
  140.     struct    DirListLayout dl[5];
  141.  
  142.     struct    TextAttr txtfontattr;
  143.     struct    TextAttr listfontattr;
  144.     struct    TextAttr txtshowfontattr;
  145.     struct    TextAttr reqfontattr;
  146.     struct    TextAttr smallfontattr;
  147.  
  148.     WORD    listinfo[COLS+1][ROWS+2];
  149.     UBYTE    cmenutype;
  150.     UBYTE    cmenucolumns;    //rows and columns!
  151.     UBYTE    cmenuposition;
  152.  
  153.     UBYTE    colors[COLORS*3];
  154.  
  155.     UBYTE    txtfontname[80];
  156.     UBYTE    listfontname[80];
  157.     UBYTE    txtshowfontname[80];
  158.     UBYTE    reqfontname[80];
  159.     UBYTE    smallfontname[80];
  160.     UBYTE    pubscreen[MAXPUBSCREENNAME+1];
  161.     UBYTE    hotkey[16];
  162.  
  163.     UBYTE    usepicturedt:1;
  164.     UBYTE    usesampledt:1;
  165.     UBYTE    useexecutedt:1;
  166.     UBYTE    useicondt:1;
  167.     UBYTE    usefontdt:1;
  168.     UBYTE    useascdt:1;
  169.     UBYTE    usemoddt:1;
  170.     UBYTE    usehexdt:1;
  171.  
  172.     struct    CMenuConfig cmenuconfig[TOTALCOMMANDS];
  173.  
  174.     };
  175.  
  176.  
  177. #define QUITCONFIG     1
  178. #define SLEEPCONFIG     2
  179. #define STODCONFIG     3
  180. #define CONFIGCONFIG     4
  181. #define EXCLUDECONFIG     5
  182. #define INCLUDECONFIG     6
  183. #define PARSECONFIG     7
  184.  
  185. #define    DRIVESCONFIG     8
  186. #define    PARENTCONFIG     9
  187. #define    INVERTCONFIG    10
  188. #define    CLEARCONFIG    11
  189. #define    OPERATECONFIG    12
  190. #define    COPYCONFIG    13
  191. #define    COPYASCONFIG    14
  192. #define    MOVECONFIG    15
  193. #define    DELETECONFIG    16
  194. #define    MAKEDIRCONFIG    17
  195. #define    SHOWASCCONFIG    18
  196. #define    SHOWHEXCONFIG    19
  197. #define    SHOWPICCONFIG    20
  198. #define    PLAYMODCONFIG    21
  199. #define    DISKINFOCONFIG    22
  200. #define    EXECUTECONFIG    23
  201. #define    DISKSIZECONFIG    24
  202. #define    MODINFOCONFIG    25
  203. #define    HEARCONFIG    26
  204. #define    FILEEDITCONFIG    27
  205. #define DISKEDITCONFIG    28
  206. #define    ABOUTCONFIG    29
  207. #define    REGISTERCONFIG    30
  208. #define EMPTYCONFIG    31
  209.  
  210. #define MSUBPROC    0x01
  211. #define MDOUBLED    0x02
  212. #define MWINDOWED    0x04
  213. #define MHSCROLL    0x08
  214. #define MVSCROLL    0x10
  215. #define MDOSREQ        0x20
  216. #define MLOCALE        0x40
  217.