CSplitter Class Reference
[Simple Extensions and Wrappers Wround FLTK]

Search Toolkit Book for CSplitter

#include <splitter.hpp>

Inheritance diagram for CSplitter:

Inheritance graph
[legend]
Collaboration diagram for CSplitter:

Collaboration graph
[legend]
List of all members.

Detailed Description

CSplitter - container with resizable separators.

CSplitter arranges child windows in to one- or two-dimensional array. Cells in CSplitter are divided by separators that can be moved by the mouse. Every cell in CSplitter can be occupied by a single child window and every window can occupy only one cell.

Definition at line 60 of file splitter.hpp.

Public Types

typedef vector< int > TPosVector
typedef vector< int > TSizeVector
enum  EMode { eVertical, eHorizontal, eGrid }
 EMode - splitter orientation. More...

Public Member Functions

 CSplitter (int x, int y, int w, int h, const char *label=0)
 CSplitter ()
virtual ~CSplitter ()
EMode GetMode () const
int GetSeparatorSize () const
virtual void Create (EMode mode)
 Creates a splitter with a single cell.
virtual void Create (EMode mode, const TPosVector &sizes)
 Creates a splitter with cells defined by "sizes".
virtual void Create (EMode mode, const int ar_size[])
 Creates a splitter with cells defined by "sizes".
virtual void Create (EMode mode, const TPosVector &widths, const TPosVector &heights)
 Creates splitter, "widths" and "height" define number and sizes of cells.
virtual void Create (EMode mode, const int ar_w[], const int ar_h[])
 Creates splitter, "ar_w" and "ar_h" are arrays terminated by -1.
virtual void Create (int col_n, int row_n)
int GetColumnsCount () const
int GetRowsCount () const
void GetWidths (TPosVector &widths) const
void SetWidths (const TPosVector &widths)
void GetHeights (TPosVector &heights) const
void SetHeights (const TPosVector &heights)
void DistributeEvenly (bool b_x, bool b_y)
void Layout ()
bool IsValidCell (int col, int row) const
 returns "true" if cell specified by (col, row) exists in splitter
int GetColumnWidth (int col) const
int GetRowHeight (int row) const
bool InsertToCell (Fl_Widget *w, int col, int row)
 If cell [col, row] exists and vacant - adds widget to the container.
bool RemoveFromCell (int col, int row)
bool Remove (Fl_Widget *w)
void RemoveAll ()
Fl_Widget * GetCell (int col, int row)
const Fl_Widget * GetCell (int col, int row) const
bool Find (const Fl_Widget *w, int &col, int &row) const
virtual void x_PreserveNormalSize (bool preserve)
Fl_Group functions
Adds widgets to the next available cell

void add (Fl_Widget *w)
 adds a child widget "w" to first vacant cell.
void add (Fl_Widget &w)
void remove (Fl_Widget &w)
virtual void show ()
virtual void draw ()
virtual void resize (int new_x, int new_y, int new_w, int new_h)
virtual int handle (int)

Protected Types

typedef vector< Fl_Widget * > TCells

Protected Member Functions

virtual void draw_children ()
virtual void x_DrawSeparator (int x, int y, int w, int h, Fl_Color color)
void x_SplitPositionsToSizes (const TPosVector &split_positions, int total_size, TPosVector &sizes)
void x_SizesToSplitPositions (const TPosVector &sizes, TPosVector &split_positions)
void x_Init ()
void x_Create (EMode mode, const TPosVector &widths, const TPosVector &heights)
int x_GetCellIndex (int i_x, int i_y) const
int x_GetColumn (int i_cell) const
int x_GetRow (int i_cell) const
int x_GetCellIndex (Fl_Widget *widget) const
int x_GetLeft (int i_x) const
int x_GetRight (int i_x) const
int x_GetWidth (int i_x) const
int x_GetTop (int i_y) const
int x_GetBottom (int i_y) const
int x_GetHeight (int i_y) const
bool x_Remove (int index)
void x_Clear ()
void x_ResizeToCell (int i_cell)
void x_ResizeToCell (int i_x, int i_y)
int x_HandleMouseMove ()
int x_HandleMousePush ()
int x_HandleMouseDrag ()
int x_HandleMouseRelease ()
int x_HandleKeyEvent (int event)
virtual void x_OnShowPopupMenu ()
void x_DoDragSeparator (bool b_final)
int x_HitTestSeparator (int z, TPosVector &vpos)
 returns Separator index if hit or -1
void x_HitTest (int z, TPosVector &vpos, int &i_cell, int &i_sep)
bool x_IsDragging ()
void x_InitSeparatorDrag (int i_sep_x, int i_sep_y)
void x_DoDistributeEvenly (TPosVector &vSplitPos, int size)
virtual void x_Resize (int new_x, int new_y, int new_w, int new_h, bool b_size_changes, bool b_pos_changed)
void x_DoResize (TPosVector &split_positions, TSizeVector &norm_sizes, TPosVector &min_sizes, vector< bool > &min_cells, int size, int new_size)
void x_MoveSeparator (int i_sep, int new_pos, TPosVector &split_positions, TPosVector &min_sizes, int min_pos, int max_pos, int size, int &start, int &stop)
virtual void x_UpdateClientsState ()
void x_GetMinMaxStates (int &min_cols_n, int &min_rows_n, const IMinMaxClient *maximized_child) const
void x_GetMinimized (vector< bool > &min_cols, vector< bool > &min_rows) const
void x_CalculateMinSizes (TPosVector &min_widths, TPosVector &min_heights) const
void x_UpdateRegion (int start_x, int stop_x, int start_y, int stop_y)
void x_NewSplit (TPosVector &split_positions, TSizeVector &v_norm_size, int size)
void x_Deprecated () const
deprecated Fl_Group overridable
void init_sizes ()
void insert (Fl_Widget &w, int n)
const Fl_Widget ** array () const
Fl_Widget * child (int n) const
int children () const
int find (const Fl_Widget *w) const
int find (const Fl_Widget &w) const
void resizable (Fl_Widget *box)
void resizable (Fl_Widget &box)
Fl_Widget * resizable () const
Fl_Group & add_resizable (Fl_Widget &box)

Protected Attributes

EMode m_Mode
TPosVector m_vSplitPosX
TPosVector m_vSplitPosY
int m_SepSize
TSizeVector m_vNormSizeX
TSizeVector m_vNormSizeY
TCells m_Cells
int m_MouseDownX
 members used for event handling
int m_MouseDownY
int m_StartPosX
int m_StartPosY
int m_iDragSepX
int m_iDragSepY
TPosVector m_MinWidths
TPosVector m_MinHeights
int m_MinSepPosX
int m_MaxSepPosX
int m_MinSepPosY
int m_MaxSepPosY
CGUIEvent m_Event
int m_HighlightCell


Member Typedef Documentation

typedef vector<Fl_Widget*> CSplitter::TCells [protected]
 

Definition at line 241 of file splitter.hpp.

typedef vector<int> CSplitter::TPosVector
 

Definition at line 63 of file splitter.hpp.

typedef vector<int> CSplitter::TSizeVector
 

Definition at line 64 of file splitter.hpp.


Member Enumeration Documentation

enum CSplitter::EMode
 

EMode - splitter orientation.

Enumerator:
eVertical 
eHorizontal  vertical space is splitted
eGrid  cells are separated with in both directions

Definition at line 67 of file splitter.hpp.


Constructor & Destructor Documentation

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

Definition at line 64 of file splitter.cpp.

References x_Init().

CSplitter::CSplitter  ) 
 

Definition at line 71 of file splitter.cpp.

References x_Init().

CSplitter::~CSplitter  )  [virtual]
 

Definition at line 100 of file splitter.cpp.


Member Function Documentation

void CSplitter::add Fl_Widget &  w  ) 
 

Definition at line 469 of file splitter.cpp.

References add().

void CSplitter::add Fl_Widget *  widget  ) 
 

adds a child widget "w" to first vacant cell.

If "w" already a child it is removed and added again to a new position. If there is no cells available new row/column is created

Definition at line 430 of file splitter.cpp.

References m_Cells.

Referenced by add(), and CSerialBrowser::CSerialBrowser().

Fl_Group & CSplitter::add_resizable Fl_Widget &  box  )  [protected]
 

Definition at line 697 of file splitter.cpp.

References x_Deprecated().

const Fl_Widget ** CSplitter::array  )  const [protected]
 

Definition at line 643 of file splitter.cpp.

References x_Deprecated().

Fl_Widget * CSplitter::child int  n  )  const [protected]
 

Definition at line 650 of file splitter.cpp.

References x_Deprecated().

Referenced by CWMSplitter::GetChildren(), and CWMSplitter::GetPosToChildMap().

int CSplitter::children  )  const [protected]
 

Definition at line 657 of file splitter.cpp.

References x_Deprecated().

void CSplitter::Create int  col_n,
int  row_n
[virtual]
 

Definition at line 181 of file splitter.cpp.

References DistributeEvenly(), eGrid, eHorizontal, eVertical, and x_Create().

void CSplitter::Create EMode  mode,
const int  ar_w[],
const int  ar_h[]
[virtual]
 

Creates splitter, "ar_w" and "ar_h" are arrays terminated by -1.

Definition at line 157 of file splitter.cpp.

References kMaxCells.

void CSplitter::Create EMode  mode,
const TPosVector widths,
const TPosVector heights
[virtual]
 

Creates splitter, "widths" and "height" define number and sizes of cells.

Definition at line 151 of file splitter.cpp.

References x_Create().

void CSplitter::Create EMode  mode,
const int  ar_size[]
[virtual]
 

Creates a splitter with cells defined by "sizes".

If mode == eGrid then ar_sizes will be used as both width and heights. "ar_sizes" is -1 terminated array.

Definition at line 136 of file splitter.cpp.

References kMaxCells.

void CSplitter::Create EMode  mode,
const TPosVector sizes
[virtual]
 

Creates a splitter with cells defined by "sizes".

If mode == eGrid then size will be used as both width and heights

Definition at line 125 of file splitter.cpp.

References eGrid, eHorizontal, eVertical, x_Clear(), and x_Create().

void CSplitter::Create EMode  mode  )  [virtual]
 

Creates a splitter with a single cell.

Definition at line 117 of file splitter.cpp.

References m_Mode, and x_Clear().

Referenced by CWMSplitterDescr::CreateInstance(), CSerialBrowser::CSerialBrowser(), CDataMiningView::x_Init(), and CWindowManager::x_InsertSplitter().

void CSplitter::DistributeEvenly bool  b_x,
bool  b_y
 

Definition at line 1119 of file splitter.cpp.

References m_Cells, m_vNormSizeX, m_vNormSizeY, m_vSplitPosX, m_vSplitPosY, x_DoDistributeEvenly(), x_GetColumn(), x_GetRow(), x_ResizeToCell(), and x_UpdateClientsState().

Referenced by Create(), and CWMSplitter::OnDistributeEvenly().

void CSplitter::draw  )  [virtual]
 

Definition at line 493 of file splitter.cpp.

References color, eSysColor_Control, GetColumnsCount(), GetRowsCount(), CWidgetSettings::GetSystemColor(), m_SepSize, x_DrawSeparator(), x_GetBottom(), x_GetLeft(), x_GetRight(), and x_GetTop().

void CSplitter::draw_children  )  [protected, virtual]
 

Definition at line 571 of file splitter.cpp.

int CSplitter::find const Fl_Widget &  w  )  const [protected]
 

Definition at line 671 of file splitter.cpp.

References x_Deprecated().

int CSplitter::find const Fl_Widget *  w  )  const [protected]
 

Definition at line 664 of file splitter.cpp.

References x_Deprecated().

bool CSplitter::Find const Fl_Widget *  w,
int &  col,
int &  row
const
 

Definition at line 412 of file splitter.cpp.

References m_Cells, x_GetColumn(), and x_GetRow().

Referenced by CWMSplitter::GetChildPos(), CSplitterEx::Minimize(), CSplitterEx::x_RestoreMaximized(), and CSplitterEx::x_RestoreMinimized().

const Fl_Widget * CSplitter::GetCell int  col,
int  row
const
 

Definition at line 716 of file splitter.cpp.

References _ASSERT, IsValidCell(), m_Cells, and x_GetCellIndex().

Fl_Widget * CSplitter::GetCell int  col,
int  row
 

Definition at line 704 of file splitter.cpp.

References _ASSERT, IsValidCell(), m_Cells, and x_GetCellIndex().

Referenced by CWMSplitter::GetChild(), CWMSplitter::GetPosToChildMap(), CWMSplitter::IsAvailable(), CWMSplitter::IsOccupied(), CWMDockContainer::Minimize(), CSplitterEx::Minimize(), x_CalculateMinSizes(), x_GetMinimized(), x_GetMinMaxStates(), CDockSplitter::x_GetSizesAndWidgets(), CWMDockContainer::x_GetTabControl(), CWMDockContainer::x_OnClient(), x_ResizeToCell(), CSplitterEx::x_RestoreMaximized(), CSplitterEx::x_RestoreMinimized(), CWMDockContainer::x_UnwrapClientFromTabControl(), CDockSplitter::x_UpdateClientsState(), x_UpdateClientsState(), CWMDockContainer::x_UpdateDockState(), and CSplitterEx::x_UpdateNormalSizes().

int CSplitter::GetColumnsCount  )  const
 

Definition at line 230 of file splitter.cpp.

References m_vSplitPosX.

Referenced by CSplitterEx::CanMinimize(), draw(), CSplitterEx::GetMinimalSize(), CDockSplitter::GetNormalSize(), CWMSplitter::GetPosToChildMap(), CSplitterEx::GetState(), InsertToCell(), CDockSplitter::IsMinimized(), CSplitterEx::Minimize(), CDockSplitter::SetResizableCell(), x_CalculateMinSizes(), x_GetCellIndex(), x_GetMinimized(), x_GetMinMaxStates(), CDockSplitter::x_GetSizesAndWidgets(), x_InitSeparatorDrag(), CSplitterEx::x_RestoreMaximized(), CSplitterEx::x_RestoreMinimized(), CDockSplitter::x_UpdateClientsState(), x_UpdateClientsState(), and CSplitterEx::x_UpdateNormalSizes().

int CSplitter::GetColumnWidth int  col  )  const [inline]
 

Definition at line 118 of file splitter.hpp.

References x_GetWidth().

void CSplitter::GetHeights TPosVector heights  )  const
 

Definition at line 271 of file splitter.cpp.

References ITERATE, m_SepSize, m_vSplitPosY, and pos.

Referenced by CWMSplitterDescr::CWMSplitterDescr(), x_GetMinimized(), x_GetMinMaxStates(), CDataMiningView::x_SetFromHeight(), CSplitterEx::x_ToMaximizedState(), CDockSplitter::x_UpdateClientsState(), x_UpdateClientsState(), and CSplitterEx::x_UpdateNormalSizes().

CSplitter::EMode CSplitter::GetMode  )  const
 

Definition at line 105 of file splitter.cpp.

References m_Mode.

Referenced by CWMSplitterDescr::CWMSplitterDescr().

int CSplitter::GetRowHeight int  row  )  const [inline]
 

Definition at line 119 of file splitter.hpp.

References x_GetHeight().

int CSplitter::GetRowsCount  )  const
 

Definition at line 235 of file splitter.cpp.

References m_vSplitPosY.

Referenced by CSplitterEx::CanMinimize(), draw(), CSplitterEx::GetMinimalSize(), CDockSplitter::GetNormalSize(), CWMSplitter::GetPosToChildMap(), CSplitterEx::GetState(), InsertToCell(), CDockSplitter::IsMinimized(), CSplitterEx::Minimize(), CDockSplitter::SetResizableCell(), x_CalculateMinSizes(), x_GetMinimized(), x_GetMinMaxStates(), x_InitSeparatorDrag(), CSplitterEx::x_RestoreMaximized(), CSplitterEx::x_RestoreMinimized(), CDockSplitter::x_UpdateClientsState(), x_UpdateClientsState(), and CSplitterEx::x_UpdateNormalSizes().

int CSplitter::GetSeparatorSize  )  const
 

Definition at line 111 of file splitter.cpp.

References m_SepSize.

void CSplitter::GetWidths TPosVector widths  )  const
 

Definition at line 241 of file splitter.cpp.

References ITERATE, m_SepSize, m_vSplitPosX, and pos.

Referenced by CWMSplitterDescr::CWMSplitterDescr(), x_GetMinimized(), x_GetMinMaxStates(), CDockSplitter::x_GetSizesAndWidgets(), CSplitterEx::x_ToMaximizedState(), CDockSplitter::x_UpdateClientsState(), x_UpdateClientsState(), and CSplitterEx::x_UpdateNormalSizes().

int CSplitter::handle int   )  [virtual]
 

Definition at line 852 of file splitter.cpp.

References m_Cells, m_Event, NON_CONST_ITERATE, CGUIEvent::OnFLTKEvent(), x_HandleKeyEvent(), x_HandleMouseDrag(), x_HandleMouseMove(), x_HandleMousePush(), and x_HandleMouseRelease().

void CSplitter::init_sizes  )  [protected]
 

Definition at line 631 of file splitter.cpp.

References x_Deprecated().

void CSplitter::insert Fl_Widget &  w,
int  n
[protected]
 

Definition at line 637 of file splitter.cpp.

References x_Deprecated().

bool CSplitter::InsertToCell Fl_Widget *  w,
int  col,
int  row
 

If cell [col, row] exists and vacant - adds widget to the container.

Returns "true" if widget has been added.

Definition at line 308 of file splitter.cpp.

References GetColumnsCount(), GetRowsCount(), m_Cells, x_GetCellIndex(), and x_ResizeToCell().

Referenced by CDataMiningView::x_CreateForm(), CWMDockContainer::x_Init(), CDataMiningView::x_Init(), CDockSplitter::x_SetSizesAndWidgets(), and CWMDockContainer::x_UnwrapClientFromTabControl().

bool CSplitter::IsValidCell int  col,
int  row
const
 

returns "true" if cell specified by (col, row) exists in splitter

Definition at line 301 of file splitter.cpp.

References m_vSplitPosX, and m_vSplitPosY.

Referenced by GetCell(), CWMSplitter::GetChild(), CWMSplitter::IsAvailable(), CWMSplitter::IsOccupied(), and x_GetCellIndex().

void CSplitter::Layout  ) 
 

Definition at line 588 of file splitter.cpp.

References x_Resize().

Referenced by CDataMiningView::x_SetFromHeight().

void CSplitter::remove Fl_Widget &  w  ) 
 

Definition at line 474 of file splitter.cpp.

References m_Cells, and x_Remove().

bool CSplitter::Remove Fl_Widget *  w  ) 
 

Definition at line 346 of file splitter.cpp.

References m_Cells, and x_Remove().

Referenced by CWMSplitter::Remove(), and CDataMiningView::x_DestroyForm().

void CSplitter::RemoveAll  ) 
 

Reimplemented in CWMSplitter.

Definition at line 399 of file splitter.cpp.

References m_Cells.

Referenced by CDockSplitter::InsertCell(), CWMSplitter::RemoveAll(), and CDockSplitter::RemoveCell().

bool CSplitter::RemoveFromCell int  col,
int  row
 

Definition at line 339 of file splitter.cpp.

References x_GetCellIndex(), and x_Remove().

Referenced by CWMSplitter::Remove(), and CWMDockContainer::x_UnwrapClientFromTabControl().

Fl_Widget * CSplitter::resizable  )  const [protected]
 

Definition at line 690 of file splitter.cpp.

References x_Deprecated().

Referenced by CDockSplitter::InsertCell().

void CSplitter::resizable Fl_Widget &  box  )  [protected]
 

Definition at line 684 of file splitter.cpp.

References x_Deprecated().

void CSplitter::resizable Fl_Widget *  box  )  [protected]
 

Definition at line 678 of file splitter.cpp.

References x_Deprecated().

void CSplitter::resize int  new_x,
int  new_y,
int  new_w,
int  new_h
[virtual]
 

Definition at line 595 of file splitter.cpp.

References x_Resize().

void CSplitter::SetHeights const TPosVector heights  ) 
 

Definition at line 284 of file splitter.cpp.

References m_SepSize, m_vSplitPosY, and pos.

Referenced by CDataMiningView::x_SetFromHeight().

void CSplitter::SetWidths const TPosVector widths  ) 
 

Definition at line 254 of file splitter.cpp.

References m_SepSize, m_vSplitPosX, and pos.

Referenced by CDockSplitter::x_SetSizesAndWidgets().

void CSplitter::show  )  [virtual]
 

Definition at line 482 of file splitter.cpp.

References m_Cells, and NON_CONST_ITERATE.

void CSplitter::x_CalculateMinSizes TPosVector min_widths,
TPosVector min_heights
const [protected]
 

Definition at line 1236 of file splitter.cpp.

References GetCell(), GetColumnsCount(), IMinMaxClient::GetMinimalSize(), and GetRowsCount().

Referenced by CSplitterEx::GetMinimalSize(), x_InitSeparatorDrag(), CDockSplitter::x_Resize(), and x_Resize().

void CSplitter::x_Clear  )  [protected]
 

Definition at line 814 of file splitter.cpp.

References m_Cells, m_vNormSizeX, m_vNormSizeY, m_vSplitPosX, and m_vSplitPosY.

Referenced by Create(), and x_Create().

void CSplitter::x_Create EMode  mode,
const TPosVector widths,
const TPosVector heights
[protected]
 

Definition at line 201 of file splitter.cpp.

References _ASSERT, kMaxCells, m_Mode, m_vSplitPosX, pos, and x_Clear().

Referenced by Create().

void CSplitter::x_Deprecated  )  const [inline, protected]
 

Definition at line 238 of file splitter.hpp.

References _ASSERT.

Referenced by add_resizable(), array(), child(), children(), find(), init_sizes(), insert(), and resizable().

void CSplitter::x_DoDistributeEvenly TPosVector vSplitPos,
int  size
[protected]
 

Definition at line 1145 of file splitter.cpp.

References m_SepSize, and pos.

Referenced by DistributeEvenly().

void CSplitter::x_DoDragSeparator bool  b_final  )  [protected]
 

Definition at line 1045 of file splitter.cpp.

References m_iDragSepX, m_iDragSepY, m_MaxSepPosX, m_MaxSepPosY, m_MinHeights, m_MinSepPosX, m_MinSepPosY, m_MinWidths, m_MouseDownX, m_MouseDownY, m_StartPosX, m_StartPosY, m_vNormSizeX, m_vNormSizeY, m_vSplitPosX, m_vSplitPosY, x_MoveSeparator(), x_PreserveNormalSize(), and x_UpdateRegion().

Referenced by x_HandleMouseDrag(), and x_HandleMouseRelease().

void CSplitter::x_DoResize TPosVector split_positions,
TSizeVector norm_sizes,
TPosVector min_sizes,
vector< bool > &  min_cells,
int  size,
int  new_size
[protected]
 

Definition at line 1171 of file splitter.cpp.

References _ASSERT, and m_SepSize.

Referenced by x_Resize().

void CSplitter::x_DrawSeparator int  x,
int  y,
int  w,
int  h,
Fl_Color  color
[protected, virtual]
 

Reimplemented in CDockSplitter.

Definition at line 547 of file splitter.cpp.

Referenced by draw(), and CDockSplitter::x_DrawSeparator().

int CSplitter::x_GetBottom int  i_y  )  const [protected]
 

Definition at line 796 of file splitter.cpp.

References _ASSERT, and m_vSplitPosY.

Referenced by draw().

int CSplitter::x_GetCellIndex Fl_Widget *  widget  )  const [protected]
 

Definition at line 752 of file splitter.cpp.

References m_Cells.

int CSplitter::x_GetCellIndex int  i_x,
int  i_y
const [protected]
 

Definition at line 728 of file splitter.cpp.

References _ASSERT, GetColumnsCount(), and IsValidCell().

Referenced by GetCell(), InsertToCell(), CSplitterEx::Minimize(), RemoveFromCell(), CWMSplitter::x_OnShowPopupMenu(), and CSplitterEx::x_UpdateNormalSizes().

int CSplitter::x_GetColumn int  i_cell  )  const [protected]
 

Definition at line 736 of file splitter.cpp.

References _ASSERT, m_Cells, and m_vSplitPosX.

Referenced by DistributeEvenly(), Find(), and x_ResizeToCell().

int CSplitter::x_GetHeight int  i_y  )  const [protected]
 

Definition at line 804 of file splitter.cpp.

References _ASSERT, m_SepSize, and m_vSplitPosY.

Referenced by GetRowHeight(), and x_ResizeToCell().

int CSplitter::x_GetLeft int  i_x  )  const [protected]
 

Definition at line 763 of file splitter.cpp.

References _ASSERT, m_SepSize, and m_vSplitPosX.

Referenced by draw(), and x_ResizeToCell().

void CSplitter::x_GetMinimized vector< bool > &  min_cols,
vector< bool > &  min_rows
const [protected]
 

Definition at line 1346 of file splitter.cpp.

References IMinMaxClient::eMinimized, GetCell(), GetColumnsCount(), GetHeights(), GetRowsCount(), IMinMaxClient::GetStateBySize(), and GetWidths().

Referenced by CDockSplitter::IsMinimized(), and x_Resize().

void CSplitter::x_GetMinMaxStates int &  min_cols_n,
int &  min_rows_n,
const IMinMaxClient maximized_child
const [protected]
 

Definition at line 1289 of file splitter.cpp.

References IMinMaxClient::eMinimized, GetCell(), GetColumnsCount(), GetHeights(), GetRowsCount(), IMinMaxClient::GetStateBySize(), and GetWidths().

Referenced by CSplitterEx::CanMinimize(), and CSplitterEx::GetState().

int CSplitter::x_GetRight int  i_x  )  const [protected]
 

Definition at line 771 of file splitter.cpp.

References _ASSERT, and m_vSplitPosX.

Referenced by draw().

int CSplitter::x_GetRow int  i_cell  )  const [protected]
 

Definition at line 744 of file splitter.cpp.

References _ASSERT, m_Cells, and m_vSplitPosX.

Referenced by DistributeEvenly(), Find(), and x_ResizeToCell().

int CSplitter::x_GetTop int  i_y  )  const [protected]
 

Definition at line 788 of file splitter.cpp.

References _ASSERT, m_SepSize, and m_vSplitPosY.

Referenced by draw(), and x_ResizeToCell().

int CSplitter::x_GetWidth int  i_x  )  const [protected]
 

Definition at line 779 of file splitter.cpp.

References _ASSERT, m_SepSize, and m_vSplitPosX.

Referenced by GetColumnWidth(), and x_ResizeToCell().

int CSplitter::x_HandleKeyEvent int  event  )  [protected]
 

Definition at line 1034 of file splitter.cpp.

Referenced by handle().

int CSplitter::x_HandleMouseDrag  )  [protected]
 

Definition at line 996 of file splitter.cpp.

References x_DoDragSeparator(), and x_IsDragging().

Referenced by handle().

int CSplitter::x_HandleMouseMove  )  [protected]
 

Definition at line 880 of file splitter.cpp.

References m_vSplitPosX, m_vSplitPosY, and x_HitTestSeparator().

Referenced by handle().

int CSplitter::x_HandleMousePush  )  [protected]
 

Definition at line 897 of file splitter.cpp.

References CGUIEvent::ePush, CGUIEvent::GetGUISignal(), m_Event, m_vSplitPosX, m_vSplitPosY, and x_HitTestSeparator().

Referenced by handle().

int CSplitter::x_HandleMouseRelease  )  [protected]
 

Definition at line 1005 of file splitter.cpp.

References CGUIEvent::ePopupSignal, CGUIEvent::GetGUISignal(), m_Event, m_iDragSepX, m_iDragSepY, m_vSplitPosX, m_vSplitPosY, x_DoDragSeparator(), x_HitTest(), x_IsDragging(), and x_OnShowPopupMenu().

Referenced by handle().

void CSplitter::x_HitTest int  z,
TPosVector vpos,
int &  i_cell,
int &  i_sep
[protected]
 

Definition at line 1095 of file splitter.cpp.

References pos.

Referenced by x_HandleMouseRelease(), and CWMSplitter::x_OnShowPopupMenu().

int CSplitter::x_HitTestSeparator int  z,
TPosVector vpos
[protected]
 

returns Separator index if hit or -1

Definition at line 1082 of file splitter.cpp.

References m_SepSize, and pos.

Referenced by x_HandleMouseMove(), and x_HandleMousePush().

void CSplitter::x_Init  )  [protected]
 

Definition at line 77 of file splitter.cpp.

References eVertical, kDefSepSize, m_Cells, m_Event, m_HighlightCell, m_iDragSepX, m_iDragSepY, m_MaxSepPosX, m_MaxSepPosY, m_MinSepPosX, m_MinSepPosY, m_Mode, m_SepSize, m_vNormSizeX, m_vNormSizeY, and CGUIEvent::StandardConfig().

Referenced by CSplitter().

void CSplitter::x_InitSeparatorDrag int  i_sep_x,
int  i_sep_y
[protected]
 

Definition at line 957 of file splitter.cpp.

References ElementsSum(), GetColumnsCount(), GetRowsCount(), m_iDragSepX, m_iDragSepY, m_MaxSepPosX, m_MaxSepPosY, m_MinHeights, m_MinSepPosX, m_MinSepPosY, m_MinWidths, m_SepSize, m_StartPosX, m_StartPosY, m_vSplitPosX, m_vSplitPosY, x_CalculateMinSizes(), and x_PreserveNormalSize().

bool CSplitter::x_IsDragging  )  [inline, protected]
 

Definition at line 210 of file splitter.hpp.

References m_iDragSepX, and m_iDragSepY.

Referenced by x_HandleMouseDrag(), and x_HandleMouseRelease().

void CSplitter::x_MoveSeparator int  i_sep,
int  new_pos,
TPosVector split_positions,
TPosVector min_sizes,
int  min_pos,
int  max_pos,
int  size,
int &  start,
int &  stop
[protected]
 

Definition at line 1381 of file splitter.cpp.

References _ASSERT, GetElemOrZero(), m_SepSize, and pos.

Referenced by x_DoDragSeparator().

void CSplitter::x_NewSplit TPosVector split_positions,
TSizeVector v_norm_size,
int  size
[protected]
 

Definition at line 1454 of file splitter.cpp.

References m_SepSize.

void CSplitter::x_OnShowPopupMenu  )  [protected, virtual]
 

Reimplemented in CWMSplitter.

Definition at line 1114 of file splitter.cpp.

Referenced by x_HandleMouseRelease().

void CSplitter::x_PreserveNormalSize bool  preserve  )  [virtual]
 

Reimplemented in CSplitterEx.

Definition at line 990 of file splitter.cpp.

Referenced by x_DoDragSeparator(), and x_InitSeparatorDrag().

bool CSplitter::x_Remove int  index  )  [protected]
 

Definition at line 357 of file splitter.cpp.

References m_Cells.

Referenced by remove(), Remove(), and RemoveFromCell().

void CSplitter::x_Resize int  new_x,
int  new_y,
int  new_w,
int  new_h,
bool  b_size_changes,
bool  b_pos_changed
[protected, virtual]
 

Reimplemented in CDockSplitter.

Definition at line 605 of file splitter.cpp.

References m_Cells, m_MinHeights, m_MinWidths, m_vNormSizeX, m_vNormSizeY, m_vSplitPosX, m_vSplitPosY, pythonpp::resize(), x_CalculateMinSizes(), x_DoResize(), x_GetMinimized(), x_ResizeToCell(), and x_UpdateClientsState().

Referenced by Layout(), and resize().

void CSplitter::x_ResizeToCell int  i_x,
int  i_y
[protected]
 

Definition at line 838 of file splitter.cpp.

References GetCell(), x_GetHeight(), x_GetLeft(), x_GetTop(), and x_GetWidth().

void CSplitter::x_ResizeToCell int  i_cell  )  [protected]
 

Definition at line 830 of file splitter.cpp.

References x_GetColumn(), and x_GetRow().

Referenced by DistributeEvenly(), InsertToCell(), CDockSplitter::x_Resize(), x_Resize(), and x_UpdateRegion().

void CSplitter::x_SizesToSplitPositions const TPosVector sizes,
TPosVector split_positions
[protected]
 

Definition at line 1501 of file splitter.cpp.

References m_SepSize.

Referenced by CDockSplitter::x_Resize().

void CSplitter::x_SplitPositionsToSizes const TPosVector split_positions,
int  total_size,
TPosVector sizes
[protected]
 

Definition at line 1484 of file splitter.cpp.

References m_SepSize.

Referenced by CDockSplitter::x_Resize().

void CSplitter::x_UpdateClientsState  )  [protected, virtual]
 

Reimplemented in CDockSplitter.

Definition at line 1262 of file splitter.cpp.

References GetCell(), GetColumnsCount(), GetHeights(), GetRowsCount(), IMinMaxClient::GetStateBySize(), GetWidths(), and IMinMaxClient::SetState().

Referenced by DistributeEvenly(), and x_Resize().

void CSplitter::x_UpdateRegion int  start_x,
int  stop_x,
int  start_y,
int  stop_y
[protected]
 

Definition at line 1434 of file splitter.cpp.

References m_vSplitPosX, m_vSplitPosY, and x_ResizeToCell().

Referenced by x_DoDragSeparator().


Member Data Documentation

TCells CSplitter::m_Cells [protected]
 

Definition at line 251 of file splitter.hpp.

Referenced by add(), DistributeEvenly(), Find(), GetCell(), CWMSplitter::GetChildren(), CWMSplitter::GetChildrenCount(), handle(), InsertToCell(), remove(), Remove(), RemoveAll(), show(), CSplitterEx::UpdateButtons(), x_Clear(), x_GetCellIndex(), x_GetColumn(), x_GetRow(), x_Init(), x_Remove(), CDockSplitter::x_Resize(), and x_Resize().

CGUIEvent CSplitter::m_Event [protected]
 

Definition at line 262 of file splitter.hpp.

Referenced by handle(), x_HandleMousePush(), x_HandleMouseRelease(), and x_Init().

int CSplitter::m_HighlightCell [protected]
 

Definition at line 264 of file splitter.hpp.

Referenced by x_Init(), and CWMSplitter::x_OnShowPopupMenu().

int CSplitter::m_iDragSepX [protected]
 

Definition at line 257 of file splitter.hpp.

Referenced by x_DoDragSeparator(), x_HandleMouseRelease(), x_Init(), x_InitSeparatorDrag(), and x_IsDragging().

int CSplitter::m_iDragSepY [protected]
 

Definition at line 257 of file splitter.hpp.

Referenced by x_DoDragSeparator(), x_HandleMouseRelease(), x_Init(), x_InitSeparatorDrag(), and x_IsDragging().

int CSplitter::m_MaxSepPosX [protected]
 

Definition at line 259 of file splitter.hpp.

Referenced by x_DoDragSeparator(), x_Init(), and x_InitSeparatorDrag().

int CSplitter::m_MaxSepPosY [protected]
 

Definition at line 260 of file splitter.hpp.

Referenced by x_DoDragSeparator(), x_Init(), and x_InitSeparatorDrag().

TPosVector CSplitter::m_MinHeights [protected]
 

Definition at line 258 of file splitter.hpp.

Referenced by x_DoDragSeparator(), x_InitSeparatorDrag(), CDockSplitter::x_Resize(), and x_Resize().

int CSplitter::m_MinSepPosX [protected]
 

Definition at line 259 of file splitter.hpp.

Referenced by x_DoDragSeparator(), x_Init(), and x_InitSeparatorDrag().

int CSplitter::m_MinSepPosY [protected]
 

Definition at line 260 of file splitter.hpp.

Referenced by x_DoDragSeparator(), x_Init(), and x_InitSeparatorDrag().

TPosVector CSplitter::m_MinWidths [protected]
 

Definition at line 258 of file splitter.hpp.

Referenced by x_DoDragSeparator(), x_InitSeparatorDrag(), CDockSplitter::x_Resize(), and x_Resize().

EMode CSplitter::m_Mode [protected]
 

Definition at line 243 of file splitter.hpp.

Referenced by CSplitterEx::CanMinimize(), Create(), GetMode(), CDockSplitter::GetNormalSize(), CDockSplitter::InsertCell(), CDockSplitter::IsMinimized(), CDockSplitter::RemoveCell(), CDockSplitter::SetResizableCell(), x_Create(), CDockSplitter::x_GetSizesAndWidgets(), x_Init(), CDockSplitter::x_Resize(), CDockSplitter::x_SetSizesAndWidgets(), and CDockSplitter::x_UpdateClientsState().

int CSplitter::m_MouseDownX [protected]
 

members used for event handling

Definition at line 255 of file splitter.hpp.

Referenced by x_DoDragSeparator().

int CSplitter::m_MouseDownY [protected]
 

Definition at line 255 of file splitter.hpp.

Referenced by x_DoDragSeparator().

int CSplitter::m_SepSize [protected]
 

Definition at line 247 of file splitter.hpp.

Referenced by CDockSplitter::CDockSplitter(), draw(), GetHeights(), CSplitterEx::GetMinimalSize(), GetSeparatorSize(), GetWidths(), CDockSplitter::InsertCell(), CDockSplitter::RemoveCell(), SetHeights(), SetWidths(), x_DoDistributeEvenly(), CDockSplitter::x_DoResize(), x_DoResize(), x_GetHeight(), x_GetLeft(), x_GetTop(), x_GetWidth(), x_HitTestSeparator(), x_Init(), x_InitSeparatorDrag(), x_MoveSeparator(), x_NewSplit(), x_SizesToSplitPositions(), and x_SplitPositionsToSizes().

int CSplitter::m_StartPosX [protected]
 

Definition at line 256 of file splitter.hpp.

Referenced by x_DoDragSeparator(), and x_InitSeparatorDrag().

int CSplitter::m_StartPosY [protected]
 

Definition at line 256 of file splitter.hpp.

Referenced by x_DoDragSeparator(), and x_InitSeparatorDrag().

TSizeVector CSplitter::m_vNormSizeX [protected]
 

Definition at line 248 of file splitter.hpp.

Referenced by DistributeEvenly(), x_Clear(), x_DoDragSeparator(), x_Init(), CDockSplitter::x_Resize(), and x_Resize().

TSizeVector CSplitter::m_vNormSizeY [protected]
 

Definition at line 249 of file splitter.hpp.

Referenced by DistributeEvenly(), x_Clear(), x_DoDragSeparator(), x_Init(), CDockSplitter::x_Resize(), and x_Resize().

TPosVector CSplitter::m_vSplitPosX [protected]
 

Definition at line 245 of file splitter.hpp.

Referenced by DistributeEvenly(), GetColumnsCount(), GetWidths(), IsValidCell(), SetWidths(), x_Clear(), x_Create(), x_DoDragSeparator(), x_GetColumn(), x_GetLeft(), x_GetRight(), x_GetRow(), x_GetWidth(), x_HandleMouseMove(), x_HandleMousePush(), x_HandleMouseRelease(), x_InitSeparatorDrag(), CWMSplitter::x_OnShowPopupMenu(), CDockSplitter::x_Resize(), x_Resize(), and x_UpdateRegion().

TPosVector CSplitter::m_vSplitPosY [protected]
 

Definition at line 246 of file splitter.hpp.

Referenced by DistributeEvenly(), GetHeights(), GetRowsCount(), IsValidCell(), SetHeights(), x_Clear(), x_DoDragSeparator(), x_GetBottom(), x_GetHeight(), x_GetTop(), x_HandleMouseMove(), x_HandleMousePush(), x_HandleMouseRelease(), x_InitSeparatorDrag(), CWMSplitter::x_OnShowPopupMenu(), CDockSplitter::x_Resize(), x_Resize(), and x_UpdateRegion().


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