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

wkgl::Window Class Reference

This class implements a generic window. More...

#include <Window.h>

Inheritance diagram for wkgl::Window:

wkgl::Control wkgl::CallBack wkgl::Component wkgl::AppBar wkgl::Dialog List of all members.

Public Methods

 Window ()
 Default constructor.

 Window (const char *title)
 Constructor that creates a new window.

 ~Window ()
 Destructor.

WPARAM beginMessageLoop ()
 Begins the message loop.

virtual void setSmallIcon (Icon *ico)
 Set the 16x16 icon that appears in the upper left hand corner.

virtual void setWindowIcon (Icon *ico)
 Set the 32x32 icon that appears in the alt-tab box.

virtual IcongetSmallIcon ()
 Get the 16x16 icon that appears in the upper left hand corner.

virtual IcongetWindowIcon ()
 Get the 32x32 icon that appears in the alt-tab box.

virtual char * getTitle ()
 Gets the window's title.

virtual void setTitle (const char *s)
 Sets the window's title.

virtual void setDefaultCloseOperation (SFLAG operation)
 Specifies what the window should do when it recieves the WM_CLOSE event.

virtual short getDefaultCloseOperation ()
 Returns the default close operation.

virtual BOOL isHiding ()
 Returns whether the window is not hiding.

virtual BOOL show ()
 Shows the window.

virtual BOOL hide ()
 Hides the window.

virtual BOOL toFront ()
 Places the window in front of all other windows.

virtual BOOL toBack ()
 Places the window behind all other windows.

virtual BOOL activate ()
 Activates the window.

virtual BOOL create (Control *parent)
 Specifies the manner in which a particular control is to be created.

virtual void add (Control *con)
 Adds the control to the window.

virtual void setMenuBar (Menu *menu)
 Makes the given menu the window's menu bar.

virtual BOOL destroyWindow ()
 Destroys the window.

virtual BOOL callBack (Component *com, UINT message, WPARAM wParam, LPARAM lParam)
 Implement this method to have a callback in your class.

virtual void setStyle (LFLAG style, bool extended=false)
 Alters a control's style.

virtual LFLAG getStyle (bool extended=false)
 Gets a control's style.

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 (Component *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 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 (const char *label)
 Set the components text.

virtual void setText (String label)
 Set the components text.

virtual void getText (char *buf, int buf_len=30)
 Returns the component's text.

virtual void getText (String &buf, int buf_len=30)
 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 BOOL autoPositionX ()
 Tells whether x coordinate should be auto positioned by layout manager.

virtual BOOL autoPositionY ()
 Tells whether y coordinate should be auto positioned by layout manager.

virtual void setautoPositionX (BOOL a)
 Sets whether x coordinate should be auto positioned by layout manager.

virtual void setautoPositionY (BOOL a)
 Sets whether y coordinate should be auto positioned by layout manager.

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

virtual void setCursor (Cursor *cur)
 Set the cursor that will be used by this window.

virtual CursorgetCursor ()
 Get the cursor that is be used by this window.

virtual WNDCLASSEX getWndClass ()
 Returns the window class structure that represents this window.

virtual StringgetClassName ()
 Returns the window class name of this control.

virtual void paint ()
 Paints the control to the display.

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

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

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

virtual ComponentgetParent ()
 Returns a pointer to the parent component.

virtual void setParent (Component *p)
 Sets the components parent.

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

virtual HWND getHwnd ()
 Returns the window handle.

virtual void setHwnd (HWND h)
 Sets the window handle.

virtual void addCallBack (COMCALLBACK callback)
 Adds a callback function.

virtual void addCallBack (CallBack *callback)
 Adds a callback method.

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


Static Public Methods

void quitApp (int exitcode=0)
 Attempts to exit the application.

UINT getWndProc ()
 Returns the the address of GlobalProc().


Protected Methods

void createControl (Component *parent, String *classname, String *label, int width, int height, int x, int y, int style, int exstyle)
 Method that does the actual control creation.

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


Protected Attributes

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

HBRUSH bgbrush
 The brush used to paint the background.

Iconwicon
 The large icon.

Iconsicon
 The small icon.

Stringtitle
 The title of the window.

UINT style
 The style of this window.

UINT exstyle
 The extended style of the window.

Menumenu_bar
 The menu being used as the menu bar.

std::vector< Control * > controls
 The list of child controls.

HWND curfocus
 This is the control that has the current keyboard focus.

SFLAG close_operation
 Flag specifing what the window should do when it recieves WM_CLOSE.

Controlparent
 The parent of the component.

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.

BOOL ax
 Flag saying whether the x is auto positioned.

BOOL ay
 Flag saying whether the y is auto positioned.

Cursorcursor
 The cursor.

String className
 The name of this class.

Stringlabel
 The controls label.

WNDCLASSEX wndclass
 The window class.

HINSTANCE hInstance
 The instance of this application.

HWND hwnd
 The handle to the component.

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

std::vector< COMCALLBACKcomlisteners
 Stores the callbacks for this component that use functions. Stores the functions given to AddCallBack(). It is used by FireEvents() to notify the callbacks.

std::vector< CallBack * > classlisteners
 Stores the callbacks for this component that come from classes. Stores the functions given to AddCallBack(). It is used by FireEvents() to notify the callbacks.


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

Author:
Micheal Nooner.
Windows create the following events:


Constructor & Destructor Documentation

Window::Window  
 

Default constructor.

Window::Window const char *    title
 

Constructor that creates a new window.

Parameters:
title  The title of the new window, can be NULL.

Window::~Window  
 

Destructor.


Member Function Documentation

BOOL Window::activate   [virtual]
 

Activates the window.

Returns:
If the method succeeds then it returns the handle to the previously active window, or NULL if it fails.

void Window::add Control   con [virtual]
 

Adds the control to the window.

void Component::addCallBack CallBack   callback [virtual, inherited]
 

Adds a callback method.

The callback must be a method from a class that inheirits from CallBack.

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

void Component::addCallBack COMCALLBACK    callback [virtual, inherited]
 

Adds a callback function.

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

BOOL Control::autoPositionX   [virtual, inherited]
 

Tells whether x coordinate should be auto positioned by layout manager.

Returns:
The value of ax.

BOOL Control::autoPositionY   [virtual, inherited]
 

Tells whether y coordinate should be auto positioned by layout manager.

Returns:
The value of ay.

WPARAM Window::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( ... )
    {
      Window 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.

BOOL Window::callBack Component   com,
UINT    message,
WPARAM    wParam,
LPARAM    lParam
[virtual]
 

Implement this method to have a callback in your class.

Parameters:
com  A pointer to the component that generated the message.
message  The windows integer event.
wParam  contain information about the event, see windows docs.
lParam  contain information about the event, see windows docs.
Returns:
TRUE if the event was handled, FALSE otherwise.

Implements wkgl::CallBack.

Reimplemented in wkgl::Dialog.

BOOL Window::create Control   parent [virtual]
 

Specifies the manner in which a particular control is to be created.

Parameters:
parent  Not used by this control.
Returns:
TRUE if the control was created, FALSE otherwise.

Implements wkgl::Control.

Reimplemented in wkgl::Dialog.

void Control::createControl Component   parent,
String   classname,
String   label,
int    width,
int    height,
int    x,
int    y,
int    style,
int    exstyle
[protected, inherited]
 

Method that does the actual control 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).

BOOL Window::destroyWindow   [virtual]
 

Destroys the window.

Returns:
TRUE if the window was destroyed successfully.

LRESULT Component::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

Reimplemented in wkgl::Dialog.

LRESULT Component::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(), comlisteners

Reimplemented in wkgl::Dialog.

void Control::getCharSize   [protected, inherited]
 

Gets the average width of a character and the height of a character.

String * Control::getClassName   [virtual, inherited]
 

Returns the window class name of this control.

Returns:
the window class name of this control.

Cursor * Control::getCursor   [virtual, inherited]
 

Get the cursor that is be used by this window.

Returns:
The cursor that is be used by this window.

short Window::getDefaultCloseOperation   [virtual]
 

Returns the default close operation.

Returns:
the value of Window::close_operation.

int Control::getHeight   [virtual, inherited]
 

Gets the height of the component.

Returns:
The height of the control.

Reimplemented in wkgl::LayoutManager.

HWND Component::getHwnd   [virtual, inherited]
 

Returns the window handle.

Returns:
the window handle.

HINSTANCE Component::getInstance   [virtual, inherited]
 

Returns the instance of the application.

Returns:
the instance of the application.

Component * Component::getParent   [virtual, inherited]
 

Returns a pointer to the parent component.

Returns:
A pointer to the parent component.

Icon * Window::getSmallIcon   [virtual]
 

Get the 16x16 icon that appears in the upper left hand corner.

LFLAG Control::getStyle bool    extended = false [virtual, inherited]
 

Gets a control's style.

Parameters:
extended  If true then style is an extended style
Returns:
The window style.

void Control::getText String   buf,
int    buf_len = 30
[virtual, inherited]
 

Returns the component's text.

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

void Control::getText char *    buf,
int    buf_len = 30
[virtual, inherited]
 

Returns the component's text.

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

char * Window::getTitle   [virtual]
 

Gets the window's title.

int Control::getWidth   [virtual, inherited]
 

Gets the width of the component.

Returns:
The width of the control.

Reimplemented in wkgl::LayoutManager.

Icon * Window::getWindowIcon   [virtual]
 

Get the 32x32 icon that appears in the alt-tab box.

WNDCLASSEX Control::getWndClass   [virtual, inherited]
 

Returns the window class structure that represents this window.

Returns:
The window class structure used to create this window.

UINT Component::getWndProc   [static, inherited]
 

Returns the the address of GlobalProc().

Returns:
the the address of GlobalProc().

int Control::getX   [virtual, inherited]
 

Returns the component's horizontal position.

Returns:
The control's horizontal position.

int Control::getY   [virtual, inherited]
 

Returns the component's vertical position.

Returns:
The control's vertical position.

BOOL Window::hide   [virtual]
 

Hides the window.

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

Returns:
whether the control was hidden.

Reimplemented from wkgl::Control.

Reimplemented in wkgl::Dialog.

BOOL Window::isHiding   [virtual]
 

Returns whether the window is not hiding.

Returns:
TRUE if the window is hiding or destroyed, FALSE otherwise.

void Control::paint   [virtual, inherited]
 

Paints the control to the display.

void Window::quitApp int    exitcode = 0 [static]
 

Attempts to exit the application.

Parameters:
exitcode  The code returned when the application has exited.

void Component::registerChild HWND *    hwnd,
Component   com
[virtual, inherited]
 

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

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

void Component::registerComponent HWND *    hwnd,
Component   com
[virtual, inherited]
 

Allows this component to recieve top level events.

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

LRESULT Control::sendEventToChild Component   child,
UINT    message,
WPARAM    wParam,
LPARAM    lParam
[virtual, inherited]
 

Transmits the given event to the child.

Parameters:
child  the child control 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 Control::sendEventToChild HWND    child,
UINT    message,
WPARAM    wParam,
LPARAM    lParam
[virtual, inherited]
 

Transmits the given event to the child.

Parameters:
child  the child control 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 Control::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 Control::sendMessage UINT    msg,
WPARAM    wParam,
LPARAM    lParam
[inherited]
 

Sends a message to the underlying control.

See the components docs.

void Control::setautoPositionX BOOL    a [virtual, inherited]
 

Sets whether x coordinate should be auto positioned by layout manager.

Parameters:
a  TRUE specifies that the x coordinate should be autopositioned.

void Control::setautoPositionY BOOL    a [virtual, inherited]
 

Sets whether y coordinate should be auto positioned by layout manager.

Parameters:
a  TRUE specifies that the y coordinate should be autopositioned.

void Control::setCursor Cursor   cur [virtual, inherited]
 

Set the cursor that will be used by this window.

void Window::setDefaultCloseOperation SFLAG    operation [virtual]
 

Specifies what the window should do when it recieves the WM_CLOSE event.

Parameters:
operation  should be one of the following: DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, DESTROY_ON_CLOSE, HIDE_ON_CLOSE.

Reimplemented in wkgl::Dialog.

void Control::setHeight int    height [virtual, inherited]
 

Sets the height of the component.

Parameters:
height  the new height of the control.

void Component::setHwnd HWND    h [virtual, inherited]
 

Sets the window handle.

Parameters:
h  The new window handle.

void Window::setMenuBar Menu   menu [virtual]
 

Makes the given menu the window's menu bar.

Parameters:
menu  The menu to use as the menu bar.

void Component::setParent Component   p [virtual, inherited]
 

Sets the components parent.

Parameters:
p  The new parent of this component.

void Control::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 wkgl::LayoutManager.

void Control::setSize int    width,
int    height
[virtual, inherited]
 

Sets the size of the component.

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

void Window::setSmallIcon Icon   ico [virtual]
 

Set the 16x16 icon that appears in the upper left hand corner.

void Control::setStyle LFLAG    style,
bool    extended = false
[virtual, inherited]
 

Alters a control's style.

Parameters:
style  The new window style to use.
extended  If true then style is an extended style

void Control::setText String    label [virtual, inherited]
 

Set the components text.

Parameters:
label  the text to associate with the button.

void Control::setText const char *    label [virtual, inherited]
 

Set the components text.

Parameters:
label  the text to associate with the button.

Reimplemented in wkgl::AbstractButton.

void Window::setTitle const char *    s [virtual]
 

Sets the window's title.

Parameters:
s  The string that is to appear in the window's title bar.

void Control::setWidth int    width [virtual, inherited]
 

Sets the width of the component.

Parameters:
width  the new width of the control.

void Window::setWindowIcon Icon   ico [virtual]
 

Set the 32x32 icon that appears in the alt-tab box.

void Control::setX int    x [virtual, inherited]
 

Sets the component's horizontal position.

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

void Control::setY int    y [virtual, inherited]
 

Sets the component's vertical position.

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

BOOL Window::show   [virtual]
 

Shows the window.

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

Returns:
whether the control was shown.

Reimplemented from wkgl::Control.

Reimplemented in wkgl::Dialog.

BOOL Window::toBack   [virtual]
 

Places the window behind all other windows.

Returns:
TRUE if the window was successfully brought to the bottom.

BOOL Window::toFront   [virtual]
 

Places the window in front of all other windows.

Returns:
TRUE if the window was successfully brought to the front.


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:
Component::FireEvents


Member Data Documentation

BOOL wkgl::Control::ax [protected, inherited]
 

Flag saying whether the x is auto positioned.

BOOL wkgl::Control::ay [protected, inherited]
 

Flag saying whether the y is auto positioned.

HBRUSH wkgl::Window::bgbrush [protected]
 

The brush used to paint the background.

std::vector< CallBack* > wkgl::Component::classlisteners [protected, inherited]
 

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

See also:
AddCallBack(), FireEvents()

String wkgl::Control::className [protected, inherited]
 

The name of this class.

std::vector< CHILDCOMPONENT > wkgl::Component::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

SFLAG wkgl::Window::close_operation [protected]
 

Flag specifing what the window should do when it recieves WM_CLOSE.

std::vector< COMCALLBACK > wkgl::Component::comlisteners [protected, inherited]
 

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

See also:
AddCallBack(), FireEvents()

std::vector<Control*> wkgl::Window::controls [protected]
 

The list of child controls.

HWND wkgl::Window::curfocus [protected]
 

This is the control that has the current keyboard focus.

Cursor* wkgl::Control::cursor [protected, inherited]
 

The cursor.

UINT wkgl::Window::exstyle [protected]
 

The extended style of the window.

Reimplemented from wkgl::Control.

TEXTMETRIC Control::finfo [static, protected, inherited]
 

Information about the font used by the system.

int wkgl::Control::height [protected, inherited]
 

The height of the component in pixels.

HINSTANCE wkgl::Component::hInstance [protected, inherited]
 

The instance of this application.

HWND wkgl::Component::hwnd [protected, inherited]
 

The handle to the component.

String* wkgl::Control::label [protected, inherited]
 

The controls label.

BOOL wkgl::Window::looping [protected]
 

Used to tell if the event loop is running.

Menu* wkgl::Window::menu_bar [protected]
 

The menu being used as the menu bar.

Control* wkgl::Control::parent [protected, inherited]
 

The parent of the component.

Reimplemented from wkgl::Component.

int wkgl::Control::showstate [protected, inherited]
 

The state of the window when hidden.

Icon* wkgl::Window::sicon [protected]
 

The small icon.

UINT wkgl::Window::style [protected]
 

The style of this window.

Reimplemented from wkgl::Control.

String* wkgl::Window::title [protected]
 

The title of the window.

Reimplemented in wkgl::Dialog.

Icon* wkgl::Window::wicon [protected]
 

The large icon.

int wkgl::Control::width [protected, inherited]
 

The width of the component in pixels.

WNDCLASSEX wkgl::Control::wndclass [protected, inherited]
 

The window class.

int wkgl::Control::x [protected, inherited]
 

The horizontal position of the panel.

int wkgl::Control::y [protected, inherited]
 

The vertical position of the panel.


The documentation for this class was generated from the following files:
Generated on Tue Apr 29 03:19:04 2003 for GuiLib by doxygen1.2.18