From 7227cefd3b8a71e2d77e2c577ad05539585ba58b Mon Sep 17 00:00:00 2001
From: Julian Smart <julian@anthemion.co.uk>
Date: Tue, 23 Jul 2002 17:28:58 +0000
Subject: [PATCH] Applied patch [ 585322 ] motif border style fix for
 statictext

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16261 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---
 src/motif/stattext.cpp | 40 ++++++++++++++++++++++++++++++++++++++--
 1 file changed, 38 insertions(+), 2 deletions(-)

diff --git a/src/motif/stattext.cpp b/src/motif/stattext.cpp
index 3b7b342e6b..742fa52c76 100644
--- a/src/motif/stattext.cpp
+++ b/src/motif/stattext.cpp
@@ -25,6 +25,7 @@
 #ifdef __VMS__
 #pragma message disable nosimpint
 #endif
+#include <Xm/Frame.h>
 #include <Xm/Label.h>
 #include <Xm/LabelG.h>
 #include <Xm/PushBG.h>
@@ -61,6 +62,39 @@ bool wxStaticText::Create(wxWindow *parent, wxWindowID id,
     
     Widget parentWidget = (Widget) parent->GetClientWidget();
 
+    Widget borderWidget = NULL;
+    
+    // Decorate the label widget if a border style is specified.
+    if (style & wxSIMPLE_BORDER)
+    {
+        borderWidget = XtVaCreateManagedWidget
+                                   (
+                                    "simpleBorder",
+                                    xmFrameWidgetClass, parentWidget,
+                                    XmNshadowType, XmSHADOW_ETCHED_IN,
+                                    XmNshadowThickness, 1,
+                                    NULL
+                                   );
+    } else if (style & wxSUNKEN_BORDER)
+    {
+        borderWidget = XtVaCreateManagedWidget
+                                   (
+                                    "sunkenBorder",
+                                    xmFrameWidgetClass, parentWidget,
+                                    XmNshadowType, XmSHADOW_IN,
+                                    NULL
+                                   );
+    } else if (style & wxRAISED_BORDER)
+    {
+        borderWidget = XtVaCreateManagedWidget
+                                   (
+                                    "raisedBorder",
+                                    xmFrameWidgetClass, parentWidget,
+                                    XmNshadowType, XmSHADOW_OUT,
+                                    NULL
+                                   );
+    }
+
 #if 0 // gcc 2.95 doesn't like this apparently    
     // Use XmStringCreateLtoR(), since XmStringCreateSimple
     // doesn't obey separators.
@@ -72,9 +106,9 @@ bool wxStaticText::Create(wxWindow *parent, wxWindowID id,
     
     XmFontList fontList = (XmFontList) m_font.GetFontList(1.0, XtDisplay(parentWidget));
 
-    m_mainWidget = (WXWidget) XtVaCreateManagedWidget ((char*) (const char*) name,
+    Widget labelWidget = XtVaCreateManagedWidget ((char*) (const char*) name,
                                          xmLabelWidgetClass,
-                                         parentWidget,
+                                         borderWidget ? borderWidget : parentWidget,
                                          XmNfontList, fontList,
                                          XmNlabelString, text,
                                          XmNalignment,
@@ -85,6 +119,8 @@ bool wxStaticText::Create(wxWindow *parent, wxWindowID id,
 
     XmStringFree (text);
 
+    m_mainWidget = borderWidget ? borderWidget : labelWidget;
+
     SetCanAddEventHandler(TRUE);
     AttachWidget (parent, m_mainWidget, (WXWidget) NULL, pos.x, pos.y, size.x, size.y);
 
-- 
2.47.2