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