aboutsummaryrefslogtreecommitdiff
path: root/src/Toolbar.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/Toolbar.cc')
-rw-r--r--src/Toolbar.cc75
1 files changed, 27 insertions, 48 deletions
diff --git a/src/Toolbar.cc b/src/Toolbar.cc
index 3919a19..ccd9fbb 100644
--- a/src/Toolbar.cc
+++ b/src/Toolbar.cc
@@ -84,33 +84,12 @@ using std::list;
84 84
85using FbTk::STLUtil::forAll; 85using FbTk::STLUtil::forAll;
86 86
87namespace FbTk {
88
89template<>
90const EnumTraits<Toolbar::Placement>::Pair EnumTraits<Toolbar::Placement>::s_map[] = {
91 { "TopLeft", Toolbar::TOPLEFT },
92 { "TopCenter", Toolbar::TOPCENTER },
93 { "TopRight", Toolbar::TOPRIGHT },
94 { "BottomLeft", Toolbar::BOTTOMLEFT },
95 { "BottomCenter", Toolbar::BOTTOMCENTER },
96 { "BottomRight", Toolbar::BOTTOMRIGHT },
97 { "LeftBottom", Toolbar::LEFTBOTTOM },
98 { "LeftCenter", Toolbar::LEFTCENTER },
99 { "LeftTop", Toolbar::LEFTTOP },
100 { "RightBottom", Toolbar::RIGHTBOTTOM },
101 { "RightCenter", Toolbar::RIGHTCENTER },
102 { "RightTop", Toolbar::RIGHTTOP },
103 { NULL, Toolbar::RIGHTTOP }
104};
105
106} // end namespace FbTk
107
108namespace { 87namespace {
109 88
110class PlaceToolbarMenuItem: public FbTk::RadioMenuItem { 89class PlaceToolbarMenuItem: public FbTk::RadioMenuItem {
111public: 90public:
112 PlaceToolbarMenuItem(const FbTk::FbString &label, Toolbar &toolbar, 91 PlaceToolbarMenuItem(const FbTk::FbString &label, Toolbar &toolbar,
113 Toolbar::Placement place): 92 Placement place):
114 FbTk::RadioMenuItem(label), m_toolbar(toolbar), m_place(place) { 93 FbTk::RadioMenuItem(label), m_toolbar(toolbar), m_place(place) {
115 setCloseOnClick(false); 94 setCloseOnClick(false);
116 } 95 }
@@ -123,7 +102,7 @@ public:
123 } 102 }
124private: 103private:
125 Toolbar &m_toolbar; 104 Toolbar &m_toolbar;
126 Toolbar::Placement m_place; 105 Placement m_place;
127}; 106};
128 107
129} // end anonymous 108} // end anonymous
@@ -160,15 +139,15 @@ Toolbar::Toolbar(BScreen &scrn, FbTk::Layer &layer, size_t width):
160 m_layeritem(frame.window, layer), 139 m_layeritem(frame.window, layer),
161 m_layermenu(new LayerMenu(scrn.menuTheme(), 140 m_layermenu(new LayerMenu(scrn.menuTheme(),
162 scrn.imageControl(), 141 scrn.imageControl(),
163 *scrn.layerManager().getLayer(ResourceLayer::MENU), 142 *scrn.layerManager().getLayer(LAYERMENU),
164 this, 143 this,
165 true)), 144 true)),
166 m_placementmenu(new FbMenu(scrn.menuTheme(), 145 m_placementmenu(new FbMenu(scrn.menuTheme(),
167 scrn.imageControl(), 146 scrn.imageControl(),
168 *scrn.layerManager().getLayer(ResourceLayer::MENU))), 147 *scrn.layerManager().getLayer(LAYERMENU))),
169 m_toolbarmenu(new FbMenu(scrn.menuTheme(), 148 m_toolbarmenu(new FbMenu(scrn.menuTheme(),
170 scrn.imageControl(), 149 scrn.imageControl(),
171 *scrn.layerManager().getLayer(ResourceLayer::MENU))), 150 *scrn.layerManager().getLayer(LAYERMENU))),
172#ifdef XINERAMA 151#ifdef XINERAMA
173 m_xineramaheadmenu(0), 152 m_xineramaheadmenu(0),
174#endif // XINERAMA 153#endif // XINERAMA
@@ -180,9 +159,9 @@ Toolbar::Toolbar(BScreen &scrn, FbTk::Layer &layer, size_t width):
180 m_rc_visible(scrn.resourceManager(), true, scrn.name() + ".toolbar.visible"), 159 m_rc_visible(scrn.resourceManager(), true, scrn.name() + ".toolbar.visible"),
181 m_rc_width_percent(scrn.resourceManager(), 100, scrn.name() + ".toolbar.widthPercent"), 160 m_rc_width_percent(scrn.resourceManager(), 100, scrn.name() + ".toolbar.widthPercent"),
182 m_rc_alpha(scrn.resourceManager(), 255, scrn.name() + ".toolbar.alpha"), 161 m_rc_alpha(scrn.resourceManager(), 255, scrn.name() + ".toolbar.alpha"),
183 m_rc_layernum(scrn.resourceManager(), ResourceLayer::DOCK, scrn.name() + ".toolbar.layer"), 162 m_rc_layernum(scrn.resourceManager(), LAYERDOCK, scrn.name() + ".toolbar.layer"),
184 m_rc_on_head(scrn.resourceManager(), 1, scrn.name() + ".toolbar.onhead"), 163 m_rc_on_head(scrn.resourceManager(), 1, scrn.name() + ".toolbar.onhead"),
185 m_rc_placement(scrn.resourceManager(), Toolbar::BOTTOMCENTER, 164 m_rc_placement(scrn.resourceManager(), BOTTOMCENTER,
186 scrn.name() + ".toolbar.placement"), 165 scrn.name() + ".toolbar.placement"),
187 m_rc_height(scrn.resourceManager(), 0, scrn.name() + ".toolbar.height"), 166 m_rc_height(scrn.resourceManager(), 0, scrn.name() + ".toolbar.height"),
188 m_rc_tools(scrn.resourceManager(), "prevworkspace, workspacename, nextworkspace, iconbar, systemtray, clock", 167 m_rc_tools(scrn.resourceManager(), "prevworkspace, workspacename, nextworkspace, iconbar, systemtray, clock",
@@ -423,7 +402,7 @@ void Toolbar::reconfigure() {
423 frame.window.setBackgroundColor(theme()->toolbar().color()); 402 frame.window.setBackgroundColor(theme()->toolbar().color());
424 } else { 403 } else {
425 FbTk::Orientation orient = FbTk::ROT0; 404 FbTk::Orientation orient = FbTk::ROT0;
426 Toolbar::Placement where = *m_rc_placement; 405 Placement where = *m_rc_placement;
427 if (where == LEFTCENTER || where == LEFTTOP || where == LEFTBOTTOM) 406 if (where == LEFTCENTER || where == LEFTTOP || where == LEFTBOTTOM)
428 orient = FbTk::ROT270; 407 orient = FbTk::ROT270;
429 if (where == RIGHTCENTER || where == RIGHTTOP || where == RIGHTBOTTOM) 408 if (where == RIGHTCENTER || where == RIGHTTOP || where == RIGHTBOTTOM)
@@ -554,7 +533,7 @@ void Toolbar::handleEvent(XEvent &event) {
554*/ 533*/
555} 534}
556 535
557void Toolbar::setPlacement(Toolbar::Placement where) { 536void Toolbar::setPlacement(Placement where) {
558 // disable vertical toolbar 537 // disable vertical toolbar
559 538
560 *m_rc_placement = where; 539 *m_rc_placement = where;
@@ -732,7 +711,7 @@ void Toolbar::toggleHidden() {
732 711
733void Toolbar::moveToLayer(int layernum) { 712void Toolbar::moveToLayer(int layernum) {
734 m_layeritem.moveToLayer(layernum); 713 m_layeritem.moveToLayer(layernum);
735 *m_rc_layernum = static_cast<ResourceLayer::Type>(layernum); 714 *m_rc_layernum = static_cast<LayerType>(layernum);
736} 715}
737 716
738void Toolbar::setupMenus(bool skip_new_placement) { 717void Toolbar::setupMenus(bool skip_new_placement) {
@@ -788,7 +767,7 @@ void Toolbar::setupMenus(bool skip_new_placement) {
788 if (screen().hasXinerama()) { 767 if (screen().hasXinerama()) {
789 m_xineramaheadmenu.reset( new XineramaHeadMenu<Toolbar>(screen().menuTheme(), 768 m_xineramaheadmenu.reset( new XineramaHeadMenu<Toolbar>(screen().menuTheme(),
790 screen(), screen().imageControl(), 769 screen(), screen().imageControl(),
791 *screen().layerManager().getLayer(::ResourceLayer::MENU), *this, 770 *screen().layerManager().getLayer(LAYERMENU), *this,
792 _FB_XTEXT(Toolbar, OnHead, "Toolbar on Head", 771 _FB_XTEXT(Toolbar, OnHead, "Toolbar on Head",
793 "Title of toolbar on head menu"))); 772 "Title of toolbar on head menu")));
794 menu()->insert(_FB_XTEXT(Menu, OnHead, "On Head...", "Title of On Head menu"), 773 menu()->insert(_FB_XTEXT(Menu, OnHead, "On Head...", "Title of On Head menu"),
@@ -801,25 +780,25 @@ void Toolbar::setupMenus(bool skip_new_placement) {
801 if (!skip_new_placement) { 780 if (!skip_new_placement) {
802 struct PlacementP { 781 struct PlacementP {
803 const FbTk::FbString label; 782 const FbTk::FbString label;
804 Toolbar::Placement placement; 783 Placement placement;
805 }; 784 };
806 785
807 static const PlacementP place_menu[] = { 786 static const PlacementP place_menu[] = {
808 { _FB_XTEXT(Align, TopLeft, "Top Left", "Top Left"), Toolbar::TOPLEFT}, 787 { _FB_XTEXT(Align, TopLeft, "Top Left", "Top Left"), TOPLEFT},
809 { _FB_XTEXT(Align, LeftTop, "Left Top", "Left Top"), Toolbar::LEFTTOP}, 788 { _FB_XTEXT(Align, LeftTop, "Left Top", "Left Top"), LEFTTOP},
810 { _FB_XTEXT(Align, LeftCenter, "Left Center", "Left Center"), Toolbar::LEFTCENTER}, 789 { _FB_XTEXT(Align, LeftCenter, "Left Center", "Left Center"), LEFTCENTER},
811 { _FB_XTEXT(Align, LeftBottom, "Left Bottom", "Left Bottom"), Toolbar::LEFTBOTTOM}, 790 { _FB_XTEXT(Align, LeftBottom, "Left Bottom", "Left Bottom"), LEFTBOTTOM},
812 { _FB_XTEXT(Align, BottomLeft, "Bottom Left", "Bottom Left"), Toolbar::BOTTOMLEFT}, 791 { _FB_XTEXT(Align, BottomLeft, "Bottom Left", "Bottom Left"), BOTTOMLEFT},
813 { _FB_XTEXT(Align, TopCenter, "Top Center", "Top Center"), Toolbar::TOPCENTER}, 792 { _FB_XTEXT(Align, TopCenter, "Top Center", "Top Center"), TOPCENTER},
814 { "", Toolbar::TOPLEFT}, 793 { "", TOPLEFT},
815 { "", Toolbar::TOPLEFT}, 794 { "", TOPLEFT},
816 { "", Toolbar::TOPLEFT}, 795 { "", TOPLEFT},
817 { _FB_XTEXT(Align, BottomCenter, "Bottom Center", "Bottom Center"), Toolbar::BOTTOMCENTER}, 796 { _FB_XTEXT(Align, BottomCenter, "Bottom Center", "Bottom Center"), BOTTOMCENTER},
818 { _FB_XTEXT(Align, TopRight, "Top Right", "Top Right"), Toolbar::TOPRIGHT}, 797 { _FB_XTEXT(Align, TopRight, "Top Right", "Top Right"), TOPRIGHT},
819 { _FB_XTEXT(Align, RightTop, "Right Top", "Right Top"), Toolbar::RIGHTTOP}, 798 { _FB_XTEXT(Align, RightTop, "Right Top", "Right Top"), RIGHTTOP},
820 { _FB_XTEXT(Align, RightCenter, "Right Center", "Right Center"), Toolbar::RIGHTCENTER}, 799 { _FB_XTEXT(Align, RightCenter, "Right Center", "Right Center"), RIGHTCENTER},
821 { _FB_XTEXT(Align, RightBottom, "Right Bottom", "Right Bottom"), Toolbar::RIGHTBOTTOM}, 800 { _FB_XTEXT(Align, RightBottom, "Right Bottom", "Right Bottom"), RIGHTBOTTOM},
822 { _FB_XTEXT(Align, BottomRight, "Bottom Right", "Bottom Right"), Toolbar::BOTTOMRIGHT} 801 { _FB_XTEXT(Align, BottomRight, "Bottom Right", "Bottom Right"), BOTTOMRIGHT}
823 }; 802 };
824 803
825 placementMenu()->setMinimumColumns(3); 804 placementMenu()->setMinimumColumns(3);