Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

MNPanel Class Reference

This class implements a layout-able area inside a control. More...

#include <MNPanel.h>

Inheritance diagram for MNPanel:

MNComponent List of all members.

Public Methods

 MNPanel (MNComponent *parent, LAYOUT_INFO linfo, RECT(*l)(MNComponent **, int, LAYOUT_INFO)=NULL)
 Creates a new panel with the given attributes.

RECT Layout ()
 Lays out the panel and returns 0 if it is successful or some error code.

void Add (MNComponent *com)
 Adds a component to the panel.

void SetLayout (RECT(*l)(MNComponent **, int, LAYOUT_INFO))
 Sets the layout manager used.

void SetLayoutInfo (LAYOUT_INFO info)
 Sets the information to use when laying out components.

LAYOUT_INFO GetLayoutInfo ()
 Returns the information used when laying out the component.

RECT GetPaintArea ()
 Returns the rectangle painted by this panel.

virtual int GetWidth ()
 Gets the width of the component.

virtual int GetHeight ()
 Gets the height of the component.

virtual void SetPosition (int x, int y)
 Sets the component's position.

virtual void RegisterComponent (HWND *hwnd, MNComponent *com)
 Allows this component to recieve top level events.

virtual void RegisterChild (HWND *hwnd, MNComponent *com)
 Allows this component to propagate an event to the given child.

virtual void AddCallBack (BOOL(*callback)(MNComponent *, UINT, WPARAM, LPARAM))
 Adds a callback function.

virtual LRESULT FireEvents (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 Propagates events to all the callback functions.

virtual LRESULT FireChildEvents (UINT message, WPARAM wParam, LPARAM lParam)
 Propagates the events to the appropriate child/children.

virtual LRESULT SendEventToParent (UINT message, WPARAM wParam, LPARAM lParam)
 Transmits the given event to the parent.

virtual LRESULT SendEventToChild (HWND child, UINT message, WPARAM wParam, LPARAM lParam)
 Transmits the given event to the child.

virtual LRESULT SendEventToChild (MNComponent *child, UINT message, WPARAM wParam, LPARAM lParam)
 Transmits the given event to the child.

LRESULT SendMessage (UINT msg, WPARAM wParam, LPARAM lParam)
 Sends a message to the underlying control.

virtual BOOL Show ()
 Shows the component.

virtual BOOL Hide ()
 Hides the component.

virtual HWND GetHwnd ()
 Returns the window handle.

virtual HINSTANCE GetInstance ()
 Returns the instance of the application.

virtual void SetSize (int width, int height)
 Sets the size of the component.

virtual void SetWidth (int width)
 Sets the width of the component.

virtual void SetHeight (int height)
 Sets the height of the component.

virtual void SetText (LPSTR label)
 Set the components text.

virtual void GetText (LPSTR buf, int buf_len)
 Returns the component's text.

virtual int GetX ()
 Returns the component's horizontal position.

virtual int GetY ()
 Returns the component's vertical position.

virtual void SetX (int x)
 Sets the component's horizontal position.

virtual void SetY (int y)
 Sets the component's vertical position.


Protected Methods

void CreateControl (MNComponent *parent, LPSTR classname, LPSTR label, int width, int height, int x, int y, int style, int exstyle)
 Method that does the actual button creation.

void GetCharSize ()
 Gets the average width of a character and the height of a character.


Protected Attributes

vector< MNComponent * > comps
 A list of all components added to the panel.

LAYOUT_INFO info
 The information to pass to the layout manager.

RECT area
 The rectangle painted by this panel.

RECT(* layout )(MNComponent **, int, LAYOUT_INFO)
 The layout manager of the panel.

MNComponentparent
 The parent of the component.

HWND hwnd
 The handle to the component.

HINSTANCE hInstance
 The instance of this application.

int showstate
 The state of the window when hidden.

int width
 The width of the component in pixels.

int height
 The height of the component in pixels.

int x
 The horizontal position of the panel.

int y
 The vertical position of the panel.

vector< BOOL(*)(MNComponent *,
UINT, WPARAM, LPARAM)> 
listeners
 Stores the callbacks for this component. Stores the functions given to AddCallBack(). It is used by FireEvents() to notify the callbacks.

vector< CHILDCOMPONENT > clisteners
 A list of the child components that events are to be passed to.


Static Protected Attributes

TEXTMETRIC finfo
 Information about the font used by the system.


Friends

LRESULT CALLBACK GlobalProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 Is used to process all the callback functions.


Detailed Description

This class implements a layout-able area inside a control.

Author:
Micheal Nooner
A panel is not a component, instead it is a paintable area that helps manage the layout of components. Panels use layout manager functions to do the actual layout of the component.


Constructor & Destructor Documentation

MNPanel::MNPanel MNComponent   parent,
LAYOUT_INFO    linfo,
RECT(*    l)(MNComponent **, int, LAYOUT_INFO) = NULL
 

Creates a new panel with the given attributes.

Parameters:
parent  The parent of this component.
linfo  the layout info to use with the layout manager.
l  the layout manager function to use.


Member Function Documentation

void MNPanel::Add MNComponent   com
 

Adds a component to the panel.

Parameters:
com  The component to add to the panel.

void MNComponent::AddCallBack BOOL(*    callback)(MNComponent *, UINT, WPARAM, LPARAM) [virtual, inherited]
 

Adds a callback function.

Parameters:
callback  the function to call when an event occurs
See also:
FireEvents(), listeners

void MNComponent::CreateControl MNComponent   parent,
LPSTR    classname,
LPSTR    label,
int    width,
int    height,
int    x,
int    y,
int    style,
int    exstyle
[protected, inherited]
 

Method that does the actual button creation.

Parameters:
parent  the parent of this component.
label  the text to associate with the button.
classname  the name of the registered class to use (see windows docs).
width  how wide to make the button.
height  how tall to make the button.
x  how far left to place the button at.
y  how far down to place the button at.
style  the style of the button (see windows docs).
exstyle  the extended window style (see windows docs).

LRESULT MNComponent::FireChildEvents UINT    message,
WPARAM    wParam,
LPARAM    lParam
[virtual, inherited]
 

Propagates the events to the appropriate child/children.

Parameters:
message  the windows message to pass to the callback
wParam  the submessage (see windows docs).
lParam  the subparameter (see windows docs).
Returns:
0 if the event was handled otherwise what DefWindowProc returns.
See also:
RegisterChild(), clisteners

LRESULT MNComponent::FireEvents HWND    hwnd,
UINT    message,
WPARAM    wParam,
LPARAM    lParam
[virtual, inherited]
 

Propagates events to all the callback functions.

Parameters:
hwnd  the window handle to the window the events go to.
message  the windows message to pass to the callback.
wParam  the submessage (see windows docs).
lParam  the subparameter (see windows docs).
Returns:
0 if the event was handled otherwise what DefWindowProc returns.
See also:
AddCallBack(), listeners

int MNPanel::GetHeight   [virtual]
 

Gets the height of the component.

Returns:
The height of the component.

Reimplemented from MNComponent.

HWND MNComponent::GetHwnd   [virtual, inherited]
 

Returns the window handle.

Returns:
the window handle.

HINSTANCE MNComponent::GetInstance   [virtual, inherited]
 

Returns the instance of the application.

Returns:
the instance of the application.

LAYOUT_INFO MNPanel::GetLayoutInfo  
 

Returns the information used when laying out the component.

Returns:
The information used when laying out the component.

RECT MNPanel::GetPaintArea  
 

Returns the rectangle painted by this panel.

Returns:
The rectangle painted by this panel (the attribute area).
See also:
area

void MNComponent::GetText LPSTR    buf,
int    buf_len
[virtual, inherited]
 

Returns the component's text.

Parameters:
buf  Where to place the components text.
buf_len  the length of the buffer.
Returns:
The components text

int MNPanel::GetWidth   [virtual]
 

Gets the width of the component.

Returns:
The width of the component.

Reimplemented from MNComponent.

int MNComponent::GetX   [virtual, inherited]
 

Returns the component's horizontal position.

Returns:
The component's horizontal position.

int MNComponent::GetY   [virtual, inherited]
 

Returns the component's vertical position.

Returns:
The component's vertical position.

BOOL MNComponent::Hide   [virtual, inherited]
 

Hides the component.

It still may not be hidden if MNWindow::BeginMessageLoop() has not been called yet, or some callback negates this methods effect.

Returns:
whether the component was hidden.

RECT MNPanel::Layout  
 

Lays out the panel and returns 0 if it is successful or some error code.

Returns:
The rectangle painted by this panel.

void MNComponent::RegisterChild HWND *    hwnd,
MNComponent   com
[virtual, inherited]
 

Allows this component to propagate an event to the given child.

Parameters:
hwnd  the window handle of the component to register.
com  the component to register.
See also:
CHILDCOMPONENT, clisteners

void MNComponent::RegisterComponent HWND *    hwnd,
MNComponent   com
[virtual, inherited]
 

Allows this component to recieve top level events.

Parameters:
hwnd  the window handle of the component to register.
com  the component to register.
See also:
AddCallBack(), FireEvents(), GlobalProc()

LRESULT MNComponent::SendEventToChild MNComponent   child,
UINT    message,
WPARAM    wParam,
LPARAM    lParam
[virtual, inherited]
 

Transmits the given event to the child.

Parameters:
child  the child component to send the event to.
message  the windows message to pass to the callback
wParam  the submessage (see windows docs).
lParam  the subparameter (see windows docs).
Returns:
what is returned by the childs FireEvent().
See also:
FireEvents()

LRESULT MNComponent::SendEventToChild HWND    child,
UINT    message,
WPARAM    wParam,
LPARAM    lParam
[virtual, inherited]
 

Transmits the given event to the child.

Parameters:
child  the child component to send the event to.
message  the windows message to pass to the callback
wParam  the submessage (see windows docs).
lParam  the subparameter (see windows docs).
Returns:
what is returned by the childs FireEvent().
See also:
FireEvents()

LRESULT MNComponent::SendEventToParent UINT    message,
WPARAM    wParam,
LPARAM    lParam
[virtual, inherited]
 

Transmits the given event to the parent.

Parameters:
message  the windows message to pass to the callback
wParam  the submessage (see windows docs).
lParam  the subparameter (see windows docs).
Returns:
0 if the event was handled otherwise what DefWindowProc returns.

LRESULT MNComponent::SendMessage UINT    msg,
WPARAM    wParam,
LPARAM    lParam
[inherited]
 

Sends a message to the underlying control.

See the components docs.

void MNComponent::SetHeight int    height [virtual, inherited]
 

Sets the height of the component.

Parameters:
height  the new height of the component.

void MNPanel::SetLayout RECT(*    l)(MNComponent **, int, LAYOUT_INFO)
 

Sets the layout manager used.

Parameters:
l  The new layout manager to use.

void MNPanel::SetLayoutInfo LAYOUT_INFO    info
 

Sets the information to use when laying out components.

Parameters:
info  set the information to use when laying out components.

void MNPanel::SetPosition int    x,
int    y
[virtual]
 

Sets the component's position.

This method is most often used by layout managers to set a control's position without affecting wether x or y's value is AUTOPOS.

Parameters:
x  the horizontal position to place the control.
y  the vertical position to place the control.

Reimplemented from MNComponent.

void MNComponent::SetSize int    width,
int    height
[virtual, inherited]
 

Sets the size of the component.

Parameters:
width  the new width of the component.
height  the new height of the component.

void MNComponent::SetText LPSTR    label [virtual, inherited]
 

Set the components text.

Parameters:
label  the text to associate with the button.

Reimplemented in MNAbstractButton.

void MNComponent::SetWidth int    width [virtual, inherited]
 

Sets the width of the component.

Parameters:
width  the new width of the component.

void MNComponent::SetX int    x [virtual, inherited]
 

Sets the component's horizontal position.

Parameters:
x  what to set the component's horizontal position to.

void MNComponent::SetY int    y [virtual, inherited]
 

Sets the component's vertical position.

Parameters:
y  what to set the component's vertical position to.

BOOL MNComponent::Show   [virtual, inherited]
 

Shows the component.

It still may not be shown if MNWindow::BeginMessageLoop() has not been called yet, or some callback negates this methods effect.

Returns:
whether the component was shown.


Friends And Related Function Documentation

LRESULT CALLBACK GlobalProc HWND    hwnd,
UINT    message,
WPARAM    wParam,
LPARAM    lParam
[friend, inherited]
 

Is used to process all the callback functions.

Parameters:
hwnd  the window handle to the window the events go to
message  the windows message to pass to the callback
wParam  the submessage (see windows docs).
lParam  the subparameter (see windows docs).
Returns:
what the appropriate component's FireEvent() method returns otherwise if returns what DefWindowProc() returns.
See also:
MNComponent::FireEvents


Member Data Documentation

vector< CHILDCOMPONENT > MNComponent::clisteners [protected, inherited]
 

A list of the child components that events are to be passed to.

Stores the children who wish to recieve events.

See also:
FireChildEvents(), CHILDCOMPONENT

vector<BOOL (*)(MNComponent* , UINT, WPARAM, LPARAM)> MNComponent::listeners [protected, inherited]
 

Stores the callbacks for this component. Stores the functions given to AddCallBack(). It is used by FireEvents() to notify the callbacks.

See also:
AddCallBack(), FireEvents()


The documentation for this class was generated from the following files:
Generated on Thu Oct 31 18:21:39 2002 for GuiLib by doxygen1.2.18