]> git.lyx.org Git - features.git/commitdiff
- introduces toolbar_toggle lfun
authorEdwin Leuven <e.leuven@gmail.com>
Wed, 23 May 2007 22:08:07 +0000 (22:08 +0000)
committerEdwin Leuven <e.leuven@gmail.com>
Wed, 23 May 2007 22:08:07 +0000 (22:08 +0000)
- adds a "toggle math toolbar" and "toggle table toolbar" buttons to the main toolbar
 (i also moved "toggle toc" there)
- adds a "toggle math panels" button to the math toolbar
- reshuffles the Big Operators panel to avoid confusion with the sum icon on the math toolbar
- adds some icons

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18478 a592a061-630c-0410-9148-cb99ea01b6c8

14 files changed:
lib/images/attic/dialog-show_mathpanel.xpm [deleted file]
lib/images/tabular-insert.xpm
lib/images/toolbar-toggle_math.xpm [new file with mode: 0644]
lib/images/toolbar-toggle_math_panels.xpm [new file with mode: 0644]
lib/images/toolbar-toggle_table.xpm [new file with mode: 0644]
lib/ui/stdmenus.inc
lib/ui/stdtoolbars.inc
src/LyXAction.cpp
src/LyXFunc.cpp
src/frontends/Toolbars.cpp
src/frontends/Toolbars.h
src/frontends/qt4/QLToolbar.cpp
src/frontends/qt4/QLToolbar.h
src/lfuns.h

diff --git a/lib/images/attic/dialog-show_mathpanel.xpm b/lib/images/attic/dialog-show_mathpanel.xpm
deleted file mode 100644 (file)
index ef091c8..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/* XPM */
-static char * math_panel_xpm[] = {
-"20 20 7 1",
-"      c None",
-".     c #777777",
-"+     c #C9C9C9",
-"@     c #919191",
-"#     c #606060",
-"$     c #24238E",
-"%     c #000000",
-".................+@ ",
-"..+++++++++++++++@@#",
-".+            $$ @@#",
-".+ $$$   $    $$ @@#",
-".+$$ $   $    $$$@@#",
-".+$ $$   $   $$ $@@#",
-".+$ $    $   $  $@@#",
-".+$$$$       $$$ @@#",
-".+               @@#",
-".+%%%%%%%%%%%%%%%@@#",
-".+               @@#",
-".+      $$$      @@#",
-".+     $$ $$     @@#",
-".+     $         @@#",
-".+    $$         @@#",
-".+     $$$       @@#",
-"+@@@@@@    @@@@@@@@#",
-"@@@@@@@@@@@@@@@@@@##",
-" ###################",
-"                    "};
index 5dc636fd4ed9b97e251c9d4d943125ed8547f2e4..036b79b90b42f63d3e153d90f1d8e10008ebb0a2 100644 (file)
@@ -1,31 +1,30 @@
 /* XPM */
 static char *show-dialog-new-inset_tabular[] = {
 /* columns rows colors chars-per-pixel */
-"22 22 3 1",
+"20 20 4 1",
 "  c #000000",
 ". c #ffffff",
+"D c Red",
 "X c None",
 /* pixels */
-"XXXXXXXXXXXXXXXXXXXXXX",
-"XXXXXXXXXXXXXXXXXXXXXX",
-"XXXXXXXXXXXXXXXXXXXXXX",
-"XXX                XXX",
-"XXX .... .... .... XXX",
-"XXX .... .... .... XXX",
-"XXX                XXX",
-"XXX .... .... .... XXX",
-"XXX .... .... .... XXX",
-"XXX                XXX",
-"XXX .... .... .... XXX",
-"XXX .... .... .... XXX",
-"XXX                XXX",
-"XXX .... .... .... XXX",
-"XXX .... .... .... XXX",
-"XXX                XXX",
-"XXX .... .... .... XXX",
-"XXX .... .... .... XXX",
-"XXX                XXX",
-"XXXXXXXXXXXXXXXXXXXXXX",
-"XXXXXXXXXXXXXXXXXXXXXX",
-"XXXXXXXXXXXXXXXXXXXXXX"
+"XXXXXXXXXXXXXXXXXXXX",
+"XXXXXXXXXXXXXXXXXXXX",
+"XXXXXXXXXXXXXXXXXXXX",
+"XX               XXX",
+"XX .... .... ....XXX",
+"XX .... .... ....XXX",
+"XX               XXX",
+"XX .... .... ....XXX",
+"XX .... .... ....XXX",
+"XX               XXX",
+"XX .... .... ....XXX",
+"XX .... .... ....XXX",
+"XX               XXX",
+"XX .... .... ....XXX",
+"XX .... .... ....XXX",
+"XXXXXXXXXXXXXXXXXXXX",
+"XXXXXXXXXXXXXXXXXXXX",
+"XXXXXXXXXXXXXX     X",
+"XXXXXXXXXXXXXXX   XX",
+"XXXXXXXXXXXXXXXX XXX"
 };
diff --git a/lib/images/toolbar-toggle_math.xpm b/lib/images/toolbar-toggle_math.xpm
new file mode 100644 (file)
index 0000000..76b9160
--- /dev/null
@@ -0,0 +1,30 @@
+/* XPM */\r
+static char * toolbar-toggle_math_xpm[] = {\r
+"20 20 7 1",\r
+"      c None",\r
+".     c #777777",\r
+"+     c #C9C9C9",\r
+"@     c #919191",\r
+"#     c #606060",\r
+"$     c #24238E",\r
+"%     c #000000",\r
+".................+@ ",\r
+"..+++++++++++++++@@#",\r
+".+            $$ @@#",\r
+".+ $$$   $    $$ @@#",\r
+".+$$ $   $    $$$@@#",\r
+".+$ $$   $   $$ $@@#",\r
+".+$ $    $   $  $@@#",\r
+".+$$$$       $$$ @@#",\r
+".+               @@#",\r
+".+%%%%%%%%%%%%%%%@@#",\r
+".+               @@#",\r
+".+      $$$      @@#",\r
+".+     $$ $$     @@#",\r
+".+     $         @@#",\r
+".+    $$         @@#",\r
+".+     $$$       @@#",\r
+"+@@@@@@    @@@@@@@@#",\r
+"@@@@@@@@@@@@@@@@@@##",\r
+" ###################",\r
+"                    "};\r
diff --git a/lib/images/toolbar-toggle_math_panels.xpm b/lib/images/toolbar-toggle_math_panels.xpm
new file mode 100644 (file)
index 0000000..811bafe
--- /dev/null
@@ -0,0 +1,29 @@
+/* XPM */\r
+static char * toolbar-toggle_math_panels_xpm[] = {\r
+"20 20 6 1",\r
+"X     c None",\r
+".     c #777777",\r
+"+     c #C9C9C9",\r
+"@     c #919191",\r
+"#     c #606060",\r
+"      c #24238E",\r
+".................+@X",\r
+"..+++++++++++++++@@#",\r
+".+XXXXXXXXXXXXXXX@@#",\r
+".+XXXXXXXXXXXXXXX@@#",\r
+".+XXXXXXXXXXXXXXX@@#",\r
+".+XXXXXXXXXXXXXXX@@#",\r
+".+XXXX       XXXX@@#",\r
+".+XXX XX X XXXXXX@@#",\r
+".+XXXXXX X XXXXXX@@#",\r
+".+XXXXXX X XXXXXX@@#",\r
+".+XXXXX XX XXXXXX@@#",\r
+".+XXXXX XXX XXXXX@@#",\r
+".+XXXXX XXX XXXXX@@#",\r
+".+XXXXXXXXXXXXXXX@@#",\r
+".+XXXXXXXXXXXXXXX@@#",\r
+".+XXXXXXXXXXXXXXX@@#",\r
+"+@@@@@@@@@@@@@@@@@@#",\r
+"@@@@@@@@@@@@@@@@@@##",\r
+"X###################",\r
+"XXXXXXXXXXXXXXXXXXXX"};\r
diff --git a/lib/images/toolbar-toggle_table.xpm b/lib/images/toolbar-toggle_table.xpm
new file mode 100644 (file)
index 0000000..9b1733d
--- /dev/null
@@ -0,0 +1,30 @@
+/* XPM */\r
+static char * toolbar-toggle_table_xpm[] = {\r
+"20 20 7 1",\r
+"X     c None",\r
+".     c #777777",\r
+"+     c #C9C9C9",\r
+"@     c #919191",\r
+"0     c #ffffff",\r
+"#     c #606060",\r
+"      c #000000",\r
+".................+@X",\r
+"..+++++++++++++++@@#",\r
+".+XXXXXXXXXXXXXXX@@#",\r
+".+XXXXXXXXXXXXXXX@@#",\r
+".+X             X@@#",\r
+".+X 000 000 000 X@@#",\r
+".+X 000 000 000 X@@#",\r
+".+X             X@@#",\r
+".+X 000 000 000 X@@#",\r
+".+X 000 000 000 X@@#",\r
+".+X             X@@#",\r
+".+X 000 000 000 X@@#",\r
+".+X 000 000 000 X@@#",\r
+".+X             X@@#",\r
+".+XXXXXXXXXXXXXXX@@#",\r
+".+XXXXXXXXXXXXXXX@@#",\r
+"+@@@@@@@@@@@@@@@@@@#",\r
+"@@@@@@@@@@@@@@@@@@##",\r
+"X###################",\r
+"XXXXXXXXXXXXXXXXXXXX"};\r
index 8bfbf3a11ceaefb977582ba3abf103cbf4e5e42e..6d8e96ce514e2e159724bae893e010f143fc3a5e 100644 (file)
@@ -364,6 +364,8 @@ Menuset
                Separator
                Item "Delimiters|r" "dialog-show mathdelimiter"
                Item "Matrix|x" "dialog-show mathmatrix"
+               Separator
+               Item "Toggle Math Panels" "toolbar-toggle math_panels"
        End
 
        Menu "insert_float"
index e110df0797201aefcc773a8d9cb164e4067f0aba..be8fa706b54deecfc18cd5f70bac95123cf4477d 100644 (file)
@@ -75,6 +75,10 @@ ToolbarSet
                Item "Insert math" "math-mode"
                Item "Insert graphics" "dialog-show-new-inset graphics"
                TableInsert "Insert table"
+               Separator
+               Item "Toggle Table of Contents" "dialog-toggle toc"
+               Item "Toggle Math Toolbar" "toolbar-toggle math"
+               Item "Toggle Table Toolbar" "toolbar-toggle table"
        End
        
        Toolbar "extra" "Extra"
@@ -103,7 +107,6 @@ ToolbarSet
                Separator
                Item "Text style" "dialog-show character"
                Item "Paragraph settings" "layout-paragraph"
-               Item "Table of contents" "dialog-toggle toc"
                Item "Thesaurus" "thesaurus-entry"
        End
        
@@ -156,6 +159,8 @@ ToolbarSet
                Item "Add column" "tabular-feature append-column"
                Item "Delete row" "tabular-feature delete-row"
                Item "Delete column" "tabular-feature delete-column"
+               Separator
+               Item "Toggle Math Panels" "toolbar-toggle math_panels"
        End
        
        Toolbar "minibuffer" "Command Buffer"
@@ -521,29 +526,29 @@ ToolbarSet
        End
        
        Toolbar "latex_varsz" "Big Operators"
-               Item "sum" "math-insert \sum"
-               Item "int" "math-insert \int"
                Item "intop" "math-insert \intop"
-               Item "iint" "math-insert \iint"
+               Item "int" "math-insert \int"
                Item "iintop" "math-insert \iintop"
-               Item "iiint" "math-insert \iiint"
+               Item "iint" "math-insert \iint"
                Item "iiintop" "math-insert \iiintop"
-               Item "iiiint" "math-insert \iiiint"
+               Item "iiint" "math-insert \iiint"
                Item "iiiintop" "math-insert \iiiintop"
-               Item "dotsint" "math-insert \dotsint"
+               Item "iiiint" "math-insert \iiiint"
                Item "dotsintop" "math-insert \dotsintop"
-               Item "oint" "math-insert \oint"
+               Item "dotsint" "math-insert \dotsint"
                Item "ointop" "math-insert \ointop"
-               Item "oiint" "math-insert \oiint"
+               Item "oint" "math-insert \oint"
                Item "oiintop" "math-insert \oiintop"
-               Item "ointctrclockwise" "math-insert \ointctrclockwise"
+               Item "oiint" "math-insert \oiint"
                Item "ointctrclockwiseop" "math-insert \ointctrclockwiseop"
-               Item "ointclockwise" "math-insert \ointclockwise"
+               Item "ointctrclockwise" "math-insert \ointctrclockwise"
                Item "ointclockwiseop" "math-insert \ointclockwiseop"
-               Item "sqint" "math-insert \sqint"
+               Item "ointclockwise" "math-insert \ointclockwise"
                Item "sqintop" "math-insert \sqintop"
-               Item "sqiint" "math-insert \sqiint"
+               Item "sqint" "math-insert \sqint"
                Item "sqiintop" "math-insert \sqiintop"
+               Item "sqiint" "math-insert \sqiint"
+               Item "sum" "math-insert \sum"
                Item "prod" "math-insert \prod"
                Item "coprod" "math-insert \coprod"
                Item "bigsqcup" "math-insert \bigsqcup"
index 4f42742c909d8dc2ba73429f2104fd2fd9a12e2b..f1a5a52d5180642f775c2e8d50c1a43d397c0ff7 100644 (file)
@@ -367,6 +367,7 @@ void LyXAction::init()
                { LFUN_WINDOW_CLOSE, "window-close", NoBuffer },
                { LFUN_UNICODE_INSERT, "unicode-insert", Noop },
                { LFUN_TOOLBAR_TOGGLE_STATE, "", NoBuffer },
+               { LFUN_TOOLBAR_TOGGLE, "toolbar-toggle", NoBuffer },
                { LFUN_NOMENCL_INSERT, "nomencl-insert", Noop },
                { LFUN_NOMENCL_PRINT, "nomencl-print", Noop },
                { LFUN_CLEARPAGE_INSERT, "clearpage-insert", Noop },
index fc1eb74a040bf994115fc51e185fa94095147ee5..aa3f5a769c30fb66e87f7e4c50eaf1a9c2fe0119 100644 (file)
@@ -623,6 +623,11 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const
                break;
        }
 
+       case LFUN_TOOLBAR_TOGGLE: {
+               bool const current = lyx_view_->getToolbars().visible(cmd.getArg(0));
+               flag.setOnOff(current);
+               break;
+       }
        // this one is difficult to get right. As a half-baked
        // solution, we consider only the first action of the sequence
        case LFUN_COMMAND_SEQUENCE: {
@@ -1752,6 +1757,14 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
                        lyx_view_->toggleToolbarState(argument);
                        break;
 
+               case LFUN_TOOLBAR_TOGGLE: {
+                       BOOST_ASSERT(lyx_view_);
+                       string const name = to_utf8(cmd.argument());
+                       bool const current = lyx_view_->getToolbars().visible(name);
+                       lyx_view_->getToolbars().display(name, !current);
+                       break;
+               }
+
                default: {
                        BOOST_ASSERT(lyx_view_);
                        view()->cursor().dispatch(cmd);
index fb8b42b023fb8ec1985f67201062abb3a35bdf66..20082cdd635bc6a11e83ec227cdb28c9b44c698b 100644 (file)
@@ -151,14 +151,13 @@ void Toolbars::display(string const & name, bool show)
        for (; cit != end; ++cit) {
                if (cit->name == name) {
                        unsigned int flags = cit->flags;
+                       TurnOffFlag(ON);
+                       TurnOffFlag(OFF);
                        TurnOffFlag(AUTO);
-                       if (show) {
+                       if (show)
                                TurnOnFlag(ON);
+                       else
                                TurnOnFlag(OFF);
-                       } else {
-                               TurnOnFlag(OFF);
-                               TurnOnFlag(ON);
-                       }
                        cit->flags = static_cast<lyx::ToolbarInfo::Flags>(flags);
                        displayToolbar(*cit, show);
                        return;
@@ -248,6 +247,16 @@ void Toolbars::update(bool in_math, bool in_table, bool review)
 }
 
 
+bool Toolbars::visible(string const & name) const
+{
+       std::map<string, ToolbarPtr>::const_iterator it =
+               toolbars_.find(name);
+       if (it == toolbars_.end())
+               return false;
+       return it->second.get()->isVisible();
+}
+
+
 void Toolbars::saveToolbarInfo()
 {
        ToolbarSection & tb = LyX::ref().session().toolbars();
index 3602224a86d01ff38494bcb866ef3f85200feef1..eb10a4cdfd7e14c53da6809e68c5e8525b7a4a06 100644 (file)
@@ -70,6 +70,8 @@ public:
        */
        virtual void saveInfo(ToolbarSection::ToolbarInfo & tbinfo) = 0;
 
+       /// whether toolbar is visible
+       virtual bool isVisible() const = 0;
        /// Refresh the contents of the bar.
        virtual void update() = 0;
        /// Accessor to the layout combox, if any.
@@ -90,13 +92,16 @@ public:
 
        /// get toolbar state (on/off/auto)
        ToolbarInfo::Flags getToolbarState(std::string const & name);
-       
+
        /// toggle the state of toolbars (on/off/auto)
        void toggleToolbarState(std::string const & name);
 
        /// Update the state of the toolbars.
        void update(bool in_math, bool in_table, bool review);
 
+       /// Is the Toolbar currently visible?
+       bool visible(std::string const & name) const;
+
        /// save toolbar information
        void saveToolbarInfo();
 
index db2f6570ee0f229c3c3dc85473dea743cf8d98ae..31f89bd5b45f49129afaa3b56a4c6347cd5ac587 100644 (file)
@@ -298,6 +298,12 @@ void QLToolbar::show(bool)
 }
 
 
+bool QLToolbar::isVisible() const
+{
+       return QToolBar::isVisible();
+}
+
+
 void QLToolbar::saveInfo(ToolbarSection::ToolbarInfo & tbinfo)
 {
        // if tbinfo.state == auto *do not* set on/off
index eb7db6b52026146fb0aade4ba9d1ca8b2f7e5ef3..73a822974b22ce728b2198b42eab11cdd1308b8c 100644 (file)
@@ -69,6 +69,7 @@ public:
        void add(ToolbarItem const & item);
        void hide(bool);
        void show(bool);
+       bool isVisible() const;
        void saveInfo(ToolbarSection::ToolbarInfo & info);
        void update();
        LayoutBox * layout() const { return layout_.get(); }
index 3415ae441bcc66082309764be5d769d0ab6fbd26..b5260611b4108f465cb352222fe11177aa9bc4df 100644 (file)
@@ -381,6 +381,7 @@ enum kb_action {
        LFUN_CLEARDOUBLEPAGE_INSERT,     // Ugras 20061125
        //290
        LFUN_LISTING_INSERT,             // Herbert 20011110, bpeng 20070502
+       LFUN_TOOLBAR_TOGGLE,             // Edwin 20070521
 
        LFUN_LASTACTION                  // end of the table
 };