summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMark Tiefenbruck <mark@fluxbox.org>2007-12-28 05:47:55 (GMT)
committerMark Tiefenbruck <mark@fluxbox.org>2007-12-28 05:47:55 (GMT)
commite8a2f155e8d5a082a8c04f291e65c137c20a05cb (patch)
tree4107154a6c73d518b604aab43371c994ae172624 /src
parent00ceefd8846bda6f4dc43a5a990086545ea28727 (diff)
downloadfluxbox_lack-e8a2f155e8d5a082a8c04f291e65c137c20a05cb.zip
fluxbox_lack-e8a2f155e8d5a082a8c04f291e65c137c20a05cb.tar.bz2
moved Container to FbTk
Diffstat (limited to 'src')
-rw-r--r--src/CompareWindow.hh34
-rw-r--r--src/FbTk/Container.cc (renamed from src/Container.cc)86
-rw-r--r--src/FbTk/Container.hh (renamed from src/Container.hh)41
-rw-r--r--src/FbTk/Makefile.am1
-rw-r--r--src/FbWinFrame.cc25
-rw-r--r--src/FbWinFrame.hh8
-rw-r--r--src/IconbarTool.cc34
-rw-r--r--src/IconbarTool.hh10
-rw-r--r--src/Makefile.am1
9 files changed, 101 insertions, 139 deletions
diff --git a/src/CompareWindow.hh b/src/CompareWindow.hh
deleted file mode 100644
index 48c1dfd..0000000
--- a/src/CompareWindow.hh
+++ /dev/null
@@ -1,34 +0,0 @@
1// CompareWindow.hh for Fluxbox - an X11 Window manager
2// Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org)
3// and Simon Bowden (rathnor at users.sourceforge.net)
4//
5// Permission is hereby granted, free of charge, to any person obtaining a
6// copy of this software and associated documentation files (the "Software"),
7// to deal in the Software without restriction, including without limitation
8// the rights to use, copy, modify, merge, publish, distribute, sublicense,
9// and/or sell copies of the Software, and to permit persons to whom the
10// Software is furnished to do so, subject to the following conditions:
11//
12// The above copyright notice and this permission notice shall be included in
13// all copies or substantial portions of the Software.
14//
15// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
18// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
21// DEALINGS IN THE SOFTWARE.
22
23// $Id$
24
25
26#ifndef COMPAREWINDOW_HH
27#define COMPAREWINDOW_HH
28
29#include "FbTk/CompareEqual.hh"
30#include "FbTk/FbWindow.hh"
31
32typedef FbTk::CompareEqual_base<FbTk::FbWindow, Window> CompareWindow;
33
34#endif // COMPAREWINDOW_HH
diff --git a/src/Container.cc b/src/FbTk/Container.cc
index e2d01c7..9da25c6 100644
--- a/src/Container.cc
+++ b/src/FbTk/Container.cc
@@ -20,24 +20,26 @@
20// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 20// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
21// DEALINGS IN THE SOFTWARE. 21// DEALINGS IN THE SOFTWARE.
22 22
23// $Id$
24
25#include "Container.hh" 23#include "Container.hh"
26 24
27#include "FbTk/Button.hh" 25#include "Button.hh"
28#include "FbTk/EventManager.hh" 26#include "EventManager.hh"
29#include "CompareWindow.hh" 27#include "CompareEqual.hh"
30 28
31#include <algorithm> 29#include <algorithm>
32 30
33Container::Container(const FbTk::FbWindow &parent): 31namespace FbTk {
34 FbTk::FbWindow(parent, 0, 0, 1, 1, ExposureMask), 32
35 m_orientation(FbTk::ROT0), 33typedef CompareEqual_base<FbWindow, Window> CompareWindow;
34
35Container::Container(const FbWindow &parent):
36 FbWindow(parent, 0, 0, 1, 1, ExposureMask),
37 m_orientation(ROT0),
36 m_align(RELATIVE), 38 m_align(RELATIVE),
37 m_max_size_per_client(60), 39 m_max_size_per_client(60),
38 m_max_total_size(0), 40 m_max_total_size(0),
39 m_update_lock(false) { 41 m_update_lock(false) {
40 FbTk::EventManager::instance()->add(*this, *this); 42 EventManager::instance()->add(*this, *this);
41} 43}
42 44
43Container::~Container() { 45Container::~Container() {
@@ -46,26 +48,21 @@ Container::~Container() {
46 48
47void Container::resize(unsigned int width, unsigned int height) { 49void Container::resize(unsigned int width, unsigned int height) {
48 // do we need to resize? 50 // do we need to resize?
49 if (FbTk::FbWindow::width() == width && 51 if (FbWindow::width() == width &&
50 FbTk::FbWindow::height() == height) 52 FbWindow::height() == height)
51 return; 53 return;
52 54
53 FbTk::FbWindow::resize(width, height); 55 FbWindow::resize(width, height);
54 repositionItems(); 56 repositionItems();
55} 57}
56 58
57void Container::moveResize(int x, int y, 59void Container::moveResize(int x, int y,
58 unsigned int width, unsigned int height) { 60 unsigned int width, unsigned int height) {
59 FbTk::FbWindow::moveResize(x, y, width, height); 61 FbWindow::moveResize(x, y, width, height);
60 repositionItems(); 62 repositionItems();
61} 63}
62 64
63#ifdef NOT_USED 65#ifdef NOT_USED
64void Container::move(int x, int y) {
65 FbTk::FbWindow::move(x, y);
66 // no need to reposition
67}
68
69void Container::insertItems(ItemList &item_list, int pos) { 66void Container::insertItems(ItemList &item_list, int pos) {
70 67
71 // make sure all items have parent == this 68 // make sure all items have parent == this
@@ -136,11 +133,11 @@ void Container::moveItem(Item item, int movement) {
136 if (newindex < 0) // neg wrap 133 if (newindex < 0) // neg wrap
137 newindex += size; 134 newindex += size;
138 135
139 ItemList::iterator it = std::find(m_item_list.begin(), 136 ItemList::iterator it = std::find(m_item_list.begin(),
140 m_item_list.end(), 137 m_item_list.end(),
141 item); 138 item);
142 m_item_list.erase(it); 139 m_item_list.erase(it);
143 140
144 for (it = m_item_list.begin(); newindex >= 0; ++it, --newindex) { 141 for (it = m_item_list.begin(); newindex >= 0; ++it, --newindex) {
145 if (newindex == 0) { 142 if (newindex == 0) {
146 break; 143 break;
@@ -177,7 +174,7 @@ bool Container::moveItemTo(Item item, int x, int y) {
177 174
178 ItemList::iterator it = find_if(m_item_list.begin(), 175 ItemList::iterator it = find_if(m_item_list.begin(),
179 m_item_list.end(), 176 m_item_list.end(),
180 CompareWindow(&FbTk::FbWindow::window, 177 CompareWindow(&FbWindow::window,
181 itemwin)); 178 itemwin));
182 // not found :( 179 // not found :(
183 if (it == m_item_list.end()) 180 if (it == m_item_list.end())
@@ -278,7 +275,7 @@ bool Container::tryExposeEvent(XExposeEvent &event) {
278 275
279 ItemList::iterator it = find_if(m_item_list.begin(), 276 ItemList::iterator it = find_if(m_item_list.begin(),
280 m_item_list.end(), 277 m_item_list.end(),
281 CompareWindow(&FbTk::FbWindow::window, 278 CompareWindow(&FbWindow::window,
282 event.window)); 279 event.window));
283 // not found :( 280 // not found :(
284 if (it == m_item_list.end()) 281 if (it == m_item_list.end())
@@ -296,7 +293,7 @@ bool Container::tryButtonPressEvent(XButtonEvent &event) {
296 293
297 ItemList::iterator it = find_if(m_item_list.begin(), 294 ItemList::iterator it = find_if(m_item_list.begin(),
298 m_item_list.end(), 295 m_item_list.end(),
299 CompareWindow(&FbTk::FbWindow::window, 296 CompareWindow(&FbWindow::window,
300 event.window)); 297 event.window));
301 // not found :( 298 // not found :(
302 if (it == m_item_list.end()) 299 if (it == m_item_list.end())
@@ -314,7 +311,7 @@ bool Container::tryButtonReleaseEvent(XButtonEvent &event) {
314 311
315 ItemList::iterator it = find_if(m_item_list.begin(), 312 ItemList::iterator it = find_if(m_item_list.begin(),
316 m_item_list.end(), 313 m_item_list.end(),
317 CompareWindow(&FbTk::FbWindow::window, 314 CompareWindow(&FbWindow::window,
318 event.window)); 315 event.window));
319 // not found :( 316 // not found :(
320 if (it == m_item_list.end()) 317 if (it == m_item_list.end())
@@ -341,7 +338,7 @@ void Container::repositionItems() {
341 unsigned int height; 338 unsigned int height;
342 339
343 // unrotate 340 // unrotate
344 if (m_orientation == FbTk::ROT0 || m_orientation == FbTk::ROT180) { 341 if (m_orientation == ROT0 || m_orientation == ROT180) {
345 total_width = cur_width = width(); 342 total_width = cur_width = width();
346 height = this->height(); 343 height = this->height();
347 } else { 344 } else {
@@ -361,22 +358,21 @@ void Container::repositionItems() {
361 } else 358 } else
362 max_width_per_client = 1; 359 max_width_per_client = 1;
363 } 360 }
364
365 if (total_width != cur_width) { 361 if (total_width != cur_width) {
366 // calling Container::resize here risks infinite loops 362 // calling Container::resize here risks infinite loops
367 unsigned int neww = total_width, newh = height; 363 unsigned int neww = total_width, newh = height;
368 translateSize(m_orientation, neww, newh); 364 translateSize(m_orientation, neww, newh);
369 if (align == RIGHT && m_orientation != FbTk::ROT270 || align == LEFT && m_orientation == FbTk::ROT270) { 365 if (align == RIGHT && m_orientation != ROT270 || align == LEFT && m_orientation == ROT270) {
370 int deltax = 0; 366 int deltax = 0;
371 int deltay = 0; 367 int deltay = 0;
372 if (m_orientation == FbTk::ROT0 || m_orientation == FbTk::ROT180) 368 if (m_orientation == ROT0 || m_orientation == ROT180)
373 deltax = - (total_width - cur_width); 369 deltax = - (total_width - cur_width);
374 else 370 else
375 deltay = - (total_width - cur_width); 371 deltay = - (total_width - cur_width);
376 372
377 FbTk::FbWindow::moveResize(x() + deltax, y() + deltay, neww, newh); 373 FbWindow::moveResize(x() + deltax, y() + deltay, neww, newh);
378 } else { 374 } else {
379 FbTk::FbWindow::resize(neww, newh); 375 FbWindow::resize(neww, newh);
380 } 376 }
381 } 377 }
382 } 378 }
@@ -421,9 +417,9 @@ void Container::repositionItems() {
421 tmpw = max_width_per_client + extra; 417 tmpw = max_width_per_client + extra;
422 tmph = height; 418 tmph = height;
423 419
424 FbTk::translateCoords(m_orientation, tmpx, tmpy, total_width, height); 420 translateCoords(m_orientation, tmpx, tmpy, total_width, height);
425 FbTk::translatePosition(m_orientation, tmpx, tmpy, tmpw, tmph, borderW); 421 translatePosition(m_orientation, tmpx, tmpy, tmpw, tmph, borderW);
426 FbTk::translateSize(m_orientation, tmpw, tmph); 422 translateSize(m_orientation, tmpw, tmph);
427 423
428 // resize each clients including border in size 424 // resize each clients including border in size
429 (*it)->moveResize(tmpx, tmpy, 425 (*it)->moveResize(tmpx, tmpy,
@@ -462,14 +458,14 @@ unsigned int Container::maxWidthPerClient() const {
462 return 1; 458 return 1;
463} 459}
464 460
465void Container::for_each(std::mem_fun_t<void, FbTk::FbWindow> function) { 461void Container::for_each(std::mem_fun_t<void, FbWindow> function) {
466 std::for_each(m_item_list.begin(), 462 std::for_each(m_item_list.begin(),
467 m_item_list.end(), 463 m_item_list.end(),
468 function); 464 function);
469} 465}
470 466
471void Container::setAlpha(unsigned char alpha) { 467void Container::setAlpha(unsigned char alpha) {
472 FbTk::FbWindow::setAlpha(alpha); 468 FbWindow::setAlpha(alpha);
473 ItemList::iterator it = m_item_list.begin(); 469 ItemList::iterator it = m_item_list.begin();
474 ItemList::iterator it_end = m_item_list.end(); 470 ItemList::iterator it_end = m_item_list.end();
475 for (; it != it_end; ++it) 471 for (; it != it_end; ++it)
@@ -477,7 +473,7 @@ void Container::setAlpha(unsigned char alpha) {
477} 473}
478 474
479void Container::parentMoved() { 475void Container::parentMoved() {
480 FbTk::FbWindow::parentMoved(); 476 FbWindow::parentMoved();
481 ItemList::iterator it = m_item_list.begin(); 477 ItemList::iterator it = m_item_list.begin();
482 ItemList::iterator it_end = m_item_list.end(); 478 ItemList::iterator it_end = m_item_list.end();
483 for (; it != it_end; ++it) 479 for (; it != it_end; ++it)
@@ -485,7 +481,7 @@ void Container::parentMoved() {
485} 481}
486 482
487void Container::invalidateBackground() { 483void Container::invalidateBackground() {
488 FbTk::FbWindow::invalidateBackground(); 484 FbWindow::invalidateBackground();
489 ItemList::iterator it = m_item_list.begin(); 485 ItemList::iterator it = m_item_list.begin();
490 ItemList::iterator it_end = m_item_list.end(); 486 ItemList::iterator it_end = m_item_list.end();
491 for (; it != it_end; ++it) 487 for (; it != it_end; ++it)
@@ -500,21 +496,21 @@ void Container::clear() {
500 496
501} 497}
502 498
503void Container::setOrientation(FbTk::Orientation orient) { 499void Container::setOrientation(Orientation orient) {
504 if (m_orientation == orient) 500 if (m_orientation == orient)
505 return; 501 return;
506 502
507 FbTk::FbWindow::invalidateBackground(); 503 FbWindow::invalidateBackground();
508 504
509 ItemList::iterator it = m_item_list.begin(); 505 ItemList::iterator it = m_item_list.begin();
510 ItemList::iterator it_end = m_item_list.end(); 506 ItemList::iterator it_end = m_item_list.end();
511 for (; it != it_end; ++it) 507 for (; it != it_end; ++it)
512 (*it)->setOrientation(orient); 508 (*it)->setOrientation(orient);
513 509
514 if ((m_orientation == FbTk::ROT0 || m_orientation == FbTk::ROT180) && 510 if ((m_orientation == ROT0 || m_orientation == ROT180) &&
515 (orient == FbTk::ROT90 || orient == FbTk::ROT270) || 511 (orient == ROT90 || orient == ROT270) ||
516 (m_orientation == FbTk::ROT90 || m_orientation == FbTk::ROT270) && 512 (m_orientation == ROT90 || m_orientation == ROT270) &&
517 (orient == FbTk::ROT0 || orient == FbTk::ROT180)) { 513 (orient == ROT0 || orient == ROT180)) {
518 // flip width and height 514 // flip width and height
519 m_orientation = orient; 515 m_orientation = orient;
520 resize(height(), width()); 516 resize(height(), width());
@@ -524,3 +520,5 @@ void Container::setOrientation(FbTk::Orientation orient) {
524 } 520 }
525 521
526} 522}
523
524}; // end namespace FbTk
diff --git a/src/Container.hh b/src/FbTk/Container.hh
index 69da43d..7fb1e32 100644
--- a/src/Container.hh
+++ b/src/FbTk/Container.hh
@@ -20,35 +20,33 @@
20// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 20// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
21// DEALINGS IN THE SOFTWARE. 21// DEALINGS IN THE SOFTWARE.
22 22
23// $Id$ 23#ifndef FBTK_CONTAINER_HH
24#define FBTK_CONTAINER_HH
24 25
25#ifndef CONTAINER_HH 26#include "FbWindow.hh"
26#define CONTAINER_HH 27#include "EventHandler.hh"
28#include "NotCopyable.hh"
29#include "Text.hh" // for Orientation
27 30
28#include "FbTk/FbWindow.hh" 31#include <list>
29#include "FbTk/EventHandler.hh" 32#include <functional>
30#include "FbTk/NotCopyable.hh"
31#include "FbTk/Text.hh" // for Orientation
32 33
33namespace FbTk { 34namespace FbTk {
34 class Button;
35}
36 35
37#include <list> 36class Button;
38#include <functional>
39 37
40class Container:public FbTk::FbWindow, public FbTk::EventHandler, private FbTk::NotCopyable { 38class Container: public FbWindow, public EventHandler, private NotCopyable {
41public: 39public:
42 // LEFT, RIGHT => fixed total width, fixed icon size 40 // LEFT, RIGHT => fixed total width, fixed icon size
43 // RELATIVE => fixed total width, relative/variable icon size 41 // RELATIVE => fixed total width, relative/variable icon size
44 enum Alignment { LEFT, RELATIVE, RIGHT }; 42 enum Alignment { LEFT, RELATIVE, RIGHT };
45 typedef FbTk::Button * Item; 43 typedef Button * Item;
46 typedef const FbTk::Button * ConstItem; 44 typedef const Button * ConstItem;
47 typedef std::list<Item> ItemList; 45 typedef std::list<Item> ItemList;
48 46
49 explicit Container(const FbTk::FbWindow &parent); 47 explicit Container(const FbWindow &parent);
50 virtual ~Container(); 48 virtual ~Container();
51 49
52 // manipulators 50 // manipulators
53 51
54 void resize(unsigned int width, unsigned int height); 52 void resize(unsigned int width, unsigned int height);
@@ -68,7 +66,7 @@ public:
68 void setMaxSizePerClient(unsigned int size); 66 void setMaxSizePerClient(unsigned int size);
69 void setMaxTotalSize(unsigned int size); 67 void setMaxTotalSize(unsigned int size);
70 void setAlignment(Alignment a); 68 void setAlignment(Alignment a);
71 void setOrientation(FbTk::Orientation orient); 69 void setOrientation(Orientation orient);
72 70
73 Item back() { return m_item_list.back(); } 71 Item back() { return m_item_list.back(); }
74 72
@@ -89,13 +87,13 @@ public:
89 87
90 /// accessors 88 /// accessors
91 inline Alignment alignment() const { return m_align; } 89 inline Alignment alignment() const { return m_align; }
92 inline FbTk::Orientation orientation() const { return m_orientation; } 90 inline Orientation orientation() const { return m_orientation; }
93 inline int size() const { return m_item_list.size(); } 91 inline int size() const { return m_item_list.size(); }
94 inline bool empty() const { return m_item_list.empty(); } 92 inline bool empty() const { return m_item_list.empty(); }
95 unsigned int maxWidthPerClient() const; 93 unsigned int maxWidthPerClient() const;
96 inline bool updateLock() const { return m_update_lock; } 94 inline bool updateLock() const { return m_update_lock; }
97 95
98 void for_each(std::mem_fun_t<void, FbTk::FbWindow> function); 96 void for_each(std::mem_fun_t<void, FbWindow> function);
99 void setAlpha(unsigned char alpha); // set alpha on all windows 97 void setAlpha(unsigned char alpha); // set alpha on all windows
100 98
101 ItemList::iterator begin() { return m_item_list.begin(); } 99 ItemList::iterator begin() { return m_item_list.begin(); }
@@ -106,7 +104,7 @@ public:
106private: 104private:
107 void repositionItems(); 105 void repositionItems();
108 106
109 FbTk::Orientation m_orientation; 107 Orientation m_orientation;
110 108
111 Alignment m_align; 109 Alignment m_align;
112 unsigned int m_max_size_per_client; 110 unsigned int m_max_size_per_client;
@@ -115,5 +113,6 @@ private:
115 bool m_update_lock; 113 bool m_update_lock;
116}; 114};
117 115
118#endif // CONTAINER_HH 116}; // end namespace FbTk
119 117
118#endif // FBTK_CONTAINER_HH
diff --git a/src/FbTk/Makefile.am b/src/FbTk/Makefile.am
index 75733a7..b3dd277 100644
--- a/src/FbTk/Makefile.am
+++ b/src/FbTk/Makefile.am
@@ -36,6 +36,7 @@ libFbTk_a_SOURCES = App.hh App.cc Color.cc Color.hh Command.hh \
36 XFontImp.cc XFontImp.hh \ 36 XFontImp.cc XFontImp.hh \
37 Button.hh Button.cc \ 37 Button.hh Button.cc \
38 TextButton.hh TextButton.cc \ 38 TextButton.hh TextButton.cc \
39 Container.hh Container.cc \
39 Layer.hh LayerItem.hh MultLayers.cc MultLayers.hh \ 40 Layer.hh LayerItem.hh MultLayers.cc MultLayers.hh \
40 XLayer.cc XLayer.hh XLayerItem.cc XLayerItem.hh \ 41 XLayer.cc XLayer.hh XLayerItem.cc XLayerItem.hh \
41 Resource.hh Resource.cc \ 42 Resource.hh Resource.cc \
diff --git a/src/FbWinFrame.cc b/src/FbWinFrame.cc
index 2c59798..7734497 100644
--- a/src/FbWinFrame.cc
+++ b/src/FbWinFrame.cc
@@ -29,12 +29,11 @@
29#include "FbTk/SimpleCommand.hh" 29#include "FbTk/SimpleCommand.hh"
30#include "FbTk/Compose.hh" 30#include "FbTk/Compose.hh"
31#include "FbTk/Transparent.hh" 31#include "FbTk/Transparent.hh"
32#include "CompareWindow.hh" 32#include "FbTk/CompareEqual.hh"
33#include "FbWinFrameTheme.hh" 33#include "FbWinFrameTheme.hh"
34#include "Screen.hh" 34#include "Screen.hh"
35 35
36#include "IconButton.hh" 36#include "IconButton.hh"
37#include "Container.hh"
38 37
39#ifdef SHAPE 38#ifdef SHAPE
40#include "Shape.hh" 39#include "Shape.hh"
@@ -150,7 +149,7 @@ bool FbWinFrame::setTabMode(TabMode tabmode) {
150 } else { 149 } else {
151 m_tab_container.setUpdateLock(true); 150 m_tab_container.setUpdateLock(true);
152 151
153 m_tab_container.setAlignment(Container::RELATIVE); 152 m_tab_container.setAlignment(FbTk::Container::RELATIVE);
154 m_tab_container.setOrientation(FbTk::ROT0); 153 m_tab_container.setOrientation(FbTk::ROT0);
155 if (m_tab_container.parent()->window() == m_screen.rootWindow().window()) { 154 if (m_tab_container.parent()->window() == m_screen.rootWindow().window()) {
156 m_layeritem.removeWindow(m_tab_container); 155 m_layeritem.removeWindow(m_tab_container);
@@ -336,7 +335,7 @@ void FbWinFrame::alignTabs() {
336 case TOPLEFT: 335 case TOPLEFT:
337 if (orig_orient != FbTk::ROT0) m_tab_container.hide(); 336 if (orig_orient != FbTk::ROT0) m_tab_container.hide();
338 m_tab_container.setOrientation(FbTk::ROT0); 337 m_tab_container.setOrientation(FbTk::ROT0);
339 m_tab_container.setAlignment(Container::LEFT); 338 m_tab_container.setAlignment(FbTk::Container::LEFT);
340 m_tab_container.setMaxTotalSize(m_window.width()); 339 m_tab_container.setMaxTotalSize(m_window.width());
341 tabx = x(); 340 tabx = x();
342 taby = y() - yOffset(); 341 taby = y() - yOffset();
@@ -344,7 +343,7 @@ void FbWinFrame::alignTabs() {
344 case TOPRIGHT: 343 case TOPRIGHT:
345 if (orig_orient != FbTk::ROT0) m_tab_container.hide(); 344 if (orig_orient != FbTk::ROT0) m_tab_container.hide();
346 m_tab_container.setOrientation(FbTk::ROT0); 345 m_tab_container.setOrientation(FbTk::ROT0);
347 m_tab_container.setAlignment(Container::RIGHT); 346 m_tab_container.setAlignment(FbTk::Container::RIGHT);
348 m_tab_container.setMaxTotalSize(m_window.width()); 347 m_tab_container.setMaxTotalSize(m_window.width());
349 tabx = x() + width() - m_tab_container.width(); 348 tabx = x() + width() - m_tab_container.width();
350 taby = y() - yOffset(); 349 taby = y() - yOffset();
@@ -352,7 +351,7 @@ void FbWinFrame::alignTabs() {
352 case LEFTTOP: 351 case LEFTTOP:
353 if (orig_orient != FbTk::ROT270) m_tab_container.hide(); 352 if (orig_orient != FbTk::ROT270) m_tab_container.hide();
354 m_tab_container.setOrientation(FbTk::ROT270); 353 m_tab_container.setOrientation(FbTk::ROT270);
355 m_tab_container.setAlignment(Container::RIGHT); 354 m_tab_container.setAlignment(FbTk::Container::RIGHT);
356 m_tab_container.setMaxTotalSize(m_window.height()); 355 m_tab_container.setMaxTotalSize(m_window.height());
357 tabx = x() - xOffset(); 356 tabx = x() - xOffset();
358 taby = y(); 357 taby = y();
@@ -360,7 +359,7 @@ void FbWinFrame::alignTabs() {
360 case LEFTBOTTOM: 359 case LEFTBOTTOM:
361 if (orig_orient != FbTk::ROT270) m_tab_container.hide(); 360 if (orig_orient != FbTk::ROT270) m_tab_container.hide();
362 m_tab_container.setOrientation(FbTk::ROT270); 361 m_tab_container.setOrientation(FbTk::ROT270);
363 m_tab_container.setAlignment(Container::LEFT); 362 m_tab_container.setAlignment(FbTk::Container::LEFT);
364 m_tab_container.setMaxTotalSize(m_window.height()); 363 m_tab_container.setMaxTotalSize(m_window.height());
365 tabx = x() - xOffset(); 364 tabx = x() - xOffset();
366 taby = y() + height() - m_tab_container.height(); 365 taby = y() + height() - m_tab_container.height();
@@ -368,7 +367,7 @@ void FbWinFrame::alignTabs() {
368 case RIGHTTOP: 367 case RIGHTTOP:
369 if (orig_orient != FbTk::ROT90) m_tab_container.hide(); 368 if (orig_orient != FbTk::ROT90) m_tab_container.hide();
370 m_tab_container.setOrientation(FbTk::ROT90); 369 m_tab_container.setOrientation(FbTk::ROT90);
371 m_tab_container.setAlignment(Container::LEFT); 370 m_tab_container.setAlignment(FbTk::Container::LEFT);
372 m_tab_container.setMaxTotalSize(m_window.height()); 371 m_tab_container.setMaxTotalSize(m_window.height());
373 tabx = x() + width() + m_window.borderWidth(); 372 tabx = x() + width() + m_window.borderWidth();
374 taby = y(); 373 taby = y();
@@ -376,7 +375,7 @@ void FbWinFrame::alignTabs() {
376 case RIGHTBOTTOM: 375 case RIGHTBOTTOM:
377 if (orig_orient != FbTk::ROT90) m_tab_container.hide(); 376 if (orig_orient != FbTk::ROT90) m_tab_container.hide();
378 m_tab_container.setOrientation(FbTk::ROT90); 377 m_tab_container.setOrientation(FbTk::ROT90);
379 m_tab_container.setAlignment(Container::RIGHT); 378 m_tab_container.setAlignment(FbTk::Container::RIGHT);
380 m_tab_container.setMaxTotalSize(m_window.height()); 379 m_tab_container.setMaxTotalSize(m_window.height());
381 tabx = x() + width() + m_window.borderWidth(); 380 tabx = x() + width() + m_window.borderWidth();
382 taby = y() + height() - m_tab_container.height(); 381 taby = y() + height() - m_tab_container.height();
@@ -384,7 +383,7 @@ void FbWinFrame::alignTabs() {
384 case BOTTOMLEFT: 383 case BOTTOMLEFT:
385 if (orig_orient != FbTk::ROT0) m_tab_container.hide(); 384 if (orig_orient != FbTk::ROT0) m_tab_container.hide();
386 m_tab_container.setOrientation(FbTk::ROT0); 385 m_tab_container.setOrientation(FbTk::ROT0);
387 m_tab_container.setAlignment(Container::LEFT); 386 m_tab_container.setAlignment(FbTk::Container::LEFT);
388 m_tab_container.setMaxTotalSize(m_window.width()); 387 m_tab_container.setMaxTotalSize(m_window.width());
389 tabx = x(); 388 tabx = x();
390 taby = y() + height() + m_window.borderWidth(); 389 taby = y() + height() + m_window.borderWidth();
@@ -392,7 +391,7 @@ void FbWinFrame::alignTabs() {
392 case BOTTOMRIGHT: 391 case BOTTOMRIGHT:
393 if (orig_orient != FbTk::ROT0) m_tab_container.hide(); 392 if (orig_orient != FbTk::ROT0) m_tab_container.hide();
394 m_tab_container.setOrientation(FbTk::ROT0); 393 m_tab_container.setOrientation(FbTk::ROT0);
395 m_tab_container.setAlignment(Container::RIGHT); 394 m_tab_container.setAlignment(FbTk::Container::RIGHT);
396 m_tab_container.setMaxTotalSize(m_window.width()); 395 m_tab_container.setMaxTotalSize(m_window.width());
397 tabx = x() + width() - m_tab_container.width(); 396 tabx = x() + width() - m_tab_container.width();
398 taby = y() + height() + m_window.borderWidth(); 397 taby = y() + height() + m_window.borderWidth();
@@ -1453,8 +1452,8 @@ void FbWinFrame::applyTabContainer() {
1453 m_tab_container.setBackgroundColor(*tabcontainer_color); 1452 m_tab_container.setBackgroundColor(*tabcontainer_color);
1454 1453
1455 // and the labelbuttons in it 1454 // and the labelbuttons in it
1456 Container::ItemList::iterator btn_it = m_tab_container.begin(); 1455 FbTk::Container::ItemList::iterator btn_it = m_tab_container.begin();
1457 Container::ItemList::iterator btn_it_end = m_tab_container.end(); 1456 FbTk::Container::ItemList::iterator btn_it_end = m_tab_container.end();
1458 for (; btn_it != btn_it_end; ++btn_it) { 1457 for (; btn_it != btn_it_end; ++btn_it) {
1459 IconButton *btn = static_cast<IconButton *>(*btn_it); 1458 IconButton *btn = static_cast<IconButton *>(*btn_it);
1460 btn->reconfigTheme(); 1459 btn->reconfigTheme();
diff --git a/src/FbWinFrame.hh b/src/FbWinFrame.hh
index 7b561ee..69ff020 100644
--- a/src/FbWinFrame.hh
+++ b/src/FbWinFrame.hh
@@ -33,7 +33,7 @@
33#include "FbTk/XLayerItem.hh" 33#include "FbTk/XLayerItem.hh"
34#include "FbTk/TextButton.hh" 34#include "FbTk/TextButton.hh"
35#include "FbTk/DefaultValue.hh" 35#include "FbTk/DefaultValue.hh"
36#include "Container.hh" 36#include "FbTk/Container.hh"
37#include "Shape.hh" 37#include "Shape.hh"
38 38
39#include <vector> 39#include <vector>
@@ -246,8 +246,8 @@ public:
246 inline const FbTk::FbWindow &label() const { return m_label; } 246 inline const FbTk::FbWindow &label() const { return m_label; }
247 inline FbTk::FbWindow &label() { return m_label; } 247 inline FbTk::FbWindow &label() { return m_label; }
248 248
249 inline const Container &tabcontainer() const { return m_tab_container; } 249 inline const FbTk::Container &tabcontainer() const { return m_tab_container; }
250 inline Container &tabcontainer() { return m_tab_container; } 250 inline FbTk::Container &tabcontainer() { return m_tab_container; }
251 251
252 /// @return clientarea window 252 /// @return clientarea window
253 inline const FbTk::FbWindow &clientArea() const { return m_clientarea; } 253 inline const FbTk::FbWindow &clientArea() const { return m_clientarea; }
@@ -332,7 +332,7 @@ private:
332 FbTk::XLayerItem m_layeritem; 332 FbTk::XLayerItem m_layeritem;
333 333
334 FbTk::FbWindow m_titlebar; ///< titlebar window 334 FbTk::FbWindow m_titlebar; ///< titlebar window
335 Container m_tab_container; ///< Holds tabs 335 FbTk::Container m_tab_container; ///< Holds tabs
336 FbTk::TextButton m_label; ///< holds title 336 FbTk::TextButton m_label; ///< holds title
337 FbTk::FbWindow m_handle; ///< handle between grips 337 FbTk::FbWindow m_handle; ///< handle between grips
338 FbTk::FbWindow m_grip_right, ///< rightgrip 338 FbTk::FbWindow m_grip_right, ///< rightgrip
diff --git a/src/IconbarTool.cc b/src/IconbarTool.cc
index 294754c..de56569 100644
--- a/src/IconbarTool.cc
+++ b/src/IconbarTool.cc
@@ -69,31 +69,31 @@ using std::endl;
69namespace FbTk { 69namespace FbTk {
70 70
71template<> 71template<>
72void FbTk::Resource<Container::Alignment>::setDefaultValue() { 72void FbTk::Resource<FbTk::Container::Alignment>::setDefaultValue() {
73 m_value = Container::RELATIVE; 73 m_value = FbTk::Container::RELATIVE;
74} 74}
75 75
76template<> 76template<>
77string FbTk::Resource<Container::Alignment>::getString() const { 77string FbTk::Resource<FbTk::Container::Alignment>::getString() const {
78 switch (m_value) { 78 switch (m_value) {
79 case Container::LEFT: 79 case FbTk::Container::LEFT:
80 return string("Left"); 80 return string("Left");
81 case Container::RIGHT: 81 case FbTk::Container::RIGHT:
82 return string("Right"); 82 return string("Right");
83 case Container::RELATIVE: 83 case FbTk::Container::RELATIVE:
84 return string("Relative"); 84 return string("Relative");
85 } 85 }
86 return string("Left"); 86 return string("Left");
87} 87}
88 88
89template<> 89template<>
90void FbTk::Resource<Container::Alignment>::setFromString(const char *str) { 90void FbTk::Resource<FbTk::Container::Alignment>::setFromString(const char *str) {
91 if (strcasecmp(str, "Left") == 0) 91 if (strcasecmp(str, "Left") == 0)
92 m_value = Container::LEFT; 92 m_value = FbTk::Container::LEFT;
93 else if (strcasecmp(str, "Right") == 0) 93 else if (strcasecmp(str, "Right") == 0)
94 m_value = Container::RIGHT; 94 m_value = FbTk::Container::RIGHT;
95 else if (strcasecmp(str, "Relative") == 0) 95 else if (strcasecmp(str, "Relative") == 0)
96 m_value = Container::RELATIVE; 96 m_value = FbTk::Container::RELATIVE;
97 else 97 else
98 setDefaultValue(); 98 setDefaultValue();
99} 99}
@@ -124,7 +124,7 @@ private:
124class ToolbarAlignMenuItem: public FbTk::MenuItem { 124class ToolbarAlignMenuItem: public FbTk::MenuItem {
125public: 125public:
126 ToolbarAlignMenuItem(const FbTk::FbString &label, IconbarTool &handler, 126 ToolbarAlignMenuItem(const FbTk::FbString &label, IconbarTool &handler,
127 Container::Alignment mode, 127 FbTk::Container::Alignment mode,
128 FbTk::RefCount<FbTk::Command> &cmd): 128 FbTk::RefCount<FbTk::Command> &cmd):
129 FbTk::MenuItem(label, cmd), m_handler(handler), m_mode(mode) { 129 FbTk::MenuItem(label, cmd), m_handler(handler), m_mode(mode) {
130 setCloseOnClick(false); 130 setCloseOnClick(false);
@@ -137,7 +137,7 @@ public:
137 137
138private: 138private:
139 IconbarTool &m_handler; 139 IconbarTool &m_handler;
140 Container::Alignment m_mode; 140 FbTk::Container::Alignment m_mode;
141}; 141};
142 142
143void setupModeMenu(FbTk::Menu &menu, IconbarTool &handler) { 143void setupModeMenu(FbTk::Menu &menu, IconbarTool &handler) {
@@ -194,17 +194,17 @@ void setupModeMenu(FbTk::Menu &menu, IconbarTool &handler) {
194 menu.insert(new ToolbarAlignMenuItem( 194 menu.insert(new ToolbarAlignMenuItem(
195 _FB_XTEXT(Align, Left, "Left", "Align to the left"), 195 _FB_XTEXT(Align, Left, "Left", "Align to the left"),
196 handler, 196 handler,
197 Container::LEFT, saverc_cmd)); 197 FbTk::Container::LEFT, saverc_cmd));
198 198
199 menu.insert(new ToolbarAlignMenuItem( 199 menu.insert(new ToolbarAlignMenuItem(
200 _FB_XTEXT(Align, Relative, "Relative", "Align relative to the width"), 200 _FB_XTEXT(Align, Relative, "Relative", "Align relative to the width"),
201 handler, 201 handler,
202 Container::RELATIVE, saverc_cmd)); 202 FbTk::Container::RELATIVE, saverc_cmd));
203 203
204 menu.insert(new ToolbarAlignMenuItem( 204 menu.insert(new ToolbarAlignMenuItem(
205 _FB_XTEXT(Align, Right, "Right", "Align to the right"), 205 _FB_XTEXT(Align, Right, "Right", "Align to the right"),
206 handler, 206 handler,
207 Container::RIGHT, saverc_cmd)); 207 FbTk::Container::RIGHT, saverc_cmd));
208 208
209 menu.insert(new FbTk::MenuSeparator()); 209 menu.insert(new FbTk::MenuSeparator());
210 210
@@ -266,7 +266,7 @@ IconbarTool::IconbarTool(const FbTk::FbWindow &parent, IconbarTheme &theme,
266 m_mode("none"), 266 m_mode("none"),
267 m_rc_mode(screen.resourceManager(), "{static groups} (workspace)", 267 m_rc_mode(screen.resourceManager(), "{static groups} (workspace)",
268 screen.name() + ".iconbar.mode", screen.altName() + ".Iconbar.Mode"), 268 screen.name() + ".iconbar.mode", screen.altName() + ".Iconbar.Mode"),
269 m_rc_alignment(screen.resourceManager(), Container::LEFT, 269 m_rc_alignment(screen.resourceManager(), FbTk::Container::LEFT,
270 screen.name() + ".iconbar.alignment", screen.altName() + ".Iconbar.Alignment"), 270 screen.name() + ".iconbar.alignment", screen.altName() + ".Iconbar.Alignment"),
271 m_rc_client_width(screen.resourceManager(), 70, 271 m_rc_client_width(screen.resourceManager(), 70,
272 screen.name() + ".iconbar.iconWidth", screen.altName() + ".Iconbar.IconWidth"), 272 screen.name() + ".iconbar.iconWidth", screen.altName() + ".Iconbar.IconWidth"),
@@ -331,7 +331,7 @@ void IconbarTool::hide() {
331 m_icon_container.hide(); 331 m_icon_container.hide();
332} 332}
333 333
334void IconbarTool::setAlignment(Container::Alignment align) { 334void IconbarTool::setAlignment(FbTk::Container::Alignment align) {
335 *m_rc_alignment = align; 335 *m_rc_alignment = align;
336 update(0); 336 update(0);
337 m_menu.reconfigure(); 337 m_menu.reconfigure();
diff --git a/src/IconbarTool.hh b/src/IconbarTool.hh
index e1bebe3..3111875 100644
--- a/src/IconbarTool.hh
+++ b/src/IconbarTool.hh
@@ -26,10 +26,10 @@
26#define ICONBARTOOL_HH 26#define ICONBARTOOL_HH
27 27
28#include "ToolbarItem.hh" 28#include "ToolbarItem.hh"
29#include "Container.hh"
30#include "FbMenu.hh" 29#include "FbMenu.hh"
31#include "FocusableList.hh" 30#include "FocusableList.hh"
32 31
32#include "FbTk/Container.hh"
33#include "FbTk/CachedPixmap.hh" 33#include "FbTk/CachedPixmap.hh"
34#include "FbTk/Observer.hh" 34#include "FbTk/Observer.hh"
35#include "FbTk/Resource.hh" 35#include "FbTk/Resource.hh"
@@ -60,7 +60,7 @@ public:
60 void update(FbTk::Subject *subj); 60 void update(FbTk::Subject *subj);
61 void show(); 61 void show();
62 void hide(); 62 void hide();
63 void setAlignment(Container::Alignment a); 63 void setAlignment(FbTk::Container::Alignment a);
64 void setMode(std::string mode); 64 void setMode(std::string mode);
65 void parentMoved() { m_icon_container.parentMoved(); } 65 void parentMoved() { m_icon_container.parentMoved(); }
66 66
@@ -71,7 +71,7 @@ public:
71 std::string mode() const { return *m_rc_mode; } 71 std::string mode() const { return *m_rc_mode; }
72 72
73 void setOrientation(FbTk::Orientation orient); 73 void setOrientation(FbTk::Orientation orient);
74 Container::Alignment alignment() const { return m_icon_container.alignment(); } 74 FbTk::Container::Alignment alignment() const { return m_icon_container.alignment(); }
75 75
76 const BScreen &screen() const { return m_screen; } 76 const BScreen &screen() const { return m_screen; }
77private: 77private:
@@ -99,7 +99,7 @@ private:
99 void updateList(); 99 void updateList();
100 100
101 BScreen &m_screen; 101 BScreen &m_screen;
102 Container m_icon_container; 102 FbTk::Container m_icon_container;
103 IconbarTheme &m_theme; 103 IconbarTheme &m_theme;
104 FbTk::CachedPixmap m_empty_pm; ///< pixmap for empty container 104 FbTk::CachedPixmap m_empty_pm; ///< pixmap for empty container
105 105
@@ -108,7 +108,7 @@ private:
108 IconMap m_icons; 108 IconMap m_icons;
109 std::string m_mode; 109 std::string m_mode;
110 FbTk::Resource<std::string> m_rc_mode; 110 FbTk::Resource<std::string> m_rc_mode;
111 FbTk::Resource<Container::Alignment> m_rc_alignment; ///< alignment of buttons 111 FbTk::Resource<FbTk::Container::Alignment> m_rc_alignment; ///< alignment of buttons
112 FbTk::Resource<int> m_rc_client_width; ///< size of client button in LEFT/RIGHT mode 112 FbTk::Resource<int> m_rc_client_width; ///< size of client button in LEFT/RIGHT mode
113 FbTk::Resource<unsigned int> m_rc_client_padding; ///< padding of the text 113 FbTk::Resource<unsigned int> m_rc_client_padding; ///< padding of the text
114 FbTk::Resource<bool> m_rc_use_pixmap; ///< if iconbar should use win pixmap or not 114 FbTk::Resource<bool> m_rc_use_pixmap; ///< if iconbar should use win pixmap or not
diff --git a/src/Makefile.am b/src/Makefile.am
index 6b29c1a..d7ed54d 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -119,7 +119,6 @@ fluxbox_SOURCES = AtomHandler.hh ArrowButton.hh ArrowButton.cc \
119 WorkspaceCmd.hh WorkspaceCmd.cc \ 119 WorkspaceCmd.hh WorkspaceCmd.cc \
120 Shape.hh Shape.cc \ 120 Shape.hh Shape.cc \
121 MenuTheme.hh MenuTheme.cc \ 121 MenuTheme.hh MenuTheme.cc \
122 Container.hh Container.cc \
123 CommandDialog.hh CommandDialog.cc SendToMenu.hh SendToMenu.cc \ 122 CommandDialog.hh CommandDialog.cc SendToMenu.hh SendToMenu.cc \
124 AlphaMenu.hh AlphaMenu.cc ObjectResource.hh \ 123 AlphaMenu.hh AlphaMenu.cc ObjectResource.hh \
125 CompareWindow.hh \ 124 CompareWindow.hh \