ff787ae4c112c196916c9df73c3842f84e322675
[app.Builder.js] / oldbuilder / RightEditor.js
1 //<Script type="text/javascript">
2 Gio = imports.gi.Gio;
3 Gtk = imports.gi.Gtk;
4 Gdk = imports.gi.Gdk;
5 GObject = imports.gi.GObject;
6
7 Pango = imports.gi.Pango ;
8
9 GtkSource = imports.gi.GtkSource;
10
11 if (!GtkSource) {
12     Seed.die("Failed to load SourceView");
13 }
14
15 XObject = imports.XObject.XObject;
16 console = imports.console;
17
18
19
20 RightEditor = new XObject({
21          
22         xtype: Gtk.ScrolledWindow,
23         
24         shadow_type :  Gtk.ShadowType.IN  ,
25         
26         items : [
27             { 
28                 id : 'view',
29                 xtype : GtkSource.View,
30                 
31                 init : function() {
32                     XObject.prototype.init.call(this); 
33                     var _this = this;
34                     this.el.set_buffer (new GtkSource.Buffer());
35                     this.el.get_buffer().signal.changed.connect(function() {
36                             var s = new Gtk.TextIter();
37                             var e = new Gtk.TextIter();
38                             _this.el.get_buffer().get_start_iter(s);
39                             _this.el.get_buffer().get_end_iter(e);
40                             var str = _this.el.get_buffer().get_text(s,e,true);
41                             try {
42                                 Seed.check_syntax('var e = ' + str);
43                             } catch (e) {
44                                 _this.el.modify_base(Gtk.StateType.NORMAL, new Gdk.Color({
45                                     red: 0xFFFF, green: 0xCCCC , blue : 0xCCCC
46                                    }));
47                                 print("SYNTAX ERROR IN EDITOR");   
48                                 print(e);
49                                 console.dump(e);
50                                 return;
51                             }
52                             _this.el.modify_base(Gtk.StateType.NORMAL, new Gdk.Color({
53                                     red: 0xFFFF, green: 0xFFFF , blue : 0xFFFF
54                                    }));
55                             
56                             imports.Builder.LeftPanel.LeftPanel.get('model').changed(  str , false);
57                     });
58                    
59                     var description = Pango.Font.description_from_string("monospace")
60                     description.set_size(8000);
61                     this.el.modify_font(description);
62             
63                     
64                       
65                    
66                 },
67                 
68                 load : function(str) {
69                     this.get('/BottomPane').el.set_current_page(0);
70                     this.el.get_buffer().set_text(str, str.length);
71                     var lm = GtkSource.LanguageManager.get_default();
72                     
73                     this.el.get_buffer().set_language(lm.get_language('js'));
74                     var buf = this.el.get_buffer();
75                     var cursor = buf.get_mark("insert");
76                     var iter= new Gtk.TextIter;
77                     buf.get_iter_at_mark(iter, cursor);
78                     iter.set_line(1);
79                     iter.set_line_offset(4);
80                     buf.move_mark(cursor, iter);
81                     
82                     
83                     cursor = buf.get_mark("selection_bound");
84                     iter= new Gtk.TextIter;
85                     buf.get_iter_at_mark(iter, cursor);
86                     iter.set_line(1);
87                     iter.set_line_offset(4);
88                     buf.move_mark(cursor, iter);
89                     
90                     
91                     
92                     this.el.grab_focus();
93                 },
94                 // neeed???
95                 
96                 
97                 
98             }
99         ]
100     }
101         
102         
103     
104     
105     
106 );
107