コード例 #1
0
bool TBInlineSelect::OnEvent(const TBWidgetEvent &ev)
{
    if (ev.type == EVENT_TYPE_KEY_DOWN)
    {
        if (ev.special_key == TB_KEY_UP || ev.special_key == TB_KEY_DOWN)
        {
            double dv = ev.special_key == TB_KEY_UP ? 1 : -1;
            SetValueDouble(GetValueDouble() + dv);
            return true;
        }
    }
    else if (ev.type == EVENT_TYPE_CLICK && ev.target->GetID() == TBIDC("dec"))
    {
        SetValueDouble(GetValueDouble() - 1);
        if (!ev.target->IsCaptured()) {

            InvokeModifiedEvent();

        }
        return true;
    }
    else if (ev.type == EVENT_TYPE_CLICK && ev.target->GetID() == TBIDC("inc"))
    {
        SetValueDouble(GetValueDouble() + 1);

        if (!ev.target->IsCaptured()) {

            InvokeModifiedEvent();

        }

        return true;
    }
    else if (ev.type == EVENT_TYPE_CHANGED && ev.target == &m_editfield)
    {
        TBStr text;
        m_editfield.GetText(text);
        SetValueInternal((double) atof(text), false);
    }
    else if (ev.type == EVENT_TYPE_CHANGED && ev.target == this)
    {
        return TBWidget::OnEvent(ev);
    }

    return false;
}
コード例 #2
0
bool TBSlider::OnEvent(const TBWidgetEvent &ev)
{
	if (ev.type == EVENT_TYPE_POINTER_MOVE && captured_widget == &m_handle)
	{
		if (m_to_pixel_factor > 0)
		{
			int dx = ev.target_x - pointer_down_widget_x;
			int dy = ev.target_y - pointer_down_widget_y;
			double delta_val = (m_axis == AXIS_X ? dx : -dy) / m_to_pixel_factor;
			SetValueDouble(m_value + delta_val);
		}
		return true;
	}
	else if (ev.type == EVENT_TYPE_WHEEL)
	{
		double old_val = m_value;
		double step = (m_axis == AXIS_X ? GetSmallStep() : -GetSmallStep());
		SetValueDouble(m_value + step * ev.delta_y);
		return m_value != old_val;
	}
	else if (ev.type == EVENT_TYPE_KEY_DOWN)
	{
		double step = (m_axis == AXIS_X ? GetSmallStep() : -GetSmallStep());
		if (ev.special_key == TB_KEY_LEFT || ev.special_key == TB_KEY_UP)
			SetValueDouble(GetValueDouble() - step);
		else if (ev.special_key == TB_KEY_RIGHT || ev.special_key == TB_KEY_DOWN)
			SetValueDouble(GetValueDouble() + step);
		else
			return false;
		return true;
	}
	else if (ev.type == EVENT_TYPE_KEY_UP)
	{
		if (ev.special_key == TB_KEY_LEFT || ev.special_key == TB_KEY_UP ||
			ev.special_key == TB_KEY_RIGHT || ev.special_key == TB_KEY_DOWN)
			return true;
	}
	return false;
}