aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lvc/widgets/gtk/tableviewcells.py35
1 files changed, 23 insertions, 12 deletions
diff --git a/lvc/widgets/gtk/tableviewcells.py b/lvc/widgets/gtk/tableviewcells.py
index 6511970..6b61016 100644
--- a/lvc/widgets/gtk/tableviewcells.py
+++ b/lvc/widgets/gtk/tableviewcells.py
@@ -39,6 +39,7 @@ import drawing
import wrappermap
from .base import make_gdk_color
+
class CellRenderer(object):
"""Simple Cell Renderer
https://develop.participatoryculture.org/index.php/WidgetAPITableView"""
@@ -84,6 +85,7 @@ class CellRenderer(object):
def set_font_scale(self, scale_factor):
self._renderer.props.scale = scale_factor
+
class ImageCellRenderer(object):
"""Cell Renderer for images
https://develop.participatoryculture.org/index.php/WidgetAPITableView"""
@@ -94,15 +96,17 @@ class ImageCellRenderer(object):
def setup_attributes(self, column, attr_map):
column.add_attribute(self._renderer, 'pixbuf', attr_map['image'])
+
class GTKCheckboxCellRenderer(gtk.CellRendererToggle):
def do_activate(self, event, treeview, path, background_area, cell_area,
- flags):
+ flags):
iter = treeview.get_model().get_iter(path)
self.set_active(not self.get_active())
wrappermap.wrapper(self).emit('clicked', iter)
gobject.type_register(GTKCheckboxCellRenderer)
+
class CheckboxCellRenderer(signals.SignalEmitter):
"""Cell Renderer for booleans
https://develop.participatoryculture.org/index.php/WidgetAPITableView"""
@@ -119,6 +123,7 @@ class CheckboxCellRenderer(signals.SignalEmitter):
def setup_attributes(self, column, attr_map):
column.add_attribute(self._renderer, 'active', attr_map['value'])
+
class GTKCustomCellRenderer(gtk.GenericCellRenderer):
"""Handles the GTK hide of CustomCellRenderer
https://develop.participatoryculture.org/index.php/WidgetAPITableView"""
@@ -144,8 +149,8 @@ class GTKCustomCellRenderer(gtk.GenericCellRenderer):
y_offset += int(round(self.props.yalign * extra_height))
return x_offset, y_offset, width, height
- def on_render(self, window, widget, background_area, cell_area, expose_area,
- flags):
+ def on_render(self, window, widget, background_area,
+ cell_area, expose_area, flags):
widget_wrapper = wrappermap.wrapper(widget)
cell_wrapper = wrappermap.wrapper(self)
@@ -163,17 +168,20 @@ class GTKCustomCellRenderer(gtk.GenericCellRenderer):
xpad = self.props.xpad
ypad = self.props.ypad
area = gtk.gdk.Rectangle(cell_area.x + xpad, cell_area.y + ypad,
- cell_area.width - xpad * 2, cell_area.height - ypad * 2)
+ cell_area.width - xpad * 2,
+ cell_area.height - ypad * 2)
context = drawing.DrawingContext(window, area, expose_area)
if (selected and not widget_wrapper.draws_selection and
widget_wrapper.use_custom_style):
# Draw the base color as our background. This erases the gradient
# that GTK draws for selected items.
window.draw_rectangle(widget.style.base_gc[state], True,
- background_area.x, background_area.y,
- background_area.width, background_area.height)
+ background_area.x, background_area.y,
+ background_area.width,
+ background_area.height)
context.style = drawing.DrawingStyle(widget_wrapper,
- use_base_color=True, state=state)
+ use_base_color=True,
+ state=state)
widget_wrapper.layout_manager.update_cairo_context(context.context)
hotspot_tracker = widget_wrapper.hotspot_tracker
if (hotspot_tracker and hotspot_tracker.hit and
@@ -192,17 +200,18 @@ class GTKCustomCellRenderer(gtk.GenericCellRenderer):
# here.
widget_wrapper.layout_manager.reset()
cell_wrapper.render(context, widget_wrapper.layout_manager, selected,
- hotspot, hover)
+ hotspot, hover)
def on_activate(self, event, widget, path, background_area, cell_area,
- flags):
+ flags):
pass
def on_start_editing(self, event, widget, path, background_area,
- cell_area, flags):
+ cell_area, flags):
pass
gobject.type_register(GTKCustomCellRenderer)
+
class CustomCellRenderer(object):
"""Customizable Cell Renderer
https://develop.participatoryculture.org/index.php/WidgetAPITableView"""
@@ -216,7 +225,7 @@ class CustomCellRenderer(object):
def setup_attributes(self, column, attr_map):
column.set_cell_data_func(self._renderer, self.cell_data_func,
- attr_map)
+ attr_map)
def cell_data_func(self, column, cell, model, iter, attr_map):
cell.column = column
@@ -230,6 +239,7 @@ class CustomCellRenderer(object):
def hotspot_test(self, style, layout, x, y, width, height):
return None
+
class InfoListRenderer(CustomCellRenderer):
"""Custom Renderer for InfoListModels
https://develop.participatoryculture.org/index.php/WidgetAPITableView"""
@@ -240,10 +250,11 @@ class InfoListRenderer(CustomCellRenderer):
cell.column = column
cell.path = model.get_path(iter)
+
class InfoListRendererText(CellRenderer):
"""Renderer for InfoListModels that only display text
https://develop.participatoryculture.org/index.php/WidgetAPITableView"""
def setup_attributes(self, column, attr_map):
infolist.gtk.setup_text_cell_data_func(column, self._renderer,
- self.get_value)
+ self.get_value)