diff options
author | Andrei Karas <akaras@inbox.ru> | 2012-12-30 16:00:06 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2012-12-30 16:00:06 +0300 |
commit | 6e5d8181b830694a90bba7ad5651fa0b726e4a75 (patch) | |
tree | 27c2cc174c5b327a75604c1c99a270143879be7c /src/gui/widgets | |
parent | 8a24c37deef374bf138569d50221e34fbc97ee98 (diff) | |
download | mv-6e5d8181b830694a90bba7ad5651fa0b726e4a75.tar.gz mv-6e5d8181b830694a90bba7ad5651fa0b726e4a75.tar.bz2 mv-6e5d8181b830694a90bba7ad5651fa0b726e4a75.tar.xz mv-6e5d8181b830694a90bba7ad5651fa0b726e4a75.zip |
Add popup menu for text fields.
This menu allow copy/paste text to/from clipboard.
Diffstat (limited to 'src/gui/widgets')
-rw-r--r-- | src/gui/widgets/browserbox.h | 3 | ||||
-rw-r--r-- | src/gui/widgets/textfield.cpp | 11 | ||||
-rw-r--r-- | src/gui/widgets/textfield.h | 10 |
3 files changed, 20 insertions, 4 deletions
diff --git a/src/gui/widgets/browserbox.h b/src/gui/widgets/browserbox.h index 2f0313c37..fad731e5a 100644 --- a/src/gui/widgets/browserbox.h +++ b/src/gui/widgets/browserbox.h @@ -211,6 +211,9 @@ class BrowserBox final : public gcn::Widget, std::string getTextAtPos(const int x, const int y) const A_WARN_UNUSED; + int getPadding() const A_WARN_UNUSED + { return mPadding; } + private: int calcHeight() A_WARN_UNUSED; diff --git a/src/gui/widgets/textfield.cpp b/src/gui/widgets/textfield.cpp index 260b0fe57..3a6212b79 100644 --- a/src/gui/widgets/textfield.cpp +++ b/src/gui/widgets/textfield.cpp @@ -27,6 +27,7 @@ #include "keyevent.h" #include "gui/sdlinput.h" +#include "gui/viewport.h" #include "resources/image.h" @@ -515,3 +516,13 @@ void TextField::fontChanged() { fixScroll(); } + +void TextField::mousePressed(gcn::MouseEvent &mouseEvent) +{ + if (mouseEvent.getButton() == gcn::MouseEvent::RIGHT) + { + if (viewport) + viewport->showTextFieldPopup(this); + } + else gcn::TextField::mousePressed(mouseEvent); +} diff --git a/src/gui/widgets/textfield.h b/src/gui/widgets/textfield.h index 34ca88b4a..9220f3dd7 100644 --- a/src/gui/widgets/textfield.h +++ b/src/gui/widgets/textfield.h @@ -115,6 +115,12 @@ class TextField : public gcn::TextField, void setCaretPosition(unsigned int position); + void mousePressed(gcn::MouseEvent &mouseEvent) override; + + void handlePaste(); + + void handleCopy() const; + protected: void drawCaret(gcn::Graphics* graphics, int x) override; @@ -127,10 +133,6 @@ class TextField : public gcn::TextField, static Skin *mSkin; private: - void handlePaste(); - - void handleCopy() const; - static int instances; static float mAlpha; static ImageRect skin; |