]> git.saurik.com Git - wxWidgets.git/blame_incremental - src/motif/stattext.cpp
XRC ignored menu bitmap on non-MSW platforms, fixed
[wxWidgets.git] / src / motif / stattext.cpp
... / ...
CommitLineData
1/////////////////////////////////////////////////////////////////////////////
2// Name: stattext.cpp
3// Purpose: wxStaticText
4// Author: Julian Smart
5// Modified by:
6// Created: 04/01/98
7// RCS-ID: $Id$
8// Copyright: (c) Julian Smart
9// Licence: wxWindows licence
10/////////////////////////////////////////////////////////////////////////////
11
12#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
13#pragma implementation "stattext.h"
14#endif
15
16// For compilers that support precompilation, includes "wx.h".
17#include "wx/wxprec.h"
18
19#ifdef __VMS
20#define XtDisplay XTDISPLAY
21#endif
22
23#include "wx/defs.h"
24#include "wx/stattext.h"
25
26#ifdef __VMS__
27#pragma message disable nosimpint
28#endif
29#include <Xm/Label.h>
30#ifdef __VMS__
31#pragma message enable nosimpint
32#endif
33
34#include "wx/motif/private.h"
35
36IMPLEMENT_DYNAMIC_CLASS(wxStaticText, wxControl);
37
38bool wxStaticText::Create(wxWindow *parent, wxWindowID id,
39 const wxString& label,
40 const wxPoint& pos,
41 const wxSize& size,
42 long style,
43 const wxString& name)
44{
45 if( !CreateControl( parent, id, pos, size, style,
46 wxDefaultValidator, name ) )
47 return false;
48
49 Widget parentWidget = (Widget) parent->GetClientWidget();
50
51 Widget borderWidget =
52 (Widget) wxCreateBorderWidget( (WXWidget)parentWidget, style );
53 wxXmString text( wxStripMenuCodes( label ) );
54 WXFontType fontType = m_font.GetFontType(XtDisplay(parentWidget));
55
56 m_labelWidget = XtVaCreateManagedWidget (wxConstCast(name.c_str(), char),
57 xmLabelWidgetClass,
58 borderWidget ? borderWidget : parentWidget,
59 wxFont::GetFontTag(), fontType,
60 XmNlabelString, text(),
61 XmNalignment,
62 ((style & wxALIGN_RIGHT) ? XmALIGNMENT_END :
63 ((style & wxALIGN_CENTRE) ? XmALIGNMENT_CENTER :
64 XmALIGNMENT_BEGINNING)),
65 NULL);
66
67 m_mainWidget = borderWidget ? borderWidget : m_labelWidget;
68
69 AttachWidget (parent, m_mainWidget, (WXWidget) NULL,
70 pos.x, pos.y, size.x, size.y);
71
72 ChangeBackgroundColour ();
73
74 return TRUE;
75}
76
77void wxStaticText::SetLabel(const wxString& label)
78{
79 wxXmString label_str(wxStripMenuCodes(label));
80
81 // This variable means we don't need so many casts later.
82 Widget widget = (Widget) m_labelWidget;
83
84 if (GetWindowStyle() & wxST_NO_AUTORESIZE)
85 {
86 XtUnmanageChild(widget);
87 Dimension width, height;
88 XtVaGetValues(widget, XmNwidth, &width, XmNheight, &height, NULL);
89
90 XtVaSetValues(widget,
91 XmNlabelString, label_str(),
92 XmNlabelType, XmSTRING,
93 NULL);
94 XtVaSetValues(widget,
95 XmNwidth, width,
96 XmNheight, height,
97 NULL);
98 XtManageChild(widget);
99 }
100 else
101 {
102 XtVaSetValues(widget,
103 XmNlabelString, label_str(),
104 XmNlabelType, XmSTRING,
105 NULL);
106 }
107}