def do_leave_event(self, actor, event): if self._is_pressed == True: self._is_pressed = False clutter.ungrab_pointer() return True else: return False
def _on_button_release_event(self, actor, event): """button-release-event handler.""" clutter.ungrab_pointer() if self.handler_is_connected(self._motion_handler): self.disconnect_by_func(self._on_motion_event) self._motion_buffer.compute_from_last_motion_event(event) if not self.active: self.active = True return if self._event_mode == self.MODE_MOTION: speed = self._motion_buffer.speed_y_from_last_motion_event # Calculation of the new target according to vertical speed. target = self.offset - speed * 200 if target < 0: target = 0 elif target > self._offset_max: target = self._offset_max self._update_motion_behaviour(target) self._motion_timeline.start() return False
def do_leave_event (self, actor, event): if self._is_pressed == True: self._is_pressed = False clutter.ungrab_pointer() return True else: return False
def _on_button_release_event(self, actor, event): """button-release-event handler""" items_len = len(self._items) clutter.ungrab_pointer() if self.handler_is_connected(self._motion_handler): self.disconnect_by_func(self._on_motion_event) self._motion_buffer.compute_from_last_motion_event(event) if not self.active: self.active = True return y = event.y - self.get_y() if self._event_mode == self.MODE_SELECTION: # if we are in MODE_SELECTION it means that we want to select # the menu item bellow the pointer for index, item in enumerate(self._items): item_y = item.get_y() item_h = item.get_height() if (y >= item_y) and (y <= (item_y + item_h)): delta1 = index - self._selected_index delta2 = index - self._selected_index + items_len delta3 = index - self._selected_index - items_len delta = 99999 for i in [delta1, delta2, delta3]: if math.fabs(i) < math.fabs(delta): delta = i self.scroll_by(delta) # if delta = 0 it means we've clicked on the selected item if delta == 0: self.emit('selected') elif self._event_mode == self.MODE_MOTION: speed = self._motion_buffer.speed_y_from_last_motion_event target = self._selected_index - \ self._motion_buffer.dy_from_start / \ self._items[0].behaviour.path_length * items_len new_index = int(target - 5 * speed) self._selected_index = target self._set_selected_index(new_index, 1000) else: # If we have stopped the pending animation. Now we have to do # a small other one to select the closest menu-item current_index = self._animation_start_index + \ (self._animation_end_index - self._animation_start_index) * \ self._animation_progression self._selected_index = current_index target_index = int(current_index) self._set_selected_index(target_index, 1000) return False
def do_button_release_event(self, actor, event): if event.button == 1 and self._is_pressed == True: self._is_pressed = False clutter.ungrab_pointer() self.emit('clicked') return True else: return False
def do_button_release_event (self, actor, event): if event.button == 1 and self._is_pressed == True: self._is_pressed = False clutter.ungrab_pointer() self.emit('clicked') return True else: return False
def _on_button_release_event(self, actor, event): """button-release-event handler.""" clutter.ungrab_pointer() if self._event_rect.handler_is_connected(self._motion_handler): self._event_rect.disconnect_by_func(self._on_motion_event) if self._event_mode == self.MODE_SELECT: self.emit('selected') self._event_mode = self.MODE_NONE return True
def _on_button_release_event(self, actor, event): '''button-release-event handler.''' clutter.ungrab_pointer() if self.handler_is_connected(self._motion_handler): self.disconnect_by_func(self._on_motion_event) self._progress_bar_moving = False self.media_player.set_media_position(self.progress) if self.auto_display and self.visible: self._hide_timeout_key = gobject.timeout_add( 3000, self._hide_progress_bar) return False
def _on_button_release_event(self, actor, event): '''button-release-event handler.''' clutter.ungrab_pointer() if self.handler_is_connected(self._motion_handler): self.disconnect_by_func(self._on_motion_event) self._progress_bar_moving = False self.media_player.set_media_position(self.progress) if self.auto_display and self.visible: self._hide_timeout_key = gobject.timeout_add(3000, self._hide_progress_bar) return False
def _on_button_release_event(self, actor, event): """`button-press` event handler.""" if not self.is_reactive_allowed: return clutter.ungrab_pointer() if self.video_texture.handler_is_connected(self._motion_handler): self.video_texture.disconnect_by_func(self._on_motion_event) if self._event_mode == self.MODE_PLAYPAUSE: if self.is_playing: self.pause() else: self.play() self._event_mode = self.MODE_NONE
def event_central(self, obj, event): ## This routine runs many times. Once for every kind ## of event the actor is getting. ## filter out only the mouse events. if event.type not in Mouserizer.__clutter_mouse_event_types: return Mouserizer.YES_CONTINUE_EMITTING ## filter out buttons we are NOT going to deal with if hasattr(event, "button"): b = 1 << (event.button - 1) #print bin(b)," vs ", bin(self.buttons) if not(b & self.buttons !=0 ): return Mouserizer.NO_STOP_EMITTING # is this wise? ## event_central ONLY runs when cursor is ## over the actor -- thus ENTER is implied. ## Make a note of PRESS/RELEASE if event.type==clutter.BUTTON_PRESS: self.ui_state = self.ui_state | Mouserizer.__FLAG_PRESSING # set bit if event.type==clutter.BUTTON_RELEASE: self.ui_state = self.ui_state | Mouserizer.__FLAG_RELEASING # set bit ## Make a note of MOTION ## First, clear it. self.ui_state = self.ui_state & ~Mouserizer.__FLAG_MOVING # clear bit if event.type==clutter.MOTION: self.ui_state = self.ui_state | Mouserizer.__FLAG_MOVING # set bit ## Now, what kinds of stuff is this actor interested in? ## DO META EVENTS - "More than" events. e.g. 'Click' is press, then release. if (self.ui & Mouserizer.CLICKABLE) != 0: # test bit if self.ui_state == Mouserizer.__PATTERN_CLICK: if event.click_count > 1: self.emit('double-click', event) else: ## A single click is fired just before double-click...! self.emit('single-click', event) if (self.ui & Mouserizer.DRAGABLE) !=0: # test bit if self.ui_state == Mouserizer.__PATTERN_DRAG_START: self.ui_state=self.ui_state | Mouserizer.__FLAG_DRAGGING # set bit self.draglet = DragEnvelope( self, event ) ## Phew! I thought I was fcuked! In order to get dragging to ## work when the pointer is NOT ON the Actor, I had to revert ## to grab_pointer* -- and that needs connecting. I connected the ## two appropriate event to *this* same function! And it works :D ## ## * grab_pointer causes the entire window (stage?) to focus on the ## Actor passed -- so I get all motion and release events even where ## the Actor aint. ## ! Not sure what kind of recursive issues this may throw at me :( clutter.grab_pointer( self ) self.connect('motion-event', self.event_central) self.connect('button-release-event', self.event_central) self.emit('drag-start', self.draglet ) elif self.ui_state == Mouserizer.__PATTERN_DRAG: self.draglet.calcPos( event ) # A 'draglet' is a little wrapper containing the event and some tricks. ## Who is under me? Only do if PICK_UNDER flag is set. if self.__PICK_UNDER: self.hide() a = self.stage.get_actor_at_pos(clutter.PICK_REACTIVE, int(event.x),int(event.y)) self.show() ## a is! ## Only emit if a has a drag-over signal: if gobject.signal_lookup('drag-over', a ): print a, " under me" a.emit('drag-over', self.draglet) self.emit('dragging', self.draglet) elif self.ui_state == Mouserizer.__PATTERN_DROP: self.draglet.calcPos( event ) self.ui_state= self.ui_state & ~Mouserizer.__FLAG_DRAGGING # clear bit clutter.ungrab_pointer() self.emit("drop", self.draglet) del(self.draglet) ## META EVENTS are done. ## Flip opposites off. if event.type==clutter.BUTTON_PRESS: self.ui_state = self.ui_state & ~Mouserizer.__FLAG_RELEASING # clear bit if event.type==clutter.BUTTON_RELEASE: self.ui_state = self.ui_state & ~Mouserizer.__FLAG_PRESSING # clear bit self.ui_state = self.ui_state & ~Mouserizer.__FLAG_RELEASING # clear bit self.ui_state = self.ui_state & ~Mouserizer.__FLAG_DRAGGING # clear bit return Mouserizer.YES_CONTINUE_EMITTING
def _on_button_release_event(self, actor, event): """button-release-event handler""" items_len = len(self._items) clutter.ungrab_pointer() if self.handler_is_connected(self._motion_handler): self.disconnect_by_func(self._on_motion_event) self._motion_buffer.compute_from_last_motion_event(event) if not self.active: self.active = True return y = event.y - self.get_y() if self._event_mode == self.MODE_SELECTION: # if we are in MODE_SELECTION it means that we want to select # the menu item bellow the pointer for index, item in enumerate(self._items): item_y = item.get_y() item_h = item.get_height() if (y >= item_y) and (y <= (item_y + item_h)): delta1 = index - self._selected_index delta2 = index - self._selected_index + items_len delta3 = index - self._selected_index - items_len delta = 99999 for i in [delta1, delta2, delta3]: if math.fabs(i) < math.fabs(delta): delta = i self.scroll_by(delta) # if delta = 0 it means we've clicked on the selected item if delta == 0: self.emit("selected") elif self._event_mode == self.MODE_MOTION: speed = self._motion_buffer.speed_y_from_last_motion_event target = ( self._selected_index - self._motion_buffer.dy_from_start / self._items[0].behaviour.path_length * items_len ) new_index = int(target - 5 * speed) self._selected_index = target self._set_selected_index(new_index, 1000) else: # If we have stopped the pending animation. Now we have to do # a small other one to select the closest menu-item current_index = ( self._animation_start_index + (self._animation_end_index - self._animation_start_index) * self._animation_progression ) self._selected_index = current_index target_index = int(current_index) self._set_selected_index(target_index, 1000) return False