]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/qt/font.h
Solved problem with wxhInstance name being mangled by MSVC; wxGetInstance is now...
[wxWidgets.git] / include / wx / qt / font.h
index f60894b75e7afbde37b946364dd814e1a036fc00..2079f2d0f0ef819972d80f87e40b4c8101d86a08 100644 (file)
@@ -1,87 +1,88 @@
 /////////////////////////////////////////////////////////////////////////////
 // Name:        font.h
-// Purpose:
-// Author:      Robert Roebling
-// Created:     01/02/97
-// Id:
-// Copyright:   (c) 1998 Robert Roebling, Julian Smart and Markus Holzem
+// Purpose:     wxFont class
+// Author:      AUTHOR
+// Modified by:
+// Created:     ??/??/98
+// RCS-ID:      $Id$
+// Copyright:   (c) AUTHOR
 // Licence:    wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-
-#ifndef __GTKFONTH__
-#define __GTKFONTH__
+#ifndef _WX_FONT_H_
+#define _WX_FONT_H_
 
 #ifdef __GNUG__
-#pragma interface
+#pragma interface "font.h"
 #endif
 
-#include "wx/defs.h"
-#include "wx/object.h"
-#include "wx/string.h"
-#include "wx/hash.h"
 #include "wx/gdiobj.h"
 
-//-----------------------------------------------------------------------------
-// classes
-//-----------------------------------------------------------------------------
-
-class wxDC;
-class wxPaintDC;
-class wxWindow;
+class WXDLLEXPORT wxFont;
 
-class wxFont;
-class wxFontNameDirectory;
-
-//-----------------------------------------------------------------------------
-// global variables
-//-----------------------------------------------------------------------------
+class WXDLLEXPORT wxFontRefData: public wxGDIRefData
+{
+    friend class WXDLLEXPORT wxFont;
+public:
+    wxFontRefData();
+    ~wxFontRefData();
+protected:
+  int           m_pointSize;
+  int           m_family;
+  int           m_style;
+  int           m_weight;
+  bool          m_underlined;
+  wxString      m_faceName;
+/* TODO: implementation
+  WXHFONT       m_hFont;
+*/
+};
 
-// extern wxFontNameDirectory wxTheFontNameDirectory;  // defined below
+#define M_FONTDATA ((wxFontRefData *)m_refData)
 
-//-----------------------------------------------------------------------------
-// wxFont
-//-----------------------------------------------------------------------------
+WXDLLEXPORT_DATA(extern const char*) wxEmptyString;
 
-class wxFont: public wxGDIObject 
+// Font
+class WXDLLEXPORT wxFont: public wxGDIObject
 {
   DECLARE_DYNAMIC_CLASS(wxFont)
-  
-  public:
-    wxFont(void);
-    wxFont( int PointSize, int FontIdOrFamily, int Style, int Weight,
-          bool underlined = FALSE, const char *Face=NULL );
-    wxFont( int PointSize, const char *Face, int Family, int Style, int Weight, 
-          bool underlined = FALSE );
-    wxFont( const wxFont& font );
-    wxFont( const wxFont* font );
-    ~wxFont(void);
-    wxFont& operator = ( const wxFont& font );
-    bool operator == ( const wxFont& font );
-    bool operator != ( const wxFont& font );
-    bool Ok();
-
-    int GetPointSize(void) const;
-    wxString GetFaceName(void) const;
-    int GetFamily(void) const;
-    wxString GetFamilyString(void) const;
-    int GetFontId(void) const;
-    wxString GetFaceString(void) const;
-    int GetStyle(void) const;
-    wxString GetStyleString(void) const;
-    int GetWeight(void) const;
-    wxString GetWeightString(void) const;
-    bool GetUnderlined(void) const;
-
-    wxFont( char *xFontName );
-    
-  private:
-  
-    friend wxDC;
-    friend wxPaintDC;
-    friend wxWindow;
-
-    // no data :-)
+public:
+  wxFont();
+  wxFont(int pointSize, int family, int style, int weight, bool underlined = FALSE, const wxString& faceName = wxEmptyString);
+  inline wxFont(const wxFont& font) { Ref(font); }
+  inline wxFont(const wxFont* font) { if (font) Ref(*font); }
+
+  ~wxFont();
+
+  bool Create(int pointSize, int family, int style, int weight, bool underlined = FALSE, const wxString& faceName = wxEmptyString);
+
+  virtual bool Ok() const { return (m_refData != NULL) ; }
+
+  inline int GetPointSize() const { return M_FONTDATA->m_pointSize; }
+  inline int GetFamily() const { return M_FONTDATA->m_family; }
+  inline int GetStyle() const { return M_FONTDATA->m_style; }
+  inline int GetWeight() const { return M_FONTDATA->m_weight; }
+  wxString GetFamilyString() const ;
+  wxString GetFaceName() const ;
+  wxString GetStyleString() const ;
+  wxString GetWeightString() const ;
+  inline bool GetUnderlined() const { return M_FONTDATA->m_underlined; }
+
+  void SetPointSize(int pointSize);
+  void SetFamily(int family);
+  void SetStyle(int style);
+  void SetWeight(int weight);
+  void SetFaceName(const wxString& faceName);
+  void SetUnderlined(bool underlined);
+
+  inline wxFont& operator = (const wxFont& font) { if (*this == font) return (*this); Ref(font); return *this; }
+  inline bool operator == (const wxFont& font) { return m_refData == font.m_refData; }
+  inline bool operator != (const wxFont& font) { return m_refData != font.m_refData; }
+
+  // Implementation
+protected:
+  void Unshare();
 };
 
-#endif // __GTKFONTH__
+#endif
+    // _WX_FONT_H_