6ed9192df77fcf9b301e934fe8f137d55a6525b8
[roobuilder] / src / Builder4 / ValaProjectSettingsPopover.vala
1 static Xcls_ValaProjectSettingsPopover  _ValaProjectSettingsPopover;
2
3 public class Xcls_ValaProjectSettingsPopover : Object
4 {
5     public Gtk.Popover el;
6     private Xcls_ValaProjectSettingsPopover  _this;
7
8     public static Xcls_ValaProjectSettingsPopover singleton()
9     {
10         if (_ValaProjectSettingsPopover == null) {
11             _ValaProjectSettingsPopover= new Xcls_ValaProjectSettingsPopover();
12         }
13         return _ValaProjectSettingsPopover;
14     }
15     public Xcls_label_global label_global;
16     public Xcls_label_targets label_targets;
17     public Xcls_compile_flags compile_flags;
18     public Xcls_default_packages_tree_store default_packages_tree_store;
19     public Xcls_packages_render packages_render;
20     public Xcls_packages_render_use packages_render_use;
21     public Xcls_default_directory_tree default_directory_tree;
22     public Xcls_default_directory_tree_store default_directory_tree_store;
23     public Xcls_directory_render directory_render;
24     public Xcls_default_directory_menu default_directory_menu;
25     public Xcls_targets_tree_menu targets_tree_menu;
26     public Xcls_targets_tree targets_tree;
27     public Xcls_targets_tree_store targets_tree_store;
28     public Xcls_targets_render targets_render;
29     public Xcls_set_vbox set_vbox;
30     public Xcls_build_pack_target build_pack_target;
31     public Xcls_build_compile_flags build_compile_flags;
32     public Xcls_build_execute_args build_execute_args;
33     public Xcls_files_tree_store files_tree_store;
34     public Xcls_files_render files_render;
35     public Xcls_files_render_use files_render_use;
36
37         // my vars (def)
38     public Xcls_MainWindow window;
39     public Project.Gtk project;
40
41     // ctor
42     public Xcls_ValaProjectSettingsPopover()
43     {
44         _this = this;
45         this.el = new Gtk.Popover( null );
46
47         // my vars (dec)
48         this.window = null;
49         this.project = null;
50
51         // set gobject values
52         this.el.border_width = 0;
53         this.el.modal = true;
54         this.el.position = Gtk.PositionType.RIGHT;
55         var child_0 = new Xcls_Box2( _this );
56         child_0.ref();
57         this.el.add (  child_0.el  );
58
59         //listeners
60         this.el.hide.connect( () => {
61                 _this.project.writeConfig();
62         
63         });
64     }
65
66     // user defined functions
67     public void show (Gtk.Widget btn, Project.Gtk project) {
68          
69         //print("ValaProjectSettings show\n");
70         
71         this.project=  project;
72     
73         this.compile_flags.el.text = _this.project.compilegroups.get("_default_").compile_flags;
74         
75         this.default_directory_tree_store.load();    
76         this.default_packages_tree_store.load();            
77         this.targets_tree_store.load();
78         this.files_tree_store.load();
79     
80     
81         this.el.set_modal(true);
82         this.el.set_relative_to(btn);
83     
84         this.el.set_position(Gtk.PositionType.RIGHT);
85     
86         // window + header?
87         // print("SHOWALL - POPIP\n");
88         this.el.set_size_request(800,500);
89         this.el.show_all();
90         //this.view.el.grab_focus();
91     
92     }
93     public void save ()  {
94         this.project.writeConfig(); 
95     }
96     public class Xcls_Box2 : Object
97     {
98         public Gtk.Box el;
99         private Xcls_ValaProjectSettingsPopover  _this;
100
101
102             // my vars (def)
103
104         // ctor
105         public Xcls_Box2(Xcls_ValaProjectSettingsPopover _owner )
106         {
107             _this = _owner;
108             this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
109
110             // my vars (dec)
111
112             // set gobject values
113             this.el.hexpand = true;
114             var child_0 = new Xcls_Notebook3( _this );
115             child_0.ref();
116             this.el.pack_start (  child_0.el , true,true,0 );
117         }
118
119         // user defined functions
120     }
121     public class Xcls_Notebook3 : Object
122     {
123         public Gtk.Notebook el;
124         private Xcls_ValaProjectSettingsPopover  _this;
125
126
127             // my vars (def)
128
129         // ctor
130         public Xcls_Notebook3(Xcls_ValaProjectSettingsPopover _owner )
131         {
132             _this = _owner;
133             this.el = new Gtk.Notebook();
134
135             // my vars (dec)
136
137             // set gobject values
138             var child_0 = new Xcls_label_global( _this );
139             child_0.ref();
140             var child_1 = new Xcls_label_targets( _this );
141             child_1.ref();
142             var child_2 = new Xcls_Box6( _this );
143             child_2.ref();
144             this.el.append_page (  child_2.el , _this.label_global.el );
145             var child_3 = new Xcls_Paned27( _this );
146             child_3.ref();
147             this.el.append_page (  child_3.el , _this.label_targets.el );
148         }
149
150         // user defined functions
151     }
152     public class Xcls_label_global : Object
153     {
154         public Gtk.Label el;
155         private Xcls_ValaProjectSettingsPopover  _this;
156
157
158             // my vars (def)
159
160         // ctor
161         public Xcls_label_global(Xcls_ValaProjectSettingsPopover _owner )
162         {
163             _this = _owner;
164             _this.label_global = this;
165             this.el = new Gtk.Label( "Global" );
166
167             // my vars (dec)
168
169             // set gobject values
170         }
171
172         // user defined functions
173     }
174
175     public class Xcls_label_targets : Object
176     {
177         public Gtk.Label el;
178         private Xcls_ValaProjectSettingsPopover  _this;
179
180
181             // my vars (def)
182
183         // ctor
184         public Xcls_label_targets(Xcls_ValaProjectSettingsPopover _owner )
185         {
186             _this = _owner;
187             _this.label_targets = this;
188             this.el = new Gtk.Label( "Targets" );
189
190             // my vars (dec)
191
192             // set gobject values
193         }
194
195         // user defined functions
196     }
197
198     public class Xcls_Box6 : Object
199     {
200         public Gtk.Box el;
201         private Xcls_ValaProjectSettingsPopover  _this;
202
203
204             // my vars (def)
205
206         // ctor
207         public Xcls_Box6(Xcls_ValaProjectSettingsPopover _owner )
208         {
209             _this = _owner;
210             this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
211
212             // my vars (dec)
213
214             // set gobject values
215             this.el.homogeneous = false;
216             var child_0 = new Xcls_Label7( _this );
217             child_0.ref();
218             this.el.pack_start (  child_0.el , false,false,0 );
219             var child_1 = new Xcls_compile_flags( _this );
220             child_1.ref();
221             this.el.pack_start (  child_1.el , false,false,0 );
222             var child_2 = new Xcls_Paned9( _this );
223             child_2.ref();
224             this.el.pack_start (  child_2.el , true,true,0 );
225         }
226
227         // user defined functions
228     }
229     public class Xcls_Label7 : Object
230     {
231         public Gtk.Label el;
232         private Xcls_ValaProjectSettingsPopover  _this;
233
234
235             // my vars (def)
236
237         // ctor
238         public Xcls_Label7(Xcls_ValaProjectSettingsPopover _owner )
239         {
240             _this = _owner;
241             this.el = new Gtk.Label( "compile flags" );
242
243             // my vars (dec)
244
245             // set gobject values
246         }
247
248         // user defined functions
249     }
250
251     public class Xcls_compile_flags : Object
252     {
253         public Gtk.Entry el;
254         private Xcls_ValaProjectSettingsPopover  _this;
255
256
257             // my vars (def)
258
259         // ctor
260         public Xcls_compile_flags(Xcls_ValaProjectSettingsPopover _owner )
261         {
262             _this = _owner;
263             _this.compile_flags = this;
264             this.el = new Gtk.Entry();
265
266             // my vars (dec)
267
268             // set gobject values
269             this.el.placeholder_text = "eg. -g --valasrc $BASEDIR ";
270
271             //listeners
272             this.el.changed.connect( () => {
273                 
274                _this.project.compilegroups.get("_default_").compile_flags = this.el.text;
275                _this.project.writeConfig();
276             //    _this.project.save();
277             
278             });
279         }
280
281         // user defined functions
282     }
283
284     public class Xcls_Paned9 : Object
285     {
286         public Gtk.Paned el;
287         private Xcls_ValaProjectSettingsPopover  _this;
288
289
290             // my vars (def)
291
292         // ctor
293         public Xcls_Paned9(Xcls_ValaProjectSettingsPopover _owner )
294         {
295             _this = _owner;
296             this.el = new Gtk.Paned( Gtk.Orientation.HORIZONTAL );
297
298             // my vars (dec)
299
300             // set gobject values
301             this.el.position = 300;
302             var child_0 = new Xcls_ScrolledWindow10( _this );
303             child_0.ref();
304             this.el.add (  child_0.el  );
305             var child_1 = new Xcls_ScrolledWindow17( _this );
306             child_1.ref();
307             this.el.add2 (  child_1.el  );
308         }
309
310         // user defined functions
311     }
312     public class Xcls_ScrolledWindow10 : Object
313     {
314         public Gtk.ScrolledWindow el;
315         private Xcls_ValaProjectSettingsPopover  _this;
316
317
318             // my vars (def)
319
320         // ctor
321         public Xcls_ScrolledWindow10(Xcls_ValaProjectSettingsPopover _owner )
322         {
323             _this = _owner;
324             this.el = new Gtk.ScrolledWindow( null, null );
325
326             // my vars (dec)
327
328             // set gobject values
329             this.el.hexpand = true;
330             var child_0 = new Xcls_default_packages_tree( _this );
331             child_0.ref();
332             this.el.add (  child_0.el  );
333         }
334
335         // user defined functions
336     }
337     public class Xcls_default_packages_tree : Object
338     {
339         public Gtk.TreeView el;
340         private Xcls_ValaProjectSettingsPopover  _this;
341
342
343             // my vars (def)
344
345         // ctor
346         public Xcls_default_packages_tree(Xcls_ValaProjectSettingsPopover _owner )
347         {
348             _this = _owner;
349             this.el = new Gtk.TreeView();
350
351             // my vars (dec)
352
353             // set gobject values
354             this.el.headers_visible = true;
355             var child_0 = new Xcls_default_packages_tree_store( _this );
356             child_0.ref();
357             this.el.set_model (  child_0.el  );
358             var child_1 = new Xcls_TreeViewColumn13( _this );
359             child_1.ref();
360             this.el.append_column (  child_1.el  );
361             var child_2 = new Xcls_TreeViewColumn15( _this );
362             child_2.ref();
363             this.el.append_column (  child_2.el  );
364         }
365
366         // user defined functions
367     }
368     public class Xcls_default_packages_tree_store : Object
369     {
370         public Gtk.ListStore el;
371         private Xcls_ValaProjectSettingsPopover  _this;
372
373
374             // my vars (def)
375
376         // ctor
377         public Xcls_default_packages_tree_store(Xcls_ValaProjectSettingsPopover _owner )
378         {
379             _this = _owner;
380             _this.default_packages_tree_store = this;
381             this.el = new Gtk.ListStore( 2,     typeof(string),  // 0 key type
382       typeof(bool) );
383
384             // my vars (dec)
385
386             // set gobject values
387         }
388
389         // user defined functions
390         public void load () {
391          
392             var def = _this.project.compilegroups.get("_default_");
393             var items  = def.packages;
394             
395             this.el.clear();
396             var pal = (Palete.Gtk) Palete.factory("Gtk");
397             var pkgs = pal.packages(_this.project);
398             print("ValaProjectSettings:packages load %d\n", pkgs.size);
399         
400             Gtk.TreeIter citer;
401         
402             for(var i =0 ; i < pkgs.size; i++) {
403                  this.el.append(out citer);   
404                  
405                 this.el.set_value(citer, 0,   pkgs.get(i) ); // title 
406                 this.el.set_value(citer, 1,   items.contains(pkgs.get(i)) );
407             }
408             this.el.set_sort_column_id(0,Gtk.SortType.ASCENDING);
409             
410         }
411     }
412
413     public class Xcls_TreeViewColumn13 : Object
414     {
415         public Gtk.TreeViewColumn el;
416         private Xcls_ValaProjectSettingsPopover  _this;
417
418
419             // my vars (def)
420
421         // ctor
422         public Xcls_TreeViewColumn13(Xcls_ValaProjectSettingsPopover _owner )
423         {
424             _this = _owner;
425             this.el = new Gtk.TreeViewColumn();
426
427             // my vars (dec)
428
429             // set gobject values
430             this.el.title = "package name";
431             this.el.expand = true;
432             this.el.resizable = true;
433             var child_0 = new Xcls_packages_render( _this );
434             child_0.ref();
435             this.el.pack_start (  child_0.el , false );
436
437             // init method
438
439             this.el.add_attribute(_this.packages_render.el , "text", 0 );
440         }
441
442         // user defined functions
443     }
444     public class Xcls_packages_render : Object
445     {
446         public Gtk.CellRendererText el;
447         private Xcls_ValaProjectSettingsPopover  _this;
448
449
450             // my vars (def)
451
452         // ctor
453         public Xcls_packages_render(Xcls_ValaProjectSettingsPopover _owner )
454         {
455             _this = _owner;
456             _this.packages_render = this;
457             this.el = new Gtk.CellRendererText();
458
459             // my vars (dec)
460
461             // set gobject values
462         }
463
464         // user defined functions
465     }
466
467
468     public class Xcls_TreeViewColumn15 : Object
469     {
470         public Gtk.TreeViewColumn el;
471         private Xcls_ValaProjectSettingsPopover  _this;
472
473
474             // my vars (def)
475
476         // ctor
477         public Xcls_TreeViewColumn15(Xcls_ValaProjectSettingsPopover _owner )
478         {
479             _this = _owner;
480             this.el = new Gtk.TreeViewColumn();
481
482             // my vars (dec)
483
484             // set gobject values
485             this.el.title = "use";
486             this.el.resizable = false;
487             this.el.fixed_width = 50;
488             var child_0 = new Xcls_packages_render_use( _this );
489             child_0.ref();
490             this.el.pack_start (  child_0.el , false );
491
492             // init method
493
494             {
495              this.el.add_attribute(_this.packages_render_use.el , "active", 1 );
496              }
497         }
498
499         // user defined functions
500     }
501     public class Xcls_packages_render_use : Object
502     {
503         public Gtk.CellRendererToggle el;
504         private Xcls_ValaProjectSettingsPopover  _this;
505
506
507             // my vars (def)
508
509         // ctor
510         public Xcls_packages_render_use(Xcls_ValaProjectSettingsPopover _owner )
511         {
512             _this = _owner;
513             _this.packages_render_use = this;
514             this.el = new Gtk.CellRendererToggle();
515
516             // my vars (dec)
517
518             // set gobject values
519             this.el.activatable = true;
520
521             //listeners
522             this.el.toggled.connect( (  path_string) =>  { 
523                 var m = _this.default_packages_tree_store.el;
524                Gtk.TreeIter iter;
525                Gtk.TreePath path = new Gtk.TreePath.from_string (path_string);
526                m.get_iter (out iter, path);
527                GLib.Value val;
528                m.get_value(iter, 1, out val);
529                m.set_value(iter, 1,  ((bool) val) ? false :true); 
530                  GLib.Value fval;  
531                m.get_value(iter, 0, out fval);
532                var fn = (string)fval;
533                 
534                 var def = _this.project.compilegroups.get("_default_");
535                 var items  = def.packages;
536                 if ((bool)val) {
537                     // renive
538                     items.remove(fn);
539                 } else {
540                     items.add(fn);
541                 }
542                 
543             });
544         }
545
546         // user defined functions
547     }
548
549
550
551
552     public class Xcls_ScrolledWindow17 : Object
553     {
554         public Gtk.ScrolledWindow el;
555         private Xcls_ValaProjectSettingsPopover  _this;
556
557
558             // my vars (def)
559
560         // ctor
561         public Xcls_ScrolledWindow17(Xcls_ValaProjectSettingsPopover _owner )
562         {
563             _this = _owner;
564             this.el = new Gtk.ScrolledWindow( null, null );
565
566             // my vars (dec)
567
568             // set gobject values
569             this.el.hexpand = true;
570             var child_0 = new Xcls_default_directory_tree( _this );
571             child_0.ref();
572             this.el.add (  child_0.el  );
573             var child_1 = new Xcls_default_directory_menu( _this );
574             child_1.ref();
575         }
576
577         // user defined functions
578     }
579     public class Xcls_default_directory_tree : Object
580     {
581         public Gtk.TreeView el;
582         private Xcls_ValaProjectSettingsPopover  _this;
583
584
585             // my vars (def)
586
587         // ctor
588         public Xcls_default_directory_tree(Xcls_ValaProjectSettingsPopover _owner )
589         {
590             _this = _owner;
591             _this.default_directory_tree = this;
592             this.el = new Gtk.TreeView();
593
594             // my vars (dec)
595
596             // set gobject values
597             this.el.headers_visible = true;
598             var child_0 = new Xcls_default_directory_tree_store( _this );
599             child_0.ref();
600             this.el.set_model (  child_0.el  );
601             var child_1 = new Xcls_TreeViewColumn20( _this );
602             child_1.ref();
603             this.el.append_column (  child_1.el  );
604
605             //listeners
606             this.el.button_press_event.connect( ( ev) => {
607                 //console.log("button press?");
608                
609                 
610                 if (ev.type != Gdk.EventType.BUTTON_PRESS  || ev.button != 3) {
611                     //print("click" + ev.type);
612                     return false;
613                 }
614                 //Gtk.TreePath res;
615                 //if (!this.el.get_path_at_pos((int)ev.x,(int)ev.y, out res, null, null, null) ) {
616                 //    return true;
617                 //}
618                  
619               //  this.el.get_selection().select_path(res);
620                  
621                   //if (!this.get('/LeftTreeMenu').el)  { 
622                   //      this.get('/LeftTreeMenu').init(); 
623                   //  }
624                     
625                  _this.default_directory_menu.el.set_screen(Gdk.Screen.get_default());
626                  _this.default_directory_menu.el.show_all();
627                   _this.default_directory_menu.el.popup(null, null, null,  3, ev.time);
628                  //   print("click:" + res.path.to_string());
629                   return true;
630             });
631         }
632
633         // user defined functions
634     }
635     public class Xcls_default_directory_tree_store : Object
636     {
637         public Gtk.ListStore el;
638         private Xcls_ValaProjectSettingsPopover  _this;
639
640
641             // my vars (def)
642
643         // ctor
644         public Xcls_default_directory_tree_store(Xcls_ValaProjectSettingsPopover _owner )
645         {
646             _this = _owner;
647             _this.default_directory_tree_store = this;
648             this.el = new Gtk.ListStore( 1,     typeof(string)
649       );
650
651             // my vars (dec)
652
653             // set gobject values
654         }
655
656         // user defined functions
657         public void load () {
658          
659           this.el.clear();
660           
661             
662              var def = _this.project.compilegroups.get("_default_");
663              var items  = def.sources;
664              
665          
666             Gtk.TreeIter citer;
667         
668             for(var i =0 ; i < items.size; i++) {
669                  this.el.append(out citer);   
670                  
671                 this.el.set_value(citer, 0,   items.get(i) ); // title 
672                 //this.el.set_value(citer, 1,   items.get(i) );
673             }
674             this.el.set_sort_column_id(0,Gtk.SortType.ASCENDING);
675             
676         }
677     }
678
679     public class Xcls_TreeViewColumn20 : Object
680     {
681         public Gtk.TreeViewColumn el;
682         private Xcls_ValaProjectSettingsPopover  _this;
683
684
685             // my vars (def)
686
687         // ctor
688         public Xcls_TreeViewColumn20(Xcls_ValaProjectSettingsPopover _owner )
689         {
690             _this = _owner;
691             this.el = new Gtk.TreeViewColumn();
692
693             // my vars (dec)
694
695             // set gobject values
696             this.el.title = "Available Directories (right click to add)";
697             this.el.resizable = true;
698             var child_0 = new Xcls_directory_render( _this );
699             child_0.ref();
700             this.el.pack_start (  child_0.el , false );
701
702             // init method
703
704             this.el.add_attribute(_this.directory_render.el , "text", 0 );
705         }
706
707         // user defined functions
708     }
709     public class Xcls_directory_render : Object
710     {
711         public Gtk.CellRendererText el;
712         private Xcls_ValaProjectSettingsPopover  _this;
713
714
715             // my vars (def)
716
717         // ctor
718         public Xcls_directory_render(Xcls_ValaProjectSettingsPopover _owner )
719         {
720             _this = _owner;
721             _this.directory_render = this;
722             this.el = new Gtk.CellRendererText();
723
724             // my vars (dec)
725
726             // set gobject values
727         }
728
729         // user defined functions
730     }
731
732
733
734     public class Xcls_default_directory_menu : Object
735     {
736         public Gtk.Menu el;
737         private Xcls_ValaProjectSettingsPopover  _this;
738
739
740             // my vars (def)
741
742         // ctor
743         public Xcls_default_directory_menu(Xcls_ValaProjectSettingsPopover _owner )
744         {
745             _this = _owner;
746             _this.default_directory_menu = this;
747             this.el = new Gtk.Menu();
748
749             // my vars (dec)
750
751             // set gobject values
752             var child_0 = new Xcls_MenuItem23( _this );
753             child_0.ref();
754             this.el.add (  child_0.el  );
755             var child_1 = new Xcls_MenuItem24( _this );
756             child_1.ref();
757             this.el.add (  child_1.el  );
758             var child_2 = new Xcls_SeparatorMenuItem25( _this );
759             child_2.ref();
760             this.el.add (  child_2.el  );
761             var child_3 = new Xcls_MenuItem26( _this );
762             child_3.ref();
763             this.el.add (  child_3.el  );
764         }
765
766         // user defined functions
767     }
768     public class Xcls_MenuItem23 : Object
769     {
770         public Gtk.MenuItem el;
771         private Xcls_ValaProjectSettingsPopover  _this;
772
773
774             // my vars (def)
775
776         // ctor
777         public Xcls_MenuItem23(Xcls_ValaProjectSettingsPopover _owner )
778         {
779             _this = _owner;
780             this.el = new Gtk.MenuItem();
781
782             // my vars (dec)
783
784             // set gobject values
785             this.el.label = "Add Directory";
786
787             //listeners
788             this.el.activate.connect( ()  => {
789                 
790                 var  chooser = new Gtk.FileChooserDialog (
791                 "Add a directory", _this.window.el, Gtk.FileChooserAction.SELECT_FOLDER ,
792                 "_Cancel",
793                 Gtk.ResponseType.CANCEL,
794                 "_Add",
795                 Gtk.ResponseType.ACCEPT);
796                 if (chooser.run () != Gtk.ResponseType.ACCEPT) {
797                     chooser.close ();
798                        return;
799                    }
800                    chooser.close ();
801                    // add the directory..
802                    var fn = _this.project.relPath(chooser.get_filename());
803                    _this.project.compilegroups.get("_default_").sources.add(fn);
804                    _this.default_directory_tree_store.load();
805             });
806         }
807
808         // user defined functions
809     }
810
811     public class Xcls_MenuItem24 : Object
812     {
813         public Gtk.MenuItem el;
814         private Xcls_ValaProjectSettingsPopover  _this;
815
816
817             // my vars (def)
818
819         // ctor
820         public Xcls_MenuItem24(Xcls_ValaProjectSettingsPopover _owner )
821         {
822             _this = _owner;
823             this.el = new Gtk.MenuItem();
824
825             // my vars (dec)
826
827             // set gobject values
828             this.el.label = "Add File";
829
830             //listeners
831             this.el.activate.connect( ()  => {
832                 
833                 var  chooser = new Gtk.FileChooserDialog (
834                 "Add a directory", _this.window.el, Gtk.FileChooserAction.OPEN ,
835                 "_Cancel",
836                 Gtk.ResponseType.CANCEL,
837                 "_Add",
838                 Gtk.ResponseType.ACCEPT);
839                 if (chooser.run () != Gtk.ResponseType.ACCEPT) {
840                     chooser.close ();
841                        return;
842                    }
843                    chooser.close ();
844                    // add the directory..
845                    var fn = _this.project.relPath(chooser.get_filename());
846                    _this.project.compilegroups.get("_default_").sources.add(fn);
847                    _this.default_directory_tree_store.load();
848             });
849         }
850
851         // user defined functions
852     }
853
854     public class Xcls_SeparatorMenuItem25 : Object
855     {
856         public Gtk.SeparatorMenuItem el;
857         private Xcls_ValaProjectSettingsPopover  _this;
858
859
860             // my vars (def)
861
862         // ctor
863         public Xcls_SeparatorMenuItem25(Xcls_ValaProjectSettingsPopover _owner )
864         {
865             _this = _owner;
866             this.el = new Gtk.SeparatorMenuItem();
867
868             // my vars (dec)
869
870             // set gobject values
871         }
872
873         // user defined functions
874     }
875
876     public class Xcls_MenuItem26 : Object
877     {
878         public Gtk.MenuItem el;
879         private Xcls_ValaProjectSettingsPopover  _this;
880
881
882             // my vars (def)
883
884         // ctor
885         public Xcls_MenuItem26(Xcls_ValaProjectSettingsPopover _owner )
886         {
887             _this = _owner;
888             this.el = new Gtk.MenuItem();
889
890             // my vars (dec)
891
892             // set gobject values
893             this.el.label = "Remove File/Directory";
894
895             //listeners
896             this.el.activate.connect( ()  => {
897                 
898                  //
899                     Gtk.TreeModel mod;
900                     Gtk.TreeIter iter;
901                     if (!_this.default_directory_tree.el.get_selection().get_selected(out mod, out iter)) {
902                            print("nothing selected\n");
903                         return;
904                     }
905             
906                         
907                    // add the directory..
908                    
909                    
910                    GLib.Value val;
911                     mod.get_value(iter,0, out val);
912                    var fn =  (string) val;
913                    
914                    print("remove: %s\n", fn);
915                    if (!_this.project.compilegroups.get("_default_").sources.remove(fn)) {
916                               print("remove failed");
917                           }
918                    _this.default_directory_tree_store.load();
919             });
920         }
921
922         // user defined functions
923     }
924
925
926
927
928
929     public class Xcls_Paned27 : Object
930     {
931         public Gtk.Paned el;
932         private Xcls_ValaProjectSettingsPopover  _this;
933
934
935             // my vars (def)
936
937         // ctor
938         public Xcls_Paned27(Xcls_ValaProjectSettingsPopover _owner )
939         {
940             _this = _owner;
941             this.el = new Gtk.Paned( Gtk.Orientation.HORIZONTAL );
942
943             // my vars (dec)
944
945             // set gobject values
946             this.el.position = 300;
947             var child_0 = new Xcls_ScrolledWindow28( _this );
948             child_0.ref();
949             this.el.add1 (  child_0.el  );
950             var child_1 = new Xcls_set_vbox( _this );
951             child_1.ref();
952             this.el.add2 (  child_1.el  );
953         }
954
955         // user defined functions
956     }
957     public class Xcls_ScrolledWindow28 : Object
958     {
959         public Gtk.ScrolledWindow el;
960         private Xcls_ValaProjectSettingsPopover  _this;
961
962
963             // my vars (def)
964
965         // ctor
966         public Xcls_ScrolledWindow28(Xcls_ValaProjectSettingsPopover _owner )
967         {
968             _this = _owner;
969             this.el = new Gtk.ScrolledWindow( null, null );
970
971             // my vars (dec)
972
973             // set gobject values
974             var child_0 = new Xcls_targets_tree_menu( _this );
975             child_0.ref();
976             this.el.add (  child_0.el  );
977             var child_1 = new Xcls_targets_tree( _this );
978             child_1.ref();
979             this.el.add (  child_1.el  );
980
981             // init method
982
983             {  
984             this.el.set_policy (Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC);
985             
986             }
987         }
988
989         // user defined functions
990     }
991     public class Xcls_targets_tree_menu : Object
992     {
993         public Gtk.Menu el;
994         private Xcls_ValaProjectSettingsPopover  _this;
995
996
997             // my vars (def)
998
999         // ctor
1000         public Xcls_targets_tree_menu(Xcls_ValaProjectSettingsPopover _owner )
1001         {
1002             _this = _owner;
1003             _this.targets_tree_menu = this;
1004             this.el = new Gtk.Menu();
1005
1006             // my vars (dec)
1007
1008             // set gobject values
1009             var child_0 = new Xcls_MenuItem30( _this );
1010             child_0.ref();
1011             this.el.add (  child_0.el  );
1012             var child_1 = new Xcls_SeparatorMenuItem31( _this );
1013             child_1.ref();
1014             this.el.add (  child_1.el  );
1015             var child_2 = new Xcls_MenuItem32( _this );
1016             child_2.ref();
1017             this.el.add (  child_2.el  );
1018         }
1019
1020         // user defined functions
1021     }
1022     public class Xcls_MenuItem30 : Object
1023     {
1024         public Gtk.MenuItem el;
1025         private Xcls_ValaProjectSettingsPopover  _this;
1026
1027
1028             // my vars (def)
1029
1030         // ctor
1031         public Xcls_MenuItem30(Xcls_ValaProjectSettingsPopover _owner )
1032         {
1033             _this = _owner;
1034             this.el = new Gtk.MenuItem();
1035
1036             // my vars (dec)
1037
1038             // set gobject values
1039             this.el.label = "Add Compile Target";
1040
1041             //listeners
1042             this.el.activate.connect( ()  => {
1043                 
1044                    if (_this.project.compilegroups.has_key("NEW GROUP")) {
1045                     return;
1046                 }
1047                   
1048                    // add the directory..
1049                    
1050                    _this.project.compilegroups.set("NEW GROUP", new Project.GtkValaSettings("NEW GROUP"));
1051                    _this.targets_tree_store.load();
1052             });
1053         }
1054
1055         // user defined functions
1056     }
1057
1058     public class Xcls_SeparatorMenuItem31 : Object
1059     {
1060         public Gtk.SeparatorMenuItem el;
1061         private Xcls_ValaProjectSettingsPopover  _this;
1062
1063
1064             // my vars (def)
1065
1066         // ctor
1067         public Xcls_SeparatorMenuItem31(Xcls_ValaProjectSettingsPopover _owner )
1068         {
1069             _this = _owner;
1070             this.el = new Gtk.SeparatorMenuItem();
1071
1072             // my vars (dec)
1073
1074             // set gobject values
1075         }
1076
1077         // user defined functions
1078     }
1079
1080     public class Xcls_MenuItem32 : Object
1081     {
1082         public Gtk.MenuItem el;
1083         private Xcls_ValaProjectSettingsPopover  _this;
1084
1085
1086             // my vars (def)
1087
1088         // ctor
1089         public Xcls_MenuItem32(Xcls_ValaProjectSettingsPopover _owner )
1090         {
1091             _this = _owner;
1092             this.el = new Gtk.MenuItem();
1093
1094             // my vars (dec)
1095
1096             // set gobject values
1097             this.el.label = "Remove Target";
1098
1099             //listeners
1100             this.el.activate.connect( ()  => {
1101                 
1102                  //
1103                     Gtk.TreeModel mod;
1104                     Gtk.TreeIter iter;
1105                     if (!_this.targets_tree.el.get_selection().get_selected(out mod, out iter)) {
1106                            print("nothing selected\n");
1107                         return;
1108                     }
1109             
1110                         
1111                    // add the directory..
1112                    
1113                    
1114                    GLib.Value val;
1115                     mod.get_value(iter,0, out val);
1116                    var fn =  (string) val;
1117                    
1118                    print("remove: %s\n", fn);
1119                    if (!_this.project.compilegroups.unset(fn)) {
1120                               print("remove failed");
1121                   }
1122                    _this.targets_tree_store.load();
1123             });
1124         }
1125
1126         // user defined functions
1127     }
1128
1129
1130     public class Xcls_targets_tree : Object
1131     {
1132         public Gtk.TreeView el;
1133         private Xcls_ValaProjectSettingsPopover  _this;
1134
1135
1136             // my vars (def)
1137         public string cursor;
1138
1139         // ctor
1140         public Xcls_targets_tree(Xcls_ValaProjectSettingsPopover _owner )
1141         {
1142             _this = _owner;
1143             _this.targets_tree = this;
1144             this.el = new Gtk.TreeView();
1145
1146             // my vars (dec)
1147
1148             // set gobject values
1149             var child_0 = new Xcls_targets_tree_store( _this );
1150             child_0.ref();
1151             this.el.set_model (  child_0.el  );
1152             var child_1 = new Xcls_TreeViewColumn35( _this );
1153             child_1.ref();
1154             this.el.append_column (  child_1.el  );
1155
1156             //listeners
1157             this.el.button_press_event.connect( ( ev) => {
1158                 //console.log("button press?");
1159                
1160                 
1161                 if (ev.type != Gdk.EventType.BUTTON_PRESS  || ev.button != 3) {
1162                     //print("click" + ev.type);
1163                     return false;
1164                 }
1165                 //Gtk.TreePath res;
1166                 //if (!this.el.get_path_at_pos((int)ev.x,(int)ev.y, out res, null, null, null) ) {
1167                 //    return true;
1168                 //}
1169                  
1170               //  this.el.get_selection().select_path(res);
1171                  
1172                   //if (!this.get('/LeftTreeMenu').el)  { 
1173                   //      this.get('/LeftTreeMenu').init(); 
1174                   //  }
1175                     
1176                  _this.targets_tree_menu.el.set_screen(Gdk.Screen.get_default());
1177                  _this.targets_tree_menu.el.show_all();
1178                   _this.targets_tree_menu.el.popup(null, null, null,  3, ev.time);
1179                  //   print("click:" + res.path.to_string());
1180                   return true;
1181             });
1182             this.el.cursor_changed.connect( ( ) => {
1183             
1184                 if (this.cursor != "") {
1185                      // save the values..
1186                  }
1187                  
1188                  // load the new values.
1189                  
1190             
1191                      Gtk.TreeModel mod;
1192                     Gtk.TreeIter iter;
1193                     if (!this.el.get_selection().get_selected(out mod, out iter)) {
1194                         print("nothing selected\n");
1195                         // should disable the right hand side..
1196                         _this.set_vbox.el.hide();
1197                         return;
1198                     }
1199                     _this.set_vbox.el.show();
1200                         
1201                    // add the directory..
1202                    
1203                    
1204                    GLib.Value val;
1205                     mod.get_value(iter,0, out val);
1206                    var fn =  (string) val;
1207                    
1208                    this.cursor = fn;
1209                    var cg = _this.project.compilegroups.get(fn);
1210                    
1211                    _this.build_pack_target.el.set_text(cg.target_bin);
1212                    _this.build_compile_flags.el.set_text(cg.compile_flags);
1213                         _this.build_execute_args.el.set_text(cg.execute_args);
1214                    
1215                    _this.set_vbox.cgroup = cg;
1216                    _this.files_tree_store.update();
1217                    
1218                    // load the srouces
1219                    
1220             
1221               });
1222         }
1223
1224         // user defined functions
1225     }
1226     public class Xcls_targets_tree_store : Object
1227     {
1228         public Gtk.ListStore el;
1229         private Xcls_ValaProjectSettingsPopover  _this;
1230
1231
1232             // my vars (def)
1233
1234         // ctor
1235         public Xcls_targets_tree_store(Xcls_ValaProjectSettingsPopover _owner )
1236         {
1237             _this = _owner;
1238             _this.targets_tree_store = this;
1239             this.el = new Gtk.ListStore( 2,     typeof(string),  // 0 key type
1240      typeof(string) // ??
1241       );
1242
1243             // my vars (dec)
1244
1245             // set gobject values
1246         }
1247
1248         // user defined functions
1249         public void load () {
1250          
1251           this.el.clear();
1252           
1253             
1254              var cg = _this.project.compilegroups;
1255              
1256            _this.targets_tree.cursor = "";
1257             Gtk.TreeIter citer;
1258             var iter = cg.map_iterator();
1259            while(iter.next()) {
1260                 var key = iter.get_key();
1261                 if (key == "_default_") {
1262                     continue;
1263                 }
1264             
1265                  this.el.append(out citer);   
1266                  
1267                 this.el.set_value(citer, 0,   key ); // title 
1268                 //this.el.set_value(citer, 1,   items.get(i) );
1269             };
1270             this.el.set_sort_column_id(0,Gtk.SortType.ASCENDING);
1271             _this.set_vbox.el.hide();
1272         }
1273     }
1274
1275     public class Xcls_TreeViewColumn35 : Object
1276     {
1277         public Gtk.TreeViewColumn el;
1278         private Xcls_ValaProjectSettingsPopover  _this;
1279
1280
1281             // my vars (def)
1282
1283         // ctor
1284         public Xcls_TreeViewColumn35(Xcls_ValaProjectSettingsPopover _owner )
1285         {
1286             _this = _owner;
1287             this.el = new Gtk.TreeViewColumn();
1288
1289             // my vars (dec)
1290
1291             // set gobject values
1292             this.el.title = "name";
1293             this.el.resizable = true;
1294             var child_0 = new Xcls_targets_render( _this );
1295             child_0.ref();
1296             this.el.pack_start (  child_0.el , false );
1297
1298             // init method
1299
1300             {
1301                  this.el.add_attribute(_this.targets_render.el , "text", 0 );
1302              }
1303         }
1304
1305         // user defined functions
1306     }
1307     public class Xcls_targets_render : Object
1308     {
1309         public Gtk.CellRendererText el;
1310         private Xcls_ValaProjectSettingsPopover  _this;
1311
1312
1313             // my vars (def)
1314
1315         // ctor
1316         public Xcls_targets_render(Xcls_ValaProjectSettingsPopover _owner )
1317         {
1318             _this = _owner;
1319             _this.targets_render = this;
1320             this.el = new Gtk.CellRendererText();
1321
1322             // my vars (dec)
1323
1324             // set gobject values
1325             this.el.editable = true;
1326
1327             //listeners
1328             this.el.edited.connect( (path, newtext) => {
1329                  
1330                  Gtk.TreeIter  iter;
1331                     _this.targets_tree_store.el.get_iter(out iter, new Gtk.TreePath.from_string(path));
1332                    GLib.Value gval;
1333                     _this.targets_tree_store.el.get_value(iter,0, out gval);
1334                     var oldval = (string)gval;
1335                    if (oldval == newtext) {
1336                       return;
1337                     }
1338                      var cg = _this.project.compilegroups.get(oldval);
1339                     cg.name = newtext;
1340                     _this.project.compilegroups.unset(oldval);
1341                     _this.project.compilegroups.set(newtext, cg);
1342                    _this.targets_tree_store.load();
1343               });
1344         }
1345
1346         // user defined functions
1347     }
1348
1349
1350
1351
1352     public class Xcls_set_vbox : Object
1353     {
1354         public Gtk.Box el;
1355         private Xcls_ValaProjectSettingsPopover  _this;
1356
1357
1358             // my vars (def)
1359         public Project.GtkValaSettings cgroup;
1360
1361         // ctor
1362         public Xcls_set_vbox(Xcls_ValaProjectSettingsPopover _owner )
1363         {
1364             _this = _owner;
1365             _this.set_vbox = this;
1366             this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
1367
1368             // my vars (dec)
1369             this.cgroup = null;
1370
1371             // set gobject values
1372             this.el.homogeneous = false;
1373             var child_0 = new Xcls_Label38( _this );
1374             child_0.ref();
1375             this.el.pack_start (  child_0.el , false,false,0 );
1376             var child_1 = new Xcls_build_pack_target( _this );
1377             child_1.ref();
1378             this.el.pack_start (  child_1.el , false,false,0 );
1379             var child_2 = new Xcls_Label40( _this );
1380             child_2.ref();
1381             this.el.pack_start (  child_2.el , false,false,0 );
1382             var child_3 = new Xcls_build_compile_flags( _this );
1383             child_3.ref();
1384             this.el.pack_start (  child_3.el , false,false,0 );
1385             var child_4 = new Xcls_Label42( _this );
1386             child_4.ref();
1387             this.el.pack_start (  child_4.el , false,false,0 );
1388             var child_5 = new Xcls_build_execute_args( _this );
1389             child_5.ref();
1390             this.el.pack_start (  child_5.el , false,false,0 );
1391             var child_6 = new Xcls_Label44( _this );
1392             child_6.ref();
1393             this.el.pack_start (  child_6.el , false,false,0 );
1394             var child_7 = new Xcls_ScrolledWindow45( _this );
1395             child_7.ref();
1396             this.el.pack_start (  child_7.el , true,true,0 );
1397         }
1398
1399         // user defined functions
1400     }
1401     public class Xcls_Label38 : Object
1402     {
1403         public Gtk.Label el;
1404         private Xcls_ValaProjectSettingsPopover  _this;
1405
1406
1407             // my vars (def)
1408
1409         // ctor
1410         public Xcls_Label38(Xcls_ValaProjectSettingsPopover _owner )
1411         {
1412             _this = _owner;
1413             this.el = new Gtk.Label( "target filename" );
1414
1415             // my vars (dec)
1416
1417             // set gobject values
1418         }
1419
1420         // user defined functions
1421     }
1422
1423     public class Xcls_build_pack_target : Object
1424     {
1425         public Gtk.Entry el;
1426         private Xcls_ValaProjectSettingsPopover  _this;
1427
1428
1429             // my vars (def)
1430
1431         // ctor
1432         public Xcls_build_pack_target(Xcls_ValaProjectSettingsPopover _owner )
1433         {
1434             _this = _owner;
1435             _this.build_pack_target = this;
1436             this.el = new Gtk.Entry();
1437
1438             // my vars (dec)
1439
1440             // set gobject values
1441
1442             //listeners
1443             this.el.changed.connect( ()  => {
1444                     if (_this.targets_tree.cursor.length < 1) {
1445                     return;
1446                 }
1447                 _this.project.compilegroups.get(_this.targets_tree.cursor).target_bin = this.el.text;
1448             });
1449         }
1450
1451         // user defined functions
1452     }
1453
1454     public class Xcls_Label40 : Object
1455     {
1456         public Gtk.Label el;
1457         private Xcls_ValaProjectSettingsPopover  _this;
1458
1459
1460             // my vars (def)
1461
1462         // ctor
1463         public Xcls_Label40(Xcls_ValaProjectSettingsPopover _owner )
1464         {
1465             _this = _owner;
1466             this.el = new Gtk.Label( "compile flags" );
1467
1468             // my vars (dec)
1469
1470             // set gobject values
1471         }
1472
1473         // user defined functions
1474     }
1475
1476     public class Xcls_build_compile_flags : Object
1477     {
1478         public Gtk.Entry el;
1479         private Xcls_ValaProjectSettingsPopover  _this;
1480
1481
1482             // my vars (def)
1483
1484         // ctor
1485         public Xcls_build_compile_flags(Xcls_ValaProjectSettingsPopover _owner )
1486         {
1487             _this = _owner;
1488             _this.build_compile_flags = this;
1489             this.el = new Gtk.Entry();
1490
1491             // my vars (dec)
1492
1493             // set gobject values
1494
1495             //listeners
1496             this.el.changed.connect( () => {
1497                 if (_this.targets_tree.cursor.length < 1) {
1498                     return;
1499                 }
1500                 _this.project.compilegroups.get(_this.targets_tree.cursor).compile_flags = this.el.text;
1501             });
1502         }
1503
1504         // user defined functions
1505     }
1506
1507     public class Xcls_Label42 : Object
1508     {
1509         public Gtk.Label el;
1510         private Xcls_ValaProjectSettingsPopover  _this;
1511
1512
1513             // my vars (def)
1514
1515         // ctor
1516         public Xcls_Label42(Xcls_ValaProjectSettingsPopover _owner )
1517         {
1518             _this = _owner;
1519             this.el = new Gtk.Label( "test argments - when run after a build" );
1520
1521             // my vars (dec)
1522
1523             // set gobject values
1524         }
1525
1526         // user defined functions
1527     }
1528
1529     public class Xcls_build_execute_args : Object
1530     {
1531         public Gtk.Entry el;
1532         private Xcls_ValaProjectSettingsPopover  _this;
1533
1534
1535             // my vars (def)
1536
1537         // ctor
1538         public Xcls_build_execute_args(Xcls_ValaProjectSettingsPopover _owner )
1539         {
1540             _this = _owner;
1541             _this.build_execute_args = this;
1542             this.el = new Gtk.Entry();
1543
1544             // my vars (dec)
1545
1546             // set gobject values
1547             this.el.placeholder_text = "eg.  -f somefile -g ";
1548
1549             //listeners
1550             this.el.changed.connect( () => {
1551                 if (_this.targets_tree.cursor.length < 1) {
1552                     return;
1553                 }
1554                 _this.project.compilegroups.get(_this.targets_tree.cursor).execute_args = this.el.text;
1555             });
1556         }
1557
1558         // user defined functions
1559     }
1560
1561     public class Xcls_Label44 : Object
1562     {
1563         public Gtk.Label el;
1564         private Xcls_ValaProjectSettingsPopover  _this;
1565
1566
1567             // my vars (def)
1568
1569         // ctor
1570         public Xcls_Label44(Xcls_ValaProjectSettingsPopover _owner )
1571         {
1572             _this = _owner;
1573             this.el = new Gtk.Label( "Files to compile" );
1574
1575             // my vars (dec)
1576
1577             // set gobject values
1578         }
1579
1580         // user defined functions
1581     }
1582
1583     public class Xcls_ScrolledWindow45 : Object
1584     {
1585         public Gtk.ScrolledWindow el;
1586         private Xcls_ValaProjectSettingsPopover  _this;
1587
1588
1589             // my vars (def)
1590
1591         // ctor
1592         public Xcls_ScrolledWindow45(Xcls_ValaProjectSettingsPopover _owner )
1593         {
1594             _this = _owner;
1595             this.el = new Gtk.ScrolledWindow( null, null );
1596
1597             // my vars (dec)
1598
1599             // set gobject values
1600             var child_0 = new Xcls_files_tree( _this );
1601             child_0.ref();
1602             this.el.add (  child_0.el  );
1603         }
1604
1605         // user defined functions
1606     }
1607     public class Xcls_files_tree : Object
1608     {
1609         public Gtk.TreeView el;
1610         private Xcls_ValaProjectSettingsPopover  _this;
1611
1612
1613             // my vars (def)
1614
1615         // ctor
1616         public Xcls_files_tree(Xcls_ValaProjectSettingsPopover _owner )
1617         {
1618             _this = _owner;
1619             this.el = new Gtk.TreeView();
1620
1621             // my vars (dec)
1622
1623             // set gobject values
1624             var child_0 = new Xcls_files_tree_store( _this );
1625             child_0.ref();
1626             this.el.set_model (  child_0.el  );
1627             var child_1 = new Xcls_TreeViewColumn48( _this );
1628             child_1.ref();
1629             this.el.append_column (  child_1.el  );
1630             var child_2 = new Xcls_TreeViewColumn50( _this );
1631             child_2.ref();
1632             this.el.append_column (  child_2.el  );
1633         }
1634
1635         // user defined functions
1636     }
1637     public class Xcls_files_tree_store : Object
1638     {
1639         public Gtk.ListStore el;
1640         private Xcls_ValaProjectSettingsPopover  _this;
1641
1642
1643             // my vars (def)
1644
1645         // ctor
1646         public Xcls_files_tree_store(Xcls_ValaProjectSettingsPopover _owner )
1647         {
1648             _this = _owner;
1649             _this.files_tree_store = this;
1650             this.el = new Gtk.ListStore( 4,     typeof(string),  // 0 file name
1651         typeof(string),  // 0 basename
1652      typeof(string), // type (dir orfile)
1653      typeof(bool)  // is checked.
1654       );
1655
1656             // my vars (dec)
1657
1658             // set gobject values
1659         }
1660
1661         // user defined functions
1662         public void updateDir (string dname, bool bval) {
1663           
1664           Gtk.TreeIter citer;
1665         
1666             var cg =   _this.set_vbox.cgroup;
1667           for(var i =0 ; i < this.el.iter_n_children(null); i++) {
1668                 this.el.iter_nth_child(out citer,null,i);
1669         
1670                 GLib.Value val;
1671                 this.el.get_value(citer,0, out val);
1672                 var fn = (string) val;
1673                 
1674                 if ( Path.get_dirname (fn) == dname) {
1675                 
1676                     this.el.set_value(citer, 3,   bval ); // checked 
1677                    
1678              
1679              
1680                     if (!bval) {
1681                         // renive
1682                         if (cg.sources.contains(fn)) {
1683                             cg.sources.remove(fn);
1684                         }
1685                     } else {
1686                         if (!cg.sources.contains(fn)) {
1687                             cg.sources.add(fn);
1688                         }
1689                     }
1690                     
1691                     
1692                 }
1693             }
1694         
1695         }
1696         public void load () {
1697          
1698               this.el.clear();
1699           
1700             
1701              var def = _this.project.compilegroups.get("_default_");
1702              var items  = def.sources;
1703              
1704              
1705              
1706              
1707          
1708             Gtk.TreeIter citer;
1709         
1710             for(var i =0 ; i < items.size; i++) {
1711             
1712                  var files = _this.project.filesForCompile(items.get(i), false);
1713                  if (files.size < 1) {
1714                     continue;
1715                  }
1716             
1717                  this.el.append(out citer);   
1718                  
1719                 this.el.set_value(citer, 0,   items.get(i) ); // title 
1720                 this.el.set_value(citer, 1,   "<span foreground=\"green\" font_weight=\"bold\">" + 
1721                             GLib.Markup.escape_text(items.get(i)) + "</span>"
1722                     ); // title 
1723                 print("ADD item %s", items.get(i));
1724                 this.el.set_value(citer, 2,   "dir"); // type         
1725                 this.el.set_value(citer, 3,   false ); // checked 
1726         
1727                
1728                 
1729                  for(var j =0 ; j < files.size; j++) {
1730                     this.el.append(out citer);   
1731                      print("ADD item %s", files.get(j));
1732                     this.el.set_value(citer, 0,   files.get(j) ); // title 
1733                     this.el.set_value(citer, 1,   GLib.Markup.escape_text( Path.get_basename (files.get(j))) ); // title             
1734                     this.el.set_value(citer, 2,   "file"); // type         
1735                     this.el.set_value(citer, 3,   false ); // checked 
1736         
1737                 }
1738                 
1739                 
1740                 //this.el.set_value(citer, 1,   items.get(i) );
1741             }
1742             this.el.set_sort_column_id(0,Gtk.SortType.ASCENDING);
1743             
1744         }
1745         public void update () {
1746         
1747         
1748             Gtk.TreeIter citer;
1749         
1750             for(var i =0 ; i < this.el.iter_n_children(null); i++) {
1751                 this.el.iter_nth_child(out citer,null,i);
1752         
1753                 GLib.Value val;
1754                 this.el.get_value(citer,0, out val);
1755                 var fn = (string) val;
1756                 
1757                 var active = false;
1758                 if (_this.set_vbox.cgroup.sources.contains(fn)) {
1759                     active = true;
1760                 }
1761                 
1762                 this.el.set_value(citer, 3,   active ); // checked 
1763             }
1764         
1765         
1766         }
1767     }
1768
1769     public class Xcls_TreeViewColumn48 : Object
1770     {
1771         public Gtk.TreeViewColumn el;
1772         private Xcls_ValaProjectSettingsPopover  _this;
1773
1774
1775             // my vars (def)
1776
1777         // ctor
1778         public Xcls_TreeViewColumn48(Xcls_ValaProjectSettingsPopover _owner )
1779         {
1780             _this = _owner;
1781             this.el = new Gtk.TreeViewColumn();
1782
1783             // my vars (dec)
1784
1785             // set gobject values
1786             this.el.title = "name";
1787             this.el.resizable = true;
1788             var child_0 = new Xcls_files_render( _this );
1789             child_0.ref();
1790             this.el.pack_start (  child_0.el , false );
1791
1792             // init method
1793
1794             this.el.add_attribute(_this.files_render.el , "markup", 1 ); // basnemae
1795              
1796             /*  this.el.add_attribute(_this.files_render.el , "markup", 2 );
1797             */
1798         }
1799
1800         // user defined functions
1801     }
1802     public class Xcls_files_render : Object
1803     {
1804         public Gtk.CellRendererText el;
1805         private Xcls_ValaProjectSettingsPopover  _this;
1806
1807
1808             // my vars (def)
1809
1810         // ctor
1811         public Xcls_files_render(Xcls_ValaProjectSettingsPopover _owner )
1812         {
1813             _this = _owner;
1814             _this.files_render = this;
1815             this.el = new Gtk.CellRendererText();
1816
1817             // my vars (dec)
1818
1819             // set gobject values
1820         }
1821
1822         // user defined functions
1823     }
1824
1825
1826     public class Xcls_TreeViewColumn50 : Object
1827     {
1828         public Gtk.TreeViewColumn el;
1829         private Xcls_ValaProjectSettingsPopover  _this;
1830
1831
1832             // my vars (def)
1833
1834         // ctor
1835         public Xcls_TreeViewColumn50(Xcls_ValaProjectSettingsPopover _owner )
1836         {
1837             _this = _owner;
1838             this.el = new Gtk.TreeViewColumn();
1839
1840             // my vars (dec)
1841
1842             // set gobject values
1843             this.el.title = "use";
1844             this.el.resizable = false;
1845             this.el.fixed_width = 50;
1846             var child_0 = new Xcls_files_render_use( _this );
1847             child_0.ref();
1848             this.el.pack_start (  child_0.el , false );
1849
1850             // init method
1851
1852             {
1853              this.el.add_attribute(_this.files_render_use.el , "active", 3 );
1854              }
1855         }
1856
1857         // user defined functions
1858     }
1859     public class Xcls_files_render_use : Object
1860     {
1861         public Gtk.CellRendererToggle el;
1862         private Xcls_ValaProjectSettingsPopover  _this;
1863
1864
1865             // my vars (def)
1866
1867         // ctor
1868         public Xcls_files_render_use(Xcls_ValaProjectSettingsPopover _owner )
1869         {
1870             _this = _owner;
1871             _this.files_render_use = this;
1872             this.el = new Gtk.CellRendererToggle();
1873
1874             // my vars (dec)
1875
1876             // set gobject values
1877             this.el.activatable = true;
1878
1879             //listeners
1880             this.el.toggled.connect( (  path_string) =>  { 
1881             
1882             
1883             
1884                 var m = _this.files_tree_store.el;
1885                Gtk.TreeIter iter;
1886                Gtk.TreePath path = new Gtk.TreePath.from_string (path_string);
1887                m.get_iter (out iter, path);
1888                GLib.Value val;
1889                m.get_value(iter, 3, out val);
1890                m.set_value(iter, 3,  ((bool) val) ? false :true); 
1891                
1892                // type.
1893                GLib.Value ftval;  
1894                m.get_value(iter, 2, out ftval);
1895                var ftype = (string)ftval;   
1896                
1897                // full name...  
1898                GLib.Value fval;     
1899                m.get_value(iter, 0, out fval);
1900                var fn = (string)fval;
1901                 
1902                 
1903                 var cg =   _this.set_vbox.cgroup;
1904                 // what's the sleected target?
1905                 // update the list..
1906                 // if ftype is a dir == then toggle all the bellow.
1907                 
1908                 if (ftype == "dir") {
1909                     _this.files_tree_store.updateDir(fn,  ((bool) val) ? false :true);
1910                 }
1911                 
1912                 // if ftype is a file .. see if all the files in that directory are check and check the dir.
1913             
1914                  
1915                 if ((bool)val) {
1916                     // renive
1917                     cg.sources.remove(fn);
1918                 } else {
1919                     cg.sources.add(fn);
1920                 }
1921                 
1922             });
1923         }
1924
1925         // user defined functions
1926     }
1927
1928
1929
1930
1931
1932
1933
1934
1935 }