home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Crawly Crypt Collection 1
/
crawlyvol1.bin
/
crm_demo
/
intrface
/
liesmich
< prev
Wrap
Text File
|
1992-12-16
|
20KB
|
451 lines
Besonderheiten von Interface:
- Alle wichtigen Resource-Formate werden unterstützt (RSD, DEF, DFN
und HRD).
- MSDOS Resources werden automatisch erkannt und können geladen und
gespeichert werden.
- Integrierter Iconeditor mit vielen Funktionen.
- Bei Icons weitgehend automatische Maskenerstellung.
- Der Iconeditor kann Images und Icons als C Source ausgeben (ICN
Format, besonders wichtig für CPX Module).
- IMG Dateien können vom Iconeditor geladen und gespeichert werden.
- Interface kann eine komplette Resource als C Source ausgeben (RSH
Format). Das Format wurde so optimiert, daß alle Zeiger im RSH File
bereits richtig initialisiert sind.
- Fast alle Funktionen lassen sich durch Tastatur Shortcuts anwählen.
Alle Shortcuts können vom Benutzer durch Ändern der Interface
Resourcedatei neu belegt werden.
- In Formularen können mehrere Objekte gleichzeitig gewählt und ver-
schoben werden.
- Wenn mehrere Objekte selektiert wurden, lassen sich die Flags
(ob_state und ob_flag) gleichzeitig und global durch die Funktions-
taste F6 ändern. Dabei wird eine echte 'TriState' Logik benutzt:
"Setzen", "Löschen" und "Ignorieren". Ein Button mit dem Status
"Ignorieren" sorgt dafür, daß dieses Flag bei den selektierten
Objekten nicht verändert wird.
- Benutzerdefinierte Objekte (Extended Objekttypen) werden durch eine
Schnittstelle zu einem externen Programm (EXTOBFIX.PRG) unter-
stützt. Dieses Programm wird von Interface beim Programmstart nach-
geladen und kann die Testfunktion (F9) von Formularen und Alert-
boxen ersetzen.
Das auf der Diskette befindliche Programm stellt alle in den
FlyDials benutzten Objekttypen zur Verfügung.
Außerdem befinden sich in den Ordnern GEISS_1.EXT und GEISS_2.EXT
die EXTOBFIX.PRG Dateien für die in der 1. und 2. Auflage des
Buches "Vom Anfänger zum GEM Profi" benutzten erweiterten Objekt-
typen.
- Objektnamen können beim Kopieren von Objekten zwischen unterschied-
lichen Resource-Dateien mitkopiert werden.
- Ein UNDO ist beim Verschieben, Ändern der Größe und Löschen von
Objekten in einem Formular möglich.
- Zentrieren von Objekten.
- Auf Wunsch manuelle Größen- und Positionseingabe.
- Labels dürfen bis zu 16 Zeichen lang sein.
- Interface unterstützt das Accessory Protokoll von Gemini 1.2, und
arbeitet daher u.a. mit Treeview und CLOCK zusammen.
- In allen Dialogboxen von Interface kann der Cursor mit der Maus
buchstabengenau positioniert werden. Nach dem Druck auf die INSERT
Taste erscheint eine Sonderzeichen-Dialogbox, wenn Sonderzeichen in
dem Eingabefeld zugelassen sind.
- Alle Dialoge lassen sich durch die FlyDials verschieben. Unter-
strichene Buchstaben geben den ALTERNATE Shortcut an.
- Eine Accessory Schnittstelle wurde implementiert, die anderen Pro-
grammen erlaubt, auf interne Daten und alle wichtigen Routinen von
Interface zuzugreifen. Dadurch könnte z.B. eine Sourcecode Ausgabe
für Modula oder Fortran realisiert werden.
- Interface läuft auf jedem Rechner in jeder Auflösung mit mindestens
1MB Hauptspeicher. Das Programm unterstützt bis zu 24 Laufwerke und
hat daher auch mit dem Atari CD ROM Treiber META DOS keine
Probleme. Da das Programm nur GEM Funktionen benutzt, arbeitet es
auch mit GEM 2.0 und GEM 3.0 zusammen.
- Die Headerdatei Ausgabe für Omikron Basic ist frei definierbar,
d.h. statt dessen kann man z.B. auch ohne viel Aufwand eine
Assembler-Ausgabe realisieren.
- In den Dialogboxen FREESTRING, BUTTON und ALERT gibt es mehrzeilige
Eingabefelder, die als ein zusammenhängendes Feld bearbeitet wer-
den. Dadurch dürfen Strings bis zu 130 Zeichen, und Free Strings
bis zu 260 Zeichen lang sein.
Neue Funktionen in Interface 2.0:
- "Nächstes"-Button in allen Objekt- und Baumdialogen, um direkt zum
nächsten Objekt oder Baum zu gelangen.
- 2 Resourcedateien können miteinander verglichen werden. Sinn der
Funktion ist, daß man damit z.B. fremdsprachige Resourcen leichter
pflegen kann, und Fehler schneller findet.
- Die Baum- und Objektebox ist in ein Fenster gelegt worden.
- Man kann in der Suchfunktion auch nach irgendwelchen Texten in der
Resource suchen. Groß/Kleinschreibung wird nicht unterschieden.
- Alle Dialoge wurden in Fenster gelegt (Abschaltbar!).
- Resourcen dürfen (fast) beliebig lang werden. Die Anzahl der Ob-
jekte pro Baum ist auf 1024 begrenzt; jede Resource kann unbegrenzt
viele Bäume enthalten (kein Beschränkung mehr auf max. 256 Bäume).
Wenn mehr als 256 Bäume verwendet werden, muß die Resource im HRD-
Format abgespeichert werden. Resourcen in diesem Spezialformat er-
zeugt man, indem man den Button "Lange Resourcen" einschaltet.
Routinen zum Laden solcher Resourcen werden im C Source mit-
geliefert. Die Verwaltung ist 100% kompatibel zu den alten Resour-
cen.
- Neuer Menüpunkt "Letzte Fassung". Er verwirft eine Resource und
lädt den alten Stand wieder ein.
- "HELP"-Button im BoxText-Dialog, der alle Platzhalter des p_valid-
Feldes anzeigt.
- Im Einstellungsdialog kann man eine Sizebox einschalten, die für
jedes Objekt unter der Maus die Size-Ecke anzeigt.
- Die MyDials in Interface unterstützen Cut/Copy/Paste mit Control-
X/C/V über das Clipboard in allen Dialogen.
- Im Boxtext-Dialog sind für p_valid die Zeichen "A"-"Z" und "a"-"z"
zugelassen, damit man für eigene benutzerdefinierte Objekte neue
Eingabetypen verwenden kann.
- Man kann eigene Objekte in die Objektebox von Interface einbinden
(FlyDial-Ecke, OK-Button, ...).
- Das X/Y-Raster wird für jede Resource getrennt verwaltet.
- Im Dialog "Einstellungen" gibt es den Punkt "Label-Prefix". Wenn
dieser Punkt selektiert ist, stellt Interface jedem neu einge-
gebenen Label eine einstellbare Anzahl von Zeichen des Baumnamens
voran. Ein Trennzeichen kann auch definiert werden.
- Durch den Menüpunkt "Objektnummer fest" kann man verhindern, daß
sich Objektnummern bei Aktionen verändern. Statt dessen ändert
Interface nur die Verkettung der Objekte. Funktioniert auch in
Menübäumen. Wenn diese Option selektiert ist, ändert Interface auch
nicht mehr die Position unsortierter Menübaumeinträge.
Wenn ein neues Objekt in einen Baum eingefügt wird, wird es an das
Baumende angehängt, und verändert daher nicht die Objektnummern
anderer Objekte in diesem Baum.
Sortieren ist auch möglich. Dabei wird nur die Objektverkettung
umgehängt, alle Objekte bleiben an ihrem Platz.
Wenn dieser Schalter gesetzt ist, sollte es leicht möglich sein,
fremde Resourcen zu ändern, ohne daß das Programm dadurch Schaden
nimmt. Es kann nur zu Fehlern kommen, wenn ein Programm der
Objektverkettung der eigenen Resource folgt. Aber das dürfte fast
nie vorkommen.
- Headerdateien werden nur abgespeichert, wenn Labels verändert oder
gelöscht wurden, oder wenn der Resourceinfo-Dialog mit "OK" ver-
lassen wurde. Das dürfte alle Compilerbenutzer freuen, deren Com-
piler sonst das komplette Projekt neu compilieren würde.
- Der Iconeditor unterstützt das Clipboard. Alle Icons und Images
werden im IMG und im ICO (IconEdi) Format abgespeichert und
geladen.
- Ein Clipboard für Objekte wurde eingebaut. Objekte zieht man ein-
fach aufs Clipboard, bzw zieht sie wieder aus dem Clipboard auf ein
Dialog- oder Menüfenster. Man darf selbstverständlich auch mehrere
Objekte gleichzeitig aufs Clipboard kopieren.
- Beim Sortieren kann man die Sortierrichtung invertieren, d.h. man
kann z.B. Dialoge bauen, die sich von unten nach oben aufbauen
(igitt!).
- Manuelles Sortieren: Die zu sortierenden Objekte müssen in der
Reihenfolge angeklickt werden, in der sie später gezeichnet werden
sollen.
- Fast alle möglichen Daten des Desktops werden abgespeichert, damit
man Interface nach dem Verlassen später wieder im gleichen Zustand
vorfindet (wie in Pure C).
Abgespeichert wird:
- Die Position aller Icons
- Die Größe, Position und Sliderposition aller Resourcedateifenster
(dazu zählt das Baumfenster, Formularfenster und Menüfenster)
- Die Größe, Position und Sliderposition des Desktopfensters
- Alle geladenen Resourcedateien (natürlich nur die Pfade)
- Die Position der Toolbox-Fenster
Alle Koordinaten werden bei einem Auflösungswechsel ggf geändert,
damit man immer noch alle Objekte erreichen kann.
- Die Position jedes geöffneten Baumfensters wird für alle Icons
(max. 15) gespeichert. Wenn man eine Resource lädt, wird das
Fenster an der alten Position geöffnet. Interface verhält sich
damit ähnlich, wie der Atari Desktop.
- Formularfenster und Menüfenster werden relativ zum Baumfenster ge-
öffnet. Das soll die Übersicht etwas erhöhen, und dürfte vor allem
Großbildschirmbesitzer freuen.
- Ein Tip für alle, die den Interface-Desktop nicht mögen: Desktop
ins Fenster legen, Parameter speichern, Interface erneut laden,
Desktop schließen, Parameter erneut speichern.
Bei allen weiteren Starts erscheint kein Desktop mehr.
- Mit F8 kann man das eingestellte Raster aller Resourcen auf Pixel-
raster umschalten. Bei einem erneuten F8 werden die alten Raster-
einstellungen restauriert. Der Sinn ist eine schnelle Umschaltung
zwischen Buchstaben- und Pixelraster
- Die Menüzeile kann auch ins Desktopfenster gelegt werden
(vorausgesetzt, daß der Desktop im Fenster liegt).
- Beim Verschieben eines Objekts kann man das Objekt "unter" ein
anderes Objekt schieben. Es wird dem Zielobjekt nicht als Child
zugeordnet, wenn man auf die Alertbox "Soll die Objektstruktur
geändert werden? Abbruch/Nein/Ja" mit "Nein" antwortet. Diese Alert-
box erscheint nur, wenn das verschobene Objekt und das Zielobjekt
ein gemeinsames Parent besitzen.
- Icons und Images können durch den Button "Minimale Größe" soweit
wie möglich verkleinert werden, ohne daß Daten verloren gehen.
Dabei wird das Image soweit nach links oben geschoben, bis kein
weißer Rand mehr existiert. Dann wird der rechte und untere Rand
abgeschnitten. Zuletzt wird das Image wieder zentriert.
- Der Objekttyp "G_USERDEF" wird direkt von Interface unterstützt.
Dabei legt Interface eine OBJECT-Struktur an, deren ob_spec-Pointer
auf eine USERBLK-Struktur zeigt. Für jedes Objekt wird in der
Resource eine eigene USERBLK-Struktur angelegt.
"ub_parm" kann direkt in Interface eingegeben werden. "ub_code"
enthält einen NULL-Pointer, d.h. nach dem Einladen einer solchen
Resource muß man als erstes in "ub_code" aller Userdef-Objekte
einen Zeiger auf die eigene Zeichenroutine eintragen.
- Unter MultiTOS kann man auch in den Toolbox-Fenstern und im Fen-
ster-Desktop arbeiten, wenn sie im Hintergrund liegen (sie werden
nicht getopt). Man muß dann dabei nicht mehr die rechte Maustaste
drücken.
- Ein Wrap-Modus für die Sizebox wurde implementiert. Auf hochdeutsch
heißt das, daß man Objekte in alle möglichen Richtungen vergrößern
und verkleinern kann. Es gibt immer noch nur die Sizebox in der
rechten, unteren Ecke der Objekte. Aber wenn man die Ecke über das
Objekt oder links davon zieht, wird auf eine andere Ecke "u-
mgeschaltet".
- AV_STARTPROG wird für Resourcedateien unterstützt (z.B. im Zu-
sammenspiel mit FSearch von Stefan Gerle).
- Fast alle Strings der Modula-Headerausgabe liegen in der Interface-
Resource, und sind dadurch frei definierbar.
- Die Shortcuts in Menübäumen werden automatisch rechtsbündig an-
geordnet. Dabei beachtet Interface folgende Regeln zur Erkennung:
- Der Shortcut startet ab dem ersten Blank, das von rechts ge-
funden wird.
- Vor der Tastenangabe muß mindestens ein Kontrollzeichen für
Shift, Control oder Alternate stehen, oder es folgt sofort die
Tastenangabe; dann sind aber nur Sondertasten wie HELP, INSERT
usw erlaubt.
- Nach dem oder den Kontrollzeichen muß eine 1 Zeichen lange
Tastenangabe folgen, oder eine Angabe einer Sondertaste.
Wenn diese Bedingungen erfüllt sind, werden die Shortcuts nach
folgenden Regeln angeordnet:
- Vor jedem Shortcut müssen mindestens 2 Spaces stehen.
- Steht am Textende ein "..." (z.B. in "Öffnen..."), dann reicht
in dieser Zeile 1 Space vor dem Shortcut aus.
Die erlaubten Zeichen für die Kontrolltasten stehen in der Inter-
face Resource im Free String "SHORTCUT". Die erlaubten Sondertasten
stehen im Free String "SH_KEYWORDS". Vor und hinter jeder Sonderta-
ste in diesem Free String muß ein "/" stehen.
Dadurch sind fast alle denkbaren Shortcuts von Interface erkennbar.
Einzige Ausnahme ist ein einzelner Buchstabe, vor dem kein Kontroll-
tastenzeichen steht. Ich habe diese Möglichkeit absichtlich aus-
geklammert, damit Interface nicht versehentlich ein Zeichen aus
einem Menüeintrag ohne Shortcut falsch anordnet (z.B. "Bild 1").
- Die MyDials und Interface kommen unter MultiTOS auch mit anderen
Systemfontgrößen zurecht.
- In jedem Objekt-Dialog gibt es einen Hilfebutton, der einen Hilfs-
dialog über alle erweiterten Objekttypen anzeigt.
Dieser Dialog kann im Extobfix-Prg enthalten sein. Wenn eine Ex-
tobfix-Datei mit Hilfeseite geladen wurde, wird von Interface immer
diese Seite angezeigt. Ansonsten wird eine Default-MyDial-Hilfesei-
te angezeigt.
- Jeder Variablen der C Source Ausgabe (RSH) kann man ein "static"
voranstellen lassen. Dadurch sind alle Variablen Modullokal dekla-
riert, und man kann mehrere Resourcen in ein Programm übernehmen.
Der Button befindet sich neben dem RSH-Button.
Interface 2.01:
- In der Suchfunktion dürfen Unix-Wildcards benutzt werden.
- Wenn die Suchfunktion ein Objekt in einem Menübaum findet, wird das
entsprechende Pulldown automatisch aufgeklappt.
- Der Iconeditor liest jetzt auch Farbbilder (XIMG-Format), aber man
kann weiterhin nur die erste Plane ausschneiden. Besonders sinnvoll
ist diese neue Möglichkeit also nicht. Sie stellt nur den ersten
Schritt dar, um später die neuen Farb-Icons von Atari zu unter-
stützen.
- Die MyDials unterstützen den Befehl "my_menu_key", um einen Short-
cut in einem Menübaum zu suchen. Näheres dazu in der MyDial-
Anleitung.
- Beim Testen von Menübäumen überprüft Interface alle Shortcuts auf
Doppelbelegungen. Wenn ein Shortcut mehrfach in einem Menübaum
verwendet wurde, wird eine Warnung ausgegeben.
Wenn der Punkt "Menü-Tastaturkürzel anordnen" ausgeschaltet wurde,
wird keine Überprüfung durchgeführt.
Interface 2.20:
Interface unterstützt jetzt auch die Falcon-Farbicons für _jede_ TOS-
Version, wenn die mitgelieferten Routinen verwendet werden.
Die Farbicon-Routinen sind GEM-konform programmiert worden und soll-
ten auf jeder Grafikkarte laufen.
- Farbicons können direkt aus XIMG-Bildern ausgeschnitten werden.
Überzählige Planes werden dabei einfach abgeschnitten.
- Wenn man ein selektiertes Icon erzeugt, wird automatisch das selek-
tierte Bild des besten Icons einer niedrigeren Plane-Anzahl übernom-
men (sofern es eins gibt).
- Block kopieren wurde im Iconeditor eingebaut. Die Funktion wird
über Shift-Control-C oder über die Menüleiste des Iconeditors auf-
gerufen.
- ICN-Dateien können jetzt auch für Farbicons geladen und gespeichert
werden.
- Die Kreisroutine wurde neu programmiert. Gefüllte Kreise werden in
Farbauflösungen jetzt deutlich schneller gezeichnet.
- Die Systemfont-Abfrage wurde verbessert.
- Man kann beim Füllen auch die Maskenfarbe in andere Farben füllen.
- Die Maske wird durch Kreuze dargestellt, damit man sie besser von
Grautönen unterscheiden kann.
- Ich habe die Image-Speicherverwaltung umgestellt. Das neue Limit
liegt bei 10240 Image-Blöcken. Wenn man zu jedem monochromen Icon
ein Farbicon mit Selektionsbild anlegt, reicht das für ca 1700
Icons pro Resource.
Bei 1700 Icons mit einer Größe von 32*32 Punkten würde solch eine
Resource ca 2,6 MB groß sein.
- Interface speichert Icons im XIMG-Format.
- Der Iconeditor kann OS/2 und WINDOWS-Farbicons vom Format 32*32 mit
16 Farben laden (trifft für 95% der Icons zu).
- Im Iconeditor kann man sich die Palette der Resource mit "Palette
anzeigen" anzeigen lassen. Mit "Standard-Palette" schaltet man
wieder die Palette ein, die Interface beim Programmstart vor-
gefunden hat.
- "Pulldown-Leerzeichen optimieren" ist wieder im Einstellungsdialog,
da mich mehrere darum gebeten haben. Außerdem wird ein Pulldown-
Eintrag, der mit "-" anfängt und endet und disabled ist, nicht mehr
verändert. Dadurch kann man kleine Teilüberschriften in Pulldowns
unterbringen (z.B. "--- Ausgabe ---").
- In der Modula-Ausgabe wird wieder eine Export-Liste in der DEF-
Datei mit ausgegeben.
- Beim Ausschneiden von Blöcken in XIMG-Bildern gibt es keinen 16
Pixelsnap mehr. Die Blockbreite kann jetzt pixelgenau gewählt wer-
den. Außerdem kann man den ausgeschnittenen Block in ein Icon
einfügen, wenn er kleiner als das Icon ist. Er ersetzt jetzt nicht
mehr das komplette Icon.
- Die MyDials unterstützen den Befehl "get_sysfnt" um die Art und
Größe des Systemfonts zu erfragen.
Besondere Tastaturfunktionen von Interface:
Mehrere Objekte können durch Aufziehen eines Rahmens selektiert wer-
den. In Formularen muß die ALTERNATE-Taste gedrückt werden, um einen
Rahmen aufzuziehen.
Einzelne Objekte können mit gedrückter SHIFT-Taste selektiert werden.
Wenn ein Objekt verschoben wird, und der Benutzer während des Loslas-
sens der Maustaste die SHIFT-Taste gedrückt hält, wird das Objekt
kopiert.
Wird während des Anklickens eines Objektes die CONTROL-Taste gedrückt
gehalten, wählt man statt dessen das Objekt unter dem angeklickten
Objekt aus. CONTROL kann mit ALTERNATE und/oder SHIFT kombiniert
werden.
Um in mehrzeiligen Eingabefeldern den Text rechts vom Cursor in die
nächste Zeile zu befördern, muß SHIFT INSERT gedrückt werden.
Alle Fenster können auch mit den Cursortasten gescrollt werden.
Tastaturfunktionen in Dialogboxen:
CONTROL + Cursor: Cursor wortweise bewegen.
SHIFT + Cursor: Cursor an Anfang/Ende der Zeile bewegen.
Um das Format einer Resource Datei anzusehen und zu ändern, muß man
das dazu gehörige Icon auf dem Desktop selektieren, und die 'Info'-
Funktion aufrufen (F4).
Die 'Info'-Funktion liefert über fast alle Objekte Informationen. Mit
'Hilfe' erhält man eine Übersicht über die Funktionen der SHIFT,
CONTROL und ALTERNATE Tasten.
In dieser Demoversion ist das Speichern von Daten nicht möglich.
Deshalb ist in dem Ordner RSH eine Beispieldatei, die die RSH (C
Source) Ausgabe und die Headerausgabe in verschiedenen Sprachen demon-
striert.
Interface ist erhältlich bei der
SHIFT Computer & Werbung GmbH
Kompagniestraße 13
D-2390 Flensburg
Telefon (0461)22828
Fax (0461)17050