items : [
{
xtype: Gtk.TreeStore,
- pack : "set_model",
+ activePath : false,
id : "model",
+ pack : "set_model",
+ getIterValue : function(iter, col) {
+ var gval = new GObject.Value('');
+ this.get('/LeftPanel.model').el.get_value(iter, col ,gval);
+ return '' + gval.value;
+ },
+ add : function(info) {
+ // info includes key, val, skel, etype..
+ console.dump(info);
+ type = info.type.toLowerCase();
+ var data = this.toJS();
+
+ if (info.etype == 'events') {
+ data.listeners = data.listeners || { };
+ if (typeof(data.listeners[info.key]) != 'undefined') {
+ return; //already set!
+ }
+ } else {
+ if (typeof(data[info.key]) != 'undefined') {
+ return;
+ }
+ }
+
+ if (typeof(info.val) == 'undefined') {
+
+ info.val = '';
+ if (info.type == 'boolean') {
+ info.val = true;
+ }
+ if (type == 'number') {
+ info.val = 0;
+ }
+ // utf8 == string..
+
+
+ }
+ var k = info.key;
+ if (info.etype == 'events') {
+
+ data.listeners[info.key] = info.val;
+ k = '!' + info.key;
+ } else {
+ data[info.key] = info.val;
+ }
+
+
+ var map = this.load(data);
+
+ // flag it as changed to the interface..
+
+ this.get('/LeftTree.model').changed(data, true);
+
+
+ this.startEditing(map[k]);
+
+ /*
+ LeftPanel.get('view').el.row_activated(
+ new Gtk.TreePath.from_string(map[k]),
+ LeftPanel.editableColumn.el
+ );
+ */
+ },
+ changed : function(str, doRefresh) {
+ if (!this.activePath) {
+ return;
+ }
+ var iter = new Gtk.TreeIter();
+ this.el.get_iter(iter, new Gtk.TreePath.from_string(this.activePath));
+
+ this.el.set_value(iter, 1, '' +str);
+ this.el.set_value(iter, 3, '' + this.toShort(str));
+ var type = this.getIterValue(iter, 4);
+
+ this.el.set_value(iter, 5, type + ' : ' + str);
+ // update the tree...
+
+ this.get('/LeftTree.model').changed(this.toJS(), doRefresh);
+ },
+ deleteSelected : function() {
+ var data = this.toJS();
+ var iter = new Gtk.TreeIter();
+ var s = this.get('/LeftPanel.view').selection;
+ s.get_selected(this.el, iter);
+
+
+ var gval = new GObject.Value('');
+ this.get('/LeftPanel.model').el.get_value(iter, 0 ,gval);
+
+ var val = gval.value;
+ if (val[0] == '!') {
+ // listener..
+ if (!data.listeners || typeof(data.listeners[ val.substring(1)]) == 'undefined') {
+ return;
+ }
+ delete data.listeners[ val.substring(1)];
+ if (!XObject.keys(data.listeners).length) {
+ delete data.listeners;
+ }
+
+ } else {
+ if (typeof(data[val]) == 'undefined') {
+ return;
+ }
+ delete data[val];
+ }
+
+
+ this.load(data);
+ this.get('/LeftTree.model').changed(data, true);
+
+ },
+ editSelected : function(e) {
+ print("EDIT SELECTED?");
+ var iter = new Gtk.TreeIter();
+ var s = this.get('/LeftPanel.view').selection;
+ s.get_selected(this.get('/LeftPanel.model').el, iter);
+ var m = this.get('/LeftPanel.model')
+
+ var gval = new GObject.Value('');
+ this.el.get_value(iter, 0 ,gval);
+ var val = '' + gval.value;
+
+ gval = new GObject.Value('');
+ this.el.get_value(iter, 1 ,gval);
+ var rval = gval.value;
+ var activePath = this.el.get_path(iter).to_string();
+ this.activePath = activePath ;
+ // was activeIter...
+ // not listener...
+
+ var showEditor = false;
+
+ if (val[0] == '!') {
+ showEditor = true;
+ }
+ if (val[0] == '|') {
+ if (rval.match(/function/g) || rval.match(/\n/g)) {
+ showEditor = true;
+ }
+ }
+
+ if (showEditor) {
+ var _this = this;
+ this.activePath = false;
+ GLib.timeout_add(0, 1, function() {
+ // Gdk.threads_enter();
+ _this.get('/BottomPane').el.show();
+ _this.get('/RightEditor').el.show();
+ _this.get('/RightEditor.view').load( rval );
+
+ e.editing_done();
+ e.remove_widget();
+ _this.activePath = activePath ;
+
+ // Gdk.threads_leave();
+ return false;
+ });
+ return;
+ }
+ this.get('/BottomPane').el.hide();
+ this.get('/RightEditor').el.hide();
+
+ //var type = this.getValue(this.el.get_path(iter).to_string(),4);
+
+
+ },
+ getType : function(treepath) {
+ return this.getValue(treepath, 4);
+ },
+ getValue : function(treepath_str, col) {
+ var iter = new Gtk.TreeIter();
+ this.el.get_iter(iter, new Gtk.TreePath.from_string(treepath_str));
+
+ var gval = new GObject.Value('');
+ this.get('/LeftPanel.model').el.get_value(iter, col ,gval);
+ var val = '' + gval.value;
+ if (col != 1) {
+ return val;
+ }
+ var type = this.getType(this.el.get_path(iter).to_string());
+ print("TYPE: " +type + " - val:" + val);
+ switch(type.toLowerCase()) {
+ case 'number':
+ case 'uint':
+ case 'int':
+ return parseFloat(val); // Nan ?? invalid!!?
+ case 'float':
+ case 'gfloat':
+ return 1.0 * parseFloat(val); // Nan ?? invalid!!?
+ case 'boolean':
+ return val == 'true' ? true : false;
+ default:
+ var nv = parseFloat(val);
+ if (!isNaN(nv) && (val == ''+nv)) {
+ return nv;
+ }
+ return val;
+ }
+
+ },
init : function() {
XObject.prototype.init.call(this);
this.el.set_column_types ( 6, [
]);
},
- toShort : function(str) {
- var a = typeof(str) == 'string' ? str.split("\n") : [];
- return a.length > 1 ? a[0] + '....' : '' + str;
- },
load : function(ar) {
this.el.clear();
})
return ret;
},
- add : function(info) {
- // info includes key, val, skel, etype..
- console.dump(info);
- type = info.type.toLowerCase();
- var data = this.toJS();
-
- if (info.etype == 'events') {
- data.listeners = data.listeners || { };
- if (typeof(data.listeners[info.key]) != 'undefined') {
- return; //already set!
- }
- } else {
- if (typeof(data[info.key]) != 'undefined') {
- return;
- }
- }
-
- if (typeof(info.val) == 'undefined') {
-
- info.val = '';
- if (info.type == 'boolean') {
- info.val = true;
- }
- if (type == 'number') {
- info.val = 0;
- }
- // utf8 == string..
-
-
- }
- var k = info.key;
- if (info.etype == 'events') {
-
- data.listeners[info.key] = info.val;
- k = '!' + info.key;
- } else {
- data[info.key] = info.val;
- }
-
-
- var map = this.load(data);
-
- // flag it as changed to the interface..
-
- this.get('/LeftTree.model').changed(data, true);
-
-
- this.startEditing(map[k]);
-
- /*
- LeftPanel.get('view').el.row_activated(
- new Gtk.TreePath.from_string(map[k]),
- LeftPanel.editableColumn.el
- );
- */
- },
startEditing : function(path,col) {
/**
* start editing path (or selected if not set..)
});
},
- deleteSelected : function() {
- var data = this.toJS();
- var iter = new Gtk.TreeIter();
- var s = this.get('/LeftPanel.view').selection;
- s.get_selected(this.el, iter);
-
-
- var gval = new GObject.Value('');
- this.get('/LeftPanel.model').el.get_value(iter, 0 ,gval);
-
- var val = gval.value;
- if (val[0] == '!') {
- // listener..
- if (!data.listeners || typeof(data.listeners[ val.substring(1)]) == 'undefined') {
- return;
- }
- delete data.listeners[ val.substring(1)];
- if (!XObject.keys(data.listeners).length) {
- delete data.listeners;
- }
-
- } else {
- if (typeof(data[val]) == 'undefined') {
- return;
- }
- delete data[val];
- }
-
-
- this.load(data);
- this.get('/LeftTree.model').changed(data, true);
-
- },
- activePath : false,
- changed : function(str, doRefresh) {
- if (!this.activePath) {
- return;
- }
- var iter = new Gtk.TreeIter();
- this.el.get_iter(iter, new Gtk.TreePath.from_string(this.activePath));
-
- this.el.set_value(iter, 1, '' +str);
- this.el.set_value(iter, 3, '' + this.toShort(str));
- // update the tree...
-
- this.get('/LeftTree.model').changed(this.toJS(), doRefresh);
- },
toJS : function() {
var iter = new Gtk.TreeIter();
this.get('/LeftPanel.model').el.get_iter_first(iter);
return ar;
// convert the l
},
- getType : function(treepath) {
- return this.getValue(treepath, 4);
- },
- getValue : function(treepath_str, col) {
- var iter = new Gtk.TreeIter();
- this.el.get_iter(iter, new Gtk.TreePath.from_string(treepath_str));
-
- var gval = new GObject.Value('');
- this.get('/LeftPanel.model').el.get_value(iter, col ,gval);
- var val = '' + gval.value;
- if (col != 1) {
- return val;
- }
- var type = this.getType(this.el.get_path(iter).to_string());
- print("TYPE: " +type + " - val:" + val);
- switch(type.toLowerCase()) {
- case 'number':
- case 'uint':
- case 'int':
- case 'float':
- case 'gfloat':
- return parseFloat(val); // Nan ?? invalid!!?
- case 'boolean':
- return val == 'true' ? true : false;
- default:
- return val;
- }
-
- },
- editSelected : function(e) {
- print("EDIT SELECTED?");
- var iter = new Gtk.TreeIter();
- var s = this.get('/LeftPanel.view').selection;
- s.get_selected(this.get('/LeftPanel.model').el, iter);
- var m = this.get('/LeftPanel.model')
-
- var gval = new GObject.Value('');
- this.el.get_value(iter, 0 ,gval);
- var val = '' + gval.value;
-
- gval = new GObject.Value('');
- this.el.get_value(iter, 1 ,gval);
- var rval = gval.value;
- var activePath = this.el.get_path(iter).to_string();
- this.activePath = activePath ;
- // was activeIter...
- // not listener...
-
- var showEditor = false;
-
- if (val[0] == '!') {
- showEditor = true;
- }
- if (val[0] == '|') {
- if (rval.match(/function/g) || rval.match(/\n/g)) {
- showEditor = true;
- }
- }
-
- if (showEditor) {
- var _this = this;
- this.activePath = false;
- GLib.timeout_add(0, 1, function() {
- // Gdk.threads_enter();
- _this.get('/BottomPane').el.show();
- _this.get('/RightEditor').el.show();
- _this.get('/RightEditor.view').load( rval );
-
- e.editing_done();
- e.remove_widget();
- _this.activePath = activePath ;
-
- // Gdk.threads_leave();
- return false;
- });
- return;
- }
- this.get('/BottomPane').el.hide();
- this.get('/RightEditor').el.hide();
-
- //var type = this.getValue(this.el.get_path(iter).to_string(),4);
-
-
+ toShort : function(str) {
+ var a = typeof(str) == 'string' ? str.split("\n") : [];
+ return a.length > 1 ? a[0] + '....' : '' + str;
}
},
{
},
{
xtype: Gtk.Button,
- pack : "pack_start,false,false,0",
- label : "Set extra HTML in render",
listeners : {
button_press_event : function (self, event) {
this.get('/RooProjectProperties').show();
return false;
}
- }
+ },
+ label : "Set extra HTML in renderer",
+ pack : "pack_start,false,false,0"
},
{
xtype: Gtk.Button,
- pack : "pack_start,false,false,0",
- label : "test in Firefox",
listeners : {
button_press_event : function (self, event)
{
this.get('/Terminal').el.feed_child(cmd, cmd.length);
return false;
}
- }
+ },
+ label : "Test in Firefox",
+ pack : "pack_start,false,false,0"
}
]
},
},
{
xtype: Gtk.VBox,
- pack : "add",
id : "RightGtkView",
+ pack : "add",
+ redraw : function() {
+ this.highlightWidget = false;
+ print("REDRAW CALLED");
+ this.activePath = this.get('/LeftTree').getActivePath();
+ if (this.renderedEl) {
+ print("QUEUE DRAW CALLING");
+ this.renderedEl.queue_draw();
+ }
+ },
renderJS : function(data, withDebug)
{
this.highlightWidget = false;
return;
}
print("CREATE: " + item['|xns'] + '.' + item['xtype']);
+ var type = item['|xns'] + '.' + item['xtype'];
var ns = imports.gi[item['|xns']];
var ctr = ns[item['xtype']];
var ctr_args = { };
var el = new ctr(ctr_args);
- //print("PACK");
+ print("PACK" + item.pack);
//console.dump(item.pack);
var _this = this;
item.items = item.items || [];
- item.items.forEach(function(ch) {
+ item.items.forEach(function(ch,n) {
+
+ print ("type:" + type);
+
+ print ("ch.pack:" + ch.pack);
+ if (type == 'Gtk.Table' && ch.pack == 'add') {
+ var c = n % item.n_columns;
+ var r = Math.floor(n/item.n_columns);
+ ch.pack = [ 'attach', c, c+1, r, r+1,
+ typeof(ch.x_options) == 'undefined' ? 5 : ch.x_options,
+ typeof(ch.y_options) == 'undefined' ? 5 : ch.y_options,
+ typeof(ch.x_padding) == 'undefined' ? 0 : ch.x_padding,
+ typeof(ch.x_padding) == 'undefined' ? 0 : ch.x_padding
+ ].join(',');
+ }
+
_this.viewAdd(ch, el);
});
return el;
},
+ widgetDragDropEvent : function() {
+ print("WIDGET DRAGDROP");
+ return true;
+ },
+ widgetDragMotionEvent : function() {
+ print("WIDGET DRAGMOTION");
+ return true;
+ },
widgetExposeEvent : function(w, evt, ud, item) {
var widget = w;
if (this.inRender) {
this.inRender = false;
return false;
},
- widgetDragMotionEvent : function() {
- print("WIDGET DRAGMOTION");
- return true;
- },
- widgetDragDropEvent : function() {
- print("WIDGET DRAGDROP");
- return true;
- },
widgetPressEvent : function(w,e,u,d) {
if (this.get('view').pressed) {
return false;
this.get('view').pressed = false;
return false;
},
- redraw : function() {
- this.highlightWidget = false;
- print("REDRAW CALLED");
- this.activePath = this.get('/LeftTree').getActivePath();
- if (this.renderedEl) {
- print("QUEUE DRAW CALLING");
- this.renderedEl.queue_draw();
- }
- },
items : [
{
xtype: Gtk.HBox,