@DATABASE MetaToolPrefs @MASTER MetaToolPrefs.guide @$VER: MetaToolPrefs.guide 3.3 (16.3.2002) © by Martin Steigerwald @NODE MAIN "MetaToolPrefs" MetaToolPrefs V3.3 (16.3.2002) - a preferences program for metatool. @{"Introduction" LINK Introduction} @{"Legalinfo" LINK Legalinfo} @{"Requirements" LINK Requirements} @{"Usage" LINK Usage} @{"History" LINK History} @{"Author" LINK Author} @{"Thanks" LINK Thanks} @ENDNODE @NODE Introduction "Introduction" Meating Pearls III used the great program MetaTool to start/display/play everything in the way the user wishes. That was configured in a configfile specified by the environment variable $METACONFIG. Unfortunately the user had to use a installer script or his own editor to change that config file. Some Meating Pearls admins thought it might be a good idea writing a preferences program for MetaTool. They asked for volunteers. I said: "Maybe, maybe." They answered: "OK, yes, move on, do it!" (Huhu, Angela;). So what could I do... I wrote this thing. Hopefully MTPrefs does a bit to make Meating Pearls IV even easier to use than Meating Pearls III. @ENDNODE @NODE Legalinfo "Legalinfo" MetaToolPrefs is Copyright © 1996 by Martin Steigerwald. It is freeware. However I wont reject gifts for it ;) Maybe spending some money to ensure Meeting Pearls V would be also a good idea. Or just help ppl who need your help, there are many out there. MetaToolPrefs is licensed under the @{"GPL license" link "/GPL.txt/MAIN"} beginning with version 3. I reject @{b}any@{ub} responsibility for damages that MetaToolPrefs may cause. This includes really everything that might or might not occur! This software is for free and I wanna be free of responsility in case of malfunction! @ENDNODE @NODE Requirements "Requirements" - AmigaOS 2.04 - @{"MUI" LINK AboutMUI} 3.6+ - A wonderful Amiga optional: - dospath.library (C) 1996 by Stefan Becker You can find the complete DOSPath package on AmiNet under util/libs/DOSPath.lha for example! dospath.library is "only" needed for the check config function @ENDNODE @NODE AboutMUI MetaToolPrefs uses MUI - MagicUserInterface (c) Copyright 1993-96 by Stefan Stuntz MUI is a system to generate and maintain graphical user interfaces. With the aid of a preferences program, the user of an application has the ability to customize the outfit according to his personal taste. MUI is distributed as shareware. To obtain a complete package containing lots of examples and more information about registration please look for a file called "muiXXusr.lha" (XX means the latest version number) on your local bulletin boards or on public domain disks. If you want to register directly, feel free to send DM 30.- or US$ 20.- to Stefan Stuntz Eduard-Spranger-Straße 7 80935 München GERMANY Support and online registration is available at http://www.sasg.com/ @ENDNODE @NODE Usage "Usage" Start it and use it. Its dead easy to do so. There is bubble help all around ;) @{b}Projects Menu@{ub} "Reload config" reloads config as if the program would have been started again. "Save config" saves the config without quitting the program. "Save config as..." saves the config in a file you specify. @{b}Listview and contextmenu@{ub} The listview is multi-selectable and has context menu! ;) In it you can find a function for checking the config. This function checks for each entry if the specified tool exists. Entries without existing tool will be selected. You could then easily edit the selected entries if you press the edit button. This function requires @{"dospath.library" LINK Requirements}. You can also specify which entries should be saved and which shouldnt. As a default MetaToolPrefs only saves entries it didnt get from the CD (so that with a new CD, the new entries from the CD will be used automatically.) Double clicking on an entry opens/closes its edit window. @{b}Buttons@{ub} "Edit" and "Remove" accept more than one entry. "Edit" opens an edit window if closed and closes it if opened. @{b}DragnDrop@{ub} You can drag and drop many things around. Just try it out. ;) @{b}$METACONFIG@{ub} MetaToolPrefs gets the name of your MetaToolPrefs config from the environment variable $METACONFIG which is also used by MetaTool itself. When you change config file name, MetaToolPrefs changed $METACONFIG automagically. @ENDNODE @NODE History "History" For those of you wanting to read the long story of how this program evolved ;) 3.3 (16.3.2002) - now is licensed under the @{"GPL license" link "/GPL.txt/MAIN"}. - complete with source code - recompiled with StormC 4 - does not longer use StormAmiga.lib but Amiga.lib - no functional change (hopefully;-) - also added GlowIcon for MetaToolPrefs itself - updated documentation - new email address and web page url - gpl license - history 3.2 (18.10.1999) - dropped the release version numbering scheme. Now MetaToolPrefs version is always the version the program tells. - make license less restrictive, now allows for Amiga Plus CD-ROMs and for AmiNet-CD-ROMs explicitely. - removed a bug that one was able to delete an entry with an open edit window that has an open asl popup. A bug is still in it: The requester telling the user that he can't delete that entry does only show up when the entry that can't be deleted is the first entry in the list of entries to be deleted. I don't understand and do not really bother about that. - updated catalog, cause it has a new cannot delete entry warning message. - added GlowIcons and layouted icons 1.1 3.1 20.10.96 Completely broke the remove method.. edit windows of removed entries would not have been closed. Now first closes edit windows and then does remove them via above method. Creating a new entry will now open a edit window. Stefan Gybas. Added context menu function to select which entries should be saved Entries that should be saved are now displayed in bold softstyle. Bumped version to 3. Bug left: Popstring MetaTypePop doesnt close at first click on its button. (Dont know how to solve this.) This will most certainly be the version that will come on the Meating Pearls IV, hopefully I didnt introduce new bugs. Updated documentation, reversed order of this history section, new entries first Layouted icons. Lets hope and pray that this version does it! ;) Added start script (so that a version from hard disc can be used), just in case there is a serious bug to be fixed, or there will be a even more over-featured version of MTPrefs ;) exec size: 20068 2.7 19.10.96 replaced my buggy MTEntryPanel_Remove method with MUIM_List_Remove, MUIV_List_Remove_Selected, thanks Klaus!! (MUIV_List_Remove_Selected isnt actually be mentioned in the MUI 3.6 AutoDocs!!!!) 2.6 10.10.96 checkconfig now works with WB, thanks to Stefan Becker for his RTFM --> CopyWorkbenchPath mail ;) one can drag an listview metatype entry upon one of the string gadgets in an editwindow routines for d&d-support in the complete EditWindow written, but commented in, cause the wont work directly with a subclass of window class as d&d support is in area class. Will investigate how to get this working, maybe there is a way without adding another class all windows now have MSG_APP_TITLE as Window_ScreenTitle updated manual for MUI and dospath copyrights 2.5 3.10.96 improved checkconfig routine, now works with dospath.library to get real "c:which"- functionality, thanks Stefan for dospath ;) and disables requester during config check thanks Nessy all requester now are opening center to their windows exec size: 19056 (argh, I need -O2;)) BUG detected: checkconfig works not, when MTPrefs is started from Workbench, guess I have to get the pathlist in another way then... Will investigate. 2.4 2.10.96 corrected bug with doubleclick on a listviews entry opening and closing edit windows from all selected windows, thanks kmel ;) set some default window width and height. Tron and kmel requested this. 2.3 30. 9.96 edit window now cannot not be closed if popasl object is open, thanks kmel app now would not quit, if a popasl object is open kmel reported that app would not quit, if user selected save and config file could not be written to disc detected possible mui bug: mui listview doesnt return return codes correctly when called with method that belong to the connected list 2.2 26. 9.96 hopefully fixed enforcer hit when changing config file name and hitting cancel then thanks kmel ;) exec size: 17964 2.1 env var would be saved more than once after a change when the user saved config more than once exec size: 17948 1.0 2.0 25. 9.96 implement possibility to change config file name made file requesters remembering old file- and pathnames editwindows now have (mostly unique) Window IDs implemented Settings/MUI restructured menus a bit added Project/New env var will be saved permanently to ENVARC: too but via simply writing a file.. so this might not work with env handlers like HappyENV (GetVar() could only set non-permanently) put hook structures into instance data structures added listview bubble help added context menu added close all edit windows made listview multi-selectable changed button behavior to work on all selected entries added context menu added simple configuration check, checks if all given tools do really exist bumped catalog version documentation not yet updates, beside this history 1.17 added amigaguide documentation so only a few thinks left, and then it is ready, finally. exec length: 16200 bytes ;-( (-O2 isnt working see above.) 1.16 implemented project menu completely, erm, OK, not completely: quit doesnt work, but I did enough programming for today implemented about requester 1.15 21. 9.96 removed bug when starting from workbench (didnt CurrentDir to sm_Arg->bla_Block) 1.14 added drap&drop support for the string gadgets in the editwindows via my own DragString Class ;) changed optimizing option to -O only, this works and dont gives any compiler error... and it gains as much as 6.5 KB executable size now it has a size of 13676 bytes ;) improved makedist to include a lzx archive and its uucoded form 1.13 localized the whole thing, and bubble helped it 1.12 localized mainwindow and mtentrypanel added localized shorthelp to mainwindow and mtentrypanel compiled non-optimizing, cause optimizing compiling caused following compiler error: MetaToolPrefs.c: In function `main': MetaToolPrefs.c:1045: fixed or forbidden register was spilled. This may be due to a compiler bug or to impossible asm statements or clauses. thus large executable: 19852 bytes added script for automagically generating localization info and german .catalog = makecat added script for automagically generating a distribution archive = makedist 1.11 19. 9.96 Made removing entries save, added DoubleClick on ListView opens Editwindow, added activating of already opened editwindows when accessed again Started Locale Support, only a few strings by now. 1.10 18. 9.96 Now it works... oh that was a dead silly mistake that comes from looking into other sources (psi & monthnavigator-demo) and dont looking close enough, and not reading all needed docs ;) Thanks to Willy to the hint that MTEntryPanel_Class = MUI_CreateCustomClass(NULL, MUIC_Group, NULL, sizeof(struct MTEntryPanel_Data), MTEntryPanel_Dispatcher); if(!MTEntryPanel_Class) goto exit; you must give size of instance data if you have instance data, and not just use 0L... I saw this 0L in monthnav sources and thought this isnt a important value... I was wrong... After a few slight changes to whole edit thing works now... whoa... multithreaded editing! ;) Now I will add some more stuff for convenience ;) and I will make removing an entry saving (if there is a running edit window, it must be closed before removing the entry actually...) Oh, MUI classes are fun fun fun ;) 1.9 Edit scheme added, but it crashes, and crashes all over again. 1.8 all but metatype editing in classes now... now I have to add a new metatype edit scheme 1.7 17. 9.96 the list for metatype entries is a class now ;) dunno why I had to do a MUIM_List_Sort even when I insert the entries with MUIV_List_Insert_Sorted 1.6 added a missing __saveds leading to a line emulator guru 1.5 15. 9.96 fixed enforcer hit... god damned silly mistake i=0; equal=FALSE; while ((i<=entries) && (equal == FALSE)) { DoMethod(MTPrefs.MetaTypeEntryListView, MUIM_List_GetEntry, i, &cmpentry); if(!stricmp(cmpentry->MetaType, entry->MetaType)) equal=TRUE; i++; } hit was by i=entries ;) thanks to Fionn Behrens for the right clue! 1.4 12. 9.96 added __saveds's, optimizing compile with fbase-rel, msmall-code, fomit-frame-pointer, 9644 bytes ;) changed config file name to names without "-HD" ;-) tried to locate enforcer hits reported by Stefan Gybas via poor mans Printf() debugging to no extent. tried using gdb to no extent (I simple dont understand gdb completely). 1.3 tuned compiler settings! saved nearly 3K ;-) 10516 bytes... (it would be 9524 bytes if I could get a working small code/data binary) added icon: gcc compiled the damn thing so that it could be started from WB with the help of libnix since the first version of it (I just dont need any special WB support to create WB startable programs.) 1.2 using env var METACONFIG now... (huh, I never tested it with MetaTool nor read the doc very carefully I guess.) 1.1 8. 9.96 fixed bug in switch statement in the routine that reacts on user input in the edit gadget (wb mode is not toggling anymore when you type e.g. into the tool gadget;-) 1.0beta 1.0 7. 9.96 first beta release @ENDNODE @NODE Author "Author" Martin Steigerwald Email: Martin.Steigerwald@web.de Helios@Lichtvollst.de WWW: www.lichtvollst.de home.pages.de/~helios @ENDNODE @NODE Thanks "Thanks" Go to: All friends for beeing there. Matthias Scheler for his MetaTool (and his IntuiNews, CyberWindow, CyberView... ;) and betatesting... Thomas Wilhelmi, Jeroen Smits, Sebastioan Rittau, Stefan Tiemann for helping with mui classes problems ;) Fionn Behrens, Stefan Gybas, Christoph 'chrisdi' Dietz and Klaus 'kmel' Melchior for beta testing. All the other meating pearls admins for working on such a great CD. Stefan Stuntz for @{"MUI" LINK Requirements} and his example source psi.c! Peter Stegemann for his Monthnavigator-Demo source. I learned a lot from this sources and took a bit from them in my source ;) Stefan Becker for his @{"dospath.library" LINK Requirements}! Without it the check config function wouldnt be that good. All the ppl from who develop for ADE! The program was compiled with ADE GCC 2.7.2, a damned good compiler. All ppl who do something good for the Amiga! Olaf Olsen Barthel and all the ppl who created the Amiga Developer CD 1.1! Great Work. Helped a lot. And all I forgot. ;) @ENDNODE