dlgldrdoc

Pascal Krahmer pascal at beast.de
Mon Aug 30 15:46:57 UTC 1999


Der Anfang



KDlgLoader
==========

Programmierhandbuch
-------------------

Inhaltsverzeichnis
------------------

1. Vorwort
1.1. Entwicklungsstand und Pläne
2. Funktionen der Bibliothek



1. Vorwort

Vor dem Erscheinen des Dialog Editors in KDevelop (dieses Bahnbrechende Ereignis
fand ca. 1999 Jahre nachdem ein Mensch an einen Baumstamm genagelt wurde, weil er
vorgeschlagen hat, die Menschen könnten zur Abwechslung ja auch mal nett
zueinander sein statt) gab es nur wenige Möglichkeiten, Dialoge graphisch und
intuitiv zu erstellen.

Stattdessen musste jedes Element und jede Eigenschaft des Elementes eines Fensters,
beziehungsweise eines Dialoges, umständlich im Programmcode erstellt werden. Da wohl
nur sehr Wenige im Stande sind, den Dialogaufbau auf Anhieb pixelgenau zu schätzen
und das ganze in Programmcode umzusetzen, war es vonnöten, vom Try-Change-Compile-Verfahren
massiven Gebrauch zu machen. Die Erstellung optisch wirklich anspruchsvoller Dialoge
wurde damit zur Qual, weshalb sich bislang ein Großteil der Dialoge auf das Nötigste
beschränkt waren oder gar, in bestimmten Situationen wichtige, Optionen nicht
anboten.

Um dieser etwas traurigen Tatsache abhilfe zu schaffen, setzte ich mich eines Tages
daran, einen Dialogeditor zu schreiben. Schön und gut, nach circa zehn Tausend
Programmzeilen hatte ich ein Programm (fast) nach meinen Wünschen. Der Benutzer
kann Dialoge auf einfachste und von Windows her bekannte Weise erstellen und verändern.
Gespeichert werden diese Dialoge, zunächst nur für den Editor, in Dialogdefinitionsdateien.
Bei weiterreichenden Überlegungen stieß ich schließlich auf das Problem, wie die Dialoge
ins Programm kommen.

Frühere Programme dieser Kategorie erzeugten Quellcode, der ins Programm eingebunden wurde.
Der Programmierer durfte die erzeugten Sektionen jedoch auf keinen Fall ändern, da sonst das
spätere Modifizieren des Dialoges nicht mehr möglich war. Ein anderer bedeutender Nachteil
dieser Vorgehensweise ist, das bei jeder Änderung des Layouts das komplette Programm neu
übersetzt werden musste. Auf internationalisierte Programmversionen angepasste Dialoge waren
deshalb nicht ohne weiteres möglich.

Aus diesem Grund entwickelte ich eine Programmbibliothek, die einfach statisch oder dynamisch
in das Programm eingebunden wird und Dialoge aus den Dialogdefinitionsdateien laden und
wiederherstellen kann. Das Programm nutzt bestimmte Funktionsaufrufe der Bibliothek um
Dialoge aus den Dateien zu laden und Zeiger auf die Elemente (Widgets) zu bekommen. Dadurch
wird es möglich, Layouts ohne erneutes Compilieren zu ändern und, in späteren Versionen,
Dialoge zu internationalisieren (d.h. für jede Sprache bzw. Region einen angepassten Dialog
bereitzustellen).

Weiterhin nutzt auch der Dialogeditor diese Bibliothek um eine echte WYSIWYG (What you see is
what you get) Vorschau zu ermöglichen.


1.1. Entwicklungsstand und Pläne

Im derzeitigen Entwicklungsstand unterstützt der DialogLoader (DlgLdr) folgende Funktionalitäten:

- Laden aller vom Dialogeditor unterstützen Widgets samt ihrer Eigenschaften.
- Zurückliefern eines Zeigers auf ein einzelnes Widget nach Angabe der "Name" bzw. "VarName" Eigenschaft.
- Freigeben des vom Dialog genutzten Speichers beim Schließen des Dialogs.

Nicht unterstützt aber geplant ist :

- Internationalisierung der Texteigenschaften.
- Layoutmanagement (AutoSizing)
- Einbinden neuer, benutzerdefinierten Elemente.
- Statisches Einbinden (bisher nur Dynamisches)


2. Funktionen der Bibliothek






--
Pascal Krahmer
pascal at beast.de
www.beast.de




More information about the KDevelop-devel mailing list