| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 | 
							- /////////////////////////////////////////////////////////////////////////////
 
- // Name:        wx/motif/private.h
 
- // Purpose:     Private declarations for wxMotif port
 
- // Author:      Julian Smart
 
- // Modified by:
 
- // Created:     17/09/98
 
- // Copyright:   (c) Julian Smart
 
- // Licence:     wxWindows licence
 
- /////////////////////////////////////////////////////////////////////////////
 
- #ifndef _WX_PRIVATE_H_
 
- #define _WX_PRIVATE_H_
 
- #include "wx/defs.h"
 
- #include <X11/Xlib.h>
 
- #include <Xm/Xm.h>
 
- #include "wx/evtloop.h"
 
- class WXDLLIMPEXP_FWD_CORE wxFont;
 
- class WXDLLIMPEXP_FWD_CORE wxWindow;
 
- class WXDLLIMPEXP_FWD_CORE wxSize;
 
- class WXDLLIMPEXP_FWD_CORE wxBitmap;
 
- class WXDLLIMPEXP_FWD_CORE wxColour;
 
- #include "wx/x11/privx.h"
 
- // Put any private declarations here: native Motif types may be used because
 
- // this header is included after Xm/Xm.h
 
- // ----------------------------------------------------------------------------
 
- // convenience macros
 
- // ----------------------------------------------------------------------------
 
- #define wxCHECK_MOTIF_VERSION( major, minor ) \
 
-   ( XmVersion >= (major) * 1000 + (minor) )
 
- #define wxCHECK_LESSTIF_VERSION( major, minor ) \
 
-   ( LesstifVersion >= (major) * 1000 + (minor) )
 
- #define wxCHECK_LESSTIF() ( __WXLESSTIF__ )
 
- // some compilers (e.g. Sun CC) give warnings when treating string literals as
 
- // (non const) "char *" but many Motif functions take "char *" parameters which
 
- // are really "const char *" so use this macro to suppress the warnings when we
 
- // know it's ok
 
- #define wxMOTIF_STR(x) const_cast<char *>(x)
 
- // ----------------------------------------------------------------------------
 
- // Miscellaneous functions
 
- // ----------------------------------------------------------------------------
 
- WXWidget wxCreateBorderWidget( WXWidget parent, long style );
 
- // ----------------------------------------------------------------------------
 
- // common callbacks
 
- // ----------------------------------------------------------------------------
 
- // All widgets should have this as their resize proc.
 
- extern void wxWidgetResizeProc(Widget w, XConfigureEvent *event,
 
-                                String args[], int *num_args);
 
- // For repainting arbitrary windows
 
- void wxUniversalRepaintProc(Widget w, XtPointer WXUNUSED(c_data),
 
-                             XEvent *event, char *);
 
- // ----------------------------------------------------------------------------
 
- // we maintain a hash table which contains the mapping from Widget to wxWindow
 
- // corresponding to the window for this widget
 
- // ----------------------------------------------------------------------------
 
- extern void wxDeleteWindowFromTable(Widget w);
 
- extern wxWindow *wxGetWindowFromTable(Widget w);
 
- extern bool wxAddWindowToTable(Widget w, wxWindow *win);
 
- // ----------------------------------------------------------------------------
 
- // wxBitmap related functions
 
- // ----------------------------------------------------------------------------
 
- // Creates a bitmap with transparent areas drawn in the given colour.
 
- wxBitmap wxCreateMaskedBitmap(const wxBitmap& bitmap, const wxColour& colour);
 
- // ----------------------------------------------------------------------------
 
- // key events related functions
 
- // ----------------------------------------------------------------------------
 
- extern char wxFindMnemonic(const char* s);
 
- extern char * wxFindAccelerator (const char *s);
 
- extern XmString wxFindAcceleratorText (const char *s);
 
- // ----------------------------------------------------------------------------
 
- // TranslateXXXEvent() functions - translate Motif event to wxWindow one
 
- // ----------------------------------------------------------------------------
 
- extern bool wxTranslateMouseEvent(wxMouseEvent& wxevent, wxWindow *win,
 
-                                   Widget widget, const XEvent *xevent);
 
- extern bool wxTranslateKeyEvent(wxKeyEvent& wxevent, wxWindow *win,
 
-                                 Widget widget, const XEvent *xevent);
 
- extern void wxDoChangeForegroundColour(WXWidget widget,
 
-                                        wxColour& foregroundColour);
 
- extern void wxDoChangeBackgroundColour(WXWidget widget,
 
-                                        const wxColour& backgroundColour,
 
-                                        bool changeArmColour = false);
 
- 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
 
- #define wxFORE_COLORS 0x02
 
- extern XColor itemColors[5] ;
 
- #define wxBACK_INDEX 0
 
- #define wxFORE_INDEX 1
 
- #define wxSELE_INDEX 2
 
- #define wxTOPS_INDEX 3
 
- #define wxBOTS_INDEX 4
 
- // ----------------------------------------------------------------------------
 
- // XmString/wxString conversion utilities
 
- // ----------------------------------------------------------------------------
 
- wxString wxXmStringToString( const XmString& xmString );
 
- XmString wxStringToXmString( const char* string );
 
- inline XmString wxStringToXmString( const wxScopedCharBuffer& string )
 
-     { return wxStringToXmString(string.data()); }
 
- inline XmString wxStringToXmString( const wxString& string )
 
-     { return wxStringToXmString((const char*)string.mb_str()); }
 
- // XmString made easy to use in wxWidgets (and has an added benefit of
 
- // cleaning up automatically)
 
- class wxXmString
 
- {
 
-     void Init(const char *str)
 
-     {
 
-         m_string = XmStringCreateLtoR
 
-                    (
 
-                     const_cast<char *>(str),
 
-                     const_cast<char *>(XmSTRING_DEFAULT_CHARSET)
 
-                    );
 
-     }
 
- public:
 
-     wxXmString(const char* str)
 
-     {
 
-         Init(str);
 
-     }
 
-     wxXmString(const wchar_t* str)
 
-     {
 
-         Init(wxConvLibc.cWC2MB(str));
 
-     }
 
-     wxXmString(const wxString& str)
 
-     {
 
-         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;
 
- };
 
- // ----------------------------------------------------------------------------
 
- // Routines used in both wxTextCtrl/wxListBox and nativa wxComboBox
 
- // (defined in src/motif/listbox.cpp or src/motif/textctrl.cpp
 
- // ----------------------------------------------------------------------------
 
- int wxDoFindStringInList( Widget listWidget, const wxString& str );
 
- int wxDoGetSelectionInList( Widget listWidget );
 
- wxString wxDoGetStringInList( Widget listWidget, int n );
 
- wxSize wxDoGetListBoxBestSize( Widget listWidget, const wxWindow* window );
 
- wxSize wxDoGetSingleTextCtrlBestSize( Widget textWidget,
 
-                                       const wxWindow* window );
 
- // ----------------------------------------------------------------------------
 
- // event-related functions
 
- // ----------------------------------------------------------------------------
 
- // executes one main loop iteration (implemented in src/motif/evtloop.cpp)
 
- // returns true if the loop should be exited
 
- bool wxDoEventLoopIteration( wxGUIEventLoop& evtLoop );
 
- // Consume all events until no more left
 
- void wxFlushEvents(WXDisplay* display);
 
- // ----------------------------------------------------------------------------
 
- // macros to avoid casting WXFOO to Foo all the time
 
- // ----------------------------------------------------------------------------
 
- // argument is of type "wxWindow *"
 
- #define GetWidget(w)    ((Widget)(w)->GetHandle())
 
- // ----------------------------------------------------------------------------
 
- // accessors for C modules
 
- // ----------------------------------------------------------------------------
 
- extern "C" XtAppContext wxGetAppContext();
 
- #endif
 
- // _WX_PRIVATE_H_
 
 
  |