mGUI ist eine Bibliothek von Funktionen die für die Sprache Blitz3D und Blitz+ verschiedene Elemente bereitstellt welche in ihrer Gemeinschaft ein Graphical User Interface bilden. Durch die Zusammenstellung verschiedener Elemente können so Oberflächen erzeugt werden die eine einfache und zielgerichtete Kommunikation zwischen dem Programm und dem Nutzer ermöglichen.

Mehr oder weniger aus Zeitnot habe ich mich entschlossen mGUI zu Veröffentlichen. Ich gebe den Source Code unter einer Creative Commons 2.0 by-nc-sa Lizenz frei. Was die Lizenz besagt findet ihr gut beschrieben wenn ihr dem Link folgt.

Die Entwicklung von mGUI ist noch nicht vollständig abgeschlossen und ich kann auch keine Bugfreiheit garantieren. Für die Weiterentwicklung wurde ein Team gegründet welches sich unter Aufsicht von Sonni (Valnar) befindet. Ihr findet Angaben hierzu unter: mGUI Dev Team.

Ich würde mich freuen wenn sich einige fähige Leute finden die mGUI zum Abschluß bringen und dem GUI den letzten Schliff verpassen.

Klicken Sie hier um die Datei jetzt herunter zu laden.

Datei: mgui_fr.rar

Größe: 4.47 MByte


FAQ

Für wen ist mGUI geeignet?
mGUI wurde speziell für den kleinen Kreis an Programmierern entwickelt die in Blitz3D oder Blitz+ Anwendungsprogramme erstellen möchten. Es ist weder ein InGame GUI, noch wurde es für FullScreen Einsätze konzipiert, auch wenn dies durchaus möglich ist. Ein bzw. das besondere Augenmerk liegt demnach vor allem in einer guten Handhabbarkeit, einer hohen Stabilität sowie einer größtmöglichen Geschwindigkeit bei verträglichem Design.

Nochmals der Hinweis: mGUI ist für den Fenstermodus konzipiert worden. Sollten Sie mGUI im Fullscreen einsetzen stehen die Menüs (Fenster- und Kontextmenü) wie auch die Requester nicht zur Verfügung! Sollten Sie das GUI in B+ einsetzen steht Ihnen die Textausgabe per FastText nicht zur Verfügung. Ausserdem kann das GUI nur im Graphics Fenster, nicht in Blitz+ Fenstern die mit CreateWindow erstellt wurden, ausgeführt werden.

Voraussetzungen
Damit mGUI im vollen Funktionsumfang genutzt werden kann benötigen Sie die Programmiersprache Blitz3D ab Version 1.98 bzw. Blitz+ ab Version 1.40. Sollten Sie eine andere Blitz Variante oder Version nutzen könnten Probleme bei der Verwendung einiger Funktionen und Bibliotheken auftreten.

Ideen und Realisierung
Nachfolgend möchte ich versuchen die Gedankengänge die mir vor bzw. bei der Entwicklung von mGUI durch den Kopf gingen zu schildern um zu beschreiben warum mGUI so ist wie es ist.

Geschwindigkeit
mGUI ist sicherlich eines der schnellsten GUIs die jemals für BlitzBasic entwickelt wurden. Möglicherweise gilt dies nicht im Vergleich mit realen 3D GUIs, wohl aber für 2D. Dies wurde bei mGUI durch mehrere neue Konzepte verwirklicht.

Bedienbarkeit
Der Teufel steckt bekanntlich im Detail. Für meinen Teil ist ein solches Detail z.B. ein Texteingabefeld. Man kann sich kaum vorstellen welch ein Aufwand dahinter steckt so etwas zu programmieren. Im Falle von mGUI ein sehr hoher. Das Textfeld beherrscht sämtliche Funktionen der Eingabe und Textmanipulation die man von Windows kennt. Das heißt, markieren, im Text springen, löschen, einfügen usw. All das natürlich auch mit der Maus, mit TrueType Fonts und sogar das ClipBoard funktioniert so das Text aus oder in andere Anwendungen kopiert werden kann. Das Konzept einer guten und gewohnten Bedienbarkeit wurde übrigens, soweit es ging, auf alle Elemente übertragen.

Schlicht aber schön
Zugegeben. Das schönste GUI ist mGUI mit Sicherheit nicht und das Skinsystem ist nicht das beste was es gibt. Dennoch, denke ich, ist es nicht das schlechteste und mit etwas Überlegung und Anstrengung kann man auch hier gute, ansehnliche Skins entwerfen. Letzlich, wie schon mehrfach erwähnt, kam es mir bei mGUI auf die Geschwindigkeit an. Leider muß man in dieser Beziehung einen Kompromiss eingehen. Schnell oder schön.

Ein herausstechendes Feature in mGUI ist die Möglichkeit Textausgaben in gewissen Grenzen zu formatieren. Das heißt, wenn sie Text ausgeben wollen in Label, Button, TreeView o.a., können Sie den Text - auch in Teilen - fett, kursiv, unterstrichen oder eingefärbt darstellen - natürlich auch in Kombination.


Im Rahmen der Entwicklung von mGUI hatte ich begonnen einen Visual Editor zu programmieren. Er sollte IceBird heißen und in diversen Videos hatte ich schon die Leistungsfähigkeit angedeutet.

Einige "Fehlgedanken" in der Planung dieses Projektes führten dazu das ich das Programm 3 x begonnen habe. In der ersten Version sollte es eine Ein Fenster Anwendung werden die ausschließlich auf mGUI basiert. In der Version 2 versuchte ich es mit 2 Fenstern um das Programm übersichtlicher zu gestalten. Jedes Fenster war eine Blitz3D Applikation die untereinander Daten austauschten. Auch diese Variante erwies sich in der Praxis als untauglich, so das ich eine 3. Version begann.

Die dritte Version, die derzeit aktuelle, basiert auf Blitz+ und nutzt dessen Fähigkeiten mehrere Fenster anzulegen. Da mGUI prinzipiell auch hier funktioniert war ich mit dieser Lösung zunächst recht glücklich, bemerkte aber schnell die Schwächen von Blitz+ und dessen recht unzureichende Unterstützung der eigenen Gadgets. Daher waren hier viele Sub Routinen erforderlich um mit Blitz+ selbst erst einmal vernünftig ein Programm erstellen zu können.

Alles in allem ist auch IceBird noch lange nicht fertig. Dennoch biete ich auch dies hier zum Download an. Es gelten die gleichen Lizenzbestimmungen wie für mGUI selbst.
Klicken Sie hier um die Datei jetzt herunter zu laden.

Datei: mgui_icebird.rar

Größe: 1.63 MByte


Zu guter letzt habe ich hier noch eine Sammlung an diversen Logos, Wallpaper und Icons für mGUI. Ihr könnt diese wo ihr möchtet euren Projekten oder Webseiten hinzufügen.
Klicken Sie hier um die Datei jetzt herunter zu laden.

Datei: mgui_logos.rar

Größe: 378 KByte