예제 #1
0
    def delete(self):

        del self.__image
        del self.__layout
        del self.__block
        del self.__max_size
        ContainerTarget.delete(self)
예제 #2
0
    def __init__(self, name, parent):

        # the current layouter function
        self.__layouter = []

        # the class of the array elements
        self.__elementtype = None

        # the default settings of the array elements
        self.__elementsettings = None

        # children data of the array elements
        self.__elementchildren = []

        # the current elements of this array
        self.__children = []

        # mapping between unique IDs and targets
        self.__targets = {}

        ContainerTarget.__init__(self, name, parent)
        self.__layout = gtk.Fixed()
        self.__layout.show()

        self._register_property("length", TYPE_INT,
                                self._setp_length, self._getp_length)
        self._register_property("layout", TYPE_LIST,
                                self._setp_layout, self._getp)
예제 #3
0
    def __init__(self, name, parent):

        # the list of available slots; a slot is where items can be put in
        self.__slots = []

        ContainerTarget.__init__(self, name, parent)
        self.__menu = gtk.Menu()

        self._register_property("popup", TYPE_INT,
                                None, self._getp)
        self._setp("popup", self.__popup)
예제 #4
0
    def handle_action(self, action, px, py, args):

        ContainerTarget.handle_action(self, action, px, py, args)

        w, h = self.__icon.size_request()
        if (0 <= px.as_px() <= w and 0 <= py.as_px() <= h):
            if (action == self.ACTION_CLICK):
                if (self.__show_state == _STATE_VISIBLE):
                    self.__set_expanded(False)
                else:
                    self.__set_expanded(True)
예제 #5
0
    def __init__(self, name, parent):

        self.__alignment = (0.0, 0.0)

        ContainerTarget.__init__(self, name, parent)
        self.__align = gtk.Alignment(0.5, 1, 0, 0)
        self.__align.set_direction(gtk.TEXT_DIR_LTR)
        self.__align.show()

        self._register_property("align-x", TYPE_FLOAT,
                                self._setp_alignment, self._getp)
        self._register_property("align-y", TYPE_FLOAT,
                                self._setp_alignment, self._getp)
예제 #6
0
    def __init__(self, name, parent):

        self.__menuitem = None

        ContainerTarget.__init__(self, name, parent)

        self._register_property("label", TYPE_STRING,
                                self._setp_label, self._getp)
        self._register_property("slot", TYPE_STRING,
                                self._setp_slot, self._getp)
        self._register_property("active", TYPE_BOOL,
                                self._setp_active, self._getp)
        self.set_prop("slot", self.__DEFAULT_SLOT)
        self.set_prop("label", "")
        self.set_prop("active", True)

        self._register_action(self.__ACTION_ACTIVATE)
예제 #7
0
    def new_child(self, childtype, settings, children):

        child = ContainerTarget.new_child(self, childtype, settings, children)
        if (not child.is_standalone()):
            x, y, w, h = child.get_geometry()
            self.__layout.put(child.get_widget(), x.as_px(), y.as_px())

        return child
예제 #8
0
    def new_child(self, childtype, settings, children):

        child = ContainerTarget.new_child(self, childtype, settings, children)
        slot = child.get_prop("slot")
        if (not slot in self.get_slots()):
            self.insert_slot(slot, len(self.get_slots()))
        self.add_to_slot(slot, child)

        return child
예제 #9
0
    def __init__(self, name, parent):

        self.__frame_widths = [Unit.ZERO] * 4
        self.__images = []


        ContainerTarget.__init__(self, name, parent)
        self.__table = gtk.Table(3, 3)
        self.__table.set_direction(gtk.TEXT_DIR_LTR)
        self.__table.show()

        r, g, b, a = utils.parse_color("black")
        for x, y in ((0, 1), (1, 0), (2, 1), (1, 2),
                     (0, 0), (2, 0), (2, 2), (0, 2)):
            img = Tiling()
            img.set_from_color(r, g, b, a)
            img.show()
            self.__table.attach(img, x, x + 1, y, y + 1)
            self.__images.append(img)

        self.__box = gtk.HBox()
        self.__box.show()
        self.__table.attach(self.__box, 1, 2, 1, 2)

        self._register_property("border-uris", TYPE_LIST,
                                self._setp_border_uris, self._getp)
        self._register_property("border-width", TYPE_UNIT_LIST,
                                self._setp_border_width, self._getp)
        self._register_property("color", TYPE_STRING,
                                self._setp_border_color, self._getp)

        self.set_prop("border-width",
                      [Unit.Unit(2, Unit.UNIT_PX), Unit.Unit(2, Unit.UNIT_PX),
                       Unit.Unit(2, Unit.UNIT_PX), Unit.Unit(2, Unit.UNIT_PX)])
        self._setp("color", "black")


        # watch for geometry changes
        self.add_observer(self.__on_observe_size)
예제 #10
0
    def __init__(self, name, parent):

        # flag for ensuring that only one collapse action takes place
        self.__block = 0

        # the maximum size values of all the children
        self.__max_size = (0, 0)

        ContainerTarget.__init__(self, name, parent)
        self.__layout = gtk.Layout()
        self.__layout.show()

        self.__image = Tiling()
        self.__image.show()
        self.__layout.put(self.__image, 0, 0)

        self._register_property("bg-uri", TYPE_STRING,
                                self._setp_bg_uri, self._getp)
        self._register_property("bg-color", TYPE_STRING,
                                self._setp_bg_color, self._getp)

        self.add_observer(self.__on_observe_size)
예제 #11
0
    def __init__(self, name, parent):

        self.__show_state = _STATE_VISIBLE

        ContainerTarget.__init__(self, name, parent)
        self.__widget = gtk.Table(2, 2)
        self.__widget.show()

        self.__icon = gtk.Image()
        self.__icon.show()
        self.__widget.attach(self.__icon, 0, 1, 0, 1, 0, 0, 0, 0)

        dummy = gtk.HBox(); dummy.show()
        self.__widget.attach(dummy, 0, 1, 1, 2,
                             gtk.EXPAND | gtk.FILL, gtk.EXPAND | gtk.FILL,
                             0, 0)

        self._register_property("expanded", TYPE_BOOL,
                                 self._setp_expanded, self._getp)
        self._register_property("icon-uri", TYPE_STRING,
                                 self._setp_icon, self._getp)
        self._register_action(self.__ACTION_EXPAND)
예제 #12
0
    def __add_child(self):

        # use a unique ID
        settings = self.__elementsettings.copy()
        settings["id"] += "#" + str(len(self.__children))
        child = ContainerTarget.new_child(self, self.__elementtype,
                                          settings,
                                          self.__elementchildren)
        self.__children.append(child)

        x, y, w, h = child.get_geometry()
        self.__layout.put(child.get_widget(), x.as_px(), y.as_px())
        child.add_observer(self.__on_observe_children)

        if (not self._is_geometry_locked()): child.unlock_geometry()
예제 #13
0
    def new_child(self, childtype, settings, children):

        child = ContainerTarget.new_child(self, childtype, settings, children)
        self.__menuitem.set_submenu(child.get_widget())

        return child
예제 #14
0
    def new_child(self, childtype, settings, children):

        child = ContainerTarget.new_child(self, childtype, settings, children)
        self.__box.add(child.get_widget())
        self.__redraw_frame()
예제 #15
0
    def new_child(self, childtype, settings, children):

        child = ContainerTarget.new_child(self, childtype, settings, children)
        self.__widget.attach(child.get_widget(), 1, 2, 0, 2,
                             gtk.EXPAND | gtk.FILL, gtk.EXPAND | gtk.FILL,
                             0, 0)
예제 #16
0
    def new_child(self, childtype, settings, children):

        child = ContainerTarget.new_child(self, childtype, settings, children)
        self.__align.add(child.get_widget())