----------------------------------------------------------- README for the SoftClock series 1.0 Jan 2000 ----------------------------------------------------------- (c) Copyright GreenSoft, Inc 1997 - 2000 This document contains informaton on the SoftClock series. CONTENTS ======== SYSTEM REQUIREMENTS Platform, Memory and Disk Space requirements SETUP Installing the SoftClock series application RUNNING THE APPLICATION Executing the SoftClock and WDEFDemo applications KNOWN ISSUES USING THE WDEF Developers only TO DO HISTORY Changes made CONTACTS CONDITIONS OF USE SYSTEM REQUIREMENTS =================== To run any of the SoftClock series you need the following:- System 7.1 or later - Macintosh or PowerMacintosh - For Macintosh 4 MB RAM minimum - For PowerMacintosh 16 MB RAM minimum - 6 MB hard disk space SETUP ===== From a CD-ROM To install the SoftClock series drag the folder from the CD onto your hard disk. RUNNING THE APPLICATION ======================= Just double click on the application icon. Clock Application ---------------- The clock features an analogue and digital format, the content may be copied to the clipboard, the digital clock may be customized regarding font and size. The last position of the window is remembered. DEMO Application ---------------- The demo window applications show all of the WDEF variations with varcode, as well as the main standard Apple windows as well as a fair comparison. KNOWN ISSUES ============ Memory problems are possible if the window size approaches that of the screen. USING THE WDEF ============== To use the WDEF it is necessary to include the WDEF resource with an ID of 400 in the application, and set the ProcID of the WIND resource, used to create the window, to one of the values given below in SoftClockDefs.h . There are 16 variations in all, 4 of which are duplicates. The definition ID is calculated by (Res ID x 16 ) + varcode. A resource ID multiplied by sixteeen gives the base code, and the varcode {0, 1, 2, ..., 15} selects the WDEF variant. So in this case, with a resource ID of 400 the base code is 6400, and the varcode of 2 selects the WDEF variant with a half frame window with a grow box situatioed outside the content region, with no zoom, i.e. kSoftWindGragProc. //START //SoftClockDefs.h // Soft Clock Definitions const int kWindDefID = 6400; //grow only const int kSoftWindProc = 6400; //grow only - in content - half frame const int kSoftWindFrameProc = 6401; //grow only - in content - whole frame const int kSoftWindGragProc = 6402; //grow only - in drag - half frame - INTERESTING const int kSoftWindGragFrameProc = 6403; //grow only - in drag - whole frame const int kNoGrowSoftWindProc = 6404; //no grow nor zoom - half frame const int kNoGrowSoftWindFrameProc = 6405; //no grow nor zoom - whole frame //const int kNoGrowSoftWindGragProc = 6406; //no grow nor zoom - (indrag) - half frame //const int kNoGrowSoftWindGragFrameProc = 6407; //no grow nor zoom - (indrag) - whole frame const int kZoomSoftWindProc = 6408; //zoom and grow - in content - half frame const int kZoomSoftWindFrameProc = 6409; //zoom and grow - in content - whole frame const int kZoomSoftWindGragProc = 6410; //zoom and grow - in drag - half frame - INTERESTING const int kZoomSoftWindGragFrameProc = 6411; //zoom and grow - in drag - whole frame const int kZoomNoGrowSoftWindProc = 6412; //zoom no grow - in content - half frame const int kZoomNoGrowSoftWindFrameProc = 6413; //zoom no grow - in content - whole frame //const int kZoomNoGrowSoftWindGragProc = 6414; //zoom no grow - in content - whole frame //const int kZoomNoGrowSoftWindGragFrameProc = 6415; //zoom no grow - in content - whole frame // Metrics of window cosmetics const short kTitleWidth = 18; // from outside to frame -frame- inclusive const short kFrameWidth = 1; // Thickness of frame around window const short kShadowLength = 1; // Size of drop shadow // Bit Codes for WDEF features #define kHasWholeFrame 0x01 #define kHasGrowInFrame 0x02 #define kHasNoGrow 0x04 //END Features -------- There currently are two types of SoftClock WDEF: Circle and Dali. Both use the same Proc IDs. Regarding the grow and the zoom procs their IDs follow the same meaning as the standard Apple WDEFs 0 The WDEF "Circle" ignores kHasWholeFrame, and so the IDs 6400 and 6401 are equivalent. A frame is always draw all around the window. The WDEF "Dali" uses kHasWholeFrame, and when set a frame is draw all around the window, otherwise the frame will only be draw around the upper part of the window, known here as a 'half frame'. The grow box can be drawn in one of two positions. WIthin the content region, as with a regular window, or within the drag bar region, whether the drag bar is draw around the entire window, or not. If a half frame is used, then the grow bow is placed adjacent to the bottom of the frame of the content region IDs 6406 and 6407 are redundant, as are 6414 and 6415, as the placing of the grow in the drag bar, if the grow box is not present, is irrelevent, and they are equivalent to the IDs 6404 and 6405, and 6412 and 6413, respectively. The IDs 6400, 6402 and 6410 are the most interesting and will probably be the developer's choice. Creator Codes ------------- SCK1 - Circular clock SCK2 - Dali Clock SCKD - Circle WDEFDemo SCKļ - Dali WDEFDemo The clock was written in C++, the WDEF and WDEFDemo in C. TO DO ===== - Remember user state (currently fixed at state at which the window was opened) - Accurate drag algorithm - Colour windows (CWindow) capability - Angular Scroll HISTORY ======= - version 1.0 (Jan 2000): Initial release - version 0.9x (Oct 1997): Initial development CONTACTS ======== Any comments, bug reports or requests, please feel free to email us at : greensoft@greenonline.free-online.co.uk CONDITIONS OF USE =============== This software is freeware. Please feel free to modify it as you please. Just include this readme (with amendments but no deletions) with future distributions, and email us a copy at greensoft@greenonline.free-online.co.uk V 1.0