summaryrefslogtreecommitdiff
path: root/src/gui/widgets
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2012-12-30 16:00:06 +0300
committerAndrei Karas <akaras@inbox.ru>2012-12-30 16:00:06 +0300
commit6e5d8181b830694a90bba7ad5651fa0b726e4a75 (patch)
tree27c2cc174c5b327a75604c1c99a270143879be7c /src/gui/widgets
parent8a24c37deef374bf138569d50221e34fbc97ee98 (diff)
downloadmv-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.h3
-rw-r--r--src/gui/widgets/textfield.cpp11
-rw-r--r--src/gui/widgets/textfield.h10
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;