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

MNWindow Class Reference

This class implements a generic window. More...

#include <MNWindow.h>

Inheritance diagram for MNWindow:

MNComponent List of all members.

Public Methods

 MNWindow (HINSTANCE hInstance, int iCmdShow, LPSTR Title=NULL, LPSTR IconName=NULL, LPSTR SmIconName=NULL, LPSTR CursorName=NULL, LPSTR MenuName=NULL)
 Constructor that creates a new window.

WPARAM BeginMessageLoop ()
 Begins the message loop.

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 int GetWidth ()
 Gets the width of the component.

virtual int GetHeight ()
 Gets 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.

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


Protected Methods

void CreateMNWindow (LPSTR Title=NULL, LPSTR IconName=NULL, LPSTR SmIconName=NULL, LPSTR CursorName=NULL, LPSTR MenuName=NULL)
 Method that does the actual window creation.

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

WNDCLASSEX wndclass
 The Used in RegisterClassEx function.

BOOL looping
 Used to tell if the event loop is running.

HBRUSH bgbrush
 The brush used to paint the background.

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

BOOL DefWindowCallBack (MNComponent *com, UINT message, WPARAM wParam, LPARAM lParam)
 The default window callback procedure.

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 generic window.

Author:
Micheal Nooner.
Windows create the following events:


Constructor & Destructor Documentation

MNWindow::MNWindow HINSTANCE    hInstance,
int    iCmdShow,
LPSTR    Title = NULL,
LPSTR    IconName = NULL,
LPSTR    SmIconName = NULL,
LPSTR    CursorName = NULL,
LPSTR    MenuName = NULL
 

Constructor that creates a new window.

Parameters:
hInstance  the instance of this aplication (comes from WinMain).
iCmdShow  the style to show the window (comes form WinMain).
Title  the caption to show in the title bar.
IconName  the name of the icon resource to associate with this window.
SmIconName  the name of the small icon resource to associate with this window.
CursorName  the name of the cursor resouce to associate with this window.
MenuName  the name of the menu resource to associate with this file.


Member Function Documentation

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

WPARAM MNWindow::BeginMessageLoop  
 

Begins the message loop.

It does not return until the window is closed. This should be the last line of the WinMain function.

For example:

    int WINAPI WinMain( ... )
    {
      MNWindow win( ... );
   
      //More initialization code
   
      WPARAM ret = win.BeginMessageLoop();
   
      //Clean up code here (i.e. delete pointers)
   
      return ret;
    }
Returns:
the wParam part of a MSG structure.

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).

void MNWindow::CreateMNWindow LPSTR    Title = NULL,
LPSTR    IconName = NULL,
LPSTR    SmIconName = NULL,
LPSTR    CursorName = NULL,
LPSTR    MenuName = NULL
[protected]
 

Method that does the actual window creation.

Parameters:
Title  the caption to show in the title bar.
IconName  the name of the icon resource to associate with this window.
SmIconName  the name of the small icon resource to associate with this window.
CursorName  the name of the cursor resouce to associate with this window.
MenuName  the name of the menu resource to associate with this file.

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 MNComponent::GetHeight   [virtual, inherited]
 

Gets the height of the component.

Returns:
The height of the component.

Reimplemented in MNPanel.

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.

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 MNComponent::GetWidth   [virtual, inherited]
 

Gets the width of the component.

Returns:
The width of the component.

Reimplemented in MNPanel.

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.

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 MNComponent::SetPosition int    x,
int    y
[virtual, inherited]
 

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 in MNPanel.

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

BOOL DefWindowCallBack MNComponent   com,
UINT    message,
WPARAM    wParam,
LPARAM    lParam
[friend]
 

The default window callback procedure.

It paints background, forwards events to child components and posts the Quit message.

Parameters:
com  the component that is handling the event.
message  the windows message to pass to the callback.
wParam  the submessage (see windows docs).
lParam  the subparameter (see windows docs).
Returns:
TRUE if message was handled, FALSE otherwise.

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:40 2002 for GuiLib by doxygen1.2.18