omgui::win32::Window Class Reference

#include <omgui/win32/window.h>

Inherits omgui::win32::Widget, and omgui::common::Window.

List of all members.

Public Types

typedef
omgui::initializer::WindowData 
data_type
 Initialization data used for Windows.
typedef
omgui::initializer::WidgetData 
data_type
 Initialization data used for Widgets.
typedef omgui::Window wrapper_type
typedef omgui::Widget wrapper_type

Public Member Functions

void add_ex_style (int style)
 Adds an extended style flag or flags to this HWND.
omgui::Size client_size_to_absolute (const omgui::Size &size)
virtual void create (const data_type &init_params)=0
void create (const omgui::initializer::WindowData &params)
virtual void destroy ()
virtual void enable (bool e)
virtual Pointer< omgui::Panelget_content_panel () const
virtual omgui::Size get_content_size ()
virtual void * get_handle () const
HFONT get_hfont () const
virtual omgui::Size get_max_content_size () const
virtual omgui::Size get_max_size () const
Pointer< omgui::MenuBarget_menu_bar () const
virtual omgui::Size get_min_content_size () const
virtual omgui::Size get_min_size () const
virtual omgui::Size get_natural_size () const
virtual Pointer< omgui::Panelget_parent () const
virtual Pointer< omgui::Windowget_parent_window () const
virtual omgui::Point get_position () const
virtual omgui::Rect get_rect () const
virtual omgui::Size get_size () const
virtual string get_title ()
string get_window_placement () const
int get_window_styles () const
string get_window_text () const
template<typename T>
T * get_wrapper ()
template<typename T>
const T * get_wrapper () const
omgui::Widgetget_wrapper ()
const omgui::Widgetget_wrapper () const
omgui::object_id get_wrapper_id () const
void invalidate_parent ()
virtual bool is_enabled () const
virtual bool is_hidden () const
virtual bool is_shown () const
bool process_menu_command (menu_id id)
int process_message (HWND hwnd, UINT msg, WPARAM w_param, LPARAM l_param)
bool process_notification (int notification, HWND hwnd)
void remove_ex_style (int style)
 Removes an extended style flag or flags from this HWND.
virtual Pointer< omgui::Panelset_content_panel (const Pointer< omgui::Panel > &p)
virtual void set_content_size (const omgui::Size &s)
void set_default_font ()
virtual void set_max_content_size (const omgui::Size &)
virtual void set_max_size (const omgui::Size &s)
void set_menu_bar (const Pointer< omgui::MenuBar > &menubar)
virtual void set_min_content_size (const omgui::Size &)
virtual void set_min_size (const omgui::Size &s)
virtual void set_natural_size (const omgui::Size &s)
virtual void set_position (const omgui::Point &p)
virtual void set_rect (const omgui::Rect &r)
virtual void set_size (const omgui::Size &s)
virtual void set_title (const string &t)
void set_window_placement (const string &placement)
void set_window_text (const string &str)
virtual void show (bool show, bool focus)
 Window (omgui::Window *wrapper=0)

Static Public Member Functions

static void set_default_font (HWND h)

Protected Member Functions

void create (const omgui::initializer::WidgetData &params, bool parent_required, LPCTSTR class_name, LPCTSTR window_name, int styles, int styles_ex=0, int x=0, int y=0, int w=0, int h=0, HMENU menu=0)
virtual void post_create (const omgui::initializer::WidgetData &params)
void set_old_proc (WNDPROC proc)
void set_window_pos (int x, int y, int w, int h, int flags=0)

Protected Attributes

bool m_hidden
HWND m_hwnd
omgui::Size m_max_size
omgui::Size m_min_size
omgui::Size m_natural_size
WNDPROC m_old_proc

Private Attributes

Pointer< omgui::Panelm_content_panel
Pointer< omgui::MenuBarm_menubar

Friends

class CreationHook
LRESULT CALLBACK widget_wndproc (HWND hwnd, UINT msg, WPARAM w_param, LPARAM l_param)
LRESULT CALLBACK window_wndproc (HWND hwnd, UINT msg, WPARAM w_param, LPARAM l_param)


Member Typedef Documentation

Initialization data used for Windows.

Reimplemented from omgui::api::Widget.

Reimplemented from omgui::api::TopLevel.


Constructor & Destructor Documentation

omgui::win32::Window::Window ( omgui::Window wrapper = 0  ) 


Member Function Documentation

void omgui::win32::Widget::add_ex_style ( int  style  )  [inherited]

Adds an extended style flag or flags to this HWND.

Performs existing_ex_style |= style

omgui::Size omgui::win32::Window::client_size_to_absolute ( const omgui::Size size  ) 

virtual void omgui::api::Window::create ( const data_type init_params  )  [pure virtual, inherited]

void omgui::win32::Widget::create ( const omgui::initializer::WidgetData params,
bool  parent_required,
LPCTSTR  class_name,
LPCTSTR  window_name,
int  styles,
int  styles_ex = 0,
int  x = 0,
int  y = 0,
int  w = 0,
int  h = 0,
HMENU  menu = 0 
) [protected, inherited]

Creates the native widget using CreateWindowEx.

Parameters:
params Initializer arguments for position, size, visibility and enabled states.
parent_required If true and params.m_parent is NULL, an exception is thrown
class_name Class name passed to CreateWindowEx
window_name Window name passed to CreateWindowEx
styles Window styles
styles_ex Extended window styles
x X position
y Y position
w Width
h Height
menu The menu handle for the widget

void omgui::win32::Window::create ( const omgui::initializer::WindowData params  ) 

Todo:
This may leak some memory because window classes registered by dll's are not unloaded by the NT kernel, but they are on flavors of win 95.

void omgui::win32::Widget::destroy (  )  [virtual, inherited]

Implements omgui::api::Widget.

void omgui::win32::Widget::enable ( bool  e  )  [virtual, inherited]

Implements omgui::api::Widget.

Pointer< omgui::Panel > omgui::win32::Window::get_content_panel (  )  const [virtual]

Implements omgui::api::Window.

virtual omgui::Size omgui::win32::Window::get_content_size (  )  [inline, virtual]

Implements omgui::api::TopLevel.

virtual void* omgui::win32::Widget::get_handle (  )  const [inline, virtual, inherited]

Implements omgui::api::Widget.

HFONT omgui::win32::Widget::get_hfont (  )  const [inherited]

Gets the HFONT associated with this HWND

omgui::Size omgui::win32::Window::get_max_content_size (  )  const [virtual]

Todo:
Implement

Implements omgui::api::Window.

omgui::Size omgui::win32::Widget::get_max_size (  )  const [virtual, inherited]

Implements omgui::api::Widget.

Pointer< omgui::MenuBar > omgui::win32::Window::get_menu_bar (  )  const [virtual]

Implements omgui::api::Window.

omgui::Size omgui::win32::Window::get_min_content_size (  )  const [virtual]

Todo:
Implement

Implements omgui::api::Window.

omgui::Size omgui::win32::Widget::get_min_size (  )  const [virtual, inherited]

omgui::Size omgui::win32::Widget::get_natural_size (  )  const [virtual, inherited]

Todo:
If m_natural_size has default values (0), calculate an acceptible value

Implements omgui::api::Widget.

Pointer< omgui::Panel > omgui::win32::Widget::get_parent (  )  const [virtual, inherited]

Implements omgui::api::Widget.

Pointer< omgui::Window > omgui::win32::Widget::get_parent_window (  )  const [virtual, inherited]

Implements omgui::api::Widget.

omgui::Point omgui::win32::Widget::get_position (  )  const [virtual, inherited]

Implements omgui::api::Widget.

omgui::Rect omgui::win32::Widget::get_rect (  )  const [virtual, inherited]

Implements omgui::api::Widget.

omgui::Size omgui::win32::Widget::get_size (  )  const [virtual, inherited]

Implements omgui::api::Widget.

string omgui::win32::Window::get_title (  )  [virtual]

Implements omgui::api::TopLevel.

string omgui::win32::Window::get_window_placement (  )  const [virtual]

Implements omgui::api::Window.

int omgui::win32::Widget::get_window_styles (  )  const [inherited]

Gets the window styles for this HWND

string omgui::win32::Widget::get_window_text (  )  const [inherited]

Todo:
Clean this function when we figure out what we are doing with strings

template<typename T>
T* omgui::common::Widget::get_wrapper (  )  [inline, inherited]

Returns:
The wrapper object for this Widget casted to T*

template<typename T>
const T* omgui::common::Widget::get_wrapper (  )  const [inline, inherited]

Returns:
The wrapper object for this Widget casted to const T *

omgui::Widget* omgui::common::Widget::get_wrapper (  )  [inline, inherited]

Returns:
The wrapper object for this Widget

const omgui::Widget* omgui::common::Widget::get_wrapper (  )  const [inline, inherited]

Returns:
The wrapper object for this Widget

omgui::object_id omgui::common::Widget::get_wrapper_id (  )  const [inherited]

Returns:
The id of this Widget's wrapper object

void omgui::win32::Widget::invalidate_parent (  )  [inherited]

Calls invalidate_cached_child_values on the parent if there is one

bool omgui::win32::Widget::is_enabled (  )  const [virtual, inherited]

Implements omgui::api::Widget.

bool omgui::win32::Widget::is_hidden (  )  const [virtual, inherited]

Implements omgui::api::Widget.

bool omgui::win32::Widget::is_shown (  )  const [virtual, inherited]

Implements omgui::api::Widget.

void omgui::win32::Widget::post_create ( const omgui::initializer::WidgetData params  )  [protected, virtual, inherited]

Performs post widget creation initialization

bool omgui::win32::Widget::process_menu_command ( menu_id  id  )  [inherited]

Processes a WM_COMMAND sent from a menu.

Returns:
True if the command was processed

int omgui::win32::Window::process_message ( HWND  hwnd,
UINT  msg,
WPARAM  w_param,
LPARAM  l_param 
) [virtual]

Instead of subclassing window procedures to simulate inheritance, there is only one window procedure, which is widget_wndproc. This function calls process_message which does all message processing. process_message is responsible for knowing whether or not to call DefWindowProc, or some other window procedure.

Reimplemented from omgui::win32::Widget.

bool omgui::win32::Widget::process_notification ( int  notification,
HWND  hwnd 
) [inherited]

Processes a WM_COMMAND sent from a control

Returns:
True if the command was processed

void omgui::win32::Widget::remove_ex_style ( int  style  )  [inherited]

Removes an extended style flag or flags from this HWND.

Performs existing_ex_style &= ~style

Pointer< omgui::Panel > omgui::win32::Window::set_content_panel ( const Pointer< omgui::Panel > &  p  )  [virtual]

Todo:
size the root panel

Implements omgui::api::Window.

void omgui::win32::Window::set_content_size ( const omgui::Size s  )  [virtual]

Todo:
Take into account what styles we might actually have.
Todo:
Also consider if there is a menu or not.
Todo:
Account for failure (ret 0).

Todo:
prevent sending multiple size changed messages

Todo:
This code has yet to be tested

Implements omgui::api::TopLevel.

void omgui::win32::Widget::set_default_font (  )  [inherited]

Sets the font for this HWND to be the acceptible default GUI font

void omgui::win32::Widget::set_default_font ( HWND  h  )  [static, inherited]

Sets the font for the given HWND to be the acceptible default GUI font

void omgui::win32::Window::set_max_content_size ( const omgui::Size size  )  [virtual]

Todo:
Implement

Implements omgui::api::Window.

void omgui::win32::Widget::set_max_size ( const omgui::Size s  )  [virtual, inherited]

Implements omgui::api::Widget.

void omgui::win32::Window::set_menu_bar ( const Pointer< omgui::MenuBar > &  menubar  )  [virtual]

Implements omgui::api::Window.

void omgui::win32::Window::set_min_content_size ( const omgui::Size size  )  [virtual]

Todo:
Implement

Implements omgui::api::Window.

void omgui::win32::Widget::set_min_size ( const omgui::Size s  )  [virtual, inherited]

Implements omgui::api::Widget.

void omgui::win32::Widget::set_natural_size ( const omgui::Size s  )  [virtual, inherited]

Implements omgui::api::Widget.

void omgui::win32::Widget::set_old_proc ( WNDPROC  proc  )  [inline, protected, inherited]

void omgui::win32::Widget::set_position ( const omgui::Point p  )  [virtual, inherited]

Implements omgui::api::Widget.

void omgui::win32::Widget::set_rect ( const omgui::Rect r  )  [virtual, inherited]

Implements omgui::api::Widget.

void omgui::win32::Widget::set_size ( const omgui::Size s  )  [virtual, inherited]

Implements omgui::api::Widget.

void omgui::win32::Window::set_title ( const string t  )  [virtual]

Implements omgui::api::TopLevel.

void omgui::win32::Window::set_window_placement ( const string placement  )  [virtual]

Todo:
Test this to ensure UNICODE support works correctly

Todo:
Handle invalid string

Todo:
Do something here

Implements omgui::api::Window.

void omgui::win32::Widget::set_window_pos ( int  x,
int  y,
int  w,
int  h,
int  flags = 0 
) [protected, inherited]

Wraps SetWindowPos and supports DeferWindowPos functionality

void omgui::win32::Widget::set_window_text ( const string str  )  [inherited]

Sets the text of this widget using SetWindowText

Todo:
This won't work for unicode...

void omgui::win32::Widget::show ( bool  show,
bool  focus 
) [virtual, inherited]

Implements omgui::api::Widget.

Reimplemented in omgui::win32::Panel.


Friends And Related Function Documentation

friend class CreationHook [friend, inherited]

LRESULT CALLBACK widget_wndproc ( HWND  hwnd,
UINT  msg,
WPARAM  w_param,
LPARAM  l_param 
) [friend, inherited]

This is the window procedure which is implemented outside of the win32::widget classes. It is called by the window procedures for all widgets and contains only common functionality.

LRESULT CALLBACK window_wndproc ( HWND  hwnd,
UINT  msg,
WPARAM  w_param,
LPARAM  l_param 
) [friend]


Member Data Documentation

bool omgui::win32::Widget::m_hidden [protected, inherited]

HWND omgui::win32::Widget::m_hwnd [protected, inherited]

WNDPROC omgui::win32::Widget::m_old_proc [protected, inherited]


doxygen SourceForge.net Logo