23.Mär.2015
amigaworld.net (Webseite)
|
GUI-Toolkit für Hollywood: erste Demo-Version des plattformunabhängigen HGui
HGui ist ein mit Hollywood entwickeltes GUI-System, das im Gegensatz zum Amiga-spezifischen MUI Royale für alle von Hollywood unterstützten Plattformen verfügbar wäre. Die Entwicklung sei weitgehend abgeschlossen, ein erstes Demo steht jetzt zur Verfügung (Download-Seite).
Der Autor Fabio "Allanon" Falcucci denkt nach eigenen Angaben über eine kommerzielle Veröffentlichung nach. Sinn der Demo-Veröffentlichung ist es, zu dieser Frage etwas Feedback einzuholen. Bei entsprechender finanzieller Unterstützung stellt Falcucci Tutorials und "umfassenden Entwickler-Dokumentation" in Aussicht.
Geplant sind zwei verschiedene Veröffentlichungen: Zum einen als fertig kompiliertes Applet, zum anderen als Quelltext. Beide Varianten würden mit Tutorials und Entwicklerdokumentation ausgeliefert. Den aktuellen Entwicklungsstand beschreibt der Autor als "stabil und benutzbar". Es seien noch einige kleinere Fehler zu beseitigen, außerdem fehlten noch einige der geplanten Eigenschaften.
Die Eigenschaften seines GUI-Toolkits beschreibt Falcucci wie folgt:
General features
- Object Oriented Programming
- Flexible and multi-layered skin system
- Easy of use
- Fast
- Scalable (tuning the cache system and the theme)
- Since HGui does not depend on any system specific command/library all developed projects can be compiled for any system supported by Hollywood, your GUIs will be the same on every platform, exactly the same.
Windows system
- Each window you create supports the following events:
- OnClose
- OnMove
- OnActivate
- OnDeactivate
- OnHide
- OnShow
- OnSize
- User definable minimum and maximum sizes
- Automatic control of the window's order
- Methods to control/edit on the fly the created windows
- Various background type supported
- Special windows to build up quickly progress indicator and/or messages for long operations.
- Window's menu (not the ones available with Hollywood but a custom one that allow you to include any gadget type into it.
- Functions to find window objects by name, by Hollywood ID, and to check if a window exists or not.
- Ability to attach hotkeys to any window to execute specific tasks when a keypress occurs.
Gadgets system
- Supported gadget classes
- Box
- Vertical Divider
- Horizontal Divider
- Label
- Group (Generic, Radio, Check)
- Button
- Switch
- Scrollbar (Vertical/Horizontal)
- Slider (Vertical/Horizontal)
- ProgressBar
- Knob
- Text (for user input)
- ListView
- TreeView
- DropDown
- Image
- Virtual Area
- Planned gadget classes
- Ability to switch the cache system on or off
- On: each gadget state will be cached, faster but more memory required
- Off: each gadget state will be rendered directly, slower but with a lower memory footprint.
- Each gadget can be skinned individually
- Each gadget class can be skinned globally
- Support for icons inside gadgets with custom alignment and text adjustment
- Flying tips for some gadgets
- Sounds on some actions (OnOver, OnOut, OnPushed, OnDown)
- Supported actions:
- OnPushed
- OnDown
- OnOver
- OnOut
- OnDrop
- OnDropOut
- Some classes can have additional actions
- Functions to search buttons by their names
- Methods to control and modify on the fly existing gadgets
- Gadgets drag and drop (planned)
- Ability to attach a right-mouse action or a pop up menu (planned)
Layout system
- Gadgets can be arranged using the MUI concept, you define some gadgets that will be grouped inside another gadget, this way your GUI is represented by a tree where the tree root is a special gadget called 'rootGadget' already created for you when a window is created.
- Supported layout are:
- When you define child gadgets you can define the following properties:
- Gadget weights (percentual variable, percentual fixed, pixel variable, pixel fixed)
- Borders (top, bottom, left, right) from the father gadget
- Gap between childs in pixel
What's missing/needs more love
- Some little glitches to be fixed
- Keyboard navigation system
- Gadget's hotkeys
- Gadget's drag & drop
- ListView/TreeView column resize using the mouse
- Tabs class
- Spin class
- Documentation
- Tutorials
- Global theme management functions are not completed
- Support for XML Gui definition
(cg)
[Meldung: 23. Mär. 2015, 23:35] [Kommentare: 18 - 25. Mär. 2015, 18:58]
[Per E-Mail versenden] [Druck-Version] [ASCII-Version]
|