11#include <uiobject.hxx>
17#include <viewfunc.hxx>
29#include <com/sun/star/embed/EmbedVerbs.hpp>
41 sal_Int32 nOffset = 0;
49 sal_Int32 nOffset = 0;
59 mxGridWindow(xGridWin)
67 aMap[
"SelectedTable"] = OUString::number(
mxGridWindow->getViewData().GetTabNo());
68 aMap[
"CurrentColumn"] = OUString::number(
mxGridWindow->getViewData().GetCurX());
69 aMap[
"CurrentRow"] = OUString::number(
mxGridWindow->getViewData().GetCurY());
74 aMap[
"TopVisibleRow"] = OUString::number(
mxGridWindow->getViewData().GetPosY(eAlignY));
75 aMap[
"TopVisibleColumn"] = OUString::number(
mxGridWindow->getViewData().GetPosX(eAlignX));
78 OUString aMarkedAreaString;
81 aMap[
"MarkedArea"] = aMarkedAreaString;
132 if (rAction ==
"SELECT")
134 bool bExtend =
false;
135 if (rParameters.find(
"EXTEND") != rParameters.end())
137 auto itr = rParameters.find(
"EXTEND");
138 if (itr->second.equalsIgnoreAsciiCase(
"true") || itr->second ==
"1")
142 if (rParameters.find(
"CELL") != rParameters.end())
144 auto itr = rParameters.find(
"CELL");
145 const OUString& rStr = itr->second;
151 else if (rParameters.find(
"RANGE") != rParameters.end())
153 auto itr = rParameters.find(
"RANGE");
154 const OUString rStr = itr->second;
160 else if (rParameters.find(
"TABLE") != rParameters.end())
162 auto itr = rParameters.find(
"TABLE");
163 const OUString rStr = itr->second;
164 sal_Int32 nTab = rStr.toUInt32();
173 SAL_WARN(
"sc.uitest",
"incorrect table number");
177 else if (rParameters.find(
"OBJECT") != rParameters.end())
179 auto itr = rParameters.find(
"OBJECT");
180 const OUString rStr = itr->second;
187 SAL_WARN(
"sc.uitest",
"unknown selection method");
190 else if (rAction ==
"DESELECT")
192 if (rParameters.find(
"OBJECT") != rParameters.end())
201 else if (rAction ==
"ACTIVATE")
210 if (nSdrObjKind == SdrObjKind::OLE2)
217 SAL_WARN(
"sc.uitest",
"can't activate non-ole objects");
221 SAL_WARN(
"sc.uitest",
"can't activate the current selection");
223 else if (rAction ==
"LAUNCH")
225 if ( rParameters.find(
"AUTOFILTER") != rParameters.end())
227 auto itrCol = rParameters.find(
"COL");
228 if (itrCol == rParameters.end())
230 SAL_WARN(
"sc.uitest",
"missing COL parameter");
234 auto itrRow = rParameters.find(
"ROW");
235 if (itrRow == rParameters.end())
237 SAL_WARN(
"sc.uitest",
"missing ROW parameter");
240 SCROW nRow = itrRow->second.toUInt32();
241 SCCOL nCol = itrCol->second.toUInt32();
244 else if ( rParameters.find(
"PIVOTTABLE") != rParameters.end())
246 auto itrCol = rParameters.find(
"COL");
247 if (itrCol == rParameters.end())
249 SAL_WARN(
"sc.uitest",
"missing COL parameter");
253 auto itrRow = rParameters.find(
"ROW");
254 if (itrRow == rParameters.end())
256 SAL_WARN(
"sc.uitest",
"missing ROW parameter");
259 SCROW nRow = itrRow->second.toUInt32();
260 SCCOL nCol = itrCol->second.toUInt32();
263 else if ( rParameters.find(
"SELECTMENU") != rParameters.end())
265 auto itrCol = rParameters.find(
"COL");
266 if (itrCol == rParameters.end())
268 SAL_WARN(
"sc.uitest",
"missing COL parameter");
272 auto itrRow = rParameters.find(
"ROW");
273 if (itrRow == rParameters.end())
275 SAL_WARN(
"sc.uitest",
"missing ROW parameter");
278 SCROW nRow = itrRow->second.toUInt32();
279 SCCOL nCol = itrCol->second.toUInt32();
283 else if (rAction ==
"COMMENT")
285 if ( rParameters.find(
"OPEN") != rParameters.end() )
290 else if ( rParameters.find(
"CLOSE") != rParameters.end() )
297 else if ( rParameters.find(
"SETTEXT") != rParameters.end() )
299 auto itr = rParameters.find(
"SETTEXT");
300 const OUString rStr = itr->second;
306 else if (rAction ==
"SIDEBAR")
309 DBG_ASSERT(pViewFrm,
"ScGridWinUIObject::execute: no viewframe");
312 auto itr = rParameters.find(
"PANEL");
313 if (itr != rParameters.end())
315 OUString aVal = itr->second;
319 else if (rAction ==
"SET")
321 if (rParameters.find(
"ZOOM") != rParameters.end())
323 auto itr = rParameters.find(
"ZOOM");
324 OUString aVal = itr->second;
325 sal_Int32 nVal = aVal.toInt32();
334 pViewShell->
SetZoom( aFract, aFract,
true );
351 return xGridWindow->getViewData().GetDocument().GetDrawLayer();
356 ScDrawLayer* pDrawLayer = get_draw_layer(xGridWindow);
358 return pDrawLayer->
GetPage(nTab);
363 SCTAB nTab = xGridWindow->getViewData().GetTabNo();
364 SdrPage* pPage = get_draw_page(xGridWindow, nTab);
366 std::set<OUString> aRet;
375 if (
pObject->GetObjIdentifier() == SdrObjKind::OLE2)
377 aRet.insert(
static_cast<SdrOle2Obj*
>(pObject)->GetPersistName());
389 std::set<OUString> aChildren = collect_charts(
mxGridWindow);
407 return "ScGridWinUIObject";
Base class for all Drawmodule specific functions.
sal_uInt16 GetSlotID() const
sal_uInt16 GetZoom() const
void SetZoom(sal_uInt16 nNew)
SC_DLLPUBLIC ScPostIt * GetNote(const ScAddress &rPos)
SC_DLLPUBLIC bool HasNote(const ScAddress &rPos) const
SC_DLLPUBLIC ScPostIt * GetOrCreateNote(const ScAddress &rPos)
SC_DLLPUBLIC SCTAB GetTableCount() const
bool SelectObject(std::u16string_view rName)
ScDrawView * getDrawView()
VclPtr< ScGridWindow > mxGridWindow
virtual void execute(const OUString &rAction, const StringMap &rParameters) override
virtual OUString get_name() const override
ScViewFunc * getViewFunc()
ScGridWinUIObject(const VclPtr< ScGridWindow > &xGridWin)
static std::unique_ptr< UIObject > create(vcl::Window *pWindow)
virtual std::set< OUString > get_children() const override
virtual StringMap get_state() override
virtual std::unique_ptr< UIObject > get_child(const OUString &rID) override
ScTabViewShell * getViewShell()
SC_DLLPUBLIC const ScAppOptions & GetAppOptions()
SC_DLLPUBLIC void SetAppOptions(const ScAppOptions &rOpt)
Additional class containing cell annotation data.
void SetText(const ScAddress &rPos, const OUString &rText)
Changes the caption text of this note.
OUString GetText() const
Returns the caption text of this note.
static bool GetAddressFromString(ScAddress &rAddress, std::u16string_view rAddressStr, const ScDocument &rDocument, formula::FormulaGrammar::AddressConvention eConv, sal_Int32 &nOffset, sal_Unicode cSeparator=' ', sal_Unicode cQuote='\'')
String to Range core.
static bool GetRangeFromString(ScRange &rRange, std::u16string_view rRangeStr, const ScDocument &rDocument, formula::FormulaGrammar::AddressConvention eConv, sal_Int32 &nOffset, sal_Unicode cSeparator=' ', sal_Unicode cQuote='\'')
static void GetStringFromRangeList(OUString &rString, const ScRangeList *pRangeList, const ScDocument *pDocument, formula::FormulaGrammar::AddressConvention eConv, sal_Unicode cSeparator=' ')
void ActivateObject(SdrOle2Obj *pObj, sal_Int32 nVerb)
void SetDrawShell(bool bActive)
FuPoor * GetDrawFuncPtr()
void MarkRange(const ScRange &rRange, bool bSetCursor=true, bool bContinue=false)
void SetZoom(const Fraction &rNewX, const Fraction &rNewY, bool bAll)
SC_DLLPUBLIC void SetTabNo(SCTAB nTab, bool bNew=false, bool bExtendSelection=false, bool bSameTabButMoved=false)
SfxDispatcher & GetDispatcher()
ScTabViewShell * GetViewShell() const
ScDBFunc * GetView() const
ScDrawView * GetScDrawView()
size_t GetMarkCount() const
SdrMark * GetMark(size_t nNum) const
const SdrMarkList & GetMarkedObjectList() const
SdrObject * GetMarkedSdrObj() const
const SdrPage * GetPage(sal_uInt16 nPgNum) const
virtual SdrObjKind GetObjIdentifier() const
const SfxPoolItem * Execute(sal_uInt16 nSlot, SfxCallMode nCall=SfxCallMode::SLOT, const SfxPoolItem **pArgs=nullptr, sal_uInt16 nModi=0, const SfxPoolItem **pInternalArgs=nullptr)
const css::uno::Reference< css::frame::XFrame > & GetFrameInterface() const
static SAL_WARN_UNUSED_RESULT SfxViewFrame * Current()
SfxFrame & GetFrame() const
void ShowChildWindow(sal_uInt16, bool bVisible=true)
virtual StringMap get_state() override
virtual void execute(const OUString &rAction, const StringMap &rParameters) override
#define DBG_ASSERT(sCon, aError)
EmbeddedObjectRef * pObject
#define SAL_WARN(area, stream)
HashMap_OWString_Interface aMap
ScHSplitPos WhichH(ScSplitPos ePos)
ScVSplitPos WhichV(ScSplitPos ePos)
std::map< OUString, OUString > StringMap