src/widget/widget_caption.cpp
author KUDr
Fri, 02 Mar 2007 22:31:08 +0000
branchcpp_gui
changeset 6275 bd57b30a8b81
parent 6273 d8a2c6844650
child 6276 e5f0198ec570
permissions -rw-r--r--
(svn r8983) [cpp_gui] -Add: moving window by dragging CaptionBar
6258
a2f86b8fd99b (svn r8801) [cpp_gui] -Codechange: few changes towards OO GUI:
KUDr
parents:
diff changeset
     1
/* $Id$ */
a2f86b8fd99b (svn r8801) [cpp_gui] -Codechange: few changes towards OO GUI:
KUDr
parents:
diff changeset
     2
a2f86b8fd99b (svn r8801) [cpp_gui] -Codechange: few changes towards OO GUI:
KUDr
parents:
diff changeset
     3
#include "../stdafx.h"
a2f86b8fd99b (svn r8801) [cpp_gui] -Codechange: few changes towards OO GUI:
KUDr
parents:
diff changeset
     4
#include <stdarg.h>
a2f86b8fd99b (svn r8801) [cpp_gui] -Codechange: few changes towards OO GUI:
KUDr
parents:
diff changeset
     5
#include "../openttd.h"
a2f86b8fd99b (svn r8801) [cpp_gui] -Codechange: few changes towards OO GUI:
KUDr
parents:
diff changeset
     6
#include "../debug.h"
a2f86b8fd99b (svn r8801) [cpp_gui] -Codechange: few changes towards OO GUI:
KUDr
parents:
diff changeset
     7
#include "../functions.h"
a2f86b8fd99b (svn r8801) [cpp_gui] -Codechange: few changes towards OO GUI:
KUDr
parents:
diff changeset
     8
#include "../map.h"
a2f86b8fd99b (svn r8801) [cpp_gui] -Codechange: few changes towards OO GUI:
KUDr
parents:
diff changeset
     9
#include "../player.h"
a2f86b8fd99b (svn r8801) [cpp_gui] -Codechange: few changes towards OO GUI:
KUDr
parents:
diff changeset
    10
#include "../window.h"
a2f86b8fd99b (svn r8801) [cpp_gui] -Codechange: few changes towards OO GUI:
KUDr
parents:
diff changeset
    11
#include "../gfx.h"
a2f86b8fd99b (svn r8801) [cpp_gui] -Codechange: few changes towards OO GUI:
KUDr
parents:
diff changeset
    12
#include "../viewport.h"
a2f86b8fd99b (svn r8801) [cpp_gui] -Codechange: few changes towards OO GUI:
KUDr
parents:
diff changeset
    13
#include "../console.h"
a2f86b8fd99b (svn r8801) [cpp_gui] -Codechange: few changes towards OO GUI:
KUDr
parents:
diff changeset
    14
#include "../variables.h"
a2f86b8fd99b (svn r8801) [cpp_gui] -Codechange: few changes towards OO GUI:
KUDr
parents:
diff changeset
    15
#include "../table/sprites.h"
a2f86b8fd99b (svn r8801) [cpp_gui] -Codechange: few changes towards OO GUI:
KUDr
parents:
diff changeset
    16
#include "../genworld.h"
a2f86b8fd99b (svn r8801) [cpp_gui] -Codechange: few changes towards OO GUI:
KUDr
parents:
diff changeset
    17
#include "../helpers.hpp"
6264
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents: 6258
diff changeset
    18
#include "window_events.hpp"
6258
a2f86b8fd99b (svn r8801) [cpp_gui] -Codechange: few changes towards OO GUI:
KUDr
parents:
diff changeset
    19
a2f86b8fd99b (svn r8801) [cpp_gui] -Codechange: few changes towards OO GUI:
KUDr
parents:
diff changeset
    20
6273
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6264
diff changeset
    21
namespace gui {
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6264
diff changeset
    22
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6264
diff changeset
    23
/*virtual*/ void CaptionBar::DrawBackground(EvtPaint &ev)
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6264
diff changeset
    24
{
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6264
diff changeset
    25
//	DrawFrameRect(m_color, FR_NONE);
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6264
diff changeset
    26
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6264
diff changeset
    27
	BaseWindow *w = GetWindow();
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6264
diff changeset
    28
	assert(w != NULL);
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6264
diff changeset
    29
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6264
diff changeset
    30
	byte caption_color = w->caption_color;
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6264
diff changeset
    31
	assert(Height() == 14); // XXX - to ensure the same sizes are used everywhere!
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6264
diff changeset
    32
	DrawFrameRect(Left(), Top(), Right(), Bottom(), m_color, FR_BORDERONLY);
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6264
diff changeset
    33
	DrawFrameRect(Left() + 1, Top() + 1, Right() - 1, Bottom() - 1, m_color, (caption_color == 0xFF) ? FR_LOWERED | FR_DARKENED : FR_LOWERED | FR_DARKENED | FR_BORDERONLY);
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6264
diff changeset
    34
	if (caption_color != 0xFF) {
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6264
diff changeset
    35
		GfxFillRect(Left() + 2, Top() + 2, Right() - 2, Bottom() - 2, _colour_gradient[_player_colors[caption_color]][4]);
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6264
diff changeset
    36
	}
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6264
diff changeset
    37
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6264
diff changeset
    38
	//assert(r.bottom - r.top == 13); // XXX - to ensure the same sizes are used everywhere!
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6264
diff changeset
    39
	//DrawFrameRect(r.left, r.top, r.right, r.bottom, wi->color, FR_BORDERONLY);
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6264
diff changeset
    40
	//DrawFrameRect(r.left+1, r.top+1, r.right-1, r.bottom-1, wi->color, (caption_color == 0xFF) ? FR_LOWERED | FR_DARKENED : FR_LOWERED | FR_DARKENED | FR_BORDERONLY);
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6264
diff changeset
    41
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6264
diff changeset
    42
	//if (caption_color != 0xFF) {
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6264
diff changeset
    43
	//	GfxFillRect(r.left+2, r.top+2, r.right-2, r.bottom-2, _colour_gradient[_player_colors[caption_color]][4]);
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6264
diff changeset
    44
	//}
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6264
diff changeset
    45
}
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6264
diff changeset
    46
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6264
diff changeset
    47
/*virtual*/ void CaptionBar::OnPaint(EvtPaint &ev)
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6264
diff changeset
    48
{
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6264
diff changeset
    49
	DrawBackground(ev);
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6264
diff changeset
    50
	DrawStringCenteredTruncated(Left() + 2, Right() - 2, Top() + 2, m_text, m_text_color);
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6264
diff changeset
    51
	ev.SetHandled();
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6264
diff changeset
    52
}
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6264
diff changeset
    53
6275
bd57b30a8b81 (svn r8983) [cpp_gui] -Add: moving window by dragging CaptionBar
KUDr
parents: 6273
diff changeset
    54
/*virtual*/ void CaptionBar::OnLeftClick(EvtClick &ev)
bd57b30a8b81 (svn r8983) [cpp_gui] -Add: moving window by dragging CaptionBar
KUDr
parents: 6273
diff changeset
    55
{
bd57b30a8b81 (svn r8983) [cpp_gui] -Add: moving window by dragging CaptionBar
KUDr
parents: 6273
diff changeset
    56
	m_moving_offset = ev.m_pt/* - GetWindow()->TopLeft()*/;
bd57b30a8b81 (svn r8983) [cpp_gui] -Add: moving window by dragging CaptionBar
KUDr
parents: 6273
diff changeset
    57
	ev.SetHandled();
bd57b30a8b81 (svn r8983) [cpp_gui] -Add: moving window by dragging CaptionBar
KUDr
parents: 6273
diff changeset
    58
	m_ticket_moving = CaptureEventsT(this, &CaptionBar::OnCapturePressed);
bd57b30a8b81 (svn r8983) [cpp_gui] -Add: moving window by dragging CaptionBar
KUDr
parents: 6273
diff changeset
    59
	Invalidate();
bd57b30a8b81 (svn r8983) [cpp_gui] -Add: moving window by dragging CaptionBar
KUDr
parents: 6273
diff changeset
    60
}
bd57b30a8b81 (svn r8983) [cpp_gui] -Add: moving window by dragging CaptionBar
KUDr
parents: 6273
diff changeset
    61
bd57b30a8b81 (svn r8983) [cpp_gui] -Add: moving window by dragging CaptionBar
KUDr
parents: 6273
diff changeset
    62
void CaptionBar::OnCapturePressed(EvtMouseOver &e)
bd57b30a8b81 (svn r8983) [cpp_gui] -Add: moving window by dragging CaptionBar
KUDr
parents: 6273
diff changeset
    63
{
bd57b30a8b81 (svn r8983) [cpp_gui] -Add: moving window by dragging CaptionBar
KUDr
parents: 6273
diff changeset
    64
	if (!_left_button_down) {
bd57b30a8b81 (svn r8983) [cpp_gui] -Add: moving window by dragging CaptionBar
KUDr
parents: 6273
diff changeset
    65
		m_ticket_moving.Release();
bd57b30a8b81 (svn r8983) [cpp_gui] -Add: moving window by dragging CaptionBar
KUDr
parents: 6273
diff changeset
    66
bd57b30a8b81 (svn r8983) [cpp_gui] -Add: moving window by dragging CaptionBar
KUDr
parents: 6273
diff changeset
    67
		EvtClick ev(Point(0, 0));
bd57b30a8b81 (svn r8983) [cpp_gui] -Add: moving window by dragging CaptionBar
KUDr
parents: 6273
diff changeset
    68
		ev.m_widget = this;
bd57b30a8b81 (svn r8983) [cpp_gui] -Add: moving window by dragging CaptionBar
KUDr
parents: 6273
diff changeset
    69
		CallHandlers(ev);
bd57b30a8b81 (svn r8983) [cpp_gui] -Add: moving window by dragging CaptionBar
KUDr
parents: 6273
diff changeset
    70
		return;
bd57b30a8b81 (svn r8983) [cpp_gui] -Add: moving window by dragging CaptionBar
KUDr
parents: 6273
diff changeset
    71
	}
bd57b30a8b81 (svn r8983) [cpp_gui] -Add: moving window by dragging CaptionBar
KUDr
parents: 6273
diff changeset
    72
	GetWindow()->SetTopLeft(e.m_pt - m_moving_offset);
bd57b30a8b81 (svn r8983) [cpp_gui] -Add: moving window by dragging CaptionBar
KUDr
parents: 6273
diff changeset
    73
	e.SetHandled();
bd57b30a8b81 (svn r8983) [cpp_gui] -Add: moving window by dragging CaptionBar
KUDr
parents: 6273
diff changeset
    74
	Invalidate();
bd57b30a8b81 (svn r8983) [cpp_gui] -Add: moving window by dragging CaptionBar
KUDr
parents: 6273
diff changeset
    75
}
bd57b30a8b81 (svn r8983) [cpp_gui] -Add: moving window by dragging CaptionBar
KUDr
parents: 6273
diff changeset
    76
bd57b30a8b81 (svn r8983) [cpp_gui] -Add: moving window by dragging CaptionBar
KUDr
parents: 6273
diff changeset
    77
6273
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6264
diff changeset
    78
}; // namespace gui