21#include <com/sun/star/sdbc/ColumnValue.hpp>
22#include <com/sun/star/sdbc/SQLException.hpp>
23#include <com/sun/star/sdbc/XDatabaseMetaData.hpp>
24#include <com/sun/star/sdbcx/XColumnsSupplier.hpp>
25#include <com/sun/star/util/XNumberFormatTypes.hpp>
26#include <core_resource.hxx>
41#include <svx/svxids.hrc>
48using namespace ::
dbaui;
65#define FIELDNAME_WIDTH 100
66#define FIELDTYPE_WIDTH 150
67#define FIELDDESCR_WIDTH 300
70#define MAX_DESCR_LEN 256
73: m_aInvalidateTimer(
"dbaccess ClipboardInvalidator")
84 m_aInvalidateTimer.Stop();
89 m_aInvalidateTimer.Stop();
94 m_pOwner->GetView()->getController().InvalidateFeature(SID_CUT);
95 m_pOwner->GetView()->getController().InvalidateFeature(SID_COPY);
96 m_pOwner->GetView()->getController().InvalidateFeature(SID_PASTE);
104 bool bRead(
GetView()->getController().isReadOnly());
117 if ( bShowColumnDescription )
175 BrowserMode nMode(BrowserMode::COLUMNSELECTION | BrowserMode::MULTISELECTION | BrowserMode::KEEPHIGHLIGHT |
176 BrowserMode::HLINES | BrowserMode::VLINES|BrowserMode::AUTOSIZE_LASTCOL);
178 nMode |= BrowserMode::HIDECURSOR;
188 sal_Int32 nMaxTextLen = 0;
189 OUString sExtraNameChars;
197 nMaxTextLen = xMetaData.is() ? xMetaData->getMaxColumnNameLength() : 0;
199 sExtraNameChars = xMetaData.is() ? xMetaData->getExtraNameCharacters() : OUString();
204 OSL_FAIL(
"getMaxColumnNameLength");
208 pNameCell->get_widget().set_max_length(nMaxTextLen);
228 for(
const Control* pControl : pControls)
230 const Size aTemp(pControl->GetOptimalSize());
303 sal_uInt16 nColumnId )
const
309 rDev.
DrawText( rRect, aText, DrawTextFlags::Left | DrawTextFlags::VCenter );
318 xTable->getPropertySetInfo()->hasPropertyByName(
PROPERTY_TYPE) &&
319 ::comphelper::getString(xTable->getPropertyValue(
PROPERTY_TYPE)) ==
"VIEW"))
333 if (pActFieldDescr && !pActFieldDescr->
GetName().isEmpty())
337 if (pActFieldDescr && !pActFieldDescr->
GetName().isEmpty())
342 if (pActFieldDescr && !pActFieldDescr->
GetName().isEmpty())
355 OUString aInitString;
362 aInitString = pActFieldDescr->
GetName();
371 if ( pActFieldDescr && pActFieldDescr->
getTypeInfo() )
372 aInitString = pActFieldDescr->
getTypeInfo()->aUIName;
377 if( !pActFieldDescr )
381 for (
auto const& elem : rTypeInfo)
493 if( pFieldDescr && bCase(rFieldName,pFieldDescr->
GetName()))
514 if(
aName.isEmpty() )
521 pActFieldDescr =
pActRow->GetActFieldDescr();
542 if( !pActFieldDescr )
555 if( !pActFieldDescr )
632 nInvalidateTypeEvent =
nullptr;
633 Invalidate( GetFieldRectPixel(nOldDataPos,
FIELD_TYPE) );
645 OUString sActionDescription;
652 default: sActionDescription =
DBA_RES( STR_CHANGE_COLUMN_ATTRIBUTE );
break;
659 if ( !rTypeInfoMap.empty() )
661 OTypeInfoMap::const_iterator aTypeIter = rTypeInfoMap.find(DataType::VARCHAR);
662 if ( aTypeIter == rTypeInfoMap.end() )
663 aTypeIter = rTypeInfoMap.begin();
664 pActRow->SetFieldType( aTypeIter->second );
667 pActRow->SetFieldType(
GetView()->getController().getTypeInfoFallBack() );
670 pActFieldDescr =
pActRow->GetActFieldDescr();
721 std::shared_ptr<OTableRow> pClipboardRow;
722 std::shared_ptr<OTableRow> pRow;
723 std::vector< std::shared_ptr<OTableRow> > vClipboardList;
728 pRow = (*m_pRowList)[
nIndex];
729 OSL_ENSURE(pRow,
"OTableEditorCtrl::CopyRows: Row is NULL!");
730 if ( pRow && pRow->GetActFieldDescr() )
732 pClipboardRow = std::make_shared<OTableRow>( *pRow );
733 vClipboardList.push_back( pClipboardRow);
736 if(!vClipboardList.empty())
739 pData->CopyToClipboard(GetParent());
750 sal_Int32 nMaxTextLen(xMetaData.is() ? xMetaData->getMaxColumnNameLength() : 0);
752 if( (rName.getLength()+2) >nMaxTextLen )
753 aBaseName = rName.copy( 0, nMaxTextLen-2 );
758 OUString aFieldName( rName);
762 aFieldName = aBaseName + OUString::number(
i);
772 std::vector< std::shared_ptr<OTableRow> > vInsertedUndoRedoRows;
775 if(aTransferData.
HasFormat(SotClipboardFormatId::SBA_TABED))
779 if (bOk && aStreamRef.
is())
782 aStreamRef->ResetError();
783 sal_Int32 nInsertRow = nRow;
784 std::shared_ptr<OTableRow> pRow;
786 (*aStreamRef).ReadInt32( nSize );
787 vInsertedUndoRedoRows.reserve(nSize);
788 for(sal_Int32
i=0;
i < nSize;++
i)
790 pRow = std::make_shared<OTableRow>();
792 pRow->SetReadOnly(
false );
793 sal_Int32
nType = pRow->GetActFieldDescr()->GetType();
794 if ( pRow->GetActFieldDescr() )
795 pRow->GetActFieldDescr()->SetType(
GetView()->getController().getTypeInfoByType(
nType));
797 pRow->GetActFieldDescr()->SetName(
GenerateName( pRow->GetActFieldDescr()->GetName() ) );
798 pRow->SetPos(nInsertRow);
800 vInsertedUndoRedoRows.push_back(std::make_shared<OTableRow>(*pRow));
817 OSL_ENSURE(
GetView()->getController().isDropAllowed(),
"Call of DeleteRows not valid here. Please check isDropAllowed!");
832 m_pRowList->push_back( std::make_shared<OTableRow>());
851 OSL_ENSURE(
GetView()->getController().isAddAllowed(),
"Call of InsertNewRows not valid here. Please check isAppendAllowed!");
903 OSL_FAIL(
"OTableEditorCtrl::SetCellData: invalid column!");
905 SetControlText(nRow,nColId,_pTypeInfo ? _pTypeInfo->aUIName : OUString());
922 sValue = ::comphelper::getString(_rNewData);
923 pFieldDescr->SetName( sValue );
927 OSL_FAIL(
"OTableEditorCtrl::SetCellData: invalid column!");
931 sValue = ::comphelper::getString(_rNewData);
932 pFieldDescr->SetDescription( sValue );
936 pFieldDescr->SetControlDefault( _rNewData );
942 sValue = ::comphelper::getString(_rNewData);
943 pFieldDescr->SetIsNullable( sValue.toInt32() );
950 sValue = ::comphelper::getString(_rNewData);
951 pFieldDescr->SetPrecision( sValue.toInt32() );
956 OSL_FAIL(
"OTableEditorCtrl::SetCellData: invalid column!");
961 sValue = ::comphelper::getString(_rNewData);
962 pFieldDescr->SetAutoIncrement(sValue ==
DBA_RES(STR_VALUE_YES));
967 sValue = ::comphelper::getString(_rNewData);
968 pFieldDescr->SetScale(sValue.toInt32());
974 pFieldDescr->SetControlDefault(
Any(sValue));
979 sValue = ::comphelper::getString(_rNewData);
980 pFieldDescr->SetFormatKey(sValue.toInt32());
999 static const OUString strYes(
DBA_RES(STR_VALUE_YES));
1000 static const OUString strNo(
DBA_RES(STR_VALUE_NO));
1006 sValue = pFieldDescr->
GetName();
1025 sValue = pFieldDescr->
GetIsNullable() == ColumnValue::NULLABLE ? strYes : strNo;
1030 sValue = OUString::number(pFieldDescr->
GetPrecision());
1034 OSL_FAIL(
"OTableEditorCtrl::GetCellData: invalid column!");
1042 sValue = OUString::number(pFieldDescr->
GetScale());
1050 sValue = OUString::number(pFieldDescr->
GetFormatKey());
1066 return GetTextWidth(
GetCellText(nRow, nColId)) + 2 * GetTextWidth(
"0");
1071 std::vector< std::shared_ptr<OTableRow> >::size_type nListCount(
1073 if( (nRow<0) || (sal::static_int_cast< unsigned long >(nRow)>=nListCount) )
1075 OSL_FAIL(
"(nRow<0) || (nRow>=nListCount)");
1078 std::shared_ptr<OTableRow> pRow = (*m_pRowList)[ nRow ];
1081 return pRow->GetActFieldDescr();
1091 int nStartPos, nEndPos;
1116 bIsCutAllowed =
false;
1121 return bIsCutAllowed;
1126 bool bIsCopyAllowed =
false;
1127 int nStartPos, nEndPos;
1150 std::shared_ptr<OTableRow> pRow;
1154 pRow = (*m_pRowList)[
nIndex];
1155 if( !pRow->GetActFieldDescr() )
1161 bIsCopyAllowed =
true;
1164 return bIsCopyAllowed;
1173 bool bRowFormat = aTransferData.
HasFormat(SotClipboardFormatId::SBA_TABED);
1175 bAllowed = bRowFormat;
1177 bAllowed = !bRowFormat && aTransferData.
HasFormat(SotClipboardFormatId::STRING);
1187 if(
GetView()->getController().isAlterAllowed())
1190 pNameCell->get_widget().cut_clipboard();
1196 if(
GetView()->getController().isAlterAllowed())
1205 if(
GetView()->getController().isAlterAllowed())
1244 if(aTransferData.
HasFormat(SotClipboardFormatId::SBA_TABED))
1252 if(
GetView()->getController().isAlterAllowed())
1254 pNameCell->get_widget().paste_clipboard();
1260 if(
GetView()->getController().isAlterAllowed())
1268 if(
GetView()->getController().isAlterAllowed())
1287 if (bInsertNewAllowed && !
GetView()->getController().isDropAllowed())
1294 return bInsertNewAllowed;
1303 if ( !rController.getSdbMetaData().supportsPrimaryKeys() )
1310 if(xTable.is() && ::comphelper::getString(xTable->getPropertyValue(
PROPERTY_TYPE)) ==
"VIEW")
1318 std::shared_ptr<OTableRow> pRow;
1321 pRow = (*m_pRowList)[
nIndex];
1331 if( pTypeInfo->nSearchType == ColumnSearch::NONE
1332 || (pFieldDescr->
IsNullable() && pRow->IsReadOnly())
1347 case CommandEventId::ContextMenu:
1355 sal::static_int_cast< sal_uInt16 >(
1392 std::unique_ptr<weld::Menu> xContextMenu(xBuilder->weld_menu(
"menu"));
1393 xContextMenu->remove(
"delete");
1394 xContextMenu->remove(
"separator");
1395 if (xContextMenu->popup_at_rect(pPopupParent, aRect) ==
"width")
1405 std::unique_ptr<weld::Menu> xContextMenu(xBuilder->weld_menu(
"menu"));
1408 xContextMenu->remove(
"cut");
1410 xContextMenu->remove(
"copy");
1412 xContextMenu->remove(
"paste");
1414 xContextMenu->remove(
"delete");
1416 xContextMenu->remove(
"primarykey");
1418 xContextMenu->remove(
"insert");
1427 OUString sIdent = xContextMenu->popup_at_rect(pPopupParent, aRect);
1428 if (sIdent ==
"cut")
1430 else if (sIdent ==
"copy")
1432 else if (sIdent ==
"paste")
1434 else if (sIdent ==
"delete")
1440 else if (sIdent ==
"insert")
1446 else if (sIdent ==
"primarykey")
1462 nCutEvent =
nullptr;
1468 nPasteEvent =
nullptr;
1470 sal_Int32 nPastePosition = GetView()->getController().getFirstEmptyRowPosition();
1471 if ( !GetView()->getController().getTable().is() )
1472 nPastePosition = GetSelectRowCount() ? FirstSelectedRow() : GetCurRow();
1474 if (!IsInsertNewAllowed(nPastePosition))
1477 auto aIter = std::find_if(m_pRowList->rbegin(), m_pRowList->rend(), [](
const std::shared_ptr<OTableRow>& rxRow) {
1478 return rxRow && rxRow->GetActFieldDescr() && !rxRow->GetActFieldDescr()->GetName().isEmpty(); });
1479 auto nFreeFromPos =
static_cast<sal_Int32
>(std::distance(aIter, m_pRowList->rend()));
1480 if (nPastePosition < nFreeFromPos)
1481 nPastePosition = nFreeFromPos;
1486 GoToRow( nPastePosition );
1491 nDeleteEvent =
nullptr;
1497 nInsNewRowsEvent =
nullptr;
1498 sal_Int32 nPastePosition = GetView()->getController().getFirstEmptyRowPosition();
1499 if ( !GetView()->getController().getTable().is() )
1500 nPastePosition = GetSelectRowCount() ? FirstSelectedRow() : m_nDataPos;
1502 InsertNewRows( nPastePosition );
1504 GoToRow( nPastePosition );
1514 if(!_bSet && _pFieldDesc->
getTypeInfo()->bNullable)
1560 std::shared_ptr<OTableRow> pRow = (*m_pRowList)[
nIndex];
1588 if( row->IsPrimaryKey() )
1602 if( pActFieldDescr )
1609 std::shared_ptr<OTableRow> pRow = (*m_pRowList)[nRow];
1610 pRow->SetFieldType( _pType,
true );
1614 const sal_Int32 nCurrentlySelected = rTypeList.
get_active();
1616 if ( ( nCurrentlySelected == -1 )
1617 || (
GetView()->getController().getTypeInfo( nCurrentlySelected ) != _pType )
1620 sal_Int32 nEntryPos = 0;
1622 for (
auto const& elem : rTypeInfo)
1624 if(elem.second == _pType)
1633 pActFieldDescr = pRow->GetActFieldDescr();
1634 if (pActFieldDescr !=
nullptr && !pActFieldDescr->
GetFormatKey())
1636 sal_Int32 nFormatKey = ::dbtools::getDefaultNumberFormat( pActFieldDescr->
GetType(),
1664 if (rNEvt.
GetType() == NotifyEventType::GETFOCUS)
#define FIELD_PROPERTY_LENGTH
#define FIELD_PROPERTY_SCALE
#define FIELD_PROPERTY_NUMTYPE
#define FIELD_FIRST_VIRTUAL_COLUMN
#define FIELD_PROPERTY_TEXTLEN
#define COLUMN_DESCRIPTION
#define FIELD_PROPERTY_REQUIRED
#define FIELD_PROPERTY_FORMAT
#define FIELD_PROPERTY_BOOL_DEFAULT
#define FIELD_PROPERTY_DEFAULT
#define FIELD_PROPERTY_AUTOINC
#define BROWSER_INVALIDID
static ImplSVEvent * PostUserEvent(const Link< void *, void > &rLink, void *pCaller=nullptr, bool bReferenceLink=false)
static std::unique_ptr< weld::Builder > CreateBuilder(weld::Widget *pParent, const OUString &rUIFile, bool bMobile=false, sal_uInt64 nLOKWindowId=0)
static void RemoveUserEvent(ImplSVEvent *nUserEvent)
void RowRemoved(sal_Int32 nRow, sal_Int32 nNumRows=1, bool bDoPaint=true)
sal_uInt16 GetColumnId(sal_uInt16 nPos) const
bool GoToColumnId(sal_uInt16 nColId)
BrowserDataWin & GetDataWindow() const
void InsertDataColumn(sal_uInt16 nItemId, const OUString &rText, tools::Long nSize, HeaderBarItemBits nBits=HeaderBarItemBits::STDSTYLE, sal_uInt16 nPos=HEADERBAR_APPEND)
sal_Int32 FirstSelectedColumn() const
bool GoToRow(sal_Int32 nRow)
sal_Int32 GetCurRow() const
sal_uInt16 GetSelectColumnCount() const
sal_Int32 GetRowAtYPosPixel(tools::Long nY, bool bRelToBrowser=true) const
void RowModified(sal_Int32 nRow, sal_uInt16 nColId=BROWSER_INVALIDID)
void SetMode(BrowserMode nMode)
void SelectColumnId(sal_uInt16 nColId)
sal_Int32 GetSelectRowCount() const
sal_uInt16 GetCurColumnId() const
tools::Rectangle GetFieldRectPixel(sal_Int32 nRow, sal_uInt16 nColId, bool bRelToBrowser=true) const
void SetDataRowHeight(tools::Long nPixel)
void RowInserted(sal_Int32 nRow, sal_Int32 nNumRows=1, bool bDoPaint=true, bool bKeepSelection=false)
sal_uInt16 GetColumnAtXPosPixel(tools::Long nX) const
sal_Int32 FirstSelectedRow()
virtual sal_Int32 GetRowCount() const override
bool IsColumnSelected(sal_uInt16 nColumnId) const
sal_Int32 NextSelectedRow()
virtual bool IsRowSelected(sal_Int32 nRow) const override
CommandEventId GetCommand() const
const Point & GetMousePosPixel() const
bool IsMouseEvent() const
void Insert(sal_Int32 nIndex, sal_Int32 nCount=1)
bool Select(sal_Int32 nIndex, bool bSelect=true)
void SetTotalRange(const Range &rTotRange)
NotifyEventType GetType() const
void Push(vcl::PushFlags nFlags=vcl::PushFlags::ALL)
void DrawText(const Point &rStartPt, const OUString &rStr, sal_Int32 nIndex=0, sal_Int32 nLen=-1, std::vector< tools::Rectangle > *pVector=nullptr, OUString *pDisplayText=nullptr, const SalLayoutGlyphs *pLayoutCache=nullptr)
constexpr tools::Long Y() const
constexpr tools::Long X() const
virtual void EnterListAction(const OUString &rComment, const OUString &rRepeatComment, sal_uInt16 nId, ViewShellId nViewShellId)
virtual void AddUndoAction(std::unique_ptr< SfxUndoAction > pAction, bool bTryMerg=false)
constexpr tools::Long Height() const
void setHeight(tools::Long nHeight)
void SetTimeout(sal_uInt64 nTimeoutMs)
void SetInvokeHandler(const Link< Timer *, void > &rLink)
virtual void Start(bool bStartTimer=true) override
bool GetSotStorageStream(SotClipboardFormatId nFormat, tools::SvRef< SotTempStream > &rStreamRef) const
static TransferableDataHelper CreateFromSystemClipboard(vcl::Window *pWindow)
bool HasFormat(SotClipboardFormatId nFormat) const
static VclPtr< reference_type > Create(Arg &&... arg)
bool supportsColumnDescription(std::u16string_view _sURL) const
check if the given data source allows to show column description.
OUString getControlDefault(const OFieldDescription *pFieldDescr, bool _bCheck=true) const
OUString GetDescription() const
void SetHelpText(const OUString &_sHelptext)
void SetControlDefault(const css::uno::Any &_rControlDefault)
void SetIsNullable(sal_Int32 _rIsNullable)
const TOTypeInfoSP & getTypeInfo() const
void SetPrimaryKey(bool _bPKey)
sal_Int32 GetScale() const
OUString GetHelpText() const
bool IsAutoIncrement() const
void SetAutoIncrement(bool _bAuto)
void SetName(const OUString &_rName)
sal_Int32 GetFormatKey() const
void SetDescription(const OUString &_rDescription)
bool IsPrimaryKey() const
sal_Int32 GetType() const
css::uno::Any GetControlDefault() const
sal_Int32 GetPrecision() const
sal_Int32 GetIsNullable() const
void SetFormatKey(sal_Int32 _rFormatKey)
SfxUndoManager & GetUndoManager() const
need for undo's and redo's
bool isAddAllowed() const
bool isAutoIncrementPrimaryKey() const
const OTypeInfoMap & getTypeInfo() const
std::vector< std::shared_ptr< OTableRow > > & getRows()
bool isDropAllowed() const
bool isAlterAllowed() const
const css::uno::Reference< css::beans::XPropertySet > & getTable() const
OTableFieldDescWin * GetDescWin() const
OTableController & getController() const
AutoTimer m_aInvalidateTimer
virtual void paste() override
VclPtr<::svt::EditControl > pDescrCell
virtual OUString GetCellText(sal_Int32 nRow, sal_uInt16 nColId) const override
void InvalidateFeatures()
InvalidateFeatures invalidates the slots SID_UNDO | SID_REDO | SID_SAVEDOC.
OFieldDescription * GetFieldDescr(sal_Int32 nRow)
virtual void copy() override
virtual void SetControlText(sal_Int32 nRow, sal_uInt16 nColId, const OUString &rText) override
virtual ~OTableEditorCtrl() override
ClipboardInvalidator m_aInvalidate
virtual void PaintCell(OutputDevice &rDev, const tools::Rectangle &rRect, sal_uInt16 nColumnId) const override
OTableFieldDescWin * pDescrWin
bool IsPasteAllowed() const
virtual void CellModified() override
virtual bool IsDeleteAllowed() override
ImplSVEvent * nInsNewRowsEvent
VclPtr<::svt::ListBoxControl > pTypeCell
VclPtr< OSQLNameEditControl > pNameCell
virtual void CopyRows() override
virtual bool SeekRow(sal_Int32 nRow) override
SfxUndoManager & GetUndoManager() const
void SaveData(sal_Int32 nRow, sal_uInt16 nColumnId)
VclPtr<::svt::EditControl > pHelpTextCell
virtual ::svt::CellController * GetController(sal_Int32 nRow, sal_uInt16 nCol) override
virtual void InitController(::svt::CellControllerRef &rController, sal_Int32 nRow, sal_uInt16 nCol) override
const std::shared_ptr< OTableRow > & GetActRow() const
void AdjustFieldDescription(OFieldDescription *_pFieldDesc, MultiSelection &_rMultiSel, sal_Int32 _nPos, bool _bSet, bool _bPrimaryKey)
AdjustFieldDescription set the needed values for the description.
virtual void DeactivateCell(bool bUpdate=true) override
virtual bool SaveModified() override
virtual bool IsPrimaryKeyAllowed() override
virtual sal_uInt32 GetTotalCellWidth(sal_Int32 nRow, sal_uInt16 nColId) override
virtual RowStatus GetRowStatus(sal_Int32 nRow) const override
virtual bool CursorMoving(sal_Int32 nNewRow, sal_uInt16 nNewCol) override
void SwitchType(const TOTypeInfoSP &_pType)
void SetReadOnly(bool bRead)
virtual void dispose() override
virtual void CursorMoved() override
void SetPrimaryKey(bool bSet)
virtual void Command(const CommandEvent &rEvt) override
virtual void DeleteRows() override
virtual void SetCellData(sal_Int32 nRow, sal_uInt16 nColId, const TOTypeInfoSP &_pTypeInfo) override
virtual void InsertRows(sal_Int32 nRow) override
ImplSVEvent * nPasteEvent
ChildFocusState m_eChildFocus
ImplSVEvent * nInvalidateTypeEvent
OTableEditorCtrl(vcl::Window *pParentWin, OTableDesignView *pView)
void DisplayData(sal_Int32 nRow)
force displaying of the given row
void InitCellController()
VclPtr< OTableDesignView > m_pView
virtual css::uno::Any GetCellData(sal_Int32 nRow, sal_uInt16 nColId) override
sal_Int32 HasFieldName(std::u16string_view rFieldName)
virtual bool IsInsertNewAllowed(sal_Int32 nRow) override
bool SetDataPtr(sal_Int32 nRow)
virtual void Init() override
virtual void cut() override
OUString GenerateName(const OUString &rName)
std::shared_ptr< OTableRow > pActRow
virtual bool PreNotify(NotifyEvent &rNEvt) override
virtual void InsertNewRows(sal_Int32 nRow) override
virtual OTableDesignView * GetView() const override
std::vector< std::shared_ptr< OTableRow > > * m_pRowList
ImplSVEvent * nDeleteEvent
OUString BoolStringUI(const OUString &rPersistentString) const
void SaveData(OFieldDescription *pFieldDescr)
OUString BoolStringPersistent(std::u16string_view rUIString) const
void SetControlText(sal_uInt16 nControlId, const OUString &rText)
OTableFieldControl * getGenPage() const
void DisplayData(OFieldDescription *pFieldDescr)
void SetReadOnly(bool bReadOnly)
tools::Long m_nCurrentPos
current position of selected column
void Paste(sal_Int32 nRow)
virtual void cut() override
tools::Long m_nDataPos
currently needed row
virtual void copy() override
virtual void Command(const CommandEvent &rEvt) override
virtual void Init() override
virtual void CursorMoved() override
virtual void DeactivateCell(bool bUpdate=true)
const CellControllerRef & Controller() const
virtual bool CursorMoving(sal_Int32 nNewRow, sal_uInt16 nNewCol)
virtual bool PreNotify(NotifyEvent &rNEvt) override
void InvalidateStatusCell(sal_Int32 nRow)
virtual bool SeekRow(sal_Int32 nRow) override
void InvalidateHandleColumn()
virtual void dispose() override
virtual void set_active(int pos)=0
void append_text(const OUString &rStr)
virtual int get_active() const=0
virtual int get_count() const=0
void set_active_text(const OUString &rStr)
virtual void set_text(const OUString &rText)=0
virtual bool get_selection_bounds(int &rStartPos, int &rEndPos)=0
virtual void copy_clipboard()=0
virtual OUString get_text() const=0
virtual void SetHelpId(const OUString &) override
constexpr OUStringLiteral HID_TABDESIGN_TYPECELL
constexpr OUStringLiteral HID_TABDESIGN_HELPTEXT
constexpr OUStringLiteral HID_TABDESIGN_NAMECELL
constexpr OUStringLiteral HID_TABDESIGN_BACKGROUND
constexpr OUStringLiteral HID_CTL_TABLEEDIT
constexpr OUStringLiteral HID_TABDESIGN_COMMENTCELL
#define LINK(Instance, Class, Member)
std::unique_ptr< sal_Int32[]> pData
#define SFX_ENDOFSELECTION
const LanguageTag & getLocale()
css::uno::Reference< css::uno::XInterface > getDataSource(const css::uno::Reference< css::uno::XInterface > &_rxDependentObject)
IMPL_LINK_NOARG(OApplicationController, OnClipboardChanged, TransferableDataHelper *, void)
void adjustBrowseBoxColumnWidth(::svt::EditBrowseBox *_pBox, sal_uInt16 _nColId)
css::uno::Reference< css::util::XNumberFormatter > getNumberFormatter(const css::uno::Reference< css::sdbc::XConnection > &_rxConnection, const css::uno::Reference< css::uno::XComponentContext > &_rxContext)
creates a number formatter
std::multimap< sal_Int32, TOTypeInfoSP > OTypeInfoMap
std::shared_ptr< OTypeInfo > TOTypeInfoSP
SvStream & ReadOTableRow(SvStream &_rStr, OTableRow &_rRow)
bool isSQL92CheckEnabled(const css::uno::Reference< css::sdbc::XConnection > &_xConnection)
check if SQL92 name checking is enabled
constexpr std::enable_if_t< std::is_signed_v< T >, std::make_unsigned_t< T > > make_unsigned(T value)
bool getPropertyValue(ValueType &rValue, css::uno::Reference< css::beans::XPropertySet > const &xPropSet, OUString const &propName)
weld::Window * GetPopupParent(vcl::Window &rOutWin, tools::Rectangle &rRect)
ContentProvider * m_pOwner
#define STREAM_SEEK_TO_BEGIN
constexpr OUStringLiteral PROPERTY_URL(u"URL")
constexpr OUStringLiteral PROPERTY_TYPE(u"Type")
Reference< XController > xController
the controller of the sub component. Must not be <NULL>