コード例 #1
0
ファイル: patch_window.py プロジェクト: wrl/mfp
    def hud_set_prompt(self, prompt, default=''):
        if (prompt is None) and self.hud_prompt_input:
            htxt = self.hud_prompt_input.get_text()
            self.hud_prompt.hide()
            self.hud_prompt_input.hide()
            if htxt: 
                self.hud_write(htxt)
            return 

        if self.hud_prompt is None:
            for actor, anim, oldmsg in self.hud_history:
                actor.set_position(actor.get_x(), actor.get_y() - 20)

            self.hud_prompt = Clutter.Text()
            self.hud_prompt_input = Clutter.Text()
            self.stage.add_actor(self.hud_prompt)
            self.hud_prompt.set_position(10, self.stage.get_height() - 25)
            self.hud_prompt.set_property("opacity", 255)
            self.stage.add_actor(self.hud_prompt_input)
            self.hud_prompt.set_position(10, self.stage.get_height() - 25)
            self.hud_prompt.set_property("opacity", 255)
        else:
            self.hud_prompt.show()
            self.hud_prompt_input.show()
        self.hud_prompt.set_markup(prompt)
        self.hud_prompt_input.set_text(default)
        self.hud_prompt_input.set_position(15 + self.hud_prompt.get_width(), 
                                           self.stage.get_height() - 25)
コード例 #2
0
ファイル: pisak_text.py プロジェクト: karolaug/pisak
    def __init__(self):
        super().__init__()

        self.set_title("TextApp")
        self.set_size(800, 600)

        self.text = TestText()
        self.cursor = Cursor_Canvas()
        layout = Clutter.BinLayout()
        self.container = Clutter.Actor()
        self.container.set_layout_manager(layout)
        self.container.add_child(self.text)
        self.container.add_child(self.cursor)

        self.pos = Clutter.Text()
        self.pos2 = Clutter.Text()
        self.pos.set_background_color(Clutter.Color.new(0, 0, 255, 255))

        cursor_pos = self.text.get_cursor_position()
        coords = self.text.position_to_coords(cursor_pos)

        self.pos.set_text(''.join(["Kursor na pozycji: ", str(cursor_pos)]))
        self.pos2.set_text(''.join(["Kursor na koordynatach: ", str(coords)]))

        self.layout = Clutter.BoxLayout()
        self.layout.set_orientation(Clutter.Orientation.VERTICAL)
        self.set_layout_manager(self.layout)
        self.add_child(self.pos)
        self.add_child(self.container)
        self.add_child(self.pos2)

        self.text.connect("cursor_changed", lambda _1: self.onKeyPress(_1))
コード例 #3
0
    def send(self, comment):
        if not isinstance(comment, CoreComment):
            raise Exception('Must pass a CoreComment in order to send')
        if comment.mode != 1:
            return
            # Only support scrolling for now
        text = Clutter.Text()
        text.set_color(Clutter.Color.from_string(comment.color)[1])
        text.set_text(comment.text)
        text.set_font_name(comment.get_font_string())

        # Add a few extra text objects
        shadowBR = Clutter.Text()
        shadowBR.set_color(Clutter.Color.from_string("#000000")[1])
        shadowBR.set_text(comment.text)
        shadowBR.set_font_name(comment.get_font_string())

        shadowTL = Clutter.Text()
        shadowTL.set_color(Clutter.Color.from_string("#000000")[1])
        shadowTL.set_text(comment.text)
        shadowTL.set_font_name(comment.get_font_string())

        shadowBL = Clutter.Text()
        shadowBL.set_color(Clutter.Color.from_string("#000000")[1])
        shadowBL.set_text(comment.text)
        shadowBL.set_font_name(comment.get_font_string())

        shadowTR = Clutter.Text()
        shadowTR.set_color(Clutter.Color.from_string("#000000")[1])
        shadowTR.set_text(comment.text)
        shadowTR.set_font_name(comment.get_font_string())

        comment._drawObject = text
        comment._shadowBR = shadowBR
        comment._shadowTL = shadowTL
        comment._shadowBL = shadowBL
        comment._shadowTR = shadowTR

        if comment._width == None or comment._height == None:
            comment._width = comment._drawObject.get_width() + 1
            comment._height = comment._drawObject.get_height() + 1
        comment._x = float(self.width + comment._width)
        x = comment._x
        # set position
        comment._drawObject.set_position(x, comment._y)
        comment._shadowBR.set_position(x + 1, comment._y + 1)
        comment._shadowTL.set_position(x - 1, comment._y - 1)
        comment._shadowBL.set_position(x - 1, comment._y + 1)
        comment._shadowTR.set_position(x + 1, comment._y - 1)
        # add text and shadow
        self.add_child(shadowBR)
        self.add_child(shadowTL)
        self.add_child(shadowBL)
        self.add_child(shadowTR)
        self.add_child(text)

        self.allocator.add(comment)

        self.runline.append(comment)
コード例 #4
0
ファイル: patch_window.py プロジェクト: wrl/mfp
    def hud_write(self, msg, disp_time=3.0):
        def anim_complete(anim):
            new_history = []
            for h_actor, h_anim, h_msg in self.hud_history:
                if anim != h_anim:
                    new_history.append((h_actor, h_anim, h_msg))
                else:
                    h_actor.destroy()
            self.hud_history = new_history

        if not len(self.hud_history) or self.hud_history[0][2] != msg:
            for actor, anim, oldmsg in self.hud_history:
                actor.set_position(actor.get_x(), actor.get_y() - 20)
        else:
            self.hud_history[0][1].completed()

        for actor, anim, oldmsg in self.hud_history[3:]:
            anim.completed()

        actor = Clutter.Text()
        self.stage.add_actor(actor)
        if self.hud_prompt is None: 
            actor.set_position(10, self.stage.get_height() - 25)
        else: 
            actor.set_position(10, self.stage.get_height() - 45)
        actor.set_property("opacity", 255)
        actor.set_markup(msg)

        animation = actor.animatev(Clutter.AnimationMode.EASE_IN_CUBIC,
                                   disp_time * 1000.0, ['opacity'], [0])
        self.hud_history[0:0] = [(actor, animation, msg)]
        animation.connect_after("completed", anim_complete)
コード例 #5
0
    def create_display(self, width, height):
        self.rect = clutter.Rectangle()
        self.label = clutter.Text()

        # group
        clutter.Group.set_size(self, width, height)

        # rectangle box
        self.rect.set_border_width(2)
        self.rect.set_border_color(self.get_color('stroke-color'))
        self.rect.set_position(0, 0)
        self.rect.set_size(width, height)
        self.rect.set_depth(-1)
        self.rect.set_reactive(False)

        # label
        self.label.set_position(self.label_off_x, self.label_off_y)
        self.label.set_color(self.get_color('text-color'))
        self.label.set_font_name(self.get_fontspec())
        self.label.connect('text-changed', self.label_changed_cb)
        self.label.set_reactive(False)

        # chart created later
        self.xyplot = None

        self.add_actor(self.label)
        self.add_actor(self.rect)
        self.set_reactive(True)
コード例 #6
0
ファイル: button_element.py プロジェクト: swipswaps/mfp-1
    def __init__(self, window, x, y):
        PatchElement.__init__(self, window, x, y)

        self.indicator = False

        # create elements
        self.texture = Clutter.Canvas.new()
        self.texture.set_size(20, 20)
        self.set_content(self.texture)
        self.texture.connect("draw", self.draw_cb)

        self.label = Clutter.Text()
        self.label.set_color(self.get_color('text-color'))
        self.label.set_font_name(self.get_fontspec())
        self.label.connect('text-changed', self.label_changed_cb)
        self.label.set_reactive(False)
        self.label.set_use_markup(True)
        self.label_text = ''

        self.set_reactive(True)
        self.add_actor(self.label)

        self.set_size(20, 20)
        self.move(x, y)

        self.param_list.append('label_text')
        # request update when value changes
        self.update_required = True
コード例 #7
0
ファイル: via_element.py プロジェクト: wrl/mfp
    def __init__(self, window, x, y):
        PatchElement.__init__(self, window, x, y)

        self.connections_out = []
        self.connections_in = []

        # create elements
        txs = self.VIA_SIZE + self.VIA_FUDGE
        self.texture = Clutter.CairoTexture.new(txs, txs)
        self.texture.set_size(txs, txs)
        self.texture.set_surface_size(txs, txs)

        self.texture.connect("draw", self.draw_cb)
        self.texture.set_position(0, self.TEXTURE_Y)
        self.label = Clutter.Text()
        self.label.set_position(0, self.LABEL_Y)
        self.set_reactive(True)
        self.add_actor(self.texture)
        self.add_actor(self.label)

        # configure label
        self.label.set_color(window.color_unselected)
        self.label.connect('text-changed', self.text_changed_cb)

        self.move(x, y)
        self.set_size(
            self.VIA_SIZE + 2 * self.VIA_FUDGE, self.VIA_SIZE +
            self.LABEL_HEIGHT + self.LABEL_FUDGE + 2 * self.VIA_FUDGE)

        self.recenter_label()
        self.texture.invalidate()
コード例 #8
0
ファイル: message_element.py プロジェクト: swipswaps/mfp-1
    def __init__(self, window, x, y):
        PatchElement.__init__(self, window, x, y)

        self.message_text = None
        self.clickstate = False

        # create elements
        self.texture = Clutter.Canvas.new()
        self.set_content(self.texture)
        self.texture.connect("draw", self.draw_cb)
        self.texture.set_size(35, 25)

        self.label = Clutter.Text()

        self.set_reactive(True)
        self.add_actor(self.label)

        self.set_size(35, 25)
        self.obj_state = self.OBJ_HALFCREATED
        self.texture.invalidate()

        # configure label
        self.label.set_position(4, 1)
        self.label.set_color(self.get_color('text-color'))
        self.label.set_font_name(self.get_fontspec())
        self.label.connect('text-changed', self.text_changed_cb)

        self.move(x, y)

        # request update when value changes
        self.update_required = True
コード例 #9
0
def create_label(text,
                 posX,
                 posY,
                 sizeX=IGNORE,
                 sizeY=IGNORE,
                 iD="label",
                 color=0xf0f0f0ff,
                 backgroundColor=0x404040ff,
                 font="Mono 32"):
    label = Clutter.Text()
    label.set_id(iD)
    label.set_text(text)
    label.set_background_color(Clutter.color_from_pixel(backgroundColor))
    label.set_color(Clutter.color_from_pixel(color))
    label.set_font_name(font)
    '''
    x = label.get_layout()
    x.set_alignment(Pango.Alignment.CENTER)
    print(x.get_alignment(), x.get_text())
    x.set_spacing(50)
    x.set_justify(True)
    label.set_content_gravity(Clutter.Gravity.CENTER)
    label.set_line_alignment(Pango.Alignment.CENTER)
    label.set_justify(True)
    label.set_anchor_point(20,20)
    '''
    if (posX != IGNORE) and (posY != IGNORE):
        label.set_position(posX, posY)
    if (sizeX != IGNORE) and (sizeY != IGNORE):
        label.set_size(sizeX, sizeY)
    return label
コード例 #10
0
ファイル: user.py プロジェクト: rmatam/vivo
    def __init__(self, text, font="sans 16"):
        super().__init__(Clutter.Text())

        self._font = Pango.FontDescription.from_string(font)

        self.actor.set_font_description(self._font)
        self.actor.set_text(text)
コード例 #11
0
ファイル: patch_window.py プロジェクト: wrl/mfp
    def hud_banner(self, msg, disp_time=3.0):
        def anim_complete(anim, actor):
            actor.destroy()

        if self.hud_banner_anim is not None: 
            self.hud_banner_anim.completed()

        self.hud_banner_text = Clutter.Group()
        txt = Clutter.Text()
        bg = Clutter.Rectangle()
        self.hud_banner_text.add_actor(bg)
        self.hud_banner_text.add_actor(txt)

        bg.set_color(ColorDB().find(255, 255, 255, 200))

        self.stage.add_actor(self.hud_banner_text)
        self.hud_banner_text.set_position(12, 4)
        self.hud_banner_text.set_property("opacity", 255)
        txt.set_markup(msg)
        bg.set_size(self.hud_banner_text.get_width(), self.hud_banner_text.get_height())

        anim = self.hud_banner_text.animatev(Clutter.AnimationMode.EASE_IN_CUBIC,
                                             disp_time * 1000.0, ['opacity'], [0])
        anim.connect_after("completed", anim_complete, self.hud_banner_text)
        self.hud_banner_anim = anim
コード例 #12
0
ファイル: gui_clutter.py プロジェクト: rcrowther/Gravel
 def rectangle(self, x, y):
     r = Clutter.Rectangle()
     r.set_color(Clutter.Color.new(0, 0, 255, 255))
     r.set_size(200, 40)
     r.set_position(x, y)
     r.set_reactive(True)
     t = Clutter.Text()
     t.set_text('wow')
     t.set_position(x, y)
     return t
コード例 #13
0
 def create_line(i):
     line = Clutter.Text()
     # We must never see this color:
     line.set_color(Clutter.Color.new(255, 0, 255, 255))
     line.set_font_name(self.font)
     line.set_width(self.char_width * self.shell.cols)
     line.set_height(self.char_height)
     line.set_y(i * self.char_height)
     self.linesGroup.add_actor(line)
     return line
コード例 #14
0
def create_label(color, markup):
    text = Clutter.Text()

    text.set_color(Clutter.Color.from_string(color))
    text.set_markup(markup)
    text.set_editable(False)
    text.set_selectable(False)
    text.set_single_line_mode(True)
    text.set_ellipsize(Pango.EllipsizeMode.END)

    return text
コード例 #15
0
ファイル: patch_window.py プロジェクト: wrl/mfp
 def show_autoplace_marker(self, x, y):
     if self.autoplace_marker is None:
         self.autoplace_marker = Clutter.Text()
         self.autoplace_marker.set_text("+")
         self.autoplace_layer = self.selected_layer
         self.autoplace_layer.group.add_actor(self.autoplace_marker)
     elif self.autoplace_layer != self.selected_layer:
         self.autoplace_layer.group.remove_actor(self.autoplace_marker)
         self.autoplace_layer = self.selected_layer
         self.autoplace_layer.group.add_actor(self.autoplace_marker)
     self.autoplace_marker.set_position(x, y)
     self.autoplace_marker.set_depth(-10)
     self.autoplace_marker.show()
コード例 #16
0
ファイル: clutterscope.py プロジェクト: lpsinger/clutterscope
	def __init__(self, trace):
		super(TraceLabel, self).__init__()
		self.trace = trace
		self.set_size(144, 48)
		self.name_label = Clutter.Text()
		self.name_label.set_color(color_from_string('black'))
		self.name_label.set_text('foo bar')
		self.add_actor(self.name_label)
		self.name_label.set_position(6, 6)
		self.name_label.set_size(*self.get_size())
		self.connect('paint', self.paint)
		self.trace.connect_after('notify::color', self.color_changed)
		self.trace.connect_after('notify::name', self.name_changed)
コード例 #17
0
 def add_wifi_tab(self, ap):
     actor = Clutter.Text()
     actor.set_selectable(False)
     actor.set_font_description(self.ap_font)
     actor.set_color(self.ap_color)
     actor.set_width(self.ap_width)
     actor.set_margin_left(self.ap_margin_left)
     self.set_text(actor, ap)
     tap = Clutter.TapAction()
     actor.add_action(tap)
     actor.ap = ap
     tap.connect("tap", self.ap_tap)
     actor.set_reactive(True)
     self.tabs_by_path[ap["object_path"]] = actor
     return actor
コード例 #18
0
ファイル: gui_clutter.py プロジェクト: rcrowther/Gravel
def label(stage, x, y, width, text):
    r = Clutter.Rectangle()
    r.set_color(Clutter.Color.new(0, 255, 255, 255))
    r.set_size(width, 32)
    r.set_position(x, y)
    r.set_reactive(True)
    stage.add_actor(r)
    t = Clutter.Text()
    t.set_text(text)
    #t.set_markup('<span foreground="blue" background="red">' + text + '</span>')
    t.set_max_length(width - 8)
    t.set_position(x + 8, y + 6)
    #t.set_ellipsize = Pango.PangoEllipsizeMode.PANGO_ELLIPSIZE_END
    t.set_ellipsize(Pango.EllipsizeMode.END)
    t.set_reactive(True)
    stage.add_actor(t)
コード例 #19
0
    def __init__(self, window, x, y):
        PatchElement.__init__(self, window, x, y)
        self.value = ''
        self.param_list.append('value')

        # configure label
        self.label = Clutter.Text()
        self.label.set_color(window.color_unselected)
        self.add_actor(self.label)

        self.update_required = True
        self.set_size(12, 12)
        self.move(x, y)
        self.set_reactive(True)
        self.label_changed_cb = self.label.connect('text-changed',
                                                   self.text_changed_cb)
コード例 #20
0
    def on_motion_event(self, stage, event):

        self.lastMouseX = event.x
        self.lastMouseY = event.y

        update = False

        if self.do_scroll:
            if self.pantimeout:
                GLib.source_remove(self.pantimeout)
                self.pantimeout = None
            if self.pan_camera(event.x, event.y):
                self.pantimeout = GLib.timeout_add(PAN_KEEP_INTERVAL,
                                                   self.pan_camera, event.x,
                                                   event.y, True)
            update = True

        if self.active_entity:  # event.modifier_state == Clutter.BUTTON1_MASK and
            entity = self.active_entity
            wx, wy = self.camera.translate_from_view(event.x, event.y)
            self.space.set_pos(entity, (wx - self.dispx, wy - self.dispy))
            update = True

        if update: self.update()

        if self.show_tooltip:
            try:
                actor = stage.get_actor_at_pos(event.x, event.y)
                ent = actor.entity
                title = ent.get_title()
                if self.label:
                    self.stage.remove_actor(self.label)
                    self.label = None
                self.label = Clutter.Text()
                self.label.set_text(title)
                self.label.set_color(Clutter.color_parse("white"))
                self.label.set_position(0, 0)
                self.label.show()
                self.stage.add_actor(self.label)
                self.stage.show_all()
            except Exception:
                if self.label:
                    self.stage.remove_actor(self.label)
                    self.label = None
コード例 #21
0
def create_entry(color, passchar, maxlength):
    text = Clutter.Text()

    text.set_color(Clutter.Color.from_string(color))
    text.set_reactive(True)
    text.set_editable(True)
    text.set_selectable(True)
    text.set_activatable(True)
    text.set_password_char(passchar)
    text.set_cursor_color(Clutter.Color.from_string("#fff"))
    text.set_selected_text_color(Clutter.Color.from_string("#acf"))
    text.set_single_line_mode(True)
    text.set_max_length(maxlength)

    text.connect("paint", on_entry_paint)
    text.connect("activate", on_entry_activate)
    # text.connect("captured-event", on_captured_event)

    return text
コード例 #22
0
    def __init__(self, window, x, y):
        PatchElement.__init__(self, window, x, y)

        self.value = 0
        self.digits = 1
        self.min_value = None
        self.max_value = None
        self.scientific = False
        self.format_str = "%.1f"
        self.connections_out = []
        self.connections_in = []
        self.update_required = True

        self.param_list.extend(
            ['digits', 'min_value', 'max_value', 'scientific'])

        self.obj_state = self.OBJ_HALFCREATED

        # create elements
        self.texture = Clutter.Canvas.new()
        self.texture.connect("draw", self.draw_cb)
        self.set_content(self.texture)

        self.label = Clutter.Text()

        self.set_reactive(True)
        self.add_actor(self.label)

        # configure label
        self.label.set_position(4, 1)
        self.label.set_font_name(self.get_fontspec())
        self.label.set_color(self.get_color('text-color'))
        self.label.connect('text-changed', self.text_changed_cb)
        self.label.set_text(self.format_value(self.value))

        # click handler
        # self.actor.connect('button-press-event', self.button_press_cb)

        self.move(x, y)
        self.set_size(35, 25)
        self.texture.invalidate()
コード例 #23
0
    def __init__(self):
        Clutter.Actor.__init__(self)

        self.__text = None
        self.__click = Clutter.ClickAction()
        self.__child = Clutter.Box()
        self.__label = Clutter.Text()

        self.__label.set_line_alignment(Pango.Alignment.CENTER)
        self.__label.set_ellipsize(Pango.EllipsizeMode.END)

        self.__click.connect("clicked", self.clicked)

        self.__child.set_layout_manager(
            Clutter.BinLayout.new(Clutter.BinAlignment.CENTER,
                                  Clutter.BinAlignment.CENTER))
        self.__child.add_actor(self.__label)
        self.__child.set_parent(self)

        self.set_reactive(True)
        self.add_action(self.__click)
コード例 #24
0
ファイル: gui_clutter.py プロジェクト: rcrowther/Gravel
def label2(stage, x, y, width, text):
    bl = Clutter.BinLayout.new(Clutter.BinAlignment.CENTER,
                               Clutter.BinAlignment.CENTER)
    # Aint happening?
    #b.set_position(x, y)
    #stage.add_actor(b)

    #container = Clutter.Actor.new()
    #container.set_layout_manager(bl)
    r = Clutter.Rectangle()
    r.set_layout_manager(bl)
    r.set_color(Clutter.Color.new(180, 100, 0, 255))
    r.set_size(width, 32)
    r.set_reactive(True)
    #stage.add_child(r)

    #bl.add_child(r)
    #label(p, x, y, width, headText)
    #inStage = r.get_stage()
    t = Clutter.Text()
    t.set_text(text)
    t.set_x_expand(True)
    t.set_x_align(Clutter.ActorAlign.CENTER)
    t.set_y_expand(True)
    t.set_y_align(Clutter.ActorAlign.CENTER)
    t.set_background_color(Clutter.Color.new(255, 255, 200, 255))
    t.set_position(0, 0)
    #t.set_markup('<span foreground="blue" background="red">' + text + '</span>')
    #t.set_max_length(width - 8)
    #t.set_ellipsize = Pango.PangoEllipsizeMode.PANGO_ELLIPSIZE_END
    #t.set_ellipsize = Pango.PangoEllipsizeMode.PANGO_ELLIPSIZE_END
    #s = r.get_stage()
    #r.add_child(t)
    #r.insert_child_above(t)
    #r.add_child(t)
    #t.margin_top = 5
    #t.margin_left = 15
    stage.add_child(t)
コード例 #25
0
ファイル: text_element.py プロジェクト: swipswaps/mfp-1
    def __init__(self, window, x, y):
        PatchElement.__init__(self, window, x, y)
        self.value = ''
        self.clickchange = False
        self.default = ''

        self.param_list.extend(['value', 'clickchange', 'default'])

        self.texture = Clutter.Canvas.new()
        self.texture.connect("draw", self.draw_cb)
        self.set_content(self.texture)

        self.label = Clutter.Text()
        self.label.set_color(self.get_color('text-color'))
        self.label.set_font_name(self.get_fontspec())
        self.label.set_position(3, 3)
        self.add_actor(self.label)

        self.update_required = True
        self.move(x, y)
        self.set_size(12, 12)
        self.set_reactive(True)
        self.label_changed_cb = self.label.connect('text-changed', self.text_changed_cb)
コード例 #26
0
    def __init__(self):
        self.black = Clutter.Box.new(Clutter.BinLayout())
        self.black.set_color(Clutter.Color.new(0, 0, 0, 96))
        self.label = Clutter.Text()
        self.label.set_color(Clutter.Color.new(255, 255, 255, 255))
        self.xhair = Clutter.Rectangle.new_with_color(
            Clutter.Color.new(0, 0, 0, 64))
        for signal in ['latitude', 'longitude']:
            map_view.connect('notify::' + signal, display,
                             get_obj('maps_link'), self.label)
        map_view.connect(
            'notify::width',
            lambda view, param, black: black.set_size(view.get_width(), 30),
            self.black)

        scale = Champlain.Scale.new()
        scale.connect_view(map_view)
        map_view.bin_layout_add(scale, Clutter.BinAlignment.START,
                                Clutter.BinAlignment.END)
        map_view.bin_layout_add(self.black, Clutter.BinAlignment.START,
                                Clutter.BinAlignment.START)
        self.black.get_layout_manager().add(self.label,
                                            Clutter.BinAlignment.CENTER,
                                            Clutter.BinAlignment.CENTER)
コード例 #27
0
    for i in range(N_RECTS):
        color = Clutter.Color.from_hls(360 / N_RECTS * i, 0.5, 0.8)
        color.alpha = 128 + 128 / N_RECTS * i

        rect = Clutter.Actor()
        rect.props.background_color = color
        rect.props.opacity = 0
        rect.props.reactive = True
        rect.set_size(RECT_SIZE, RECT_SIZE)
        rect.set_pivot_point(0.5, 0.5)
        rect.set_easing_duration(250)
        rect.set_easing_mode(Clutter.AnimationMode.EASE_OUT_CUBIC)
        box.add_child(rect)

        transition = Clutter.PropertyTransition(property_name='opacity', duration=250, delay=i*50)
        transition.set_from(0)
        transition.set_to(color.alpha)
        rect.add_transition('fadeIn', transition)

        rect.connect('enter-event', on_enter)
        rect.connect('leave-event', on_leave)

    label = Clutter.Text(text="Press t → Toggle layout\nPress q → Quit")
    label.add_constraint(Clutter.AlignConstraint(source=stage, align_axis=Clutter.AlignAxis.X_AXIS, factor=0.50))
    label.add_constraint(Clutter.AlignConstraint(source=stage, align_axis=Clutter.AlignAxis.Y_AXIS, factor=0.95))
    stage.add_child(label)

    stage.connect('key-press-event', on_key_press, layout)

    Clutter.main()
コード例 #28
0
ファイル: xkcd.py プロジェクト: xaiki/xkcd-1110
# it'd be nice to have a better force model, but for now:
FORCE = 50
# for some reason Clutter is lying to us… well…
ACTOR_SIZE = 2048

smap = {'x': {-1: 'e', 1: 'w'}, 'y': {1: 'n', -1: 's'}}

# if you set this, all magic goes away
DEBUG = 0

if DEBUG:
    sky_color = Clutter.Color.new(0, 255, 0, 0)
    earth_color = Clutter.Color.new(255, 0, 0, 0)

    debug_text = Clutter.Text()
    debug_text.set_text("hello")
    debug_text.set_color(Clutter.Color.new(255, 0, 0, 200))
else:
    sky_color = Clutter.Color.new(255, 255, 255, 0)
    earth_color = Clutter.Color.new(0, 0, 0, 0)


class XaMap:
    def __init__(self, tex=None, stage=None):
        self.current_tile = [0, 0]
        self.cache_dir = os.path.abspath(".cache")
        self.base_url = "http://imgs.xkcd.com/clickdrag/"

        try:
            os.mkdir(self.cache_dir)
コード例 #29
0

def keyPress(self, event, _actor):
    _actor.set_position(200, 100)
    _actor.animatev(Clutter.AnimationMode.EASE_OUT_BOUNCE, 1500, ["x"], [20])


if __name__ == '__main__':
    Clutter.init(sys.argv)

    # Create Stage
    _stage = Clutter.Stage()
    _stage.set_title("Basic Usage")
    _stage.set_size(400, 200)

    # Create Actor
    _red = Clutter.Color().new(255, 0, 0, 255)  # R,G,B,alpha
    _actor = Clutter.Text().new_full("Mono 10", "Hello World!", _red)

    _actor.set_position(100, 100)
    _actor_anim = _actor.animatev(Clutter.AnimationMode.EASE_OUT_BOUNCE, 1500,
                                  ["x"], [20])

    # Add Actor to the Stage
    _stage.add_actor(_actor)
    _stage.connect("destroy", lambda w: Clutter.main_quit())
    _stage.connect('key-press-event', keyPress, _actor)

    _stage.show_all()

    Clutter.main()
コード例 #30
0
                                stage_height / 3 * 2 - text_height / 2)


Clutter.init(None)

stage = Clutter.Stage()
stage.set_minimum_size(600, 400)
stage.set_user_resizable(True)
stage.set_title("Event Timer")

stage.set_color(black)
stage.connect_after("key-press-event", parseKeyPress)
stage.connect("allocation-changed", redraw)
stage.connect("destroy", finalize)

time_elapsed = Clutter.Text()
time_elapsed.set_color(white)

time_remaining = Clutter.Text()
time_remaining.set_color(white)

stage.add_actor(time_elapsed)
stage.add_actor(time_remaining)

redraw()
stage.show_all()

t = Clutter.Timeline()
t.set_duration(250)
t.set_loop(True)
t.connect('completed', update_display)