예제 #1
0
 def __init__(self, nrows=15, height=None,
              header_height=None, row_height=None,
              scrolling=True, **kwds):
     columns = self.predict_attr(kwds, 'columns')
     if row_height is None:
         font = self.predict_font(kwds)
         row_height = font.get_linesize()
     if header_height is None:
         header_height = row_height
     row_width = 0
     if columns:
         for column in columns:
             row_width += column.width
         row_width += 2 * self.column_margin * len(columns)
     contents = []
     header = None
     if header_height:
         header = TableHeaderView(row_width, header_height)
         contents.append(header)
     row_size = (row_width, row_height)
     if not nrows and height:
         nrows = height // row_height
     self.rows = rows = TableRowView(row_size, nrows or 10, scrolling=scrolling)
     contents.append(rows)
     s = self.header_spacing
     Column.__init__(self, contents, align='l', spacing=s, **kwds)
     if header:
         header.font = self.header_font or self.font
         header.fg_color = fg_color = self.header_fg_color or self.fg_color
         header.bg_color = bg_color = self.header_bg_color or self.bg_color
     rows.font = self.font
     rows.fg_color = self.fg_color
     rows.bg_color = self.bg_color
     rows.sel_color = self.sel_color
예제 #2
0
 def __init__(self, *args, **kwargs):
     kwargs['margin'] = kwargs.get('margin', 0)
     self.selected_item_index = None
     self.rows = kwargs.pop('rows', [])
     self.align = kwargs.get('align', 'l')
     self.spacing = kwargs.get('spacing', 4)
     self.draw_zebra = kwargs.pop('draw_zebra', True)
     #        self.row_height = kwargs.pop('row_height', max([a.height for a in self.rows] + [self.font.size(' ')[1],]))
     self.row_height = kwargs.pop(
         'row_height',
         max([a.height for a in self.rows] + [
             self.font.get_linesize(),
         ]))
     self.inner_width = kwargs.pop('inner_width', 500)
     self.scrolling = kwargs.get('scrolling', True)
     self.hscrolling = kwargs.get('hscrolling', True)
     self.scrollRow = scrollRow = ScrollRow(
         (self.inner_width, self.row_height),
         10,
         draw_zebra=self.draw_zebra,
         spacing=0,
         scrolling=self.scrolling,
         hscrolling=self.hscrolling)
     self.selected = None
     Column.__init__(self, [
         scrollRow,
     ], **kwargs)
     self.shrink_wrap()
예제 #3
0
 def __init__(self, *args, **kwargs):
     self.menu = [
         ("Add", "add_item"),
         ("Delete", "delete_item"),
         ("New child", "add_child"),
         ("Rename", "rename_item"),
         ("", ""),
         ("Cut", "cut_item"),
         ("Copy", "copy_item"),
         ("Paste", "paste_item"),
         ("Paste as child", "paste_child"),
     ]
     if not hasattr(self, 'map_types_item'):
         global map_types_item
         self.map_types_item = setup_map_types_item()
     self.selected_item_index = None
     # cached_item_index is set to False during startup to avoid a predefined selected item to be unselected when closed
     # the first time.
     self.cached_selected_item_index = False
     self.selected_item = None
     self.clicked_item = None
     self.copyBuffer = kwargs.pop('copyBuffer', None)
     self._parent = kwargs.pop('_parent', None)
     self.styles = kwargs.pop('styles', {})
     self.compound_types = [
         dict,
     ] + kwargs.pop('compound_types', [])
     self.item_types = self.compound_types + kwargs.pop(
         'item_types', [a[0] for a in self.map_types_item.values()]
         or [int, float, unicode, bool])
     for t in self.item_types:
         if 'create_%s' % t.__name__ in globals().keys():
             setattr(self, 'create_%s' % t.__name__,
                     globals()['create_%s' % t.__name__])
     self.show_fields = kwargs.pop('show_fields', False)
     self.deployed = []
     self.data = data = kwargs.pop("data", {})
     self.draw_zebra = draw_zebra = kwargs.pop('draw_zebra', True)
     #        self.inner_width = kwargs.pop('inner_width', 'auto')
     self.inner_width = kwargs.pop('inner_width', 500)
     self.__num_rows = len(data.keys())
     self.build_layout()
     #        row_height = self.font.size(' ')[1]
     row_height = self.font.get_linesize()
     self.treeRow = treeRow = TreeRow((self.inner_width, row_height),
                                      10,
                                      draw_zebra=draw_zebra)
     Column.__init__(self, [
         treeRow,
     ], **kwargs)
예제 #4
0
    def __init__(self, *args, **kwargs):
        kwargs['margin'] = kwargs.get('margin', 0)
        self.selected_item_index = None
        self.rows = kwargs.pop('rows', [])
        self.align = kwargs.get('align', 'l')
        self.spacing = kwargs.get('spacing', 4)
        self.draw_zebra = kwargs.pop('draw_zebra', True)
#        self.row_height = kwargs.pop('row_height', max([a.height for a in self.rows] + [self.font.size(' ')[1],]))
        self.row_height = kwargs.pop('row_height', max([a.height for a in self.rows] + [self.font.get_linesize(),]))
        self.inner_width = kwargs.pop('inner_width', 500)
        self.scrolling = kwargs.get('scrolling', True)
        self.hscrolling = kwargs.get('hscrolling', True)
        self.scrollRow = scrollRow = ScrollRow((self.inner_width, self.row_height), 10, draw_zebra=self.draw_zebra, spacing=0,
                                               scrolling=self.scrolling, hscrolling=self.hscrolling)
        self.selected = None
        Column.__init__(self, [scrollRow,], **kwargs)
        self.shrink_wrap()
예제 #5
0
 def __init__(self, *args, **kwargs):
     self.menu = [
         ("Add", "add_item"),
         ("Delete", "delete_item"),
         ("New child", "add_child"),
         ("Rename", "rename_item"),
         ("", ""),
         ("Cut", "cut_item"),
         ("Copy", "copy_item"),
         ("Paste", "paste_item"),
         ("Paste as child", "paste_child"),
     ]
     if not hasattr(self, "map_types_item"):
         global map_types_item
         self.map_types_item = setup_map_types_item()
     self.selected_item_index = None
     self.selected_item = None
     self.clicked_item = None
     self.copyBuffer = kwargs.pop("copyBuffer", None)
     self._parent = kwargs.pop("_parent", None)
     self.styles = kwargs.pop("styles", {})
     self.compound_types = [dict] + kwargs.pop("compound_types", [])
     self.item_types = self.compound_types + kwargs.pop(
         "item_types", [a[0] for a in self.map_types_item.values()] or [int, float, unicode, bool]
     )
     for t in self.item_types:
         if "create_%s" % t.__name__ in globals().keys():
             setattr(self, "create_%s" % t.__name__, globals()["create_%s" % t.__name__])
     self.show_fields = kwargs.pop("show_fields", False)
     self.deployed = []
     self.data = data = kwargs.pop("data", {})
     self.draw_zebra = draw_zebra = kwargs.pop("draw_zebra", True)
     #        self.inner_width = kwargs.pop('inner_width', 'auto')
     self.inner_width = kwargs.pop("inner_width", 500)
     self.__num_rows = len(data.keys())
     self.build_layout()
     #        row_height = self.font.size(' ')[1]
     row_height = self.font.get_linesize()
     self.treeRow = treeRow = TreeRow((self.inner_width, row_height), 10, draw_zebra=draw_zebra)
     Column.__init__(self, [treeRow], **kwargs)
예제 #6
0
    def __init__(self, *args, **kwargs):
        self.menu = [("Add", "add_item"),
                     ("Delete", "delete_item"),
                     ("New child", "add_child"),
                     ("Rename", "rename_item"),
                     ("", ""),
                     ("Cut", "cut_item"),
                     ("Copy", "copy_item"),
                     ("Paste", "paste_item"),
                     ("Paste as child", "paste_child"),
                     ]
        if not hasattr(self, 'map_types_item'):
            global map_types_item
            self.map_types_item = setup_map_types_item()
        self.selected_item_index = None
        # cached_item_index is set to False during startup to avoid a predefined selected item to be unselected when closed
        # the first time.
        self.cached_selected_item_index = False
        self.selected_item = None
        self.clicked_item = None
        self.copyBuffer = kwargs.pop('copyBuffer', None)
        self._parent = kwargs.pop('_parent', None)
        self.styles = kwargs.pop('styles', {})
        self.compound_types = [dict,] + kwargs.pop('compound_types', [])
        self.item_types = self.compound_types + kwargs.pop('item_types', [a[0] for a in self.map_types_item.values()] or [int, float, unicode, bool])
        for t in self.item_types:
            if 'create_%s'%t.__name__ in globals().keys():
                setattr(self, 'create_%s'%t.__name__, globals()['create_%s'%t.__name__])
        self.show_fields = kwargs.pop('show_fields', False)
        self.deployed = []
        self.data = data = kwargs.pop("data", {})
        self.draw_zebra = draw_zebra = kwargs.pop('draw_zebra', True)
#        self.inner_width = kwargs.pop('inner_width', 'auto')
        self.inner_width = kwargs.pop('inner_width', 500)
        self.__num_rows = len(data.keys())
        self.build_layout()
#        row_height = self.font.size(' ')[1]
        row_height = self.font.get_linesize()
        self.treeRow = treeRow = TreeRow((self.inner_width, row_height), 10, draw_zebra=draw_zebra)
        Column.__init__(self, [treeRow,], **kwargs)
예제 #7
0
    def __init__(self, *args, **kwargs):
        self.menu = [("Add", "add_item"),
                     ("Delete", "delete_item"),
                     ("New child", "add_child"),
                     ("Rename", "rename_item"),
                     ]
        self.selected_item_index = None
        self.selected_item = None
        self._parent = kwargs.pop('_parent', None)
        self.styles = kwargs.pop('styles', {})
        self.compound_types = [dict,] + kwargs.pop('compound_types', [])
        self.show_fields = kwargs.pop('show_fields', False)
        self.deployed = []
        self.data = data = kwargs.pop("data", {})
        self.draw_zebra = draw_zebra = kwargs.pop('draw_zebra', True)
#        self.inner_width = kwargs.pop('inner_width', 'auto')
        self.inner_width = kwargs.pop('inner_width', 500)
        self.__num_rows = len(data.keys())
        self.build_layout()
        row_height = self.font.size(' ')[1]
        self.treeRow = treeRow = TreeRow((self.inner_width, row_height), 10, draw_zebra=draw_zebra)
        Column.__init__(self, [treeRow,], **kwargs)