コード例 #1
0
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;
}
コード例 #2
0
bool button::mouse_press( const base::point &p, int /*button*/ )
{
	if ( contains( p ) )
	{
		_tracking = true;
		set_pressed( true );
	}
	return _tracking;
}
コード例 #3
0
bool button::mouse_move( const base::point &p )
{
	if ( _tracking )
	{
		set_pressed( contains( p ) );
		return true;
	}
	return false;
}
コード例 #4
0
ファイル: abstract-button.cpp プロジェクト: Skytale/BlendInt
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;
}
コード例 #5
0
ファイル: shell-button-box.c プロジェクト: RainCT/gnome-shell
/**
 * 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);
}
コード例 #6
0
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;
}
コード例 #7
0
ファイル: avctp.c プロジェクト: MDomagala/bluez
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;
}
コード例 #8
0
ファイル: shell-button-box.c プロジェクト: RainCT/gnome-shell
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;
}
コード例 #9
0
ファイル: base_button.cpp プロジェクト: lonesurvivor/godot
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");
	}
}
コード例 #10
0
ファイル: abstract-button.cpp プロジェクト: Skytale/BlendInt
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;
}
コード例 #11
0
ファイル: shell-button-box.c プロジェクト: RainCT/gnome-shell
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;
}
コード例 #12
0
ファイル: shell-button-box.c プロジェクト: RainCT/gnome-shell
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;
}
コード例 #13
0
ファイル: shell-button-box.c プロジェクト: RainCT/gnome-shell
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;
}
コード例 #14
0
void CheckButton::set_checked(bool p_checked) {
	
	set_pressed(p_checked);
}
コード例 #15
0
void MenuButton::set_checked(bool p_checked) {
	
	set_pressed(p_checked);
}