30 m_pEditWin( pEditWin ),
49 SwFrameControlPtrMap::iterator aIt = rControls.find(pFrame);
51 if (aIt != rControls.end())
75 rCtrl.second->ShowAll(
false );
81 for (
auto& rCtrl : rEntry.second )
82 rCtrl.second->SetReadonly( bReadonly );
95 SwFrameControlPtrMap::iterator lb = rControls.lower_bound(pPageFrame);
96 if (lb != rControls.end() && !(rControls.key_comp()(pPageFrame, lb->first)))
97 pControl = lb->second;
105 rControls.insert(lb, make_pair(pPageFrame, pNewControl));
106 pControl.swap( pNewControl );
109 tools::Rectangle aPageRect = m_pEditWin->LogicToPixel( pPageFrame->getFrameArea().SVRect() );
112 assert( pWin !=
nullptr) ;
117 pControl->ShowAll(
true );
127 SwFrameControlPtrMap::iterator lb = rControls.lower_bound(pPageFrame);
128 if (lb != rControls.end() && !(rControls.key_comp()(pPageFrame, lb->first)))
129 pControl = lb->second;
137 rControls.insert(lb, make_pair(pPageFrame, pNewControl));
139 pControl.swap( pNewControl );
146 pControl->ShowAll(
true );
151 if(pFlyFrame ==
nullptr)
159 SwFrameControlPtrMap::iterator lb = rControls.lower_bound(pFlyFrame);
160 if (lb != rControls.end() && !(rControls.key_comp()(pFlyFrame, lb->first)))
161 pControl = lb->second;
169 pNewControl->
SetReadonly( pViewOpt->IsReadonly() );
171 rControls.insert(lb, make_pair(pFlyFrame, pNewControl));
173 pControl.swap( pNewControl );
177 assert(pButton !=
nullptr);
179 pControl->ShowAll( bShow );
183 const OUString& rUIXMLDescription,
const OString& rID)
185 , m_pEditWin(pEditWin)
198 const SwNode* pNd = it->first;
199 IDocumentOutlineNodes::tSortedOutlineNodeList::iterator
i = std::find(aOutlineNodes.begin(), aOutlineNodes.end(), pNd);
200 if (i == aOutlineNodes.end())
210 bool bOutlineContentVisibleAttr =
true;
211 pNd->GetTextNode()->GetAttrOutlineContentVisible(bOutlineContentVisibleAttr);
212 if (!bOutlineContentVisibleAttr)
226 if (pContentFrame != pFrameWas)
233 if (pContentFrame && !pContentFrame->
IsInDtor())
253 SwFrameControlPtrMap::iterator lb = rControls.lower_bound(pContentFrame);
254 if (lb != rControls.end() && !(rControls.key_comp()(pContentFrame, lb->first)))
256 pControl = lb->second;
263 rControls.insert(lb, make_pair(pContentFrame, pNewControl));
264 pControl.swap(pNewControl);
271 if (pWin->
GetSymbol() == SymbolType::ARROW_RIGHT)
283 if (rOutlineNds.
Seek_Entry(const_cast<SwTextNode*>(pTextNd), &nPos))
291 (nPos + 1 < rOutlineNds.
size() && &aIdx.
GetNode() == rOutlineNds[nPos +1]))
317 return static_cast<const SwPageFrame*>(
m_pFrame );
338 pDefaultDevice->SetPointFont(*
m_xVirDev, aFont);
343 assert(static_cast<bool>(pWindow));
virtual ~ISwFrameControl()
Base class of the Writer layout elements.
VclPtr< SwEditWin > m_pEditWin
const SwNodes & GetNodes() const
void SetReadonly(bool bSet)
const SwView & GetView() const
const IDocumentOutlineNodes * getIDocumentOutlineNodesAccess() const
void UpdatePosition(const std::optional< Point > &xEvtPt=std::optional< Point >())
const StyleSettings & GetStyleSettings() const
static const AllSettings & GetSettings()
SwContentFrame * getLayoutFrame(const SwRootFrame *, const SwPosition *pPos=nullptr, std::pair< Point, bool > const *pViewPosAndCalcFrame=nullptr) const
void HideControls(FrameControlType eType)
void RemoveControls(const SwFrame *pFrame)
SwWrtShell & GetWrtShell() const
~SwFrameControlsManager()
static OutputDevice * GetDefaultDevice()
void SetOutlineContentVisibilityButton(const SwTextNode *pTextNd)
const BorderLinePrimitive2D *pCandidateB assert(pCandidateA)
virtual void getOutlineNodes(IDocumentOutlineNodes::tSortedOutlineNodeList &orOutlineNodeList) const =0
Class for the page break control window.
void SetHeaderFooterControl(const SwPageFrame *pPageFrame, FrameControlType eType, Point aOffset)
Abstract interface to be implemented by writer FrameControls.
void SetPageBreakControl(const SwPageFrame *pPageFrame)
void SetReadonlyControls(bool bReadonly)
bool IsContentNode() const
void RemoveControlsByType(FrameControlType eType, const SwFrame *pFrame)
void SetOutlineContentVisibilityButtons()
const vcl::Font & GetToolFont() const
Window class for the Writer edit area, this is the one handling mouse and keyboard events and doing t...
SwPageFrame * FindPageFrame()
SymbolType GetSymbol() const
SwContentNode * GetContentNode()
Marks a node in the document model.
const SwOutlineNodes & GetOutLineNds() const
Array of all OutlineNodes.
VclPtr< vcl::Window > mxWindow
virtual void ShowAll(bool bShow) override
A page of the document layout.
void reset(vcl::Window *pBody)
SwTextNode is a paragraph in the document model.
std::map< const SwTextNode *, const SwContentFrame * > m_aTextNodeContentFrameMap
general base class for all free-flowing frames
std::map< FrameControlType, SwFrameControlPtrMap > m_aControls
const SwViewOption * GetViewOptions() const
virtual void dispose() override
void ToggleOutlineContentVisibility(SwNode *pNd, const bool bForceNotVisible=false)
std::vector< const SwTextNode * > tSortedOutlineNodeList
static VclPtr< reference_type > Create(Arg &&...arg)
SwFrameControlPtr GetControl(FrameControlType eType, const SwFrame *pFrame)
bool IsTreatSubOutlineLevelsAsContent() const
ISwFrameControl * mpIFace
reference_type * get() const
if(!pCandidateA->getEnd().equal(pCandidateB->getStart()))
void SetUnfloatTableButton(const SwFlyFrame *pFlyFrame, bool bShow, Point aTopRightPixel=Point())
bool Seek_Entry(SwNode *rP, size_type *pnPos) const
std::map< const SwFrame *, SwFrameControlPtr > SwFrameControlPtrMap
std::shared_ptr< SwFrameControl > SwFrameControlPtr
std::vector< SwNode * >::size_type size_type
SwFrameControlsManager(SwEditWin *pEditWin)
SwFrameControl(const VclPtr< vcl::Window > &pWindow)
void Show(bool bVisible=true, ShowFlags nFlags=ShowFlags::NONE)
Base class of the Writer document model elements.