Source code for GLXCurses.libs.Groups

#!/usr/bin/env python
# -*- coding: utf-8 -*-

# It script it publish under GNU GENERAL PUBLIC LICENSE
# http://www.gnu.org/licenses/gpl-3.0.en.html
# Author: the Galaxie Curses Team, all rights reserved

import GLXCurses


[docs]class Groups(object): def __init__(self): self.__groups = None self.__position = None self.groups = list() self.position = 0 @property def groups(self): return self.__groups @groups.setter def groups(self, value=None): if value is None: value = list() if type(value) != list: raise TypeError('"groups value must be a list type or None"') if self.groups != value: self.__groups = value @property def position(self): """ Extra space to put between the child and its neighbors, in chars. Flags: Read / Write Allowed values: <= G_MAXINT Default value: 0 :return: Extra space to put between the child and its neighbors, in chars. :rtype: int """ return self.__position @position.setter def position(self, position=None): if position is None: position = 0 if type(position) != int: raise TypeError('"position" must be a int type or None') if self.position != position: self.__position = position @property def group(self): if len(self.groups) > 0 and isinstance( self.groups[self.position], GLXCurses.Group ): return self.groups[self.position] return None
[docs] def is_group(self, group=None): if group is None: return False if not isinstance(group, GLXCurses.Group): raise TypeError("'group' must be an instance of GLXCurses.Group or None") if group in self.groups: return True return False
[docs] def add_group(self, group=None): """ Adds group to the GLXCurses.Application groups list . Typically used to permit GLXCurses.Application to manage Widgets Groups For more complicated layout containers such as Box or Grid, this function will pick default packing parameters that may not be correct. :param group: a widget to be placed inside container :type group: GLXCurses.Group :raise TypeError: if ``group`` is not a instance of Group """ if not isinstance(group, GLXCurses.Group): raise TypeError("'group' must be an instance of GLXCurses.Group") if not self.is_group(group): self.groups.append(group)
[docs] def remove_group(self, group=None): if not isinstance(group, GLXCurses.Group): raise TypeError("'group' must be an instance of GLXCurses.Group") if self.is_group(group): self.groups.remove(group)
[docs] def up(self): if self.position + 1 > len(self.groups) - 1: self.position = 0 else: self.position += 1
[docs] def down(self): if self.position - 1 < 0: self.position = len(self.groups) - 1 else: self.position -= 1