CWMDockContainer Class Reference

Search Toolkit Book for CWMDockContainer

#include <wm_dock_container.hpp>

Inheritance diagram for CWMDockContainer:

Inheritance graph
[legend]
Collaboration diagram for CWMDockContainer:

Collaboration graph
[legend]
List of all members.

Detailed Description

CWMDockContainer.

Definition at line 52 of file wm_dock_container.hpp.

Public Types

enum  EDockPos {
  eInvalidDockPos = -1, eCenter, eLeft, eRight,
  eTop, eBottom
}

Public Member Functions

 CWMDockContainer ()
 CWMDockContainer (int x, int y, int w, int h, const char *label=0)
virtual ~CWMDockContainer ()
CWMDockContainerPosGetDefInsertPos (EDockPos dp) const
bool IsDocked (IWMClient &client)
bool Minimize (EDockPos dp)
bool IsDockMinimized (EDockPos dp) const
int GetDockSize (EDockPos dp)
void SetDockSize (EDockPos dp, int size)
IWMContainer implementation
virtual void SetManager (IWindowManager *manager)
virtual bool IsOccupied (const IWMPosition &pos) const
virtual bool IsAvailable (const IWMPosition &pos) const
virtual TChildGetChild (const IWMPosition &pos)
virtual IWMPositionGetChildPos (const TChild *child) const
virtual bool Insert (TChild *widget, const IWMPosition &pos, const string &label)
virtual bool Remove (const IWMPosition &pos)
virtual bool Remove (TChild *child)
virtual void RemoveAll ()
virtual bool MoveToPos (TChild *child, const IWMPosition &pos)
virtual int GetChildrenCount () const
virtual void GetChildren (vector< TChild * > &children)
virtual void GetPosToChildMap (TPosToChildMap &map) const
virtual IWMContainerDescrGetDescr () const
IMinMaxClient implementation
virtual bool CanMinimize (IMinMaxClient &client)
virtual bool Minimize (IMinMaxClient &client)
virtual bool RestoreMinimized (IMinMaxClient &client)
CTabControl::IListener implementation
virtual void OnTabSelected (CTabControl &control, int index)
virtual void OnTabClosePressed (CTabControl &control, int index)

Protected Types

typedef bool(CDockSplitter::* TSplitterClientFunc )(IMinMaxClient &)
typedef map< EDockPos, SDockTPosToDock
typedef map< EDockPos, int > TPosToSize

Protected Member Functions

void x_Init ()
SDockx_PrepareDock (EDockPos dock_pos)
void x_DestroyDock (SDock *dock)
void x_UpdateSavedDockSize (EDockPos dp)
bool x_IsDockMinimized (const SDock &dock) const
void x_SetPanelStyleByDockPos (Fl_Widget *widget, EDockPos dp) const
CTabControlExx_GetTabControl (SDock &dock)
void x_UnwrapClientFromTabControl (SDock &dock)
void x_UpdateDockState (SDock &dock, bool dock_minimized)
bool x_FindChild (Fl_Widget *child, SDock *&dock, int &tab_index)
CDockSplitterx_GetDockSplitterByClient (IMinMaxClient &client)
bool x_OnClient (IMinMaxClient &client, TSplitterClientFunc func)

Protected Attributes

IWindowManagerm_WindowManager
TPosToDock m_PosToDock
TPosToSize m_PosToSize
CDockSplitterm_HorzSplitter
CDockSplitterm_VertSplitter
bool m_Maximized

Classes

struct  SDock
 defines a docking position located in a splitter This is just an index structure; ownership of these pointers is managed elsewhere More...


Member Typedef Documentation

typedef map<EDockPos, SDock> CWMDockContainer::TPosToDock [protected]
 

Definition at line 157 of file wm_dock_container.hpp.

typedef map<EDockPos, int> CWMDockContainer::TPosToSize [protected]
 

Definition at line 158 of file wm_dock_container.hpp.

typedef bool(CDockSplitter::* CWMDockContainer::TSplitterClientFunc)(IMinMaxClient &) [protected]
 

Definition at line 152 of file wm_dock_container.hpp.


Member Enumeration Documentation

enum CWMDockContainer::EDockPos
 

Enumerator:
eInvalidDockPos 
eCenter 
eLeft 
eRight 
eTop 
eBottom 

Definition at line 59 of file wm_dock_container.hpp.


Constructor & Destructor Documentation

CWMDockContainer::CWMDockContainer  ) 
 

Definition at line 115 of file wm_dock_container.cpp.

References x_Init().

CWMDockContainer::CWMDockContainer int  x,
int  y,
int  w,
int  h,
const char *  label = 0
 

Definition at line 126 of file wm_dock_container.cpp.

References x_Init().

CWMDockContainer::~CWMDockContainer  )  [virtual]
 

Definition at line 172 of file wm_dock_container.cpp.


Member Function Documentation

bool CWMDockContainer::CanMinimize IMinMaxClient client  )  [virtual]
 

Implements IMinMaxContainer.

Definition at line 751 of file wm_dock_container.cpp.

References eCenter, IMinMaxClient::eMinimized, IMinMaxClient::GetState(), and x_FindChild().

Fl_Widget * CWMDockContainer::GetChild const IWMPosition pos  )  [virtual]
 

Implements IWMContainer.

Definition at line 230 of file wm_dock_container.cpp.

References map_checker< Container >::end(), map_checker< Container >::find(), CWMDockContainerPos::GetDockPos(), CWMDockContainerPos::GetTabIndex(), m_PosToDock, and pos.

IWMPosition * CWMDockContainer::GetChildPos const TChild child  )  const [virtual]
 

Definition at line 251 of file wm_dock_container.cpp.

References ITERATE, CWMDockContainer::SDock::m_Pos, m_PosToDock, and CWMDockContainer::SDock::m_Widgets.

virtual void CWMDockContainer::GetChildren vector< TChild * > &  children  )  [virtual]
 

Implements IWMContainer.

int CWMDockContainer::GetChildrenCount  )  const [virtual]
 

Implements IWMContainer.

Definition at line 267 of file wm_dock_container.cpp.

References ITERATE, and m_PosToDock.

CWMDockContainerPos * CWMDockContainer::GetDefInsertPos EDockPos  dp  )  const
 

Definition at line 766 of file wm_dock_container.cpp.

References eCenter, eInvalidDockPos, map_checker< Container >::end(), map_checker< Container >::find(), and m_PosToDock.

Referenced by CWindowManager::AddClientToDock(), and CWindowManager::x_MoveToDockPos().

IWMContainerDescr * CWMDockContainer::GetDescr  )  const [virtual]
 

Implements IWMContainer.

Definition at line 706 of file wm_dock_container.cpp.

int CWMDockContainer::GetDockSize EDockPos  dp  ) 
 

Definition at line 881 of file wm_dock_container.cpp.

References map_checker< Container >::end(), map_checker< Container >::find(), m_PosToSize, and x_UpdateSavedDockSize().

Referenced by CWindowManager::SaveSettings().

void CWMDockContainer::GetPosToChildMap TPosToChildMap map  )  const [virtual]
 

Definition at line 289 of file wm_dock_container.cpp.

References ITERATE, and m_PosToDock.

virtual bool CWMDockContainer::Insert TChild widget,
const IWMPosition pos,
const string &  label
[virtual]
 

Referenced by CWindowManager::x_CreateRootContainers(), and CWindowManager::x_RestoreMaximized().

bool CWMDockContainer::IsAvailable const IWMPosition pos  )  const [virtual]
 

Implements IWMContainer.

Definition at line 207 of file wm_dock_container.cpp.

References eCenter, eInvalidDockPos, map_checker< Container >::end(), map_checker< Container >::find(), CWMDockContainerPos::GetDockPos(), CWMDockContainerPos::GetTabIndex(), m_PosToDock, and pos.

bool CWMDockContainer::IsDocked IWMClient client  ) 
 

Definition at line 780 of file wm_dock_container.cpp.

References eCenter, eInvalidDockPos, IWMClient::GetWidget(), ITERATE, CWMDockContainer::SDock::m_Pos, m_PosToDock, and CWMDockContainer::SDock::m_Widgets.

bool CWMDockContainer::IsDockMinimized EDockPos  dp  )  const
 

Definition at line 857 of file wm_dock_container.cpp.

References eCenter, eInvalidDockPos, map_checker< Container >::end(), map_checker< Container >::find(), m_PosToDock, and x_IsDockMinimized().

Referenced by CWindowManager::ActivateClients(), and CWindowManager::SaveSettings().

bool CWMDockContainer::IsOccupied const IWMPosition pos  )  const [virtual]
 

Implements IWMContainer.

Definition at line 183 of file wm_dock_container.cpp.

References eCenter, eInvalidDockPos, map_checker< Container >::end(), map_checker< Container >::find(), CWMDockContainerPos::GetDockPos(), CWMDockContainerPos::GetTabIndex(), m_PosToDock, and pos.

Referenced by Remove().

bool CWMDockContainer::Minimize EDockPos  dp  ) 
 

Definition at line 830 of file wm_dock_container.cpp.

References eLeft, map_checker< Container >::end(), eRight, map_checker< Container >::find(), CSplitter::GetCell(), m_HorzSplitter, m_PosToDock, and m_VertSplitter.

bool CWMDockContainer::Minimize IMinMaxClient client  )  [virtual]
 

Implements IMinMaxContainer.

Definition at line 797 of file wm_dock_container.cpp.

References CSplitterEx::Minimize(), and x_OnClient().

Referenced by x_UpdateDockState().

virtual bool CWMDockContainer::MoveToPos TChild child,
const IWMPosition pos
[virtual]
 

void CWMDockContainer::OnTabClosePressed CTabControl control,
int  index
[virtual]
 

do this asyncronously

Implements CTabControl::IListener.

Definition at line 817 of file wm_dock_container.cpp.

References _ASSERT, eCmdCPanelClose, CTabControl::GetTab(), m_WindowManager, and IWindowManager::OnCaptionPanelCommand().

void CWMDockContainer::OnTabSelected CTabControl control,
int  index
[virtual]
 

Implements CTabControl::IListener.

Definition at line 811 of file wm_dock_container.cpp.

bool CWMDockContainer::Remove TChild child  )  [virtual]
 

Definition at line 672 of file wm_dock_container.cpp.

References m_PosToDock, CWMDockContainer::SDock::m_Widgets, NON_CONST_ITERATE, pos, and Remove().

bool CWMDockContainer::Remove const IWMPosition pos  )  [virtual]
 

Implements IWMContainer.

Definition at line 564 of file wm_dock_container.cpp.

References _ASSERT, eCenter, map_checker< Container >::end(), map_checker< Container >::find(), CWMDockContainerPos::GetDockPos(), CWMDockContainerPos::GetTabIndex(), IsOccupied(), m_PosToDock, pos, CTabControl::RemoveTab(), x_IsDockMinimized(), x_UnwrapClientFromTabControl(), and x_UpdateDockState().

Referenced by Remove(), and CWindowManager::x_Maximize().

void CWMDockContainer::RemoveAll  )  [virtual]
 

Implements IWMContainer.

Definition at line 689 of file wm_dock_container.cpp.

References _ASSERT.

bool CWMDockContainer::RestoreMinimized IMinMaxClient client  )  [virtual]
 

Implements IMinMaxContainer.

Definition at line 804 of file wm_dock_container.cpp.

References CSplitterEx::RestoreMinimized(), and x_OnClient().

Referenced by CWindowManager::ActivateClients().

void CWMDockContainer::SetDockSize EDockPos  dp,
int  size
 

Definition at line 890 of file wm_dock_container.cpp.

References eBottom, eLeft, eRight, eTop, and m_PosToSize.

Referenced by CWindowManager::LoadSettings().

void CWMDockContainer::SetManager IWindowManager manager  )  [virtual]
 

Implements IWMContainer.

Definition at line 177 of file wm_dock_container.cpp.

References m_WindowManager.

Referenced by CWindowManager::x_CreateRootContainers().

void CWMDockContainer::x_DestroyDock SDock dock  )  [protected]
 

Definition at line 615 of file wm_dock_container.cpp.

References _ASSERT, eLeft, map_checker< Container >::erase(), eRight, eTop, CWMDockContainer::SDock::m_Column, m_HorzSplitter, CWMDockContainer::SDock::m_Pos, m_PosToDock, CWMDockContainer::SDock::m_Row, CWMDockContainer::SDock::m_Splitter, m_VertSplitter, NON_CONST_ITERATE, CDockSplitter::RemoveCell(), and x_UpdateSavedDockSize().

bool CWMDockContainer::x_FindChild Fl_Widget *  child,
SDock *&  dock,
int &  tab_index
[protected]
 

Definition at line 475 of file wm_dock_container.cpp.

References m_PosToDock, and NON_CONST_ITERATE.

Referenced by CanMinimize(), x_GetDockSplitterByClient(), and x_OnClient().

CDockSplitter * CWMDockContainer::x_GetDockSplitterByClient IMinMaxClient client  )  [protected]
 

Definition at line 713 of file wm_dock_container.cpp.

References x_FindChild().

Referenced by x_OnClient().

CTabControlEx * CWMDockContainer::x_GetTabControl SDock dock  )  [protected]
 

Definition at line 413 of file wm_dock_container.cpp.

References CSplitter::GetCell(), CWMDockContainer::SDock::m_Column, CWMDockContainer::SDock::m_Row, CWMDockContainer::SDock::m_Splitter, and CWMDockContainer::SDock::m_Widgets.

void CWMDockContainer::x_Init  )  [protected]
 

Definition at line 137 of file wm_dock_container.cpp.

References CDockSplitter::Create(), eBottom, eCenter, CSplitter::eHorizontal, eLeft, eRight, eTop, CSplitter::eVertical, map_checker< Container >::insert(), CSplitter::InsertToCell(), CWMDockContainer::SDock::m_Column, m_HorzSplitter, m_PosToDock, m_PosToSize, CWMDockContainer::SDock::m_Row, CWMDockContainer::SDock::m_Splitter, m_VertSplitter, CFlCurrentGuard::Release(), and CDockSplitter::SetResizableCell().

Referenced by CWMDockContainer().

bool CWMDockContainer::x_IsDockMinimized const SDock dock  )  const [protected]
 

Definition at line 870 of file wm_dock_container.cpp.

References eBottom, eLeft, eRight, eTop, CDockSplitter::IsMinimized(), CWMDockContainer::SDock::m_Column, m_HorzSplitter, CWMDockContainer::SDock::m_Pos, CWMDockContainer::SDock::m_Row, and m_VertSplitter.

Referenced by IsDockMinimized(), and Remove().

bool CWMDockContainer::x_OnClient IMinMaxClient client,
TSplitterClientFunc  func
[protected]
 

Definition at line 726 of file wm_dock_container.cpp.

References _ASSERT, CSplitter::GetCell(), CWMDockContainer::SDock::m_Column, CWMDockContainer::SDock::m_Row, CWMDockContainer::SDock::m_Widgets, x_FindChild(), and x_GetDockSplitterByClient().

Referenced by Minimize(), and RestoreMinimized().

CWMDockContainer::SDock * CWMDockContainer::x_PrepareDock EDockPos  dock_pos  )  [protected]
 

Definition at line 496 of file wm_dock_container.cpp.

References map_checker< Container >::end(), map_checker< Container >::find(), map_checker< Container >::insert(), m_PosToDock, and m_PosToSize.

void CWMDockContainer::x_SetPanelStyleByDockPos Fl_Widget *  widget,
EDockPos  dp
const [protected]
 

Definition at line 391 of file wm_dock_container.cpp.

References eBottom, CWMCaptionPanel::eHorzDockStyle, eLeft, eRight, eTop, CWMCaptionPanel::eVertDockStyle, and CWMCaptionPanel::SetStyle().

void CWMDockContainer::x_UnwrapClientFromTabControl SDock dock  )  [protected]
 

Definition at line 453 of file wm_dock_container.cpp.

References _ASSERT, CSplitter::GetCell(), CTabControl::GetTab(), CTabControl::GetTabsCount(), CSplitter::InsertToCell(), CWMDockContainer::SDock::m_Column, CWMDockContainer::SDock::m_Row, CWMDockContainer::SDock::m_Splitter, CWMDockContainer::SDock::m_Widgets, CTabControl::RemoveAllTabs(), and CSplitter::RemoveFromCell().

Referenced by Remove().

void CWMDockContainer::x_UpdateDockState SDock dock,
bool  dock_minimized
[protected]
 

Definition at line 364 of file wm_dock_container.cpp.

References _ASSERT, IMinMaxClient::eMinimized, CSplitter::GetCell(), IMinMaxClient::GetStateBySize(), CWMDockContainer::SDock::m_Column, CWMDockContainer::SDock::m_Pos, CWMDockContainer::SDock::m_Row, CWMDockContainer::SDock::m_Splitter, CWMDockContainer::SDock::m_Widgets, Minimize(), and size.

Referenced by Remove().

void CWMDockContainer::x_UpdateSavedDockSize EDockPos  dp  )  [protected]
 

Definition at line 652 of file wm_dock_container.cpp.

References eLeft, map_checker< Container >::end(), eRight, map_checker< Container >::find(), CDockSplitter::GetNormalSize(), m_HorzSplitter, m_PosToDock, m_PosToSize, and m_VertSplitter.

Referenced by GetDockSize(), and x_DestroyDock().


Member Data Documentation

CDockSplitter* CWMDockContainer::m_HorzSplitter [protected]
 

Definition at line 164 of file wm_dock_container.hpp.

Referenced by Minimize(), x_DestroyDock(), x_Init(), x_IsDockMinimized(), and x_UpdateSavedDockSize().

bool CWMDockContainer::m_Maximized [protected]
 

Definition at line 167 of file wm_dock_container.hpp.

TPosToDock CWMDockContainer::m_PosToDock [protected]
 

Definition at line 161 of file wm_dock_container.hpp.

Referenced by GetChild(), GetChildPos(), GetChildrenCount(), GetDefInsertPos(), GetPosToChildMap(), IsAvailable(), IsDocked(), IsDockMinimized(), IsOccupied(), Minimize(), Remove(), x_DestroyDock(), x_FindChild(), x_Init(), x_PrepareDock(), and x_UpdateSavedDockSize().

TPosToSize CWMDockContainer::m_PosToSize [protected]
 

Definition at line 162 of file wm_dock_container.hpp.

Referenced by GetDockSize(), SetDockSize(), x_Init(), x_PrepareDock(), and x_UpdateSavedDockSize().

CDockSplitter* CWMDockContainer::m_VertSplitter [protected]
 

Definition at line 165 of file wm_dock_container.hpp.

Referenced by Minimize(), x_DestroyDock(), x_Init(), x_IsDockMinimized(), and x_UpdateSavedDockSize().

IWindowManager* CWMDockContainer::m_WindowManager [protected]
 

Definition at line 160 of file wm_dock_container.hpp.

Referenced by OnTabClosePressed(), and SetManager().


The documentation for this class was generated from the following files:
Generated on Mon Nov 9 14:49:38 2009 for NCBI C++ ToolKit by  doxygen 1.4.6
Modified on Mon Nov 09 15:48:36 2009 by modify_doxy.py rev. 173732