@database EngClock 8.6 Help @author "Ben Matthew" @(c) "Copyright © 1997 by Ben Matthew" @wordwrap @node Main "English Clock 8.0 Help" Ben Matthew proudly presents.... @{u}English Clock 8.6 Copyright © 1997 by Ben Matthew@{uu} @{b} @{" News " link news} - Changes since last release! @{ub} @{" Disclaimer " link Disclaimer} - Legal stuff @{" Introduction " link Intro} - Just what is EngClock? @{" Features " link Features} - Whats new? @{" Requirements " link Requirements} - What do I need to run it? @{" Installation " link Install} - How do I install it? @{" Why? " link Why} - Why write EngClock? @{" How? " link How} - How do I use EngClock? @{" Credits " link Credits} - Acknowledgements @{" Bugs, Comments, etc. " link Comments} - It's good to talk @{" Program History " link History} - Past problems @{" Known Bugs " link Bugs} - Don't tell me about these! @{" Having trouble? " link trouble} - If you get into a pickle... @{" Development Info " link langmods} - DIY EngClock - Get involved! @{" Registeration " link Register} - Keep informed A brand new version with more features, memory efficient, a full blown graphic user interface and loads more... It's the ulimate clock program written exclusively for the Amiga. Send comments and bugs to: ben@bmatthew.demon.co.uk @endnode @node Disclaimer English Clock 8.6 is Copyright © 1995 by Ben Matthew. The EngClock 8.6 package consists of the executable program, the AmigaGuide hypertext file, the ANSI text doc file and the source code files. English Clock 8.6 is a FREEWARE package. That means that you may freely distributed this program providing only a small copying fee is paid for it. I do not accept any responsibility to any damage that may be caused due to the use of this program. You use this program entirely at your own risk! EngClock 8.6 was compiled using SAS/C. The user interface employed by EngPrefs was written using the Trtion user interface system - see @{"Triton" link triton} for more information. The alternative interface system is for Photogenics 2 users only and requires the @{"Widget" link Widget} interface libraries to be already installed on your setup. Widget is not currently publically available but may become so in the future. Widget is not, beyond this version, supported by EngClock and unless you particular want a Widget version will remain obsolete - which is where Widget itself will remain unless it gets a public release. @endnode @node news "Hot off the press!" @{b} NOW Cybergraphics and Picasso96 friendly!! @{ub} @{u}Changes since version 8.4p@{uu} * Triton used for Engprefs instead of Widget. * digital.langmod * New alarm event preferences * Support for screennotify.library * Various bug fixes @{u}Changes since version 8.0p@{uu} * Full localisation in the main code as well as the preferences program. This means that the new version REQUIRES locale.library and won't run on any OS lower than 2.1 * Implemented "LangMods" - a plug-in system allowing the easy development of different languages. A lot of reworking means that the language handling is dynamic. * Small changes to the arexx vocab to allow for a dynamic language system. * Corrected a few bugs including the freezing of the system when loading backdrop images and the constant reopening of the font * Independant Timer Process avoids the bugs in timer.device giving a realiable timer message system. @{u}Changes since version 6.9a - or '96@{uu} * Full Widget® Orientated user interface allowing complete font sensitivity within preferences as well as main code * Seperate Preferences program means less memory used in day-to-day operations * Commodity support behaves more like normal commodities - i.e.: can work in non-popup mode - just talky and alarm. * Full Localisation in preferences via the locale system - catalogs for french and spanish provided * Internet World Wide Web site for up-to-the-minute news and downloads * Any Font can be used for the window - not just the system font * Unique "Try Before You Buy" preferences approach lets you try out new options in @{i}realtime@{ui} allowing you to customise your settings far more precisely than ever before! * More ARexx commands for more flexibility * Arexx Extenstions means that all commands react when sent - not after a reboot! Email: ben@bmatthew.demon.co.uk WWW: www.bmatthew.demon.co.uk/amiga/engclock.html (EngClock Home) www.bmatthew.demon.co.uk/amiga/ (General Amiga stuff) @endnode @node Features EngClock as of version 6.7 now supports the following features: * Commodity Support * Workbench Support * Fully configurable preferences * Translator/Accents Support * Localisation * Three different languages * Hotkeys * Public Screen manager * Jumping * Text Justification * Automagic window resizing * Different colour schemes for different sceen depths * Display date as well as time * Use a GIF/JPEG/BMP/PNG/IFF/other datatype as a backdrop * Full alarm management system * Play samples as alarm events * Use a requestor with a user definable message * Have events that are weekly, monthly, annually or daily * Events which can work up to the year 2010 * An emormous vocabulary of ARexx commands * Fully multitasking windows @endnode @node Intro English Clock is a simple utility that finds out what the current time is from the system clock then displays that time in a little window. The time, however, is not displayed in figures as with most clock utilities but is displayed in words, in any language dependant on what @{"LangMods" link langmods} are available and according to Locale and the EngClock preferences. Furthermore Engclock will also display the date, in words, if requested. If you hit a hotkey when ANY window is selected Engclock turns into talking clock! This is implemented using the new v42 translator library and can be made to work in just about any accent. So, have a click around this database and learn what its all about! Ben Matthew (08/12/96). @endnode @node Requirements EngClock works with any Amiga with OS 3.0 or higher. It does not require a battery backed up clock but one is definetely recomended! EngClock V3.0 has been tested on the following configurations: A1200, 2MB chip RAM. A1200, 3MB - 2MB chip, 1MB fast. A1200/030 (50mhz) , 10MB - 2MB chip, 8MB fast A500 Plus, 1MB chip A4000/030, 2MB chip, 8MB fast. A4000/040, 2MB chip, 14MB fast + Picasso II (Cybergrafx) And functions fine! Basic, essential software requirements are: intuition.library (ROM) gadtools.library (ROM or Disk) diskfont.library (ROM) utility.library (ROM) graphics.library (ROM) locale.library (Disk) Widget.library and associated classes (Disk) - for EngPrefs or triton.library (Disk) for EngPrefs Additional features require: Speech (alarm + hotkey) requires narrator.device and translator.library. Plus locale.library Hotkeys + Commodity access require the commodities.library File requesting (prefs) requires the asl.library Display Backdrops requires OS 3.0 and the datatypes.library Localisation + sample playing requires the iffparse.library Decompressing sound samples requires xpkmaster.library ARexx interface requires the rexxsyslib.library Using different fonts requires the diskfont.library Music modules for alarm events require the superplay.library @endnode @node Install How to install English Clock on your system: Simply click on the install icon and let installer do the rest. For the techy minded here's what is actually needed: Wherever the EngClock executable lives must also a live another directory called "modules" which contains the @{"langmods" link langmods} supplied. Also the EngPrefs exectuable must also live in the same place as EngClock. It is worthwhile noting that if you install intp WBStartup Engprefs shouldn't have an Icon and the icon attached to EngClock should have it's first tooltype as "DONOTWAIT". The catalogs can be installed in either a directory where Engclock lives called "catalogs" or in "locale:catalogs". triton and translator libraries go in libs. Accents go in locale:accents. @endnode @node Why @{b}Why on earth does anyone waste their time writing this?!@{ub} The idea behind EngClock was twofold. One I needed a project to work on when I first started to learn C - this explains why loads of the code is total pigshite (!) - and two I saw a similar program running in X-Windows and thought it was a great idea. I was inspired to write this Amiga version by my big brother Neil who wrote the original X version. @endnode @node How @{u}How to use English Clock: @{uu} @{" Running English Clock " link Running} - Getting up and running @{" Localisation " link Locale} - The right language @{" Talking Clock " link Talk} - It can talk! @{" Preferences " link Project} - Suiting your tastes @{" Jump " link Jump} - Jumping around! @{" Commodity/WB Access " link CX} - Special access! @{" ARexx Support " link Rexx} - Access via ARexx @{" Tooltypes " link tools} - Tooltypes for WB access @{" Command Line Args " link tools} - Access via command line @endnode @node tools @{u}Configuration by Workbench ToolTypes@{uu} Following WB tooltypes and command line args are supported: X= X position of window Y= Y position of window WIDTH= Width of window HEIGHT= Height of window BACKDROP= File to use as a backdrop PUBSCREEN= Public screen to open on ACCENT= Accent file to use when using speech TALKKEY= Hotkey for activating speech HOTKEY= Hotkey for activating prefs JUSTIFICATON= 0, 1 or 2 where: 0 = left justified 1 = centred 2 = right justified DATE= Display the date? (YES or NO) WTF= Use window to front? (YES or NO) ADJUST= Auto adjust the window? (YES or NO) e.g.: with command args, EngClock X=5 Y=12 PUBSCREEN=DOPUS.1 "HOTKEY=Control Alt E" or just set icon tooltypes using Workbench. @endnode @node Running EngClock can be run either from Workbench, via the attractive (!) icon, or from the CLI. Both ways result in the same program. EngClock as of version 5 auto detaches from the initial shell process. That means you do NOT need to use the "run " prefix. Just type: EngClock To run from shell. If you drag the icon into the WBSTARTUP drawer then makesure that the DONOTWAIT tooltype is present. Check using the information option in the icons menu on WB. This is the case if you run EngClock from your startup-sequence. @endnode @node Locale EngClock now supports locale fully utilisting the catalog system. Two catalogs are supplied; engclock.catalog and engprefs.catalog - both should be installed in the catalogs dir where engclock and engprefs lie. If you wish to convert the strings in the catalogs to any other language please feel free - I would like it if you would send me a copy of your catalog, however, so that I can include it with future distributions. @endnode @node Talk EngClock V3.0+ is now also Talking Clock! English Clock will talk via the super duper translator.library v42.4 by Francesco Devitt. This is included with this program. This means that it is possible for EngClock to talk in a whole number of different languages. Thanks to Damaso for bring this library to my attention. To get EngClock to talk you must be running the commodities system which was given with all Amigas after and including the A500 PLUS. Then configure what key you want to use to make EngClock speak in the prefs program. Pressing that key, !wherever you are!, will make EngClock say the time in your chosen language. If you do not have the translator.lib installed then click on the installlib icon included to install it on your system. The language can be changed by clicking on the little icon beside the accent filename box in the prefs program. This option requires narrator.device in the devs: dir. Narrator.device is a Copyrighted device and should not be distributed without the express permission of the current holders of the Amiga`s distribtion license. This currently is Amiga Technologies GmBH. However, because it is highly unlikely that the guys at AmiTech are going to be as big a set of prats as those at the late CBM you should not worry too much about this. As of version 6.9 this option will detach itself as a new process and will allow normal use of main program whilst time is being spoken. @endnode @node Project Engclock has a reasonably well layed out preferences user interface as of version 4.0. Here's how it works: @{"Language Settings" link Language} @{"Text Settings" link Text} @{"Alarm Settings" link Alarm} @{"System Setting" link System} The preferences window will detach itself as a new process so that the main window will continue to function as normal. This enables you to see exactly what each option does before selecting use or save. You are then able to preview all changes is EngClock is running as well before selecting save. @endnode @node Text "Text Settings" @{b}Text Justification@{ub} By selecting the appropriate gadget Engclock will adjust the text for the time and date to suit your tastes. You can either select the text to be left or right justified or centred. @{b}Automatic window adjustment@{ub} This option will automatically adjust the window size to accomodate the current size of the text message. It prevents the need for silly MinWidths taken up all your WB with blank window space. The way the window adapts depends on your text justification settings. If you have your text centred then the window will strech/shrink equally from each side (or at least appear to) so that if you have the window in the centre of your screen it will stay centred. If your text is left justified the window will strech/shrink to the right so that the left hand side of the window stays in the same place. This is vice versa for right justifcation. This has been implemented so that if you want EngClock on the right, you have right justification and it stays there. Likewise for centre and left. @{b}Changing the colours@{ub} Using the sliders on the GUI you can change the colour of the time and date text within the window. To see an example of the colours you must have EngClock running. You can use any of the 256 pens available. The problem for me when I first wrote this was that the pens in different colour modes changes. For example when I run my compiler I use just a bog standard 4 colour system and with these limited colours I like to use black text and blue date. However when I use a DTP, or Word processing program on WB I have 16 colours. If I am using intuition graphics then I use a 256 colour WB and so on. With more colours available I do not just want to use the black/blue combo. So whats the solution? The solution is what you see in the form of the colours slider on the GUI. By changing this slider you can have different colour schemes for different colour screen modes. For example I have Black/Blue when the slider reads 4 colours, and Light Blue/Deep Red when it reads 16. When you start EngClock detects how many colours are available and uses the right scheme which you set. Note that when setting these values change your screenmode to the amount of colours you are setting, e.g.: when altering the scheme for 32 cols change to that mode first. Otherwise you may find that it isn't right because the colours repeat themselves on the later half. Play around with it and it will all become clear. @endnode @node System "System Settings" @{b}Public Screen Handling in Engclock@{ub} EngClock can attach itself to any public screen, not just the workbench. To set the default public screen go into the preferences GUI and click on the gadget next to the box containing the current screen name (a little down arrow). When a new requester appears enter the name of the public screen into the string gadget marked "Other". If the public screen is open when you do this you can simply click on the name of the screen in the list displayed. Note that the public screen must be opened before you execute EngClock for it to work. If not EngClock will revert back to the workbench screen. @{b}Backdrops in EngClock@{ub} As an extra bonus you can now add your own backdrops to the time window. Simply go into the prefs GUI and either enter in the name of an image file in the gadget box or click on the gadget to the right of the string gadget to pull up an asl requester. You can then select an image from there. EngClock uses the datatypes to load and view images, this means that it will only work on OS 2.1 and above machines. It also means that any suuported format can be used as a backdrop - iff, gif, jpeg, bmp, png or any other datatype you have installed. Note that Engclock does not support colour remapping, so most images will, at first, look distorted. To use an image as a backdrop you must first remap it. To remap an image do the following: 1) Get a screen grab of your workbench screen using either grabiff or similar. 2) Load your backdrop image into DPaint 3) Flip to the spare page using "J" 4) Load the screen grab onto the page 5) Flip back 6) Select palette->ReMap colours from the menus 7) Pick up remapped backdrop as a brush and save, use this as the backdrop image. Future versions may support colour remapping so watch out! (If anybody has the code to do this on WB, then I would be pleased to hear from you). Because of the way EngClock works I would suggest that you first copy the backdrop into RAM: and use it from there. @{b}Font Support@{ub} You may choose any font you want to display the main text in the EngClock window. Just click on the set button in the preferences program (system settings) and you can pick any font using a normal system font requester. @{b}Hotkeys@{ub} Hotkeys can be defined that allow EngClock to speak when a certain key combination is pressed or to reappear after being "hidden". The key combination jsut needs to be typed into the relevant string gadget in the preferences window. See @{"Hotkeys" link hot} for a list of valid hotkey definitions. @{b}Display Date checkbox@{ub} Clicking on this will display the date as well as the time. The date will appear in words below the time. This change is automatically recognised. Unless this checkbox is ticked, if you ask EngClock to "talk" the time the date will not be said. @{b}The WindowToFront Checkbox@{ub} If this checkbox is active then every time the window needs refreshing the Window will be brought to the front of the screen. Useful if you are going somewhere and need reminding all the time! @endnode @node CX Commodity and Workbench access in EngClock EngClock. when started, tries to attach itself both to the commodities list and the Workbench tool menu. If it suceeds in becoming a commodity then if you click on the close gadget of the window the window will vanish but the program will still remain active - like other commoidities. When the window is closed you can reopen it using the hotkey or exchange or alternateively just use it as a talking clock by usingthat respective hotkey. Thanx to Geoff Norman for pointing that out to me! As a commodity EngClock allows you to enable, disable, re-open the main window and quit. These actions can be achieved using Exchange or any other monitoring software, like MUI_EXchange. @endnode @node Rexx @{u}Arexx Support@{uu} EngClock has a fully featured ARexx port for all you budding ARexx programmers out there. If you do not know what ARexx is then you had better go away now coz it is not that easy for the beginner to understand. EngClock's Rexx port is a simple affair. No results are returned and commands are either solitary instructions or take parameters. Here is a run-down of the 18 commands supported: The name of the ARexx port is: @{b}ENG_REXX@{ub} "Quick glance" list of functions @{b}DATECOL TIMECOL <<-- New for version 8! FONT RESET@{ub} SENDPORT SENDFILE ACTIVATE SPEAK PREFS LEFT RIGHT CENTRE NEWWIN LANG AUTO ON AUTO OFF DATE ON DATE OFF SCREEN PICCY ACCENT QUIT Command: DATECOL Parameters: 1 - Colour value - WB Pen number Synopsis: Changes date colour Description: Changes the current colour of the date string to the pen number speicified as an argument. This will update instantously. Command: TIMECOL Parameters: 1 - Colour value - WB Pen number Synopsis: Chantges time colour Description: As DATECOL but the time string! Command: FONT Parameters: 3. Font Name (as a string), Font Size (as a number) and Font Style (as a number) Synopsis: Changes the current font Description: Will force EngClock to use another font. If the font can be found that is! You must provided both Font and Size but style can be ignored. e.g: "FONT fonts:cgtimes.font 24" Command: RESET Parameters: None Synopsis: Resets all settings Description: Shuts down everything, reloads the prefereneces settings and generaly starts a fresh. Command: SENDPORT Parameters: 1 - Port name Synopsis: Sends time string to a AmigaDOS device (physical or logical) Description: This command is designed for people who want to use the EngClock time string for other things like in no-nonsense stdout/stdin apps or whatever. The text string for the time only is written to the specified port (like SPEAK:). Note that you should only specify a port name and not a filename and use it only with ports which were especially designed to be treated like this! (This is a PIPE not a drive) Command: SENDFILE Parameters: 1 - filename Synopsis: Sends time string to a file Description: This is identical to SENDPORT (see above) except that the time string is written to an actual file rather than a PIPE-like port. Command: ACTIVATE Parameters: None Synopsis: Pulls main window to front Description: This simply calls the intuition function WindowToFront() to bring EngClock's window to the top layer. Command: SPEAK Parameters: None Synopsis: Triggers the talking clock Description: Command: PREFS Parameters: None Synopsis: Triggers the main prefs window to open Description: Command: LEFT Parameters: None Synopsis: Left justifies the current text Description: This, and the functions below, can be used to configure EngClock for different situations and abolishes the need for different s:engclock.prefs files. Command: RIGHT Parameters: None Synopsis: Right justifies the text Description: Command: CENTRE Parameters: None Synopsis: Centres the text Description: Command: LANG Parameters: language name Synopsis: Changes the current language Description: Reloads the current langmod (Language module) to the one specified in the argument. If this should fail the language will revert back to where it was before the command was issued. Command: NEWWIN Parameters: 4 (comma deliminated) - parameters for new window Synopsis: Changes the current window dimensions Description: This command will change the main EngClock window's dimensions. The parameter must be in the form x,y,width,height - comma deliminated integers. For example NEWWIN 10,20,600,200 Command: DATE Parameters: ON or OFF Synopsis: Turns the date text on or off Description: The parameter must be in capital letters! Command: AUTO Parameters: ON or OFF Synopsis: Turns on or off the autoadjust feature Description: Command: SCREEN Parameters: 1 - Screen name Synopsis: Sets the default public screen name Description: Parameter does not need to be a correct string but should be. Note that this option will not work unless the prefs are saved and so is a little pointless. Command: PICCY Parameters: 1 - Picture filename Synopsis: Loads in a new backdrop Description: Like SCREEN but not only sets the backdrop filename but loads it and displays it as well - useful if you want to have different backdrops for different Workbench configurations. Command: ACCENT Parameters: 1 - Accent filename Synopsis: Changes the current accent Description: Like above but changes the accent filename to specified string. All speech after the point of instruction will be in that language. Command: QUIT Parameters: None Synopsis: I wonder?! Description: @endnode @node Language @{b}Languages@{ub} EngClock uses the LangMod system to display text in the main window. This is a plugin system thats means you only need to install the languages that you want. See @{"LangMods" link langmods} for more information on this concept. To change the current language used by engclock just click on the pop-up gadget next to the language box. This will bring up a new requester, simply click on the language you want from this list. If no options are present then you must have @{"install" link install}ed something wrongly. @{b}Accents in EngClock@{ub} EngClock, when it speaks, can be configured to use an of the accents ou currently have localised. This is based on the translator.lib by Francesco Devitt. If Francesco Devitt writes any more accents, other than the ones supplied, copy them into your locale:accents dir and EngClock will be able to use them. If you do not have the new lib and/or prefer the old translator this will be ignored and stuff will be spoken in English. Just click on the icon to pull up a list of available languages @endnode @node Hot Hotkeys There are two hotkeys used in EngClock. One to make EngClock speak, see @{" Talking EngClock " link Talk} and one to make the EngClock preferences window appear on the screen. Both hotkeys are definable in the prefs window. Acceptable hotkeys are as follows: CONTROL ALT e control alt e alt E control ; shift F6 help or any similar hotkey in the same style. Hotkeys are implemented via the commodities.library so this is required to use hotkeys. Also because of this hotkeys work whether the window is selected or not. @endnode @node Alarm @{b}Alarm event handling@{ub} You have ten main alarm presets. Set the time and date that you want the event to go off. Then choose the frequncy of the event, this indicates how often the event happens, such as daily, weekly, once, etc. This is useful if you need reminding to watch the X-Files every thursday or other sad reason! Once this is programmed you need to specify what sort of event it is. Five are currently available: a) Requester b) Speech c) AmigaDOS Command d) A sound file (datatypes) e) A music module (superplay) Now click on the parameter icon and enter a relevent parameter into the string gadget. With the requester the parmater will be the text displayed. With speech, the string read. With sound,music and amigados command it will be the name of a file on disk. It's all fairly obvious. Make sure you enable the event if you want it to work! WARNING! The sound option in this requires version 40.5 of the sound.datatype - if not present when the sample is played EngClock will hang! make sure if you are using OS3.0 that you install this newer version as supplied! @endnode @node Jump @{b}Jump@{ub} EngClock has a menu option called "Jump". If selected the EngClock will lock the next public screen and re-open on it. It will, therefore, "jump" to it. This is useful if you only want EngClock to open on a particular public screen once. @endnode @node Comments Any ideas, code, comments, etc. to: Snail-Mail: Ben Matthew, 16 Blackthorn Close, West Kingsdown, Sevenoaks, Kent. TN15 6UF England. E-mail: EngClock@bmatthew.demon.co.uk The lastest version of this program is available on the Aminet. ftp from your favourite aminet mirror in /util/time. i.e: ftp://src.doc.ic.ac.uk/pub/aminet/util/time/EngClock.lha. Send any problem mail to the above address. I am especially interested in spelling errors or misuse of language with the Spanish and French implementations. If anyone can write a French version of this doc file then I would be happy to hear from them! English Clock 8.6 has been tested on an A1200 with 2MB chip mem running OS 3.0 with an IDE hard disk, PCMCIA CD-ROM and external floppy. EngClock should work on just about any Amiga configuration. If you have ANY probs at all using this program contact me and I'll see what I can do. Note that EngClock does require OS 2.0 or greater! If there is any feature you would like included in this program that is not currently available scribble down your ideas and send them to me I don't mind doing requests!! If you find any bugs in this program or you have a suggestion or a request, or any problems at all, contact me at the address above. This program has been developed for myself, but I have made a considerable effort in making it "public friendly". This includes developing the docs and the GUI which has taken a very long time. Not to mention making it possible to use engclock with almost every font setup!. I do not expect any monetary gain from this project but I would appreciate some response, even if it is just a postcard saying thanks. See Also: @{"Bugs" link Bugs} @endnode @node Credits English Clock 8.6 was written by Ben Matthew © 1995. English Clock is based upon a similar program on GNU Linux called "ADI English Clock" which was written by my big brother Neil. ADI English Clock is © Neil Matthew. Written for X11. The resources I have used to teach myself to code this amazing machine are as follows: Mastering Amiga C by Paul Overaa Practical C Programming by Steve Qualline C for Yourself - by (cough) Microsoft Corp. The Amiga C Enyclopedia - by Anders Bjerin (Amiga C Club) Amiga ROM Kernel Reference Manual, Includes and Autodocs - by CBM And various people's source code! Thanks to them all!! Thanks also must go to Justin Langford who helped me out on the rather dodgy Spanish bits in this program. Thanks Just! But an even bigger thank you to Dámaso Domínguez Estévez who correct Justin's poor Spanish and suggested some very useful stuff. EngClock is now internationally famous! Further thanx to Geoff Norman who pointed out to me that my commodity implementation was extremely confusing and giving his general appreicative comments about the program! Nice to know people like it. All comments gratefully received! Finally thanks to Commodore - even if you are not Commodore anymore. You have designed the most powerful and user-friendly home computer system ever. Just make sure you do not use Windows NT as the only Amiga operating system in the next generation of Amigas on RISC. I can think of nothing more tragic then of every computer in the world running Windows - and thats the way its going. Anyway, get those production lines rolling again, I might want to upgrade my A1200 soon. @endnode @node Widget "The Widget User Interface System" @{u} The Widget User Interface System @{uu} EngPrefs - the preferences side of English Clock 8.6 has been designed using the Widget layout system. Widget, unlike it's rivals (ala MUI, ClassAct, etc) is internally object-orientated and as far as the programmer is concerned is purely a class-orientated system. Widget is the interface system behind only two programs, ATM; Photogenics/Photgenics 2 and English Clock. Photogenics is a commerical program produced by Almathera Systems Ltd., but Widget is a seperate environment produced by Kriss Daniels and Jason Doig. By the time you read this Widget should be freely available to developers and, hopefully, making a good stab at becoming the new MUI of the Amiga world. Widget provides a completey font senstive approach to laying out graphical interfaces and is not afriad to try out new ideas - such as the X-Window's approach of having pop-up windows. It is also very small, very efficient and very felexible. @endnode @node langmods "The Language Module system" @{u}Language Modules@{uu} English Clock uses a custom system called "LangMods" to describe how to tell the time in a specific language. This is because there is no set way to tell the colloquial time in different languages. The way this is implemented is via the system Libraries with each langmod being a small shared library which is then loaded in by the main code and executed. These modules must be located in a directory called "modules" in the path of the binaries. If you would like to develop a module for your language then please feel free - all the data you need is supplied in the dev/ directory. If you do create a langmod then please @{"email or send" link comments} it to me to include in future distributions. I also need @{b}catalogs@{ub} developed for EngClock - especially a German one. If you can translate the catalogs into German or other language that has a langmod but no or incomplete catalog again please send my the new catalogs so that I can include it in the future. @{b}Current LangMods@{ub} * English * French * Spanish * German * Digital (displays the time in digits in the engclock window ) @{u}Development Information@{uu} @{"Developing apps to use Langmods" link apps} @{"Developing langmods " link mods} @endnode @node apps Test Apps See the enclosed .c file @{b}dev/test.c@{ub} for an example of a program that uses Langmods. To develop an app to use LangMods (either to test your own langmods or some othee contrived reason) you'll need the files in include/ - and possibly need to make a .lib from the pragma if you don't have SAS/C or similar. Once done you can treat each LangMods just like any other system library. The two calls being ECM_GetTimeStr ECM_GetDateStr see the docs/langmod.doc file for a description of the functions. @endnode @node mods DIY LangMods Producing langmods is simple! Full source for the langmods used is given plus a template code for others along with a makefile. see /dev/lib. Each langmods contains two functions as described in the autodocs - to make a langmod simply follow my example and create a library with the two calls and build using the .fd file supplied. If you need any help in making your own langmods, @{"contact" link comments} me. @endnode @node History @{u}History of the program EngClock:@{uu} EngClock v1.0-v1.x (1995) - Pretty naff primarily versions. Not worth mentioning really! EngClock v2.1 (May 1995) - First offical release. Indirectly supports locale, three languages. EngClock v2.2 (May 1995) - Now displays (am) or (pm) after time. Uses midday and midnight instead of just twelve. Code is a bit messy. EngClock v2.3 (June 1995) - Tidied up code. Snapshot window now works without resorting to MoveWindow, etc. Big (BIG, BIG) improvement - now supports fonts set by system! Improved refresh routine. Removed on-line help coz its a waste of time Fixed a spelling error in the Spanish text. EngClock v2.4 (July 1995) - Super improved about requester (cor!). Plus fixed a few other things. Restructured the code into two files, main and globals. Menus are now font-sensitive. Menus now have keyboard hotkeys. EngClock v2.5 (July 1995) - Now supports both types of configurable fonts! Tweaked the menus a bit - work better with high res modes. Updated the prefs file format so that I can change it later on but still support older files ( version element in binary file). EngClock v2.6 (Aug 1995) - New options! Now user can configure whether the window text is left justified or centred! Added support for high res wb users because window will now resize with the limits set by the screenmode (i.e.: not constant). EngClock v2.7 (Aug 1995) - More options !! Can now choose whether to show date as well as time. Currently only English date supported but later versions will support other languages. EngClock v2.8 (Aug 1995) - Fixed bug which caused window to flick if running in non-date mode. This version now lets you change the colours of the date and time (1st 4 pens only, however). EngClock v3.0 (Aug 1995) - English Clock is now also Talking Clock! English version fully supports the narrator.device speech facility, but does not rely on the hit-and-mess translator library (built in phonetics!). French version now displays date as well, not available in Spanish coz I dunno any! Documentation updated to include features. 1st major revision for a while. EngClock v3.1 (Sept 1995) - Minor changes. EngClock v4.0 (Sept 1995) - Now features a fully working GadTools GUI for the preferences program! Fixed a bug in the phonetic which caused any 35/25 min lines to fail. GUI allows the use of all the 256 pens in AGA and pos RTG systems. Multiple colour modes means you can have a different scheme for each screenmode. Compiled using GCC and therefore ANSI compliant + no memory scrambles. Menus cut down coz of GUI. EngClock v4.1 (Sept 1995) - Fixed a bug in the Project Menu--Quit which made it crash. The GUI is now fully font sensitive (fixed bug causing RectFill to draw example cols in wrong place). EngClock v4.2 (Sept 1995) - Can now attach to any specified public screen, not just the workbench. Handy if using DOPUS or other program where you need to have the whole screen to one program, but want a clock. EngClock v4.3 (Sept 1995) - Added facility to load in a background image in window using datatyoes.library. Uses the blitter for maximum speed. Also reads the locale prefs file using the proper CBM method, iff parsing and all that jazz. EngClock v5.0 (Oct 1995) - Updated the graphic user interface, thus eliminating the need to add parameters on the CLI. Hence, you have two new string gadgets, one for the pubscreen and one for the backdrop. EngClock v5.1 (Oct 1995) - Added in "version" code, plus extra checking code when loading in backdrops to make sure the refresh works properly. EngClock v5.2 (Oct 1995) - Uses BltBitMapRastPort() to blit data into the window's RPort instead of the BitMap inside the screen - works much better. Removed the WindowToFront() line as well so no more annoying windows coming forward every minute!! EngClock v5.3 (Oct 1995) - Uses auto detach startup code in SAS/C. Found that using DONOTWAIT as a tooltype there are no program Blah,Blah has not returned errors. EngClock v5.4 (Oct 1995) - Uses the GadToolsBox getfile BOOPSI gadget to run a asl requestor in GUI prefs when selecting a backdrop image. New checkbox in GUI as well - to select whether you want the window brought forward or not on refresh. Changed the about window so that the text is left justified because it caused some problems on machines with larger configured fonts. EngClock v5.5 (Oct 1995) - Uses gadtoolsbox getfile image on pubscreen string as well, to call up a listview on the current list of screens. Fixed a bug in the asl requester. EngClock v5.6 (Oct 1995) - Spanish version is much imrpoved thanks to Dámaso Domínguez Estévez! EngClock v5.9 (Oct 1995) - General interface adapts to Spanish (about, menus and prefs). Almost but not quite perfect! EngClock v5.8 (Oct 1995) - Prefs program now has a use button for previewing changes before saving. Small updates to the Spanish text. Now the prefs GUI fully adapts to french. Plus the menu texts adapt to french. EngClock v6.0 (Oct 1995) - Now handles alarms, updated GUI. Uses up to 10 "events" using selectable alert method EngClock v6.1 (Oct 1995) - Alarms can now be daily, weekly, etc plus a specific date via new GUI window. EngClock v6.2 (Nov 1995) - Did something EngClock v6.3 (Nov 1995) - Removed a bug which caused EngClock to crash if a weekly event was used (on startup). Have removed all printf()s --> AutoRequests EngClock v6.4 (Nov 1995) - Improved Spanish bits for both time and prefs including alarms. Much improved pic loading means less CPU hogging + vague remapping! Memory mashing has also been removed. If Locale is available MX_Lang is ghosted. About box now works with all fonts which going bannanas! Speech now works with the new multi-lingual TranslateAs() function, and all speech is re-direct. Have removed all built-in phonetic strings because new translator.lib is freely ditributable! EngClock v6.5 (Nov 1995) - Now has commodity support and can be run from the Workbench Tools menu if it gets lost on the Workbench! Built in requester determine whether the tools menu quits or pulls up prefs. Have implemented hotkeys via commodities to call up prefs + speak. EngClock v6.6 (Dec 1995) - It's now gone midnight and, at last, I have managed to sort out all the flipping lib bases and rid the special access routines of a 196 byte memory mash bug and it has taken me HOURS!!! But, its fixed! Its fixed!!! EngClock v6.7 (Dec 1995) - Autoadjust now works! Have modified the text justification code to accomodate this amazing new feature. Update the guide file to work with all fonts (wordwrap) EngClock v6.8 (Dec 1995) - Now has an enormous ARexx interface! Any ARexx application can control 18 different aspects of EngClock. EngClock v6.9 (Dec 1995) - Getdate, prefs and talk now work as multitasking independant processes to allow better access. Now means that you can try before you buy with the prefs options. 70K + (!!!) Getting a bit big! Now uses the ARQ extended EasyRequest to have more fancy questions and about window. Seemed to have fixed a horrible "out of stack" bug (due to Process spawns). Date is now only spoken if it is set in prefs. EngClock '96 (Jan 1996) (also known as v6.9a) - Fixed a horrible little bug that made the auto adjust routine go mad when you switch between autoadjust and no autoadjust without restarting the program. Also tried to fix an out-of-stack problem with the spawned "Talky" process. Deleted the features: new processes for windows due and WB menu "tools" option due to severe problems with both. First version to be uploaded on the Aminet. EngClock v7.0 (May 1996) - The startup code has now been revised so that cli command args and workbench tooltypes are now taken care of. Implemented so that they take precedence over the .prefs file. Allows multiple prefs scenerios. Now the about requester has Email address. Also preferences asl requester buffers the directory so that same dir is called up on re-entry. It's now EngClock's first birthday! One year of development! EngClock v8.0 (Sept 1996) - Major overhaul! The program code has been split into two parts; EngClock and EngPrefs. This results in mor efficient use of memory. New features include the ability to select which font - not just the system one. Also prefs allows you to preview all options before you save them - reuslting in a full ok-cancel type affair. EngPrefs is fully localised using the system's locale.library and catalogs to use different strings; catalogs supplied for French and Spanish with english being internal. Code has been tidied up and is somewhat easy to deal with. Enabledate has been removed from alarm settings because it was a waste of space. Now behaves much more like a commodity with the window's close gadget shutting down the window and not the whole application - allowing you to use it in "talky mode" only. Some changes made to the Spanish interface - both grammatical changes and time-based changes. (Thanx Damaso). Now has own WWW Home page to allow latest downloads plus other information - as well as aminet. EngPrefs written in Widget to allow complete font sensitivty throughout the entire program. EngClock v8.1 (Oct 1996) - Fixed a bug which meant that the time did not interally update when the window was closed ( so speaking clock was wrong!) EngClock v8.2 (Nov 1996) - Added "LangMod" system whereby each language has it's own seperate module which can be develeoped seperatly - changed engprefs to use this "dynamic language handling" idea - whereby a string replaces the traditional "language" identifier. Rewrote a bit of the main code (mainly tiding globals.h) EngClock v8.3 (Dec 1996) - Now the main code is fully localised! This means I've dropped compatiability with OS 2 making this revision 3.0 only. Semi-wrote catalogs for spanish and french (hoping Damaso will take a look for me ;-) Removed the problem with keep on calling OpenDiskFont because of using PrintIText - now using gfx calls. Wrote a German module - although no localised support yet (nor planned) - anyone? Removed the remapping flag in tile.c to avoid the frozen pointer effect - most images actually look better anyway! EngClock v8.4 (Dec 1996) - Fixed a minor bug in the spanish module. Also stopped it closing the main catalog every time it refreshes the window (oops!). CX support now recongnises multiple timer threads so closed versions of EC do not linger. Also CX Disappear messages are now handled. New catalogs from Damaso mean better spanish localisation! Thanx! Also re-write the text justification code so that it actually *works*. ;-) Made it possible to remove EC whilst hidden (doesn't crash!) Fixed bug which meant time was unitialised at start. Added a Music Module option to the event types (thanx SuperPlay!). EngClock v8.5 (Feb 1997) - Rewrote special.c after a major hard disk failure - and fixed a couple of bugs as a result. Window should now reappear after being hidden and if pubscreen changes. The preferences bit has been completely re-written in the Triton GUI system since Widget never did get released. Few teething problems - should be sorted. Revised the localisation so that if the language specified by the prefs is found to be available it uses that in preference to the localisation - thus allowing say spanish localised strings but german text. Added Weekdays and Weekends option to alarm frequency. Fixed a GUI bug that meant that the first change to the alarm settings was ignored (before changing the preset bar). Few extra localisation strings such as the OK/Cancel buttons thanx to triton. Added support for screennotify when using on the WB screen and settings are changed. EngClock v8.6 (Sept 1997) - Fixed datatype image loading (remaps correctly and supports 24-bit graphics under P96 and CGfx using v43 picture.datatype). Fixed an enforcer hit under Engprefs which, low and behold, seems to work nicely (yes Triton!) under OS 3.1. Scrapped Widget. Few other bugs fixed. @endnode @node Bugs @{u}Known Bugs@{uu} None! @endnode @node register "Registeration" @{u}Registeration@{uu} EngClock is, always has been and always will be Freeware. This means that I give you permission to do two things. One; distribute it to whoever you like and two; use it as much as you like. Unlike shareware I do not expect you to send my a fee if you use the program regularly. However you may want to register your name and address with EngClock. If you like the program and send my a disk with SAE plus a small contribution I will keep you informed of changes and updates. IF you have access to the internet latest releases of the program will go on the web site (see @{"News" link news}) but you cannot recieve "pre-release" editions which may come about for whatever reasons. Furthermore as registered users I can guarantee that all enquires and problems with the program will be dealt with. No obligation; just a thought. Support Amiga developers and they will support you! @endnode @node trouble Problems runnning EngClock 8.6 @{u}Problems runnning EngClock 8.6@{uu} Please note that since 8.6 english Clock will only run under OS 2.1 and above. It has only been tested under 3.0! If you are having difficulty getting EngClock to run under your system such as a consistant error message or crash let me know and I'll look into it. If you would really like to have the new version of EC running under 2.0 or below then also contact me and I'll see what I can do. But I suspect that hardly anybody still in the Amiga Scene as it stands is using anything below a 1200. I might be wrong See @{"Contact" link Comments} @endnode @node triton "The Triton GUI system" @{b}Triton GUI system@{ub} The preferences side of English Clock was written with the aid of the triton user interface system. Triton is a layout library similar in concept to Stefan Stuntz's MUI or BGUI or even EngClock's old GUI system "Widget". I believe Triton is the best system to use because: a) Unlike MUI it doesn't try to re-invent the wheel - the gadgets used by the system are OS ones - ala GadTools. This means SPEED. Triton is very usuable even on a A500 unlike Widget or MUI. b) Unlike Gadtools "straight" Triton is completely font sensitive as well as being resizable. c) But much, much more importantly Triton is a doddle to program due to it's design and means less time me programming fancy GUIs and more time concentrating on features. Triton has been developed by Stefan Zeiger and is really only at it's beta stage of development. it is, however, a very promising bit of kit and well worth considiering registeration if you use it regularly. Read the documentation for Triton for more details. @endnode