X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4b5f3fe655deeb91d5d3abe8fad30c4a1cae63dc..5de5db0eb14aa86b5b177050720deb0f4c210fba:/src/motif/listbox.cpp diff --git a/src/motif/listbox.cpp b/src/motif/listbox.cpp index 2952cadbab..13fca3d66d 100644 --- a/src/motif/listbox.cpp +++ b/src/motif/listbox.cpp @@ -112,8 +112,6 @@ bool wxListBox::Create(wxWindow *parent, wxWindowID id, AttachWidget (parent, m_mainWidget, (WXWidget) NULL, pos.x, pos.y, width, height); - m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOW); - ChangeBackgroundColour(); return TRUE; @@ -173,8 +171,8 @@ void wxListBox::Delete(int N) if (node) m_clientDataList.DeleteNode(node); // if existed then delete from list node = m_clientDataList.First(); // we now have to adjust all keys that while (node) // are >=N+1 - { if (node->key.integer >= (long)(N+1)) // very ugly C++ wise but no other way - node->key.integer--; // to look at or change key value + { if (node->GetKeyInteger() >= (long)(N+1)) + node->SetKeyInteger(node->GetKeyInteger() - 1); node = node->Next(); } @@ -751,10 +749,41 @@ void wxListBox::ChangeFont(bool keepOriginalSize) void wxListBox::ChangeBackgroundColour() { wxWindow::ChangeBackgroundColour(); + + Widget parent = XtParent ((Widget) m_mainWidget); + Widget hsb, vsb; + + XtVaGetValues (parent, + XmNhorizontalScrollBar, &hsb, + XmNverticalScrollBar, &vsb, + NULL); + + /* TODO: should scrollbars be affected? Should probably have separate + * function to change them (by default, taken from wxSystemSettings) + DoChangeBackgroundColour((WXWidget) hsb, m_backgroundColour, TRUE); + DoChangeBackgroundColour((WXWidget) vsb, m_backgroundColour, TRUE); + */ + + DoChangeBackgroundColour((WXWidget) parent, m_backgroundColour, TRUE); } void wxListBox::ChangeForegroundColour() { wxWindow::ChangeForegroundColour(); + + Widget parent = XtParent ((Widget) m_mainWidget); + Widget hsb, vsb; + + XtVaGetValues (parent, + XmNhorizontalScrollBar, &hsb, + XmNverticalScrollBar, &vsb, + NULL); + /* TODO: should scrollbars be affected? Should probably have separate + * function to change them (by default, taken from wxSystemSettings) + DoChangeForegroundColour((WXWidget) hsb, m_foregroundColour); + DoChangeForegroundColour((WXWidget) vsb, m_foregroundColour); + DoChangeForegroundColour((WXWidget) parent, m_foregroundColour); + */ } +