20#include <core_resource.hxx>
25#include <com/sun/star/ui/dialogs/XExecutableDialog.hpp>
29#include <com/sun/star/beans/XPropertyState.hpp>
30#include <com/sun/star/form/XForm.hpp>
31#include <com/sun/star/container/XIndexContainer.hpp>
33#include <com/sun/star/view/XSelectionSupplier.hpp>
34#include <com/sun/star/awt/XTextComponent.hpp>
35#include <com/sun/star/sdbc/XResultSetUpdate.hpp>
47#include <com/sun/star/sdbc/DataType.hpp>
48#include <com/sun/star/sdbc/SQLException.hpp>
55#include <osl/diagnose.h>
71using namespace ::
dbaui;
76extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
78 css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any>
const& )
80 return cppu::acquire(
new SbaXGridControl(context));
83css::uno::Sequence<OUString> SAL_CALL SbaXGridControl::getSupportedServiceNames()
85 return {
"com.sun.star.form.control.InteractionGridControl",
"com.sun.star.form.control.GridControl",
86 "com.sun.star.awt.UnoControl" };
92OUString SAL_CALL SbaXGridControl::getImplementationName()
94 return "com.sun.star.comp.dbu.SbaXGridControl";
117 if (::comphelper::getINT16(xModelSet->getPropertyValue(
PROPERTY_BORDER)))
126 pReturn->Create(pParent, nStyle);
133 return aRet.hasValue() ? aRet : ::cppu::queryInterface(_rType,
static_cast<css::frame::XDispatch*
>(
this));
145 return css::uno::Sequence<sal_Int8>();
152 OSL_ENSURE(!mbCreatingPeer,
"FmXGridControl::createPeer : recursion!");
160 if (elem.second.is() && elem.second->getLength())
161 xDisp->addStatusListener(elem.second, elem.first);
169 xDisp->dispatch(
aURL, aArgs);
174 ::osl::MutexGuard aGuard( GetMutex() );
175 if ( !_rxListener.is() )
179 if ( !xMultiplexer.is() )
184 xMultiplexer->addInterface( _rxListener );
185 if ( getPeer().is() )
187 if ( 1 == xMultiplexer->getLength() )
190 xDisp->addStatusListener( xMultiplexer, _rURL );
194 _rxListener->statusChanged( xMultiplexer->getLastEvent() );
201 ::osl::MutexGuard aGuard( GetMutex() );
204 if (!xMultiplexer.is())
209 if (getPeer().is() && xMultiplexer->getLength() == 1)
212 xDisp->removeStatusListener(xMultiplexer, _rURL);
214 xMultiplexer->removeInterface( _rxListener );
226 if (elem.second.is())
228 elem.second->disposeAndClear(aEvt);
251 EventObject aEvt(*
this);
263 css::frame::FeatureStateEvent aEvt;
265 aEvt.IsEnabled = !pGrid->IsReadOnlyDB();
266 aEvt.FeatureURL = _rUrl;
270 aEvt.State <<= aURLStatePos->second;
272 aEvt.State <<=
false;
275 xControl->statusChanged(aEvt);
284 pIter->
notifyEach( g, &XStatusListener::statusChanged, aEvt );
291 Any aRet = ::cppu::queryInterface(_rType,
static_cast<css::frame::XDispatch*
>(
this));
294 return FmXGridPeer::queryInterface(_rType);
299 if ( (
aURL.Complete ==
".uno:GridSlots/BrowserAttribs" ) || (
aURL.Complete ==
".uno:GridSlots/RowHeight" )
300 || (
aURL.Complete ==
".uno:GridSlots/ColumnAttribs" ) || (
aURL.Complete ==
".uno:GridSlots/ColumnWidth" )
303 return static_cast<css::frame::XDispatch*
>(
this);
319 pGrid->PostUserEvent(
LINK(
this, SbaXGridPeer, OnDispatchEvent ) );
323 DispatchArgs aArgs = m_aDispatchArgs.front();
324 m_aDispatchArgs.pop();
333 if ( _rURL.Complete ==
".uno:GridSlots/BrowserAttribs" )
335 else if ( _rURL.Complete ==
".uno:GridSlots/RowHeight" )
337 else if ( _rURL.Complete ==
".uno:GridSlots/ColumnAttribs" )
339 else if ( _rURL.Complete ==
".uno:GridSlots/ColumnWidth" )
360 aDispatchArgs.
aArgs = aArgs;
374 sal_Int16 nColId = -1;
375 for (
const PropertyValue& rArg : aArgs)
377 if (rArg.Name ==
"ColumnViewPos")
379 nColId = pGrid->GetColumnIdFromViewPos(::comphelper::getINT16(rArg.Value));
382 if (rArg.Name ==
"ColumnModelPos")
384 nColId = pGrid->GetColumnIdFromModelPos(::comphelper::getINT16(rArg.Value));
387 if (rArg.Name ==
"ColumnId")
389 nColId = ::comphelper::getINT16(rArg.Value);
400 MapDispatchToBool::const_iterator aThisURLState =
m_aDispatchStates.emplace( eURLType,
true ).first;
407 pGrid->SetBrowserAttrs();
411 pGrid->SetRowHeight();
416 OSL_ENSURE(nColId != -1,
"SbaXGridPeer::dispatch : invalid parameter !");
419 pGrid->SetColAttrs(nColId);
425 OSL_ENSURE(nColId != -1,
"SbaXGridPeer::dispatch : invalid parameter !");
428 pGrid->SetColWidth(nColId);
466 FmXGridPeer::getTypes(),
479 ,DragSourceHelper(this)
490 DragSourceHelper::dispose();
512 FmGridHeader::MouseButtonDown(_rMEvt);
517 sal_uInt16
nId = GetItemId(_rMousePos);
518 bool bResizingCol =
false;
524 bResizingCol = !aColRect.
Contains(_rMousePos);
530 EndTracking(TrackingEventFlags::Cancel | TrackingEventFlags::End);
539 _rMousePos.
X() + GetPosPixel().
X(),
540 _rMousePos.
Y() - GetSizePixel().
Height()
552 bool bDBIsReadOnly =
static_cast<SbaGridControl*
>(GetParent())->IsReadOnlyDB();
563 bool bColAttrs = (nColId != sal_uInt16(-1)) && (nColId != 0);
564 if ( !bColAttrs || bDBIsReadOnly)
573 switch( ::comphelper::getINT32(xField->getPropertyValue(
PROPERTY_TYPE)) )
575 case DataType::BINARY:
576 case DataType::VARBINARY:
577 case DataType::LONGVARBINARY:
578 case DataType::SQLNULL:
579 case DataType::OBJECT:
598 if (rExecutionResult ==
"colwidth")
600 else if (rExecutionResult ==
"colattrset")
610 ,m_pMasterListener(nullptr)
611 ,m_nAsyncDropEvent(nullptr)
612 ,m_bActivatingForDrop(false)
657 if ( GetSelectRowCount() > 0 )
670 if ( !pSupplierImpl )
683 if (xCols.is() && (nModelPos != sal_uInt16(-1)))
684 xAffectedCol.set(xCols->getByIndex(nModelPos), css::uno::UNO_QUERY);
686 if (!xAffectedCol.is())
690 sal_Int32 nCurWidth = aWidth.hasValue() ? ::comphelper::getINT32(aWidth) : -1;
718 sal_Int32 nCurHeight = aHeight.hasValue() ? ::comphelper::getINT32(aHeight) : -1;
726 if (sal_Int16(-1) ==
nValue)
762 if (xCols.is() && (nModelPos != sal_uInt16(-1)))
763 xAffectedCol.set(xCols->getByIndex(nModelPos), css::uno::UNO_QUERY);
773 if (!xGridModel.is())
783 Reference<XExecutableDialog> xExecute(xContext->getServiceManager()->createInstanceWithArgumentsAndContext(
"com.sun.star.form.ControlFontDialog",
784 aArguments, xContext), css::uno::UNO_QUERY_THROW);
795 if (rExecutionResult ==
"tableattr")
797 else if (rExecutionResult ==
"rowheight")
799 else if (rExecutionResult ==
"copy")
816 FmGridControl::ActivateCell(nRow, nCol, bSetCellFocus);
823 FmGridControl::DeactivateCell(bUpdate);
847 if ( xCols.is() && xCols->getCount() > nModelPos )
854 OSL_FAIL(
"SbaGridControl::getField getColumns returns NULL or ModelPos is > than count!");
867 bool bDBIsReadOnly =
true;
876 ::dbtools::ensureRowSetConnection( xDataSource,
getContext(),
nullptr );
896 return bDBIsReadOnly;
901 sal_Int32 nRow = GetRowAtYPosPixel(rMEvt.GetPosPixel().Y());
902 sal_uInt16 nColPos = GetColumnAtXPosPixel(rMEvt.GetPosPixel().X());
903 sal_uInt16 nViewPos = (nColPos ==
BROWSER_INVALIDID) ? sal_uInt16(-1) : nColPos-1;
906 bool bHitEmptySpace = (nRow > GetRowCount()) || (nViewPos == sal_uInt16(-1));
908 if (bHitEmptySpace && (rMEvt.GetClicks() == 2) && rMEvt.IsMod1())
911 FmGridControl::MouseButtonDown(rMEvt);
919 bool bHandled =
false;
927 sal_Int32 nRow = GetRowAtYPosPixel(_rPosPixel.
Y());
928 sal_uInt16 nColPos = GetColumnAtXPosPixel(_rPosPixel.
X());
929 sal_uInt16 nViewPos = (nColPos ==
BROWSER_INVALIDID) ? sal_uInt16(-1) : nColPos-1;
936 sal_Int32 nCorrectRowCount = GetRowCount();
937 if (
GetOptions() & DbGridControlOptions::Insert)
939 if (bCurrentRowVirtual)
945 bool bHitHandle = (nColPos == 0);
950 && ( GetSelectRowCount()
953 && !bCurrentRowVirtual
956 || ( (0 == GetSelectRowCount())
962 if (GetDataWindow().IsMouseCaptured())
963 GetDataWindow().ReleaseMouse();
965 if (0 == GetSelectRowCount())
970 getMouseEvent().Clear();
980 if (GetDataWindow().IsMouseCaptured())
981 GetDataWindow().ReleaseMouse();
983 getMouseEvent().Clear();
988 else if ( !bHitHandle
992 if (GetDataWindow().IsMouseCaptured())
993 GetDataWindow().ReleaseMouse();
995 getMouseEvent().Clear();
996 DoFieldDrag(nViewPos,
static_cast<sal_Int16
>(nRow));
1010 OSL_ENSURE(xDataSource.is(),
"SbaGridControl::DoColumnDrag : invalid data source !");
1025 xAffectedCol.set(xCols->getByIndex(nModelPos),UNO_QUERY);
1026 if (xAffectedCol.is())
1034 OSL_FAIL(
"SbaGridControl::DoColumnDrag : something went wrong while getting the column");
1036 if (sField.isEmpty())
1039 rtl::Reference<OColumnTransferable> pDataTransfer =
new OColumnTransferable(xDataSource, sField, xAffectedField, xActiveConnection, ColumnTransferFormatFlags::FIELD_DESCRIPTOR | ColumnTransferFormatFlags::COLUMN_DESCRIPTOR);
1045 OSL_ENSURE( GetSelectRowCount() > 0,
"SbaGridControl::CopySelectedRowsToClipboard: invalid call!" );
1052 OSL_ENSURE( xForm.is(),
"SbaGridControl::implTransferSelectedRows: invalid form!" );
1056 bool bSelectionBookmarks =
true;
1059 if ((GetSelectRowCount() == 0) && (nRowPos >= 0))
1061 aSelectedRows = {
Any(
static_cast<sal_Int32
>(nRowPos + 1)) };
1062 bSelectionBookmarks =
false;
1067 bSelectionBookmarks =
true;
1074 if ( _bTrueIfClipboardFalseIfDrag )
1075 pTransfer->CopyToClipboard(
this );
1095 if (aSupportingText.getConstArray()[nColumnPos])
1098 sCellText = ::comphelper::getString(aCellContents.getConstArray()[nColumnPos]);
1104 OSL_FAIL(
"SbaGridControl::DoFieldDrag : could not retrieve the cell's contents !");
1113 struct SbaGridControlPrec
1115 bool operator()(
const DataFlavorExVector::value_type& _aType)
1117 switch (_aType.mnSotId)
1119 case SotClipboardFormatId::DBACCESS_TABLE:
1120 case SotClipboardFormatId::DBACCESS_QUERY:
1121 case SotClipboardFormatId::DBACCESS_COMMAND:
1139 if ( IsDropFormatSupported( SotClipboardFormatId::STRING ) )
1147 const sal_Int32 nRow = GetRowAtYPosPixel(rEvt.maPosPixel.Y(),
false);
1148 const sal_uInt16 nCol = GetColumnId(GetColumnAtXPosPixel(rEvt.maPosPixel.X()));
1150 sal_Int32 nCorrectRowCount = GetRowCount();
1151 if (
GetOptions() & DbGridControlOptions::Insert)
1161 if (!aRect.
Contains(rEvt.maPosPixel))
1170 if (xCurrentController.
is() && xCurrentController->IsValueChangedFromSaved() && ((nRow != GetCurRow()) || (nCol != GetCurColumnId())))
1195 if (xColumnControls.is())
1199 css::uno::UNO_QUERY);
1200 if (xColControl.is())
1203 GoToRowColumnId(nRow, nCol);
1220 if(std::any_of(_rFlavors.begin(),_rFlavors.end(),SbaGridControlPrec()))
1224 return (
DND_ACTION_NONE != nAction) ? nAction : FmGridControl::AcceptDrop(rEvt);
1231 if (!xDataSource.is())
1238 if ( IsDropFormatSupported( SotClipboardFormatId::STRING ) )
1240 sal_Int32 nRow = GetRowAtYPosPixel(rEvt.maPosPixel.Y(),
false);
1241 sal_uInt16 nCol = GetColumnAtXPosPixel(rEvt.maPosPixel.X());
1243 sal_Int32 nCorrectRowCount = GetRowCount();
1244 if (
GetOptions() & DbGridControlOptions::Insert)
1249 OSL_ENSURE((nCol !=
BROWSER_INVALIDID) && (nRow < nCorrectRowCount),
"SbaGridControl::Drop : dropped on an invalid position !");
1253 nCol = GetColumnId(nCol);
1255 GoToRowColumnId(nRow, nCol);
1267 if ( !aDropped.
GetString( SotClipboardFormatId::STRING, sDropped ) )
1271 pEditImplementation->
SetText(sDropped);
1281 if( std::any_of(_rFlavors.begin(),_rFlavors.end(), SbaGridControlPrec()) )
1284 m_aDataDescriptor = ODataAccessObjectTransferable::extractObjectDescriptor(aDropped);
1301 xReturn.set(xColumns->getParent(), UNO_QUERY);
1308 m_nAsyncDropEvent =
nullptr;
1311 if ( xDataSource.is() )
1313 bool bCountFinal =
false;
1316 setDataSource(
nullptr);
1317 Reference< XResultSetUpdate > xResultSetUpdate(xDataSource,UNO_QUERY);
1322 pImExport->initialize(m_aDataDescriptor);
1323 if (m_pMasterListener)
1324 m_pMasterListener->BeforeDrop();
1325 if(!pImExport->Read())
1327 OUString sError =
DBA_RES(STR_NO_COLUMNNAME_MATCHING);
1330 if (m_pMasterListener)
1331 m_pMasterListener->AfterDrop();
1334 catch(
const SQLException& e)
1336 if (m_pMasterListener)
1337 m_pMasterListener->AfterDrop();
1344 if (m_pMasterListener)
1345 m_pMasterListener->AfterDrop();
1349 setDataSource(Reference< XRowSet >(xDataSource,UNO_QUERY));
1351 m_aDataDescriptor.clear();
1357 if ( AccessibleBrowseBoxObjType::BrowseBox == eObjType )
1360 sRet =
DBA_RES(STR_DATASOURCE_GRIDCONTROL_DESC);
AccessibleBrowseBoxObjType
#define BROWSER_INVALIDID
static bool IsMainThread()
static ImplSVEvent * PostUserEvent(const Link< void *, void > &rLink, void *pCaller=nullptr, bool bReferenceLink=false)
static void RemoveUserEvent(ImplSVEvent *nUserEvent)
virtual ::svt::CellController * GetController(sal_Int32 nRow, sal_uInt16 nCol) override
sal_uInt16 GetViewColumnPos(sal_uInt16 nId) const
virtual bool IsModified() const override
sal_uInt16 GetColumnIdFromViewPos(sal_uInt16 nPos) const
virtual void StartDrag(sal_Int8 nAction, const Point &rPosPixel) override
DbGridControlOptions GetOptions() const
const DbGridRowRef & GetCurrentRow() const
sal_uInt16 GetModelColumnPos(sal_uInt16 nId) const
virtual void dispose() override
const css::uno::Reference< css::uno::XComponentContext > & getContext() const
virtual void PostExecuteRowContextMenu(const OUString &rExecutionResult)
bool IsCurrentAppending() const
sal_uInt16 GetViewColCount() const
const DbGridRowRef & GetEmptyRow() const
sal_Int32 GetCurrentPos() const
virtual void PreExecuteRowContextMenu(weld::Menu &rMenu)
virtual void Select() override
css::uno::Sequence< css::uno::Any > getSelectionBookmarks()
virtual OUString GetAccessibleObjectDescription(AccessibleBrowseBoxObjType eObjType, sal_Int32 _nPosition=-1) const override
FmXGridPeer * GetPeer() const
virtual css::uno::Any SAL_CALL queryAggregation(const css::uno::Type &_rType) override
css::uno::Reference< css::uno::XComponentContext > m_xContext
virtual void SAL_CALL dispose() override
virtual void SAL_CALL createPeer(const css::uno::Reference< css::awt::XToolkit > &_rToolkit, const css::uno::Reference< css::awt::XWindowPeer > &Parent) override
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes() override
css::uno::Reference< css::uno::XComponentContext > m_xContext
virtual css::uno::Reference< css::frame::XDispatch > SAL_CALL queryDispatch(const css::util::URL &aURL, const OUString &aTargetFrameName, sal_Int32 nSearchFlags) override
virtual void SAL_CALL dispose() override
virtual css::uno::Reference< css::container::XIndexContainer > SAL_CALL getColumns() override
sal_uInt16 GetClicks() const
constexpr tools::Long Y() const
constexpr tools::Long X() const
bool GetString(SotClipboardFormatId nFormat, OUString &rStr) const
static css::uno::Reference< css::awt::XWindow > GetInterface(vcl::Window *pWindow)
static VclPtr< reference_type > Create(Arg &&... arg)
sal_Int32 addInterface(std::unique_lock< std::mutex > &rGuard, const css::uno::Reference< ListenerT > &rxIFace)
void notifyEach(std::unique_lock< std::mutex > &rGuard, void(SAL_CALL ListenerT::*NotificationMethod)(const EventT &), const EventT &Event) const
sal_Int32 removeInterface(std::unique_lock< std::mutex > &rGuard, const css::uno::Reference< ListenerT > &rxIFace)
css::uno::Type const & get()
sal_Int32 GetValue() const
SbaGridListener * m_pMasterListener
SvNumberFormatter * GetDatasourceFormatter()
virtual OUString GetAccessibleObjectDescription(AccessibleBrowseBoxObjType eObjType, sal_Int32 _nPosition=-1) const override
return the description of the specified object.
virtual void onColumnChange() override
virtual sal_Int8 AcceptDrop(const BrowserAcceptDropEvent &rEvt) override
void DoColumnDrag(sal_uInt16 nColumnPos)
virtual void PreExecuteRowContextMenu(weld::Menu &rMenu) override
void SetColWidth(sal_uInt16 nColId)
void SetColAttrs(sal_uInt16 nColId)
bool IsAllSelected() const
virtual ::svt::CellController * GetController(sal_Int32 nRow, sal_uInt16 nCol) override
css::uno::Reference< css::beans::XPropertySet > getDataSource() const
virtual sal_Int8 ExecuteDrop(const BrowserExecuteDropEvent &rEvt) override
void CopySelectedRowsToClipboard()
copies the currently selected rows to the clipboard @precond at least one row is selected
virtual void StartDrag(sal_Int8 _nAction, const Point &_rPosPixel) override
virtual void DeactivateCell(bool bUpdate=true) override
virtual void ActivateCell(sal_Int32 nRow, sal_uInt16 nCol, bool bSetCellFocus=true) override
bool IsReadOnlyDB() const
virtual void MouseButtonDown(const BrowserMouseEvent &rMEvt) override
virtual ~SbaGridControl() override
virtual void Select() override
SbaGridControl(css::uno::Reference< css::uno::XComponentContext > const &_rM, Window *pParent, FmXGridPeer *_pPeer, WinBits nBits)
virtual void PostExecuteRowContextMenu(const OUString &rExecutionResult) override
css::uno::Reference< css::beans::XPropertySet > getField(sal_uInt16 nModelPos)
void DoFieldDrag(sal_uInt16 nColumnPos, sal_Int16 nRowPos)
virtual void dispose() override
ImplSVEvent * m_nAsyncDropEvent
bool m_bActivatingForDrop
virtual VclPtr< BrowserHeader > imp_CreateHeaderBar(BrowseBox *pParent) override
svx::ODataAccessDescriptor m_aDataDescriptor
virtual void onRowChange() override
void implTransferSelectedRows(sal_Int16 nRowPos, bool _bTrueIfClipboardFalseIfDrag)
virtual void CellActivated()=0
virtual void SelectionChanged()=0
virtual void RowChanged()=0
virtual void CellDeactivated()=0
virtual void ColumnChanged()=0
virtual void SAL_CALL createPeer(const css::uno::Reference< css::awt::XToolkit > &rToolkit, const css::uno::Reference< css::awt::XWindowPeer > &rParentPeer) override
std::map< css::util::URL, rtl::Reference< SbaXStatusMultiplexer >, SbaURLCompare > StatusMultiplexerArray
StatusMultiplexerArray m_aStatusMultiplexer
virtual ~SbaXGridControl() override
virtual void SAL_CALL removeStatusListener(const css::uno::Reference< css::frame::XStatusListener > &xControl, const css::util::URL &aURL) override
virtual rtl::Reference< FmXGridPeer > imp_CreatePeer(vcl::Window *pParent) override
virtual css::uno::Any SAL_CALL queryAggregation(const css::uno::Type &_rType) override
virtual void SAL_CALL dispatch(const css::util::URL &aURL, const css::uno::Sequence< css::beans::PropertyValue > &aArgs) override
virtual void SAL_CALL dispose() override
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes() override
virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() override
virtual void SAL_CALL addStatusListener(const css::uno::Reference< css::frame::XStatusListener > &xControl, const css::util::URL &aURL) override
virtual void SAL_CALL addStatusListener(const css::uno::Reference< css::frame::XStatusListener > &xControl, const css::util::URL &aURL) override
MapDispatchToBool m_aDispatchStates
virtual css::uno::Reference< css::frame::XDispatch > SAL_CALL queryDispatch(const css::util::URL &aURL, const OUString &aTargetFrameName, sal_Int32 nSearchFlags) override
virtual VclPtr< FmGridControl > imp_CreateControl(vcl::Window *pParent, WinBits nStyle) override
SbaXGridPeer(const css::uno::Reference< css::uno::XComponentContext > &)
static DispatchType classifyDispatchURL(const css::util::URL &_rURL)
virtual void SAL_CALL dispatch(const css::util::URL &aURL, const css::uno::Sequence< css::beans::PropertyValue > &aArgs) override
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes() override
virtual void SAL_CALL removeStatusListener(const css::uno::Reference< css::frame::XStatusListener > &xControl, const css::util::URL &aURL) override
virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type &_rType) override
virtual ~SbaXGridPeer() override
void NotifyStatusChanged(const css::util::URL &aUrl, const css::uno::Reference< css::frame::XStatusListener > &xControl)
virtual void SAL_CALL dispose() override
std::queue< DispatchArgs > m_aDispatchArgs
comphelper::OMultiTypeInterfaceContainerHelperVar4< css::util::URL, css::frame::XStatusListener, SbaURLCompare > m_aStatusListeners
const IEditImplementation * GetEditImplementation() const
virtual void SetText(const OUString &_rStr)=0
static SVT_DLLPUBLIC void StartStringDrag(const OUString &_rContent, vcl::Window *_pWindow, sal_Int8 _nDragSourceActions)
virtual void MouseButtonDown(const MouseEvent &rMEvt)
#define TOOLS_WARN_EXCEPTION(area, stream)
#define DBG_UNHANDLED_EXCEPTION(...)
weld::Window * GetFrameWeld(const SfxFrame *pFrame)
::std::vector< DataFlavorEx > DataFlavorExVector
#define HEADERBAR_ITEM_NOTFOUND
Sequence< PropertyValue > aArguments
#define LINK(Instance, Class, Member)
css::uno::Sequence< T > concatSequences(const css::uno::Sequence< T > &rS1, const Ss &... rSn)
css::beans::PropertyValue makePropertyValue(const OUString &rName, T &&rValue)
const ColumnProperty * getField(guint n)
css::uno::Reference< css::uno::XInterface > getDataSource(const css::uno::Reference< css::uno::XInterface > &_rxDependentObject)
IMPL_LINK_NOARG(OApplicationController, OnClipboardChanged, TransferableDataHelper *, void)
void callColumnFormatDialog(const css::uno::Reference< css::beans::XPropertySet > &_xAffectedCol, const css::uno::Reference< css::beans::XPropertySet > &_xField, SvNumberFormatter *_pFormatter, weld::Widget *_pParent)
call the format dialog and set the selected format at the column
SAL_DLLPUBLIC_EXPORT css::uno::XInterface * com_sun_star_comp_dbu_SbaXGridControl_get_implementation(css::uno::XComponentContext *context, css::uno::Sequence< css::uno::Any > const &)
constexpr OUStringLiteral PROPERTY_WIDTH(u"Width")
constexpr OUStringLiteral PROPERTY_CONTROLSOURCE(u"DataField")
constexpr OUStringLiteral PROPERTY_ISREADONLY(u"IsReadOnly")
constexpr OUStringLiteral PROPERTY_BORDER(u"Border")
constexpr OUStringLiteral PROPERTY_TYPE(u"Type")
constexpr OUStringLiteral PROPERTY_BOUNDFIELD(u"BoundField")
constexpr OUStringLiteral PROPERTY_ISROWCOUNTFINAL(u"IsRowCountFinal")
constexpr OUStringLiteral PROPERTY_ROW_HEIGHT(u"RowHeight")
css::uno::Sequence< css::beans::PropertyValue > aArgs