#include <QAbstractScrollArea>
#include <QMouseEvent>
#include <QPixmap>
-#include <QResizeEvent>
#include <QTabBar>
#include <QTabWidget>
#include <QTimer>
class QDragEnterEvent;
class QDropEvent;
class QKeyEvent;
-class QWheelEvent;
class QPaintEvent;
+class QResizeEvent;
class QToolButton;
+class QWheelEvent;
class QWidget;
#ifdef CursorShape
FuncRequest cmd;
Timeout timeout;
bool restart_timeout;
- int x_old;
- int y_old;
- int min_scrollbar_old;
- int max_scrollbar_old;
};
void setGuiView(GuiView &);
///
void setFullScreen(bool full_screen);
- /// is LyXView in fullscreen mode?
+ /// is GuiView in fullscreen mode?
bool isFullScreen();
///
void scheduleRedraw() { schedule_redraw_ = true; }
///
BufferView const & bufferView() const;
///
- void redraw();
+ void redraw(bool update_metrics);
///
void stopBlinkingCursor();
///
///
GuiCompleter & completer() { return *completer_; }
+ Qt::CursorShape cursorShape() const;
+ void setCursorShape(Qt::CursorShape shape);
+
+ /// Change the cursor when the mouse hovers over a clickable inset
+ void updateCursorShape();
/// Return the GuiView this workArea belongs to
GuiView const & view() const { return *lyx_view_; }
/// hide the cursor
virtual void removeCursor();
- /// This function is called when the buffer readonly status change.
+ /// This function should be called to update the buffer readonly status.
void setReadOnly(bool);
/// Update window titles of all users.
///
BufferView * buffer_view_;
+ /// Read only Buffer status cache.
+ bool read_only_;
///
GuiView * lyx_view_;
/// is the cursor currently displayed
/// Special mode in which Esc and Enter (with or without Shift)
/// are ignored
bool dialog_mode_;
- /// store the position of the rightclick when the mouse is
+ /// store the name of the context menu when the mouse is
/// pressed. This is used to get the correct context menu
- /// when the menu is actually shown (after releasing on Windwos).
- QPoint context_target_pos_;
+ /// when the menu is actually shown (after releasing on Windows)
+ /// and after the DEPM has done its job.
+ docstring context_menu_name_;
}; // GuiWorkArea
void setWidgetResizable(bool) {}
void setWidget(QWidget *) {}
+ QSize sizeHint () const;
///
void disable();
bool removeWorkArea(GuiWorkArea *);
GuiWorkArea * currentWorkArea();
GuiWorkArea * workArea(Buffer & buffer);
+ GuiWorkArea * workArea(int index);
Q_SIGNALS:
///
public Q_SLOTS:
/// close current buffer, or the one given by \c clicked_tab_
void closeCurrentBuffer();
- /// close current tab, or the one given by \c clicked_tab_
- void closeCurrentTab();
+ /// hide current tab, or the one given by \c clicked_tab_
+ void hideCurrentTab();
+ /// close the tab given by \c index
+ void closeTab(int index);
///
void updateTabTexts();
void showContextMenu(const QPoint & pos);
///
void moveTab(int fromIndex, int toIndex);
+ ///
+ void mouseDoubleClickEvent(QMouseEvent * event);
private:
///
Q_SIGNALS:
///
void tabMoveRequested(int fromIndex, int toIndex);
-
-private Q_SLOTS:
- ///
- void on_tabCloseRequested(int index);
};
} // namespace frontend