sptk2 logo
SPTK Home Page
CToolBar.h
1/*
2╔══════════════════════════════════════════════════════════════════════════════╗
3║ SIMPLY POWERFUL TOOLKIT (SPTK) ║
4╟──────────────────────────────────────────────────────────────────────────────╢
5║ copyright © 1999-2022 Alexey Parshin. All rights reserved. ║
6║ email alexeyp@gmail.com ║
7╚══════════════════════════════════════════════════════════════════════════════╝
8┌──────────────────────────────────────────────────────────────────────────────┐
9│ This library is free software; you can redistribute it and/or modify it │
10│ under the terms of the GNU Library General Public License as published by │
11│ the Free Software Foundation; either version 2 of the License, or (at your │
12│ option) any later version. │
13│ │
14│ This library is distributed in the hope that it will be useful, but │
15│ WITHOUT ANY WARRANTY; without even the implied warranty of │
16│ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library │
17│ General Public License for more details. │
18│ │
19│ You should have received a copy of the GNU Library General Public License │
20│ along with this library; if not, write to the Free Software Foundation, │
21│ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. │
22│ │
23│ Please report all bugs and problems to alexeyp@gmail.com. │
24└──────────────────────────────────────────────────────────────────────────────┘
25*/
26
27#pragma once
28
29#include <sptk5/gui/CButton.h>
30#include <sptk5/gui/CGroup.h>
31
32namespace sptk {
33
45class SP_EXPORT CToolBar
46 : public CGroup
47{
51 bool m_colapsed;
52
53public:
58 explicit CToolBar(CLayoutAlign layoutAlign = CLayoutAlign::TOP);
59
60#ifdef __COMPATIBILITY_MODE__
68 CToolBar(int x, int y, int w, int h);
69#endif
70
79 CButton* addButton(CButtonKind buttonKind, Fl_Callback_p cb, const char* label = 0,
80 CLayoutAlign buttonAlign = CLayoutAlign::LEFT);
81
89 virtual void resize(int x, int y, int w, int h);
90
97 virtual bool preferredSize(int& w, int& h);
98
102 bool collapsed() const
103 {
104 return m_colapsed;
105 }
106
110 int handle(int);
111
115 void draw();
116
121 static CLayoutClient* creator(const xdoc::SNode& node);
122
126 virtual String className() const
127 {
128 return "toolbar";
129 }
130};
134} // namespace sptk
Definition: CButton.h:264
SPTK group widget.
Definition: CGroup.h:50
Definition: CLayoutClient.h:82
Toolbar widget.
Definition: CToolBar.h:47
static CLayoutClient * creator(const xdoc::SNode &node)
Creates a widget based on the XML node information.
virtual String className() const
Returns widget class name (internal SPTK RTTI).
Definition: CToolBar.h:126
CButton * addButton(CButtonKind buttonKind, Fl_Callback_p cb, const char *label=0, CLayoutAlign buttonAlign=CLayoutAlign::LEFT)
Creates and adds a new button to the toolbar.
int handle(int)
Special handle() function.
CToolBar(CLayoutAlign layoutAlign=CLayoutAlign::TOP)
Constructor in SPTK style.
virtual void resize(int x, int y, int w, int h)
Resizes the group and inside widgets.
bool collapsed() const
Flag, true if the toolbar is collapsed.
Definition: CToolBar.h:102
void draw()
Draws the toolbar.
virtual bool preferredSize(int &w, int &h)
Computes the optimal group size.
Definition: String.h:49
CLayoutAlign
Definition: CLayoutClient.h:44
CButtonKind
Definition: CButton.h:52
@ TOP
Align to the right.
@ LEFT
Do not use allignment.

Fri Oct 14 2022 09:58:31: SPTK 5.4.1