diff options
| author | Tofu Linden <tofu.linden@lindenlab.com> | 2010-02-05 06:21:09 +0000 | 
|---|---|---|
| committer | Tofu Linden <tofu.linden@lindenlab.com> | 2010-02-05 06:21:09 +0000 | 
| commit | 367fda833cb5633564c2518f613a00484eb73ec5 (patch) | |
| tree | cc98e6d0c1a2fb2b045c19785ccc4a8b6f067bda /indra | |
| parent | 7d2d8ea58f572a6df08b04f64f3b71501ee21f6c (diff) | |
| parent | f60afe790b156051f1da72abea2ea64731c704ac (diff) | |
PE merge.
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/llui/lllineeditor.cpp | 42 | ||||
| -rw-r--r-- | indra/llui/lllineeditor.h | 9 | ||||
| -rw-r--r-- | indra/newview/llbottomtray.cpp | 10 | ||||
| -rw-r--r-- | indra/newview/llfavoritesbar.cpp | 4 | ||||
| -rw-r--r-- | indra/newview/llfloatercolorpicker.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/lllocationinputctrl.cpp | 1 | 
6 files changed, 63 insertions, 5 deletions
| diff --git a/indra/llui/lllineeditor.cpp b/indra/llui/lllineeditor.cpp index 3e277f47b5..30b09352d8 100644 --- a/indra/llui/lllineeditor.cpp +++ b/indra/llui/lllineeditor.cpp @@ -55,6 +55,7 @@  #include "llui.h"  #include "lluictrlfactory.h"  #include "llclipboard.h" +#include "llmenugl.h"  //  // Imported globals @@ -164,7 +165,8 @@ LLLineEditor::LLLineEditor(const LLLineEditor::Params& p)  	mTentativeFgColor(p.text_tentative_color()),  	mHighlightColor(p.highlight_color()),  	mPreeditBgColor(p.preedit_bg_color()), -	mGLFont(p.font) +	mGLFont(p.font), +	mContextMenuHandle()  {  	llassert( mMaxLengthBytes > 0 ); @@ -191,6 +193,12 @@ LLLineEditor::LLLineEditor(const LLLineEditor::Params& p)  	setCursor(mText.length());  	setPrevalidate(p.prevalidate_callback()); + +	LLContextMenu* menu = LLUICtrlFactory::instance().createFromFile<LLContextMenu> +		("menu_text_editor.xml", +		 LLMenuGL::sMenuContainer, +		 LLMenuHolderGL::child_registry_t::instance()); +	setContextMenu(menu);  }  LLLineEditor::~LLLineEditor() @@ -667,6 +675,16 @@ BOOL LLLineEditor::handleMiddleMouseDown(S32 x, S32 y, MASK mask)  	return TRUE;  } +BOOL LLLineEditor::handleRightMouseDown(S32 x, S32 y, MASK mask) +{ +	setFocus(TRUE); +	if (!LLUICtrl::handleRightMouseDown(x, y, mask)) +	{ +		showContextMenu(x, y); +	} +	return TRUE; +} +  BOOL LLLineEditor::handleHover(S32 x, S32 y, MASK mask)  {  	BOOL handled = FALSE; @@ -2564,3 +2582,25 @@ LLWString LLLineEditor::getConvertedText() const  	}  	return text;  } + +void LLLineEditor::showContextMenu(S32 x, S32 y) +{ +	LLContextMenu* menu = static_cast<LLContextMenu*>(mContextMenuHandle.get()); + +	if (menu) +	{ +		gEditMenuHandler = this; + +		S32 screen_x, screen_y; +		localPointToScreen(x, y, &screen_x, &screen_y); +		menu->show(screen_x, screen_y); +	} +} + +void LLLineEditor::setContextMenu(LLContextMenu* new_context_menu) +{ +	if (new_context_menu) +		mContextMenuHandle = new_context_menu->getHandle(); +	else +		mContextMenuHandle.markDead(); +} diff --git a/indra/llui/lllineeditor.h b/indra/llui/lllineeditor.h index 49e9539b16..a06a317f76 100644 --- a/indra/llui/lllineeditor.h +++ b/indra/llui/lllineeditor.h @@ -56,6 +56,7 @@  class LLFontGL;  class LLLineEditorRollback;  class LLButton; +class LLContextMenu;  typedef boost::function<BOOL (const LLWString &wstr)> LLLinePrevalidateFunc; @@ -113,6 +114,7 @@ protected:  	LLLineEditor(const Params&);  	friend class LLUICtrlFactory;  	friend class LLFloaterEditUI; +	void showContextMenu(S32 x, S32 y);  public:  	virtual ~LLLineEditor(); @@ -122,6 +124,7 @@ 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(); @@ -249,7 +252,9 @@ public:  	void			updateHistory(); // stores current line in history  	void			setReplaceNewlinesWithSpaces(BOOL replace); -	 + +	void			setContextMenu(LLContextMenu* new_context_menu); +  private:  	// private helper methods @@ -348,6 +353,8 @@ protected:  	std::vector<S32> mPreeditPositions;  	LLPreeditor::standouts_t mPreeditStandouts; +	LLHandle<LLView> mContextMenuHandle; +  private:  	// Instances that by default point to the statics but can be overidden in XML.  	LLPointer<LLUIImage> mBgImage; diff --git a/indra/newview/llbottomtray.cpp b/indra/newview/llbottomtray.cpp index 4c8cec3d30..93b708f299 100644 --- a/indra/newview/llbottomtray.cpp +++ b/indra/newview/llbottomtray.cpp @@ -80,6 +80,14 @@ public:  	{  		mNearbyChatBar = getChild<LLNearbyChatBar>("chat_bar");  		mGesturePanel = getChild<LLPanel>("gesture_panel"); + +		// Hide "show_nearby_chat" button  +		LLLineEditor* chat_box = mNearbyChatBar->getChatBox(); +		LLUICtrl* show_btn = mNearbyChatBar->getChild<LLUICtrl>("show_nearby_chat"); +		S32 delta_width = show_btn->getRect().getWidth(); +		show_btn->setVisible(FALSE); +		chat_box->reshape(chat_box->getRect().getWidth() + delta_width, chat_box->getRect().getHeight()); +  		return TRUE;  	} @@ -433,6 +441,8 @@ BOOL LLBottomTray::postBuild()  	mObjectDefaultWidthMap[RS_BUTTON_CAMERA]   = mCamPanel->getRect().getWidth();  	mObjectDefaultWidthMap[RS_BUTTON_SPEAK]	   = mSpeakPanel->getRect().getWidth(); +	mNearbyChatBar->getChatBox()->setContextMenu(NULL); +  	return TRUE;  } diff --git a/indra/newview/llfavoritesbar.cpp b/indra/newview/llfavoritesbar.cpp index 90f6438980..0f52b30567 100644 --- a/indra/newview/llfavoritesbar.cpp +++ b/indra/newview/llfavoritesbar.cpp @@ -628,8 +628,8 @@ void LLFavoritesBarCtrl::draw()  	if (mShowDragMarker)  	{ -		S32 w = mImageDragIndication->getWidth() / 2; -		S32 h = mImageDragIndication->getHeight() / 2; +		S32 w = mImageDragIndication->getWidth(); +		S32 h = mImageDragIndication->getHeight();  		if (mLandingTab)  		{ diff --git a/indra/newview/llfloatercolorpicker.cpp b/indra/newview/llfloatercolorpicker.cpp index 73b79d8e13..b65457c4eb 100644 --- a/indra/newview/llfloatercolorpicker.cpp +++ b/indra/newview/llfloatercolorpicker.cpp @@ -586,7 +586,7 @@ void LLFloaterColorPicker::draw()  	gl_triangle_2d ( startX, startY,  			startX + mLumMarkerSize, startY - mLumMarkerSize,  				startX + mLumMarkerSize, startY + mLumMarkerSize, -					LLColor4 ( 0.0f, 0.0f, 0.0f, 1.0f ), TRUE ); +					LLColor4 ( 0.75f, 0.75f, 0.75f, 1.0f ), TRUE );  	// draw luminance slider outline  	gl_rect_2d ( mLumRegionLeft, diff --git a/indra/newview/lllocationinputctrl.cpp b/indra/newview/lllocationinputctrl.cpp index 4f40a0a532..1b7ad6ab7e 100644 --- a/indra/newview/lllocationinputctrl.cpp +++ b/indra/newview/lllocationinputctrl.cpp @@ -227,6 +227,7 @@ LLLocationInputCtrl::LLLocationInputCtrl(const LLLocationInputCtrl::Params& p)  	params.commit_on_focus_lost(false);  	params.follows.flags(FOLLOWS_ALL);  	mTextEntry = LLUICtrlFactory::create<LLURLLineEditor>(params); +	mTextEntry->setContextMenu(NULL);  	addChild(mTextEntry);  	// LLLineEditor is replaced with LLLocationLineEditor | 
