Esempio n. 1
0
void IngameWindow::MouseLeftUp(const MouseCoords& mc)
{
    // Bewegung stoppen
    isMoving = false;

    // beiden Buttons oben links und rechts prfen
    const Rect rec[2] =
    {
        GetLeftButtonRect(),
        GetRightButtonRect()
    };

    for(unsigned i = 0; i < 2; ++i)
    {
        button_state[i] = BUTTON_UP;
        if(Coll(mc.x, mc.y, rec[i]))
        {
            if(i == 0 && (!IsModal() || closeOnRightClick_))
                Close();
            else if(i==1 && !IsModal())
            {
                SetMinimized(!IsMinimized());
                LOADER.GetSoundN("sound", 113)->Play(255, false);
            }
        }
    }
}
Esempio n. 2
0
void IngameWindow::MouseLeftDown(const MouseCoords& mc)
{
    // Maus muss sich auf der Titelleiste befinden
    Rect title_rect(
        static_cast<unsigned short>(pos_.x + LOADER.GetImageN("resource", 36)->getWidth()),
        pos_.y,
        static_cast<unsigned short>(width_ - LOADER.GetImageN("resource", 36)->getWidth() - LOADER.GetImageN("resource", 37)->getWidth()),
        LOADER.GetImageN("resource", 43)->getHeight()
        );

    if(Coll(mc.x, mc.y, title_rect))
    {
        // Start mit Bewegung
        isMoving = true;
        lastMousePos = DrawPoint(mc.x, mc.y);
    }

    // beiden Buttons oben links und rechts prfen
    const Rect rec[2] =
    {
        GetLeftButtonRect(),
        GetRightButtonRect()
    };

    for(unsigned char i = 0; i < 2; ++i)
    {
        if(Coll(mc.x, mc.y, rec[i]))
            button_state[i] = BUTTON_PRESSED;
    }
}
Esempio n. 3
0
void IngameWindow::MouseLeftUp(const MouseCoords& mc)
{
    // Bewegung stoppen
    move = false;

    // beiden Buttons oben links und rechts prfen
    const Rect rec[2] =
    {
        GetLeftButtonRect(),
        GetRightButtonRect()
    };

    for(unsigned char i = 0; i < 2; ++i)
    {
        button_state[i] = BUTTON_UP;
        if(Coll(mc.x, mc.y, rec[i]))
        {
            if(i)
            {
                SetMinimized(!GetMinimized());
                LOADER.GetSoundN("sound", 113)->Play(255, false);
            }
            else if(!modal)
                Close();
        }
    }
}
Esempio n. 4
0
void IngameWindow::MouseMove(const MouseCoords& mc)
{
    // Fenster bewegen, wenn die Bewegung aktiviert wurde
    if(isMoving)
    {
        DrawPoint newMousePos(mc.x, mc.y);

        DrawPoint newPos = pos_ + newMousePos - lastMousePos;
        if(newPos.x < 0)
        {
            newMousePos.x -= newPos.x;
            newPos.x = 0;
        }
        if(newPos.y < 0)
        {
            newMousePos.y -= newPos.y;
            newPos.y = 0;
        }
        if(newPos.x > VIDEODRIVER.GetScreenWidth() - width_)
        {
            newMousePos.x -= newPos.x - (VIDEODRIVER.GetScreenWidth() - width_);
            newPos.x = VIDEODRIVER.GetScreenWidth() - width_;
        }
        if(newPos.y > VIDEODRIVER.GetScreenHeight() - height_)
        {
            newMousePos.y -= newPos.y - (VIDEODRIVER.GetScreenHeight() - height_);
            newPos.y = VIDEODRIVER.GetScreenHeight() - height_;
        }

        // Fix mouse position if moved too far
        if(newMousePos.x - mc.x || newMousePos.y - mc.y)
            VIDEODRIVER.SetMousePos(newMousePos);

        pos_ = newPos;
        lastMousePos = DrawPoint(mc.x, mc.y);
    }

    // beiden Buttons oben links und rechts prfen
    const Rect rec[2] =
    {
        GetLeftButtonRect(),
        GetRightButtonRect()
    };

    for(unsigned char i = 0; i < 2; ++i)
    {
        if(Coll(mc.x, mc.y, rec[i]))
        {
            if(mc.ldown)
                button_state[i] = BUTTON_PRESSED;
            else
                button_state[i] = BUTTON_HOVER;
        }
        else
            button_state[i] =  BUTTON_UP;
    }
}
Esempio n. 5
0
void IngameWindow::MouseMove(const MouseCoords& mc)
{
    // Fenster bewegen, wenn die Bewegung aktiviert wurde
    if(move)
    {
        int nx, ny;
        int NewMouseX = mc.x;
        int NewMouseY = mc.y;

        nx = x + (mc.x - last_x);
        ny = y + (mc.y - last_y);
        if(nx < 0)
        {
            NewMouseX -= nx;
            nx = 0;
        }
        if(ny < 0)
        {
            NewMouseY -= ny;
            ny = 0;
        }
        if(nx > VIDEODRIVER.GetScreenWidth() - width)
        {
            NewMouseX -= nx - (VIDEODRIVER.GetScreenWidth() - width);
            nx = VIDEODRIVER.GetScreenWidth() - width;
        }
        if(ny > VIDEODRIVER.GetScreenHeight() - height)
        {
            NewMouseY -= ny - (VIDEODRIVER.GetScreenHeight() - height);
            ny = VIDEODRIVER.GetScreenHeight() - height;
        }

        // Fix mouse position if moved too far
        if(NewMouseX - mc.x || NewMouseY - mc.y)
            VIDEODRIVER.SetMousePos(NewMouseX, NewMouseY);

        x = (unsigned short)nx;
        y = (unsigned short)ny;

        last_x = mc.x;
        last_y = mc.y;
    }

    // beiden Buttons oben links und rechts prfen
    const Rect rec[2] =
    {
        GetLeftButtonRect(),
        GetRightButtonRect()
    };

    for(unsigned char i = 0; i < 2; ++i)
    {
        if(Coll(mc.x, mc.y, rec[i]))
        {
            if(mc.ldown)
                button_state[i] = BUTTON_PRESSED;
            else
                button_state[i] = BUTTON_HOVER;
        }
        else
            button_state[i] =  BUTTON_UP;
    }
}