]>
git.saurik.com Git - wxWidgets.git/blob - src/motif/stattext.cpp
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: src/motif/stattext.cpp
3 // Purpose: wxStaticText
4 // Author: Julian Smart
8 // Copyright: (c) Julian Smart
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
12 // For compilers that support precompilation, includes "wx.h".
13 #include "wx/wxprec.h"
16 #define XtDisplay XTDISPLAY
21 #include "wx/stattext.h"
24 #pragma message disable nosimpint
28 #pragma message enable nosimpint
31 #include "wx/motif/private.h"
33 IMPLEMENT_DYNAMIC_CLASS(wxStaticText
, wxControl
)
35 bool wxStaticText::Create(wxWindow
*parent
, wxWindowID id
,
36 const wxString
& label
,
42 if( !CreateControl( parent
, id
, pos
, size
, style
,
43 wxDefaultValidator
, name
) )
46 Widget parentWidget
= (Widget
) parent
->GetClientWidget();
49 (Widget
) wxCreateBorderWidget( (WXWidget
)parentWidget
, style
);
52 XtVaCreateManagedWidget (wxConstCast(name
.mb_str(), char),
54 borderWidget
? borderWidget
: parentWidget
,
55 wxFont::GetFontTag(), m_font
.GetFontTypeC(XtDisplay(parentWidget
)),
56 XmNalignment
, ((style
& wxALIGN_RIGHT
) ? XmALIGNMENT_END
:
57 ((style
& wxALIGN_CENTRE
) ? XmALIGNMENT_CENTER
:
58 XmALIGNMENT_BEGINNING
)),
59 XmNrecomputeSize
, ((style
& wxST_NO_AUTORESIZE
) ? TRUE
: FALSE
),
62 m_mainWidget
= borderWidget
? borderWidget
: m_labelWidget
;
64 AttachWidget (parent
, m_mainWidget
, (WXWidget
) NULL
,
65 pos
.x
, pos
.y
, size
.x
, size
.y
);
67 ChangeBackgroundColour ();
74 void wxStaticText::SetLabel(const wxString
& label
)
76 m_labelOrig
= label
; // save original label
78 // Motif does not support neither ellipsize nor markup in static text:
79 DoSetLabel(GetEllipsizedLabelWithoutMarkup());
82 // for wxST_ELLIPSIZE_* support:
84 wxString
wxStaticText::DoGetLabel() const
86 XmString label
= NULL
;
87 XtVaGetValues((Widget
)m_labelWidget
, XmNlabelString
, &label
, NULL
);
89 return wxXmStringToString(label
);
92 void wxStaticText::DoSetLabel(const wxString
& str
)
94 // build our own cleaned label
95 wxXmString
label_str(RemoveMnemonics(str
));
97 // This variable means we don't need so many casts later.
98 Widget widget
= (Widget
) m_labelWidget
;
100 XtVaSetValues(widget
,
101 XmNlabelString
, label_str(),
102 XmNlabelType
, XmSTRING
,
107 FIXME: UpdateLabel() should be called on size events to allow correct
108 dynamic ellipsizing of the label
111 #endif // wxUSE_STATTEXT