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

# wkgl::ComboBox Class Reference

This class implements a generic combo box. More...

`#include <ComboBox.h>`

Inheritance diagram for wkgl::ComboBox:

List of all members.

## Public Methods
| ComboBox (int x, int y, int w, int h, String *data=NULL, int ndata=0)
| Creates a new Combo box.
void | addString (String text, int index=END)
| Adds a string to the Combo at the given index.
void | addStrings (String text[], int ntext, int index=END)
| Adds the ginven strings to the Combo at the given index.
void | removeString (int index)
| Removes the string at the given index.
String | getString (int index)
| Gets the string at the given index.
String | operator[] (int index)
| Gets the string at the given index.
int | getNumberOfItems ()
| Returns the number of items in the Combo box.
String | getSelectedString ()
| Gets the selected string.
int | getSelectedIndex ()
| Gets the index of the selected item.
virtual BOOL | create (Control *parent)
| Specifies the manner in which a particular control is to be created.
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 BOOL | show ()
| Shows the component.
virtual BOOL | hide ()
| Hides the component.
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 Cursor * | getCursor ()
| Get the cursor that is be used by this window.
virtual WNDCLASSEX | getWndClass ()
| Returns the window class structure that represents this window.
virtual String * | getClassName ()
| 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 Component * | getParent ()
| 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
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
Control * | parent
| 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.
Cursor * | cursor
| The cursor.
String | className
| The name of this class.
String * | label
| The controls label.
WNDCLASSEX | wndclass
| The window class.
DWORD | style
| The style of the control.
DWORD | exstyle
| The extended style of the control.
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< COMCALLBACK > | comlisteners
| 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 combo box.

Author:
  Micheal Nooner.

Combo box's understand the following messages:

- CB_ADDSTRING
- CB_DELETESTRING
- CB_DIR
- CB_FINDSTRING
- CB_FINDSTRINGEXACT
- CB_GETCOUNT
- CB_GETCURSEL
- CB_GETDROPPEDCONTROLRECT
- CB_GETDROPPEDSTATE
- CB_GETDROPPEDWIDTH
- CB_GETEDITSEL
- CB_GETEXTENDEDUI
- CB_GETHORIZONTALEXTENT
- CB_GETITEMDATA
- CB_GETITEMHEIGHT
- CB_GETLBTEXT
- CB_GETLBTEXTLEN
- CB_GETLOCALE
- CB_GETTOPINDEX
- CB_INITSTORAGE
- CB_INSERTSTRING
- CB_LIMITTEXT
- CB_RESETCONTENT
- CB_SELECTSTRING
- CB_SETCURSEL
- CB_SETDROPPEDWIDTH
- CB_SETEDITSEL
- CB_SETEXTENDEDUI
- CB_SETHORIZONTALEXTENT
- CB_SETITEMDATA
- CB_SETITEMHEIGHT
- CB_SETLOCALE
- CB_SETTOPINDEX
- CB_SHOWDROPDOWN
- WM_COMPAREITEM
- WM_DRAWITEM
- WM_MEASUREITEM

Combo boxes generate the following events:

- CBN_CLOSEUP
- CBN_DBLCLK
- CBN_DROPDOWN
- CBN_EDITCHANGE
- CBN_EDITUPDATE
- CBN_ERRSPACE
- CBN_KILLFOCUS
- CBN_SELCHANGE
- CBN_SELENDCANCEL
- CBN_SELENDOK
- CBN_SETFOCUS

## Constructor & Destructor Documentation

ComboBox::ComboBox | ( | int | x,
|  | int | y,
|  | int | w,
|  | int | h,
|  | String * | data = NULL,
|  | int | ndata = 0
| ) |

  | Creates a new Combo box. Parameters:
  x | how far left to place the control.
  y | how far down to place the control.
  w | the width of the component (in characters).
  h | the height of the component (in lines).
  data | a pointer to an array of strings to use as the default strings to place in the Combo box.
  ndata | the size of the data array.

## Member Function Documentation

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

void ComboBox::addString | ( | String | text,
|  | int | index = END
| ) |

  | Adds a string to the Combo at the given index. Parameters:
  text | The string to add to the Combo box.
  index | The zero based position to add the string at (default bottom).

void ComboBox::addStrings | ( | String | text[],
|  | int | ntext,
|  | int | index = END
| ) |

  | Adds the ginven strings to the Combo at the given index. Parameters:
  text | The array of strings to add to the Combo box.
  ntext | Number of elements in the text array.
  index | The zero based position to add the string at (default bottom).

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.

BOOL ComboBox::create | ( | Control * | parent | ) | `[virtual]`

  | Specifies the manner in which a particular control is to be created. Parameters:
  parent | A handle to the parent control.
Returns: TRUE if the control was created, FALSE otherwise. Implements wkgl::Control.

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

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.

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.

int ComboBox::getNumberOfItems | ( |  | ) |

| Returns the number of items in the Combo box. Returns: The number of rows in the Combo box.

Component * Component::getParent | ( |  | ) | `[virtual, inherited]`

| Returns a pointer to the parent component. Returns: A pointer to the parent component.

int ComboBox::getSelectedIndex | ( |  | ) |

| Gets the index of the selected item. Returns: The zero based index of the selected string, or CB_ERR if nothing is selected.

String ComboBox::getSelectedString | ( |  | ) |

| Gets the selected string. Returns: The string selected by the user, or NULL if no string is selected.

String ComboBox::getString | ( | int | index | ) |

  | Gets the string at the given index. Parameters:
  index | The zero based index of the string to get.
Returns: The string found at index.

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

int Control::getWidth | ( |  | ) | `[virtual, inherited]`

| Gets the width of the component. Returns: The width of the control. Reimplemented in wkgl::LayoutManager.

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 Control::hide | ( |  | ) | `[virtual, inherited]`

| Hides the component. 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 in wkgl::Dialog, and wkgl::Window.

String ComboBox::operator[] | ( | int | index | ) |

  | Gets the string at the given index. Parameters:
  index | The zero based index of the string to get.
Returns: The string found at index.

void Control::paint | ( |  | ) | `[virtual, inherited]`

| Paints the control to the display.

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

void ComboBox::removeString | ( | int | index | ) |

  | Removes the string at the given index. Parameters:
  index | The zero based index of the string to remove.

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 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 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 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 Control::setWidth | ( | int | width | ) | `[virtual, inherited]`

  | Sets the width of the component. Parameters:
  width | the new width of the control.

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 Control::show | ( |  | ) | `[virtual, inherited]`

| Shows the component. 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 in wkgl::Dialog, and wkgl::Window.

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

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

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

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

| The cursor.

DWORD wkgl::Control::exstyle`[protected, inherited]`

| The extended style of the control. Reimplemented in wkgl::Window.

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.

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.

DWORD wkgl::Control::style`[protected, inherited]`

| The style of the control. Reimplemented in wkgl::Window.

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:

- ComboBox.h
- ComboBox.cpp