home *** CD-ROM | disk | FTP | other *** search
- /*
-
- Directory Opus 4
- Original GPL release version 4.12
- Copyright 1993-2000 Jonathan Potter
-
- 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.
-
- All users of Directory Opus 4 (including versions distributed
- under the GPL) are entitled to upgrade to the latest version of
- Directory Opus version 5 at a reduced price. Please see
- http://www.gpsoft.com.au for more information.
-
- The release of Directory Opus 4 under the GPL in NO WAY affects
- the existing commercial status of Directory Opus 5.
-
- */
-
- #include <fctype.h>
- #include <string.h>
- #include <stdlib.h>
- #include <stdarg.h>
- #include <stddef.h>
- #include <exec/types.h>
- #include <exec/memory.h>
- #include <exec/execbase.h>
- #include <dos/dos.h>
- #include <dos/dosextens.h>
- #include <dos/exall.h>
- #include <intuition/intuitionbase.h>
- #include <intuition/sghooks.h>
- #include <graphics/gfxbase.h>
- #include <graphics/gfxmacros.h>
- #include <workbench/workbench.h>
- #include <workbench/startup.h>
- #include <proto/all.h>
-
- #include "dopusbase.h"
- #include "stringdata.h"
-
- #define NUM_MODULES 4
-
- #define OSVER_34 0
- #define OSVER_37 1
- #define OSVER_38 2
- #define OSVER_39 3
- #define OSVER_40 4
-
- #define GAD_BASE 1000
- #define STRING_BASE 10000
- #define REQ_BASE 11000
-
- #define CONFIG_STRUCTURE_SIZE 9200
-
- #define OLD_CONFIG_VERSION 9999
- #define CONFIG_VERSION 10000
- #define CONFIG_MAGIC 0xFACE
-
- enum {
- FONT_GENERAL,
- FONT_DIRS,
- FONT_TEXT,
- FONT_GADGETS,
- FONT_MENUS,
- FONT_STATUS,
- FONT_NAMES,
- FONT_CLOCK,
- FONT_REQUEST,
- FONT_STRING,
- FONT_ICONIFY,
- FONT_SCREEN,
-
- FONT_COUNT};
-
- #define FFLAG_8ONLY 1
- #define FFLAG_NOPROP 2
-
- #define NUMFLAGS 16
- #define MAXFUNCS 32
- #define HIDDENLINES 6
-
- #define FB_OUTPUTWIN 0
- #define FB_OUTPUTFILE 1
- #define FB_WB2F 2
- #define FB_DOPUS2F 3
- #define FB_RUNASYNC 4
- #define FB_CDSOURCE 5
- #define FB_CDDEST 6
- #define FB_DOALLFILES 7
- #define FB_RECURSEDIR 8
- #define FB_RELOADFILE 9
- #define FB_AUTOICONIFY 10
- #define FB_NOQUOTE 11
- #define FB_RESCANSOURCE 12
- #define FB_RESCANDEST 13
- #define FB_SHELLSTARTUP 14
- #define FB_DOPUSSTARTUP 15
-
- #define FF_OUTPUTWIN (1<<FB_OUTPUTWIN)
- #define FF_OUTPUTFILE (1<<FB_OUTPUTFILE)
- #define FF_WB2F (1<<FB_WB2F)
- #define FF_DOPUS2F (1<<FB_DOPUS2F)
- #define FF_RUNASYNC (1<<FB_RUNASYNC)
- #define FF_CDSOURCE (1<<FB_CDSOURCE)
- #define FF_CDDEST (1<<FB_CDDEST)
- #define FF_DOALLFILES (1<<FB_DOALLFILES)
- #define FF_RECURSEDIR (1<<FB_RECURSEDIR)
- #define FF_RELOADFILE (1<<FB_RELOADFILE)
- #define FF_AUTOICONIFY (1<<FB_AUTOICONIFY)
- #define FF_NOQUOTE (1<<FB_NOQUOTE)
- #define FF_RESCANSOURCE (1<<FB_RESCANSOURCE)
- #define FF_RESCANDEST (1<<FB_RESCANDEST)
- #define FF_SHELLSTARTUP (1<<FB_SHELLSTARTUP)
- #define FF_DOPUSSTARTUP (1<<FB_DOPUSSTARTUP)
-
- #define SFB_AUTOICONIFY 0
- #define SFB_CDDEST 1
- #define SFB_CDSOURCE 2
- #define SFB_DOPUS2F 3
- #define SFB_DOALLFILES 4
- #define SFB_DOPUSSTARTUP 5
- #define SFB_SHELLSTARTUP 6
- #define SFB_NOQUOTE 7
- #define SFB_OUTPUTFILE 8
- #define SFB_OUTPUTWIN 9
- #define SFB_RECURSEDIR 10
- #define SFB_RELOADFILE 11
- #define SFB_RESCANDEST 12
- #define SFB_RESCANSOURCE 13
- #define SFB_RUNASYNC 14
- #define SFB_WB2F 15
-
- #define FT_INTERNAL 0
- #define FT_EXECUTABLE 1
- #define FT_WORKBENCH 2
- #define FT_BATCH 3
- #define FT_AREXX 4
-
- #define FT_REQUESTER 5
- #define FT_CHDIR 99
-
- #define FC_INTERNAL '*'
- #define FC_WORKBENCH '%'
- #define FC_BATCH '$'
- #define FC_AREXX '&'
- #define FC_REQUESTER '@'
- #define FC_CHDIR '!'
-
- #define MENUCOUNT 100
- #define GADCOUNT 84
- #define DRIVECOUNT 32
- #define NUMFONTS 16
- #define USEDRIVECOUNT 30
-
- #define FTYC_MATCH 1
- #define FTYC_MATCHNAME 2
- #define FTYC_MATCHBITS 3
- #define FTYC_MATCHCOMMENT 4
- #define FTYC_MATCHSIZE 5
- #define FTYC_MATCHDATE 6
- #define FTYC_MOVETO 7
- #define FTYC_MOVE 8
- #define FTYC_SEARCHFOR 9
- #define FTYC_OR 253
- #define FTYC_AND 254
- #define FTYC_ENDSECTION 255
-
- #define FTYC_ENDLIMIT 252
- #define FTYC_COMMANDOK 10
- #define FTYC_CYCLEEND 12
-
- #define FILETYPE_FUNCNUM 16
-
- struct dopusfunction {
- char name[16];
- int which,stack;
- unsigned char key,qual;
- char type,pri,delay;
- char fpen,bpen;
- char pad;
- char *function;
- };
-
- /*
- struct newdopusfunction {
- char *name;
- char *image[2];
- int pad2;
- int which,stack;
- unsigned char key,qual;
- char type,pri,delay;
- char fpen,bpen;
- char pad;
- char *function;
- };
- */
-
- struct newdopusfunction {
- char *name;
- int pad2[3];
- int which,stack;
- unsigned char key,qual;
- char type,pri,delay;
- char fpen,bpen;
- char pad;
- char *function;
- };
-
- struct dopusfiletype {
- struct dopusfiletype *next;
- char type[32];
- char typeid[8];
- char actionstring[FILETYPE_FUNCNUM][40];
- int which[FILETYPE_FUNCNUM],stack[FILETYPE_FUNCNUM];
- char pri[FILETYPE_FUNCNUM],delay[FILETYPE_FUNCNUM];
- unsigned char *recognition;
- char *function[FILETYPE_FUNCNUM];
- char *iconpath;
- };
-
- struct fileclass {
- struct fileclass *last,*next;
- char type[32];
- char typeid[8];
- unsigned char *recognition;
- };
-
- struct dopusgadgetbanks {
- struct newdopusfunction gadgets[GADCOUNT];
- struct dopusgadgetbanks *next;
- };
-
- struct dopushotkey {
- struct dopushotkey *next;
- UWORD code,qualifier;
- char name[40];
- struct dopusfunction func;
- };
-
-
- struct Config {
- USHORT version;
- USHORT magic;
-
- char copyflags;
- char deleteflags;
- char errorflags;
- unsigned char generalflags;
- char iconflags;
- char existflags;
- char sepflags;
- char sortflags;
- char dynamicflags;
- char sortmethod[2];
-
- char hotkeyflags;
-
- char menutit[5][16];
- struct newdopusfunction menu[MENUCOUNT];
-
- struct dopusfunction drive[DRIVECOUNT];
-
- char outputcmd[80],output[80];
- int gadgetrows;
-
- char separatemethod[2];
-
- char language[30];
-
- char displaypos[2][16];
- char displaylength[2][16];
-
- char pubscreen_name[80];
-
- USHORT Palette[16];
- char gadgettopcol,gadgetbotcol;
- char statusfg,statusbg;
- char filesfg,filesbg,filesselfg,filesselbg;
- char dirsfg,dirsbg,dirsselfg,dirsselbg;
- char clockfg,clockbg;
- char requestfg,requestbg;
- char disknamefg,disknamebg,disknameselfg,disknameselbg;
- char slidercol,arrowfg,arrowbg,littlegadfg,littlegadbg;
-
- char pad3;
-
- char scrdepth;
- char screenflags;
- int screenmode;
- int scrw,scrh;
- char fontbuf[40];
- char arrowpos[3];
-
- char pad4;
-
- char startupscript[80];
- char dirflags;
- unsigned char bufcount;
-
- char pad5[2];
-
- char autodirs[2][30];
- char pad5a[80];
- UWORD hotkeycode,hotkeyqual;
-
- char toolicon[80],projecticon[80],drawericon[80],defaulttool[80];
- char priority;
- char showdelay,viewbits,fadetime,tabsize;
-
- char pad7[2];
-
- char hiddenbit;
- char showpat[40],hidepat[40];
- char showpatparsed[40],hidepatparsed[40];
- char icontype,scrclktype,showfree;
-
- char pad8;
-
- short iconx,icony;
- short wbwinx,wbwiny;
-
- char configreturnscript[80];
-
- char fontsizes[NUMFONTS];
- char fontbufs[NUMFONTS][40];
-
- char uniconscript[80];
- char sliderbgcol;
-
- char pad_foo;
-
- short scr_winx,scr_winy;
- short scr_winw,scr_winh;
-
- char morepadding[231];
-
- char old_displaypos[2][8];
- char dateformat,addiconflags;
- char stringfgcol,stringbgcol;
- char namelength[2];
- char sliderwidth,sliderheight;
- char formatflags;
- short iconbutx,iconbuty;
- char stringheight;
- char stringselfgcol,stringselbgcol;
- char generalscreenflags;
-
- struct Rectangle scrollborders[2];
-
- char old_displaylength[2][8];
-
- char shellstartup[30];
-
- char windowdelta;
-
- char pad9a[397];
-
- int loadexternal;
-
- ULONG new_palette[48];
-
- char arrowsize[3];
-
- char slider_pos;
-
- short config_x;
- short config_y;
-
- char pad10[1414];
- };
-
- struct dopusconfigmsg {
- struct Message msg;
- int command;
- char *buffer;
- };
-
- #define CONFIG_GET_CONFIG 1
- #define CONFIG_HERES_CONFIG 2
- #define CONFIG_ALL_DONE 3
- #define CONFIG_NEW_HOTKEY 4
- #define CONFIG_HOTKEYS_CHANGE 5
-
- struct configconfig {
- struct Config *config;
- struct dopusfiletype *firsttype;
- struct DOpusRemember *typekey;
- struct dopusgadgetbanks *firstbank;
- int changed;
- char configname[256];
- struct Window *Window;
- struct Screen *Screen;
- struct dopushotkey *firsthotkey;
- };
-
- extern struct ExtNewScreen configscr;
- extern struct NewWindow configwin,requestwin;
- extern struct ExecBase *SysBase;
- extern struct DOpusBase *DOpusBase;
- extern struct GfxBase *GfxBase;
- extern struct DosLibrary *DOSBase;
- extern struct IntuitionBase *IntuitionBase;
- extern struct Screen *Screen;
- extern struct Window *Window;
- extern struct ViewPort *vp;
- extern struct RastPort *rp;
- extern struct Process *myproc;
- extern struct IntuiMessage *IMsg;
- extern APTR wsave,realwsave;
- extern char *spacestring;
- extern char fontbuf[50];
- extern struct TextAttr sfont,bsfont;
- extern struct Config *config,*undoconfig;
- extern struct dopusfiletype *firsttype;
- extern struct dopushotkey *firsthotkey;
- extern struct dopusgadgetbanks *firstbank,*curbank;
- extern struct DOpusRemember *typekey,*fontkey;
- extern char configname[256],loadnamebuf[256];
- extern char filebuf[32],dirbuf[258];
- extern struct DOpusFileReq filereq;
- extern int version2;
- extern struct MsgPort *conport,*cmdport,*appport;
- /*
- extern struct MsgPort *clip_port;
- extern struct IOClipReq *clip_io;
- */
-
- struct ConfigStuff {
- struct Config *config;
- struct DOpusRemember *typekey;
- struct dopusfiletype *firsttype;
- struct dopusgadgetbanks *firstbank,*curbank;
- struct dopushotkey *firsthotkey;
- };
-
- extern struct ConfigStuff cstuff;
- extern struct DOpusRemember *mainkey,*gadgetkey,*tickkey,*screenkey,*clipkey,*buttonkey;
- extern struct Gadget *maingad,*tickgad,*gadgads,*menugads,*drivegads;
- extern int tickcount;
- extern struct dopusconfigmsg msg;
-
- extern struct TagItem taglist[2];
- extern UWORD drawinfo[];
- extern int lchanged,changed;
-
- extern struct Image
- *checkonimage,*checkoffimage,
- *buttononimage,*buttonoffimage,
- copy_checkonimage,copy_checkoffimage;
-
- #define CTYPE_MOVEREL -3
- #define CTYPE_MOVE -2
- #define CTYPE_SKIP -1
- #define CTYPE_TEXT 1
- #define CTYPE_GAD 2
- #define CTYPE_STR 3
- #define CTYPE_REQ 4
- #define CTYPE_RAD 5
- #define CTYPE_MRAD 6
-
- struct ConfigGadget {
- char type;
- char value;
- int nameentry;
- short x,y;
- short w,h;
- int bit;
- int mutualex;
- char *buffer;
- struct Gadget *gad;
- };
-
- #define CFG_MAINMENU 11
- #define CFG_GADGET 0
- #define CFG_DRIVE 1
- #define CFG_FILETYPE 2
- #define CFG_HOTKEYS 3
- #define CFG_MENU 4
- #define CFG_OPERATION 5
- #define CFG_SCREEN 6
- #define CFG_SYSTEM 7
- #define CFG_SAVE 8
- #define CFG_OKAY 9
- #define CFG_CANCEL 10
-
- #define OP_COPY 0
- #define OP_DATEFORMAT 1
- #define OP_DELETE 2
- #define OP_ERRORCHECK 3
- #define OP_GENERAL 4
- #define OP_ICONS 5
- #define OP_FORMAT 6
- #define OP_UPDATE 7
- #define OP_OKAY 8
- #define OP_CANCEL 9
-
- #define SYS_AMIGADOS 0
- #define SYS_CLOCK 1
- #define SYS_DIRECTORIES 2
- #define SYS_HOTKEYS 3
- #define SYS_ICONS 4
- #define SYS_MODULES 5
- #define SYS_SHOWPATTERN 6
- #define SYS_STARTUP 7
- #define SYS_VIEWPLAY 8
- #define SYS_OKAY 9
- #define SYS_CANCEL 10
-
- #define GAD_NEXTBANK 0
- #define GAD_NEWBANK 1
- #define GAD_COPYBANK 2
- #define GAD_SWAPBANK 3
- #define GAD_DELETEBANK 4
- #define GAD_COPYGADGET 5
- #define GAD_SWAPGADGET 6
- #define GAD_DELETEGADGET 7
- #define GAD_OKAY 8
- #define GAD_CANCEL 9
-
- #define MENU_COPYMENU 0
- #define MENU_SWAPMENU 1
- #define MENU_DELETEMENU 2
- #define MENU_SORTMENU 3
- #define MENU_INSERTITEM 4
- #define MENU_COPYITEM 5
- #define MENU_SWAPITEM 6
- #define MENU_DELETEITEM 7
- #define MENU_OKAY 8
- #define MENU_CANCEL 9
- #define MENU_MOVEUP 10
- #define MENU_MOVEDOWN 11
- #define MENU_SLIDER 12
-
- #define DRIVE_GETDRIVES 0
- #define DRIVE_COPYBANK 1
- #define DRIVE_SWAPBANK 2
- #define DRIVE_DELETEBANK 3
- #define DRIVE_SORTBANK 4
- #define DRIVE_COPYDRIVE 5
- #define DRIVE_SWAPDRIVE 6
- #define DRIVE_DELETEDRIVE 7
- #define DRIVE_OKAY 8
- #define DRIVE_CANCEL 9
- #define DRIVE_EDITNAME 10
- #define DRIVE_EDITSAMPLE 11
- #define DRIVE_EDITREQ 12
- #define DRIVE_EDITPATH 13
-
- #define FILETYPE_NEW 0
- #define FILETYPE_SWAP 1
- #define FILETYPE_DELETE 2
- #define FILETYPE_OKAY 3
- #define FILETYPE_CANCEL 4
-
- #define HOTKEYS_NEWHOTKEY 0
- #define HOTKEYS_DELETE 1
- #define HOTKEYS_DUPLICATE 2
- #define HOTKEYS_OKAY 3
- #define HOTKEYS_SWAP 4
- #define HOTKEYS_CANCEL 5
-
- #define EDIT_OKAY 0
- #define EDIT_CANCEL 1
- #define EDIT_EDITCLASS 2
- #define EDIT_NAME 3
- #define EDIT_SAMPLE 4
- #define EDIT_NEWENTRY 5
- #define EDIT_DUPLICATE 6
- #define EDIT_SWAP 7
- #define EDIT_DELETE 8
- #define EDIT_STACK 9
- #define EDIT_PRIORITY 10
- #define EDIT_DELAY 11
- #define EDIT_TYPE 12
- #define EDIT_FUNC 13
- #define EDIT_REQUESTER 14
- #define EDIT_PATH 15
- #define EDIT_ARGREQ 16
- #define EDIT_FILETYPEACTION 17
-
- #define CLASS_OKAY 0
- #define CLASS_CANCEL 1
- #define CLASS_TYPE 3
- #define CLASS_NEWENTRY 4
- #define CLASS_DUPLICATE 5
- #define CLASS_SWAP 6
- #define CLASS_DELETE 7
- #define CLASS_OPERATION 8
- #define CLASS_FUNC 9
- #define CLASS_FILEVIEWREQ 10
- #define CLASS_FILEVIEW 11
- #define CLASS_HEXDEC 12
- #define CLASS_VIEWSLIDER 13
- #define CLASS_VIEWUP 14
- #define CLASS_VIEWDOWN 15
- #define CLASS_TYPEID 16
-
- #define EDIT_FUNCTIONS 1
- #define EDIT_FLAGS 2
- #define EDIT_FUNCTIONTYPE 3
-
- #define SCREEN_ARROWS 0
- #define SCREEN_COLOURS 1
- #define SCREEN_FONTS 2
- #define SCREEN_GENERAL 3
- #define SCREEN_PALETTE 4
- #define SCREEN_SCREENMODE 5
- #define SCREEN_SLIDERS 6
- #define SCREEN_OKAY 7
- #define SCREEN_CANCEL 8
-
- #define PALETTE_SLIDER 100
- #define PALETTE_STRING 103
-
- #define COLOURS_SELECT 200
-
- #define SCREENMODE_WIDTH 300
- #define SCREENMODE_HEIGHT 301
- #define SCREENMODE_DEPTH 302
- #define SCREENMODE_DEFWIDTH 303
- #define SCREENMODE_DEFHEIGHT 304
- #define SCREENMODE_HALFHEIGHT 305
- #define SCREENMODE_SLIDER 306
-
- #define HOTKEY_SAMPLE 400
- #define HOTKEY_MMB 401
-
- #define FORMAT_MAXNUM 9
-
- #define FORMAT_WINDOW 500
- #define FORMAT_RESET 501
- #define FORMAT_CLEAR 502
- #define FORMAT_LENGTH 503
- #define FORMAT_SEPARATE 510
- #define FORMAT_REVERSESORT 511
-
- #define ICON_ICONREQ 600
- #define ICON_ICONPATH 601
- #define ICON_TOOLREQ 602
- #define ICON_TOOLPATH 603
-
- #define ARROWBASE 600
- #define ARROWCYCLE 610
-
- #define FONT_SIZE 700
-
- #define SCREEN_SLIDER_LEFTCYCLE 800
- #define SCREEN_SLIDER_RIGHTCYCLE 801
-
- #define COLBIT_STATUS 0
- #define COLBIT_SELDISKNAME 1
- #define COLBIT_DISKNAME 2
- #define COLBIT_SELDIRECTORY 3
- #define COLBIT_DIRECTORY 4
- #define COLBIT_SELFILE 5
- #define COLBIT_FILE 6
- #define COLBIT_SLIDERS 7
- #define COLBIT_ARROWS 8
- #define COLBIT_TINYGADS 9
- #define COLBIT_CLOCK 10
- #define COLBIT_REQUESTER 11
- #define COLBIT_3DBOXES 12
- #define COLBIT_STRINGS 13
- #define COLBIT_SELSTRINGS 14
-
- #define COLOURS_STATUS (1<<COLBIT_STATUS)
- #define COLOURS_SELDISKNAME (1<<COLBIT_SELDISKNAME)
- #define COLOURS_DISKNAME (1<<COLBIT_DISKNAME)
- #define COLOURS_SELDIRECTORY (1<<COLBIT_SELDIRECTORY)
- #define COLOURS_DIRECTORY (1<<COLBIT_DIRECTORY)
- #define COLOURS_SELFILE (1<<COLBIT_SELFILE)
- #define COLOURS_FILE (1<<COLBIT_FILE)
- #define COLOURS_SLIDERS (1<<COLBIT_SLIDERS)
- #define COLOURS_ARROWS (1<<COLBIT_ARROWS)
- #define COLOURS_TINYGADS (1<<COLBIT_TINYGADS)
- #define COLOURS_CLOCK (1<<COLBIT_CLOCK)
- #define COLOURS_REQUESTER (1<<COLBIT_REQUESTER)
- #define COLOURS_3DBOXES (1<<COLBIT_3DBOXES)
- #define COLOURS_STRINGS (1<<COLBIT_STRINGS)
- #define COLOURS_SELSTRINGS (1<<COLBIT_SELSTRINGS)
-
- #define COLOURS_ALL (1<<32)-1
-
- struct ColourSel {
- char item;
- short x1,y1,x2,y2;
- };
-
- extern struct ColourSel coloursel[];
-
- extern char
- *mainmenugads[14],
- *listviewgads[3],
- *listviewgads2[4],
- *operationgads[14],
- *systemgads[14],
- *gadgetgads[11],
- *functypelist[],
- ftype_funcmap[],
- *functypestr[],
- *editfuncgads[6],
- *editfuncgads2[16],
- *gadflaglist[17],
- *editclassgads[10],
- *menugadgets[11],
- *drivegadgets[11],
- *drivegadgets2[5],
- *screengadgets[14],
- *formatgadgets[10],
- *hotkeygadgets[3],
- *arrowgadtxt[4],
- *arrowtypetxt[3],
- *filetypeactiongadgets[11],
-
- *commandlist[95],
- *arglist[18],
- *classopslist[12],
-
- *formatnames[FORMAT_MAXNUM+1],
- *selectedformatnames[FORMAT_MAXNUM+1],
-
- *defdir[],
- *palettegadgets[],*coloursgadgets[],
- *screenmodegadgets[],
- *hotkeysgadgets[],
- *windownames[2],*errorcheckingtxt[],*separatenames[3];
-
- extern struct ConfigGadget
- *operationgadgets[8],*systemgadgets[9],scr_generalgadgets[];
-
-
- #define UNDO_MAIN 1
- #define UNDO_GADGET 2
- #define UNDO_MENU 4
- #define UNDO_FILETYPE 8
- #define UNDO_DRIVE 16
- #define UNDO_HOTKEYS 32
- #define UNDO_ALL (UNDO_MAIN|UNDO_GADGET|UNDO_MENU|UNDO_FILETYPE|UNDO_DRIVE|UNDO_HOTKEYS)
-
- struct ConfigUndo {
- struct Config *config;
- struct newdopusfunction *menu;
- struct dopusfunction *drive;
- struct dopusfiletype *firsttype;
- struct dopusgadgetbanks *firstbank;
- struct DOpusRemember *key;
- struct dopushotkey *firsthotkey;
- char menutit[5][16];
- };
-
- extern struct ConfigUndo *makeundo();
- extern char *getcopy(),*compilefunclist(),**makefiletypelist(),**makeclasslist();
- extern struct dopusgadgetbanks *lastbank();
-
- extern int fontplaceflags[],fontplacevals[];
- extern struct RMBGadget nextbankrmb,insertbankrmb,formatclearrmb,sampleclearrmb;
- extern struct DOpusListView
- editlists[3],cmdlist,screenmodeview,listlist,iconlistview,
- fontsizelistview,fontlistview,fontplacelist,editclasslist,hotkeyslist,
- helplist,filetypeactionlist,
- modulelist,languagelist;
- extern char *external_module_list[],*external_module_name[];
- extern int external_module_map[];
-
- extern struct Gadget
- editfuncgadgets[15],cmdcancelgad,menuslidergads[3],editdrivegadgets[4],
- palettegads[6],coloursgad,screenmodegads[7],editclassgadgets[14],
- listokaygad[3],formatgads[10],hotkeygad,hotkeymmbgad,arrowgadgets[8],
- fontsizegadget,helpgad,helpcancelgad,draggad,icongads[4],depthgads[2],
- screen_sliders_gadgets[];
-
- extern struct Image menusliderimage;
- extern struct PropInfo menusliderprop,paletteprop[3];
-
- extern char
- edit_namebuf[256],edit_stackbuf[7],edit_prioritybuf[5],edit_delaybuf[3],
- edit_funcbuf[256],edit_pathbuf[256],edit_actionbuf[40],
- palette_buf[3][4],screenwidth_buf[6],screenheight_buf[6],screendepth_buf[3],
- formatlen_buf[5][3],fontsize_buf[12],edit_typeidbuf[8];
-
- extern struct StringInfo namesinfo,funcsinfo;
-
- #ifdef __SASC_60
- extern __chip USHORT
- glass_data[2][18],uparrow_data[6],downarrow_data[6],
- pageflip_data1[5],pageflip_data2[3];
- #else
- extern USHORT
- __chip glass_data[2][18],
- __chip uparrow_data[6],
- __chip downarrow_data[6],
- __chip leftarrow_data[6],
- __chip rightarrow_data[6],
- __chip pageflip_data1[5],
- __chip pageflip_data2[3];
- #endif
-
- extern struct IntuiMessage *getintuimsg();
-
- extern struct newdopusfunction *selgad;
- extern struct Gadget *seligad;
-
- struct ScreenMode {
- struct ScreenMode *next;
- char name[80];
- UWORD minw,minh;
- UWORD maxw,maxh;
- UWORD defw,defh;
- UWORD maxdepth;
- ULONG mode;
- };
-
- #define MODE_WORKBENCHUSE 1
- #define MODE_WORKBENCHCLONE 2
- #define MODE_PUBLICSCREENUSE 3
- #define MODE_PUBLICSCREENCLONE 4
-
- extern char **screenmodelist;
- extern struct ScreenMode *firstmode,*screenmode;
- extern struct ScreenMode *showdisplaydesc(),*getscreenmode();
-
- #define SCRFLAGS_DEFWIDTH 1
- #define SCRFLAGS_DEFHEIGHT 2
- #define SCRFLAGS_HALFHEIGHT 4
-
- extern struct MenuItem
- projectitems[],edititems[],gadrowsitems[],classitems[],neatstuffitem;
- extern struct Menu projectmenu,editmenu,gadrowsmenu,classmenu,neatstuffmenu;
-
- extern int changed,curoperation,clipcount;
-
- struct Clip {
- struct Clip *next;
- char name[256];
- struct dopusfunction func;
- };
-
- extern struct Clip *firstclip;
-
- extern USHORT defpalettes[11][4],def_dopus_palette[16];
- extern struct DOpusListView palettelist,listformatlists[2];
- extern int rowtrans[5];
-
- extern struct Library *DiskfontBase;
- extern struct Library *WorkbenchBase;
- extern struct Library *IconBase;
- extern struct Library *PPBase;
- extern struct TextFont *tfont;
- extern char
- *fontdatabuf,**fontlist,*(**fontsizelist),
- **noproplist,*(**nopropsizelist),
- **only8list,*only8sizelist[];
-
- extern int gadflagvals[];
-
- extern struct fileclass *firstclass;
- extern int classopvals[];
- extern char classname[256];
- extern struct DOpusRemember *helpkey;
- extern char *helpbuffer;
- extern int helpsize;
- extern char currenthelpname[256];
-
- extern char **fileclasslist;
- extern char *fileclasstype[];
- extern char maxlength[5];
-
- extern struct StringExtend stringex;
-
- extern struct DiskObject dropboxobj;
- extern void *appobject;
- extern struct AppMessage *appmsg;
-
- #define MY_APPOBJECT 1
-
- extern unsigned char *fileview_buf;
- extern int fileview_lines,fileview_size,fileview_topline,fileview_type,fileview_oldtop;
- extern int fileview_offset,fileview_position;
- extern char *fileview_types[];
-
- extern char *icontypes[],*palettenames[14],*fontplacenames[FONT_COUNT+1];
-
- extern struct IntuiText
- newtext,opentext,savetext,saveastext,cuttext,copytext,
- pastetext,erasetext,newclasstext,editclasstext,deleteclasstext,
- clearclasstext,duplicateclasstext,clearcliptext,
- gadrowstext[5],paintmodetext;
-
- extern int network;
-
- extern char *ftype_funcs[];
-
- extern struct StringData stringdata;
-
- extern short func_list_items[];
-
- extern struct Border *gadget_dog_sel_border,*gadget_dog_unsel_border;
- extern struct Border *gadget_sel_border,*gadget_unsel_border;
-
- extern int x_off,y_off,x_bot,y_bot;
- extern char help_ok;
- extern int paint_state,paint_fg,paint_bg;
-
- extern int screen_depth;
-
- extern short
- editfuncgadgets_xy[15][2],
- editdrivegadgets_xy[4][2],
- menuslidergads_xy[3][2],
- palettegads_xy[6][2],
- coloursgad_xy[2],
- screenmodegads_xy[7][2],
- formatgads_xy[10][2],
- icongads_xy[4][2],
- hotkeymmbgad_xy[2],
- hotkeygad_xy[2],
- arrowgadgets_xy[8][2],
- fontsizegadget_xy[2],
- editclassgadgets_xy[14][2],
- screen_sliders_gadgets_xy[2][2];
-
- #define FTFUNC_AUTOFUNC1 0
- #define FTFUNC_AUTOFUNC2 1
- #define FTFUNC_DOUBLECLICK 2
- #define FTFUNC_CLICKMCLICK 3
- #define FTFUNC_ANSIREAD 4
- #define FTFUNC_AUTOFUNC3 5
- #define FTFUNC_HEXREAD 6
- #define FTFUNC_LOOPPLAY 7
- #define FTFUNC_PLAY 8
- #define FTFUNC_AUTOFUNC4 9
- #define FTFUNC_READ 10
- #define FTFUNC_SHOW 11
-
- #define FREQ_FILETYPE 10
- #define FREQ_FILECLASS 11
- #define FREQ_ARGREQ 12
- #define FREQ_PATHREQ 20
- #define FREQ_GENERIC 21
-
- struct ColourTable {
- ULONG red;
- ULONG green;
- ULONG blue;
- unsigned char pen;
- char alloc;
- };
-
- extern struct ColourTable screen_pens[16];
-
- extern short colour_box_xy[2][16][4],colour_box_num;
-
- extern struct ScreenMode *curmode;
- extern ULONG palette_backup[48];
- extern struct DOpusRemember *borderkey;
- extern short palettegad_xy[16][4];
- extern int bpg;
-
- extern char *left_right_cycle[3];
-
- #include "configstrings.h"
-
- #include "functions.h"
-