Right click menus for text entry areas that include copy/paste options.

Signed-off-by: Beeks <HgDelirium@gmail.com>
This commit is contained in:
Beeks
2010-09-27 19:48:58 -04:00
parent 94d21fb256
commit b1bc45ac42
6 changed files with 334 additions and 92 deletions

View File

@@ -91,10 +91,13 @@ public:
/*virtual*/ BOOL handleHover(S32 x, S32 y, MASK mask);
/*virtual*/ BOOL handleDoubleClick(S32 x,S32 y,MASK mask);
/*virtual*/ BOOL handleMiddleMouseDown(S32 x,S32 y,MASK mask);
/*virtual*/ BOOL handleRightMouseDown( S32 x, S32 y, MASK mask );
/*virtual*/ BOOL handleKeyHere(KEY key, MASK mask );
/*virtual*/ BOOL handleUnicodeCharHere(llwchar uni_char);
/*virtual*/ void onMouseCaptureLost();
virtual void insert(std::string what,S32 wher);
// LLEditMenuHandler overrides
virtual void cut();
virtual BOOL canCut() const;
@@ -119,6 +122,11 @@ public:
virtual void deselect();
virtual BOOL canDeselect() const;
static void context_cut(void* data);
static void context_copy(void* data);
static void context_paste(void* data);
static void context_delete(void* data);
static void context_selectall(void* data);
// view overrides
virtual void draw();
virtual void reshape(S32 width,S32 height,BOOL called_from_parent=TRUE);
@@ -232,6 +240,7 @@ private:
void removeChar();
void addChar(const llwchar c);
void setCursorAtLocalPos(S32 local_mouse_x);
S32 calculateCursorFromMouse(S32 local_mouse_x);
S32 findPixelNearestPos(S32 cursor_offset = 0) const;
void reportBadKeystroke();
BOOL handleSpecialKey(KEY key, MASK mask);
@@ -255,6 +264,7 @@ private:
virtual S32 getPreeditFontSize() const;
protected:
LLHandle<LLView> mPopupMenuHandle;
LLUIString mText; // The string being edited.
std::string mPrevText; // Saved string for 'ESC' revert
LLUIString mLabel; // text label that is visible when no user text provided