Changeset 3154

Show
Ignore:
Timestamp:
07/16/08 16:51:57 (5 years ago)
Author:
nopper
Message:

Adding a simple render function for bit type

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • branch/PacketManipulator/widgets/PropertyGrid.py

    r3153 r3154  
    6868        self.btn.show() 
    6969 
    70     def render(self, window, bounds, state): 
    71         if self.value: 
     70    def render(self, window, widget, bounds, state): 
     71        if not self.value: 
    7272            sh = gtk.SHADOW_IN 
    7373        else: 
    7474            sh = gtk.SHADOW_OUT 
    7575 
    76         size = 20 
     76        size = 15 
    7777         
    7878        if size > bounds.height: 
     
    8080        if size > bounds.width: 
    8181            size = bounds.width 
    82  
    83         print window 
    84  
    85         self.style.paint_check(window, state, sh, bounds, self.btn, "checkbutton", \ 
    86                 bounds.x, bounds.y, bounds.width, bounds.height) 
    87  
    88         cr = window.cairo_create() 
    89         cr.set_source_rgb(1, 0, 0) 
    90         cr.rectangle(bounds.x, bounds.y, bounds.width, bounds.height) 
     82             
     83        # Paint a center check button 
     84        widget.style.paint_check(window, state, sh, bounds, widget, \ 
     85            "checkbutton",                                          \ 
     86            bounds.x + (bounds.width - size) / 2,                   \ 
     87            bounds.y + (bounds.height - size) / 2,                  \ 
     88            size, size) 
    9189 
    9290class StrEditor(Editor): 
     
    145143        self.box.size_allocate(alloc) 
    146144 
    147 class CellRendererProperty(gtk.CellRendererText): 
    148     __gtype_name__ = "CellRendererProperty" 
    149  
     145class CellRendererGroup(gtk.CellRendererText): 
     146    __gtype_name__ = "CellRendererGroup" 
     147     
    150148    def __init__(self, tree): 
    151         super(CellRendererProperty, self).__init__() 
     149        super(CellRendererGroup, self).__init__() 
    152150 
    153151        self.tree = tree 
    154152        self.set_property('xalign', 0) 
    155153        self.set_property('xpad', 3) 
    156         self.set_property('mode', gtk.CELL_RENDERER_MODE_EDITABLE) 
    157154 
    158155        self.painter = None 
     
    161158        dummy_entry.set_has_frame(False) 
    162159        self.row_height = dummy_entry.size_request()[1] 
    163  
     160     
    164161    def do_get_size(self, widget, area): 
    165162        w, h = 0, 0 
     
    197194                state = gtk.STATE_NORMAL 
    198195 
    199             self.painter.render(window, cell_area, state) 
     196            self.painter.render(window, widget, cell_area, state) 
    200197        else: 
    201198            return gtk.CellRendererText.do_render( \ 
     
    203200            ) 
    204201 
     202gobject.type_register(CellRendererGroup) 
     203    
     204class CellRendererProperty(CellRendererGroup): 
     205    __gtype_name__ = "CellRendererProperty" 
     206     
     207    def __init__(self, tree): 
     208        super(CellRendererProperty, self).__init__(tree) 
     209        self.set_property('mode', gtk.CELL_RENDERER_MODE_EDITABLE) 
     210 
    205211    def do_start_editing(self, event, widget, path, \ 
    206212                         background_area, cell_area, flags): 
     
    230236        col = gtk.TreeViewColumn('Property') 
    231237 
    232         crt = CellRendererProperty(self.tree) 
    233         crt.xpad = 0 
     238        crt = CellRendererGroup(self.tree) 
     239 
     240        crt.set_property('xpad', 0) 
     241        crt.set_property('cell-background-gdk', 
     242                         self.style.base[gtk.STATE_INSENSITIVE]) 
    234243 
    235244        col.pack_start(crt, True) 
     
    238247        col.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED) 
    239248        col.set_fixed_width(180) 
    240         col.set_attributes(crt, text=0) 
     249        col.set_attributes(crt, markup=0) 
    241250 
    242251        col.set_cell_data_func(crt, self.__group_cell_func) 
     
    255264        self.tree.append_column(col) 
    256265        #self.tree.set_headers_visible(False) 
     266        self.tree.set_enable_tree_lines(True) # This don't work with cell back 
    257267 
    258268        self.add(self.tree) 
    259269 
    260         it = self.store.append(None, ["test", None, True, True]) 
     270        it = self.store.append(None, ["<b>test</b>", None, True, True]) 
    261271        self.store.append(it, ["test", None, True, None]) 
    262272        self.store.append(it, ["test", None, True, None]) 
     
    264274 
    265275    def __property_cell_func(self, col, cell, model, iter): 
    266         if isinstance(model.get_value(iter, 3), bool): 
    267             cell.painter = BitEditor(None) 
     276        #if isinstance(model.get_value(iter, 3), bool): 
     277        cell.painter = BitEditor(None) 
    268278 
    269279    def __group_cell_func(self, col, cell, model, iter):