コード例 #1
0
ファイル: WindowWorld.cpp プロジェクト: FooSoft/moonfall
void WindowWorld::OnMouseButtonDown(const InputMouse& args)
{
    Window::OnMouseButtonDown(args);

    if (!m_world)
    {
        return;
    }

    const Vector2i position = m_world->GetCamera()->Project(GetBounds(), args.position);

    for (ListenerList::iterator iter = m_listeners.begin(); iter != m_listeners.end(); ++iter)
    {
        (*iter)->OnWorldMouseButtonDown(InputMouse(args.button, args.buttonState, position, Vector2i(0, 0), args.wheel, args.modifier));
    }

#ifdef DEVELOPER
    if (args.modifier & KMOD_SHIFT && args.button == SDL_BUTTON_LEFT)
    {
        boost::shared_ptr<Actor> actor = PickActor(position).lock();
        if (actor)
        {
            TRACE_INFO(boost::format("Actor:\n\tAlias = %s\n\tId = %d\n\tName = %s\n\tLayer = %d\n\tPosition = (%.1f, %.1f)") %
                       actor->GetAlias() % actor->GetId() % actor->GetName() % actor->GetLayer() % actor->GetPosition().x % actor->GetPosition().y);
        }
    }
#endif
}
コード例 #2
0
ファイル: InputControl.cpp プロジェクト: irgups/eye_control
/**
 * Process eyes changes
 *
 * @param regime 1 - keyboard, 2 - mouse
 * @return
 */
int InputControl::process(int regime) {
    int result = 0;
    if (regime == 1) {
        result = InputKey();
    } else {
        result = InputMouse();
    }
    return result;
}
コード例 #3
0
ファイル: WindowWorld.cpp プロジェクト: FooSoft/moonfall
void WindowWorld::OnMouseWheel(const InputMouse& args)
{
    Window::OnMouseWheel(args);

    if (!m_world)
    {
        return;
    }

    const Vector2i position = m_world->GetCamera()->Project(GetBounds(), args.position);

    for (ListenerList::iterator iter = m_listeners.begin(); iter != m_listeners.end(); ++iter)
    {
        (*iter)->OnWorldMouseWheel(InputMouse(args.button, args.buttonState, position, Vector2i(0, 0), args.wheel, args.modifier));
    }
}