Clones.bjs
[gitlive] / Clones.vala
1 static Clones  _Clones;
2
3 public class Clones : Object
4 {
5     public Gtk.Dialog el;
6     private Clones  _this;
7
8     public static Clones singleton()
9     {
10         if (_Clones == null) {
11             _Clones= new Clones();
12         }
13         return _Clones;
14     }
15     public Xcls_reposView reposView;
16     public Xcls_reposStore reposStore;
17     public Xcls_tv_autocommit tv_autocommit;
18     public Xcls_cr_autocommit cr_autocommit;
19     public Xcls_tv_autopush tv_autopush;
20     public Xcls_cr_autopush cr_autopush;
21     public Xcls_tv_autobranch tv_autobranch;
22     public Xcls_cr_autobranch cr_autobranch;
23     public Xcls_tv_repo tv_repo;
24     public Xcls_cr_repo cr_repo;
25     public Xcls_tv_active_ticket tv_active_ticket;
26     public Xcls_cr_active_ticket cr_active_ticket;
27     public Xcls_tv_current_branch tv_current_branch;
28     public Xcls_cr_current_branch cr_current_branch;
29     public Xcls_tv_last_updated tv_last_updated;
30     public Xcls_cr_last_updated cr_last_updated;
31     public Xcls_tv_all_branches tv_all_branches;
32     public Xcls_cr_all_branches cr_all_branches;
33
34         // my vars (def)
35
36     // ctor
37     public Clones()
38     {
39         _this = this;
40         this.el = new Gtk.Dialog();
41
42         // my vars (dec)
43
44         // set gobject values
45         this.el.title = "Manage Clones";
46         this.el.border_width = 3;
47         this.el.default_height = 500;
48         this.el.default_width = 1024;
49         this.el.deletable = true;
50         this.el.modal = true;
51         var child_0 = new Xcls_Box2( _this );
52         child_0.ref();
53         this.el.get_content_area().add (  child_0.el  );
54
55         //listeners
56         this.el.delete_event.connect( (self, event) => {
57             this.el.hide();
58             return true; 
59             //test  
60         });
61         this.el.response.connect( (self, response_id) =>  { 
62          
63                 this.el.hide();
64           
65         });
66     }
67
68     // user defined functions
69     public void show ()    {
70     
71         
72         this.el.set_deletable(true);
73         this.el.set_gravity(Gdk.Gravity.NORTH);
74         this.el.move((Gdk.Screen.width() / 2 ) -400 ,0);
75         
76         this.el.set_default_size(
77                         int.min(1024,Gdk.Screen.width()),
78                         int.max(500,Gdk.Screen.height() - 300)
79         );
80          
81         this.el.show_all();
82         _this.reposStore.load();
83         this.el.set_keep_above(true);
84         this.el.run();
85         // load clones..
86     //     this.get('/reposStore').load();
87         
88         //this.get('/ok_button').el.set_sensitive(false);
89         
90         // block until we return.
91     //    var run_ret = this.el.run();
92     //    if (run_ret < 1 ) {
93     //        return  "DONE";
94     //    }
95     //    print("RUN RETURN : " + run_ret);
96     //    return "DONE";
97         //print(JSON.stringify(this.get('bug').getValue()));
98        // return this.get('bug').getValue();
99         //this.success = c.success;
100     }
101     public class Xcls_Box2 : Object
102     {
103         public Gtk.Box el;
104         private Clones  _this;
105
106
107             // my vars (def)
108
109         // ctor
110         public Xcls_Box2(Clones _owner )
111         {
112             _this = _owner;
113             this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
114
115             // my vars (dec)
116
117             // set gobject values
118             var child_0 = new Xcls_Box3( _this );
119             child_0.ref();
120             this.el.pack_start (  child_0.el , false,false,0 );
121             var child_1 = new Xcls_ScrolledWindow5( _this );
122             child_1.ref();
123             this.el.pack_end (  child_1.el , true,true,0 );
124         }
125
126         // user defined functions
127     }
128     public class Xcls_Box3 : Object
129     {
130         public Gtk.Box el;
131         private Clones  _this;
132
133
134             // my vars (def)
135
136         // ctor
137         public Xcls_Box3(Clones _owner )
138         {
139             _this = _owner;
140             this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 );
141
142             // my vars (dec)
143
144             // set gobject values
145             this.el.homogeneous = true;
146             var child_0 = new Xcls_Button4( _this );
147             child_0.ref();
148             this.el.add (  child_0.el  );
149         }
150
151         // user defined functions
152     }
153     public class Xcls_Button4 : Object
154     {
155         public Gtk.Button el;
156         private Clones  _this;
157
158
159             // my vars (def)
160
161         // ctor
162         public Xcls_Button4(Clones _owner )
163         {
164             _this = _owner;
165             this.el = new Gtk.Button();
166
167             // my vars (dec)
168
169             // set gobject values
170             this.el.label = "Add Repository";
171
172             //listeners
173             this.el.clicked.connect( () => {
174                         Clone.show(this.el);
175             /*    var rv = this.get('/reposView');
176                 var rs = this.get('/reposStore');
177                 if (rv.el.get_selection().count_selected_rows() != 1) {
178                     //nothing?
179                     // error condition.
180                     return;
181                 }
182                 var Remotes =     imports.Remotes.Remotes;
183                 
184              
185                 var ret = {};       
186                 var s = rv.el.get_selection();
187                 var path = '';
188                 s.selected_foreach(function(model,p,iter) {
189                                                                 
190                    path = model.get_value(iter, 6).value.get_string();
191                  
192                 }); 
193             
194                 var repo = false;
195                 rs.repos.forEach(function(r) {
196                     if (r.repopath == path) {
197                         repo = r;
198                     
199                     }
200                 
201                 });
202                 Remotes.repo = repo;
203                 Remotes.el.set_transient_for(Clones.el);
204                 Clones.el.set_title("Manage Clones - " + repo.repopath);
205                 Remotes.show();
206                 Clones.el.set_title("Manage Clones");
207             
208               */   
209                 
210                  
211             
212                    
213                 
214                 
215             });
216         }
217
218         // user defined functions
219     }
220
221
222     public class Xcls_ScrolledWindow5 : Object
223     {
224         public Gtk.ScrolledWindow el;
225         private Clones  _this;
226
227
228             // my vars (def)
229
230         // ctor
231         public Xcls_ScrolledWindow5(Clones _owner )
232         {
233             _this = _owner;
234             this.el = new Gtk.ScrolledWindow( null, null );
235
236             // my vars (dec)
237
238             // set gobject values
239             this.el.expand = true;
240             this.el.hexpand = true;
241             this.el.shadow_type = Gtk.ShadowType.IN;
242             var child_0 = new Xcls_reposView( _this );
243             child_0.ref();
244             this.el.add (  child_0.el  );
245
246             // init method
247
248             {
249               
250                this.el.set_policy (Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC);
251             }
252         }
253
254         // user defined functions
255     }
256     public class Xcls_reposView : Object
257     {
258         public Gtk.TreeView el;
259         private Clones  _this;
260
261
262             // my vars (def)
263
264         // ctor
265         public Xcls_reposView(Clones _owner )
266         {
267             _this = _owner;
268             _this.reposView = this;
269             this.el = new Gtk.TreeView();
270
271             // my vars (dec)
272
273             // set gobject values
274             this.el.search_column = 0;
275             this.el.activate_on_single_click = true;
276             this.el.enable_grid_lines = Gtk.TreeViewGridLines.HORIZONTAL;
277             var child_0 = new Xcls_reposStore( _this );
278             child_0.ref();
279             this.el.set_model (  child_0.el  );
280             var child_1 = new Xcls_tv_autocommit( _this );
281             child_1.ref();
282             this.el.append_column (  child_1.el  );
283             var child_2 = new Xcls_tv_autopush( _this );
284             child_2.ref();
285             this.el.append_column (  child_2.el  );
286             var child_3 = new Xcls_tv_autobranch( _this );
287             child_3.ref();
288             this.el.append_column (  child_3.el  );
289             var child_4 = new Xcls_tv_repo( _this );
290             child_4.ref();
291             this.el.append_column (  child_4.el  );
292             var child_5 = new Xcls_tv_active_ticket( _this );
293             child_5.ref();
294             this.el.append_column (  child_5.el  );
295             var child_6 = new Xcls_tv_current_branch( _this );
296             child_6.ref();
297             this.el.append_column (  child_6.el  );
298             var child_7 = new Xcls_tv_last_updated( _this );
299             child_7.ref();
300             this.el.append_column (  child_7.el  );
301             var child_8 = new Xcls_tv_all_branches( _this );
302             child_8.ref();
303             this.el.append_column (  child_8.el  );
304
305             // init method
306
307             {
308                 var selection = this.el.get_selection();
309                 selection.set_mode( Gtk.SelectionMode.SINGLE);
310             
311             
312                 var description = new Pango.FontDescription();
313                 description.set_size(10000);
314                 this.el.override_font(description);
315              
316             }
317
318             //listeners
319             this.el.row_activated.connect( (path, col)  =>  {
320             
321                 if (col.title != "Current Branch") {
322                         return;
323                 }
324                 
325                 //
326                 
327                 Gtk.TreeIter iter;
328                 _this.reposStore.el.get_iter(out iter, path);
329                 GLib.Value val;
330                 _this.reposStore.el.get_value(iter, 6, out val);
331                 var git_working_dir = (string)val;
332                 
333                 var repo = GitRepo.singleton().get(git_working_dir);
334                 
335                 Gdk.Rectangle rect;
336                 _this.reposView.el.get_cell_area(path, col, out rect);
337                 RepoStatusPopover.singleton().show(this.el, rect, repo);
338                 
339                  
340                 
341             });
342             this.el.cursor_changed.connect( ()  => {
343               // SEE SELECTION.CHANGED
344               /*
345               
346               return;
347               
348                 if (this.el.get_selection().count_selected_rows() < 1) {
349                     //nothing? - clea it?
350                     return;
351                 }
352                     var ret = {};         
353                 var model = this.get('/changedFilesStore');
354             
355                  var s = this.el.get_selection();
356                  var files = [];
357                 s.selected_foreach(function(model,p,iter) {
358                 
359                    files.push( model.get_value(iter, 0).value.get_string());
360                  
361                 });
362                 this.get('/patchview').showDiff(files); 
363                 //var value = ''+ ret.model.get_value(ret.iter, 1).value.get_string();
364                  //print("OUT?" + value);// id..
365                 // load the list in the right grid..
366                  
367                 return true;
368             */
369             });
370         }
371
372         // user defined functions
373     }
374     public class Xcls_reposStore : Object
375     {
376         public Gtk.ListStore el;
377         private Clones  _this;
378
379
380             // my vars (def)
381
382         // ctor
383         public Xcls_reposStore(Clones _owner )
384         {
385             _this = _owner;
386             _this.reposStore = this;
387             this.el = new Gtk.ListStore( 10,      typeof(string),  // 0 repo
388      typeof(string),  // 1 current branch
389      typeof(string),  // 2 all branch
390      typeof(string),  // 3 updated
391      typeof(bool),   // 4 auto commit
392      typeof(bool),   // 5 auto push
393      typeof(string),   // 6 repopath
394       typeof(string),   // 7 color highlighting?
395        typeof(bool),   // 8 auto branch,
396       typeof(string)   // 9 active Ticket
397        );
398
399             // my vars (dec)
400
401             // set gobject values
402         }
403
404         // user defined functions
405         public void load ()
406         {
407             //this.insert(citer,iter,0);
408             print("getting list");
409             var tr = GitRepo.list();
410             
411             this.el.clear();
412             
413             // fixme .. sort by last updated ...
414             
415             
416             for(var i =0 ; i < tr.length; i++) {
417                     var repo = tr.index(i);
418                     // this is done before we display stuff...
419                     //repo.loadBranches();
420                     //repo.loadStatus();
421                     
422                     Gtk.TreeIter iter;
423                     this.el.append(out iter);
424              
425                 //print(JSON.stringify(ret,null,4));
426                  //tr[i].getBranches();
427                  //tr[i].getStatus();
428                  //var hi;
429                  //try {
430                      //tr[i].debug=1;
431                  //     hi = tr[i].history('/', 1, 'branch', tr[i].currentBranch.name );
432         //             print(JSON.stringify(hi,null,4));
433                 // } catch(e) { print(e);}
434                   
435                 this.el.set_value(iter, 0,   repo.name );
436                 this.el.set_value( iter, 1, repo.currentBranch.name   );
437                 this.el.set_value( iter, 2,  repo.branchesToString()   );
438         //        this.el.set_value(ret.iter, 2, '' + repo.branches.map(
439         //                        function(e) { return e.name; 
440         //                    }).join(', ') 
441          //        );
442         //        this.el.set_value(iter, 3, '' +  (!hi  ? '??' : hi[0].changed_raw));        
443                 this.el.set_value(iter, 4, repo.is_autocommit() );                
444                 this.el.set_value(iter, 5, repo.is_autopush() );                        
445                 this.el.set_value(iter, 6,  repo.git_working_dir );  
446                 // highlight color.
447                 var cb = repo.currentBranch;
448                 //print(JSON.stringify(cb,null,4));
449                 var col = "#ffffff";
450                 
451                 if (cb.lastrev != cb.remoterev) {
452                     col =  "#f2dede";
453                     this.el.set_value( iter, 1, repo.currentBranch.name +"\n" +
454                         (repo.ahead_or_behind == "B" ? "Local is BEHIND remote" : "Local is AHEAD of remote")
455                     
456                        );
457                 }
458                 if (repo.has_local_changes) {
459                     col =  "#d9edf7";
460                     this.el.set_value( iter, 1, repo.currentBranch.name +"\nHas uncommitted changes"   );
461                 }
462                 if  ((cb.lastrev != cb.remoterev) && (repo.has_local_changes)) {
463                     col =  "#fcf8e3";
464                     this.el.set_value( iter, 1, repo.currentBranch.name +"\n" + 
465                     (repo.ahead_or_behind == "B" ? "Local is BEHIND remote" : "Local is AHEAD of remote") +
466                     "\nHas uncommitted changes"   );            
467                 }
468                 
469                 this.el.set_value(iter, 7, col  );      
470                 var ticket = repo.activeTicket;
471                 
472                 this.el.set_value(iter, 8, repo.is_auto_branch()  );      
473                 this.el.set_value(iter, 9, ticket == null ? "" : ticket.id  );      
474                 
475                 
476             }     
477             this.el.set_sort_column_id (0, Gtk.SortType.ASCENDING);
478         }
479     }
480
481     public class Xcls_tv_autocommit : Object
482     {
483         public Gtk.TreeViewColumn el;
484         private Clones  _this;
485
486
487             // my vars (def)
488
489         // ctor
490         public Xcls_tv_autocommit(Clones _owner )
491         {
492             _this = _owner;
493             _this.tv_autocommit = this;
494             this.el = new Gtk.TreeViewColumn();
495
496             // my vars (dec)
497
498             // set gobject values
499             this.el.title = "Auto Commit";
500             this.el.min_width = 50;
501             var child_0 = new Xcls_cr_autocommit( _this );
502             child_0.ref();
503             this.el.pack_start (  child_0.el , false );
504
505             // init method
506
507             //    this.items[0].el.set_activatable(true);
508              this.el.add_attribute(_this.cr_autocommit.el , "active", 4 );
509         }
510
511         // user defined functions
512     }
513     public class Xcls_cr_autocommit : Object
514     {
515         public Gtk.CellRendererToggle el;
516         private Clones  _this;
517
518
519             // my vars (def)
520
521         // ctor
522         public Xcls_cr_autocommit(Clones _owner )
523         {
524             _this = _owner;
525             _this.cr_autocommit = this;
526             this.el = new Gtk.CellRendererToggle();
527
528             // my vars (dec)
529
530             // set gobject values
531             this.el.mode = Gtk.CellRendererMode.ACTIVATABLE;
532
533             //listeners
534             this.el.toggled.connect( (self, path)  => {
535               
536                 Gtk.TreeIter iter;
537                 _this.reposStore.el.get_iter_from_string(out iter, path);
538                 
539                 GLib.Value val;
540                 GLib.Value rval;
541                 _this.reposStore.el.get_value(iter, 4, out val);
542                 _this.reposStore.el.get_value(iter, 6, out rval);
543                 
544                 var repopath = (string)rval;
545                 var bval = (bool)val;
546                 _this.reposStore.el.set_value(iter, 4, !bval);
547                 GLib.debug("got repopath? %s", repopath);
548                 
549                 var repo = GitRepo.get(repopath);
550                 repo.set_autocommit(!bval);
551                 
552                 
553                 
554               
555             });
556         }
557
558         // user defined functions
559     }
560
561
562     public class Xcls_tv_autopush : Object
563     {
564         public Gtk.TreeViewColumn el;
565         private Clones  _this;
566
567
568             // my vars (def)
569
570         // ctor
571         public Xcls_tv_autopush(Clones _owner )
572         {
573             _this = _owner;
574             _this.tv_autopush = this;
575             this.el = new Gtk.TreeViewColumn();
576
577             // my vars (dec)
578
579             // set gobject values
580             this.el.title = "Auto Push";
581             this.el.min_width = 50;
582             var child_0 = new Xcls_cr_autopush( _this );
583             child_0.ref();
584             this.el.pack_start (  child_0.el , false );
585
586             // init method
587
588             this.el.add_attribute(_this.cr_autopush.el , "active", 5 );
589             //      this.items[0].el.set_activatable(true);
590         }
591
592         // user defined functions
593     }
594     public class Xcls_cr_autopush : Object
595     {
596         public Gtk.CellRendererToggle el;
597         private Clones  _this;
598
599
600             // my vars (def)
601
602         // ctor
603         public Xcls_cr_autopush(Clones _owner )
604         {
605             _this = _owner;
606             _this.cr_autopush = this;
607             this.el = new Gtk.CellRendererToggle();
608
609             // my vars (dec)
610
611             // set gobject values
612             this.el.mode = Gtk.CellRendererMode.ACTIVATABLE;
613
614             //listeners
615             this.el.toggled.connect( (self, path)  => {
616               
617                 Gtk.TreeIter iter;
618                 _this.reposStore.el.get_iter_from_string(out iter, path);
619                 
620                 GLib.Value val;
621                 GLib.Value rval;
622                 _this.reposStore.el.get_value(iter, 5, out val);
623                 _this.reposStore.el.get_value(iter, 6, out rval);
624                 
625                 var repopath = (string)rval;
626                 var bval = (bool)val;
627                 _this.reposStore.el.set_value(iter, 5, !bval);
628                 var repo = GitRepo.get(repopath);
629                 repo.set_autopush(!bval);
630                 
631                 
632                 
633               
634             });
635         }
636
637         // user defined functions
638     }
639
640
641     public class Xcls_tv_autobranch : Object
642     {
643         public Gtk.TreeViewColumn el;
644         private Clones  _this;
645
646
647             // my vars (def)
648
649         // ctor
650         public Xcls_tv_autobranch(Clones _owner )
651         {
652             _this = _owner;
653             _this.tv_autobranch = this;
654             this.el = new Gtk.TreeViewColumn();
655
656             // my vars (dec)
657
658             // set gobject values
659             this.el.title = "Auto Branch";
660             this.el.min_width = 50;
661             var child_0 = new Xcls_cr_autobranch( _this );
662             child_0.ref();
663             this.el.pack_start (  child_0.el , false );
664
665             // init method
666
667             this.el.add_attribute(_this.cr_autobranch.el , "active", 8 );
668             //      this.items[0].el.set_activatable(true);
669         }
670
671         // user defined functions
672     }
673     public class Xcls_cr_autobranch : Object
674     {
675         public Gtk.CellRendererToggle el;
676         private Clones  _this;
677
678
679             // my vars (def)
680
681         // ctor
682         public Xcls_cr_autobranch(Clones _owner )
683         {
684             _this = _owner;
685             _this.cr_autobranch = this;
686             this.el = new Gtk.CellRendererToggle();
687
688             // my vars (dec)
689
690             // set gobject values
691             this.el.mode = Gtk.CellRendererMode.ACTIVATABLE;
692
693             //listeners
694             this.el.toggled.connect( (self, path)  => {
695               
696                 Gtk.TreeIter iter;
697                 _this.reposStore.el.get_iter_from_string(out iter, path);
698                 
699                 GLib.Value val;
700                 GLib.Value rval;
701                 _this.reposStore.el.get_value(iter, 8, out val);
702                 _this.reposStore.el.get_value(iter, 6, out rval);
703                 
704                 var repopath = (string)rval;
705                 var bval = (bool)val;
706                 _this.reposStore.el.set_value(iter, 8, !bval);
707                 var repo = GitRepo.get(repopath);
708                 repo.set_auto_branch(!bval);
709                 
710                 
711                 
712               
713             });
714         }
715
716         // user defined functions
717     }
718
719
720     public class Xcls_tv_repo : Object
721     {
722         public Gtk.TreeViewColumn el;
723         private Clones  _this;
724
725
726             // my vars (def)
727
728         // ctor
729         public Xcls_tv_repo(Clones _owner )
730         {
731             _this = _owner;
732             _this.tv_repo = this;
733             this.el = new Gtk.TreeViewColumn();
734
735             // my vars (dec)
736
737             // set gobject values
738             this.el.sort_column_id = 0;
739             this.el.title = "Repo";
740             this.el.min_width = 200;
741             this.el.sort_order = Gtk.SortType.ASCENDING;
742             this.el.resizable = true;
743             var child_0 = new Xcls_cr_repo( _this );
744             child_0.ref();
745             this.el.pack_start (  child_0.el , false );
746
747             // init method
748
749             this.el.add_attribute(_this.cr_repo.el , "markup", 0 );
750         }
751
752         // user defined functions
753     }
754     public class Xcls_cr_repo : Object
755     {
756         public Gtk.CellRendererText el;
757         private Clones  _this;
758
759
760             // my vars (def)
761
762         // ctor
763         public Xcls_cr_repo(Clones _owner )
764         {
765             _this = _owner;
766             _this.cr_repo = this;
767             this.el = new Gtk.CellRendererText();
768
769             // my vars (dec)
770
771             // set gobject values
772         }
773
774         // user defined functions
775     }
776
777
778     public class Xcls_tv_active_ticket : Object
779     {
780         public Gtk.TreeViewColumn el;
781         private Clones  _this;
782
783
784             // my vars (def)
785
786         // ctor
787         public Xcls_tv_active_ticket(Clones _owner )
788         {
789             _this = _owner;
790             _this.tv_active_ticket = this;
791             this.el = new Gtk.TreeViewColumn();
792
793             // my vars (dec)
794
795             // set gobject values
796             this.el.title = "Active Ticket";
797             this.el.min_width = 50;
798             var child_0 = new Xcls_cr_active_ticket( _this );
799             child_0.ref();
800             this.el.pack_start (  child_0.el , false );
801
802             // init method
803
804             this.el.add_attribute(_this.cr_active_ticket.el , "markup", 9 );
805         }
806
807         // user defined functions
808     }
809     public class Xcls_cr_active_ticket : Object
810     {
811         public Gtk.CellRendererText el;
812         private Clones  _this;
813
814
815             // my vars (def)
816
817         // ctor
818         public Xcls_cr_active_ticket(Clones _owner )
819         {
820             _this = _owner;
821             _this.cr_active_ticket = this;
822             this.el = new Gtk.CellRendererText();
823
824             // my vars (dec)
825
826             // set gobject values
827         }
828
829         // user defined functions
830     }
831
832
833     public class Xcls_tv_current_branch : Object
834     {
835         public Gtk.TreeViewColumn el;
836         private Clones  _this;
837
838
839             // my vars (def)
840
841         // ctor
842         public Xcls_tv_current_branch(Clones _owner )
843         {
844             _this = _owner;
845             _this.tv_current_branch = this;
846             this.el = new Gtk.TreeViewColumn();
847
848             // my vars (dec)
849
850             // set gobject values
851             this.el.title = "Current Branch";
852             this.el.min_width = 50;
853             var child_0 = new Xcls_cr_current_branch( _this );
854             child_0.ref();
855             this.el.pack_start (  child_0.el , false );
856
857             // init method
858
859             this.el.add_attribute(_this.cr_current_branch.el , "markup", 1 );
860                  this.el.add_attribute(_this.cr_current_branch.el, "cell-background", 7 );
861         }
862
863         // user defined functions
864     }
865     public class Xcls_cr_current_branch : Object
866     {
867         public Gtk.CellRendererText el;
868         private Clones  _this;
869
870
871             // my vars (def)
872
873         // ctor
874         public Xcls_cr_current_branch(Clones _owner )
875         {
876             _this = _owner;
877             _this.cr_current_branch = this;
878             this.el = new Gtk.CellRendererText();
879
880             // my vars (dec)
881
882             // set gobject values
883         }
884
885         // user defined functions
886     }
887
888
889     public class Xcls_tv_last_updated : Object
890     {
891         public Gtk.TreeViewColumn el;
892         private Clones  _this;
893
894
895             // my vars (def)
896
897         // ctor
898         public Xcls_tv_last_updated(Clones _owner )
899         {
900             _this = _owner;
901             _this.tv_last_updated = this;
902             this.el = new Gtk.TreeViewColumn();
903
904             // my vars (dec)
905
906             // set gobject values
907             this.el.title = "Last updated";
908             this.el.min_width = 50;
909             var child_0 = new Xcls_cr_last_updated( _this );
910             child_0.ref();
911             this.el.pack_start (  child_0.el , false );
912
913             // init method
914
915             this.el.add_attribute(_this.cr_last_updated.el , "markup", 3 );
916         }
917
918         // user defined functions
919     }
920     public class Xcls_cr_last_updated : Object
921     {
922         public Gtk.CellRendererText el;
923         private Clones  _this;
924
925
926             // my vars (def)
927
928         // ctor
929         public Xcls_cr_last_updated(Clones _owner )
930         {
931             _this = _owner;
932             _this.cr_last_updated = this;
933             this.el = new Gtk.CellRendererText();
934
935             // my vars (dec)
936
937             // set gobject values
938         }
939
940         // user defined functions
941     }
942
943
944     public class Xcls_tv_all_branches : Object
945     {
946         public Gtk.TreeViewColumn el;
947         private Clones  _this;
948
949
950             // my vars (def)
951
952         // ctor
953         public Xcls_tv_all_branches(Clones _owner )
954         {
955             _this = _owner;
956             _this.tv_all_branches = this;
957             this.el = new Gtk.TreeViewColumn();
958
959             // my vars (dec)
960
961             // set gobject values
962             this.el.title = "All Branches";
963             this.el.min_width = 50;
964             this.el.resizable = false;
965             var child_0 = new Xcls_cr_all_branches( _this );
966             child_0.ref();
967             this.el.pack_start (  child_0.el , false );
968
969             // init method
970
971             this.el.add_attribute(_this.cr_all_branches.el , "markup", 2 );
972         }
973
974         // user defined functions
975     }
976     public class Xcls_cr_all_branches : Object
977     {
978         public Gtk.CellRendererText el;
979         private Clones  _this;
980
981
982             // my vars (def)
983
984         // ctor
985         public Xcls_cr_all_branches(Clones _owner )
986         {
987             _this = _owner;
988             _this.cr_all_branches = this;
989             this.el = new Gtk.CellRendererText();
990
991             // my vars (dec)
992
993             // set gobject values
994         }
995
996         // user defined functions
997     }
998
999
1000
1001
1002
1003 }