2 * as state management is a bit too complicated inside the builder
3 * it's better to seperate this into this class
5 * This class has references to all the Class instances that make up the window..
8 public class WindowState : Object
10 public MainWindow win;
22 public Xcls_WindowLeftTree left_tree;
23 public Xcls_WindowAddProp add_props;
24 public Xcls_LeftProps left_props;
25 public Xcls_ProjectSettings projectsettings;
26 public ValaProjectSettings vala_projectsettings;
27 public Xcls_RightPalete rightpalete;
36 public About(MainWindow win)
41 this.projectEditInit();
51 public void leftTreeInit()
54 this.left_tree = new Xcls_WindowLeftTree();
56 this.left_tree.main_window = _this.win;
58 this.win.tree.el.pack_start(this.left_tree.el,true, true,0);
59 this.left_tree.el.show_all();
61 this.left_tree.before_node_change.connect(() => {
62 return this.leftTreeBeforeChange();
66 this.left_tree.node_selected.connect((sel) => {
67 this.leftTreeNodeSelected(sel);
70 this.left_tree.changed.connect(() => {
71 this.window_rooview.requestRedraw();
72 this.left_tree.model.file.save();
77 public bool leftTreeBeforeChange(JsRender.Node? sel)
79 if (this.state != "codeedit") {
80 this.left_props.finish_editing();
83 if (!this.code_editor.saveContents()) {
89 public void leftTreeNodeSelected(JsRender.Node? sel)
92 print("node_selected called %s\n", (sel == null) ? "NULL" : "a value");
95 this.left_props.el.hide();
97 this.left_props.el.show();
98 this.left_props.load(this.left_tree.getActiveFile(), sel);
104 this.rightpalete.clear();
107 this.rightpalete.load(this.left_tree.getActiveFile().palete(), sel.fqn());
113 this.add_props.clear();
116 this.add_props.show(this.left_tree.getActiveFile().palete(), "props", sel.fqn());
122 this.add_props.clear();
125 this.add_props.show(_this.left_tree.getActiveFile().palete(), "signals", sel.fqn());
142 public void propsListInit()
145 this.left_props =new Xcls_LeftProps();
146 this.left_props.ref();
147 this.left_props.main_window = _this;
148 this.win.props.el.pack_start(this.left_props.el,true, true,0);
149 this.left_props.el.show_all();
151 this.left_props.show_editor.connect( (file, node, type, key) => {
152 this.codeEditShow(file, node, type, key);
156 this.left_props.stop_editor.connect( () => {
157 if (this.state != "codeedit") {
161 var ret = this.code_editor.saveContents();
169 this.left_props.changed.connect(() => {
170 if (this.left_tree.getActiveFile().xtype == "Roo" ) {
171 this.window_rooview.requestRedraw();
174 this.window_gladeview.loadFile(this.left_tree.getActiveFile());
176 this.left_tree.model.updateSelected();
177 this.left_tree.model.file.save();
184 //------------- projects edit
186 public void projectEditInit()
188 this.projectsettings =new Xcls_ProjectSettings();
189 this.projectsettings.ref(); /// really?
191 this.vala_projectsettings =new ValaProjectSettings();
192 this.vala_projectsettings.ref();
193 this.vala_projectsettings.window = this;
195 ((Gtk.Container)(this.win.projecteditview.el.get_widget())).add(this.projectsettings.el);
196 //this.projectsettings.el.show_all();
198 var stage = this.win.projecteditview.el.get_stage();
199 stage.set_background_color( Clutter.Color.from_string("#000"));
201 this.projectsettings.buttonPressed.connect((btn) => {
202 if (this.left_tree.getActiveFile().xtype == "Roo" ) {
204 this.window_rooview.view.renderJS(true);
206 if (btn == "apply") {
207 this.window_rooview.view.renderJS(true);
211 // do nothing for gtk..
213 if (btn == "save" || btn == "apply") {
214 this.win.project.save();
218 this.projectEditHide();
224 public void objectAddInit()
227 this.rightpalete = new Xcls_RightPalete();
228 this.rightpalete.ref(); /// really?
229 ((Gtk.Container)(this.win.objectview.el.get_widget())).add(this.rightpalete.el);
230 //this.projectsettings.el.show_all();
232 stage = _this.win.objectview.el.get_stage();
233 stage.set_background_color( Clutter.Color.from_string("#000"));
237 // ----------- properties adding list...
238 // listener uses the properties
239 public void propsAddInit()
242 this.add_props = new Xcls_WindowAddProp();
243 this.add_props.ref(); /// really?
244 ((Gtk.Container)(this.win.addpropsview.el.get_widget())).add(this.add_props.el);
245 //this.projectsettings.el.show_all();
247 var stage = _this.win.addpropsview.el.get_stage();
248 stage.set_background_color( Clutter.Color.from_string("#000"));
251 this.add_props.select.connect( (key,type,skel, etype) => {
252 this.left_props.addProp(etype, key, skel, type);
256 public void propsAddShow()
260 public void propsAddHide()
265 // ----------- Add / Edit listener
266 // listener uses the properties
267 public void listenerInit()
271 public void listenerShow()
275 public void listenerHide()