LibreOffice Module sw (master)  1
FrameControlsManager.hxx
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  */
9 #ifndef INCLUDED_SW_SOURCE_UIBASE_INC_FRAMECONTROLSMANAGER_HXX
10 #define INCLUDED_SW_SOURCE_UIBASE_INC_FRAMECONTROLSMANAGER_HXX
11 
12 #include "FrameControl.hxx"
13 
14 #include <tools/gen.hxx>
15 
16 #include <map>
17 #include <memory>
18 
19 class SwPageFrame;
20 class SwEditWin;
21 class SwContentFrame;
22 class SwTextNode;
23 
24 typedef std::shared_ptr< SwFrameControl > SwFrameControlPtr;
25 
26 typedef std::map<const SwFrame*, SwFrameControlPtr> SwFrameControlPtrMap;
27 
31 {
32  private:
34  std::map< FrameControlType, SwFrameControlPtrMap > m_aControls;
35  std::map<const SwTextNode*, const SwContentFrame*> m_aTextNodeContentFrameMap;
36 
37  public:
38  SwFrameControlsManager( SwEditWin* pEditWin );
40  void dispose();
41 
42  SwFrameControlPtr GetControl( FrameControlType eType, const SwFrame* pFrame );
43  void RemoveControls( const SwFrame* pFrame );
44  void RemoveControlsByType( FrameControlType eType, const SwFrame* pFrame );
45  void HideControls( FrameControlType eType );
46  void SetReadonlyControls( bool bReadonly );
47 
48  // Helper methods
49  void SetHeaderFooterControl( const SwPageFrame* pPageFrame, FrameControlType eType, Point aOffset );
50  void SetPageBreakControl( const SwPageFrame* pPageFrame );
51  void SetUnfloatTableButton( const SwFlyFrame* pFlyFrame, bool bShow, Point aTopRightPixel = Point() );
52  void SetOutlineContentVisibilityButton(const SwTextNode* pTextNd);
54 };
55 
56 #endif
57 
58 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Base class of the Writer layout elements.
Definition: frame.hxx:297
VclPtr< SwEditWin > m_pEditWin
void HideControls(FrameControlType eType)
void RemoveControls(const SwFrame *pFrame)
void SetOutlineContentVisibilityButton(const SwTextNode *pTextNd)
void SetHeaderFooterControl(const SwPageFrame *pPageFrame, FrameControlType eType, Point aOffset)
void SetPageBreakControl(const SwPageFrame *pPageFrame)
void SetReadonlyControls(bool bReadonly)
void RemoveControlsByType(FrameControlType eType, const SwFrame *pFrame)
Window class for the Writer edit area, this is the one handling mouse and keyboard events and doing t...
Definition: edtwin.hxx:58
A page of the document layout.
Definition: pagefrm.hxx:41
FrameControlType
Definition: swtypes.hxx:236
SwTextNode is a paragraph in the document model.
Definition: ndtxt.hxx:80
std::map< const SwTextNode *, const SwContentFrame * > m_aTextNodeContentFrameMap
general base class for all free-flowing frames
Definition: flyfrm.hxx:60
std::map< FrameControlType, SwFrameControlPtrMap > m_aControls
SwFrameControlPtr GetControl(FrameControlType eType, const SwFrame *pFrame)
void SetUnfloatTableButton(const SwFlyFrame *pFlyFrame, bool bShow, Point aTopRightPixel=Point())
A container for the Header/Footer, or PageBreak controls.
std::map< const SwFrame *, SwFrameControlPtr > SwFrameControlPtrMap
std::shared_ptr< SwFrameControl > SwFrameControlPtr
SwFrameControlsManager(SwEditWin *pEditWin)