A Release!!! - Well Idle hands make cool stuff...
What is It?Basically Glade on steriods. (and it needs a good name!!)
What?Well Glade the UI builder is great for what it does, however app.Builder.js attempts to solve a few roadblocks in Glade
- Moving stuff around is klumsy - no drag drop - It's not very good for prototyping layouts...
- It's limited in what widgets can be added
- Coding (when used as an Ajunta addon) is just downright messy.
- It's difficult to extend/modify (and in some cases next to impossible)
- Adding additional properties to widgets is difficult
- Information is often hidden from display (how many clicks to find out what signals are connected)
- There is no 'run it and see' option.
- It's all done in Javascript - using a tree like structure (and it's fully self hosting) - the application is used to modify it'self.
- It uses GObject Introspection. which solves a number of issues
- All available properties can be set (and quickly listed, with documentation)
- how widget's can be packed, can be determined from introspection of the methods.
- all signals are available, and stubs are created for you to start implementing.
- Making extra widgets to the application is just a matter of editing files (eventually a UI will enable you to pick from a list of available Introspection elements... )
- You can build web Applications (using toolkits like RooJS) - ExtJS, Moo etc. could be easily added..
- It should be quite easy to build Clutter applications...
that enables you to create a JSON like tree, and XObject will turn your tree into an application.
Key features of the XObject are
- xtype - the name of the GObject (eg. Gtk.Window)
- packing - the pack property, can be a string (comma seperated indicating how an element is packed to it's parent)
- id - all objects can have ID's you can fetch any object using this.get('the_id') as long as it's a child of the current element. To look up the tree, use a '.' at the start, or to start at the top of the tree use '/', eg. this.get('/Window') get's you the window. this.get('/Window.toolbar') get's you the first toolbar in the window.
- el - when an element is created, the GObject is always stored in this.el
- |pipe - properties - currently the editor uses '|' as a prefix to indicate the value is raw Javascript (eg. a function or Value, that when used should not be quoted as if it was a string.
What's to do...Quite a few tweaks.. It works, but could do with more time in polishing the interface. My personal goal is to save time using it as a productivity tool, for development. Which is basically where it's at..
Where do I get it?Download a tarball app.Builder.js.2010-05-25.tgz or git clone [git.akbkhome.com]
once unpacked/cloned.run install_gir.sh - to update your gir files.If you want to try RooJS editor - you need git thenrun update.sh
What do I need to get it to work?basically a working gobject instrospection installation (.gir files and .typelib files) and the latest version of the Gnome seed interpreter- I know it works on Linux. I would be interested to hear if it works on other platforms.Note: there is a update script in the distribution which fixes the currently available Gtk gir's (please read the readme.txt for more info)