svx/inc/tbunosearchcontrollers.hxx | 4 -- svx/source/tbxctrls/tbunosearchcontrollers.cxx | 36 ++---------------------- vcl/inc/vcl/edit.hxx | 4 ++ vcl/source/control/edit.cxx | 37 +++++++++++++++++++++++-- 4 files changed, 42 insertions(+), 39 deletions(-)
New commits: commit 52252bb529a41979aa4f11d529ae555401ae8563 Author: Ivan Timofeev <timofeev....@gmail.com> Date: Mon Nov 26 23:28:57 2012 +0400 findbar: use new SetPlaceholderText method Change-Id: I2e9b825110ed2e83c053b2084c4e6c868d1e9d9f diff --git a/svx/inc/tbunosearchcontrollers.hxx b/svx/inc/tbunosearchcontrollers.hxx index 8fb7d33..88291a8 100644 --- a/svx/inc/tbunosearchcontrollers.hxx +++ b/svx/inc/tbunosearchcontrollers.hxx @@ -60,10 +60,8 @@ public: css::uno::Reference< css::lang::XMultiServiceFactory >& xServiceManager ); virtual ~FindTextFieldControl(); - virtual void Modify(); virtual long PreNotify( NotifyEvent& rNEvt ); - void InitControls_Impl(); void Remember_Impl(const String& rStr); void SetTextToSelected_Impl(); @@ -71,8 +69,6 @@ private: css::uno::Reference< css::frame::XFrame > m_xFrame; css::uno::Reference< css::lang::XMultiServiceFactory > m_xServiceManager; - sal_Bool m_bToClearTextField; - }; class SearchToolbarControllersManager diff --git a/svx/source/tbxctrls/tbunosearchcontrollers.cxx b/svx/source/tbxctrls/tbunosearchcontrollers.cxx index acbb95e..3ea241d 100644 --- a/svx/source/tbxctrls/tbunosearchcontrollers.cxx +++ b/svx/source/tbxctrls/tbunosearchcontrollers.cxx @@ -81,24 +81,16 @@ FindTextFieldControl::FindTextFieldControl( Window* pParent, WinBits nStyle, css::uno::Reference< css::lang::XMultiServiceFactory >& xServiceManager) : ComboBox( pParent, nStyle ), m_xFrame(xFrame), - m_xServiceManager(xServiceManager), - m_bToClearTextField(sal_True) + m_xServiceManager(xServiceManager) { - InitControls_Impl(); + SetPlaceholderText(SVX_RESSTR(RID_SVXSTR_FINDBAR_FIND)); + EnableAutocomplete(sal_True, sal_True); } FindTextFieldControl::~FindTextFieldControl() { } -void FindTextFieldControl::InitControls_Impl() -{ - SetText( SVX_RESSTR( RID_SVXSTR_FINDBAR_FIND ) ); - SetControlForeground(GetSettings().GetStyleSettings().GetDisableColor()); - - EnableAutocomplete(sal_True, sal_True); -} - void FindTextFieldControl::Remember_Impl(const String& rStr) { sal_uInt16 nCount = GetEntryCount(); @@ -137,17 +129,9 @@ void FindTextFieldControl::SetTextToSelected_Impl() if ( aString.getLength() != 0 ) { SetText( aString ); - m_bToClearTextField = sal_False; } } -void FindTextFieldControl::Modify() -{ - ComboBox::Modify(); - - SetControlForeground( GetSettings().GetStyleSettings().GetWindowTextColor() ); -} - long FindTextFieldControl::PreNotify( NotifyEvent& rNEvt ) { long nRet= ComboBox::PreNotify( rNEvt ); @@ -208,22 +192,8 @@ long FindTextFieldControl::PreNotify( NotifyEvent& rNEvt ) } case EVENT_GETFOCUS: - if ( m_bToClearTextField ) - { - SetText( OUString() ); - m_bToClearTextField = sal_False; - } SetSelection( Selection( SELECTION_MIN, SELECTION_MAX ) ); break; - - case EVENT_LOSEFOCUS: - if ( GetText().Len() == 0 ) - { - SetText( SVX_RESSTR( RID_SVXSTR_FINDBAR_FIND ) ); - SetControlForeground(GetSettings().GetStyleSettings().GetDisableColor()); - m_bToClearTextField = sal_True; - } - break; } return nRet; commit 37c4a408ebd2895ca06e6a22c54591494e9ec52c Author: Ivan Timofeev <timofeev....@gmail.com> Date: Mon Nov 26 23:26:17 2012 +0400 vcl: Edit: add placeholder text feature, import it from .ui Change-Id: I65d305b07dba5ddd80a108d5ef1b36f75eb67243 diff --git a/vcl/inc/vcl/edit.hxx b/vcl/inc/vcl/edit.hxx index e2b9186..3ad29cf 100644 --- a/vcl/inc/vcl/edit.hxx +++ b/vcl/inc/vcl/edit.hxx @@ -62,6 +62,7 @@ private: DDInfo* mpDDInfo; Impl_IMEInfos* mpIMEInfos; XubString maText; + OUString maPlaceholderText; XubString maSaveValue; XubString maUndoText; XubString maRedoText; @@ -209,6 +210,9 @@ public: virtual void SetText( const XubString& rStr, const Selection& rNewSelection ); virtual XubString GetText() const; + virtual void SetPlaceholderText( const OUString& rStr ); + virtual OUString GetPlaceholderText() const; + void SaveValue() { maSaveValue = GetText(); } const XubString& GetSavedValue() const { return maSaveValue; } diff --git a/vcl/source/control/edit.cxx b/vcl/source/control/edit.cxx index 0c1ae90..a82a465 100644 --- a/vcl/source/control/edit.cxx +++ b/vcl/source/control/edit.cxx @@ -238,6 +238,8 @@ bool Edit::set_property(const rtl::OString &rKey, const rtl::OString &rValue) nBits |= WB_PASSWORD; SetStyle(nBits); } + else if (rKey == "placeholder-text") + SetPlaceholderText(OStringToOUString(rValue, RTL_TEXTENCODING_UTF8)); else return Control::set_property(rKey, rValue); return true; @@ -255,6 +257,7 @@ void Edit::take_properties(Window &rOther) Edit &rOtherEdit = static_cast<Edit&>(rOther); maText = rOtherEdit.maText; + maPlaceholderText = rOtherEdit.maPlaceholderText; maSaveValue = rOtherEdit.maSaveValue; maUndoText = rOtherEdit.maUndoText; maRedoText = rOtherEdit.maRedoText; @@ -601,10 +604,12 @@ void Edit::ImplRepaint( xub_StrLen nStart, xub_StrLen nEnd, bool bLayout ) ImplClearBackground( 0, GetOutputSizePixel().Width() ); + bool bPaintPlaceholderText = aText.Len() == 0 && !maPlaceholderText.isEmpty(); + const StyleSettings& rStyleSettings = GetSettings().GetStyleSettings(); if ( IsEnabled() ) ImplInitSettings( sal_False, sal_True, sal_False ); - else + if ( !IsEnabled() || bPaintPlaceholderText ) SetTextColor( rStyleSettings.GetDisableColor() ); // Set background color of the normal text @@ -630,7 +635,11 @@ void Edit::ImplRepaint( xub_StrLen nStart, xub_StrLen nEnd, bool bLayout ) long nPos = nStart ? pDX[2*nStart] : 0; aPos.X() = nPos + mnXOffset + ImplGetExtraOffset(); - if ( !bDrawSelection && !mpIMEInfos ) + if ( bPaintPlaceholderText ) + { + DrawText( aPos, maPlaceholderText ); + } + else if ( !bDrawSelection && !mpIMEInfos ) { DrawText( aPos, aText, nStart, nEnd - nStart ); } @@ -2863,6 +2872,30 @@ XubString Edit::GetText() const // ----------------------------------------------------------------------- +void Edit::SetPlaceholderText( const OUString& rStr ) +{ + if ( mpSubEdit ) + mpSubEdit->SetPlaceholderText( rStr ); + else if ( maPlaceholderText != rStr ) + { + maPlaceholderText = rStr; + if ( GetText().Len() == 0 ) + Invalidate(); + } +} + +// ----------------------------------------------------------------------- + +OUString Edit::GetPlaceholderText() const +{ + if ( mpSubEdit ) + return mpSubEdit->GetPlaceholderText(); + + return maPlaceholderText; +} + +// ----------------------------------------------------------------------- + void Edit::SetModifyFlag() { if ( mpSubEdit ) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits