#include "ui_WorkAreaUi.h"
#include "frontends/WorkArea.h"
+#include "frontends/KeySymbol.h"
#include <QAbstractScrollArea>
#include <QTabBar>
class QToolButton;
class QWidget;
-#ifdef CursorShape
-#undef CursorShape
-#endif
-
namespace lyx {
class Buffer;
/// is GuiView in fullscreen mode?
bool isFullScreen() const;
///
- void scheduleRedraw();
- ///
BufferView & bufferView();
///
BufferView const & bufferView() const;
///
- void redraw(bool update_metrics);
+ void scheduleRedraw(bool update_metrics);
/// return true if the key is part of a shortcut
bool queryKeySym(KeySymbol const & key, KeyModifier mod) const;
- /// Process Key pressed event.
- /// This needs to be public because it is accessed externally by GuiView.
- void processKeySym(KeySymbol const & key, KeyModifier mod);
bool inDialogMode() const;
void setDialogMode(bool mode);
///
GuiCompleter & completer();
- Qt::CursorShape cursorShape() const;
-
/// Return the GuiView this workArea belongs to
GuiView const & view() const;
GuiView & view();
double pixelRatio() const;
public Q_SLOTS:
+ /// Process Key pressed event.
+ /// This needs to be public because it is accessed externally by GuiView.
+ void processKeySym(KeySymbol const & key, KeyModifier mod);
///
- void stopBlinkingCursor();
+ void stopBlinkingCaret();
///
- void startBlinkingCursor();
+ void startBlinkingCaret();
Q_SIGNALS:
///
void busy(bool);
///
void bufferViewChanged();
+ /// send key event to CompressorProxy
+ void compressKeySym(KeySymbol sym, KeyModifier mod, bool isAutoRepeat);
private Q_SLOTS:
/// Scroll the BufferView.
void scrollTo(int value);
/// timer to limit triple clicks
void doubleClickTimeout();
- /// toggle the cursor's visibility
- void toggleCursor();
+ /// toggle the caret's visibility
+ void toggleCaret();
/// close this work area.
/// Slot for Buffer::closing signal.
void close();
}; // GuiWorkArea
+/// CompressorProxy adapted from Kuba Ober https://stackoverflow.com/a/21006207
+class CompressorProxy : public QObject
+{
+ Q_OBJECT
+ bool emitCheck(bool isAutoRepeat);
+ bool flag_;
+ // input: event to compress
+ Q_SLOT void slot(KeySymbol sym, KeyModifier mod, bool isAutoRepeat);
+ // output: compressed event
+ Q_SIGNAL void signal(KeySymbol sym, KeyModifier mod);
+public:
+ // No default constructor, since the proxy must be a child of the
+ // target object.
+ explicit CompressorProxy(GuiWorkArea * wa);
+};
+
+
class EmbeddedWorkArea : public GuiWorkArea
{
Q_OBJECT