Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

ndk::packer< T, resizer > Class Template Reference

Collaboration diagram for ndk::packer< T, resizer >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 packer (panel *main, align::type alignment, int padding=0)
void add (panel *item)
void pack ()

Private Types

typedef std::vector< panel * > widget_vector
typedef resizer< T > resizer_type

Private Member Functions

template<typename Ret, typename Tp, typename Arg1T, typename Arg2T> mem_fun1_impl< Ret, Tp, Arg1T,
Arg2T > 
mem_fun1 (Ret(Tp::*f)(Arg1T, Arg2T), Tp *obj, Arg2T arg)
void do_align (panel *p, unsigned int max)
void do_move (panel *p, int *pos)

Private Attributes

widget_vector widgets_
unsigned int padding_
panelmain_
align::type align_

Detailed Description

template<class T, template< class > class resizer = pack::def_resizer>
class ndk::packer< T, resizer >

general template to the auto packer/aligner of widgets packer algorithm: with resizer: 1. find widget with maximum size (max) 2. main widget size is max + 2*padding 3. align all widgets and place it with begining from padding 4. resize main to size max + 2*padding, and total widgets length+2*padding without resizer: 1. find widget with maximum size 2. align all widgets, according max widget size and with begining from padding 3. resize all widgets to the "main - 2*padding" if we need it


Member Typedef Documentation

template<class T, template< class > class resizer = pack::def_resizer>
typedef resizer<T> ndk::packer< T, resizer >::resizer_type [private]
 

template<class T, template< class > class resizer = pack::def_resizer>
typedef std::vector<panel*> ndk::packer< T, resizer >::widget_vector [private]
 


Constructor & Destructor Documentation

template<class T, template< class > class resizer = pack::def_resizer>
ndk::packer< T, resizer >::packer panel main,
align::type  alignment,
int  padding = 0
[inline]
 


Member Function Documentation

template<class T, template< class > class resizer = pack::def_resizer>
void ndk::packer< T, resizer >::add panel item  )  [inline]
 

template<class T, template< class > class resizer = pack::def_resizer>
void ndk::packer< T, resizer >::do_align panel p,
unsigned int  max
[inline, private]
 

Parameters:
p  move and align widgets
max  align panel's possition according current aligment

template<class T, template< class > class resizer = pack::def_resizer>
void ndk::packer< T, resizer >::do_move panel p,
int *  pos
[inline, private]
 

Parameters:
pos  move next item according current packing

template<class T, template< class > class resizer = pack::def_resizer>
template<typename Ret, typename Tp, typename Arg1T, typename Arg2T>
mem_fun1_impl<Ret, Tp, Arg1T, Arg2T> ndk::packer< T, resizer >::mem_fun1 Ret(Tp::*  f)(Arg1T, Arg2T),
Tp *  obj,
Arg2T  arg
[inline, private]
 

template<class T, template< class > class resizer = pack::def_resizer>
void ndk::packer< T, resizer >::pack  )  [inline]
 


Member Data Documentation

template<class T, template< class > class resizer = pack::def_resizer>
align::type ndk::packer< T, resizer >::align_ [private]
 

aligment of the widgets

template<class T, template< class > class resizer = pack::def_resizer>
panel* ndk::packer< T, resizer >::main_ [private]
 

main widget, we will try to place all widgets under it

template<class T, template< class > class resizer = pack::def_resizer>
unsigned int ndk::packer< T, resizer >::padding_ [private]
 

size of empty area between widgets on the line

template<class T, template< class > class resizer = pack::def_resizer>
widget_vector ndk::packer< T, resizer >::widgets_ [private]
 

widgets to pack


The documentation for this class was generated from the following file:
Generated on Fri Jun 4 16:20:59 2004 for NDK++ by doxygen 1.3.6