/////////////////////////////////////////////////////////////////////////////
-// Name: private.h
+// Name: wx/motif/private.h
// Purpose: Private declarations for wxMotif port
// Author: Julian Smart
// Modified by:
// ----------------------------------------------------------------------------
// All widgets should have this as their resize proc.
-extern void wxWidgetResizeProc(Widget w, XConfigureEvent *event,
+extern void wxWidgetResizeProc(Widget w, XConfigureEvent *event,
String args[], int *num_args);
// For repainting arbitrary windows
-void wxUniversalRepaintProc(Widget w, XtPointer WXUNUSED(c_data),
+void wxUniversalRepaintProc(Widget w, XtPointer WXUNUSED(c_data),
XEvent *event, char *);
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// Creates a bitmap with transparent areas drawn in the given colour.
-wxBitmap wxCreateMaskedBitmap(const wxBitmap& bitmap, wxColour& colour);
+wxBitmap wxCreateMaskedBitmap(const wxBitmap& bitmap, const wxColour& colour);
// ----------------------------------------------------------------------------
// key events related functions
extern void wxDoChangeForegroundColour(WXWidget widget,
wxColour& foregroundColour);
extern void wxDoChangeBackgroundColour(WXWidget widget,
- wxColour& backgroundColour,
+ const wxColour& backgroundColour,
bool changeArmColour = false);
-extern void wxDoChangeFont(WXWidget widget, wxFont& font);
+extern void wxDoChangeFont(WXWidget widget, const wxFont& font);
extern void wxGetTextExtent(WXDisplay* display, const wxFont& font,
double scale,
const wxString& string, int* width, int* height,
int* ascent, int* descent);
+extern void wxGetTextExtent(const wxWindow* window, const wxString& str,
+ int* width, int* height,
+ int* ascent, int* descent);
#define wxNO_COLORS 0x00
#define wxBACK_COLORS 0x01
// cleaning up automatically)
class wxXmString
{
+ void Init(const char *str)
+ {
+ m_string = XmStringCreateLtoR((char *)str, XmSTRING_DEFAULT_CHARSET);
+ }
+
public:
wxXmString(const char* str)
{
- m_string = XmStringCreateLtoR((char *)str, XmSTRING_DEFAULT_CHARSET);
+ Init(str);
}
wxXmString(const wxString& str)
{
- m_string = XmStringCreateLtoR((char *)str.c_str(),
- XmSTRING_DEFAULT_CHARSET);
+ Init(str.mb_str());
+ }
+
+ wxXmString(const wxCStrData& str)
+ {
+ Init(str);
}
// just to avoid calling XmStringFree()
wxXmString(const XmString& string) { m_string = string; }
~wxXmString() { XmStringFree(m_string); }
-
+
// semi-implicit conversion to XmString (shouldn't rely on implicit
// conversion because many of Motif functions are macros)
XmString operator()() const { return m_string; }
-
+
private:
XmString m_string;
};