]> git.saurik.com Git - wxWidgets.git/blobdiff - src/motif/textctrl.cpp
Changes to WXDLLEXPORT keyword position for VC++ 6.0; changed
[wxWidgets.git] / src / motif / textctrl.cpp
index ba5066934a1cd270f076e048b638e905fb664619..b28bdf9ef51fa28190c64ecb75098d4434ba6ab1 100644 (file)
@@ -181,7 +181,9 @@ wxString wxTextCtrl::GetValue() const
 
 void wxTextCtrl::SetValue(const wxString& value)
 {
-    wxASSERT_MSG( (!value.IsNull()), "Must not pass a null string to wxTextCtrl::SetValue." ) ;
+  // This assert is wrong -- means that you can't set an empty
+  // string (IsNull == IsEmpty).
+  //    wxASSERT_MSG( (!value.IsNull()), "Must not pass a null string to wxTextCtrl::SetValue." ) ;
     m_inSetValue = TRUE;
 
     XmTextSetString ((Widget) m_mainWidget, (char*) (const char*) value);
@@ -646,11 +648,47 @@ void wxTextCtrl::ChangeFont(bool keepOriginalSize)
 void wxTextCtrl::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)
+    if (hsb)
+        DoChangeBackgroundColour((WXWidget) hsb, m_backgroundColour, TRUE);
+    if (vsb)
+        DoChangeBackgroundColour((WXWidget) vsb, m_backgroundColour, TRUE);
+     */
+
+    DoChangeBackgroundColour((WXWidget) parent, m_backgroundColour, TRUE);
 }
 
 void wxTextCtrl::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)
+    if (hsb)
+        DoChangeForegroundColour((WXWidget) hsb, m_foregroundColour);
+    if (vsb)
+        DoChangeForegroundColour((WXWidget) vsb, m_foregroundColour);
+     */
+    DoChangeForegroundColour((WXWidget) parent, m_foregroundColour);
 }
 
 static void wxTextWindowChangedProc (Widget w, XtPointer clientData, XtPointer ptr)