30 const Reference<drawing::XDrawPage>& rxPage,
32 const sal_Int32 nIndex)
35 mpMasterPage(nullptr),
44 mbHasTransition(false)
48 if (mpPage !=
nullptr)
50 if (
mpPage->TRG_HasMasterPage())
51 mpMasterPage = &
mpPage->TRG_GetMasterPage();
52 if (
mpPage->getTransitionType() > 0)
53 mbHasTransition =
true;
57PageDescriptor::~PageDescriptor()
61void PageDescriptor::SetPageIndex (
const sal_Int32 nNewIndex)
64 maVisualState.mnPageId = nNewIndex;
67bool PageDescriptor::UpdateMasterPage()
69 const SdrPage* pMaster =
nullptr;
71 pMaster = &
mpPage->TRG_GetMasterPage();
72 if (mpMasterPage != pMaster)
74 mpMasterPage = pMaster;
81bool PageDescriptor::UpdateTransitionFlag()
83 bool bHasSlideTransition (
false);
85 bHasSlideTransition =
mpPage->getTransitionType() > 0;
86 if (bHasSlideTransition != mbHasTransition)
88 mbHasTransition = bHasSlideTransition;
95bool PageDescriptor::HasState (
const State eState)
const
106 return mbWasSelected;
112 return mbIsMouseOver;
126bool PageDescriptor::SetState (
const State eState,
const bool bNewStateValue)
128 bool bModified (
false);
132 bModified = (bNewStateValue!=mbIsVisible);
134 mbIsVisible = bNewStateValue;
144 bModified = (bNewStateValue!=mbWasSelected);
146 mbWasSelected = bNewStateValue;
150 bModified = (bNewStateValue!=mbIsFocused);
152 mbIsFocused = bNewStateValue;
156 bModified = (bNewStateValue!=mbIsMouseOver);
158 mbIsMouseOver = bNewStateValue;
162 bModified = (bNewStateValue!=mbIsCurrent);
164 mbIsCurrent = bNewStateValue;
171 if (bNewStateValue !=
mpPage->IsExcluded())
173 mpPage->SetExcluded(bNewStateValue);
182bool PageDescriptor::GetCoreSelection()
190void PageDescriptor::SetCoreSelection()
193 if (HasState(ST_Selected))
194 mpPage->SetSelected(
true);
196 mpPage->SetSelected(
false);
206 const Point aOffset (maVisualState.GetLocationOffset());
207 aBox.
Move(aOffset.
X(), aOffset.
Y());
211Point PageDescriptor::GetLocation (
const bool bIgnoreOffset)
const
214 return maBoundingBox.TopLeft();
216 return maBoundingBox.TopLeft() + maVisualState.GetLocationOffset();
219void PageDescriptor::SetBoundingBox (const ::tools::Rectangle& rBoundingBox)
221 maBoundingBox = rBoundingBox;
constexpr tools::Long Y() const
constexpr tools::Long X() const
static SdPage * getImplementation(const css::uno::Reference< css::drawing::XDrawPage > &xPage)
returns the SdPage implementation for the given XDrawPage or 0 if not available
PageDescriptor(const css::uno::Reference< css::drawing::XDrawPage > &rxPage, SdPage *pPage, const sal_Int32 nIndex)
Create a PageDescriptor for the given SdPage object.