#define WORKAREA_PRIVATE_H
#include "FuncRequest.h"
-#include "qt_helpers.h"
+#include "LyXRC.h"
-#include "support/docstring.h"
+#include "support/FileName.h"
#include "support/Timeout.h"
-#include <QAbstractScrollArea>
#include <QMouseEvent>
+#include <QImage>
#include <QPixmap>
#include <QTimer>
void resizeBufferView();
/// paint the cursor and store the background
- virtual void showCursor(int x, int y, int h,
+ void showCursor(int x, int y, int h,
bool l_shape, bool rtl, bool completable);
/// hide the cursor
- virtual void removeCursor();
-
- /// This function should be called to update the buffer readonly status.
- void setReadOnly(bool);
+ void removeCursor();
///
- void dispatch(FuncRequest const & cmd0, KeyModifier = NoModifier);
+ void dispatch(FuncRequest const & cmd0);
/// hide the visible cursor, if it is visible
void hideCursor();
/// show the cursor if it is not visible
void updateCursorShape();
///
void setCursorShape(Qt::CursorShape shape);
+
+ bool needResize() const {
+ return need_resize_ || p->pixelRatio() != pixel_ratio_;
+ }
+
+ void resetScreen()
+ {
+ delete screen_;
+ pixel_ratio_ = p->pixelRatio();
+ if (lyxrc.use_qimage) {
+ QImage *x =
+ new QImage(static_cast<int>(pixel_ratio_ * p->viewport()->width()),
+ static_cast<int>(pixel_ratio_ * p->viewport()->height()),
+ QImage::Format_ARGB32_Premultiplied);
+#if QT_VERSION >= 0x050000
+ x->setDevicePixelRatio(pixel_ratio_);
+#endif
+ screen_ = x;
+ } else {
+ QPixmap *x =
+ new QPixmap(static_cast<int>(pixel_ratio_ * p->viewport()->width()),
+ static_cast<int>(pixel_ratio_ * p->viewport()->height()));
+#if QT_VERSION >= 0x050000
+ x->setDevicePixelRatio(pixel_ratio_);
+#endif
+ screen_ = x;
+ }
+ }
///
GuiWorkArea * p;
-
+ ///
+ QPaintDevice * screen_;
///
BufferView * buffer_view_;
- /// Read only Buffer status cache.
- bool read_only_;
///
GuiView * lyx_view_;
/// is the cursor currently displayed
///
CursorWidget * cursor_;
///
- QPixmap screen_;
- ///
bool need_resize_;
///
bool schedule_redraw_;
///
int preedit_lines_;
-
+ /// Ratio between physical pixels and device-independent pixels
+ /// We save the last used value to detect changes of the
+ /// current pixel_ratio of the viewport.
+ double pixel_ratio_;
///
GuiCompleter * completer_;
/// pressed. This is used to get the correct context menu
/// when the menu is actually shown (after releasing on Windows)
/// and after the DEPM has done its job.
- docstring context_menu_name_;
+ std::string context_menu_name_;
+
+ /// stuff related to window title
+ ///
+ support::FileName file_name_;
+ ///
+ bool read_only_;
+ ///
+ docstring vc_status_;
+ ///
+ bool clean_;
+ ///
+ bool externally_modified_;
+
}; // GuiWorkArea
} // namespace frontend