Archiv für September 2008

FaceLabs — Vererbungsstruktur und erster Screenshot

Freitag, 05. September 2008

Ich arbeite ja an mehreren Baustellen gleichzeitig. Insofern gibt es dieses Mal weder was Neues von den Rigid Bodies noch vom Scripting-System. Heute zeige ich euch den bisherigen Aufbau der FaceLabs anhand eines Diagramms mit der Vererbungsstruktur der “Face-Klassen”. Zusätzlich gibt es schon mal einen kleinen Screenshot.

Unter einem “Face” wird hierbei ein Element der grafischen Benutzeroberfläche verstanden, das Benutzereingaben entgegennimmt oder lediglich der Darstellung von Informationen dient. Die Faces untergliedern sich in drei Kategorien: Static-Faces wie Labels und Progress-Bars bieten nur optische Informationen. Mit ihnen kann der Benutzer nicht interagieren. Control-Faces nehmen zusätzlich noch Benutzereingaben entgegen. Hierzu zählen Buttons, Check- und Edit-Boxes, Radio-Buttons und Slider. Collection-Faces stellen Zusammenstellungen mehrerer Faces dar. Collections können ihrerseits zum einen in Form von Containern oder in Form von Fusion-Faces auf den Plan treten. Der unterschied dabei besteht darin, dass Container eine dynamische Anzahl untergeordneter Elemente haben, während Fusion-Faces eigenständige Elemente darstellen, die jedoch aus anderen Faces zusammengesetzt sind. Dazu zählen Drop-Down- und List-Boxes sowie Scroll-Bars. Eine Scroll-Bar wird z.B. aus zwei Buttons und einem Slider gebildet. Container kommen neben Group-Boxes (zur optischen Gruppierung von Elementen) hauptsächlich in Form von Windows vor. Dabei wird zwischen Frames und Popups unterschieden, wobei Frames “ganz normale” Fenster darstellen, die eine Titelleiste haben und verschiebbar sind etc. Popups sind kleine Fensterlein, die “aufpoppen” und wieder verschwinden, wenn nicht mit ihnen interagiert wird. Eine Drop-Down-Box z.B. lässt ein Popup-Fenster erscheinen, wenn der entsprechende Button gedrückt wird. Das Popup-Fenster der Drop-Down-Box enthält dann eine List-Box mit den auswählbaren Elementen. Eine Sonderform der Frames stellen Dialog-Fenster dar. Wenn ein Dialog-Fenster aktiv ist, kann mit anderen Fenstern erst wieder interagiert werden, nachdem das Dialog-Fenster geschlossen wurde — es sei denn, es handelt sich um ein Popup- oder ein weiteres Dialog-Fenster, das durch das aktuell aktive Dialog-Fenster hervorgerufen wurde.

Der Screenshot enthält ein “normales Fenster” (Frame) mit einem Label, einem Button, einer Check-Box und zwei Radio-Buttons, einer Edit-Box sowie einer Group-Box, die ihrerseits eine List-Box enthält. Die Render-States sind noch nicht optimiert. Das kann man sehen, wenn man sich die orangene Schräge der Titelleiste des Frame-Fensters und die verschiedenen Texte ansieht: Die Darstellung ist stellenweise etwas pixelig (was man hier aber nicht so deutlich erkennen kann, weil der Screenshot verkleinert wurde).