seed r166 - in trunk/examples/ide: . legacy



Author: hortont
Date: Fri Nov  7 18:58:14 2008
New Revision: 166
URL: http://svn.gnome.org/viewvc/seed?rev=166&view=rev

Log:
Started new IDE (from scratch, more or less), with Robb's new GType inheritance code. Cool stuff!



Added:
   trunk/examples/ide/ide-actions.js
   trunk/examples/ide/ide-sourceview.js
   trunk/examples/ide/ide-tab.js
   trunk/examples/ide/ide-tabheader.js
   trunk/examples/ide/ide-tabview.js
   trunk/examples/ide/ide-toolbar.js
   trunk/examples/ide/legacy/
   trunk/examples/ide/legacy/ide.js   (contents, props changed)
   trunk/examples/ide/legacy/tabview.js
   trunk/examples/ide/legacy/toolbar.js
   trunk/examples/ide/main.js   (contents, props changed)
Removed:
   trunk/examples/ide/ide.js
   trunk/examples/ide/tabview.js
   trunk/examples/ide/toolbar.js

Added: trunk/examples/ide/ide-actions.js
==============================================================================
--- (empty file)
+++ trunk/examples/ide/ide-actions.js	Fri Nov  7 18:58:14 2008
@@ -0,0 +1,70 @@
+function new_file()
+{
+    tab_view.create_tab("");
+}
+
+function open_file()
+{
+}
+
+function save_file()
+{
+}
+
+function undo()
+{
+}
+
+function redo()
+{
+}
+
+function execute()
+{
+}
+
+function init_ide_actions()
+{
+    actions = new Gtk.ActionGroup({name:"toolbar"});
+
+    accels = new Gtk.AccelGroup();
+    window.add_accel_group(accels);
+
+    var new_action = new Gtk.Action({name:"new", label:"New",
+                                      tooltip:"New File", stock_id:"gtk-new"});
+    new_action.set_accel_group(accels);
+    actions.add_action_with_accel(new_action);
+    new_action.connect_accelerator();
+    new_action.signal.activate.connect(new_file);
+
+    var open_action = new Gtk.Action({name:"open", label:"Open",
+                                      tooltip:"Open File", stock_id:"gtk-open"});
+    open_action.set_accel_group(accels);
+    actions.add_action_with_accel(open_action);
+    open_action.connect_accelerator();
+    open_action.signal.activate.connect(open_file);
+
+    var save_action = new Gtk.Action({name:"save", label:"Save",
+                                      tooltip:"Save File", stock_id:"gtk-save"});
+    save_action.set_accel_group(accels);
+    actions.add_action_with_accel(save_action);
+    save_action.connect_accelerator();
+    save_action.signal.activate.connect(save_file);
+
+    var undo_action = new Gtk.Action({name:"undo", label:"Undo",
+                                      tooltip:"Undo", stock_id:"gtk-undo"});
+    actions.add_action_with_accel(undo_action);
+    undo_action.signal.activate.connect(undo);
+
+    var redo_action = new Gtk.Action({name:"redo", label:"Redo",
+                                      tooltip:"Redo", stock_id:"gtk-redo"});
+    actions.add_action_with_accel(redo_action);
+    redo_action.signal.activate.connect(redo);
+
+    var execute_action = new Gtk.Action({name:"execute", label:"Execute",
+                                      tooltip:"Execute File", stock_id:"gtk-execute"});
+    execute_action.set_accel_group(accels);
+    actions.add_action_with_accel(execute_action, "<Control>r");
+    execute_action.connect_accelerator();
+    execute_action.signal.activate.connect(execute);
+}

Added: trunk/examples/ide/ide-sourceview.js
==============================================================================
--- (empty file)
+++ trunk/examples/ide/ide-sourceview.js	Fri Nov  7 18:58:14 2008
@@ -0,0 +1,65 @@
+IDESourceViewType = {
+    parent: GtkSource.SourceView,
+    name: "IDESourceView",
+    class_init: function(klass, prototype)
+    {
+        prototype.update_filename = function(new_filename, tab)
+        {
+            this.filename = new_filename;
+            
+            var shortfilename = new_filename.split("/").slice(-1);
+            
+            if(this.filename != "")
+                tab.header.label.label = shortfilename;
+            else
+                tab.header.label.label = "Untitled";
+        }
+        
+        prototype.load_file = function(new_filename, tab)
+        {
+            this.update_filename(new_filename, tab);
+
+            // update the window!
+            
+            if(this.filename == "")
+                return;
+            
+            var buf = this.get_buffer();
+            
+            buf.begin_not_undoable_action();
+            buf.text = Gio.simple_read(this.filename);
+            buf.end_not_undoable_action();
+        }
+    },
+    instance_init: function(klass)
+    {
+        this.filename = "";
+        
+        this.set_show_line_numbers(true);
+        this.set_show_right_margin(true);
+        this.set_highlight_current_line(true);
+        this.set_right_margin_position(80);
+        this.set_show_line_marks(true);
+        this.set_auto_indent(true);
+        this.set_indent_width(4);
+        
+        this.modify_font(Pango.font_description_from_string("monospace 10"));
+        
+        //var epb = new Gtk.Image({"file": "./exception.svg"});
+        //this.source_view.set_mark_category_pixbuf("exception", epb.pixbuf);
+        
+        var lang_manager = new GtkSource.SourceLanguageManager();
+        var js_lang = lang_manager.get_language("js");
+        
+        var buf = new GtkSource.SourceBuffer({language: js_lang});
+
+        this.set_buffer(buf);
+        
+        var gconf_client = GConf.client_get_default();
+        var source_style_mgr = GtkSource.style_scheme_manager_get_default();
+        var gedit_style = gconf_client.get_string("/apps/gedit-2/preferences/editor/colors/scheme");
+        var source_style = source_style_mgr.get_scheme(gedit_style);
+        buf.style_scheme = source_style;
+    }};
+
+IDESourceView = new GType(IDESourceViewType);

Added: trunk/examples/ide/ide-tab.js
==============================================================================
--- (empty file)
+++ trunk/examples/ide/ide-tab.js	Fri Nov  7 18:58:14 2008
@@ -0,0 +1,34 @@
+IDETabType = {
+    parent: Gtk.VBox,
+    name: "IDETab",
+    class_init: function(klass, prototype)
+    {
+        prototype.create_frame = function (child)
+        {
+            var scroll = new Gtk.ScrolledWindow({
+                                vscrollbar_policy: Gtk.PolicyType.automatic,
+                                hscrollbar_policy: Gtk.PolicyType.automatic});
+            scroll.add(child);
+
+            var frame = new Gtk.Frame();
+            frame.set_shadow_type(1);
+            frame.add(scroll);
+
+            return frame;
+        }
+    },
+    instance_init: function(klass)
+    {
+        this.source_view = new IDESourceView();
+        this.terminal = new Vte.Terminal();
+        this.pane = new Gtk.VPaned();
+        
+        this.pane.add1(this.create_frame(this.source_view));
+        this.pane.add2(this.create_frame(this.terminal));
+        
+        this.pane.set_position(700 * (2/3));
+        
+        this.pack_start(this.pane, true, true);
+    }};
+
+IDETab = new GType(IDETabType);

Added: trunk/examples/ide/ide-tabheader.js
==============================================================================
--- (empty file)
+++ trunk/examples/ide/ide-tabheader.js	Fri Nov  7 18:58:14 2008
@@ -0,0 +1,23 @@
+IDETabHeaderType = {
+    parent: Gtk.HBox,
+    name: "IDETabHeader",
+    class_init: function(klass, prototype)
+    {
+    },
+    instance_init: function(klass)
+    {
+        this.close_button = new Gtk.Button();
+        this.close_button.set_image(new Gtk.Image({stock: "gtk-close",
+                                    icon_size: Gtk.IconSize.menu}));
+        //this.close_button.signal.clicked.connect(close_tab, tab);
+        this.close_button.set_relief(Gtk.ReliefStyle.none);
+
+        this.label = new Gtk.Label();
+
+        this.pack_start(this.label);
+        this.pack_start(this.close_button);
+        this.show_all();
+    }};
+
+IDETabHeader = new GType(IDETabHeaderType);
+

Added: trunk/examples/ide/ide-tabview.js
==============================================================================
--- (empty file)
+++ trunk/examples/ide/ide-tabview.js	Fri Nov  7 18:58:14 2008
@@ -0,0 +1,33 @@
+IDETabViewType = {
+    parent: Gtk.Notebook,
+    name: "IDETabView",
+    class_init: function(klass, prototype)
+    {
+        prototype.create_tab = function (filename)
+        {
+            var tab = new IDETab();
+            
+            tab.header = new IDETabHeader();
+            tab.source_view.load_file(filename, tab);
+            
+            this.append_page(tab, tab.header);
+            this.set_tab_reorderable(tab, true);
+            this.show_all();
+            
+            this.page = this.get_n_pages() - 1;
+            
+            this.update_page(this, null, this.page);
+        }
+        
+        prototype.update_page = function (notebook, page, n)
+        {
+            update_window(notebook.get_nth_page(n).source_view.filename);
+        }
+    },
+    instance_init: function(klass)
+    {
+        this.signal.switch_page.connect(this.update_page);
+    }};
+
+IDETabView = new GType(IDETabViewType);
+

Added: trunk/examples/ide/ide-toolbar.js
==============================================================================
--- (empty file)
+++ trunk/examples/ide/ide-toolbar.js	Fri Nov  7 18:58:14 2008
@@ -0,0 +1,27 @@
+IDEToolbarType = {
+    parent: Gtk.Toolbar,
+    name: "IDEToolbar",
+    class_init: function(klass, prototype)
+    {
+    },
+    instance_init: function(klass)
+    {
+        this.new_button = actions.get_action("new").create_tool_item();
+        this.open_button = actions.get_action("open").create_tool_item();
+        this.save_button = actions.get_action("save").create_tool_item();
+        this.undo_button = actions.get_action("undo").create_tool_item();
+        this.redo_button = actions.get_action("redo").create_tool_item();
+        this.execute_button = actions.get_action("execute").create_tool_item();
+        
+        this.insert(this.new_button, -1);
+        this.insert(this.open_button, -1);
+        this.insert(this.save_button, -1);
+        this.insert(new Gtk.SeparatorToolItem(), -1);
+        this.insert(this.undo_button, -1);
+        this.insert(this.redo_button, -1);
+        this.insert(new Gtk.SeparatorToolItem(), -1);
+        this.insert(this.execute_button, -1);
+    }};
+
+IDEToolbar = new GType(IDEToolbarType);
+

Added: trunk/examples/ide/legacy/ide.js
==============================================================================
--- (empty file)
+++ trunk/examples/ide/legacy/ide.js	Fri Nov  7 18:58:14 2008
@@ -0,0 +1,155 @@
+#!/usr/local/bin/seed
+
+Seed.import_namespace("Vte");
+Seed.import_namespace("Gtk");
+Seed.import_namespace("GtkSource");
+Seed.import_namespace("Gio");
+Seed.import_namespace("Pango");
+Seed.import_namespace("GConf");
+Seed.import_namespace("Gdk");
+
+Gtk.init(null, null);
+GConf.init(null, null);
+
+Seed.include("toolbar.js");
+Seed.include("tabview.js");
+
+var itr = Gtk.TextIter._new();
+
+function exception_clear(sbuf)
+{
+    var begin = Gtk.TextIter._new();
+    var end = Gtk.TextIter._new();
+    
+    sbuf.get_start_iter(begin);
+    sbuf.get_end_iter(end);
+    
+    sbuf.remove_source_marks(begin, end, "exception");
+}
+
+function exception_line(sbuf, e)
+{
+    var itr = Gtk.TextIter._new();
+
+    sbuf.get_iter_at_line(itr, e.line - 1);
+    
+    exception_clear(sbuf);
+    
+    sbuf.create_source_mark("error!!", "exception", itr);
+}
+
+function text_changed(sbuf)
+{
+    sbuf.update_undo_state(this);
+    
+    var text = sbuf.text.replace(new RegExp("#!.*"), "");
+    
+    try
+    {
+        Seed.check_syntax(text);
+    }
+    catch(e)
+    {
+        exception_line(sbuf, e);
+        return;
+    }
+    
+    exception_clear(sbuf);
+}
+
+function update_window(new_filename)
+{
+    var shortfilename = new_filename.split("/").slice(-1);
+    
+    if(new_filename != "")
+        window.title = "Seed IDE - " + shortfilename;
+    else
+        window.title = "Seed IDE";
+}
+
+function update_filename(new_filename, tab)
+{
+    tab.filename = new_filename;
+    
+    update_window(new_filename);
+    
+    var shortfilename = new_filename.split("/").slice(-1);
+    
+    if(tab.filename != "")
+        tab.tab_header.tab_label.label = shortfilename;
+    else
+        tab.tab_header.tab_label.label = "Untitled";
+    
+}
+
+function ide_source_view()
+{
+    var source_lang_mgr = new GtkSource.SourceLanguageManager();
+    var js_lang = source_lang_mgr.get_language("js");
+    var client = GConf.client_get_default();
+
+    this.source_buf = new GtkSource.SourceBuffer({language: js_lang});
+    
+    Seed.prototype(GtkSource.SourceBuffer).load_file_data = function(new_filename, tab)
+    {
+        update_filename(new_filename, tab);
+        
+        var file = Gio.file_new_for_path(tab.filename);
+        
+        this.begin_not_undoable_action();
+        this.text = file.read().get_contents();
+        this.end_not_undoable_action();
+    }
+    
+    Seed.prototype(GtkSource.SourceBuffer).update_undo_state = function(tbar)
+    {
+        tbar.undo_button.sensitive = this.can_undo;
+        tbar.redo_button.sensitive = this.can_redo;
+    }
+    
+    var epb = new Gtk.Image({"file": "./exception.svg"});
+    
+    this.source_view = GtkSource.SourceView.new_with_buffer(this.source_buf);
+    this.source_view.set_show_line_numbers(true);
+    this.source_view.set_show_right_margin(true);
+    this.source_view.set_highlight_current_line(true);
+    this.source_view.set_right_margin_position(80);
+    this.source_view.set_mark_category_pixbuf("exception", epb.pixbuf);
+    this.source_view.set_show_line_marks(true);
+    this.source_view.set_auto_indent(true);
+    this.source_view.set_indent_width(4);
+    
+    this.source_view.modify_font(Pango.font_description_from_string("monospace 10"));
+    
+    var source_style_mgr = GtkSource.style_scheme_manager_get_default();
+    var gedit_style = client.get_string("/apps/gedit-2/preferences/editor/colors/scheme");
+    var source_style = source_style_mgr.get_scheme(gedit_style);
+    
+    this.source_buf.style_scheme = source_style;
+}
+
+function create_frame(child)
+{
+    var scroll = new Gtk.ScrolledWindow({vscrollbar_policy: Gtk.PolicyType.automatic, hscrollbar_policy: Gtk.PolicyType.automatic});
+    scroll.add(child);
+    
+    var frame = new Gtk.Frame();
+    frame.set_shadow_type(1); // fricking enums don't work.
+    frame.add(scroll);
+    
+    return frame;
+}
+
+function ide_init()
+{
+    window = new Gtk.Window();
+    window.resize(600, 600);
+    window.signal.hide.connect(Gtk.main_quit);
+    ui = new ide_ui();
+    window.add(tabs);
+    window.show_all();
+    
+    Gtk.main();
+}
+
+ide_init();

Added: trunk/examples/ide/legacy/tabview.js
==============================================================================
--- (empty file)
+++ trunk/examples/ide/legacy/tabview.js	Fri Nov  7 18:58:14 2008
@@ -0,0 +1,77 @@
+function close_tab(button)
+{
+    if(tabs.get_n_pages() > 1)
+    {
+        tabs.remove_page(tabs.page_num(this));
+    }
+    else
+    {
+        tabs.remove_page(tabs.page_num(this));
+        new ide_tab("");
+    }
+}
+
+function tab_header(nm, tab)
+{
+    var close_button = new Gtk.Button();
+	close_button.set_image(new Gtk.Image({stock: "gtk-close", icon_size: Gtk.IconSize.menu}));
+	close_button.signal.clicked.connect(close_tab, tab);
+	close_button.set_relief(Gtk.ReliefStyle.none);
+	
+	this.tab_label = new Gtk.Label({label:nm});
+	
+	this.tab_header = new Gtk.HBox();
+	this.tab_header.pack_start(this.tab_label);
+	this.tab_header.pack_start(close_button);
+	this.tab_header.show_all();
+}
+
+function ide_tab(fn)
+{
+    this.source_view = new ide_source_view();
+    this.terminal = new Vte.Terminal();
+    this.toolbar = new ide_toolbar(this);
+    this.pane = new Gtk.VPaned();
+
+    this.pane.add1(create_frame(this.source_view.source_view));
+    this.pane.add2(create_frame(this.terminal));
+    
+    this.pane.set_position(600 * (2/3));
+
+    this.source_view.source_buf.signal.changed.connect(text_changed, this.toolbar);
+    this.source_view.source_buf.update_undo_state(this.toolbar);
+    
+    this.main_vbox = new Gtk.VBox();
+    this.main_vbox.pack_start(this.toolbar.toolbar);
+    this.main_vbox.pack_start(this.pane, true, true);
+    
+    this.tab_header = new tab_header(this.filename, this.main_vbox);
+    
+    if(!fn == "")
+        this.source_view.source_buf.load_file_data(fn, this);
+    else
+        update_filename("", this);
+    
+    tabs.append_page(this.main_vbox, this.tab_header.tab_header);
+	tabs.set_tab_reorderable(this.main_vbox, true);
+	tabs.show_all();
+	
+	tabs.page = tabs.get_n_pages() - 1;
+}
+
+function change_page(notebook, tab, n)
+{
+    update_window(tabs.get_tab_label(tabs.get_nth_page(n)).get_children()[0].label);
+}
+
+function ide_ui()
+{
+    tabs = new Gtk.Notebook();
+    
+    tabs.signal.switch_page.connect(change_page);
+    
+    tabs.set_scrollable(true);
+    
+    var tab = new ide_tab("../ls.js");
+}
+

Added: trunk/examples/ide/legacy/toolbar.js
==============================================================================
--- (empty file)
+++ trunk/examples/ide/legacy/toolbar.js	Fri Nov  7 18:58:14 2008
@@ -0,0 +1,143 @@
+function ide_actions(tab)
+{
+    this.actions = new Gtk.ActionGroup({name:"toolbar"});
+    
+    this.accels = new Gtk.AccelGroup();
+    window.add_accel_group(this.accels);
+    
+    this.new_action = new Gtk.Action({name:"new", label:"New",
+                                      tooltip:"New File", stock_id:"gtk-new"});
+    this.new_action.set_accel_group(this.accels);
+    this.actions.add_action_with_accel(this.new_action);
+    this.new_action.connect_accelerator();
+    this.new_action.signal.activate.connect(new_file, tab);
+    
+    this.open_action = new Gtk.Action({name:"open", label:"Open",
+                                      tooltip:"Open File", stock_id:"gtk-open"});
+    this.open_action.set_accel_group(this.accels);
+    this.actions.add_action_with_accel(this.open_action);
+    this.open_action.connect_accelerator();
+    this.open_action.signal.activate.connect(open_file, tab);
+    
+    this.save_action = new Gtk.Action({name:"save", label:"Save",
+                                      tooltip:"Save File", stock_id:"gtk-save"});
+    this.save_action.set_accel_group(this.accels);
+    this.actions.add_action_with_accel(this.save_action);
+    this.save_action.connect_accelerator();
+    this.save_action.signal.activate.connect(save_file, tab);
+    
+    this.undo_action = new Gtk.Action({name:"undo", label:"Undo",
+                                      tooltip:"Undo", stock_id:"gtk-undo"});
+    this.undo_action.signal.activate.connect(undo, tab);
+    
+    this.redo_action = new Gtk.Action({name:"redo", label:"Redo",
+                                      tooltip:"Redo", stock_id:"gtk-redo"});
+    this.redo_action.signal.activate.connect(redo, tab);
+    
+    this.execute_action = new Gtk.Action({name:"execute", label:"Execute",
+                                      tooltip:"Execute File", stock_id:"gtk-execute"});
+    this.execute_action.set_accel_group(this.accels);
+    this.actions.add_action_with_accel(this.execute_action, "<Control>r");
+    this.execute_action.connect_accelerator();
+    this.execute_action.signal.activate.connect(execute, tab);
+}
+
+function new_file(sv)
+{
+    var tab = new ide_tab("");
+}
+
+function open_file(sv)
+{
+    var file_chooser = new Gtk.FileChooserDialog();
+    var file_filter = new Gtk.FileFilter();
+    file_filter.add_mime_type("text/javascript");
+    file_chooser.set_filter(file_filter);
+    file_chooser.add_button("Cancel", Gtk.ResponseType.cancel);
+    file_chooser.add_button("Open", Gtk.ResponseType.accept);
+    file_chooser.set_action(Gtk.FileChooserAction.open);
+    
+    if(file_chooser.run() == Gtk.ResponseType.accept)
+    {
+        if(this.filename == "")
+            this.source_view.source_buf.load_file_data(file_chooser.get_filename(), this);
+        else
+            var tab = new ide_tab(file_chooser.get_filename());
+    }
+    
+    file_chooser.destroy();
+}
+
+function save_file()
+{
+    if(this.filename == "")
+    {
+        var file_chooser = new Gtk.FileChooserDialog();
+        var file_filter = new Gtk.FileFilter();
+        file_filter.add_mime_type("text/javascript");
+        file_chooser.set_filter(file_filter);
+        file_chooser.add_button("Cancel", Gtk.ResponseType.cancel);
+        file_chooser.add_button("Save", Gtk.ResponseType.accept);
+        file_chooser.set_action(Gtk.FileChooserAction.save);
+
+        if(file_chooser.run() == Gtk.ResponseType.accept)
+        {
+            update_filename(file_chooser.get_filename(), this);
+        }
+
+        file_chooser.destroy();
+    }
+    
+    if(this.filename != "")
+        Gio.simple_write(this.filename, this.source_view.source_buf.text);
+}
+
+function undo(button)
+{
+    this.source_view.source_buf.undo();
+    this.source_view.source_buf.update_undo_state(this.toolbar);
+}
+
+function redo(button)
+{
+    this.source_view.source_buf.redo();
+    this.source_view.source_buf.update_undo_state(this.toolbar);
+}
+
+function execute()
+{
+    if(this.filename == "")
+        return; // TODO: something more intelligent!
+    
+    Gio.simple_write(this.filename, this.source_view.source_buf.text);
+    
+    this.terminal.reset(true, true);
+    this.terminal.fork_command("/bin/dash");
+    
+    var command = "clear ; /usr/local/bin/seed \"" + this.filename + "\" ; sleep 1d\n";
+    
+    this.terminal.feed_child(command, command.length);
+}
+
+function ide_toolbar(tab)
+{
+    actions = new ide_actions(tab);
+    this.toolbar = new Gtk.Toolbar();
+    
+    this.new_button = actions.new_action.create_tool_item();
+    this.open_button = actions.open_action.create_tool_item();
+    this.save_button = actions.save_action.create_tool_item();
+    this.undo_button = actions.undo_action.create_tool_item();
+    this.redo_button = actions.redo_action.create_tool_item();
+    this.execute_button = actions.execute_action.create_tool_item();
+    
+    this.toolbar.insert(this.new_button, -1);
+    this.toolbar.insert(this.open_button, -1);
+    this.toolbar.insert(this.save_button, -1);
+    this.toolbar.insert(new Gtk.SeparatorToolItem(), -1);
+    this.toolbar.insert(this.undo_button, -1);
+    this.toolbar.insert(this.redo_button, -1);
+    this.toolbar.insert(new Gtk.SeparatorToolItem(), -1);
+    this.toolbar.insert(this.execute_button, -1);
+}
+

Added: trunk/examples/ide/main.js
==============================================================================
--- (empty file)
+++ trunk/examples/ide/main.js	Fri Nov  7 18:58:14 2008
@@ -0,0 +1,52 @@
+#!/usr/local/bin/seed
+
+Seed.import_namespace("Vte");
+Seed.import_namespace("Gtk");
+Seed.import_namespace("GtkSource");
+Seed.import_namespace("Gio");
+Seed.import_namespace("Pango");
+Seed.import_namespace("GConf");
+Seed.import_namespace("Gdk");
+
+Gtk.init(null, null);
+GConf.init(null, null);
+
+Seed.include("ide-actions.js");
+Seed.include("ide-sourceview.js");
+Seed.include("ide-tab.js");
+Seed.include("ide-tabheader.js");
+Seed.include("ide-tabview.js");
+Seed.include("ide-toolbar.js");
+
+// TODO: put this in a subclass of the window
+function update_window(new_filename)
+{
+    var shortfilename = new_filename.split("/").slice(-1);
+    
+    if(new_filename != "")
+        window.title = "Seed IDE - " + shortfilename;
+    else
+        window.title = "Seed IDE";
+}
+
+var window = new Gtk.Window();
+window.resize(700, 700);
+window.signal.hide.connect(Gtk.main_quit);
+
+var tab_view = new IDETabView();
+tab_view.create_tab("/home/hortont/seed/examples/ls.js");
+//tab_view.create_tab("/home/hortont/seed/examples/pango.js");
+
+
+init_ide_actions();
+
+var toolbar = new IDEToolbar();
+
+var vbox = new Gtk.VBox();
+vbox.pack_start(toolbar);
+vbox.pack_start(tab_view, true, true);
+
+window.add(vbox);
+window.show_all();
+
+Gtk.main();



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]