> You could also introduce LFUN_STATUSBAR_TOGGLE by the way if you want to 
> achieve real full screen.

does the following patch looks more sensible to you?
pavel
diff --git a/src/LyXAction.cpp b/src/LyXAction.cpp
index d93c74f..ac0bc2f 100644
--- a/src/LyXAction.cpp
+++ b/src/LyXAction.cpp
@@ -1093,6 +1093,8 @@ void LyXAction::init()
                { LFUN_LYX_QUIT, "lyx-quit", NoBuffer, Buffer },
                { LFUN_TOOLBAR_TOGGLE, "toolbar-toggle", NoBuffer, Buffer },
                { LFUN_MENU_OPEN, "menu-open", NoBuffer, Buffer },
+               { LFUN_MENUBAR_TOGGLE, "menubar-toggle", NoBuffer, Buffer },
+               { LFUN_STATUSBAR_TOGGLE, "statusbar-toggle", NoBuffer, Buffer },
 
                { LFUN_WINDOW_NEW, "window-new", NoBuffer, Buffer },
                { LFUN_WINDOW_CLOSE, "window-close", NoBuffer, Buffer },
diff --git a/src/LyXFunc.cpp b/src/LyXFunc.cpp
index 31644b1..1038d5a 100644
--- a/src/LyXFunc.cpp
+++ b/src/LyXFunc.cpp
@@ -522,6 +522,8 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const
                break;
 
        case LFUN_TOOLBAR_TOGGLE:
+       case LFUN_MENUBAR_TOGGLE:
+       case LFUN_STATUSBAR_TOGGLE:
        case LFUN_INSET_APPLY:
        case LFUN_BUFFER_WRITE:
        case LFUN_BUFFER_WRITE_AS:
diff --git a/src/frontends/qt4/GuiView.cpp b/src/frontends/qt4/GuiView.cpp
index 5c9b200..039598d 100644
--- a/src/frontends/qt4/GuiView.cpp
+++ b/src/frontends/qt4/GuiView.cpp
@@ -69,6 +69,7 @@
 #include <QDropEvent>
 #include <QList>
 #include <QMenu>
+#include <QMenuBar>
 #include <QPainter>
 #include <QPixmap>
 #include <QPoint>
@@ -1524,6 +1525,15 @@ bool GuiView::dispatch(FuncRequest const & cmd)
                        }
                        break;
                }
+               case LFUN_MENUBAR_TOGGLE: {
+                       toggleViewMenuBar();
+                       break;
+               }
+               case LFUN_STATUSBAR_TOGGLE: {
+                       toggleViewStatusBar();
+                       break;
+               }
+
 
                default:
                        return false;
@@ -1615,6 +1625,21 @@ void GuiView::resetDialogs()
        restartCursor();
 }
 
+void GuiView::toggleViewMenuBar()
+{
+       if (menuBar()->isVisible())
+               menuBar()->hide();
+       else
+               menuBar()->show();
+}
+
+void GuiView::toggleViewStatusBar()
+{
+       if (statusBar()->isVisible())
+               statusBar()->hide();
+       else
+               statusBar()->show();
+}
 
 Dialog * GuiView::find_or_build(string const & name)
 {
diff --git a/src/frontends/qt4/GuiView.h b/src/frontends/qt4/GuiView.h
index d73acbe..47551bd 100644
--- a/src/frontends/qt4/GuiView.h
+++ b/src/frontends/qt4/GuiView.h
@@ -276,6 +276,10 @@ private:
        ///
        Dialog * build(std::string const & name);
 
+       /// Hide/Show main menu bar.
+       void toggleViewMenuBar();
+       /// Hide/Show main status bar.
+       void toggleViewStatusBar();
        /// This view ID.
        int id_;
 };
diff --git a/src/lfuns.h b/src/lfuns.h
index fd4607d..cfde9bb 100644
--- a/src/lfuns.h
+++ b/src/lfuns.h
@@ -413,6 +413,9 @@ enum kb_action {
        LFUN_MATH_MACRO_ADD_GREEDY_OPTIONAL_PARAM,
        LFUN_IN_MATHMACROTEMPLATE,
        LFUN_SCROLL,
+       LFUN_MENUBAR_TOGGLE,
+       LFUN_STATUSBAR_TOGGLE,
+       // 320
        LFUN_LASTACTION                  // end of the table
 };
 

Reply via email to