diff options
| author | Vadim Savchuk <vsavchuk@productengine.com> | 2010-01-11 12:57:42 +0200 | 
|---|---|---|
| committer | Vadim Savchuk <vsavchuk@productengine.com> | 2010-01-11 12:57:42 +0200 | 
| commit | 9393c28831c3b51d9b84950bb0bc89ca50edac23 (patch) | |
| tree | 46f3aeb3d340d115c6ccd4a53993350b47691f96 /indra/llui | |
| parent | 1a21ce62c225dfc8f2671691929a3b1a9bc73726 (diff) | |
| parent | df08485cf840e21e2ec8d14664a45714e0a3ca96 (diff) | |
Merge from default branch.
--HG--
branch : product-engine
Diffstat (limited to 'indra/llui')
| -rw-r--r-- | indra/llui/llcheckboxctrl.cpp | 2 | ||||
| -rw-r--r-- | indra/llui/llconsole.cpp | 2 | ||||
| -rw-r--r-- | indra/llui/lllineeditor.cpp | 3 | ||||
| -rw-r--r-- | indra/llui/llmenubutton.h | 1 | ||||
| -rw-r--r-- | indra/llui/llmenugl.cpp | 55 | ||||
| -rw-r--r-- | indra/llui/lltextbase.cpp | 7 | 
6 files changed, 41 insertions, 29 deletions
| diff --git a/indra/llui/llcheckboxctrl.cpp b/indra/llui/llcheckboxctrl.cpp index cd10dfdb1c..3d32157406 100644 --- a/indra/llui/llcheckboxctrl.cpp +++ b/indra/llui/llcheckboxctrl.cpp @@ -107,8 +107,8 @@ LLCheckBoxCtrl::LLCheckBoxCtrl(const LLCheckBoxCtrl::Params& p)  	{  		tbparams.font(p.font);  	} +	tbparams.text_color( p.enabled() ? p.text_enabled_color() : p.text_disabled_color() );  	mLabel = LLUICtrlFactory::create<LLTextBox> (tbparams); -  	addChild(mLabel);  	// Button diff --git a/indra/llui/llconsole.cpp b/indra/llui/llconsole.cpp index c9090d388d..e08d93b232 100644 --- a/indra/llui/llconsole.cpp +++ b/indra/llui/llconsole.cpp @@ -330,7 +330,7 @@ void LLConsole::Paragraph::updateLines(F32 screen_width, const LLFontGL* font, b  			skip_chars = 0;  		} -		U32 drawable = font->maxDrawableChars(mParagraphText.c_str()+paragraph_offset, screen_width, line_end - paragraph_offset, TRUE); +		U32 drawable = font->maxDrawableChars(mParagraphText.c_str()+paragraph_offset, screen_width, line_end - paragraph_offset, LLFontGL::WORD_BOUNDARY_IF_POSSIBLE);  		if (drawable != 0)  		{ diff --git a/indra/llui/lllineeditor.cpp b/indra/llui/lllineeditor.cpp index 8a21155cc3..73e4d126f3 100644 --- a/indra/llui/lllineeditor.cpp +++ b/indra/llui/lllineeditor.cpp @@ -1583,7 +1583,6 @@ void LLLineEditor::draw()  	F32 alpha = getDrawContext().mAlpha;  	S32 text_len = mText.length();  	static LLUICachedControl<S32> lineeditor_cursor_thickness ("UILineEditorCursorThickness", 0); -	static LLUICachedControl<S32> lineeditor_v_pad ("UILineEditorVPad", 0);  	static LLUICachedControl<F32> preedit_marker_brightness ("UIPreeditMarkerBrightness", 0);  	static LLUICachedControl<S32> preedit_marker_gap ("UIPreeditMarkerGap", 0);  	static LLUICachedControl<S32> preedit_marker_position ("UIPreeditMarkerPosition", 0); @@ -1609,6 +1608,8 @@ void LLLineEditor::draw()  	LLRect background( 0, getRect().getHeight(), getRect().getWidth(), 0 );  	background.stretch( -mBorderThickness ); +	S32 lineeditor_v_pad = llround((background.getHeight() - mGLFont->getLineHeight())/2); +  	drawBackground();  	// draw text diff --git a/indra/llui/llmenubutton.h b/indra/llui/llmenubutton.h index 02eb9d3806..d0e99d9f40 100644 --- a/indra/llui/llmenubutton.h +++ b/indra/llui/llmenubutton.h @@ -55,6 +55,7 @@ public:  	/*virtual*/ BOOL handleMouseDown(S32 x, S32 y, MASK mask);  	/*virtual*/ BOOL handleKeyHere(KEY key, MASK mask );  	void hideMenu(); +	LLMenuGL* getMenu() { return mMenu; }  protected:  	friend class LLUICtrlFactory; diff --git a/indra/llui/llmenugl.cpp b/indra/llui/llmenugl.cpp index abcc0010c0..29adb0d8b6 100644 --- a/indra/llui/llmenugl.cpp +++ b/indra/llui/llmenugl.cpp @@ -1143,37 +1143,41 @@ BOOL LLMenuItemBranchGL::handleKeyHere( KEY key, MASK mask )  	if (!branch)  		return LLMenuItemGL::handleKeyHere(key, mask); -	if (getMenu()->getVisible() && branch->getVisible() && key == KEY_LEFT) +	// an item is highlighted, my menu is open, and I have an active sub menu or we are in +	// keyboard navigation mode +	if (getHighlight()  +		&& getMenu()->isOpen()  +		&& (isActive() || LLMenuGL::getKeyboardMode()))  	{ -		// switch to keyboard navigation mode -		LLMenuGL::setKeyboardMode(TRUE); - -		BOOL handled = branch->clearHoverItem(); -		if (branch->getTornOff()) +		if (branch->getVisible() && key == KEY_LEFT)  		{ -			((LLFloater*)branch->getParent())->setFocus(FALSE); -		} -		if (handled && getMenu()->getTornOff()) -		{ -			((LLFloater*)getMenu()->getParent())->setFocus(TRUE); -		} -		return handled; -	} +			// switch to keyboard navigation mode +			LLMenuGL::setKeyboardMode(TRUE); -	if (getHighlight() &&  -		getMenu()->isOpen() &&  -		key == KEY_RIGHT && !branch->getHighlightedItem()) -	{ -		// switch to keyboard navigation mode -		LLMenuGL::setKeyboardMode(TRUE); +			BOOL handled = branch->clearHoverItem(); +			if (branch->getTornOff()) +			{ +				((LLFloater*)branch->getParent())->setFocus(FALSE); +			} +			if (handled && getMenu()->getTornOff()) +			{ +				((LLFloater*)getMenu()->getParent())->setFocus(TRUE); +			} +			return handled; +		} -		LLMenuItemGL* itemp = branch->highlightNextItem(NULL); -		if (itemp) +		if (key == KEY_RIGHT && !branch->getHighlightedItem())  		{ -			return TRUE; +			// switch to keyboard navigation mode +			LLMenuGL::setKeyboardMode(TRUE); + +			LLMenuItemGL* itemp = branch->highlightNextItem(NULL); +			if (itemp) +			{ +				return TRUE; +			}  		}  	} -  	return LLMenuItemGL::handleKeyHere(key, mask);  } @@ -1431,7 +1435,7 @@ BOOL LLMenuItemBranchDownGL::handleKeyHere(KEY key, MASK mask)  {  	BOOL menu_open = getBranch()->getVisible();  	// don't do keyboard navigation of top-level menus unless in keyboard mode, or menu expanded -	if (getHighlight() && getMenu()->getVisible() && (isActive() || LLMenuGL::getKeyboardMode())) +	if (getHighlight() && getMenu()->isOpen() && (isActive() || LLMenuGL::getKeyboardMode()))  	{  		if (key == KEY_LEFT)  		{ @@ -2836,6 +2840,7 @@ BOOL LLMenuGL::handleScrollWheel( S32 x, S32 y, S32 clicks )  	return TRUE;  } +  void LLMenuGL::draw( void )  {  	if (mNeedsArrange) diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp index 7447a984ac..5ebf49c488 100644 --- a/indra/llui/lltextbase.cpp +++ b/indra/llui/lltextbase.cpp @@ -2509,10 +2509,15 @@ S32	LLNormalTextSegment::getNumChars(S32 num_pixels, S32 segment_offset, S32 lin  	// set max characters to length of segment, or to first newline  	max_chars = llmin(max_chars, last_char - (mStart + segment_offset)); +	// if no character yet displayed on this line, don't require word wrapping since +	// we can just move to the next line, otherwise insist on it so we make forward progress +	LLFontGL::EWordWrapStyle word_wrap_style = (line_offset == 0)  +		? LLFontGL::WORD_BOUNDARY_IF_POSSIBLE  +		: LLFontGL::ONLY_WORD_BOUNDARIES;  	S32 num_chars = mStyle->getFont()->maxDrawableChars(text.c_str() + segment_offset + mStart,   												(F32)num_pixels,  												max_chars,  -												TRUE); +												word_wrap_style);  	if (num_chars == 0   		&& line_offset == 0  | 
