1 /////////////////////////////////////////////////////////////////////////////// 2 // Name: wx/gtk/private.h 3 // Purpose: wxGTK private macros, functions &c 4 // Author: Vadim Zeitlin 5 // Modified by: 6 // Created: 12.03.02 7 // RCS-ID: $Id: private.h 47188 2007-07-06 07:44:19Z MW $ 8 // Copyright: (c) 2002 Vadim Zeitlin <vadim@wxwidgets.org> 9 // Licence: wxWindows licence 10 /////////////////////////////////////////////////////////////////////////////// 11 12 #ifndef _WX_GTK_PRIVATE_H_ 13 #define _WX_GTK_PRIVATE_H_ 14 15 #include <gtk/gtk.h> 16 17 #include "wx/event.h" 18 #include "wx/gtk/private/string.h" 19 20 // fail all version tests if the GTK+ version is so ancient that it doesn't 21 // even have GTK_CHECK_VERSION 22 #ifndef GTK_CHECK_VERSION 23 #define GTK_CHECK_VERSION(a, b, c) 0 24 #endif 25 26 #if wxUSE_UNICODE 27 #define wxGTK_CONV(s) wxConvUTF8.cWX2MB((s)) 28 #define wxGTK_CONV_ENC(s, enc) wxGTK_CONV((s)) 29 #define wxGTK_CONV_FONT(s, font) wxGTK_CONV((s)) 30 #define wxGTK_CONV_SYS(s) wxGTK_CONV((s)) 31 #define wxGTK_CONV_BACK(s) wxConvUTF8.cMB2WX((s)) 32 #elif wxUSE_WCHAR_T 33 #include "wx/font.h" 34 35 // convert the text in given encoding to UTF-8 used by wxGTK 36 WXDLLIMPEXP_CORE extern wxCharBuffer 37 wxConvertToGTK(const wxString& s, 38 wxFontEncoding enc = wxFONTENCODING_SYSTEM); 39 40 // helper: use the encoding of the given font if it's valid wxConvertToGTK(const wxString & s,const wxFont & font)41 inline wxCharBuffer wxConvertToGTK(const wxString& s, const wxFont& font) 42 { 43 return wxConvertToGTK(s, font.Ok() ? font.GetEncoding() 44 : wxFONTENCODING_SYSTEM); 45 } 46 47 #define wxGTK_CONV_ENC(s, enc) wxConvertToGTK((s), (enc)) 48 #define wxGTK_CONV_FONT(s, font) wxConvertToGTK((s), (font)) 49 #define wxGTK_CONV(s) wxGTK_CONV_FONT((s), m_font) 50 #define wxGTK_CONV_SYS(s) wxConvertToGTK((s)) 51 #define wxGTK_CONV_BACK(s) wxConvLocal.cWC2WX(wxConvUTF8.cMB2WC((s))) 52 #else // we're limited to ASCII 53 #define wxGTK_CONV_ENC(s, enc) (s) 54 #define wxGTK_CONV_FONT(s, font) (s) 55 #define wxGTK_CONV(s) (s) 56 #define wxGTK_CONV_SYS(s) (s) 57 #define wxGTK_CONV_BACK(s) (wxString(s)) 58 #endif 59 60 // Some deprecated GTK+ prototypes we still use often 61 // FIXME: Don't use them if possible. 62 G_BEGIN_DECLS 63 64 // Should use gtk_image_new, but the mask seems to be handled different, 65 // and we need to migrate 66 GtkWidget* gtk_pixmap_new (GdkPixmap *pixmap, 67 GdkBitmap *mask); 68 69 // Deprecated since GTK+-1.3.7: 70 // Trivial wrapper around gtk_window_move, with some side effects we seem to rely on 71 void gtk_widget_set_uposition (GtkWidget *widget, 72 gint x, 73 gint y); 74 75 // We rely on the allow_shrink parameter in one place 76 void gtk_window_set_policy (GtkWindow *window, 77 gint allow_shrink, 78 gint allow_grow, 79 gint auto_shrink); 80 81 G_END_DECLS 82 83 //----------------------------------------------------------------------------- 84 // idle system 85 //----------------------------------------------------------------------------- 86 87 extern void wxapp_install_idle_handler(); 88 extern bool g_isIdle; 89 90 //----------------------------------------------------------------------------- 91 // Misc. functions 92 //----------------------------------------------------------------------------- 93 94 // Needed for implementing e.g. combobox on wxGTK within a modal dialog. 95 void wxAddGrab(wxWindow* window); 96 void wxRemoveGrab(wxWindow* window); 97 98 // Escapes string so that it is valid Pango markup XML string: 99 WXDLLIMPEXP_CORE wxString wxEscapeStringForPangoMarkup(const wxString& str); 100 101 // The declaration for gtk_icon_size_lookup was accidentally ifdefed out in 102 // GTK+ 2.1.0 which Sun seem to have shipped with some versions of JDS 103 // for Solaris 9 x86. 104 #ifdef NEED_GTK_ICON_SIZE_LOOKUP 105 extern "C" gboolean gtk_icon_size_lookup (GtkIconSize size, 106 gint *width, 107 gint *height); 108 #endif 109 110 #ifdef __WXGTK20__ 111 #include <gdk/gdktypes.h> 112 113 // Returns stock accelerator modifier and key code for the given ID 114 WXDLLEXPORT bool wxGetStockGtkAccelerator(const char *id, GdkModifierType *mod, guint *key); 115 #endif 116 117 #endif // _WX_GTK_PRIVATE_H_ 118 119