sw/uiconfig/swriter/ui/linenumbering.ui | 1 + vcl/inc/vcl/edit.hxx | 7 ++++++- vcl/source/control/edit.cxx | 22 +++++++++++++++++++++- vcl/source/window/builder.cxx | 11 +++++++++++ 4 files changed, 39 insertions(+), 2 deletions(-)
New commits: commit ada3c1e8b898873e2bd070cc5abe3d6226e56d50 Author: Caolán McNamara <caol...@redhat.com> Date: Tue Sep 4 14:14:55 2012 +0100 support GtkEntry width-chars property Change-Id: I5a3bdf6058b0d786923a9543a064bddcc84f001a diff --git a/sw/uiconfig/swriter/ui/linenumbering.ui b/sw/uiconfig/swriter/ui/linenumbering.ui index e4d3edf..f664a6b 100644 --- a/sw/uiconfig/swriter/ui/linenumbering.ui +++ b/sw/uiconfig/swriter/ui/linenumbering.ui @@ -363,6 +363,7 @@ <property name="visible">True</property> <property name="can_focus">True</property> <property name="invisible_char">â</property> + <property name="width_chars">3</property> <property name="invisible_char_set">True</property> </object> <packing> diff --git a/vcl/inc/vcl/edit.hxx b/vcl/inc/vcl/edit.hxx index 42b9718..12314a6 100644 --- a/vcl/inc/vcl/edit.hxx +++ b/vcl/inc/vcl/edit.hxx @@ -76,8 +76,9 @@ private: XubString maRedoText; long mnXOffset; Selection maSelection; - sal_uInt16 mnAlign; + sal_uInt16 mnAlign; xub_StrLen mnMaxTextLen; + sal_Int32 mnMinWidthInChars; AutocompleteAction meAutocompleteAction; xub_Unicode mcEchoChar; sal_Bool mbModified:1, @@ -197,6 +198,9 @@ public: virtual void SetMaxTextLen( xub_StrLen nMaxLen = EDIT_NOLIMIT ); virtual xub_StrLen GetMaxTextLen() const { return mnMaxTextLen; } + void SetMaxWidthInChars(sal_Int32 nMinWidthInChars); + sal_Int32 GetMinWidthInChars() const { return mnMinWidthInChars; } + virtual void SetSelection( const Selection& rSelection ); virtual const Selection& GetSelection() const; @@ -248,6 +252,7 @@ public: virtual rtl::OUString GetSurroundingText() const; virtual Selection GetSurroundingTextSelection() const; virtual void take_properties(Window &rOther); + virtual bool set_property(const rtl::OString &rKey, const rtl::OString &rValue); // returns the minimum size a bordered Edit should have given the current // global style settings (needed by sc's inputwin.cxx) diff --git a/vcl/source/control/edit.cxx b/vcl/source/control/edit.cxx index 6dd30d5..dcbacdb 100644 --- a/vcl/source/control/edit.cxx +++ b/vcl/source/control/edit.cxx @@ -220,6 +220,24 @@ Edit::Edit( Window* pParent, const ResId& rResId ) : Show(); } +void Edit::SetMaxWidthInChars(sal_Int32 nMinWidthInChars) +{ + if (mnMinWidthInChars != nMinWidthInChars) + { + mnMinWidthInChars = nMinWidthInChars; + queue_resize(); + } +} + +bool Edit::set_property(const rtl::OString &rKey, const rtl::OString &rValue) +{ + if (rKey.equalsL(RTL_CONSTASCII_STRINGPARAM("width-chars"))) + SetMaxWidthInChars(rValue.toInt32()); + else + return Control::set_property(rKey, rValue); + return true; +} + void Edit::take_properties(Window &rOther) { if (!GetParent()) @@ -239,6 +257,7 @@ void Edit::take_properties(Window &rOther) maSelection = rOtherEdit.maSelection; mnAlign = rOtherEdit.mnAlign; mnMaxTextLen = rOtherEdit.mnMaxTextLen; + mnMinWidthInChars = rOtherEdit.mnMinWidthInChars; meAutocompleteAction = rOtherEdit.meAutocompleteAction; mcEchoChar = rOtherEdit.mcEchoChar; mbModified = rOtherEdit.mbModified; @@ -313,6 +332,7 @@ void Edit::ImplInitEditData() mnXOffset = 0; mnAlign = EDIT_ALIGN_LEFT; mnMaxTextLen = EDIT_NOLIMIT; + mnMinWidthInChars = 3; meAutocompleteAction = AUTOCOMPLETE_KEYINPUT; mbModified = sal_False; mbInternModified = sal_False; @@ -2865,7 +2885,7 @@ Size Edit::CalcMinimumSizeForText(const rtl::OUString &rString) const Size aSize ( GetTextWidth( rString ), GetTextHeight() ); // do not create edit fields in which one cannot enter anything // a default minimum width should exist for at least 3 characters - Size aMinSize ( CalcSize( 3 ) ); + Size aMinSize ( CalcSize( mnMinWidthInChars ) ); if( aSize.Width() < aMinSize.Width() ) aSize.Width() = aMinSize.Width(); // add some space between text entry and border diff --git a/vcl/source/window/builder.cxx b/vcl/source/window/builder.cxx index d85966f..7eb5d44 100644 --- a/vcl/source/window/builder.cxx +++ b/vcl/source/window/builder.cxx @@ -304,6 +304,14 @@ namespace return eUnit; } + + void ensureDefaultWidthChars(VclBuilder::stringmap &rMap) + { + rtl::OString sWidthChars(RTL_CONSTASCII_STRINGPARAM("width-chars")); + VclBuilder::stringmap::iterator aFind = rMap.find(sWidthChars); + if (aFind == rMap.end()) + rMap[sWidthChars] = "25"; + } } bool VclBuilder::extractGroup(const rtl::OString &id, stringmap &rMap) @@ -469,7 +477,10 @@ Window *VclBuilder::makeObject(Window *pParent, const rtl::OString &name, const pWindow = new FixedLine(pParent, WB_HORZ); } else if (name.equalsL(RTL_CONSTASCII_STRINGPARAM("GtkEntry"))) + { pWindow = new Edit(pParent, WB_LEFT|WB_VCENTER|WB_BORDER|WB_3DLOOK); + ensureDefaultWidthChars(rMap); + } else if (name.equalsL(RTL_CONSTASCII_STRINGPARAM("GtkNotebook"))) pWindow = new TabControl(pParent, WB_STDTABCONTROL|WB_3DLOOK); else if (name.equalsL(RTL_CONSTASCII_STRINGPARAM("GtkDrawingArea")))
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits