diff options
author | Caolán McNamara <caolanm@redhat.com> | 2020-07-06 12:56:30 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2020-07-10 10:35:45 +0200 |
commit | 12bfedfac3b141fe6c91b0e5ae5b3fb2ba817c48 (patch) | |
tree | 1e4311958ece62abc5177938e7a1bc05b456cfb9 | |
parent | b5809f3272f8e0cc5c9b6540e475d6109e7dc3ec (diff) |
weld MultiLineTextCell
Change-Id: Ib230720371552738a8c6152a98a84d31b900d062
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98209
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r-- | include/svtools/editbrowsebox.hxx | 165 | ||||
-rw-r--r-- | svtools/UIConfig_svt.mk | 1 | ||||
-rw-r--r-- | svtools/source/brwbox/ebbcontrols.cxx | 149 | ||||
-rw-r--r-- | svtools/uiconfig/ui/textviewcontrol.ui | 38 | ||||
-rw-r--r-- | svx/source/fmcomp/gridcell.cxx | 77 |
5 files changed, 286 insertions, 144 deletions
diff --git a/include/svtools/editbrowsebox.hxx b/include/svtools/editbrowsebox.hxx index 1b13daa0a565..b32518b0c1d0 100644 --- a/include/svtools/editbrowsebox.hxx +++ b/include/svtools/editbrowsebox.hxx @@ -31,7 +31,7 @@ #include <svtools/brwhead.hxx> #include <tools/lineend.hxx> #include <vcl/InterimItemWindow.hxx> -#include <vcl/vclmedit.hxx> +#include <vcl/edit.hxx> #include <vcl/weldutils.hxx> #include <o3tl/typed_flags_set.hxx> @@ -141,6 +141,9 @@ namespace svt virtual void SaveValue() = 0; virtual void SetModifyHdl( const Link<LinkParamNone*,void>& _rLink ) = 0; + virtual bool CanUp() const = 0; + virtual bool CanDown() const = 0; + virtual void Cut() = 0; virtual void Copy() = 0; virtual void Paste() = 0; @@ -197,9 +200,14 @@ namespace svt virtual void GetFocus() override; + virtual bool ProcessKey(const KeyEvent& rKEvt); + protected: void InitControlBase(weld::Widget* pWidget); + virtual void Draw(OutputDevice* pDevice, const Point& rPos, DrawFlags nFlags) override; + + DECL_LINK(KeyInputHdl, const KeyEvent&, bool); private: weld::Widget* m_pWidget; }; @@ -220,8 +228,6 @@ namespace svt private: weld::Entry* m_pEntry; - - DECL_LINK(KeyInputHdl, const KeyEvent&, bool); }; class SVT_DLLPUBLIC EditControl final : public EditControlBase @@ -335,6 +341,16 @@ namespace svt m_aModifyHdl = rLink; } + virtual bool CanUp() const override + { + return false; + } + + virtual bool CanDown() const override + { + return false; + } + virtual void Cut() override { m_rEdit.get_widget().cut_clipboard(); @@ -358,27 +374,29 @@ namespace svt /** a multi line edit which can be used in a cell of an EditBrowseBox */ - class UNLESS_MERGELIBS(SVT_DLLPUBLIC) MultiLineTextCell final : public VclMultiLineEdit + class UNLESS_MERGELIBS(SVT_DLLPUBLIC) MultiLineTextCell final : public ControlBase { public: - MultiLineTextCell( vcl::Window* _pParent, WinBits _nStyle ) - : VclMultiLineEdit( _pParent, _nStyle ) + MultiLineTextCell(BrowserDataWin* pParent); + + virtual void GetFocus() override; + + virtual void dispose() override; + + void connect_changed(const Link<weld::TextView&, void>& rLink) { + m_xWidget->connect_changed(rLink); } - private: - // Window overridables - virtual bool PreNotify( NotifyEvent& rNEvt ) override; + weld::TextView& get_widget() { return *m_xWidget; } - // MultiLineEdit overridables - virtual void Modify() override; + private: + std::unique_ptr<weld::TextView> m_xWidget; - bool dispatchKeyEvent( const KeyEvent& _rEvent ); + virtual bool ProcessKey(const KeyEvent& rKEvt) override; }; - //= concrete edit implementations - typedef GenericEditImplementation< Edit > EditImplementation_Base; class EditImplementation final : public EditImplementation_Base { @@ -388,22 +406,129 @@ namespace svt { _rEdit.SetModifyHdl(LINK(this, EditImplementation, ModifyHdl)); } + + virtual bool CanUp() const override + { + return false; + } + + virtual bool CanDown() const override + { + return false; + } }; - typedef GenericEditImplementation< MultiLineTextCell > MultiLineEditImplementation_Base; - class UNLESS_MERGELIBS(SVT_DLLPUBLIC) MultiLineEditImplementation final : public MultiLineEditImplementation_Base + class SVT_DLLPUBLIC MultiLineEditImplementation : public IEditImplementation { - DECL_LINK(ModifyHdl, Edit&, void); + MultiLineTextCell& m_rEdit; + int m_nMaxTextLen; + Link<LinkParamNone*,void> m_aModifyHdl; + + DECL_LINK(ModifyHdl, weld::TextView&, void); public: - MultiLineEditImplementation( MultiLineTextCell& _rEdit ) : MultiLineEditImplementation_Base( _rEdit ) + MultiLineEditImplementation(MultiLineTextCell& rEdit) + : m_rEdit(rEdit) + , m_nMaxTextLen(EDIT_NOLIMIT) + { + m_rEdit.connect_changed(LINK(this, MultiLineEditImplementation, ModifyHdl)); + } + + virtual Control& GetControl() override + { + return m_rEdit; + } + + virtual OUString GetText(LineEnd aSeparator) const override; + + virtual void SetText(const OUString& rStr) override + { + return m_rEdit.get_widget().set_text(rStr); + } + + virtual bool IsReadOnly() const override + { + return !m_rEdit.get_widget().get_editable(); + } + + virtual void SetReadOnly( bool bReadOnly ) override + { + m_rEdit.get_widget().set_editable(!bReadOnly); + } + + virtual sal_Int32 GetMaxTextLen() const override + { + return m_nMaxTextLen; + } + + virtual void SetMaxTextLen( sal_Int32 nMaxLen ) override + { + m_nMaxTextLen = nMaxLen; + m_rEdit.get_widget().set_max_length(nMaxLen == EDIT_NOLIMIT ? 0 : nMaxLen); + } + + virtual Selection GetSelection() const override + { + int nStartPos, nEndPos; + m_rEdit.get_widget().get_selection_bounds(nStartPos, nEndPos); + return Selection(nStartPos, nEndPos); + } + + virtual void SetSelection( const Selection& rSelection ) override { - _rEdit.SetModifyHdl(LINK(this, MultiLineEditImplementation, ModifyHdl)); + auto nMin = rSelection.Min(); + auto nMax = rSelection.Max(); + m_rEdit.get_widget().select_region(nMin < 0 ? 0 : nMin, nMax == SELECTION_MAX ? -1 : nMax); + } + + virtual void ReplaceSelected( const OUString& rStr ) override + { + m_rEdit.get_widget().replace_selection(rStr); } - virtual OUString GetText( LineEnd aSeparator ) const override; virtual OUString GetSelected( LineEnd aSeparator ) const override; + + virtual bool IsValueChangedFromSaved() const override + { + return m_rEdit.get_widget().get_value_changed_from_saved(); + } + + virtual void SaveValue() override + { + m_rEdit.get_widget().save_value(); + } + + virtual void SetModifyHdl( const Link<LinkParamNone*,void>& rLink ) override + { + m_aModifyHdl = rLink; + } + + virtual bool CanUp() const override + { + return m_rEdit.get_widget().can_move_cursor_with_up(); + } + + virtual bool CanDown() const override + { + return m_rEdit.get_widget().can_move_cursor_with_down(); + } + + virtual void Cut() override + { + m_rEdit.get_widget().cut_clipboard(); + } + + virtual void Copy() override + { + m_rEdit.get_widget().copy_clipboard(); + } + + virtual void Paste() override + { + m_rEdit.get_widget().paste_clipboard(); + } }; + //= EditCellController class SVT_DLLPUBLIC EditCellController : public CellController { diff --git a/svtools/UIConfig_svt.mk b/svtools/UIConfig_svt.mk index 23a9e7df778c..4b7cbecf4e75 100644 --- a/svtools/UIConfig_svt.mk +++ b/svtools/UIConfig_svt.mk @@ -29,6 +29,7 @@ $(eval $(call gb_UIConfig_add_uifiles,svt,\ svtools/uiconfig/ui/querydeletedialog \ svtools/uiconfig/ui/restartdialog \ svtools/uiconfig/ui/spinfieldcontrol \ + svtools/uiconfig/ui/textviewcontrol \ svtools/uiconfig/ui/thineditcontrol \ )) diff --git a/svtools/source/brwbox/ebbcontrols.cxx b/svtools/source/brwbox/ebbcontrols.cxx index f6d6992adeed..febac63d4eb5 100644 --- a/svtools/source/brwbox/ebbcontrols.cxx +++ b/svtools/source/brwbox/ebbcontrols.cxx @@ -21,10 +21,10 @@ #include <vcl/spinfld.hxx> #include <vcl/xtextedt.hxx> #include <vcl/textview.hxx> +#include <vcl/virdev.hxx> namespace svt { - //= ComboBoxControl ComboBoxControl::ComboBoxControl(BrowserDataWin* pParent) : ControlBase(pParent, "svt/ui/combocontrol.ui", "ComboControl") @@ -302,20 +302,21 @@ namespace svt } //= MultiLineEditImplementation - - - OUString MultiLineEditImplementation::GetText( LineEnd aSeparator ) const + OUString MultiLineEditImplementation::GetText(LineEnd eSeparator) const { - return const_cast< MultiLineEditImplementation* >( this )->GetEditWindow().GetText( aSeparator ); + weld::TextView& rEntry = m_rEdit.get_widget(); + return convertLineEnd(rEntry.get_text(), eSeparator); } - - OUString MultiLineEditImplementation::GetSelected( LineEnd aSeparator ) const + OUString MultiLineEditImplementation::GetSelected(LineEnd eSeparator) const { - return const_cast< MultiLineEditImplementation* >( this )->GetEditWindow().GetSelected( aSeparator ); + int nStartPos, nEndPos; + weld::TextView& rEntry = m_rEdit.get_widget(); + rEntry.get_selection_bounds(nStartPos, nEndPos); + return convertLineEnd(rEntry.get_text().copy(nStartPos, nEndPos - nStartPos), eSeparator); } - IMPL_LINK_NOARG(MultiLineEditImplementation, ModifyHdl, Edit&, void) + IMPL_LINK_NOARG(MultiLineEditImplementation, ModifyHdl, weld::TextView&, void) { m_aModifyHdl.Call(nullptr); } @@ -359,6 +360,13 @@ namespace svt return m_pWidget->has_focus(); } + void ControlBase::Draw(OutputDevice* pDevice, const Point& rPos, DrawFlags /*nFlags*/) + { + if (!m_pWidget) + return; + m_pWidget->draw(*pDevice, tools::Rectangle(rPos, GetSizePixel())); + } + void ControlBase::dispose() { m_pWidget = nullptr; @@ -388,14 +396,19 @@ namespace svt m_pEntry = pEntry; m_pEntry->show(); m_pEntry->set_width_chars(1); // so a smaller than default width can be used - m_pEntry->connect_key_press(LINK(this, EditControl, KeyInputHdl)); + m_pEntry->connect_key_press(LINK(this, ControlBase, KeyInputHdl)); } - IMPL_LINK(EditControlBase, KeyInputHdl, const KeyEvent&, rKEvt, bool) + bool ControlBase::ProcessKey(const KeyEvent& rKEvt) { return static_cast<BrowserDataWin*>(GetParent())->GetParent()->ProcessKey(rKEvt); } + IMPL_LINK(ControlBase, KeyInputHdl, const KeyEvent&, rKEvt, bool) + { + return ProcessKey(rKEvt); + } + void EditControlBase::dispose() { m_pEntry = nullptr; @@ -500,13 +513,25 @@ namespace svt { Selection aSel = m_pEditImplementation->GetSelection(); bResult = !aSel && aSel.Max() == m_pEditImplementation->GetText( LINEEND_LF ).getLength(); - } break; + break; + } case KEY_HOME: case KEY_LEFT: { Selection aSel = m_pEditImplementation->GetSelection(); bResult = !aSel && aSel.Min() == 0; - } break; + break; + } + case KEY_DOWN: + { + bResult = !m_pEditImplementation->CanDown(); + break; + } + case KEY_UP: + { + bResult = !m_pEditImplementation->CanUp(); + break; + } default: bResult = true; } @@ -524,8 +549,6 @@ namespace svt } //= SpinCellController - - SpinCellController::SpinCellController(SpinField* pWin) :CellController(pWin) { @@ -591,79 +614,55 @@ namespace svt static_cast<FormattedControl&>(GetWindow()).get_formatter().Commit(); } - //= MultiLineTextCell - void MultiLineTextCell::Modify() + MultiLineTextCell::MultiLineTextCell(BrowserDataWin* pParent) + : ControlBase(pParent, "svt/ui/textviewcontrol.ui", "TextViewControl") + , m_xWidget(m_xBuilder->weld_text_view("textview")) { - GetTextEngine()->SetModified( true ); - VclMultiLineEdit::Modify(); + InitControlBase(m_xWidget.get()); + m_xWidget->connect_key_press(LINK(this, ControlBase, KeyInputHdl)); + // so any the natural size doesn't have an effect + m_xWidget->set_size_request(1, 1); } - bool MultiLineTextCell::dispatchKeyEvent( const KeyEvent& _rEvent ) + void MultiLineTextCell::GetFocus() { - Selection aOldSelection( GetSelection() ); - - bool bWasModified = IsModified(); - ClearModifyFlag( ); - - bool bHandled = GetTextView()->KeyInput( _rEvent ); - - bool bIsModified = IsModified(); - if ( bWasModified && !bIsModified ) - // not sure whether this can really happen - SetModifyFlag(); - - if ( bHandled ) // the view claimed it handled the key input - { - // unfortunately, KeyInput also returns <TRUE/> (means "I handled this key input") - // when nothing really changed. Let's care for this. - Selection aNewSelection( GetSelection() ); - if ( aNewSelection != aOldSelection // selection changed - || bIsModified // or some other modification - ) - return true; - } - return false; + if (m_xWidget) + m_xWidget->select_region(-1, 0); + ControlBase::GetFocus(); } + void MultiLineTextCell::dispose() + { + m_xWidget.reset(); + ControlBase::dispose(); + } - bool MultiLineTextCell::PreNotify( NotifyEvent& rNEvt ) + bool MultiLineTextCell::ProcessKey(const KeyEvent& rKEvt) { - if ( rNEvt.GetType() == MouseNotifyEvent::KEYINPUT ) + bool bSendToDataWindow = true; + + sal_uInt16 nCode = rKEvt.GetKeyCode().GetCode(); + bool bShift = rKEvt.GetKeyCode().IsShift(); + bool bCtrl = rKEvt.GetKeyCode().IsMod1(); + bool bAlt = rKEvt.GetKeyCode().IsMod2(); + + if (!bAlt && !bCtrl && !bShift) { - if ( IsWindowOrChild( rNEvt.GetWindow() ) ) + switch (nCode) { - // give the text view a chance to handle the keys - // this is necessary since a lot of keys which are normally handled - // by this view (in KeyInput) are intercepted by the EditBrowseBox, - // which uses them for other reasons. An example is the KeyUp key, - // which is used by both the text view and the edit browse box - - const KeyEvent* pKeyEvent = rNEvt.GetKeyEvent(); - const vcl::KeyCode& rKeyCode = pKeyEvent->GetKeyCode(); - sal_uInt16 nCode = rKeyCode.GetCode(); - - if ( ( nCode == KEY_RETURN ) && ( rKeyCode.GetModifier() == KEY_MOD1 ) ) - { - KeyEvent aEvent( pKeyEvent->GetCharCode(), - vcl::KeyCode( KEY_RETURN ), - pKeyEvent->GetRepeat() - ); - if ( dispatchKeyEvent( aEvent ) ) - return true; - } - - if ( ( nCode != KEY_TAB ) && ( nCode != KEY_RETURN ) ) // everything but tab and enter - { - if ( dispatchKeyEvent( *pKeyEvent ) ) - return true; - } + case KEY_DOWN: + bSendToDataWindow = !m_xWidget->can_move_cursor_with_down(); + break; + case KEY_UP: + bSendToDataWindow = !m_xWidget->can_move_cursor_with_up(); + break; } } - return VclMultiLineEdit::PreNotify( rNEvt ); - } - + if (bSendToDataWindow) + return ControlBase::ProcessKey(rKEvt); + return false; + } } // namespace svt - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/svtools/uiconfig/ui/textviewcontrol.ui b/svtools/uiconfig/ui/textviewcontrol.ui new file mode 100644 index 000000000000..f54674d03a39 --- /dev/null +++ b/svtools/uiconfig/ui/textviewcontrol.ui @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Generated with glade 3.36.0 --> +<interface domain="svt"> + <requires lib="gtk+" version="3.18"/> + <object class="GtkBox" id="TextViewControl"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="hexpand">True</property> + <property name="vexpand">True</property> + <property name="orientation">vertical</property> + <property name="spacing">6</property> + <child> + <object class="GtkScrolledWindow"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="hexpand">True</property> + <property name="vexpand">True</property> + <property name="shadow_type">none</property> + <property name="hscrollbar_policy">external</property> + <property name="vscrollbar_policy">external</property> + <child> + <object class="GtkTextView" id="textview"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="hexpand">True</property> + <property name="vexpand">True</property> + <property name="accepts_tab">False</property> + </object> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + </object> +</interface> diff --git a/svx/source/fmcomp/gridcell.cxx b/svx/source/fmcomp/gridcell.cxx index f4ccb57e1347..6ae6bae43b93 100644 --- a/svx/source/fmcomp/gridcell.cxx +++ b/svx/source/fmcomp/gridcell.cxx @@ -959,33 +959,10 @@ void DbCellControl::AlignControl(sal_Int16 nAlignment) lcl_implAlign( m_pPainter, nAlignmentBit ); } -void DbCellControl::PaintCell( OutputDevice& _rDev, const tools::Rectangle& _rRect ) +void DbCellControl::PaintCell(OutputDevice& rDev, const tools::Rectangle& rRect) { - if ( m_pPainter->GetParent() == &_rDev ) - { - m_pPainter->SetPaintTransparent( true ); - m_pPainter->SetBackground( ); - m_pPainter->SetControlBackground( _rDev.GetFillColor() ); - m_pPainter->SetControlForeground( _rDev.GetTextColor() ); - m_pPainter->SetTextColor( _rDev.GetTextColor() ); - m_pPainter->SetTextFillColor( _rDev.GetTextColor() ); - - vcl::Font aFont( _rDev.GetFont() ); - aFont.SetTransparent( true ); - m_pPainter->SetFont( aFont ); - - m_pPainter->SetPosSizePixel( _rRect.TopLeft(), _rRect.GetSize() ); - m_pPainter->Show(); - m_pPainter->PaintImmediately(); - m_pPainter->SetParentUpdateMode( false ); - m_pPainter->Hide(); - m_pPainter->SetParentUpdateMode( true ); - } - else - { - m_pPainter->SetSizePixel( _rRect.GetSize() ); - m_pPainter->Draw( &_rDev, _rRect.TopLeft(), DrawFlags::NONE ); - } + m_pPainter->SetSizePixel(rRect.GetSize()); + m_pPainter->Draw(&rDev, rRect.TopLeft(), DrawFlags::NONE); } void DbCellControl::PaintFieldToCell( OutputDevice& _rDev, const tools::Rectangle& _rRect, const Reference< XColumn >& _rxField, const Reference< XNumberFormatter >& _rxFormatter ) @@ -994,7 +971,6 @@ void DbCellControl::PaintFieldToCell( OutputDevice& _rDev, const tools::Rectangl PaintCell( _rDev, _rRect ); } - double DbCellControl::GetValue(const Reference< css::sdb::XColumn >& _rxField, const Reference< XNumberFormatter >& xFormatter) const { double fValue = 0; @@ -1027,7 +1003,6 @@ double DbCellControl::GetValue(const Reference< css::sdb::XColumn >& _rxField, c return fValue; } - void DbCellControl::invalidatedController() { m_rColumn.GetParent().refreshController(m_rColumn.GetId(), DbGridControl::GrantControlAccess()); @@ -1079,17 +1054,7 @@ void DbTextField::Init(BrowserDataWin& rParent, const Reference< XRowSet >& xCur Reference< XPropertySet > xModel( m_rColumn.getModel() ); - WinBits nStyle = WB_LEFT; - switch (nAlignment) - { - case awt::TextAlign::RIGHT: - nStyle = WB_RIGHT; - break; - - case awt::TextAlign::CENTER: - nStyle = WB_CENTER; - break; - } + bool bLeftAlign = true; // is this a multi-line field? bool bIsMultiLine = false; @@ -1109,11 +1074,28 @@ void DbTextField::Init(BrowserDataWin& rParent, const Reference< XRowSet >& xCur m_bIsSimpleEdit = !bIsMultiLine; if ( bIsMultiLine ) { - m_pWindow = VclPtr<MultiLineTextCell>::Create( &rParent, nStyle ); - m_pEdit.reset(new MultiLineEditImplementation( *static_cast< MultiLineTextCell* >( m_pWindow.get() ) )); + auto xEditControl = VclPtr<MultiLineTextCell>::Create(&rParent); + auto xEditPainter = VclPtr<MultiLineTextCell>::Create(&rParent); - m_pPainter = VclPtr<MultiLineTextCell>::Create( &rParent, nStyle ); - m_pPainterImplementation.reset(new MultiLineEditImplementation( *static_cast< MultiLineTextCell* >( m_pPainter.get() ) )); + switch (nAlignment) + { + case awt::TextAlign::RIGHT: + xEditControl->get_widget().set_alignment(TxtAlign::Right); + xEditPainter->get_widget().set_alignment(TxtAlign::Right); + bLeftAlign = false; + break; + case awt::TextAlign::CENTER: + xEditControl->get_widget().set_alignment(TxtAlign::Center); + xEditPainter->get_widget().set_alignment(TxtAlign::Center); + bLeftAlign = false; + break; + } + + m_pWindow = xEditControl; + m_pEdit.reset(new MultiLineEditImplementation(*xEditControl)); + + m_pPainter = xEditPainter; + m_pPainterImplementation.reset(new MultiLineEditImplementation(*xEditPainter)); } else { @@ -1125,10 +1107,12 @@ void DbTextField::Init(BrowserDataWin& rParent, const Reference< XRowSet >& xCur case awt::TextAlign::RIGHT: xEditControl->get_widget().set_alignment(TxtAlign::Right); xEditPainter->get_widget().set_alignment(TxtAlign::Right); + bLeftAlign = false; break; case awt::TextAlign::CENTER: xEditControl->get_widget().set_alignment(TxtAlign::Center); xEditPainter->get_widget().set_alignment(TxtAlign::Center); + bLeftAlign = false; break; } @@ -1139,7 +1123,7 @@ void DbTextField::Init(BrowserDataWin& rParent, const Reference< XRowSet >& xCur m_pPainterImplementation.reset(new EntryImplementation(*xEditPainter)); } - if ( WB_LEFT == nStyle ) + if (bLeftAlign) { // this is so that when getting the focus, the selection is oriented left-to-right AllSettings aSettings = m_pWindow->GetSettings(); @@ -1155,13 +1139,11 @@ void DbTextField::Init(BrowserDataWin& rParent, const Reference< XRowSet >& xCur DbLimitedLengthField::Init( rParent, xCursor ); } - CellControllerRef DbTextField::CreateController() const { return new EditCellController( m_pEdit.get() ); } - void DbTextField::PaintFieldToCell( OutputDevice& _rDev, const tools::Rectangle& _rRect, const Reference< XColumn >& _rxField, const Reference< XNumberFormatter >& _rxFormatter ) { if ( m_pPainterImplementation ) @@ -1170,7 +1152,6 @@ void DbTextField::PaintFieldToCell( OutputDevice& _rDev, const tools::Rectangle& DbLimitedLengthField::PaintFieldToCell( _rDev, _rRect, _rxField, _rxFormatter ); } - OUString DbTextField::GetFormatText(const Reference< XColumn >& _rxField, const Reference< XNumberFormatter >& xFormatter, Color** /*ppColor*/) { if (!_rxField.is()) @@ -1191,14 +1172,12 @@ OUString DbTextField::GetFormatText(const Reference< XColumn >& _rxField, const } - void DbTextField::UpdateFromField(const Reference< css::sdb::XColumn >& _rxField, const Reference< XNumberFormatter >& xFormatter) { m_pEdit->SetText( GetFormatText( _rxField, xFormatter ) ); m_pEdit->SetSelection( Selection( SELECTION_MAX, SELECTION_MIN ) ); } - void DbTextField::updateFromModel( Reference< XPropertySet > _rxModel ) { OSL_ENSURE( _rxModel.is() && m_pWindow, "DbTextField::updateFromModel: invalid call!" ); |