Todo List

Member omgui::api::Button::data_type
"Controls" need a common base (checkboxes, radio, ...)

Member omgui::App::close_toplevel_windows ()
call close() instead of destroy()

Member omgui::App::gui_init ()
Why doesnt the normal menu bar work as expected? Making our own will break if Apple changes the default bar configuration

Member omgui::App::gui_init ()
throw exception

Member omgui::App::quit ()
send APP_QUIT

Member omgui::Widget::get_handle () const
Casting a pointer type to a type that isn't a pointer may not work under all circumstances

Member omgui::Button::get_label () const
Move this to the common base

Member omgui::Widget::is_hidden () const
Implement for gtk2 and cocoa

Member omgui::Widget::is_shown () const
Verify the newly documented behavior for this function on gtk2 and cocoa ports

Member omgui::Button::set_label (const string &label)
Move this to the common base

Member omgui::cocoa::Widget::create (const omgui::initializer::WidgetData &params, id widget)
m_enable

Member omgui::cocoa::Widget::create (const omgui::initializer::WidgetData &params, id widget)
What's if we're adding the widget later to a container?

Member omgui::cocoa::Widget::create (const omgui::initializer::WidgetData &params, id widget)
else?

Member omgui::cocoa::Widget::create (const omgui::initializer::WidgetData &params, id widget)
do_layout?

Member omgui::cocoa::Widget::enable (bool sensitive)

Member omgui::cocoa::Widget::get_parent () const
What should I do if the parent doesn't respond to omguiWidget ?

Member omgui::cocoa::Widget::get_parent_window () const
What should I do if the parent doesn't respond to omguiWidget ?

Member omgui::cocoa::Widget::is_enabled () const

Member omgui::cocoa::Widget::is_hidden () const
is that correct?

Member omgui::cocoa::Widget::show (bool show, bool activate)
activate

Member omgui::cocoa::EntryBox::delete_range (const omgui::TextRange &range)
call replace_range()

Member omgui::cocoa::EntryBox::insert_text (const string &str, omgui::text_range_t pos)
call replace_range()

Member omgui::cocoa::EntryBox::insert_text (const string &str, omgui::text_range_t pos)
return

Member omgui::cocoa::EntryBox::set_password_mode (bool mode)
This code is obsoleted because of an EntryBox interface change and the addition of SecureEntryBox

Member omgui::cocoa::EntryBox::set_read_only (bool b)
Remove duplicate code

Member omgui::cocoa::EventLoop::run ()
Implement the API for EventLoop properly

Member omgui::cocoa::Notebook::get_page (int index) const
Implement

Member omgui::cocoa::Notebook::get_page_count () const
Implement

Member omgui::cocoa::Notebook::get_page_index (NotebookPage page) const
Implement

Member omgui::cocoa::Notebook::get_page_name (NotebookPage page) const
Implement

Member omgui::cocoa::Notebook::remove_page (NotebookPage page)
Implement

Member omgui::cocoa::Notebook::select_next_page ()
Implement

Member omgui::cocoa::Notebook::select_previous_page ()
Implement

Member omgui::cocoa::Notebook::set_page_name (NotebookPage page, const string &name)
Implement

Member omgui::cocoa::Notebook::set_selected_page (NotebookPage page)
Implement

Member omgui::cocoa::TableLayout::get_min_size () const
Decide whether or not we allow calls to set_min_size to effect Panel derivatives

Member omgui::cocoa::Window::create (const omgui::initializer::WindowData &params)
Is there no default_size() ?

Member omgui::cocoa::Window::create (const omgui::initializer::WindowData &params)
What's'a good default size?

Member omgui::cocoa::Window::create (const omgui::initializer::WindowData &params)
else: estimate a good default position

Member omgui::cocoa::Window::create (const omgui::initializer::WindowData &params)
params.m_parent, params.m_enable

Member omgui::cocoa::Window::enable (bool sensitive)

Member omgui::cocoa::Window::get_max_content_size () const
Implement

Member omgui::cocoa::Window::get_menu_bar () const
Implement

Member omgui::cocoa::Window::get_min_content_size () const
Implement

Member omgui::cocoa::Window::get_window_placement () const
implement

Member omgui::cocoa::Window::is_enabled () const

Member omgui::cocoa::Window::set_content_panel (const Pointer< omgui::Panel > &p)
I think the old panel is unusable because it's getting released

Member omgui::cocoa::Window::set_menu_bar (const Pointer< omgui::MenuBar > &menubar)
Implement

Member omgui::cocoa::Window::set_window_placement (const string &placement)
Implement

Member omgui::cocoa::Window::show (bool show, bool activate)
That's only a temporary fix

Member omgui::ComboBox::get_item (int index) const
Should this method throw std::out_of_range or an omgui::exception when index is invalid?

Member omgui::ComboBox::remove (int index)
Should this method throw std::out_of_range or an omgui::exception when index is invalid?

Member omgui::ComboBox::set_selection (int index)
Should this method throw std::out_of_range or an omgui::exception when index is invalid?

Member omgui::common::Panel::m_children
Consider whether storing this is really necessary. The gui kits will undoubtedly do it themselves as well.

Member omgui::TextWidget::set_insertion_point (text_range_t pos)
MR: I'm not so sure about the focus postconditions reasonability

Member omgui::Exception::what () const
Once we figure out unicode, a localized version should also be provided

Member omgui::gtk2::Widget::create (const omgui::initializer::WidgetData &, GtkWidget *)
Fix logic later

Member omgui::gtk2::Widget::create (const omgui::initializer::WidgetData &, GtkWidget *)
Uncomment after all set_{min,max}_size methods are aware of the DEFAULT_* values

Member omgui::gtk2::Widget::create (const omgui::initializer::WidgetData &, GtkWidget *)
Make sure nothing above realizes the control, and change order appropriately if something does. E.g show() is in all derived class create()'s instead of here.

Member omgui::gtk2::Button::create (const omgui::initializer::ButtonData &params)
Use factory params

Member omgui::gtk2::Button::create (const omgui::initializer::ButtonData &params)
IMPLEMENT

Member omgui::gtk2::Button::create (const omgui::initializer::ButtonData &params)
Check in set_label instead, for delayed creation on set_label("") too?

Member omgui::gtk2::Widget::destroy ()
I (RM) blindly changed this, see if it works

Member omgui::gtk2::Button::get_label () const
UTF8 -> string

Member omgui::gtk2::Button::set_label (const string &label)
string -> UTF8

Member omgui::gtk2::Widget::set_min_size (const omgui::Size &)
Does passing 0,0 set it to "as small as possible" in the terms we want?

Member omgui::gtk2::Widget::set_min_size (const omgui::Size &)
Do we want this?

Member omgui::gtk2::Widget::set_size (const omgui::Size &)
Do we want to enforce allocation instead? Yes.

Member omgui::gtk2::Widget::set_size (const omgui::Size &)
Deal with DEFAULT_* values

Member omgui::gtk2::EntryBox::create (const omgui::initializer::EntryBoxData &params)
Use factory params

Member omgui::gtk2::EntryBox::create (const omgui::initializer::EntryBoxData &params)
IMPLEMENT

Member omgui::gtk2::EntryBox::get_text (const omgui::TextRange &) const
UTF8 -> string

Member omgui::gtk2::EntryBox::get_text () const
UTF8 -> string

Member omgui::gtk2::EntryBox::insert_text (const string &, omgui::text_range_t)
string -> UTF8

Member omgui::gtk2::EntryBox::set_insertion_point (omgui::text_range_t)
Negativity consideration?

Member omgui::gtk2::EntryBox::set_max_length (omgui::text_range_t)
-1 is supposed to be converted to 0 - unless we change the docs

Member omgui::gtk2::EntryBox::set_selection_bounds (const omgui::TextRange &)
Unit test fails

Member omgui::gtk2::EntryBox::set_selection_range (const omgui::TextRange &)
Unit test fails

Member omgui::gtk2::EntryBox::set_text (const string &)
string -> UTF8

Member omgui::gtk2::EventLoop::run ()
Implement the EventLoop api properly

Member omgui::gtk2::Notebook::append_page (NotebookPage page, const string &name)
string -> UTF8

Member omgui::gtk2::Notebook::create (const omgui::initializer::NotebookData &params)
Use factory params

Member omgui::gtk2::Notebook::create (const omgui::initializer::NotebookData &params)
IMPLEMENT

Member omgui::gtk2::Notebook::get_page (int index) const
throw something instead

Member omgui::gtk2::Notebook::get_page_index (NotebookPage page) const
Doesn't work right with proof sample

Member omgui::gtk2::Notebook::get_page_index (NotebookPage page) const
throw something instead

Member omgui::gtk2::Notebook::get_page_name (NotebookPage page) const
UTF8 -> string

Member omgui::gtk2::Notebook::insert_page (int where, NotebookPage page, const string &name)
string -> UTF8

Member omgui::gtk2::Notebook::select_next_page ()
event emission

Member omgui::gtk2::Notebook::select_next_page ()
correct return value based on event emission and if a next page existed

Member omgui::gtk2::Notebook::select_previous_page ()
event emission

Member omgui::gtk2::Notebook::select_previous_page ()
correct return value based on event emission and if a previous page existed

Member omgui::gtk2::Notebook::set_page_name (NotebookPage page, const string &name)
string -> UTF8

Member omgui::gtk2::Notebook::set_selected_page (NotebookPage page)
event emission

Member omgui::gtk2::Notebook::set_selected_page (NotebookPage page)
proper return value based on event emission

Member omgui::gtk2::TableLayout::get_min_size () const
Decide whether or not we allow calls to set_min_size to effect Panel derivatives

Member omgui::gtk2::TextBox::create (const omgui::initializer::TextBoxData &params)
Use factory params

Member omgui::gtk2::TextBox::create (const omgui::initializer::TextBoxData &params)
Use correct border

Member omgui::gtk2::TextBox::create (const omgui::initializer::TextBoxData &params)
throw earlier or clean up m_text

Member omgui::gtk2::TextBox::get_text (const omgui::TextRange &) const
UTF8 -> string

Member omgui::gtk2::TextBox::get_text () const
UTF8 -> string

Member omgui::gtk2::TextBox::insert_text (const string &)
string -> UTF8

Member omgui::gtk2::TextBox::insert_text (const string &, omgui::text_range_t)
Do we allow negative positions? If not, remove the if block

Member omgui::gtk2::TextBox::insert_text (const string &, omgui::text_range_t)
string -> UTF8

Member omgui::gtk2::TextBox::set_insertion_point (omgui::text_range_t)
Should the focusing postcondition remain in effect?

Member omgui::gtk2::TextBox::set_max_length (omgui::text_range_t)
IMPLEMENT

Member omgui::gtk2::TextBox::set_selection_bounds (const omgui::TextRange &)
Do we need to normalize?

Member omgui::gtk2::TextBox::set_text (const string &)
string -> UTF8

Member omgui::gtk2::Window::create (const omgui::initializer::WindowData &params)
Find a different sensible thing to quit the application with

Member omgui::gtk2::Window::get_content_panel () const

Member omgui::gtk2::Window::get_content_size ()
subtract menubar/toolbar/statusbar etc in a cross-platform manner

Member omgui::gtk2::Window::get_max_content_size () const
Implement

Member omgui::gtk2::Window::get_max_size () const
Are info->geometry.max_*'s -1 if set_geometry_hints hasn't been called?

Member omgui::gtk2::Window::get_menu_bar () const
Implement

Member omgui::gtk2::Window::get_min_content_size () const
Implement

Member omgui::gtk2::Window::get_min_size () const
Are info->geometry.min_*'s -1 if set_geometry_hints hasn't been called?

Member omgui::gtk2::Window::get_size () const
realization: Maybe just realize above if not already done?

Member omgui::gtk2::Window::get_size () const
multihead: GdkScreen must be associated with the widget (font sizes)

Member omgui::gtk2::Window::get_size () const
EWMH: Add expected wm frame sizes

Member omgui::gtk2::Window::get_title ()
UTF8 -> string

Member omgui::gtk2::Window::get_window_placement () const
implement

Member omgui::gtk2::Window::set_content_panel (omgui::api::Panel *p)

Member omgui::gtk2::Window::set_content_size (const omgui::Size &)
Deal with DEFAULT_* values

Member omgui::gtk2::Window::set_content_size (const omgui::Size &)
Add visible size of the menubar/statusbar, and similar non-drawable portions in the window. Alternatively if we treat the window as a container, we might be able to just set the size of the widget, that inside the container that is equal to the client area, with gdk_window_resize.

Member omgui::gtk2::Window::set_max_content_size (const omgui::Size &)
Implement

Member omgui::gtk2::Window::set_max_size (const omgui::Size &)
Deal with DEFAULT_* values

Member omgui::gtk2::Window::set_menu_bar (const Pointer< omgui::MenuBar > &menubar)
Implement

Member omgui::gtk2::Window::set_min_content_size (const omgui::Size &)
Implement

Member omgui::gtk2::Window::set_min_size (const omgui::Size &)
Deal with DEFAULT_* values

Member omgui::gtk2::Window::set_position (const omgui::Point &)
Deal with DEFAULT_* values

Member omgui::gtk2::Window::set_size (const omgui::Size &)
Deal with DEFAULT_* values

Member omgui::gtk2::Window::set_size (const omgui::Size &)
What's the best estimation for these?

Member omgui::gtk2::Window::set_title (const string &)
string -> UTF8

Member omgui::gtk2::Window::set_window_placement (const string &placement)
Implement

Member omgui::gtk2::Window::show (bool show, bool activate)
GTK2.6 specific: Sets _NET_WM_USER_TIME to 0 among other things if activate == true

Member omgui::Notebook::get_page (int index) const
Be more specific about what will be thrown

Member omgui::Notebook::get_page_index (NotebookPage page) const
Be more specific about what will be thrown

Member omgui::Panel::update_layout ()
Child widgets need to invalidate the cached min, max, and natural sizes in their parent TableLayout if their min max or natural size changes so that update_layout functions correctly.

Class omgui::TableLayoutInfo
Add a reference, or "See also" link, pointing to the enum documentation for layout flags

Class omgui::TextWidget
None of the post conditions for these functions are honored yet because focus handling is not implemented.

Member omgui::win32::Button::calc_min_size () const
Remove magic numbers, the margin and border values should be accessible somehow

Member omgui::win32::Widget::get_natural_size () const
If m_natural_size has default values (0), calculate an acceptible value

Member omgui::win32::Widget::get_window_text () const
Clean this function when we figure out what we are doing with strings

Member omgui::win32::Widget::set_window_text (const string &str)
This won't work for unicode...

Member omgui::win32::ComboBox::remove (int index)
What to throw here if index is invalid?

Member omgui::win32::ComboBox::set_selection (int index)
What to throw here if index is invalid?

Member omgui::win32::TextWidget::delete_range (const omgui::TextRange &range)
Prevent the sending of spurious messages

Member omgui::win32::TextWidget::delete_range (const omgui::TextRange &range)
Should this operation be undo-able?

Member omgui::win32::TextWidget::insert_text (const string &str)
Prevent the sending of spurious messages

Member omgui::win32::TextWidget::insert_text (const string &str)
Figure out what to do if there is already a selection

Member omgui::win32::TextWidget::insert_text (const string &str)
Should this operation be undo-able?

Member omgui::win32::TextWidget::insert_text (const string &str, omgui::text_range_t pos)
Prevent the sending of spurious messages

Member omgui::win32::TextWidget::insert_text (const string &str, omgui::text_range_t pos)
Should this operation be undo-able?

Member omgui::win32::TextWidget::set_max_length (omgui::text_range_t len)
override this for RichEdits because the value 0 means 64,000 and not "no limit"

Member omgui::win32::EventLoop::run ()
Do something if GetMessage returns -1

Member omgui::win32::EventLoop::run ()
return the exit code value somehow

Member omgui::win32::Panel::begin_defer_window_pos ()
Handle failre of BeginDeferWindowPos

Member omgui::win32::Panel::defer_window_pos (HWND hwnd, int x, int y, int w, int h, int flags)
Handle failure of DeferWindowPos

Member omgui::win32::Panel::end_defer_window_pos ()
Handle failure of EndDeferWindowPos

Member omgui::win32::Notebook::get_page_index (NotebookPage page) const
Throw something?

Member omgui::win32::Notebook::get_win32_page (int index) const
Determine what we want to do with our exceptions. Do we want a hierarchy of WidgetException, DerivedWidgetException? Or would we rather just use asserts for this?

Member omgui::win32::Notebook::insert_page (int where, NotebookPage page, const string &name)
Check for failure...

Member omgui::win32::Notebook::process_message (HWND hwnd, UINT msg, WPARAM w_param, LPARAM l_param)
If we create a logging facility, be sure to log this failure

Member omgui::win32::Notebook::remove_page (NotebookPage page)
Throw if page isnt found?

Member omgui::win32::Panel::process_message (HWND hwnd, UINT msg, WPARAM w_param, LPARAM l_param)
Check for success and record failure

Member omgui::win32::Panel::process_message (HWND hwnd, UINT msg, WPARAM w_param, LPARAM l_param)
Investigate why buttons only draw the right background

Member omgui::win32::TableLayout::get_min_size () const
Decide whether or not we allow calls to set_min_size to effect Panel derivatives

Member omgui::win32::TextBox::get_text (const omgui::TextRange &range) const
This is coded for winxp only (maybe 2k also), won't work elsewhere

Member omgui::win32::Window::create (const omgui::initializer::WindowData &params)
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.

Member omgui::win32::Window::get_max_content_size () const
Implement

Member omgui::win32::Window::get_min_content_size () const
Implement

Member omgui::win32::Window::process_message (HWND hwnd, UINT msg, WPARAM w_param, LPARAM l_param)
Need to use max and min size values considering both the windows size value and the content panels. Chose which ever is larger or smaller, according to documented behavior

Member omgui::win32::Window::set_content_panel (const Pointer< omgui::Panel > &p)
size the root panel

Member omgui::win32::Window::set_content_size (const omgui::Size &s)
Take into account what styles we might actually have.

Member omgui::win32::Window::set_content_size (const omgui::Size &s)
Also consider if there is a menu or not.

Member omgui::win32::Window::set_content_size (const omgui::Size &s)
Account for failure (ret 0).

Member omgui::win32::Window::set_content_size (const omgui::Size &s)
prevent sending multiple size changed messages

Member omgui::win32::Window::set_content_size (const omgui::Size &s)
This code has yet to be tested

Member omgui::win32::Window::set_max_content_size (const omgui::Size &)
Implement

Member omgui::win32::Window::set_min_content_size (const omgui::Size &)
Implement

Member omgui::win32::Window::set_window_placement (const string &placement)
Test this to ensure UNICODE support works correctly

Member omgui::win32::Window::set_window_placement (const string &placement)
Handle invalid string

Member omgui::win32::Window::set_window_placement (const string &placement)
Do something here

Class OmguiSecureTextField(RenderingHack)
This is a hack that fixes rendering bugs. There should be a better way to fix them,

Member omgui::cocoa::utils::convert_point (omgui::Point p, float height)
test that on a dual-screen.

Member omgui::gtk2::utils::get_extents (GtkWidget *)
GTK2.2 specific

Member omgui::entry (omgui::main_ptr main, int argc, char *argv[])
Provide proper return code facility

Member omgui::win32::initialize ()
Log a failure if it occurs

Member omgui::win32::initialize ()
Should probably call FreeLibrary at some point

Member omgui::win32::associate_hwnd (HWND h, Widget *wnd)
Throw if setting the window property fails

Member set_up_menubar
Localization

Member omgui::gtk2::cpaf_fixed_size_allocate (GtkWidget *gtkwidget, GtkAllocation *alloc, Panel *widget)
Revise the logic. Possibly writing our own gtk+ container for this

Page OMGUI for wxWidgets programmers
Complete this document


doxygen SourceForge.net Logo