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