X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=Builder%2FWindow.js;h=7e0d140851264ed1275ee4e6e0908422851fea7b;hb=f356ef4b7c6902290ed96c6b22b9cb407f0a4d7c;hp=1ba0391bead94655c2103b350e16e6290e127dff;hpb=b6ccaa2a6934c8ebe084623ef84ba6fca4129c66;p=app.Builder.js
diff --git a/Builder/Window.js b/Builder/Window.js
index 1ba0391be..7e0d14085 100644
--- a/Builder/Window.js
+++ b/Builder/Window.js
@@ -7,6 +7,7 @@ GObject = imports.gi.GObject;
GtkSource = imports.gi.GtkSource;
WebKit = imports.gi.WebKit;
Vte = imports.gi.Vte;
+GtkClutter = imports.gi.GtkClutter;
console = imports.console;
XObject = imports.XObject.XObject;
Window=new XObject({
@@ -162,9 +163,6 @@ Window=new XObject({
{
xtype: Gtk.Menu,
pack : "set_submenu",
- listeners : {
-
- },
items : [
{
xtype: Gtk.MenuItem,
@@ -208,9 +206,6 @@ Window=new XObject({
{
xtype: Gtk.Menu,
pack : "set_submenu",
- listeners : {
-
- },
items : [
{
xtype: Gtk.MenuItem,
@@ -218,7 +213,7 @@ Window=new XObject({
activate : function (self, event) {
var js = this.get('/LeftTree.model').toJS();
if (js && js[0]) {
- this.get('/RightBrowser.view').renderJS(js[0]);
+ this.get('/RightBrowser.view').renderJS(js[0], true);
}
return false;
}
@@ -268,7 +263,7 @@ Window=new XObject({
html = html.replace('', project.runhtml + '');
- var jsstr = JSON.stringify(js[0]);
+ var jsstr = JSON.stringify(js[0], null, 4);
var runbuilder = '';
+
+
+ this.runhtml = this.runhtml || '';
+
+ if ((project.runhtml != this.runhtml) || (this.redraws > 10)) {
+ // then we need to reload the browser using
+ // load_html_string..
+
+ // then trigger a redraw once it's loaded..
+ this.pendingRedraw = true;
+ var runhtml = ''+ "\n" ;
+
+ this.runhtml = project.runhtml;
+ // need to modify paths
+
+
+
+ var html = imports.File.File.read(__script_path__ + '/../builder.html');
+ html = html.replace('', runhtml + this.runhtml + '');
+ print("LOAD HTML " + html);
+ this.el.load_html_string( html ,
+ //fixme - should be a config option!
+ 'http://localhost/app.Builder/'
+ );
+ this.redraws = 0;
+ // should trigger load_finished! - which in truns shoudl set refresh Required;
+ return;
+
+ }
+
+
+ this.renderedData = data;
+ var str = JSON.stringify(data) ;
+
+ if (!this.ready) {
+ console.log('not loaded yet');
+ }
+ this.lastRedraw = new Date();
+
+ this.el.execute_script("Builder.render(" + JSON.stringify(data) + ");");
+ print( "before render" + this.lastRedraw);
+ print( "after render" + (new Date()));
+
}
}
]
@@ -2993,19 +3139,21 @@ Window=new XObject({
this.highlightWidget = false;
this.withDebug = false;
-
- if (this.renderedEl) {
- this.get('view').el.remove(this.renderedEl);
- this.renderedEl.destroy();
- this.renderedEl = false;
+ while (this.get('view').el.get_children().length) {
+ var c = this.get('view').el.get_children()[0];
+ this.get('view').el.remove(c);
+ c.destroy();
}
- if (!data) {
- return;
+ if (!data) {
+ return;
}
+
var tree = this.get('/LeftTree.model').toJS(false,true)[0];
// in theory tree is actually window..
try {
- this.renderedEl = this.viewAdd(tree.items[0], this.get('view').el);
+
+ this.renderedEl = this.viewAdd(tree.items[0], this.get('view').el);
+
} catch (e) {
print(e.message);
return;
@@ -3013,11 +3161,12 @@ Window=new XObject({
this.get('view').el.set_size_request(
tree.default_width * 1 || 400, tree.default_height * 1 || 400
) ;
-
- this.renderedEl.set_size_request(
- tree.default_width || 600,
- tree.default_height || 400
- );
+ if (this.renderedEl) {
+ this.renderedEl.set_size_request(
+ tree.default_width || 600,
+ tree.default_height || 400
+ );
+ }
this.get('view').el.show_all();
@@ -3085,6 +3234,10 @@ Window=new XObject({
}
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_args = { };
@@ -3518,8 +3671,8 @@ Window=new XObject({
},
{
xtype: Gtk.ScrolledWindow,
- pack : "add",
id : "Help",
+ pack : "add",
show : function() {
var file = this.get('/LeftTree').getActiveFile();
@@ -3531,7 +3684,7 @@ Window=new XObject({
if (!xtype || !xtype.length) {
return;
}
- this.get('/Window.view-help-nb').el.set_current_page(1);
+ //this.get('/Window.view-help-nb').el.set_current_page(1);
// get the active element being edited.
var helpurl = file.getHelpUrl(xtype);
@@ -3560,13 +3713,14 @@ Window=new XObject({
},
{
xtype: Gtk.Notebook,
+ id : "BottomPane",
pack : "add",
init : function() {
XObject.prototype.init.call(this);
this.el.set_tab_label(this.items[0].el, new Gtk.Label({ label : "Code Editor" }));
this.el.set_tab_label(this.items[1].el, new Gtk.Label({ label : "Console" }));
+ this.el.set_tab_label(this.items[2].el, new Gtk.Label({ label : "Inspector" }));
},
- id : "BottomPane",
items : [
{
xtype: Gtk.ScrolledWindow,
@@ -3620,7 +3774,6 @@ Window=new XObject({
items : [
{
xtype: GtkSource.Buffer,
- pack : "set_buffer",
listeners : {
changed : function (self) {
var s = new Gtk.TextIter();
@@ -3634,9 +3787,9 @@ Window=new XObject({
this.get('/RightEditor.view').el.modify_base(Gtk.StateType.NORMAL, new Gdk.Color({
red: 0xFFFF, green: 0xCCCC , blue : 0xCCCC
}));
- print("SYNTAX ERROR IN EDITOR");
- print(e);
- console.dump(e);
+ //print("SYNTAX ERROR IN EDITOR");
+ //print(e);
+ //console.dump(e);
return;
}
this.get('/RightEditor.view').el.modify_base(Gtk.StateType.NORMAL, new Gdk.Color({
@@ -3645,7 +3798,8 @@ Window=new XObject({
this.get('/LeftPanel.model').changed( str , false);
}
- }
+ },
+ pack : "set_buffer"
}
]
}
@@ -3675,6 +3829,17 @@ Window=new XObject({
scrollback_lines : 1000
}
]
+ },
+ {
+ xtype: Gtk.ScrolledWindow,
+ pack : "add",
+ items : [
+ {
+ xtype: WebKit.WebView,
+ id : "inspector",
+ pack : "add"
+ }
+ ]
}
]
}