]> git.saurik.com Git - wxWidgets.git/blobdiff - src/motif/control.cpp
Dialog unit mods; wxProp tidying
[wxWidgets.git] / src / motif / control.cpp
index aa0baba9eba3ffa8e1eb090a9cb62975f5cc8c8a..4e708a5c14d461778b14472c66d5a6f98280a0ed 100644 (file)
@@ -14,6 +14,9 @@
 #endif
 
 #include "wx/control.h"
+#include "wx/utils.h"
+
+#include <Xm/Xm.h>
 
 #if !USE_SHARED_LIBRARY
 IMPLEMENT_ABSTRACT_CLASS(wxControl, wxWindow)
@@ -44,13 +47,42 @@ wxControl::~wxControl()
 
 void wxControl::SetLabel(const wxString& label)
 {
-    // TODO
+  if (!GetMainWidget())
+    return;
+  wxStripMenuCodes((char*) (const char*) label, wxBuffer);
+
+  XmString text = XmStringCreateSimple (wxBuffer);
+  XtVaSetValues ((Widget) GetMainWidget(),
+                XmNlabelString, text,
+                 XmNlabelType, XmSTRING,
+                NULL);
+  XmStringFree (text);
 }
 
 wxString wxControl::GetLabel() const
 {
-    // TODO
-    return wxString("");
+  if (!GetMainWidget())
+    return wxEmptyString;
+
+  XmString text;
+  char *s;
+  XtVaGetValues ((Widget) GetMainWidget(),
+                XmNlabelString, &text,
+                NULL);
+
+  if (XmStringGetLtoR (text, XmSTRING_DEFAULT_CHARSET, &s))
+    {
+      wxString str(s);
+      XtFree (s);
+      XmStringFree(text);
+      return str;
+    }
+  else
+    {
+      XmStringFree(text);
+      return wxEmptyString;
+    }
 }
 
 void wxControl::ProcessCommand (wxCommandEvent & event)