blob: 145651a3540b36cb29444947bc9c8e80d63da6c5 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
#ifdef USE_TILE_LOCAL
#ifndef TILEREG_TAB_H
#define TILEREG_TAB_H
#include "tilereg-grid.h"
// A region that contains multiple region, selectable by tabs.
class TabbedRegion : public GridRegion
{
public:
TabbedRegion(const TileRegionInit &init);
virtual ~TabbedRegion();
enum
{
TAB_OFS_UNSELECTED,
TAB_OFS_MOUSEOVER,
TAB_OFS_SELECTED,
TAB_OFS_MAX
};
int push_tab_region(GridRegion *reg, tileidx_t tile_tab);
int push_tab_button(command_type cmd, tileidx_t tile_tab);
GridRegion *get_tab_region(int idx);
tileidx_t get_tab_tile(int idx);
void activate_tab(int idx);
void deactivate_tab();
int active_tab() const;
int num_tabs() const;
void enable_tab(int idx);
void disable_tab(int idx);
int find_tab(string tab_name) const;
void set_small_layout(bool use_small_layout, const coord_def &windowsz);
virtual void update();
virtual void clear();
virtual void render();
virtual void on_resize();
virtual int handle_mouse(MouseEvent &event);
virtual bool update_tip_text(string &tip);
virtual bool update_tab_tip_text(string &tip, bool active);
virtual bool update_alt_text(string &alt);
virtual const string name() const { return ""; }
protected:
virtual void pack_buffers();
virtual void draw_tag();
virtual void activate() {}
bool invalid_index(int idx) const;
bool active_is_valid() const;
// Returns the tab the mouse is over, -1 if none.
int get_mouseover_tab(MouseEvent &event) const;
void set_icon_pos(int idx);
void reset_icons(int from_idx);
int m_active;
int m_mouse_tab;
bool m_use_small_layout;
bool m_is_deactivated;
TileBuffer m_buf_gui;
struct TabInfo
{
GridRegion *reg;
command_type cmd;
tileidx_t tile_tab;
int ofs_y;
int min_y;
int max_y;
int height;
bool enabled;
};
vector<TabInfo> m_tabs;
private:
int _push_tab(GridRegion *reg, command_type cmd, tileidx_t tile_tab);
};
#endif
#endif
|