コード例 #1
0
 def size(self, dialog):
     Control.size(self, dialog)
     self.width = 2 * (self.RADIUS + self.BORDER)
     self.height = self.width
     if self.circle_vlist is None:
         self.circle_vlist = dialog.batch.add(
             4 * self.NUM_SEGMENTS, gl.GL_QUADS, dialog.fg_group,
             ('v2f', self._get_circle_vlist_vertices()),
             ('c4B', [255, 255, 255, 255] * (4 * self.NUM_SEGMENTS)))
     if self.inner_circle_vlist is None:
         self.inner_circle_vlist = dialog.batch.add(
             3 * self.NUM_SEGMENTS, gl.GL_TRIANGLES, dialog.fg_group,
             ('v2f', self._get_inner_circle_vlist_vertices()),
             ('c4B', self.color * (3 * self.NUM_SEGMENTS)))
     if self.inner_circle_bg_vlist is None:
         self.inner_circle_bg_vlist = dialog.batch.add(
             3 * self.NUM_SEGMENTS, gl.GL_TRIANGLES, dialog.bg_group,
             ('v2f', self._get_inner_circle_vlist_vertices()),
             ('c4B', self._get_inner_circle_bg_vlist_colors()))
     if self.colors_vlist is None:
         self.colors_vlist = dialog.batch.add(
             4 * self.NUM_SEGMENTS, gl.GL_QUADS, dialog.fg_group,
             ('v2f', self._get_colors_vlist_vertices()),
             ('c3B', self._get_colors_vlist_colors()))
     if self.triangle_vlist is None:
         self.triangle_vlist = dialog.batch.add(
             6, gl.GL_TRIANGLES, dialog.highlight_group,
             ('v2f', self._get_triangle_vlist_vertices()),
             ('c3B', self._get_triangle_vlist_colors()))
     if self.crosshair is None:
         self.crosshair = dialog.theme[self.path]['image'].generate(
             [255, 255, 255, 255], dialog.batch, dialog.highlight_group)
コード例 #2
0
ファイル: kwidgets.py プロジェクト: HieuLsw/blobjob.editor
 def on_gain_highlight(self):
     Control.on_gain_highlight(self)
     self.size(self.saved_dialog)  # to set up the highlight
     if self.highlight is not None:
         self.highlight.update(self.x-self.menu.padding/2,
                               self.y,
                               self.width+self.menu.padding,
                               self.height)
コード例 #3
0
ファイル: color_selector.py プロジェクト: kitanata/Kytten
 def layout(self, x, y):
     Control.layout(self, x, y)
     if self.swatch is not None:
         width, height = self.swatch.get_needed_size(self.content_width, self.content_height)
         self.swatch.update(self.x, self.y, width, height)
         if self.vlist is not None:
             self.vlist.vertices = self._get_vlist_vertices()
     if self.swatch_label is not None:
         self.swatch_label.layout(x + self.swatch.width + 4, y + (self.height - self.swatch_label.height) / 2)
コード例 #4
0
ファイル: resizable.py プロジェクト: SwineEngine/felyne
    def __init__(self, width, height, disabled=False):
        """
        Blocks occupy a fixed width and height.

        @param width Width
        @param height Height
        """
        Control.__init__(self, width=width, height=height, disabled=disabled)
        self.color = None
        self.vertex_list = None
        self.is_dragging = False
コード例 #5
0
ファイル: resizable.py プロジェクト: Parashurama/Kytten
    def __init__(self, width, height, disabled=False):
        """
        Blocks occupy a fixed width and height.

        @param width Width
        @param height Height
        """
        Control.__init__(self, width=width, height=height, disabled=disabled)
        self.color = None
        self.vertex_list = None
        self.is_dragging = False
コード例 #6
0
 def delete(self):
     Control.delete(self)
     if self.swatch_label is not None:
         self.swatch_label.delete()
         self.swatch_label = None
     if self.swatch is not None:
         self.swatch.delete()
         self.swatch = None  # deleted as part of layout
     if self.vlist is not None:
         self.vlist.delete()
         self.vlist = None
     self._delete_select_dialog()
コード例 #7
0
ファイル: resizable.py プロジェクト: SwineEngine/felyne
    def layout(self, x, y):
        """Places the vertex list at the new location.

        @param x X coordinate of our lower left corner
        @param y Y coordinate of our lower left corner
        """
        Control.layout(self, x, y)
        if not self.is_disabled():
            num_points, self.vertex_list.vertices = self._get_vertices()
            self.vertex_list.colors = self.color * num_points
        else:
            self.is_dragging = False
コード例 #8
0
 def delete(self):
     Control.delete(self)
     if self.texture_vlist is not None:
         self.texture_vlist.delete()
         self.texture_vlist = None
     if self.resizer_vlist is not None:
         self.resizer_vlist.delete()
         self.resizer_vlist = None
     if self.limits_vlist is not None:
         self.limits_vlist.delete()
         self.limits_vlist = None
     self.texture_group = None
コード例 #9
0
 def delete(self):
     Control.delete(self)
     if self.texture_vlist is not None:
         self.texture_vlist.delete()
         self.texture_vlist = None
     if self.resizer_vlist is not None:
         self.resizer_vlist.delete()
         self.resizer_vlist = None
     if self.limits_vlist is not None:
         self.limits_vlist.delete()
         self.limits_vlist = None
     self.texture_group = None
コード例 #10
0
ファイル: color_selector.py プロジェクト: marky1991/Kytten
    def delete(self):
	Control.delete(self)
	if self.swatch_label is not None:
	    self.swatch_label.delete()
	    self.swatch_label = None
	if self.swatch is not None:
	    self.swatch.delete()
	    self.swatch = None  # deleted as part of layout
	if self.vlist is not None:
	    self.vlist.delete()
	    self.vlist = None
	self._delete_select_dialog()
コード例 #11
0
ファイル: resizable.py プロジェクト: Parashurama/Kytten
    def layout(self, x, y):
        """Places the vertex list at the new location.

        @param x X coordinate of our lower left corner
        @param y Y coordinate of our lower left corner
        """
        Control.layout(self, x, y)
        if not self.is_disabled():
            num_points, self.vertex_list.vertices = self._get_vertices()
            self.vertex_list.colors = self.color * num_points
        else:
            self.is_dragging = False
コード例 #12
0
 def layout(self, x, y):
     Control.layout(self, x, y)
     if self.swatch is not None:
         width, height = self.swatch.get_needed_size(
             self.content_width, self.content_height)
         self.swatch.update(self.x, self.y, width, height)
         if self.vlist is not None:
             self.vlist.vertices = self._get_vlist_vertices()
     if self.swatch_label is not None:
         self.swatch_label.layout(
             x + self.swatch.width + 4,
             y + (self.height - self.swatch_label.height) / 2)
コード例 #13
0
ファイル: kwidgets.py プロジェクト: HieuLsw/blobjob.editor
 def __init__(self, id, image, scale_size=None, anchor=ANCHOR_CENTER,
              palette=None, disabled=False, padding=0):
     Control.__init__(self, disabled=disabled)
     self.id = id
     self.image = image
     self.scale_size = scale_size
     self.anchor = anchor
     self.palette = palette
     self.sprite = None
     self.background = None
     self.highlight = None
     self.is_selected = False
     self.padding = padding
コード例 #14
0
ファイル: resizable.py プロジェクト: SwineEngine/felyne
    def size(self, dialog):
        """Constructs a vertex list to draw a crossed square.

        @param dialog The Dialog within which we are contained
        """
        if dialog is None:
            return
        Control.size(self, dialog)
        if self.vertex_list is None and not self.is_disabled():
            self.color = dialog.theme['gui_color']
            num_points, vertices = self._get_vertices()
            self.vertex_list = dialog.batch.add(
                num_points, gl.GL_LINES, dialog.fg_group, ('v2i', vertices),
                ('c4B', self.color * num_points))
コード例 #15
0
 def __init__(self, texture, x=0, y=0, width=0, height=0, scale=1,
              on_resize=None):
     Control.__init__(self)
     self.texture = texture
     self.on_resize = on_resize
     self.texture_group = None
     self.texture_vlist = None
     self.resizer_vlist = None
     self.limits_vlist = None
     self.region = [x, y, width, height]
     self.limits = None
     self.scale = scale
     self.color = self.IMAGE_REGION_COLOR
     self.is_dragging = False
     self.corner = None
コード例 #16
0
ファイル: resizable.py プロジェクト: Parashurama/Kytten
    def size(self, dialog, scale):
        """Constructs a vertex list to draw a crossed square.

        @param dialog The Dialog within which we are contained
        """
        if dialog is None:
            return
        Control.size(self, dialog, scale)
        if self.vertex_list is None and not self.is_disabled():
            self.color = dialog.theme['gui_color']
            num_points, vertices = self._get_vertices()
            self.vertex_list = dialog.batch.add(num_points, gl.GL_LINES,
                dialog.fg_group,
                ('v2i', vertices),
                ('c4B', self.color * num_points))
コード例 #17
0
ファイル: color_selector.py プロジェクト: kitanata/Kytten
 def size(self, dialog):
     Control.size(self, dialog)
     self.width = 2 * (self.RADIUS + self.BORDER)
     self.height = self.width
     if self.circle_vlist is None:
         self.circle_vlist = dialog.batch.add(
             4 * self.NUM_SEGMENTS,
             gl.GL_QUADS,
             dialog.fg_group,
             ("v2f", self._get_circle_vlist_vertices()),
             ("c4B", [255, 255, 255, 255] * (4 * self.NUM_SEGMENTS)),
         )
     if self.inner_circle_vlist is None:
         self.inner_circle_vlist = dialog.batch.add(
             3 * self.NUM_SEGMENTS,
             gl.GL_TRIANGLES,
             dialog.fg_group,
             ("v2f", self._get_inner_circle_vlist_vertices()),
             ("c4B", self.color * (3 * self.NUM_SEGMENTS)),
         )
     if self.inner_circle_bg_vlist is None:
         self.inner_circle_bg_vlist = dialog.batch.add(
             3 * self.NUM_SEGMENTS,
             gl.GL_TRIANGLES,
             dialog.bg_group,
             ("v2f", self._get_inner_circle_vlist_vertices()),
             ("c4B", self._get_inner_circle_bg_vlist_colors()),
         )
     if self.colors_vlist is None:
         self.colors_vlist = dialog.batch.add(
             4 * self.NUM_SEGMENTS,
             gl.GL_QUADS,
             dialog.fg_group,
             ("v2f", self._get_colors_vlist_vertices()),
             ("c3B", self._get_colors_vlist_colors()),
         )
     if self.triangle_vlist is None:
         self.triangle_vlist = dialog.batch.add(
             6,
             gl.GL_TRIANGLES,
             dialog.highlight_group,
             ("v2f", self._get_triangle_vlist_vertices()),
             ("c3B", self._get_triangle_vlist_colors()),
         )
     if self.crosshair is None:
         self.crosshair = dialog.theme[self.path]["image"].generate(
             [255, 255, 255, 255], dialog.batch, dialog.highlight_group
         )
コード例 #18
0
 def _get_controls(self):
     _, _, width, height = self.region
     if width < 20 or height < 20:
         return [(self, self.x - 8, self.x + self.width + 8,
                  self.y + self.height + 8, self.y - 8)]
     else:
         return Control._get_controls(self)
コード例 #19
0
 def _get_controls(self):
     _, _, width, height = self.region
     if width < 20 or height < 20:
         return [(self, self.x - 8, self.x + self.width + 8,
                        self.y + self.height + 8, self.y - 8)]
     else:
         return Control._get_controls(self)
コード例 #20
0
ファイル: color_selector.py プロジェクト: kitanata/Kytten
 def size(self, dialog):
     Control.size(self, dialog)
     if self.swatch is None:
         self.swatch = dialog.theme[self.path]["image"].generate(
             dialog.theme[self.path]["gui_color"], dialog.batch, dialog.fg_group
         )
     if self.vlist is None:
         self.vlist = dialog.batch.add(
             4, gl.GL_QUADS, dialog.highlight_group, ("v2i", self._get_vlist_vertices()), ("c4B", self.color * 4)
         )
     if self.swatch_label is None:
         self.swatch_label = Label(repr(self.color))
     self.swatch_label.size(dialog)
     swatch_width, swatch_height = self.swatch.get_needed_size(self.content_width, self.content_height)
     self.height = max(self.swatch_label.height, swatch_height)
     self.width = swatch_width + 4 + self.swatch_label.width
コード例 #21
0
ファイル: color_selector.py プロジェクト: kitanata/Kytten
    def layout(self, x, y):
        Control.layout(self, x, y)
        radius = self.RADIUS + self.BORDER
        self.center_x = self.x + radius
        self.center_y = self.y + radius

        if self.circle_vlist is not None:
            self.circle_vlist.vertices = self._get_circle_vlist_vertices()
        if self.inner_circle_vlist is not None:
            self.inner_circle_vlist.vertices = self._get_inner_circle_vlist_vertices()
        if self.inner_circle_bg_vlist is not None:
            self.inner_circle_bg_vlist.vertices = self._get_inner_circle_vlist_vertices()
        if self.colors_vlist is not None:
            self.colors_vlist.vertices = self._get_colors_vlist_vertices()
        if self.triangle_vlist is not None:
            self.triangle_vlist.vertices = self._get_triangle_vlist_vertices()
            self.triangle_vlist.colors = self._get_triangle_vlist_colors()
コード例 #22
0
 def __init__(self, color, width=16, height=16, id=None, on_select=None):
     Control.__init__(self, id=id)
     self.color = color
     self.content_width = width
     self.content_height = height
     self.swatch_label = None
     self.swatch = None
     self.vlist = None
     self.on_select = on_select
     self.select_dialog = None
     self.wheel = None
     self.red_input = None
     self.green_input = None
     self.blue_input = None
     self.slider = None
     self.accept_button = None
     self.cancel_button = None
コード例 #23
0
ファイル: color_selector.py プロジェクト: kitanata/Kytten
 def __init__(self, color, width=16, height=16, id=None, on_select=None):
     Control.__init__(self, id=id)
     self.color = color
     self.content_width = width
     self.content_height = height
     self.swatch_label = None
     self.swatch = None
     self.vlist = None
     self.on_select = on_select
     self.select_dialog = None
     self.wheel = None
     self.red_input = None
     self.green_input = None
     self.blue_input = None
     self.slider = None
     self.accept_button = None
     self.cancel_button = None
コード例 #24
0
 def size(self, dialog):
     Control.size(self, dialog)
     if self.swatch is None:
         self.swatch = dialog.theme[self.path]['image'].generate(
             dialog.theme[self.path]['gui_color'], dialog.batch,
             dialog.fg_group)
     if self.vlist is None:
         self.vlist = dialog.batch.add(4, gl.GL_QUADS,
                                       dialog.highlight_group,
                                       ('v2i', self._get_vlist_vertices()),
                                       ('c4B', self.color * 4))
     if self.swatch_label is None:
         self.swatch_label = Label(repr(self.color))
     self.swatch_label.size(dialog)
     swatch_width, swatch_height = self.swatch.get_needed_size(
         self.content_width, self.content_height)
     self.height = max(self.swatch_label.height, swatch_height)
     self.width = swatch_width + 4 + self.swatch_label.width
コード例 #25
0
    def layout(self, x, y):
        Control.layout(self, x, y)
        radius = self.RADIUS + self.BORDER
        self.center_x = self.x + radius
        self.center_y = self.y + radius

        if self.circle_vlist is not None:
            self.circle_vlist.vertices = self._get_circle_vlist_vertices()
        if self.inner_circle_vlist is not None:
            self.inner_circle_vlist.vertices = \
         self._get_inner_circle_vlist_vertices()
        if self.inner_circle_bg_vlist is not None:
            self.inner_circle_bg_vlist.vertices = \
         self._get_inner_circle_vlist_vertices()
        if self.colors_vlist is not None:
            self.colors_vlist.vertices = self._get_colors_vlist_vertices()
        if self.triangle_vlist is not None:
            self.triangle_vlist.vertices = self._get_triangle_vlist_vertices()
            self.triangle_vlist.colors = self._get_triangle_vlist_colors()
コード例 #26
0
 def __init__(self,
              texture,
              x=0,
              y=0,
              width=0,
              height=0,
              scale=1,
              on_resize=None):
     Control.__init__(self)
     self.texture = texture
     self.on_resize = on_resize
     self.texture_group = None
     self.texture_vlist = None
     self.resizer_vlist = None
     self.limits_vlist = None
     self.region = [x, y, width, height]
     self.limits = None
     self.scale = scale
     self.color = self.IMAGE_REGION_COLOR
     self.is_dragging = False
     self.corner = None
コード例 #27
0
 def size(self, dialog):
     Control.size(self, dialog)
     self.width = self.texture.width * self.scale
     self.height = self.texture.height * self.scale
     if self.texture_vlist is None:
         self.texture_group = pyglet.graphics.TextureGroup(
             self.texture, dialog.fg_group)
         self.texture_vlist = dialog.batch.add(4, gl.GL_QUADS,
             self.texture_group,
             ('v2i', self._get_texture_vertices()),
             ('c4B', (255, 255, 255, 255) * 4),
             ('t3f', self.texture.tex_coords))
     if self.resizer_vlist is None:
         self.resizer_vlist = dialog.batch.add(40, gl.GL_LINES,
             dialog.highlight_group,
             ('v2i', self._get_resizer_vertices()),
             ('c4B', self.color * 40))
     if self.limits_vlist is None:
         self.limits_vlist = dialog.batch.add(8, gl.GL_LINES,
             dialog.highlight_group,
             ('v2i', self._get_limits_vertices()),
             ('c4B', (192, 192, 192, 255) * 8))
コード例 #28
0
 def size(self, dialog):
     Control.size(self, dialog)
     self.width = self.texture.width * self.scale
     self.height = self.texture.height * self.scale
     if self.texture_vlist is None:
         self.texture_group = pyglet.graphics.TextureGroup(
             self.texture, dialog.fg_group)
         self.texture_vlist = dialog.batch.add(
             4, gl.GL_QUADS, self.texture_group,
             ('v2i', self._get_texture_vertices()),
             ('c4B', (255, 255, 255, 255) * 4),
             ('t3f', self.texture.tex_coords))
     if self.resizer_vlist is None:
         self.resizer_vlist = dialog.batch.add(
             40, gl.GL_LINES, dialog.highlight_group,
             ('v2i', self._get_resizer_vertices()),
             ('c4B', self.color * 40))
     if self.limits_vlist is None:
         self.limits_vlist = dialog.batch.add(
             8, gl.GL_LINES, dialog.highlight_group,
             ('v2i', self._get_limits_vertices()),
             ('c4B', (192, 192, 192, 255) * 8))
コード例 #29
0
ファイル: kwidgets.py プロジェクト: HieuLsw/blobjob.editor
    def size(self, dialog):
        if dialog is None:
            return
        Control.size(self, dialog)
        if self.is_selected:
            path = ['menuoption', 'selection']
        else:
            path = ['menuoption']
        if self.sprite is None:
            if self.is_disabled():
                opacity = 50
                color = dialog.theme[path]['disabled_color']
            else:
                opacity = 255
                color = dialog.theme[path]['text_color']
            self.sprite = pyglet.sprite.Sprite(
                self.image, batch=dialog.batch, group=dialog.fg_group)#, y=y, x=x, batch=self.tiles_batch)
            self.sprite.opacity = opacity
            if self.scale_size is not None:
                self.sprite.scale = self.scale_size / float(self.sprite.width)
            self.width = self.sprite.width + self.padding * 2
            self.height = self.sprite.height + self.padding * 2

        #~ if self.background is None:
            #~ if self.is_selected:
                #~ self.background = \
                    #~ dialog.theme[path]['highlight']['image'].generate(
                        #~ dialog.theme[path]['gui_color'],
                        #~ dialog.batch,
                        #~ dialog.bg_group)

        if self.highlight is None:
            if self.is_selected:
                self.highlight = \
                    dialog.theme[path]['palette']['image'].generate(
                        dialog.theme[path]['input']['gui_color'],
                        dialog.batch,
                        dialog.highlight_group)
コード例 #30
0
ファイル: color_selector.py プロジェクト: marky1991/Kytten
    def __init__(self, color, id=None, on_select=None):
	Control.__init__(self, id=id)
	self.alpha = color[3]
	self.tip_color = [0, 0, 0]
	self.on_select = on_select
	self.circle_vlist = None
	self.inner_circle_vlist = None
	self.inner_circle_bg_vlist = None
	self.colors_vlist = None
	self.triangle_vlist = None
	self.crosshair = None
	self.tri_angle = 0.0
	self.point = (0, 0)
	self.is_turning = False
	self.is_dragging = False
	self.center_x = 0
	self.center_y = 0
	self.pointer_i = 1.0
	self.pointer_j = 0.0
	self.vector_i = [0, 1]
	self.vector_j = [1, 0]
	self.point_a = [0, 0]

	self.set_color(color)
コード例 #31
0
    def __init__(self, color, id=None, on_select=None):
        Control.__init__(self, id=id)
        self.alpha = color[3]
        self.tip_color = [0, 0, 0]
        self.on_select = on_select
        self.circle_vlist = None
        self.inner_circle_vlist = None
        self.inner_circle_bg_vlist = None
        self.colors_vlist = None
        self.triangle_vlist = None
        self.crosshair = None
        self.tri_angle = 0.0
        self.point = (0, 0)
        self.is_turning = False
        self.is_dragging = False
        self.center_x = 0
        self.center_y = 0
        self.pointer_i = 1.0
        self.pointer_j = 0.0
        self.vector_i = [0, 1]
        self.vector_j = [1, 0]
        self.point_a = [0, 0]

        self.set_color(color)
コード例 #32
0
ファイル: resizable.py プロジェクト: Parashurama/Kytten
 def _get_controls(self):
     if self.width < 20 or self.height < 20:
         return [(self, self.x, self.x + self.width + 8,
                        self.y + self.height, self.y - 8)]
     else:
         return Control._get_controls(self)
コード例 #33
0
ファイル: color_selector.py プロジェクト: marky1991/Kytten
    def teardown(self):
	Control.teardown(self)
	if self.select_dialog is not None:
	    self.select_dialog.teardown()
	    self.select_dialog = None
コード例 #34
0
 def layout(self, x, y):
     Control.layout(self, x, y)
     self.texture_vlist.vertices = self._get_texture_vertices()
     self.resizer_vlist.vertices = self._get_resizer_vertices()
     self.limits_vlist.vertices = self._get_limits_vertices()
コード例 #35
0
 def layout(self, x, y):
     Control.layout(self, x, y)
     self.texture_vlist.vertices = self._get_texture_vertices()
     self.resizer_vlist.vertices = self._get_resizer_vertices()
     self.limits_vlist.vertices = self._get_limits_vertices()
コード例 #36
0
 def teardown(self):
     Control.teardown(self)
     if self.select_dialog is not None:
         self.select_dialog.teardown()
         self.select_dialog = None
コード例 #37
0
ファイル: resizable.py プロジェクト: SwineEngine/felyne
 def _get_controls(self):
     if self.width < 20 or self.height < 20:
         return [(self, self.x, self.x + self.width + 8,
                  self.y + self.height, self.y - 8)]
     else:
         return Control._get_controls(self)
コード例 #38
0
ファイル: kwidgets.py プロジェクト: HieuLsw/blobjob.editor
 def teardown(self):
     self.palette = None
     self.image = None
     Control.teardown(self)