92 virtual void CommitModifications();
100 virtual bool MoveAllowed(
const KeyEvent& rEvt)
const;
119 virtual void SetText(
const OUString& _rStr ) = 0;
146 m_aModify1Hdl = rLink;
152 m_aModify2Hdl = rLink;
162 m_aModify1Hdl.
Call(
nullptr);
163 m_aModify2Hdl.
Call(
nullptr);
172 virtual void SetEditableReadOnly(
bool bReadOnly);
174 virtual bool ProcessKey(
const KeyEvent& rKEvt);
181 m_aFocusInHdl = rHdl;
187 m_aFocusOutHdl = rHdl;
192 m_aMousePressHdl = rHdl;
197 m_aMouseReleaseHdl = rHdl;
202 m_aMouseMoveHdl = rHdl;
207 m_aKeyInputHdl = rHdl;
212 m_aKeyReleaseHdl = rHdl;
245 m_pEntry->set_font(rFont);
248 virtual void dispose()
override;
269 virtual void dispose()
override;
320 virtual void SetText(
const OUString& _rStr )
override
337 return m_nMaxTextLen;
342 m_nMaxTextLen = nMaxLen;
348 int nStartPos, nEndPos;
355 auto nMin = rSelection.
Min();
356 auto nMax = rSelection.
Max();
368 int nStartPos, nEndPos;
371 return rEntry.
get_text().copy(nStartPos, nEndPos - nStartPos);
394 virtual void Cut()
override
431 virtual void dispose()
override;
443 virtual bool ProcessKey(
const KeyEvent& rKEvt)
override;
465 virtual OUString GetText(
LineEnd aSeparator)
const override;
467 virtual void SetText(
const OUString& rStr)
override
484 return m_nMaxTextLen;
489 m_nMaxTextLen = nMaxLen;
495 int nStartPos, nEndPos;
502 auto nMin = rSelection.
Min();
503 auto nMax = rSelection.
Max();
512 virtual OUString GetSelected(
LineEnd aSeparator )
const override;
534 virtual void Cut()
override
565 virtual bool IsValueChangedFromSaved()
const override;
566 virtual void SaveValue()
override;
574 virtual bool MoveAllowed(
const KeyEvent& rEvt)
const override;
582 std::unique_ptr<weld::CheckButton>
m_xBox;
591 virtual void dispose()
override;
600 m_aModify1Hdl = rHdl;
606 m_aModify2Hdl = rLink;
612 void EnableTriState(
bool bTriState);
626 m_aModify1Hdl.
Call(
nullptr);
627 m_aModify2Hdl.
Call(
nullptr);
639 virtual bool IsValueChangedFromSaved()
const override;
640 virtual void SaveValue()
override;
643 virtual void ActivatingMouseEvent(
const BrowserMouseEvent& rEvt,
bool bUp)
override;
672 m_aModify1Hdl = rHdl;
679 m_aModify2Hdl = rLink;
684 m_aModify2Hdl.
Call(
false);
687 virtual void dispose()
override;
694 m_aModify1Hdl.
Call(
nullptr);
695 m_aModify2Hdl.
Call(
true);
707 virtual bool IsValueChangedFromSaved()
const override;
708 virtual void SaveValue()
override;
711 virtual bool MoveAllowed(
const KeyEvent& rEvt)
const override;
735 m_aModify1Hdl = rHdl;
742 m_aModify2Hdl = rLink;
747 m_aModify2Hdl.
Call(
false);
750 virtual void dispose()
override;
756 m_aModify1Hdl.
Call(
nullptr);
757 m_aModify2Hdl.
Call(
true);
769 virtual bool IsValueChangedFromSaved()
const override;
770 virtual void SaveValue()
override;
773 virtual bool MoveAllowed(
const KeyEvent& rEvt)
const override;
783 virtual void dispose()
override;
798 void InitFormattedControlBase();
830 void SetDate(
const Date& rDate);
832 virtual void dispose()
override;
859 virtual void dispose()
override;
871 virtual void CommitModifications()
override;
882 virtual void DoubleClick()
override;
887 class EditBrowseBoxImpl;
910 CURRENT_PRIMARYKEY = 7,
921 std::unique_ptr<BrowserMouseEvent>
pEvent;
930 bool Is()
const {
return pEvent !=
nullptr;}
972 virtual void ColumnMoved(sal_uInt16 nId)
override;
973 virtual void ColumnResized(sal_uInt16 nColId)
override;
974 virtual void Resize()
override;
975 virtual void ArrangeControls(sal_uInt16& nX, sal_uInt16 nY);
976 virtual bool SeekRow(sal_Int32 nRow)
override;
989 virtual bool PreNotify(
NotifyEvent& rNEvt )
override;
990 virtual bool EventNotify(
NotifyEvent& rNEvt)
override;
992 virtual void EndScroll()
override;
995 tools::Rectangle GetCellRect(sal_Int32 nRow, sal_uInt16 nColId,
bool bRelToBrowser =
true)
const;
996 virtual sal_uInt32 GetTotalCellWidth(sal_Int32 nRow, sal_uInt16 nColId);
997 sal_uInt32 GetAutoColumnWidth(sal_uInt16 nColId);
1002 virtual RowStatus GetRowStatus(sal_Int32 nRow)
const;
1004 virtual void RowHeightChanged()
override;
1007 virtual void ImplStartTracking()
override;
1008 virtual void ImplEndTracking()
override;
1012 virtual bool CursorMoving(sal_Int32 nNewRow, sal_uInt16 nNewCol);
1015 virtual void CursorMoved()
override;
1017 virtual void CellModified();
1018 virtual bool SaveModified();
1020 virtual bool SaveRow();
1022 virtual bool IsModified()
const {
return aController.
is() && aController->IsValueChangedFromSaved();}
1025 virtual void InitController(
CellControllerRef& rController, sal_Int32 nRow, sal_uInt16 nCol);
1032 Image GetImage(RowStatus)
const;
1037 virtual sal_uInt16 AppendColumn(
const OUString& rName, sal_uInt16 nWidth, sal_uInt16 nPos = HEADERBAR_APPEND, sal_uInt16 nId = sal_uInt16(-1));
1041 virtual bool IsTabAllowed(
bool bForward)
const;
1043 virtual bool IsCursorMoveAllowed(sal_Int32 nNewRow, sal_uInt16 nNewColId)
const override;
1047 void AsynchGetFocus();
1053 virtual void dispose()
override;
1057 void InvalidateHandleColumn();
1060 virtual void Init();
1061 virtual void RemoveRows();
1062 virtual void Dispatch(sal_uInt16 nId);
1068 virtual void ActivateCell(sal_Int32 nRow, sal_uInt16 nCol,
bool bSetCellFocus =
true);
1069 virtual void DeactivateCell(
bool bUpdate =
true);
1073 virtual sal_Int32 GetAccessibleControlCount()
const override;
1080 virtual css::uno::Reference< css::accessibility::XAccessible >
1081 CreateAccessibleControl( sal_Int32 nIndex )
override;
1084 virtual void GrabTableFocus()
override;
1086 virtual tools::Rectangle GetFieldCharacterBounds(sal_Int32 _nRow,sal_Int32 _nColumnPos,sal_Int32 nIndex)
override;
1087 virtual sal_Int32 GetFieldIndexAtPoint(sal_Int32 _nRow,sal_Int32 _nColumnPos,
const Point& _rPoint)
override;
1089 virtual bool ProcessKey(
const KeyEvent& rEvt)
override;
1091 virtual void ChildFocusIn()
override;
1092 virtual void ChildFocusOut()
override;
1094 css::uno::Reference< css::accessibility::XAccessible > CreateAccessibleCheckBoxCell(sal_Int32 _nRow, sal_uInt16 _nColumnPos,
const TriState& eState);
1095 bool ControlHasFocus()
const;
1098 void implCreateActiveAccessible( );
1102 sal_uInt16 nColumnId )
const override;
1104 SVT_DLLPRIVATE void ImplInitSettings(
bool bFont,
bool bForeground,
bool bBackground );
1106 inline void EnableAndShow()
const;
virtual void MouseButtonDown(const MouseEvent &rEvt) override
virtual void MouseButtonUp(const MouseEvent &rEvt) override
ControlBase & GetWindow() const
virtual bool IsValueChangedFromSaved() const =0
Link< LinkParamNone *, void > maModifyHdl
virtual void SaveValue()=0
void SetModifyHdl(const Link< LinkParamNone *, void > &rLink)
virtual void callModifyHdl()
VclPtr< ControlBase > pWindow
DECL_DLLPRIVATE_LINK(ModifyHdl, LinkParamNone *, void)
weld::TriStateEnabled m_aModeState
Link< LinkParamNone *, void > m_aModify2Hdl
TriState GetState() const
Link< LinkParamNone *, void > m_aModify1Hdl
void SetAuxModifyHdl(const Link< LinkParamNone *, void > &rLink)
weld::CheckButton & GetBox()
Link< weld::CheckButton &, void > m_aToggleLink
DECL_DLLPRIVATE_LINK(OnToggle, weld::Toggleable &, void)
std::unique_ptr< weld::CheckButton > m_xBox
void SetToggleHdl(const Link< weld::CheckButton &, void > &rHdl)
void SetModifyHdl(const Link< LinkParamNone *, void > &rHdl)
weld::ComboBox & GetComboBox() const
DECL_DLLPRIVATE_LINK(ModifyHdl, LinkParamNone *, void)
Link< bool, void > m_aModify2Hdl
virtual void SetEditableReadOnly(bool bReadOnly) override
DECL_DLLPRIVATE_LINK(SelectHdl, weld::ComboBox &, void)
std::unique_ptr< weld::ComboBox > m_xWidget
Link< LinkParamNone *, void > m_aModify1Hdl
void SetAuxModifyHdl(const Link< bool, void > &rLink)
void SetModifyHdl(const Link< LinkParamNone *, void > &rHdl)
weld::ComboBox & get_widget()
Link< const KeyEvent &, void > m_aKeyInputHdl
DECL_DLLPRIVATE_LINK(MouseReleaseHdl, const MouseEvent &, bool)
void SetMouseReleaseHdl(const Link< const MouseEvent &, void > &rHdl)
DECL_DLLPRIVATE_LINK(FocusOutHdl, weld::Widget &, void)
DECL_DLLPRIVATE_LINK(MousePressHdl, const MouseEvent &, bool)
Link< const MouseEvent &, void > m_aMouseReleaseHdl
void SetMouseMoveHdl(const Link< const MouseEvent &, void > &rHdl)
void SetFocusOutHdl(const Link< LinkParamNone *, void > &rHdl)
Link< LinkParamNone *, void > m_aFocusInHdl
Link< LinkParamNone *, void > m_aFocusOutHdl
void SetKeyReleaseHdl(const Link< const KeyEvent &, void > &rHdl)
Link< const KeyEvent &, void > m_aKeyReleaseHdl
DECL_DLLPRIVATE_LINK(KeyInputHdl, const KeyEvent &, bool)
virtual void SetPointFont(const vcl::Font &rFont)=0
DECL_DLLPRIVATE_LINK(KeyReleaseHdl, const KeyEvent &, bool)
DECL_DLLPRIVATE_LINK(MouseMoveHdl, const MouseEvent &, bool)
void SetKeyInputHdl(const Link< const KeyEvent &, void > &rHdl)
DECL_DLLPRIVATE_LINK(FocusInHdl, weld::Widget &, void)
Link< const MouseEvent &, void > m_aMouseMoveHdl
void SetMousePressHdl(const Link< const MouseEvent &, void > &rHdl)
void SetFocusInHdl(const Link< LinkParamNone *, void > &rHdl)
Link< const MouseEvent &, void > m_aMousePressHdl
std::unique_ptr< weld::Builder > m_xCalendarBuilder
std::unique_ptr< weld::Widget > m_xTopLevel
std::unique_ptr< weld::MenuButton > m_xMenuButton
DECL_DLLPRIVATE_LINK(ToggleHdl, weld::Toggleable &, void)
std::unique_ptr< weld::Button > m_xNoneBtn
DECL_DLLPRIVATE_LINK(ActivateHdl, weld::Calendar &, void)
std::unique_ptr< weld::Calendar > m_xCalendar
DECL_DLLPRIVATE_LINK(ImplClickHdl, weld::Button &, void)
std::unique_ptr< weld::Button > m_xTodayBtn
std::unique_ptr< weld::Widget > m_xExtras
std::unique_ptr< BrowserMouseEvent > pEvent
const BrowserMouseEvent * operator->() const
VclPtr< CheckBoxControl > pCheckBoxPaint
EditBrowseBox(EditBrowseBox const &)=delete
virtual void PaintCell(OutputDevice &rDev, const tools::Rectangle &rRect, sal_uInt16 nColId) const =0
CellControllerRef aOldController
CellControllerRef aController
BrowserHeader * GetHeaderBar() const
std::unique_ptr< EditBrowseBoxImpl > m_aImpl
DECL_DLLPRIVATE_LINK(StartEditHdl, void *, void)
DECL_DLLPRIVATE_LINK(ModifyHdl, LinkParamNone *, void)
DECL_DLLPRIVATE_LINK(EndEditHdl, void *, void)
const CellControllerRef & Controller() const
BrowserMouseEventPtr & getMouseEvent()
EditBrowseBoxFlags GetBrowserFlags() const
void InvalidateStatusCell(sal_Int32 nRow)
EditBrowseBox & operator=(EditBrowseBox const &)=delete
ImplSVEvent * nCellModifiedEvent
EditBrowseBoxFlags m_nBrowserFlags
bool bActiveBeforeTracking
DECL_DLLPRIVATE_LINK(CellModifiedHdl, void *, void)
VclPtr< vcl::Window > m_pFocusWhileRequest
virtual bool IsModified() const
VclPtr< BrowserHeader > pHeader
IEditImplementation * m_pEditImplementation
IEditImplementation * GetEditImplementation()
bool m_bOwnImplementation
const IEditImplementation * GetEditImplementation() const
DECL_LINK(ModifyHdl, LinkParamNone *, void)
virtual void SetEditableReadOnly(bool bReadOnly) override
virtual void connect_key_press(const Link< const KeyEvent &, bool > &rLink)=0
virtual void connect_focus_out(const Link< weld::Widget &, void > &rLink)=0
virtual void connect_focus_in(const Link< weld::Widget &, void > &rLink)=0
weld::Entry & get_widget()
virtual void SetPointFont(const vcl::Font &rFont) override
virtual void connect_changed(const Link< weld::Entry &, void > &rLink)=0
virtual void connect_focus_in(const Link< weld::Widget &, void > &rLink) override
virtual void connect_key_press(const Link< const KeyEvent &, bool > &rLink) override
virtual void connect_focus_out(const Link< weld::Widget &, void > &rLink) override
virtual void connect_changed(const Link< weld::Entry &, void > &rLink) override
std::unique_ptr< weld::Entry > m_xWidget
virtual void SetSelection(const Selection &rSelection) override
EntryImplementation(EditControlBase &rEdit)
DECL_LINK(ModifyHdl, weld::Entry &, void)
virtual bool IsValueChangedFromSaved() const override
virtual OUString GetText(LineEnd) const override
EditControlBase & m_rEdit
virtual void SetMaxTextLen(sal_Int32 nMaxLen) override
virtual bool CanDown() const override
virtual bool IsReadOnly() const override
virtual Selection GetSelection() const override
virtual ControlBase & GetControl() override
virtual OUString GetSelected(LineEnd) const override
virtual bool CanUp() const override
virtual void Paste() override
virtual sal_Int32 GetMaxTextLen() const override
virtual void Copy() override
virtual void SaveValue() override
virtual void SetText(const OUString &_rStr) override
virtual void Cut() override
virtual void SetReadOnly(bool bReadOnly) override
virtual void ReplaceSelected(const OUString &rStr) override
void SetModifyHdl(const Link< LinkParamNone *, void > &rLink)
virtual OUString GetText(LineEnd aSeparator) const =0
virtual void SetReadOnly(bool bReadOnly)=0
virtual void SetMaxTextLen(sal_Int32 _nMaxLen)=0
virtual bool IsReadOnly() const =0
virtual void SetSelection(const Selection &_rSelection)=0
virtual bool IsValueChangedFromSaved() const =0
virtual void ReplaceSelected(const OUString &_rStr)=0
virtual ControlBase & GetControl()=0
virtual bool CanUp() const =0
Link< LinkParamNone *, void > m_aModify2Hdl
virtual Selection GetSelection() const =0
void SetAuxModifyHdl(const Link< LinkParamNone *, void > &rLink)
virtual sal_Int32 GetMaxTextLen() const =0
virtual bool CanDown() const =0
virtual void SetText(const OUString &_rStr)=0
virtual void SaveValue()=0
virtual OUString GetSelected(LineEnd aSeparator) const =0
Link< LinkParamNone *, void > m_aModify1Hdl
DECL_DLLPRIVATE_LINK(ListBoxSelectHdl, LinkParamNone *, void)
weld::ComboBox & GetListBox() const
std::unique_ptr< weld::ComboBox > m_xWidget
Link< LinkParamNone *, void > m_aModify1Hdl
weld::ComboBox & get_widget()
void SetModifyHdl(const Link< LinkParamNone *, void > &rHdl)
DECL_DLLPRIVATE_LINK(SelectHdl, weld::ComboBox &, void)
Link< bool, void > m_aModify2Hdl
void SetAuxModifyHdl(const Link< bool, void > &rLink)
virtual bool IsReadOnly() const override
virtual bool IsValueChangedFromSaved() const override
virtual bool CanUp() const override
virtual void SaveValue() override
virtual ControlBase & GetControl() override
MultiLineTextCell & m_rEdit
virtual void Cut() override
virtual sal_Int32 GetMaxTextLen() const override
virtual void Copy() override
virtual void SetReadOnly(bool bReadOnly) override
virtual void SetSelection(const Selection &rSelection) override
virtual void Paste() override
virtual Selection GetSelection() const override
virtual void ReplaceSelected(const OUString &rStr) override
virtual void SetMaxTextLen(sal_Int32 nMaxLen) override
virtual bool CanDown() const override
virtual void SetText(const OUString &rStr) override
MultiLineEditImplementation(MultiLineTextCell &rEdit)
DECL_LINK(ModifyHdl, weld::TextView &, void)
a multi line edit which can be used in a cell of an EditBrowseBox
virtual void SetPointFont(const vcl::Font &rFont) override
virtual void SetEditableReadOnly(bool bReadOnly) override
weld::TextView & get_widget()
std::unique_ptr< weld::TextView > m_xWidget
void connect_changed(const Link< weld::TextView &, void > &rLink)
std::unique_ptr< weld::Entry > m_xWidget
weld::PatternFormatter & get_formatter()
std::unique_ptr< weld::PatternFormatter > m_xEntryFormatter
virtual bool get_editable() const=0
virtual void cut_clipboard()=0
virtual void set_max_length(int nChars)=0
virtual void select_region(int nStartPos, int nEndPos)=0
virtual void set_text(const OUString &rText)=0
virtual bool get_selection_bounds(int &rStartPos, int &rEndPos)=0
virtual void copy_clipboard()=0
virtual void replace_selection(const OUString &rText)=0
virtual void paste_clipboard()=0
virtual OUString get_text() const=0
bool get_value_changed_from_saved() const
virtual void set_text(const OUString &rText)=0
virtual void copy_clipboard()=0
virtual void paste_clipboard()=0
virtual bool can_move_cursor_with_up() const=0
virtual bool get_editable() const=0
virtual void set_max_length(int nChars)=0
virtual void replace_selection(const OUString &rText)=0
bool get_value_changed_from_saved() const
virtual bool get_selection_bounds(int &rStartPos, int &rEndPos)=0
virtual void cut_clipboard()=0
virtual void select_region(int nStartPos, int nEndPos)=0
virtual bool can_move_cursor_with_down() const=0
Link< ColorFieldControl &, void > maModifyHdl
virtual std::shared_ptr< SfxDialogController > GetController() override
@ ACTIVATE_ON_BUTTONDOWN
set this bit to activate the cell on a MouseButtonDown, not a MouseButtonUp event
@ SMART_TAB_TRAVEL
If this bit is set, tab traveling is somewhat modified If the control gets the focus because the use...
@ HANDLE_COLUMN_TEXT
if this bit is set and EditBrowseBoxFlags::NO_HANDLE_COLUMN_CONTENT is not set, the handle column is ...
@ NO_HANDLE_COLUMN_CONTENT
if this bit is not set, the handle column will be invalidated upon changing the row in the browse box...
#define LINK(Instance, Class, Member)
void Clear(EHistoryType eHistory)
tools::SvRef< CellController > CellControllerRef
void SetPointFont(OutputDevice &rDevice, const vcl::Font &rFont)