The aim of this project is to implement the Qt UI framework with window manager in javascript.
Demo video: http://www.youtube.com/watch?v=hYE8oewhFkE
The implemented features:
BWidget is a container to store special widgets (buttons, comboboxes, ...) inside it. If you don't define parent widget in its constructor, the widget gets window frame.
var widget = new BWidget(); widget.setWidth(445); widget.setHeight(55); widget.show();
Note: Without defining its parent it creates a window border with close and minimize icons.
You can use signal-slot mechanism to bind the button click signal to a method.
var button = new BButton(); button.show(); button.setWidth(445); button.setHeight(55); button.setText('This is a button...'); connect(button, 'onclick', this, 'selection'); function selection() { alert("Clicked"); }
var combobox = new BComboBox(); combobox.setWidth(150); combobox.setHeight(20); combobox.insertItem('This', 0); combobox.insertItem('is', 1); combobox.insertItem('a', 2); combobox.insertItem('combobox', 2); combobox.show();
Get the selected value of the combobox:
combobox.currentText();
Change to multi-selection mode:
combobox.setSelectionMode( SelectionMode.Multi );
var listbox = new BListBox(parent_widget, 'my listbox'); listbox.setWidth(100); listbox.setHeight(60); listbox.show(); listbox.insertItem('one',0); listbox.insertItem('two',1); listbox.insertItem('three', 1);
Creating 3x3 button widget in a window. You just need to set common widget element as a parent of the buttons to see them in the same window.
var window = new BWidget(); window.setCaption('3x3 buttons'); for(var i = 0; i != 10; i++) { var button = new BButton(window); button.setHeight(50); button.setWidth(50); button.setText(i+1); button.setX( 50 * (i % 3) + 1); button.setY( 50 * parseInt(i / 3)); button.show(); connect( button, 'onclick', button, 'hide'); } window.setWidth(150); window.setHeight(150); window.show();
Just for fun there is a BDock element to create a dock widget like in OSX's window manager.
var dock = new BDock; var icon = new BImage('icon/finder.png', 50, 50 ); dock.addImage( icon ); var icon = new BImage('icon/mail.png', 50, 50 ); dock.addImage( icon ); var icon = new BImage('icon/browser.png', 50, 50 ); dock.addImage( icon ); dock.show();