summaryrefslogtreecommitdiffstats
path: root/src/ui/slider.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/slider.cpp')
-rw-r--r--src/ui/slider.cpp85
1 files changed, 47 insertions, 38 deletions
diff --git a/src/ui/slider.cpp b/src/ui/slider.cpp
index be8af18..27bcfbb 100644
--- a/src/ui/slider.cpp
+++ b/src/ui/slider.cpp
@@ -1,5 +1,6 @@
// * This file is part of the COLOBOT source code
// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
+// * Copyright (C) 2012, Polish Portal of Colobot (PPC)
// *
// * This program is free software: you can redistribute it and/or modify
// * it under the terms of the GNU General Public License as published by
@@ -17,21 +18,24 @@
// slider.cpp
-#include <windows.h>
+//#include <windows.h>
#include <stdio.h>
-#include <d3d.h>
+//#include <d3d.h>
-#include "common/struct.h"
-#include "old/d3dengine.h"
-#include "old/math3d.h"
+//#include "common/struct.h"
+//#include "old/d3dengine.h"
+//#include "old/math3d.h"
+#include "graphics/engine/engine.h"
#include "common/event.h"
#include "common/misc.h"
#include "common/iman.h"
-#include "old/text.h"
+//#include "old/text.h"
+#include "graphics/engine/text.h"
#include "ui/button.h"
#include "ui/slider.h"
+namespace Ui {
const float CURSOR_WIDTH = (10.0f/640.0f);
const float HOLE_WIDTH = (5.0f/480.0f);
@@ -41,7 +45,7 @@ const float HOLE_WIDTH = (5.0f/480.0f);
// Object's constructor.
-CSlider::CSlider(CInstanceManager* iMan) : CControl(iMan)
+CSlider::CSlider() : CControl()
{
m_buttonLeft = 0;
m_buttonRight = 0;
@@ -71,10 +75,10 @@ CSlider::~CSlider()
// Creates a new button.
-bool CSlider::Create(Math::Point pos, Math::Point dim, int icon, EventMsg eventMsg)
+bool CSlider::Create(Math::Point pos, Math::Point dim, int icon, EventType eventType)
{
- if ( eventMsg == EVENT_NULL ) eventMsg = GetUniqueEventMsg();
- CControl::Create(pos, dim, icon, eventMsg);
+ if ( eventType == EVENT_NULL ) eventType = GetUniqueEventType();
+ CControl::Create(pos, dim, icon, eventType);
MoveAdjust();
return true;
@@ -115,20 +119,20 @@ void CSlider::MoveAdjust()
#if 1
if ( m_buttonLeft == 0 )
{
- m_buttonLeft = new CButton(m_iMan);
+ m_buttonLeft = new CButton();
m_buttonLeft->Create(Math::Point(0.0f, 0.0f), Math::Point(0.0f, 0.0f), m_bHoriz?55:49, EVENT_NULL); // </^
m_buttonLeft->SetRepeat(true);
if ( m_state & STATE_SHADOW ) m_buttonLeft->SetState(STATE_SHADOW);
- m_eventUp = m_buttonLeft->RetEventMsg();
+ m_eventUp = m_buttonLeft->GetEventType();
}
if ( m_buttonRight == 0 )
{
- m_buttonRight = new CButton(m_iMan);
+ m_buttonRight = new CButton();
m_buttonRight->Create(Math::Point(0.0f, 0.0f), Math::Point(0.0f, 0.0f), m_bHoriz?48:50, EVENT_NULL); // >/v
m_buttonRight->SetRepeat(true);
if ( m_state & STATE_SHADOW ) m_buttonRight->SetState(STATE_SHADOW);
- m_eventDown = m_buttonRight->RetEventMsg();
+ m_eventDown = m_buttonRight->GetEventType();
}
m_marginButton = m_bHoriz?(m_dim.y*0.75f):(m_dim.x/0.75f);
@@ -261,7 +265,7 @@ bool CSlider::EventProcess(const Event &event)
if ( !m_buttonRight->EventProcess(event) ) return false;
}
- if ( event.event == m_eventUp && m_step > 0.0f )
+ if ( event.type == m_eventUp && m_step > 0.0f )
{
m_visibleValue -= m_bHoriz?m_step:-m_step;
if ( m_visibleValue < 0.0f ) m_visibleValue = 0.0f;
@@ -269,11 +273,11 @@ bool CSlider::EventProcess(const Event &event)
AdjustGlint();
Event newEvent = event;
- newEvent.event = m_eventMsg;
+ newEvent.type = m_eventType;
m_event->AddEvent(newEvent);
}
- if ( event.event == m_eventDown && m_step > 0.0f )
+ if ( event.type == m_eventDown && m_step > 0.0f )
{
m_visibleValue += m_bHoriz?m_step:-m_step;
if ( m_visibleValue < 0.0f ) m_visibleValue = 0.0f;
@@ -281,12 +285,13 @@ bool CSlider::EventProcess(const Event &event)
AdjustGlint();
Event newEvent = event;
- newEvent.event = m_eventMsg;
+ newEvent.type = m_eventType;
m_event->AddEvent(newEvent);
}
- if ( event.event == EVENT_LBUTTONDOWN &&
- (m_state & STATE_VISIBLE) &&
+ if ( event.type == EVENT_MOUSE_BUTTON_DOWN &&
+ (event.mouseButton.button == 1 ) &&
+ (m_state & STATE_VISIBLE) &&
(m_state & STATE_ENABLE) )
{
if ( CControl::Detect(event.pos) )
@@ -311,7 +316,7 @@ bool CSlider::EventProcess(const Event &event)
AdjustGlint();
Event newEvent = event;
- newEvent.event = m_eventMsg;
+ newEvent.type = m_eventType;
m_event->AddEvent(newEvent);
m_bCapture = true;
@@ -320,7 +325,7 @@ bool CSlider::EventProcess(const Event &event)
}
}
- if ( event.event == EVENT_MOUSEMOVE && m_bCapture )
+ if ( event.type == EVENT_MOUSE_MOVE && m_bCapture )
{
if ( m_bHoriz )
{
@@ -345,32 +350,35 @@ bool CSlider::EventProcess(const Event &event)
AdjustGlint();
Event newEvent = event;
- newEvent.event = m_eventMsg;
+ newEvent.type = m_eventType;
m_event->AddEvent(newEvent);
}
}
- if ( event.event == EVENT_LBUTTONUP && m_bCapture )
+ if ( ( event.type == EVENT_MOUSE_BUTTON_UP ) &&
+ ( event.mouseButton.button == 1 ) &&
+ m_bCapture )
{
m_bCapture = false;
}
- if ( event.event == EVENT_KEYDOWN &&
- event.param == VK_WHEELUP &&
+ if ( event.type == EVENT_KEY_DOWN &&
+ event.mouseButton.button == 4 &&
Detect(event.pos) &&
m_buttonLeft != 0 )
{
Event newEvent = event;
- newEvent.event = m_buttonLeft->RetEventMsg();
+ newEvent.type = m_buttonLeft->GetEventType();
m_event->AddEvent(newEvent);
}
- if ( event.event == EVENT_KEYDOWN &&
- event.param == VK_WHEELDOWN &&
+
+ if ( event.type == EVENT_KEY_DOWN &&
+ event.mouseButton.button == 5 &&
Detect(event.pos) &&
m_buttonRight != 0 )
{
Event newEvent = event;
- newEvent.event = m_buttonRight->RetEventMsg();
+ newEvent.type = m_buttonRight->GetEventType();
m_event->AddEvent(newEvent);
}
@@ -466,10 +474,10 @@ void CSlider::Draw()
if ( m_bHoriz )
{
sprintf(text, "%d", (int)(m_min+m_visibleValue*(m_max-m_min)));
- h = m_engine->RetText()->RetHeight(m_fontSize, m_fontType);
+ h = m_engine->GetText()->GetHeight(m_fontType, m_fontSize);
pos.x = m_pos.x+m_dim.x+(10.0f/640.0f);
pos.y = m_pos.y+(m_dim.y-h)/2.0f;
- m_engine->RetText()->DrawText(text, pos, m_dim.x, 1, m_fontSize, m_fontStretch, m_fontType, 0);
+ m_engine->GetText()->DrawText(text, m_fontType, m_fontSize, pos, m_dim.x, Gfx::TEXT_ALIGN_RIGHT, 0);
}
else
{
@@ -482,7 +490,7 @@ void CSlider::Draw()
dim.x = 50.0f/640.0f;
dim.y = 16.0f/480.0f;
sprintf(text, "%d", (int)(m_min+(m_visibleValue*(m_max-m_min))));
- m_engine->RetText()->DrawText(text, pos, dim.x, 1, m_fontSize, m_fontStretch, m_fontType, 0);
+ m_engine->GetText()->DrawText(text, m_fontType, m_fontSize, pos, dim.x, Gfx::TEXT_ALIGN_RIGHT, 0);
}
}
}
@@ -497,7 +505,7 @@ void CSlider::DrawVertex(Math::Point pos, Math::Point dim, int icon)
if ( icon == 0 )
{
m_engine->SetTexture("button2.tga");
- m_engine->SetState(D3DSTATENORMAL);
+ m_engine->SetState(Gfx::ENG_RSTATE_NORMAL);
uv1.x = 0.0f/256.0f; // yellow rectangle
uv1.y = 32.0f/256.0f;
uv2.x = 32.0f/256.0f;
@@ -509,7 +517,7 @@ void CSlider::DrawVertex(Math::Point pos, Math::Point dim, int icon)
else if ( icon == 1 )
{
m_engine->SetTexture("button2.tga");
- m_engine->SetState(D3DSTATENORMAL);
+ m_engine->SetState(Gfx::ENG_RSTATE_NORMAL);
uv1.x = 128.0f/256.0f; // gray rectangle
uv1.y = 32.0f/256.0f;
uv2.x = 160.0f/256.0f;
@@ -521,7 +529,7 @@ void CSlider::DrawVertex(Math::Point pos, Math::Point dim, int icon)
else
{
m_engine->SetTexture("button2.tga");
- m_engine->SetState(D3DSTATENORMAL);
+ m_engine->SetState(Gfx::ENG_RSTATE_NORMAL);
uv1.x = 224.0f/256.0f; // cursor
uv1.y = 32.0f/256.0f;
uv2.x = 256.0f/256.0f;
@@ -561,7 +569,7 @@ void CSlider::SetVisibleValue(float value)
AdjustGlint();
}
-float CSlider::RetVisibleValue()
+float CSlider::GetVisibleValue()
{
return m_min+m_visibleValue*(m_max-m_min);
}
@@ -572,9 +580,10 @@ void CSlider::SetArrowStep(float step)
m_step = step/(m_max-m_min);
}
-float CSlider::RetArrowStep()
+float CSlider::GetArrowStep()
{
return m_step*(m_max-m_min);
}
+}