home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 22 / AACD 22.iso / AACD / Programming / Emperor_v4.0 / Emperor / Emperor.readme < prev    next >
Encoding:
Text File  |  2001-05-05  |  14.5 KB  |  324 lines

  1. Short:    Object-oriented programming language
  2. Author:   Matthias Gietzelt
  3. EMail:    shamane@exmail.de
  4. Uploader: Andreas Gietzelt <endee@t-online.de>
  5. Version:  4.0
  6. Type:     dev/c
  7. Requires: OS 3.5, well-equipped Amiga, some knowledge,
  8.           Amiga Developer CD 2.1 (see below)
  9.  
  10.  
  11.         _______   __   __          ___        _______   ___      ___          ___   
  12.        /******/  /**| /**|        /***\      /******/  /***\    /***\        /***\  
  13.       /**____/  /***|/***|       /*__**\    /**____/  /*__**\  /*___*\      /*__**\ 
  14.      /**/___   /*/ |**/|*|      /*/__/*|   /**/___   /*/__/*| |*/   \*|    /*/__/*| 
  15.     /******/  /*/  |_/ |*|     /*******/  /******/  /*******/ |*|   |*|   /*******/ 
  16.    /**____/  /*/       |*|    /*______/  /**____/  /*__**__/  |*|   |*|  /*__**__/  
  17.   /**/___   /*/        |*|   /*/        /**/___   /*/  \*\    \*\___/*/ /*/  \*\    
  18.  /******/  /*/         |*|  /*/        /******/  /*/    \*\    \*****/ /*/    \*\   
  19. /______/  /_/          |_| /_/        /______/  /_/      \_\    \___/ /_/      \_\  
  20.  
  21.  
  22.                       The object-oriented programming language
  23.  
  24.                     Available at www.aminet.de ! (Drawer: dev/c)
  25.  
  26.  
  27.  
  28. Für die deutsche Version, bitte weiter unten lesen....
  29.  
  30.  
  31. ENGLISH:
  32.  
  33.  
  34. History
  35.  
  36. 2.0  - Initial release
  37. ---
  38. 2.1  - GadTools gadgets support !!
  39.      - reached to shrink programsize by coding the window-stuff by myself
  40.        instead of making it by ReActor
  41. ---
  42. 2.2  - Oops..The program crashed, when a clicktab was in a test-window.
  43.      - speed optimizations (e.g. at startup, shutdown etc.)
  44.      - defined catalog-creation
  45.      - C++-Code support
  46.      - added the macro "Preferences-Menu" for Prefs-Programs
  47.      - better & easier generated C-sourcecode
  48.      - minor bugfixes
  49. ---
  50. 2.3  - prefs-editor rewritten
  51.      - chooseable processortype for generated StormC-project
  52.      - modified programming-help
  53.      - some functionmacros rewritten
  54.      - minor bugfixes
  55. ---
  56. 3.0  - gadgets-test routine rewritten
  57.      - fixed bugs by showing tapedeck & colorwheel gadgets
  58.      - fixed problems with clicktabs & page gadgets (see "clicktabsexample")
  59.      - added function "Shutdown()" (called, when program quits)
  60.      - added progress-bar while saving
  61.      - added macrofunctions "Emperor_Set/GetGadgetAttrComplex()" (see guide for details)
  62. ---
  63. 3.1  - fixed a bug when generating source for window with colorwheel
  64.      - source is now *more* SAS/C friendly
  65.      - fixed a silly bug when copy a function from programming help into texteditor
  66.      - added online help for macrofunctions (see chapter Programming Help for details)
  67.      - added ARexx-connection to StormC (Scripts - Dir)
  68.      - added arguments by starting StormC (e.g. GoldED support for StormC)
  69.      - added loading picture
  70. ---
  71. 3.2  - added parametry of several image-gadgets (bevel, bitmap, glyph)
  72.        (see "ClicktabExample" for details)
  73.      - fixed a bug with slider and getfile-gadgets
  74.      - fixed problem with requester-body-text ["\n" (Newline) will be recognized now]
  75.      - rewritten routine for adding, moving (up and down) and removing of objects in a list
  76. ---
  77. 3.5  - showing of scroller & slider-gadgets fixed
  78.      - layout-gadget (bevelstyle & -state) doesn't switch back to previous setted
  79.        values anymore
  80.      - added support of finnish catalog
  81.      - added program-environment for configuration of version, program name,
  82.        stack, mem and many more
  83.      - deleting windows is possible now
  84.      - when pages were added to gadgetlist, its generation was incorrect
  85.      - added gadgethelp support - just connect a gadget to configure ! (program-environment)
  86.      - added function <Menu-Edit-Clearlist> to reset current list of objects
  87.      - label's Locale-connection works correct now
  88.      - gadgethelp for nearly every gadget
  89.      - added chooseable HookType for string-gadgets
  90.      - added some initial-configurations for texteditor-gadgets
  91.      - moving Locale-entrys is possible now
  92.      - editing the includelist is also possible now
  93.      - added new startup-picture (thanks to Janne Peräaho)
  94. ---
  95. 3.6  - Gradientsliders horiz/vert orientation works correct now
  96.      - some global variables problems fixed
  97.      - problems with node-array fixed
  98.      - special positions/sizes for OS 2.0 windows work now
  99.      - chooseable smallfont for large lists
  100.      - fixed crash when moving a test-window
  101.      - modifyable library-integration for your project
  102.      - fixed bug in installer-script (doesn't notice, if an OS higher than 3.5 was installed)
  103.      - added interconnection maps
  104.      - generating source based on AmigaOS 2.0, AmigaOS 3.5+ or mixed code
  105. ---
  106. 4.0  - DONE ! the whole code is rewritten and structured ! only 4 MBytes of systemmemory
  107.        is needed !
  108.      - the programflow maybe changed a bit to a better, because also all low-level
  109.        functions were rewritten
  110.      - look also changed a bit
  111.      - menu is more complex and professional
  112.      - expanded GadTools-handling (with RightMouseButton)
  113.  
  114.  
  115. Introduction
  116.  
  117. Thanks for decrunching and the will to testing the program-packet.
  118. This program should "revolutioning" the software-development on Amiga.
  119.  
  120. Object-oriented programminglanguage (OOP) is maybe a bit too high for that
  121. program, because there are "real" C/C++-sourcecodes generated and
  122. an external C/C++-Compiler must translate it into machine-code. In the Amiga-sphere
  123. there are only less applications like CanDo, Storm-Wizard and so on, but one day
  124. I have seen the program "Delphi" on the PC :( ! This OOP is exclusive controlable
  125. in Pascal (that set's me up) and it has millions of configuration-possibilities.
  126. I didn't knew such things on Amiga, and so I made it by myself.
  127.  
  128. I want to make parameting of the Graphical User Interface (GUI) and its macro-elements as easy as
  129. possible.
  130. Following standard-GUI-elements are implemented:
  131.  * requests
  132.  * ASL-requests
  133.  * menus
  134.  * OS2.0 gadgets (GadTools)
  135.  * Locale
  136.  * OS3.5 gadgets (Reaction)
  137.  * windows
  138. Following NON-GUI-elements are implemented:
  139.  * function-macros, which makes programming under OS3.5+ more easily
  140.  * includes
  141.  * declare variables
  142.  * library-opening
  143.  * interConnection Maps between gadgets
  144.  * create list-arrays for gadgets
  145.  
  146. With Emperor you are generating a complete C/C++-sourcecode, which only must be
  147. compiled by an external compiler (e.g. StormC from the developer CD2.1).
  148.  
  149. Aim of this program is to assure software developer to create their programs (its sourcecode)
  150. by Emperor, because the making of software (opening of windows, file- and fontrequests,
  151. menus etc.) is often equal and must not longer copied by programmers from other sourcecodes.
  152. Emperor decrees about one or more macros for every GUI-element. Like the menus:
  153. here you must, for creating the complete Project-menu (open, close, save, print etc.) and its
  154. translation, (in Locale-".catalog"-file) only select the corresponding entry in the list.
  155. This is also possible with requests e.g. by making a QuitRequest. These are called in
  156. the own sourcecode as function "REQUESTNAME();".
  157.  
  158. But the program should also be for user, who never programmed before,
  159. and bade an easy way in the programming of AmigaOS-GUIs.
  160.  
  161.  
  162. Systemrequirements
  163.  
  164.   - an Amiga ;-)
  165.   - Memory at least 4 MByte; recommended 16 MByte or more
  166.   - Workbench version 3.5 or higher
  167.   - Processor at least 68020; recommended 68060
  168.   - Amiga Developer CD 2.1 of the HAAGE & Partner GmbH
  169.   - C/C++-Compiler (from the developer CD "ADCD_2.1:Contributions/Haage_&_Partner/StormC/")
  170.   - CatComp (from the developer CD "ADCD_2.1:NDK/NDK_3.5/Tools/CatComp")
  171.  
  172.  
  173. DEUTSCH:
  174.  
  175.  
  176. Die Geschichte
  177.  
  178. 2.0  - Erste Veröffentlichung
  179. ---
  180. 2.1  - AmigaOS 2.0 Gadgets hinzugefügt !!
  181.        (GadTools-Gadgets sind nun verfügbar !)
  182.      - Programm ist durch Code-Umsetzung von ReActor nach eigenem Code geschrumpft.
  183. ---
  184. 2.2  - Programmabsturz, wenn Clicktab-Gadgets in einem Test-Fenster waren.
  185.      - Geschwindigkeitsoptimierungen (z.B. beim Start, Ende etc.)
  186.      - definierte Catalog-Erstellung
  187.      - Makro "Preferences-Menü" für Einstellungs-Programme
  188.      - C++-Quelltext Unterstützung
  189.      - besserer & einfacherer generierter C-Quelltext
  190.      - minimale Fehler behoben
  191. ---
  192. 2.3  - Prefs-Editor überarbeitet
  193.      - wählbarer Prozessortyp für generierten StormC-Projekt
  194.      - modifizierte Programmierhilfe
  195.      - diverse Funktionsmakros überarbeitet
  196.      - minimale Fehler behoben
  197. ---
  198. 3.0  - Gadget-Test Routine überarbeitet
  199.      - Fehler beim Anzeigen von Tapedeck & Colorwheel Gadgets behoben
  200.      - Probleme mit Clicktabs & Page Gadgets behoben (siehe "clicktabsexample")
  201.      - Funktion "Shutdown()" hinzugefügt (Aufruf, bei Programmende)
  202.      - Fortschrittsanzeige während des Speicherns
  203.      - Makrofunktion "Emperor_Set/GetGadgetAttrComplex()" hinzugefügt
  204.        (siehe Emperor.guide)
  205. ---
  206. 3.1  - Fehler beim Quelltextgenerieren mit ColorWheels behoben
  207.      - Quelltext ist nun SAS/C freundlich*er*
  208.      - Fehler beim Kopieren einer Funktion von der Programmierhilfe in den Texteditor behoben
  209.      - Online Hilfe für Makrofunktionen hinzugefügt (siehe Kapitel Programmierhilfe)
  210.      - ARexx-Verbindung zu StormC (Scripts - Verzeichnis)
  211.      - Argumente beim Starten von StormC hinzugefügt (z.B. GoldED support für StormC)
  212.      - Ladebild hinzugefügt
  213. ---
  214. 3.2  - diverse Image-Gadgets (Bevel, Bitmap, Glyph) hinzugefügt
  215.        (siehe "ClicktabExample" für Einzelheiten)
  216.      - Fehler mit Slider und Getfile-Gadgets behoben
  217.      - Problem mit dem Requester-Body-Text behoben ["\n" (Newline) wird nun berücksichtigt]
  218.      - Routine für hinzufügen, verschieben (hoch und runter) und löschen von Objekten
  219.        in den Listen überarbeitet
  220. ---
  221. 3.5  - Anzeigen des Scroller & Slider-Gadgets ist überarbeitet worden
  222.      - Layout-Gadget (BevelStyle & -State) springt nicht mehr zu zuvor eingestellten
  223.        Werten zurück
  224.      - Finnischen Katalog hinzugefügt
  225.      - Programmumgebung zur Konfiguration von Version, Programmnamen, Stack, Speicher
  226.        und vielem, vielem mehr hinzugefügt
  227.      - löschen von Fenstern ist nun möglich
  228.      - wenn Pages hinzugefügt wurden, waren deren Generationen inkorrekt
  229.      - GadgetHelp hinzugefügt - einfach ein Gadget verbinden, um die GadgetHelp zu
  230.        konfigurieren ! (Programmumgebung)
  231.      - Funktion <Menü-Bearbeiten-Liste löschen> für das Zurücksetzen der aktiven Liste von
  232.        Objekten hinzugefügt
  233.      - Label's Locale-Verbindung arbeitet nun korrekt
  234.      - GadgetHelp für beinahe jedes Gadget
  235.      - wählbarer HookType für String-Gadgets
  236.      - diverse Initial-konfigurationen für Texteditor-Gadgets hinzugefügt
  237.      - verschieben von Locale-Einträgen ist nun möglich
  238.      - editieren der Includeliste ist nun möglich
  239.      - neues Startupbild hinzugefügt (Dank an Janne Peräaho)
  240. ---
  241. 3.6
  242.      - Gradientsliders horiz/vert Ausrichtung arbeitet nun korrekt
  243.      - einige Probleme mit globalen Variablen behoben
  244.      - Probleme mit Node-Arrays behoben
  245.      - spezielle Positionen/Größen für OS 2.0 Fenster arbeiten nun korrekt
  246.      - wählbarer Smallfont für komplexe Listen (Texteditor/Programmierhilfe)
  247.      - Fehler behoben beim verschieben vom Vorschaufenster
  248.      - veränderbare Library-Integration für das eigene Projekt
  249.      - Fehler behoben im Installer-Skript (arbeitet jetzt mit OS-Versionen >3.5 zusammen)
  250.      - Interconnection Maps hinzugefügt (Verknüpfung von Gadgets)
  251.      - Quelltextgenerierung auf Basis von AmigaOS 2.0, AmigaOS 3.5+ oder gemischt
  252. ---
  253. 3.7  - spezifische Projekt-Verzeichnisse erstellbar
  254.      - erweiterte Fensterattribute
  255. ---
  256. 4.0  - GESCHAFFT ! der gesamte Quelltext ist neugeschrieben, strukturiert und überarbeitet !!
  257.        nur noch 4 MBytes Systemspeicher sind für den Start von Emperor notwendig !
  258.      - der Programmfluß hat sich teilweise geändert, weil auch alle low-level Funktionen
  259.        neugeschrieben wurden.
  260.      - neuer Look
  261.      - komplexeres und professionelleres Menü
  262.      - erweitertes GadTools-handling (mit RechtemMausButton)
  263.  
  264.  
  265. Die Einführung
  266.  
  267. Vielen Dank, daß Sie dieses Programm entpackt haben und ausprobieren möchten !
  268. Dieses Programm soll die Software-Entwicklung auf dem Amiga "revolutionieren".
  269.  
  270. Objekt-orientierte Programmiersprache (OOP) ist vielleicht ein wenig
  271. zu hoch gegriffen, da weiterhin "echte" C/C++-Quelltexte generiert und
  272. durch einen externen C/C++-Compiler übersetzt werden müssen. Im Amiga-Bereich
  273. gibt's nur wenige Ausnahmen wie CanDo, Storm-Wizard u.a., aber irgendwann habe
  274. ich das Programm "Delphi" auf dem PC :( kennengelernt ! Diese OOP ist
  275. ausschließlich in Pascal gehalten (was mich arg störte) und erschlägt einen
  276. mit den Millionen Konfigurations-möglichkeiten. Ich kannte soetwas in der Art
  277. bisher auf dem Amiga nicht, und kurzentschlossen setzte ich mich selbst daran.
  278.  
  279. Ich wollte die Parametrierung der Oberfläche und der Makro-Elemente so einfach wie
  280. möglich machen.
  281. Folgende Standard-Oberflächenelemente sind implementiert:
  282.  * Requester
  283.  * ASL-Requester
  284.  * Menüs
  285.  * OS2.0 Gadgets (GadTools)
  286.  * Locale
  287.  * OS3.5 Gadgets (Reaction)
  288.  * Fenster
  289. Folgende Nicht-Oberflächenelemente sind implementiert:
  290.  * vorgefertigte Funktionsmakros, die das Programmieren unter OS3.5 wesentlich erleichtern.
  291.  * Includes
  292.  * Deklarieren von Variablen
  293.  * definierbare Einbindung vonFuntions-Bibliotheken
  294.  * InterConnection Maps zwischen Gadgets
  295.  * Datenfelder für Listen von Gadgets
  296.  
  297. Man generiert mit Emperor einen komplett fertigen C/C++-Quelltext, der nur noch
  298. durch einen externen Compiler (z.B. StormC auf der Developer CD2.1) übersetzt werden muß.
  299.  
  300. Ziel dieses Programms soll sein, Softwareentwickler zu überzeugen mit Emperor ihre
  301. Programme (deren Quelltext) zu erstellen, da die Verfahrensweise bei der Erstellung
  302. von Software (Öffnen von Fenstern, Datei- und Schriftauswahlrequestern, Menüs etc.)
  303. oft gleich ist und nicht weiter durch den Programmierer selbst mühsam aus anderen
  304. Quelltexten herausgefischt werden muß. Emperor verfügt für jedes Element schon
  305. ein oder mehrere vorgefertigte, aber veränderbare, Makros. So z.B. bei den Menüs:
  306. hier muß für das Projekt-Menü (Öffnen, Speichern, Drucken etc.) und dessen
  307. Übersetzung (für Locale - ".catalog"-Datei) nur der entsprechende Eintrag
  308. gewählt werden. Dies gilt auch für Requester z.B. für das QuitRequest. Diese müssen
  309. nur noch im eigenen Quelltext als Funktion "REQUESTERNAME();" aufgerufen werden.
  310.  
  311. Das Programm soll aber auch für Amigianer sein, die noch nie programmiert haben,
  312. und so einen einfachen Einstieg in die Programmierung der AmigaOS-Oberfläche bieten.
  313.  
  314.  
  315. Die Systemanforderungen
  316.  
  317.   - einen Amiga ;-)
  318.   - Speicher mindestens 4 MByte; empfohlen 16 MByte oder mehr
  319.   - Workbench Version 3.5 oder höher
  320.   - Prozessor mindestens 68020; empfohlen 68060
  321.   - Amiga Developer CD 2.1 von der HAAGE & Partner GmbH
  322.   - C/C++-Compiler (von der Developer CD "ADCD_2.1:Contributions/Haage_&_Partner/StormC/")
  323.   - CatComp (von der Developer CD "ADCD_2.1:NDK/NDK_3.5/Tools/CatComp")
  324.