#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 <QMouseEvent>
/// hide the cursor
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 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) {
- screen_ = new QImage(p->viewport()->width(), p->viewport()->height(),
- QImage::Format_ARGB32_Premultiplied);
+ 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 {
- screen_ = new QPixmap(p->viewport()->width(), p->viewport()->height());
+ 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;
}
}
///
QPaintDevice * screen_;
///
BufferView * buffer_view_;
- /// Read only Buffer status cache.
- bool read_only_;
///
GuiView * lyx_view_;
/// is the cursor currently displayed
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_;
/// when the menu is actually shown (after releasing on Windows)
/// and after the DEPM has done its job.
std::string context_menu_name_;
+
+ /// stuff related to window title
+ ///
+ support::FileName file_name_;
+ ///
+ bool read_only_;
+ ///
+ docstring vc_status_;
+ ///
+ bool clean_;
+
}; // GuiWorkArea
} // namespace frontend