Added support for Unicode rendering through Pango to wxX11.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17778 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -2084,16 +2084,24 @@ typedef GtkWidget *WXWidget;
|
||||
#endif
|
||||
|
||||
#ifdef __WXGTK20__
|
||||
/* Input method thing */
|
||||
typedef struct _GtkIMMulticontext GtkIMMulticontext;
|
||||
#endif // __WXGTK20__
|
||||
|
||||
#endif // __WXGTK__
|
||||
|
||||
#if defined(__WXGTK20__) || (defined(__WXX11__) && wxUSE_UNICODE)
|
||||
#define wxUSE_PANGO 1
|
||||
#else
|
||||
#define wxUSE_PANGO 0
|
||||
#endif
|
||||
|
||||
#if wxUSE_PANGO
|
||||
/* Stand-ins for Pango types */
|
||||
typedef struct _PangoContext PangoContext;
|
||||
typedef struct _PangoLayout PangoLayout;
|
||||
typedef struct _PangoFontDescription PangoFontDescription;
|
||||
|
||||
/* Input method thing */
|
||||
typedef struct _GtkIMMulticontext GtkIMMulticontext;
|
||||
#endif // GTK+ 2.0
|
||||
|
||||
#endif // GTK
|
||||
#endif
|
||||
|
||||
#ifdef __WXMGL__
|
||||
typedef struct window_t *WXWidget;
|
||||
|
@@ -72,7 +72,9 @@ enum wxXLFDField
|
||||
// further it might make sense to make it a real class with virtual methods
|
||||
struct WXDLLEXPORT wxNativeFontInfo
|
||||
{
|
||||
#if defined(_WX_X_FONTLIKE)
|
||||
#if wxUSE_PANGO
|
||||
PangoFontDescription *description;
|
||||
#elif defined(_WX_X_FONTLIKE)
|
||||
// the members can't be accessed directly as we only parse the
|
||||
// xFontName on demand
|
||||
private:
|
||||
@@ -113,8 +115,6 @@ public:
|
||||
FATTRS fa;
|
||||
FONTMETRICS fm;
|
||||
FACENAMEDESC fn;
|
||||
#elif defined(__WXGTK20__)
|
||||
PangoFontDescription *description;
|
||||
#else // other platforms
|
||||
//
|
||||
// This is a generic implementation that should work on all ports
|
||||
|
@@ -101,6 +101,13 @@ public:
|
||||
const wxSize& GetInitialSize() const { return m_initialSize; }
|
||||
bool GetShowIconic() const { return m_showIconic; }
|
||||
|
||||
#if wxUSE_UNICODE
|
||||
// Global context for Pango layout. Either use X11
|
||||
// or use Xft rendering according to GDK_USE_XFT
|
||||
// environment variable
|
||||
PangoContext* GetPangoContext();
|
||||
#endif
|
||||
|
||||
// We need this before creating the app
|
||||
static WXDisplay* GetDisplay() { return ms_display; }
|
||||
static WXDisplay* ms_display;
|
||||
|
@@ -133,6 +133,11 @@ protected:
|
||||
wxRegion m_currentClippingRegion;
|
||||
wxRegion m_paintClippingRegion;
|
||||
|
||||
#if wxUSE_UNICODE
|
||||
PangoContext *m_context;
|
||||
PangoFontDescription *m_fontdesc;
|
||||
#endif
|
||||
|
||||
void SetUpDC();
|
||||
void Destroy();
|
||||
void ComputeScaleAndOrigin();
|
||||
|
@@ -48,10 +48,11 @@ public:
|
||||
bool underlined = FALSE,
|
||||
const wxString& face = wxEmptyString,
|
||||
wxFontEncoding encoding = wxFONTENCODING_DEFAULT);
|
||||
|
||||
// wxMOTIF-specific
|
||||
|
||||
#if wxUSE_UNICODE
|
||||
bool Create(const wxString& fontname,
|
||||
wxFontEncoding fontenc = wxFONTENCODING_DEFAULT);
|
||||
#endif
|
||||
bool Create(const wxNativeFontInfo& fontinfo);
|
||||
|
||||
virtual ~wxFont();
|
||||
@@ -69,6 +70,8 @@ public:
|
||||
virtual wxFontEncoding GetEncoding() const;
|
||||
virtual wxNativeFontInfo *GetNativeFontInfo() const;
|
||||
|
||||
virtual bool IsFixedWidth() const;
|
||||
|
||||
virtual void SetPointSize(int pointSize);
|
||||
virtual void SetFamily(int family);
|
||||
virtual void SetStyle(int style);
|
||||
@@ -78,8 +81,13 @@ public:
|
||||
virtual void SetEncoding(wxFontEncoding encoding);
|
||||
virtual void SetNativeFontInfo( const wxNativeFontInfo& info );
|
||||
|
||||
// Implementation
|
||||
virtual void SetNoAntiAliasing( bool no = TRUE );
|
||||
virtual bool GetNoAntiAliasing();
|
||||
|
||||
// Implementation
|
||||
|
||||
#if wxUSE_PANGO
|
||||
#else
|
||||
// Find an existing, or create a new, XFontStruct
|
||||
// based on this wxFont and the given scale. Append the
|
||||
// font to list in the private data for future reference.
|
||||
@@ -98,13 +106,12 @@ public:
|
||||
// Helper function for convenient access of the above.
|
||||
WXFontStructPtr GetFontStruct(double scale = 1.0,
|
||||
WXDisplay* display = NULL) const;
|
||||
#endif
|
||||
|
||||
protected:
|
||||
// common part of all ctors
|
||||
void Init();
|
||||
|
||||
// VZ: IMHO, we don't need it at all...
|
||||
bool RealizeResource() { return TRUE; }
|
||||
void Unshare();
|
||||
|
||||
private:
|
||||
|
@@ -21,10 +21,26 @@
|
||||
// Include common declarations
|
||||
#include "wx/x11/privx.h"
|
||||
|
||||
#if wxUSE_UNICODE
|
||||
#include "pango/pango.h"
|
||||
#endif
|
||||
|
||||
class wxMouseEvent;
|
||||
class wxKeyEvent;
|
||||
class wxWindow;
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Some Unicode <-> UTF8 macros stolen from GTK
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
#if wxUSE_UNICODE
|
||||
#define wxGTK_CONV(s) wxConvUTF8.cWX2MB(s)
|
||||
#define wxGTK_CONV_BACK(s) wxConvUTF8.cMB2WX(s)
|
||||
#else
|
||||
#define wxGTK_CONV(s) s.c_str()
|
||||
#define wxGTK_CONV_BACK(s) s
|
||||
#endif
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// we maintain a hash table which contains the mapping from Widget to wxWindow
|
||||
// corresponding to the window for this widget
|
||||
|
@@ -14,6 +14,8 @@
|
||||
|
||||
#include "wx/defs.h"
|
||||
#include "wx/utils.h"
|
||||
#include "wx/colour.h"
|
||||
|
||||
#include "X11/Xlib.h"
|
||||
#include "X11/Xatom.h"
|
||||
#include "X11/Xutil.h"
|
||||
|
Reference in New Issue
Block a user