aboutsummaryrefslogtreecommitdiff
path: root/src/Toolbar.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/Toolbar.cc')
-rw-r--r--src/Toolbar.cc116
1 files changed, 56 insertions, 60 deletions
diff --git a/src/Toolbar.cc b/src/Toolbar.cc
index 15efb99..5d74b3c 100644
--- a/src/Toolbar.cc
+++ b/src/Toolbar.cc
@@ -22,7 +22,7 @@
22// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23// DEALINGS IN THE SOFTWARE. 23// DEALINGS IN THE SOFTWARE.
24 24
25// $Id: Toolbar.cc,v 1.139 2004/04/26 15:04:37 rathnor Exp $ 25// $Id: Toolbar.cc,v 1.140 2004/06/07 11:46:04 rathnor Exp $
26 26
27#include "Toolbar.hh" 27#include "Toolbar.hh"
28 28
@@ -32,7 +32,7 @@
32// themes 32// themes
33#include "ToolbarTheme.hh" 33#include "ToolbarTheme.hh"
34 34
35#include "I18n.hh" 35#include "FbTk/I18n.hh"
36#include "fluxbox.hh" 36#include "fluxbox.hh"
37#include "Screen.hh" 37#include "Screen.hh"
38#include "IntResMenuItem.hh" 38#include "IntResMenuItem.hh"
@@ -225,7 +225,7 @@ Toolbar::Toolbar(BScreen &scrn, FbTk::XLayer &layer, size_t width):
225 scrn.name() + ".toolbar.tools", scrn.altName() + ".Toolbar.Tools"), 225 scrn.name() + ".toolbar.tools", scrn.altName() + ".Toolbar.Tools"),
226 m_shape(new Shape(frame.window, 0)), 226 m_shape(new Shape(frame.window, 0)),
227 m_resize_lock(false) { 227 m_resize_lock(false) {
228 228 _FB_USES_NLS;
229 // we need to get notified when the theme is reloaded 229 // we need to get notified when the theme is reloaded
230 m_theme.reconfigSig().attach(this); 230 m_theme.reconfigSig().attach(this);
231 // listen to screen size changes 231 // listen to screen size changes
@@ -234,15 +234,14 @@ Toolbar::Toolbar(BScreen &scrn, FbTk::XLayer &layer, size_t width):
234 234
235 moveToLayer((*m_rc_layernum).getNum()); 235 moveToLayer((*m_rc_layernum).getNum());
236 236
237 // TODO: nls 237 m_layermenu.setLabel(_FBTEXT(Toolbar, Layer, "Toolbar Layer", "Title of toolbar layer menu"));
238 m_layermenu.setLabel("Toolbar Layer"); 238 m_placementmenu.setLabel(_FBTEXT(Toolbar, Placement, "Toolbar Placement", "Title of toolbar placement menu"));
239 m_placementmenu.setLabel("Toolbar Placement");
240 239
241 m_layermenu.setInternalMenu(); 240 m_layermenu.setInternalMenu();
242 m_placementmenu.setInternalMenu(); 241 m_placementmenu.setInternalMenu();
243 setupMenus(); 242 setupMenus();
244 // add menu to screen 243 // add menu to screen
245 screen().addConfigMenu("Toolbar", menu()); 244 screen().addConfigMenu(_FBTEXT(Toolbar, Toolbar, "Toolbar", "title of toolbar menu item"), menu());
246 245
247 // geometry settings 246 // geometry settings
248 frame.width = width; 247 frame.width = width;
@@ -751,8 +750,7 @@ void Toolbar::moveToLayer(int layernum) {
751} 750}
752 751
753void Toolbar::setupMenus() { 752void Toolbar::setupMenus() {
754 const I18n &i18n = *I18n::instance(); 753 _FB_USES_NLS;
755 using namespace FBNLS;
756 using namespace FbTk; 754 using namespace FbTk;
757 755
758 typedef RefCount<Command> RefCommand; 756 typedef RefCount<Command> RefCommand;
@@ -762,14 +760,14 @@ void Toolbar::setupMenus() {
762 760
763 761
764 RefCommand start_edit(CommandParser::instance().parseLine("setworkspacenamedialog")); 762 RefCommand start_edit(CommandParser::instance().parseLine("setworkspacenamedialog"));
765 menu().insert(i18n.getMessage(FBNLS::ToolbarSet, FBNLS::ToolbarEditWkspcName, 763 menu().insert(_FBTEXT(Toolbar, EditWkspcName,
766 "Edit current workspace name"), 764 "Edit current workspace name", "Edit current workspace name"),
767 start_edit); 765 start_edit);
768 766
769 menu().setLabel(i18n.getMessage(FBNLS::ToolbarSet, FBNLS::ToolbarToolbarTitle, 767 menu().setLabel(_FBTEXT(Toolbar, ToolbarTitle,
770 "Toolbar")); 768 "Toolbar", "Title of Toolbar menu"));
771 769
772 MenuItem *toolbar_menuitem = new IntResMenuItem("Toolbar width percent", 770 MenuItem *toolbar_menuitem = new IntResMenuItem(_FBTEXT(Toolbar, WidthPercent, "Toolbar width percent", "Percentage of screen width taken by toolbar"),
773 m_rc_width_percent, 771 m_rc_width_percent,
774 0, 100); // min/max value 772 0, 100); // min/max value
775 773
@@ -785,8 +783,8 @@ void Toolbar::setupMenus() {
785 783
786 menu().insert(toolbar_menuitem); 784 menu().insert(toolbar_menuitem);
787 785
788 menu().insert(new BoolMenuItem(i18n.getMessage(FBNLS::CommonSet, FBNLS::CommonAutoHide, 786 menu().insert(new BoolMenuItem(_FBTEXT(Common, AutoHide,
789 "Auto hide"), 787 "Auto hide", "Toggle auto hide of toolbar"),
790 *m_rc_auto_hide, 788 *m_rc_auto_hide,
791 reconfig_toolbar_and_save_resource)); 789 reconfig_toolbar_and_save_resource));
792 790
@@ -795,66 +793,64 @@ void Toolbar::setupMenus() {
795 visible_macro->add(toggle_visible); 793 visible_macro->add(toggle_visible);
796 visible_macro->add(save_resources); 794 visible_macro->add(save_resources);
797 RefCommand toggle_visible_cmd(visible_macro); 795 RefCommand toggle_visible_cmd(visible_macro);
798 menu().insert(new BoolMenuItem("Visible", *m_rc_visible, toggle_visible_cmd)); 796 menu().insert(new BoolMenuItem(_FBTEXT(Common, Visible, "Visible", "Whether this item is visible"),
797 *m_rc_visible, toggle_visible_cmd));
799 798
800 menu().insert(new BoolMenuItem("Maximize Over", *m_rc_maximize_over, 799 menu().insert(new BoolMenuItem(_FBTEXT(Common, MaximizeOver,"Maximize Over", "Maximize over this thing when maximizing"),
800 *m_rc_maximize_over,
801 reconfig_toolbar_and_save_resource)); 801 reconfig_toolbar_and_save_resource));
802 menu().insert("Layer...", &layermenu()); 802 menu().insert(_FBTEXT(Menu, Layer, "Layer...", "Title of Layer menu"), &layermenu());
803 803
804 804
805 805
806 if (screen().hasXinerama()) { 806 if (screen().hasXinerama()) {
807 // TODO: nls (main label plus menu heading 807 menu().insert(_FBTEXT(Menu, OnHead, "On Head...", "Title of On Head menu"),
808 menu().insert("On Head...", new XineramaHeadMenu<Toolbar>(screen().menuTheme(), 808 new XineramaHeadMenu<Toolbar>(screen().menuTheme(),
809 screen(), 809 screen(),
810 screen().imageControl(), 810 screen().imageControl(),
811 *screen().layerManager().getLayer(Fluxbox::instance()->getMenuLayer()), 811 *screen().layerManager().getLayer(Fluxbox::instance()->getMenuLayer()),
812 *this, 812 *this,
813 "Toolbar on Head")); 813 _FBTEXT(Toolbar, OnHead, "Toolbar on Head", "Title of toolbar on head menu")));
814 } 814 }
815 815
816 // setup items in placement menu 816 typedef list<pair<const char *, Toolbar::Placement> > Placements;
817 struct { 817 Placements place_menu;
818 int set; 818
819 int base; 819 // menu is 3 wide, 5 down
820 const char *default_str; 820 place_menu.push_back(make_pair(_FBTEXT(Align, TopLeft, "Top Left", "Top Left"), Toolbar::TOPLEFT));
821 Toolbar::Placement placement; 821 place_menu.push_back(make_pair(_FBTEXT(Align, LeftTop, "Left Top", "Left Top"), Toolbar::LEFTTOP));
822 } place_menu[] = { 822 place_menu.push_back(make_pair(_FBTEXT(Align, LeftCenter, "Left Center", "Left Center"), Toolbar::LEFTCENTER));
823 {0, 0, "Top Left", Toolbar::TOPLEFT}, 823 place_menu.push_back(make_pair(_FBTEXT(Align, LeftBottom, "Left Bottom", "Left Bottom"), Toolbar::LEFTBOTTOM));
824 824 place_menu.push_back(make_pair(_FBTEXT(Align, BottomLeft, "Bottom Left", "Bottom Left"), Toolbar::BOTTOMLEFT));
825 {0, 0, "Left Top", Toolbar::LEFTTOP}, 825 place_menu.push_back(make_pair(_FBTEXT(Align, TopCenter, "Top Center", "Top Center"), Toolbar::TOPCENTER));
826 {0, 0, "Left Center", Toolbar::LEFTCENTER}, 826 place_menu.push_back(make_pair((const char *)0, Toolbar::TOPLEFT));
827 {0, 0, "Left Bottom", Toolbar::LEFTBOTTOM}, 827 place_menu.push_back(make_pair((const char *)0, Toolbar::TOPLEFT));
828 828 place_menu.push_back(make_pair((const char *)0, Toolbar::TOPLEFT));
829 {0, 0, "Bottom Left", Toolbar::BOTTOMLEFT}, 829 place_menu.push_back(make_pair(_FBTEXT(Align, BottomCenter, "Bottom Center", "Bottom Center"), Toolbar::BOTTOMCENTER));
830 {0, 0, "Top Center", Toolbar::TOPCENTER}, 830 place_menu.push_back(make_pair(_FBTEXT(Align, TopRight, "Top Right", "Top Right"), Toolbar::TOPRIGHT));
831 {0, 0, 0, Toolbar::TOPCENTER}, 831 place_menu.push_back(make_pair(_FBTEXT(Align, RightTop, "Right Top", "Right Top"), Toolbar::RIGHTTOP));
832 {0, 0, 0, Toolbar::BOTTOMCENTER}, 832 place_menu.push_back(make_pair(_FBTEXT(Align, RightCenter, "Right Center", "Right Center"), Toolbar::RIGHTCENTER));
833 {0, 0, 0, Toolbar::BOTTOMCENTER}, 833 place_menu.push_back(make_pair(_FBTEXT(Align, RightBottom, "Right Bottom", "Right Bottom"), Toolbar::RIGHTBOTTOM));
834 {0, 0, "Bottom Center", Toolbar::BOTTOMCENTER}, 834 place_menu.push_back(make_pair(_FBTEXT(Align, BottomRight, "Bottom Right", "Bottom Right"), Toolbar::BOTTOMRIGHT));
835 {0, 0, "Top Right", Toolbar::TOPRIGHT}, 835
836 836
837 {0, 0, "Right Top", Toolbar::RIGHTTOP},
838 {0, 0, "Right Center", Toolbar::RIGHTCENTER},
839 {0, 0, "Right Bottom", Toolbar::RIGHTBOTTOM},
840
841 {0, 0, "Bottom Right", Toolbar::BOTTOMRIGHT}
842 };
843 placementMenu().setMinimumSublevels(3); 837 placementMenu().setMinimumSublevels(3);
844 // create items in sub menu 838 // create items in sub menu
845 for (size_t i=0; i<15; ++i) { 839 for (size_t i=0; i<15; ++i) {
846 if (place_menu[i].default_str == 0) { 840 const char *str = place_menu.front().first;
841 Toolbar::Placement placement = place_menu.front().second;
842
843 if (str == 0) {
847 placementMenu().insert(""); 844 placementMenu().insert("");
845 placementMenu().setItemEnabled(i, false);
848 } else { 846 } else {
849 const char *i18n_str = i18n.getMessage(place_menu[i].set, 847 RefCommand setplace(new SetToolbarPlacementCmd(*this, placement));
850 place_menu[i].base, 848 placementMenu().insert(str, setplace);
851 place_menu[i].default_str);
852 RefCommand setplace(new SetToolbarPlacementCmd(*this, place_menu[i].placement));
853 placementMenu().insert(i18n_str, setplace);
854 849
855 } 850 }
851 place_menu.pop_front();
856 } 852 }
857 menu().insert("Placement", &placementMenu()); 853 menu().insert(_FBTEXT(Menu, Placement, "Placement", "Title of Placement menu"), &placementMenu());
858 placementMenu().update(); 854 placementMenu().update();
859 menu().update(); 855 menu().update();
860} 856}