src/widget/widget_types.h
author KUDr
Mon, 26 Mar 2007 21:00:16 +0000
branchcpp_gui
changeset 6301 e0251f797d59
parent 6292 272c690043e3
child 6302 bd80897189ba
permissions -rw-r--r--
(svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
-Add: Panel widget with DoLayout() method that moves/resizes widgets with respect to their minimal sizes.
-Add: QuerySizes() method added to widget. Widgets are now able to calculate their minimal size.
-Add: SizeT class added (similar to PointT) to make Point/Size/Rectangle math simpler
6264
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
     1
/* $Id$ */
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
     2
6289
be3d8bd9fb02 (svn r9010) [cpp_gui] -Add: Sticky button widget
KUDr
parents: 6287
diff changeset
     3
#ifndef WIDGET_TYPES_H
be3d8bd9fb02 (svn r9010) [cpp_gui] -Add: Sticky button widget
KUDr
parents: 6287
diff changeset
     4
#define WIDGET_TYPES_H
6264
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
     5
6289
be3d8bd9fb02 (svn r9010) [cpp_gui] -Add: Sticky button widget
KUDr
parents: 6287
diff changeset
     6
#include "widget.h"
be3d8bd9fb02 (svn r9010) [cpp_gui] -Add: Sticky button widget
KUDr
parents: 6287
diff changeset
     7
#include "table/strings.h"
6264
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
     8
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
     9
namespace gui {
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
    10
6286
6e8eec87fa9d (svn r9006) [cpp_gui] -Add: Label widget (MiHaMiX)
KUDr
parents: 6283
diff changeset
    11
struct Label : public Widget {
6e8eec87fa9d (svn r9006) [cpp_gui] -Add: Label widget (MiHaMiX)
KUDr
parents: 6283
diff changeset
    12
	typedef Widget super;
6e8eec87fa9d (svn r9006) [cpp_gui] -Add: Label widget (MiHaMiX)
KUDr
parents: 6283
diff changeset
    13
6301
e0251f797d59 (svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
KUDr
parents: 6292
diff changeset
    14
	static const FeatureFlags DEFAULT_FEATURES = FF_NONE;
e0251f797d59 (svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
KUDr
parents: 6292
diff changeset
    15
6286
6e8eec87fa9d (svn r9006) [cpp_gui] -Add: Label widget (MiHaMiX)
KUDr
parents: 6283
diff changeset
    16
protected:
6e8eec87fa9d (svn r9006) [cpp_gui] -Add: Label widget (MiHaMiX)
KUDr
parents: 6283
diff changeset
    17
	StringID m_text;
6e8eec87fa9d (svn r9006) [cpp_gui] -Add: Label widget (MiHaMiX)
KUDr
parents: 6283
diff changeset
    18
6e8eec87fa9d (svn r9006) [cpp_gui] -Add: Label widget (MiHaMiX)
KUDr
parents: 6283
diff changeset
    19
public:
6e8eec87fa9d (svn r9006) [cpp_gui] -Add: Label widget (MiHaMiX)
KUDr
parents: 6283
diff changeset
    20
	Label()
6e8eec87fa9d (svn r9006) [cpp_gui] -Add: Label widget (MiHaMiX)
KUDr
parents: 6283
diff changeset
    21
		: Widget()
6e8eec87fa9d (svn r9006) [cpp_gui] -Add: Label widget (MiHaMiX)
KUDr
parents: 6283
diff changeset
    22
	{}
6e8eec87fa9d (svn r9006) [cpp_gui] -Add: Label widget (MiHaMiX)
KUDr
parents: 6283
diff changeset
    23
6301
e0251f797d59 (svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
KUDr
parents: 6292
diff changeset
    24
	Label(CompositeWidget *container, StringID text, FeatureFlags feature_flags = DEFAULT_FEATURES, StringID tooltips = 0, uint16 color = COLOUR_PARENT)
e0251f797d59 (svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
KUDr
parents: 6292
diff changeset
    25
		: Widget(container, feature_flags, tooltips, color)
6286
6e8eec87fa9d (svn r9006) [cpp_gui] -Add: Label widget (MiHaMiX)
KUDr
parents: 6283
diff changeset
    26
		, m_text(text)
6e8eec87fa9d (svn r9006) [cpp_gui] -Add: Label widget (MiHaMiX)
KUDr
parents: 6283
diff changeset
    27
	{
6e8eec87fa9d (svn r9006) [cpp_gui] -Add: Label widget (MiHaMiX)
KUDr
parents: 6283
diff changeset
    28
	}
6e8eec87fa9d (svn r9006) [cpp_gui] -Add: Label widget (MiHaMiX)
KUDr
parents: 6283
diff changeset
    29
6e8eec87fa9d (svn r9006) [cpp_gui] -Add: Label widget (MiHaMiX)
KUDr
parents: 6283
diff changeset
    30
	/*virtual*/ void DrawBackground(EvtPaint &ev);
6e8eec87fa9d (svn r9006) [cpp_gui] -Add: Label widget (MiHaMiX)
KUDr
parents: 6283
diff changeset
    31
6e8eec87fa9d (svn r9006) [cpp_gui] -Add: Label widget (MiHaMiX)
KUDr
parents: 6283
diff changeset
    32
	/*virtual*/ void OnPaint(EvtPaint &ev);
6e8eec87fa9d (svn r9006) [cpp_gui] -Add: Label widget (MiHaMiX)
KUDr
parents: 6283
diff changeset
    33
};
6e8eec87fa9d (svn r9006) [cpp_gui] -Add: Label widget (MiHaMiX)
KUDr
parents: 6283
diff changeset
    34
6264
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
    35
struct Button : public Widget {
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
    36
	typedef Widget super;
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
    37
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
    38
protected:
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
    39
	bool m_pushed;
6271
0ad100a98853 (svn r8958) [cpp_gui] -Add: Widget can now capture specified gui events
KUDr
parents: 6269
diff changeset
    40
	CaptureTicket m_ticket_pressed;
6264
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
    41
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
    42
public:
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
    43
	Button()
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
    44
		: Widget()
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
    45
		, m_pushed(false)
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
    46
	{}
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
    47
6301
e0251f797d59 (svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
KUDr
parents: 6292
diff changeset
    48
	Button(CompositeWidget *container, FeatureFlags feature_flags, StringID tooltips = 0, uint16 color = COLOUR_PARENT)
e0251f797d59 (svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
KUDr
parents: 6292
diff changeset
    49
		: Widget(container, feature_flags, tooltips, color)
6264
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
    50
		, m_pushed(false)
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
    51
	{}
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
    52
6271
0ad100a98853 (svn r8958) [cpp_gui] -Add: Widget can now capture specified gui events
KUDr
parents: 6269
diff changeset
    53
	void OnCapturePressed(EvtMouseOver &e);
0ad100a98853 (svn r8958) [cpp_gui] -Add: Widget can now capture specified gui events
KUDr
parents: 6269
diff changeset
    54
6264
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
    55
	/*virtual*/ void DrawBackground(EvtPaint &ev);
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
    56
6282
c5b92f2d924f (svn r8996) [cpp_gui] -Add: CloseBox added into CaptionBar
KUDr
parents: 6279
diff changeset
    57
	/*virtual*/ void OnLeftButtonDown(EvtLeftButtonDown &ev);
6264
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
    58
};
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
    59
6290
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
    60
struct ImageButton : public Button {
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
    61
	typedef Button super;
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
    62
6301
e0251f797d59 (svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
KUDr
parents: 6292
diff changeset
    63
	static const FeatureFlags DEFAULT_FEATURES = FF_NONE;
e0251f797d59 (svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
KUDr
parents: 6292
diff changeset
    64
6290
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
    65
protected:
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
    66
	SpriteID m_sprite;
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
    67
	Point16  m_sprite_offset;
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
    68
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
    69
public:
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
    70
	ImageButton()
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
    71
		: Button()
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
    72
		, m_sprite(0)
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
    73
	{}
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
    74
6301
e0251f797d59 (svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
KUDr
parents: 6292
diff changeset
    75
	ImageButton(CompositeWidget *container, SpriteID sprite, Point16 sprite_offset, FeatureFlags feature_flags = DEFAULT_FEATURES, StringID tooltips = 0, uint16 color = COLOUR_PARENT)
e0251f797d59 (svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
KUDr
parents: 6292
diff changeset
    76
		: Button(container, feature_flags, tooltips, color)
6290
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
    77
		, m_sprite(sprite)
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
    78
		, m_sprite_offset(sprite_offset)
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
    79
	{}
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
    80
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
    81
	/*virtual*/ void OnPaint(EvtPaint &ev);
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
    82
};
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
    83
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
    84
struct ImageButton2 : public ImageButton {
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
    85
	typedef ImageButton super;
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
    86
6301
e0251f797d59 (svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
KUDr
parents: 6292
diff changeset
    87
	static const FeatureFlags DEFAULT_FEATURES = FF_NONE;
e0251f797d59 (svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
KUDr
parents: 6292
diff changeset
    88
6290
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
    89
protected:
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
    90
	SpriteID m_sprite_pushed;
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
    91
	Point16  m_sprite_offset_pushed;
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
    92
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
    93
public:
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
    94
	ImageButton2()
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
    95
		: ImageButton()
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
    96
		, m_sprite_pushed(0)
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
    97
	{}
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
    98
6301
e0251f797d59 (svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
KUDr
parents: 6292
diff changeset
    99
	ImageButton2(CompositeWidget *container, SpriteID sprite, Point16 sprite_offset, SpriteID sprite_pushed, Point16 sprite_offset_pushed, FeatureFlags feature_flags = DEFAULT_FEATURES, StringID tooltips = 0, uint16 color = COLOUR_PARENT)
e0251f797d59 (svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
KUDr
parents: 6292
diff changeset
   100
		: ImageButton(container, sprite, sprite_offset, feature_flags, tooltips, color)
6290
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
   101
		, m_sprite_pushed(sprite_pushed)
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
   102
		, m_sprite_offset_pushed(sprite_offset_pushed)
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
   103
	{}
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
   104
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
   105
	/*virtual*/ void OnPaint(EvtPaint &ev);
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
   106
};
8078f7a3c8a0 (svn r9023) [cpp_gui] -Add: ImageButton and ImageButton2
KUDr
parents: 6289
diff changeset
   107
6264
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
   108
struct TextButton : public Button {
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
   109
	typedef Button super;
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
   110
6301
e0251f797d59 (svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
KUDr
parents: 6292
diff changeset
   111
	static const FeatureFlags DEFAULT_FEATURES = FF_NONE;
e0251f797d59 (svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
KUDr
parents: 6292
diff changeset
   112
6264
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
   113
protected:
6301
e0251f797d59 (svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
KUDr
parents: 6292
diff changeset
   114
	StringID      m_text_id;
e0251f797d59 (svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
KUDr
parents: 6292
diff changeset
   115
public:
e0251f797d59 (svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
KUDr
parents: 6292
diff changeset
   116
	std::string   m_text;
6264
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
   117
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
   118
public:
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
   119
	TextButton()
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
   120
		: Button()
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
   121
	{}
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
   122
6301
e0251f797d59 (svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
KUDr
parents: 6292
diff changeset
   123
	TextButton(CompositeWidget *container, StringID text_id, FeatureFlags feature_flags = DEFAULT_FEATURES, StringID tooltips = 0, uint16 color = COLOUR_PARENT)
e0251f797d59 (svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
KUDr
parents: 6292
diff changeset
   124
		: Button(container, feature_flags, tooltips, color)
e0251f797d59 (svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
KUDr
parents: 6292
diff changeset
   125
		, m_text_id(text_id)
6264
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
   126
	{}
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
   127
6301
e0251f797d59 (svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
KUDr
parents: 6292
diff changeset
   128
	StringID GetTextId();
e0251f797d59 (svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
KUDr
parents: 6292
diff changeset
   129
	/*virtual*/ void QuerySizes();
e0251f797d59 (svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
KUDr
parents: 6292
diff changeset
   130
6264
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
   131
	/*virtual*/ void OnPaint(EvtPaint &ev);
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
   132
};
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
   133
6301
e0251f797d59 (svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
KUDr
parents: 6292
diff changeset
   134
struct CaptionBar : public Panel {
e0251f797d59 (svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
KUDr
parents: 6292
diff changeset
   135
	typedef Panel super;
6273
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6271
diff changeset
   136
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6271
diff changeset
   137
	static const int16 DEFAULT_HEIGHT = 14;
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6271
diff changeset
   138
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6271
diff changeset
   139
public:
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6271
diff changeset
   140
	CaptionBar()
6301
e0251f797d59 (svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
KUDr
parents: 6292
diff changeset
   141
		: super()
6273
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6271
diff changeset
   142
	{}
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6271
diff changeset
   143
6301
e0251f797d59 (svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
KUDr
parents: 6292
diff changeset
   144
	CaptionBar(CompositeWidget *container, FeatureFlags feature_flags, uint16 color = COLOUR_PARENT)
e0251f797d59 (svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
KUDr
parents: 6292
diff changeset
   145
		: super(container, feature_flags, 0, color)
e0251f797d59 (svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
KUDr
parents: 6292
diff changeset
   146
	{
e0251f797d59 (svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
KUDr
parents: 6292
diff changeset
   147
		m_feature_flags |= FF_NO_FRAME | FF_IGNORE_PARENT_FRAME;
e0251f797d59 (svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
KUDr
parents: 6292
diff changeset
   148
	}
6273
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6271
diff changeset
   149
6279
c75b2c7222ff (svn r8991) [cpp_gui] -Codechange: composite widgets (incl. windows) now must implement CreateWidgets() method which is called from the default OnCreate() implementation
KUDr
parents: 6278
diff changeset
   150
	/*virtual*/ void CreateWidgets();
6282
c5b92f2d924f (svn r8996) [cpp_gui] -Add: CloseBox added into CaptionBar
KUDr
parents: 6279
diff changeset
   151
};
c5b92f2d924f (svn r8996) [cpp_gui] -Add: CloseBox added into CaptionBar
KUDr
parents: 6279
diff changeset
   152
c5b92f2d924f (svn r8996) [cpp_gui] -Add: CloseBox added into CaptionBar
KUDr
parents: 6279
diff changeset
   153
c5b92f2d924f (svn r8996) [cpp_gui] -Add: CloseBox added into CaptionBar
KUDr
parents: 6279
diff changeset
   154
struct ResizeBox : public Widget {
c5b92f2d924f (svn r8996) [cpp_gui] -Add: CloseBox added into CaptionBar
KUDr
parents: 6279
diff changeset
   155
	typedef Widget super;
c5b92f2d924f (svn r8996) [cpp_gui] -Add: CloseBox added into CaptionBar
KUDr
parents: 6279
diff changeset
   156
c5b92f2d924f (svn r8996) [cpp_gui] -Add: CloseBox added into CaptionBar
KUDr
parents: 6279
diff changeset
   157
	static const int16 DEFAULT_WIDTH  = 11;
c5b92f2d924f (svn r8996) [cpp_gui] -Add: CloseBox added into CaptionBar
KUDr
parents: 6279
diff changeset
   158
	static const int16 DEFAULT_HEIGHT = 11;
6301
e0251f797d59 (svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
KUDr
parents: 6292
diff changeset
   159
	static FeatureFlags DEFAULT_FEATURES() {return FF_MIN_SIZE | FF_ALIGN_RIGHT | FF_ALIGN_BOTTOM;}
6282
c5b92f2d924f (svn r8996) [cpp_gui] -Add: CloseBox added into CaptionBar
KUDr
parents: 6279
diff changeset
   160
c5b92f2d924f (svn r8996) [cpp_gui] -Add: CloseBox added into CaptionBar
KUDr
parents: 6279
diff changeset
   161
protected:
c5b92f2d924f (svn r8996) [cpp_gui] -Add: CloseBox added into CaptionBar
KUDr
parents: 6279
diff changeset
   162
	Point16       m_sizing_offset;
c5b92f2d924f (svn r8996) [cpp_gui] -Add: CloseBox added into CaptionBar
KUDr
parents: 6279
diff changeset
   163
	CaptureTicket m_ticket_sizing;
c5b92f2d924f (svn r8996) [cpp_gui] -Add: CloseBox added into CaptionBar
KUDr
parents: 6279
diff changeset
   164
c5b92f2d924f (svn r8996) [cpp_gui] -Add: CloseBox added into CaptionBar
KUDr
parents: 6279
diff changeset
   165
public:
c5b92f2d924f (svn r8996) [cpp_gui] -Add: CloseBox added into CaptionBar
KUDr
parents: 6279
diff changeset
   166
	ResizeBox()
c5b92f2d924f (svn r8996) [cpp_gui] -Add: CloseBox added into CaptionBar
KUDr
parents: 6279
diff changeset
   167
		: Widget()
c5b92f2d924f (svn r8996) [cpp_gui] -Add: CloseBox added into CaptionBar
KUDr
parents: 6279
diff changeset
   168
	{}
c5b92f2d924f (svn r8996) [cpp_gui] -Add: CloseBox added into CaptionBar
KUDr
parents: 6279
diff changeset
   169
c5b92f2d924f (svn r8996) [cpp_gui] -Add: CloseBox added into CaptionBar
KUDr
parents: 6279
diff changeset
   170
	ResizeBox(CompositeWidget *container)
6301
e0251f797d59 (svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
KUDr
parents: 6292
diff changeset
   171
		: Widget(container, DEFAULT_FEATURES(), STR_RESIZE_BUTTON, COLOUR_PARENT)
e0251f797d59 (svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
KUDr
parents: 6292
diff changeset
   172
	{
e0251f797d59 (svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
KUDr
parents: 6292
diff changeset
   173
		m_min_size = m_max_size = Size16(DEFAULT_WIDTH, DEFAULT_HEIGHT);
e0251f797d59 (svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
KUDr
parents: 6292
diff changeset
   174
	}
6282
c5b92f2d924f (svn r8996) [cpp_gui] -Add: CloseBox added into CaptionBar
KUDr
parents: 6279
diff changeset
   175
6273
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6271
diff changeset
   176
	/*virtual*/ void DrawBackground(EvtPaint &ev);
6282
c5b92f2d924f (svn r8996) [cpp_gui] -Add: CloseBox added into CaptionBar
KUDr
parents: 6279
diff changeset
   177
	void OnCaptureSizing(EvtMouseOver &e);
6273
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6271
diff changeset
   178
6278
c09f5e53af9b (svn r8986) [cpp_gui] -Add: resizing window by dragging ResizeBox
KUDr
parents: 6277
diff changeset
   179
	/*virtual*/ void OnCreate(EvtCreate &ev);
6273
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6271
diff changeset
   180
	/*virtual*/ void OnPaint(EvtPaint &ev);
6282
c5b92f2d924f (svn r8996) [cpp_gui] -Add: CloseBox added into CaptionBar
KUDr
parents: 6279
diff changeset
   181
	/*virtual*/ void OnLeftButtonDown(EvtLeftButtonDown &ev);
c5b92f2d924f (svn r8996) [cpp_gui] -Add: CloseBox added into CaptionBar
KUDr
parents: 6279
diff changeset
   182
	/*virtual*/ void OnResizeParent(EvtResizeParent &ev);
c5b92f2d924f (svn r8996) [cpp_gui] -Add: CloseBox added into CaptionBar
KUDr
parents: 6279
diff changeset
   183
6273
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6271
diff changeset
   184
};
d8a2c6844650 (svn r8981) [cpp_gui] -Add: simple CaptionBar Widget
KUDr
parents: 6271
diff changeset
   185
6264
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
   186
}; // namespace gui
9fc3b5467396 (svn r8931) [cpp_gui] -Add: first OO widget type (TextButton) added only with basic functionality
KUDr
parents:
diff changeset
   187
6289
be3d8bd9fb02 (svn r9010) [cpp_gui] -Add: Sticky button widget
KUDr
parents: 6287
diff changeset
   188
#endif /* WIDGET_TYPES_H */