home *** CD-ROM | disk | FTP | other *** search
- /*
- Auto: smake ForceIcon
- */
-
-
- /* $Revision Header built automatically *************** (do not edit) ************
- **
- ** © Copyright by GuntherSoft
- **
- ** File : SnakeSYS:CPrgs/Utils/ForceIcon/ForceIcon.h
- ** Created on : Wednesday, 20.10.93 17:19:27
- ** Created by : Kai Iske
- ** Current revision : V1.4
- **
- **
- ** Purpose
- ** -------
- ** - ForceIcon Header file
- **
- ** Revision V1.4
- ** --------------
- ** created on Saturday, 19.02.94 01:27:31 by Kai Iske. LogMessage :
- ** -*- changed on Thursday, 24.03.94 16:43:23 by Kai Iske. LogMessage :
- ** - EditEntry window`s cycle gadgets (IconPos, UseIcon etc..)
- ** are volume type senstive now, ie Ignore,Use,Inherit will be
- ** available when Type is set to "Volume", while Ignore and
- ** Use are available when editing a device.
- ** (Suggested by : Christopher A. Wichura)
- ** -*- changed on Wednesday, 23.03.94 12:49:17 by Kai Iske. LogMessage :
- ** - Inheritance of device settings is individually controlled
- ** for every entry through a cycle gadget, so that you may
- ** tell which items to inherit and which to ignore, or use.
- ** (Requested by : Christopher A. Wichura)
- ** -*- changed on Tuesday, 22.03.94 23:19:46 by Kai Iske. LogMessage :
- ** - You may now force Window size/position and flags
- ** (display flags)
- ** (Requested by : Christopher A. Wichura)
- ** -*- changed on Tuesday, 22.03.94 18:32:58 by Kai Iske. LogMessage :
- ** - The ListViews will show volumes in white color now, so
- ** that you may distinguish whether an entry is a Volume or a
- ** Device
- ** -*- changed on Saturday, 19.03.94 17:58:56 by Kai Iske. LogMessage :
- ** - Diskobject for Iconify Gadget will obtained from the
- ** program`s icon
- ** -*- changed on Saturday, 19.03.94 17:52:54 by Kai Iske. LogMessage :
- ** - Added online-help support
- ** -*- changed on Saturday, 19.03.94 17:17:15 by Kai Iske. LogMessage :
- ** - Made behaviour of obtaining settings from a device entry
- ** for a volume entry switchable from ToolTypes/commandline
- ** options.
- ** -*- changed on Saturday, 19.03.94 16:24:58 by Kai Iske. LogMessage :
- ** - ForceIcon will use memory pools for allocations now.
- ** -*- changed on Saturday, 19.03.94 16:23:41 by Kai Iske. LogMessage :
- ** - For volumes, for which some flags aren`t set (like IconPos or
- ** UseIcon) ForceIcon will take the settings of the device
- ** the volume resides in as long as it is a) defined and b)
- ** the missing flag is set there.
- ** (Suggested by : Christopher A. Wichura)
- ** -*- changed on Saturday, 19.03.94 15:43:18 by Kai Iske. LogMessage :
- ** - DiskChanges on startup protected by Semaphore
- ** (Suggested by: Christopher A. Wichura)
- ** -*- changed on Saturday, 19.03.94 15:42:06 by Kai Iske. LogMessage :
- ** - LoadPrefs() protected by Semaphore
- ** (Suggested by: Christopher A. Wichura)
- ** -*- changed on Thursday, 17.03.94 18:24:44 by Kai Iske. LogMessage :
- ** - If you quit the EditEntry window using "OK", ForceIcon_Prefs
- ** will send a disk change to the device in question...
- ** - Improved semaphore locking mechanism. Chris didn`t like it,
- ** so I changed it, even though I can`t see his point (for now)
- ** (Requested by : Christopher A. Wichura)
- ** -*- changed on Wednesday, 16.03.94 22:23:30 by Kai Iske. LogMessage :
- ** - Added FlushMemory switch/tooltype
- ** - Only devices in the list (or their volumes) will get a
- ** disk change on startup now
- ** (Requested by : Christopher A. Wichura)
- ** -*- changed on Wednesday, 16.03.94 22:22:13 by Kai Iske. LogMessage :
- ** - Added server prefs concept. ForceIcon is a simple program
- ** now, w/o any GUI. A seperate Prefs Editor has been added
- ** (using MUI) to configure ForceIcon.
- ** - Rearrangement of List after editing an entry didn`t work
- ** -*- changed on Saturday, 12.03.94 19:32:33 by Kai Iske. LogMessage :
- ** - Again changed the routine for getting the list of available
- ** volumes/devices
- ** (Suggestions by : Ralph Babel)
- ** -*- changed on Saturday, 12.03.94 19:31:48 by Kai Iske. LogMessage :
- ** - Didn`t convert a string to upper-case before calling
- ** ParsePatternNoCase(). This has to be done for OS 37
- ** Systems.
- ** (Reported by : Christopher A. Wichura)
- ** -*- changed on Saturday, 12.03.94 14:23:12 by Kai Iske. LogMessage :
- ** - Added special code to check for block mounted devices.
- ** (Supplied by : Christopher A. Wichura. Thanks Chris)
- ** -*- changed on Thursday, 10.03.94 14:23:11 by Kai Iske. LogMessage :
- ** - When adding a new item to the list, another entry could
- ** loose the settings for the IconPos gadget. This was due to a
- ** bug in the sorting routine. Fixed
- ** (Reported by : Mark 'TheMug' Rose)
- ** -*- changed on Thursday, 10.03.94 14:02:35 by Kai Iske. LogMessage :
- ** - Patterns for Volumes and Devices supported now
- ** -*- changed on Sunday, 06.03.94 17:38:53 by Kai Iske. LogMessage :
- ** - When launched ForceIcon will now make all connected disks
- ** disk change, in order to reposition the icons. This way you
- ** may launch ForceIcon from within your WBStartUp now
- ** (Requested by : Henning Schmiedehausen)
- ** -*- changed on Sunday, 06.03.94 17:20:31 by Kai Iske. LogMessage :
- ** - Enforcer Hit for illegal Locks fixed
- ** (Changed by : Henning Schmiedehausen)
- ** - Windows will pop up on default PubScreen now
- ** (Changed by : Henning Schmiedehausen)
- ** -*- changed on Sunday, 27.02.94 17:52:56 by Kai Iske. LogMessage :
- ** - More security checks when removing patches
- ** (Requested/Changed by : Henning Schmiedehausen)
- ** -*- created on Saturday, 19.02.94 01:27:31 by Kai Iske. LogMessage :
- ** - ForceIcon didn`t clone all of the window`s flags
- ** - For some icon-substitutes, ForceIcon didn`t clone anything
- ** (Reported by : Michael 'Mick' Hohmann)
- **
- ** Revision V1.3
- ** --------------
- ** created on Sunday, 02.01.94 15:31:32 by Kai Iske. LogMessage :
- ** - Code cleanup
- ** - Partial rewrite of docs
- **
- ** Revision V1.2
- ** --------------
- ** created on Tuesday, 07.12.93 18:10:09 by Kai Iske. LogMessage :
- ** - Entries may be copied now
- **
- ** Revision V1.1
- ** --------------
- ** created on Tuesday, 02.11.93 23:11:14 by Kai Iske. LogMessage :
- ** -*- changed on Saturday, 27.11.93 02:12:59 by Kai Iske. LogMessage :
- ** - Recompiled using SAS 6.50
- ** -*- changed on Saturday, 20.11.93 18:14:21 by Kai Iske. LogMessage :
- ** - ForceIcon will adopt the orig. window position and size now.
- ** (Suggested by : Michael 'Mick' Hohmann and me)
- ** -*- changed on Saturday, 20.11.93 18:03:08 by Kai Iske. LogMessage :
- ** - Icons weren`t positions as set with the Position window.
- ** (Reported by : Michael 'Mick' Hohmann)
- ** - Misleading explanation removed from docs
- ** (Reported by : Michael 'Mick' Hohmann)
- ** -*- changed on Saturday, 20.11.93 17:33:51 by Kai Iske. LogMessage :
- ** - The X/Y coordinates may be set manually, now.
- ** (Requested by : Michael 'Mick' Hohmann)
- ** -*- changed on Saturday, 20.11.93 17:24:20 by Kai Iske. LogMessage :
- ** - Edit Entry window`s gadget used 'I' twice
- ** (Reported by : Michael 'Mick' Hohmann)
- ** -*- changed on Thursday, 11.11.93 18:43:27 by Kai Iske. LogMessage :
- ** - You may now tell ForceIcon not to patch the position, but
- ** rather let WB chose a good place. (Good when importing
- ** volumes via network)
- ** -*- changed on Tuesday, 02.11.93 23:23:00 by Kai Iske. LogMessage :
- ** - ListView gadgets weren`t adjusted for OS 2.x. - Should check
- ** for OS 2.x sometime ;)
- ** (Reported by : Bernhard Moellemann)
- ** - Changed needed Versions of some libraries from 37 to 36
- ** -*- created on Tuesday, 02.11.93 23:11:14 by Kai Iske. LogMessage :
- ** - If there wasn`t a filename for the Icon-File the
- ** FileRequester sometimes showed a weird Drawer-Name
- ** (Reported by : Dirk Federlein)
- **
- ** Revision V1.0
- ** --------------
- ** created on Wednesday, 20.10.93 17:19:27 by Kai Iske. LogMessage :
- ** -*- changed on Thursday, 28.10.93 17:35:28 by Kai Iske. LogMessage :
- ** - Suggestions for device dependancy by Ralph Babel
- ** - Bug "found" by Ralph Babel
- ** - Pos window used to open on default pubscreen, not on WB.
- ** (Reported by : Bernhard Moellemann)
- ** -*- created on Wednesday, 20.10.93 17:19:27 by Kai Iske. LogMessage :
- ** --- Initial release ---
- **
- *********************************************************************************/
- #define REVISION "1.4"
- #define REVDATE "24.03.94"
- #define REVTIME "16:43:23"
- #define AUTHOR "Kai Iske"
- #define VERNUM 1
- #define REVNUM 4
-
-
- /**********************************************************************/
- /* Prototype for serial debugging */
- /**********************************************************************/
- void KPrintF(char *, ...);
-
-
-
- /**********************************************************************/
- /* Prototypes for Pool functions */
- /**********************************************************************/
- APTR __asm AsmCreatePool(register __d0 ULONG, register __d1 ULONG, register __d2 ULONG, register __a6 struct ExecBase *);
- void __asm AsmDeletePool(register __a0 APTR, register __a6 struct ExecBase *);
- APTR __asm AsmAllocPooled(register __a0 APTR, register __d0 ULONG, register __a6 struct ExecBase *);
- void __asm AsmFreePooled(register __a0 APTR, register __a1 APTR, register __d0 ULONG, register __a6 struct ExecBase *);
-
-
-
- /**********************************************************************/
- /* Defines */
- /**********************************************************************/
- enum{
- ERR_OPEN,
- ERR_NOMEM,
- ERR_NOTALL,
- ERR_ABOUT,
- ERR_EXISTS,
- ERR_NONEG,
- ERR_PATCHES,
- ERR_PATCH,
- ERR_NO_RELAUNCH,
- ERR_NO_APP
- };
-
-
-
- /**********************************************************************/
- /* Nodes for Guide file */
- /**********************************************************************/
- #define NODE_MAIN "Usage"
- #define NODE_LEFT "Left part"
- #define NODE_RIGHT "Right part"
- #define NODE_EDIT "EditEntry"
- #define NODE_MANUAL "ManualInput"
-
-
-
- /**********************************************************************/
- /* This is our rendezvous Port */
- /**********************************************************************/
- struct FIconSema
- {
- struct SignalSemaphore FIconSema; // Our semaphore
-
- ULONG UseCount; // Use count of semaphore
- char Name[44]; // Name of semaphore
-
- struct List VolumeList; // List of volumes
- struct Task *ServerTask; // Address of ServerTask
-
- APTR FIconPool; // Pool for allocations
-
- UWORD FlushMemory; // Flushmemory ???
- UWORD ObtainFromDev; // Get settings from device when not set for volume ???
- };
-
-
-
-
-
- /**********************************************************************/
- /* Structure defines */
- /**********************************************************************/
- struct VolEntry
- {
- struct Node Link;
- char VolName[130];
- char IconName[256];
- UWORD Left;
- UWORD Top;
- UWORD UseAlt;
- UWORD IconPos;
- UWORD UseWin;
- WORD WinX;
- WORD WinY;
- WORD WinWidth;
- WORD WinHeight;
- UWORD UseFlags;
- UWORD WinFlags;
- UWORD Pad[25]; // For future expansions
- WORD LeftEdge; // These are only used during runtime
- WORD TopEdge;
- WORD Width;
- WORD Height;
- LONG CurrentX;
- LONG CurrentY;
- ULONG Flags;
- UWORD ViewMode;
- struct MsgPort *DriverTask;
- };
-
-
-
- /**********************************************************************/
- /* Definitions for MainWindow */
- /**********************************************************************/
- enum {
- ID_DUMMY,
-
- ID_USEDLIST, // Main window
- ID_EDITENTRY,
- ID_COPYENTRY,
- ID_REMOVEENTRY,
- ID_AVAILLIST,
- ID_ADDENTRY,
- ID_ADDENTRYMAN,
- ID_RESCANLIST,
- ID_SAVE,
- ID_USE,
- ID_ABOUT,
- ID_HIDE,
- ID_QUIT,
-
- ID_EDITOK, // Edit window
- ID_EDITCANCEL,
- ID_POSITION,
- ID_DRAWER,
-
- ID_MANOK, // Man window
- ID_MANCANCEL
- };
-
-
-
-
- /**********************************************************************/
- /* Modes for settings */
- /**********************************************************************/
- enum {
- MODE_IGNORE,
- MODE_USE,
- MODE_INHERIT
- };
-