X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FGuiView.h;h=428f9325f11b8173408ba2e90104973bb2560a7e;hb=50de85396c785a454fe07b77d815c57f3e462282;hp=f527dcec1d60f365633b8751fbf250053fe41287;hpb=128a8ef3e86fedf60b2a123da089898994f4211e;p=lyx.git diff --git a/src/frontends/qt4/GuiView.h b/src/frontends/qt4/GuiView.h index f527dcec1d..428f9325f1 100644 --- a/src/frontends/qt4/GuiView.h +++ b/src/frontends/qt4/GuiView.h @@ -7,6 +7,7 @@ * \author Lars Gullik Bjornes * \author John Levon * \author Abdelrazak Younes + * \author Peter Kümmel * * Full author contact details are available in file CREDITS. */ @@ -14,71 +15,70 @@ #ifndef GUI_VIEW_H #define GUI_VIEW_H -// Must be here because of moc. -#include - #include "frontends/LyXView.h" -#include "funcrequest.h" +#include "FuncRequest.h" -#include -#include #include #include +#include +#include +class QDragEnterEvent; +class QDropEvent; +class QMenu; class QToolBar; -//class FuncRequest; - -//class string; - namespace lyx { namespace frontend { -class QCommandBuffer; - -QWidget* mainWindow(); +QWidget * mainWindow(); /** * GuiView - Qt4 implementation of LyXView * * qt4-private implementation of the main LyX window. * - * Note: any QObject emits a destroyed(QObject *) Qt signal when it - * is deleted.This might be useful for closing other dialogs - * depending on a given GuiView. + * Note: a QObject emits a destroyed(QObject *) Qt signal when it + * is deleted. This might be useful for closing other dialogs + * depending on a given GuiView. */ -class GuiView : public QMainWindow, public LyXView { +class GuiViewBase : public QMainWindow, public LyXView +{ Q_OBJECT public: /// create a main window of the given dimensions - GuiView(int id); + GuiViewBase(int id); - ~GuiView(); + ~GuiViewBase(); virtual void init(); virtual void close(); + virtual void setFocus(); virtual void setGeometry( unsigned int width, unsigned int height, int posx, int posy, - bool maximize); + int maximized, + unsigned int iconSizeXY, + const std::string & geometryArg); virtual void saveGeometry(); virtual void busy(bool); - Toolbars::ToolbarPtr makeToolbar(ToolbarBackend::Toolbar const & tbb); + /// add toolbar, if newline==true, add a toolbar break before the toolbar + Toolbars::ToolbarPtr makeToolbar(ToolbarInfo const & tbinfo, bool newline); virtual void updateStatusBar(); - virtual void message(lyx::docstring const & str); + virtual void message(docstring const & str); virtual void clearMessage(); virtual bool hasFocus() const; + void showMiniBuffer(bool); + void openMenu(docstring const &); /// show - display the top-level window - void show(); - - /// add the command buffer - void addCommandBuffer(QToolBar * toolbar); + void showView(); /// menu item has been selected void activated(FuncRequest const &); + QMenu* createPopupMenu(); Q_SIGNALS: void closing(int); @@ -87,39 +87,75 @@ public Q_SLOTS: /// idle timeout void update_view_state_qt(); - /// populate a toplevel menu and all its children on demand - void updateMenu(QAction *); + void currentTabChanged(int index); + void closeCurrentTab(); + + /// slots to change the icon size + void smallSizedIcons(); + void normalSizedIcons(); + void bigSizedIcons(); protected: /// make sure we quit cleanly virtual void closeEvent(QCloseEvent * e); - /// virtual void resizeEvent(QResizeEvent * e); - /// virtual void moveEvent(QMoveEvent * e); + /// \return the \c Workarea associated to \p Buffer + /// \retval 0 if no \c WorkArea is found. + WorkArea * workArea(Buffer & buffer); + + /// Add a \c WorkArea + /// \return the \c Workarea associated to \p Buffer + /// \retval 0 if no \c WorkArea is found. + WorkArea * addWorkArea(Buffer & buffer); + void setCurrentWorkArea(WorkArea * work_area); + void removeWorkArea(WorkArea * work_area); + WorkArea const * currentWorkArea() const; + WorkArea * currentWorkArea(); + private: - /// focus the command buffer widget - void focus_command_widget(); + /// + void dragEnterEvent(QDragEnterEvent * ev); + /// + void dropEvent(QDropEvent * ev); /** * setWindowTitle - set title of window * @param t main window title * @param it iconified (short) title */ - virtual void setWindowTitle(lyx::docstring const & t, lyx::docstring const & it); + virtual void setWindowTitle(docstring const & t, docstring const & it); + + /// in order to catch Tab key press. + bool event(QEvent * e); + bool focusNextPrevChild(bool); QTimer statusbar_timer_; - /// command buffer - QCommandBuffer * commandbuffer_; + /// are we quitting by the menu? + bool quitting_by_menu_; /// - void updateFloatingGeometry(); + QRect updateFloatingGeometry(); /// QRect floatingGeometry_; + + void setIconSize(unsigned int size); + + struct ToolbarSize { + int top_width; + int bottom_width; + int left_height; + int right_height; + }; + + ToolbarSize toolbarSize_; + + struct GuiViewPrivate; + GuiViewPrivate& d; }; } // namespace frontend