WebKit = imports.gi.WebKit;
Vte = imports.gi.Vte;
GtkClutter = imports.gi.GtkClutter;
+Gdl = imports.gi.Gdl;
console = imports.console;
XObject = imports.XObject.XObject;
Window=new XObject({
// that is done by GTK..
+ if (!this.get('/Editor').save()) {
+ // popup!! - click handled..
+ return true;
+ }
if (!this.el.expanded) {
this.onExpand();
id : "expander",
label : "Select Project or File",
pack : "pack_start,false,true",
+ init : function() {
+ XObject.prototype.init.call(this);
+ this.el.add_events (Gdk.EventMask.BUTTON_MOTION_MASK );
+ },
onCollapse : function() {
var nb = this.get('/LeftTopPanel.notebook');
nb.el.set_current_page(0);
},
- init : function() {
- XObject.prototype.init.call(this);
- this.el.add_events (Gdk.EventMask.BUTTON_MOTION_MASK );
- },
onExpand : function() {
var nb = this.get('/LeftTopPanel.notebook');
var pm = imports.Builder.Provider.ProjectManager.ProjectManager;
listeners : {
button_press_event : function (self, ev) {
console.log("button press?");
+
+ if (!this.get('/Editor').save()) {
+ // popup!! - click handled..
+ return true;
+ }
+
if (ev.type != Gdk.EventType.BUTTON_PRESS || ev.button.button != 3) {
print("click" + ev.type);
return false;
items : [
{
xtype: Gtk.ComboBox,
- id : "combo",
- init : function() {
- XObject.prototype.init.call(this);
- this.el.add_attribute(this.get('render').el , 'markup', 1 );
+ listeners : {
+ changed : function (self) {
+ var fn = this.getValue();
+ var pm = imports.Builder.Provider.ProjectManager.ProjectManager;
+ this.get('/LeftProjectTree.model').loadProject(pm.getByFn(fn))
+ }
},
+ id : "combo",
getValue : function() {
var ix = this.el.get_active();
if (ix < 0 ) {
}
return data[ix].fn;
},
+ init : function() {
+ XObject.prototype.init.call(this);
+ this.el.add_attribute(this.get('render').el , 'markup', 1 );
+ },
setValue : function(fn)
{
var el = this.el;
}
});
},
- listeners : {
- changed : function (self) {
- var fn = this.getValue();
- var pm = imports.Builder.Provider.ProjectManager.ProjectManager;
- this.get('/LeftProjectTree.model').loadProject(pm.getByFn(fn))
- }
- },
items : [
{
xtype: Gtk.CellRendererText,
},
{
xtype: Gtk.ListStore,
+ id : "combomodel",
pack : "set_model",
init : function() {
XObject.prototype.init.call(this);
] );
+ // this.el.set_sort_column_id(1,Gtk.SortType.ASCENDING);
var pm = imports.Builder.Provider.ProjectManager.ProjectManager;
var _this = this;
pm.on('changed', function() {
});
this.get('/LeftProjectTree.combo').setValue(ov);
- },
- id : "combomodel"
+ }
}
]
}
},
{
xtype: Gtk.Button,
- pack : "add",
listeners : {
button_press_event : function (self, event) {
- this.get('/MidPropTree.model').showData('events');
+
+ if (!this.get('/Editor').save()) {
+ // popup!! - click handled..
+ return true;
+ }
+ this.get('/MidPropTree.model').showData('events');
return false;
}
},
+ pack : "add",
items : [
{
xtype: Gtk.HBox,
},
{
xtype: Gtk.Button,
- pack : "add",
listeners : {
button_press_event : function (self, ev) {
+
+ if (!this.get('/Editor').save()) {
+ // popup!! - click handled..
+ return true;
+ }
+
var p = this.get('/AddPropertyPopup');
if (!p.el) {
p.init();
return true;
}
},
+ pack : "add",
items : [
{
xtype: Gtk.HBox,
button_press_event : function (self, ev) {
+ if (!this.get('/Editor').save()) {
+ // popup!! - click handled..
+ return true;
+ }
var res = { };
if (!this.el.get_path_at_pos(ev.button.x,ev.button.y, res)) {
// console.log( '<b>' + p.name +'</b> ['+p.type+']');
//GObject.TYPE_STRING, // real key
// GObject.TYPE_STRING, // real type
- // GObject.TYPE_STRING, // docs ?
+ // GObject.TYPE_STRING, // docs ?this.el.set_value(iter, 0, p.name);et_value(iter, 0, p.name);
// GObject.TYPE_STRING // func def?
},
{
xtype: Gtk.TreeViewColumn,
+ pack : false,
init : function() {
this.el = new Gtk.TreeViewColumn();
this.parent.el.append_column(this.el);
XObject.prototype.init.call(this);
this.el.add_attribute(this.items[0].el , 'markup', 4 );
},
- pack : false,
items : [
{
xtype: Gtk.CellRendererText,
id : "AutoRedraw",
label : "Auto Redraw On",
pack : "pack_start,false,false,0"
+ },
+ {
+ xtype: Gtk.Button,
+ listeners : {
+ clicked : function (self) {
+ this.get('/RightBrowser.view').redraws = 99;
+ this.get('/RightBrowser.view').renderJS(null,true);
+ }
+ },
+ label : "Full Redraw",
+ pack : "pack_start,false,false,0"
}
]
},
*/
},
viewAdd : function(item, par)
- {
+ {
+
// does something similar to xobject..
- item.pack = (typeof(item.pack) == 'undefined') ? 'add' : item.pack;
+ //item.pack = (typeof(item.pack) == 'undefined') ? 'add' : item.pack;
+ // pack is forced to 'false'
if (item.pack===false || item.pack === 'false') { // no ;
return;
}
+
print("CREATE: " + item['|xns'] + '.' + item['xtype']);
+
+
var type = item['|xns'] + '.' + item['xtype'];
if (item['|xns'] == 'GtkClutter') { // we can not add this yet!
return false;
}
+
var ns = imports.gi[item['|xns']];
- var ctr = ns[item['xtype']];
+ var ctr = ns[item['xtype']]; // why are we using array here..?
+
+
+
var ctr_args = { };
for(var k in item) {
var kv = item[k];
) {
continue;
}
-
+ // value is a function..
if (k[0] == '|' && typeof(kv) == 'string') {
if (kv.match(new RegExp('function'))) {
continue;
}
- print("WASL " + k + '=' + kv);
+ print("WASL " + k + '=' + kv);
try {
eval( 'kv = ' + kv);
} catch(e) { continue; }
ctr_args[k] = kv;
}
-
+ var altctr = XObject.baseXObject({ xtype: ctr} );
+ var pack_m = false;
+ if (!item.pack && altctr) {
+ // try XObject.
+ print("SETTING PACK TO XObjectBase method");
+ pack_m = altctr.prototype.pack;
+
+
+ }
var el = new ctr(ctr_args);
-
+ item.el = el;
print("PACK" + item.pack);
//console.dump(item.pack);
var args = [];
- var pack_m = false;
- if (typeof(item.pack) == 'string') {
-
- item.pack.split(',').forEach(function(e, i) {
+ if (!pack_m) {
+ item.pack = (typeof(item.pack) == 'undefined') ? 'add' : item.pack;
+ if (typeof(item.pack) == 'string') {
+
+ item.pack.split(',').forEach(function(e, i) {
+
+ if (e == 'false') { args.push( false); return; }
+ if (e == 'true') { args.push( true); return; }
+ if (!isNaN(parseInt(e))) { args.push( parseInt(e)); return; }
+ args.push(e);
+ });
+ //print(args.join(","));
- if (e == 'false') { args.push( false); return; }
- if (e == 'true') { args.push( true); return; }
- if (!isNaN(parseInt(e))) { args.push( parseInt(e)); return; }
- args.push(e);
- });
- //print(args.join(","));
-
- pack_m = args.shift();
- } else {
- pack_m = item.pack.shift();
- args = item.pack;
+ pack_m = args.shift();
+ } else {
+ pack_m = item.pack.shift();
+ args = item.pack;
+ }
}
-
// handle error.
- if (pack_m && typeof(par[pack_m]) == 'undefined') {
+ if (typeof(pack_m) == 'string' && typeof(par[pack_m]) == 'undefined') {
throw {
name: "ArgumentError",
message : 'pack method not available : ' + par.id + " : " + par + '.' + pack_m +
args.unshift(el);
//if (XObject.debug) print(pack_m + '[' + args.join(',') +']');
//Seed.print('args: ' + args.length);
- if (pack_m) {
+ if (typeof(pack_m) == 'string') {
par[pack_m].apply(par, args);
+ } else if (pack_m) {
+ pack_m.call(item, par, item);
}
var _this = this;
item.items = item.items || [];
item.items.forEach(function(ch,n) {
- print ("type:" + type);
+ print ("type:" + type);
- print ("ch.pack:" + ch.pack);
+ 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);
el.signal.drag_motion.connect(XObject.createDelegate(this.widgetDragMotionEvent, this,[ item ], true));
el.signal.drag_drop.connect(XObject.createDelegate(this.widgetDragDropEvent, this, [ item ], true));
el.signal.button_press_event.connect(XObject.createDelegate(this.widgetPressEvent, this, [ item ], true ));
- el.signal.button_release_event.connect(XObject.createDelegate(this.widgetReleaseEvent, this, [ item ], true ));
+ el.signal.button_release_event.connect(XObject.createDelegate(this.widgetReleaseEvent, this, [ item ], true ));
} catch(e) {
// ignore!
}
items : [
{
xtype: Gtk.TreeView,
- pack : "add",
- init : function() {
- XObject.prototype.init.call(this);
- this.el.set_size_request(150,-1);
- // set_reorderable: [1]
-
- var description = new Pango.FontDescription.c_new();
- description.set_size(8000);
- this.el.modify_font(description);
-
- this.selection = this.el.get_selection();
- this.selection.set_mode( Gtk.SelectionMode.SINGLE);
- // this.selection.signal['changed'].connect(function() {
- // _view.listeners['cursor-changed'].apply(_view, [ _view, '']);
- //});
- // see: http://live.gnome.org/GnomeLove/DragNDropTutorial
-
- Gtk.drag_source_set (
- this.el, /* widget will be drag-able */
- Gdk.ModifierType.BUTTON1_MASK, /* modifier that will start a drag */
- null, /* lists of target to support */
- 0, /* size of list */
- Gdk.DragAction.COPY /* what to do with data after dropped */
- );
- //Gtk.drag_source_set_target_list(this.el, LeftTree.targetList);
-
- Gtk.drag_source_set_target_list(this.el, this.get('/Window').targetList);
- Gtk.drag_source_add_text_targets(this.el);
- /*
- print("RP: TARGET:" + LeftTree.atoms["STRING"]);
- targets = new Gtk.TargetList();
- targets.add( LeftTree.atoms["STRING"], 0, 0);
- targets.add_text_targets( 1 );
- Gtk.drag_dest_set_target_list(this.el, LeftTree.targetList);
-
- //if you want to allow text to be output elsewhere..
- //Gtk.drag_source_add_text_targets(this.el);
- */
- return true;
- },
- headers_visible : false,
- enable_tree_lines : true,
listeners : {
drag_begin : function (self, ctx) {
// we could fill this in now...
this.el.dropList = false;
this.get('/LeftTree.view').highlight(false);
return true;
+ },
+ button_press_event : function (self, event) {
+
+ if (!this.get('/Editor').save()) {
+ // popup!! - click handled..
+ return true;
+ }
+ return false;
}
},
+ pack : "add",
+ enable_tree_lines : true,
+ headers_visible : false,
+ init : function() {
+ XObject.prototype.init.call(this);
+ this.el.set_size_request(150,-1);
+ // set_reorderable: [1]
+
+ var description = new Pango.FontDescription.c_new();
+ description.set_size(8000);
+ this.el.modify_font(description);
+
+ this.selection = this.el.get_selection();
+ this.selection.set_mode( Gtk.SelectionMode.SINGLE);
+ // this.selection.signal['changed'].connect(function() {
+ // _view.listeners['cursor-changed'].apply(_view, [ _view, '']);
+ //});
+ // see: http://live.gnome.org/GnomeLove/DragNDropTutorial
+
+ Gtk.drag_source_set (
+ this.el, /* widget will be drag-able */
+ Gdk.ModifierType.BUTTON1_MASK, /* modifier that will start a drag */
+ null, /* lists of target to support */
+ 0, /* size of list */
+ Gdk.DragAction.COPY /* what to do with data after dropped */
+ );
+ //Gtk.drag_source_set_target_list(this.el, LeftTree.targetList);
+
+ Gtk.drag_source_set_target_list(this.el, this.get('/Window').targetList);
+ Gtk.drag_source_add_text_targets(this.el);
+ /*
+ print("RP: TARGET:" + LeftTree.atoms["STRING"]);
+ targets = new Gtk.TargetList();
+ targets.add( LeftTree.atoms["STRING"], 0, 0);
+ targets.add_text_targets( 1 );
+ Gtk.drag_dest_set_target_list(this.el, LeftTree.targetList);
+
+ //if you want to allow text to be output elsewhere..
+ //Gtk.drag_source_add_text_targets(this.el);
+ */
+ return true;
+ },
items : [
{
xtype: Gtk.ListStore,