static gboolean avctp_passthrough_rsp(struct avctp *session, uint8_t code, uint8_t subunit, uint8_t *operands, size_t operand_count, void *user_data) { uint8_t *params; size_t params_len; DBG("code 0x%02x operand_count %zd", code, operand_count); if (code != AVC_CTYPE_ACCEPTED) return FALSE; if (operands[0] == AVC_VENDOR_UNIQUE) { params = &operands[2]; params_len = operand_count - 2; } else { params = NULL; params_len = 0; } if (set_pressed(session, operands[0], params, params_len)) return FALSE; avctp_passthrough_release(session, operands[0], params, params_len); return FALSE; }
bool button::mouse_press( const base::point &p, int /*button*/ ) { if ( contains( p ) ) { _tracking = true; set_pressed( true ); } return _tracking; }
bool button::mouse_move( const base::point &p ) { if ( _tracking ) { set_pressed( contains( p ) ); return true; } return false; }
Response AbstractButton::PerformMouseRelease (AbstractWindow* context) { if (context->GetMouseButton() == MouseButtonLeft) { int fire_event = 0; // 0: no event, 1: click event, 2: toggled event if (is_checkable()) { if (is_pressed()) { fire_event = 2; } } else { if (is_pressed() && is_down()) { fire_event = 1; } } RequestRedraw(); switch (fire_event) { case 0: break; case 1: { if (group_) { group_->Click(this); } else { clicked_.Invoke(); } break; } case 2: { if (is_checked() != is_last_checked()) { if (group_) { group_->Toggle(this, is_checked()); } else { toggled_.Invoke(is_checked()); } } break; } default: break; } set_pressed(false); set_down(false); released_.Invoke(); return Finish; } return Ignore; }
/** * shell_button_box_fake_release: * @box: * * If this button box is holding a pointer grab, this function will * will ungrab it, and reset the pressed state. The effect is * similar to if the user had released the mouse button, but without * emitting the activate signal. * * This function is useful if for example you want to do something after the user * is holding the mouse button for a given period of time, breaking the * grab. */ void shell_button_box_fake_release (ShellButtonBox *box) { if (!box->priv->held) return; box->priv->held = FALSE; clutter_ungrab_pointer (); set_pressed (box, FALSE); }
bool button::mouse_release( const base::point &p, int /*button*/ ) { if ( _tracking ) { _tracking = false; set_pressed( false ); if ( contains( p ) ) when_activated(); return true; } return false; }
static gboolean avctp_passthrough_rsp(struct avctp *session, uint8_t code, uint8_t subunit, uint8_t *operands, size_t operand_count, void *user_data) { if (code != AVC_CTYPE_ACCEPTED) return FALSE; if (set_pressed(session, operands[0])) return FALSE; avctp_passthrough_release(session, operands[0]); return FALSE; }
static gboolean shell_button_box_leave_event (ClutterActor *actor, ClutterCrossingEvent *event) { ShellButtonBox *box = SHELL_BUTTON_BOX (actor); if (shell_button_box_contains (box, event->related)) return TRUE; set_hover (box, FALSE); set_pressed (box, FALSE); return TRUE; }
void BaseButton::_unhandled_input(InputEvent p_event) { if (!is_disabled() && is_visible() && p_event.is_pressed() && !p_event.is_echo() && shortcut.is_valid() && shortcut->is_shortcut(p_event)) { if (get_viewport()->get_modal_stack_top() && !get_viewport()->get_modal_stack_top()->is_a_parent_of(this)) return; //ignore because of modal window if (is_toggle_mode()) { set_pressed(!is_pressed()); emit_signal("toggled",is_pressed()); } emit_signal("pressed"); } }
Response AbstractButton::PerformMousePress (AbstractWindow* context) { if (context->GetMouseButton() == MouseButtonLeft) { set_pressed(true); set_down(true); if (is_checkable()) { set_last_checked(is_checked()); set_checked(!is_checked()); } RequestRedraw(); pressed_.Invoke(); } return Finish; }
static gboolean shell_button_box_enter_event (ClutterActor *actor, ClutterCrossingEvent *event) { ShellButtonBox *box = SHELL_BUTTON_BOX (actor); if (shell_button_box_contains (box, event->related)) return TRUE; if (!shell_button_box_contains (box, event->source)) return TRUE; g_object_freeze_notify (G_OBJECT (actor)); if (box->priv->held) set_pressed (box, TRUE); set_hover (box, TRUE); g_object_thaw_notify (G_OBJECT (actor)); return TRUE; }
static gboolean shell_button_box_button_press_event (ClutterActor *actor, ClutterButtonEvent *event) { ShellButtonBox *box = SHELL_BUTTON_BOX (actor); if (event->button != 1 || event->click_count != 1) return FALSE; if (box->priv->held) return TRUE; if (!shell_button_box_contains (box, event->source)) return FALSE; box->priv->held = TRUE; clutter_grab_pointer (CLUTTER_ACTOR (box)); set_pressed (box, TRUE); return TRUE; }
static gboolean shell_button_box_button_release_event (ClutterActor *actor, ClutterButtonEvent *event) { ShellButtonBox *box = SHELL_BUTTON_BOX (actor); if (event->button != 1 || event->click_count != 1) return FALSE; if (!box->priv->held) return TRUE; box->priv->held = FALSE; clutter_ungrab_pointer (); if (!shell_button_box_contains (box, event->source)) return FALSE; set_pressed (box, FALSE); g_signal_emit (G_OBJECT (box), shell_button_box_signals[ACTIVATE], 0, event); return TRUE; }
void CheckButton::set_checked(bool p_checked) { set_pressed(p_checked); }
void MenuButton::set_checked(bool p_checked) { set_pressed(p_checked); }