Changeset 3154
- Timestamp:
- 07/16/08 16:51:57 (5 years ago)
- Files:
-
- 1 modified
-
branch/PacketManipulator/widgets/PropertyGrid.py (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branch/PacketManipulator/widgets/PropertyGrid.py
r3153 r3154 68 68 self.btn.show() 69 69 70 def render(self, window, bounds, state):71 if self.value:70 def render(self, window, widget, bounds, state): 71 if not self.value: 72 72 sh = gtk.SHADOW_IN 73 73 else: 74 74 sh = gtk.SHADOW_OUT 75 75 76 size = 2076 size = 15 77 77 78 78 if size > bounds.height: … … 80 80 if size > bounds.width: 81 81 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) 91 89 92 90 class StrEditor(Editor): … … 145 143 self.box.size_allocate(alloc) 146 144 147 class CellRenderer Property(gtk.CellRendererText):148 __gtype_name__ = "CellRenderer Property"149 145 class CellRendererGroup(gtk.CellRendererText): 146 __gtype_name__ = "CellRendererGroup" 147 150 148 def __init__(self, tree): 151 super(CellRenderer Property, self).__init__()149 super(CellRendererGroup, self).__init__() 152 150 153 151 self.tree = tree 154 152 self.set_property('xalign', 0) 155 153 self.set_property('xpad', 3) 156 self.set_property('mode', gtk.CELL_RENDERER_MODE_EDITABLE)157 154 158 155 self.painter = None … … 161 158 dummy_entry.set_has_frame(False) 162 159 self.row_height = dummy_entry.size_request()[1] 163 160 164 161 def do_get_size(self, widget, area): 165 162 w, h = 0, 0 … … 197 194 state = gtk.STATE_NORMAL 198 195 199 self.painter.render(window, cell_area, state)196 self.painter.render(window, widget, cell_area, state) 200 197 else: 201 198 return gtk.CellRendererText.do_render( \ … … 203 200 ) 204 201 202 gobject.type_register(CellRendererGroup) 203 204 class 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 205 211 def do_start_editing(self, event, widget, path, \ 206 212 background_area, cell_area, flags): … … 230 236 col = gtk.TreeViewColumn('Property') 231 237 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]) 234 243 235 244 col.pack_start(crt, True) … … 238 247 col.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED) 239 248 col.set_fixed_width(180) 240 col.set_attributes(crt, text=0)249 col.set_attributes(crt, markup=0) 241 250 242 251 col.set_cell_data_func(crt, self.__group_cell_func) … … 255 264 self.tree.append_column(col) 256 265 #self.tree.set_headers_visible(False) 266 self.tree.set_enable_tree_lines(True) # This don't work with cell back 257 267 258 268 self.add(self.tree) 259 269 260 it = self.store.append(None, [" test", None, True, True])270 it = self.store.append(None, ["<b>test</b>", None, True, True]) 261 271 self.store.append(it, ["test", None, True, None]) 262 272 self.store.append(it, ["test", None, True, None]) … … 264 274 265 275 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) 268 278 269 279 def __group_cell_func(self, col, cell, model, iter):
