From 36b3b54ad8431bca0fa53fa8acae5ba6d4c3e9c7 Mon Sep 17 00:00:00 2001
From: Robert Roebling <robert@roebling.de>
Date: Sun, 24 Jan 1999 15:07:54 +0000
Subject: [PATCH]   Small doc corrections   Removed wxFontDirectory   Added
 move event to dialog and frame   Cannot remeber the rest

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1460 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---
 docs/latex/wx/statbmp.tex  |   4 +-
 docs/latex/wx/stattext.tex |   4 +-
 docs/latex/wx/text.tex     |   4 +-
 include/wx/gtk/app.h       |  33 +-
 include/wx/gtk/font.h      |   7 +-
 include/wx/gtk/frame.h     |   9 +-
 include/wx/gtk/gauge.h     |  18 +-
 include/wx/gtk/gdiobj.h    |  17 +-
 include/wx/gtk/window.h    |  22 +-
 include/wx/gtk1/app.h      |  33 +-
 include/wx/gtk1/font.h     |   7 +-
 include/wx/gtk1/frame.h    |   9 +-
 include/wx/gtk1/gauge.h    |  18 +-
 include/wx/gtk1/gdiobj.h   |  17 +-
 include/wx/gtk1/window.h   |  22 +-
 samples/dnd/dnd.cpp        |   2 +-
 src/generic/dcpsg.cpp      | 650 +++++++++++++++++++------------------
 src/generic/fontdlgg.cpp   |   7 +-
 src/gtk/app.cpp            |   4 +
 src/gtk/data.cpp           |   2 +
 src/gtk/dialog.cpp         |  28 +-
 src/gtk/font.cpp           | 214 ++++++------
 src/gtk/frame.cpp          |   4 +
 src/gtk1/app.cpp           |   4 +
 src/gtk1/data.cpp          |   2 +
 src/gtk1/dialog.cpp        |  28 +-
 src/gtk1/font.cpp          | 214 ++++++------
 src/gtk1/frame.cpp         |   4 +
 src/motif.inc              |   2 +-
 29 files changed, 764 insertions(+), 625 deletions(-)

diff --git a/docs/latex/wx/statbmp.tex b/docs/latex/wx/statbmp.tex
index f6afca75b4..201718e4cc 100644
--- a/docs/latex/wx/statbmp.tex
+++ b/docs/latex/wx/statbmp.tex
@@ -33,7 +33,7 @@ palette problems.
 Default constructor.
 
 \func{}{wxStaticBitmap}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp
-\param{const wxBitmap\& }{label = ``"}, \param{const wxPosition\& }{pos}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
+\param{const wxBitmap\& }{label = ``"}, \param{const wxPoint\& }{pos}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
 \param{long}{ style = 0}, \param{const wxString\& }{name = ``staticBitmap"}}
 
 Constructor, creating and showing a text control.
@@ -61,7 +61,7 @@ Constructor, creating and showing a text control.
 \membersection{wxStaticBitmap::Create}\label{wxstaticbitmapcreate}
 
 \func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp
-\param{const wxBitmap\& }{label = ``"}, \param{const wxPosition\& }{pos}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
+\param{const wxBitmap\& }{label = ``"}, \param{const wxPoint\& }{pos}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
 \param{long}{ style = 0}, \param{const wxString\& }{name = ``staticBitmap"}}
 
 Creation function, for two-step construction. For details see \helpref{wxStaticBitmap::wxStaticBitmap}{wxstaticbitmapconstr}.
diff --git a/docs/latex/wx/stattext.tex b/docs/latex/wx/stattext.tex
index bae9c23bb1..20854fadcd 100644
--- a/docs/latex/wx/stattext.tex
+++ b/docs/latex/wx/stattext.tex
@@ -32,7 +32,7 @@ See also \helpref{window styles overview}{windowstyles}.
 Default constructor.
 
 \func{}{wxStaticText}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp
-\param{const wxString\& }{label = ``"}, \param{const wxPosition\& }{pos}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
+\param{const wxString\& }{label = ``"}, \param{const wxPoint\& }{pos}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
 \param{long}{ style = 0}, \param{const wxString\& }{name = ``staticText"}}
 
 Constructor, creating and showing a text control.
@@ -60,7 +60,7 @@ Constructor, creating and showing a text control.
 \membersection{wxStaticText::Create}\label{wxstatictextcreate}
 
 \func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp
-\param{const wxString\& }{label = ``"}, \param{const wxPosition\& }{pos}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
+\param{const wxString\& }{label = ``"}, \param{const wxPoint\& }{pos}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
 \param{long}{ style = 0}, \param{const wxString\& }{name = ``staticText"}}
 
 Creation function, for two-step construction. For details see \helpref{wxStaticText::wxStaticText}{wxstatictextconstr}.
diff --git a/docs/latex/wx/text.tex b/docs/latex/wx/text.tex
index 271b7b9ac2..673c697d59 100644
--- a/docs/latex/wx/text.tex
+++ b/docs/latex/wx/text.tex
@@ -72,7 +72,7 @@ generated when enter is pressed in a single-line text control.}
 Default constructor.
 
 \func{}{wxTextCtrl}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp
-\param{const wxString\& }{value = ``"}, \param{const wxPosition\& }{pos}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
+\param{const wxString\& }{value = ``"}, \param{const wxPoint\& }{pos}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
 \param{long}{ style = 0}, \param{const wxValidator\& }{validator}, \param{const wxString\& }{name = ``text"}}
 
 Constructor, creating and showing a text control.
@@ -126,7 +126,7 @@ Copies the selected text to the clipboard under Motif and MS Windows.
 \membersection{wxTextCtrl::Create}\label{wxtextctrlcreate}
 
 \func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp
-\param{const wxString\& }{value = ``"}, \param{const wxPosition\& }{pos}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
+\param{const wxString\& }{value = ``"}, \param{const wxPoint\& }{pos}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
 \param{long}{ style = 0}, \param{const wxValidator\& }{validator}, \param{const wxString\& }{name = ``text"}}
 
 Creates the text control for two-step construction. Derived classes
diff --git a/include/wx/gtk/app.h b/include/wx/gtk/app.h
index 7aa8552586..365c08f90a 100644
--- a/include/wx/gtk/app.h
+++ b/include/wx/gtk/app.h
@@ -74,13 +74,14 @@ class wxApp: public wxEvtHandler
 
     wxWindow *GetTopWindow();
     void SetTopWindow( wxWindow *win );
+    
     virtual int MainLoop();
     void ExitMainLoop();
     bool Initialized();
     virtual bool Pending();
     virtual void Dispatch();
 
-    inline void SetWantDebugOutput(bool flag) { m_wantDebugOutput = flag; }
+    inline void SetWantDebugOutput( bool flag ) { m_wantDebugOutput = flag; }
     inline bool GetWantDebugOutput() { return m_wantDebugOutput; }
 
     void OnIdle( wxIdleEvent &event );
@@ -88,29 +89,26 @@ class wxApp: public wxEvtHandler
     bool SendIdleEvents( wxWindow* win );
 
     inline wxString GetAppName() const 
-    {
-      if (m_appName != "")
-        return m_appName;
-      else return m_className;
-    }
+      { if (m_appName != "") return m_appName; else return m_className; }
+    inline void SetAppName( const wxString& name ) { m_appName = name; }
     
-    inline void SetAppName(const wxString& name) { m_appName = name; };
     inline wxString GetClassName() const { return m_className; }
-    inline void SetClassName(const wxString& name) { m_className = name; }
+    inline void SetClassName( const wxString& name ) { m_className = name; }
+    
     const wxString& GetVendorName() const { return m_vendorName; }
-    void SetVendorName(const wxString& name) { m_vendorName = name; }
+    void SetVendorName( const wxString& name ) { m_vendorName = name; }
 
-    inline void SetExitOnFrameDelete(bool flag) { m_exitOnFrameDelete = flag; }
+    inline void SetExitOnFrameDelete( bool flag ) { m_exitOnFrameDelete = flag; }
     inline bool GetExitOnFrameDelete() const { return m_exitOnFrameDelete; }
 
-    void SetPrintMode(int WXUNUSED(mode) ) {};
-    int GetPrintMode() const { return wxPRINT_POSTSCRIPT; };
+    void SetPrintMode( int WXUNUSED(mode) ) {}
+    int GetPrintMode() const { return wxPRINT_POSTSCRIPT; }
 
     /* override this function to create default log target of arbitrary
      * user-defined classv (default implementation creates a wxLogGui object) */
     virtual wxLog *CreateLogTarget();
 
-  /* GTK implementation */
+  // implementation 
 
     static bool Initialize();
     static bool InitialzeVisual();
@@ -130,13 +128,12 @@ class wxApp: public wxEvtHandler
     int             argc;
     char          **argv;
 
+    wxString        m_vendorName;
+    wxString        m_appName;
+    wxString        m_className;
+
     static wxAppInitializerFunction m_appInitFn;
     
-private:
-  wxString m_vendorName,
-           m_appName,
-           m_className;
-
   DECLARE_EVENT_TABLE()
 };
 
diff --git a/include/wx/gtk/font.h b/include/wx/gtk/font.h
index 9234d3390c..7e27d54e1a 100644
--- a/include/wx/gtk/font.h
+++ b/include/wx/gtk/font.h
@@ -30,13 +30,17 @@ class wxPaintDC;
 class wxWindow;
 
 class wxFont;
+/*
 class wxFontNameDirectory;
+*/
 
 //-----------------------------------------------------------------------------
 // global variables
 //-----------------------------------------------------------------------------
 
+/*
 extern wxFontNameDirectory *wxTheFontNameDirectory;
+*/
 extern const char* wxEmptyString;
 
 //-----------------------------------------------------------------------------
@@ -60,7 +64,6 @@ public:
 
   int GetPointSize() const;
   int GetFamily() const;
-  int GetFontId() const;
   int GetStyle() const;
   int GetWeight() const;
   bool GetUnderlined() const;
@@ -87,6 +90,7 @@ public:
   // no data :-)
 };
 
+/*
 //-----------------------------------------------------------------------------
 // wxFontDirectory
 //-----------------------------------------------------------------------------
@@ -114,5 +118,6 @@ class wxFontNameDirectory: public wxObject
     class wxHashTable *table;
     int   nextFontId;
 };
+*/
 
 #endif // __GTKFONTH__
diff --git a/include/wx/gtk/frame.h b/include/wx/gtk/frame.h
index 2265c07ffb..0dd712f946 100644
--- a/include/wx/gtk/frame.h
+++ b/include/wx/gtk/frame.h
@@ -83,7 +83,7 @@ public:
   virtual wxToolBar* CreateToolBar( long style = wxNO_BORDER|wxTB_HORIZONTAL, wxWindowID id = -1,
                                     const wxString& name = wxToolBarNameStr);
   virtual wxToolBar *OnCreateToolBar( long style, wxWindowID id, const wxString& name );
-  virtual wxToolBar *GetToolBar(void) const;
+  virtual wxToolBar *GetToolBar() const;
   inline void SetToolBar(wxToolBar *toolbar) { m_frameToolBar = toolbar; }
 
   virtual void SetMenuBar( wxMenuBar *menuBar );
@@ -94,10 +94,10 @@ public:
 
   virtual void SetIcon( const wxIcon &icon );
   virtual void Iconize( bool WXUNUSED(iconize)) { }
-  virtual bool IsIconized(void) const { return FALSE; }
-  bool Iconized(void) const { return IsIconized(); }
+  virtual bool IsIconized() const { return FALSE; }
+  bool Iconized() const { return IsIconized(); }
   virtual void Maximize(bool WXUNUSED(maximize)) {}
-  virtual void Restore(void) {}
+  virtual void Restore() {}
 
   void OnActivate( wxActivateEvent &WXUNUSED(event) ) { } // called from docview.cpp
   void OnSize( wxSizeEvent &event );
@@ -109,7 +109,6 @@ public:
   virtual wxPoint GetClientAreaOrigin() const;
   void DoMenuUpdates();
   void DoMenuUpdates(wxMenu* menu);
-
   virtual void OnInternalIdle();
 
   wxMenuBar    *m_frameMenuBar;
diff --git a/include/wx/gtk/gauge.h b/include/wx/gtk/gauge.h
index d6c546f706..e75a0c41b5 100644
--- a/include/wx/gtk/gauge.h
+++ b/include/wx/gtk/gauge.h
@@ -41,10 +41,9 @@ class wxGauge: public wxControl
   DECLARE_DYNAMIC_CLASS(wxGauge)
   
   public:
-    inline wxGauge(void) { m_rangeMax = 0; m_gaugePos = 0; m_useProgressBar = TRUE; }
+    inline wxGauge() { m_rangeMax = 0; m_gaugePos = 0; m_useProgressBar = TRUE; }
 
-    inline wxGauge( wxWindow *parent, wxWindowID id,
-           int range,
+    inline wxGauge( wxWindow *parent, wxWindowID id, int range,
            const wxPoint& pos = wxDefaultPosition,
            const wxSize& size = wxDefaultSize,
            long style = wxGA_HORIZONTAL,
@@ -53,8 +52,7 @@ class wxGauge: public wxControl
     {
       Create(parent, id, range, pos, size, style, validator, name);
     }
-    bool Create( wxWindow *parent, wxWindowID id,
-           int range,
+    bool Create( wxWindow *parent, wxWindowID id, int range,
            const wxPoint& pos = wxDefaultPosition,
            const wxSize& size = wxDefaultSize,
            long style = wxGA_HORIZONTAL,
@@ -64,13 +62,13 @@ class wxGauge: public wxControl
     void SetBezelFace( int WXUNUSED(w) ) {};
     void SetRange( int r );
     void SetValue( int pos );
-    int GetShadowWidth(void) const { return 0; };
-    int GetBezelFace(void) const { return 0; };
-    int GetRange(void) const;
-    int GetValue(void) const;
+    int GetShadowWidth() const { return 0; };
+    int GetBezelFace() const { return 0; };
+    int GetRange() const;
+    int GetValue() const;
 
     // Are we a Win95/GTK progress bar, or a normal gauge?
-    inline bool GetProgressBar(void) const { return m_useProgressBar; }
+    inline bool GetProgressBar() const { return m_useProgressBar; }
     
   // implementation
     
diff --git a/include/wx/gtk/gdiobj.h b/include/wx/gtk/gdiobj.h
index 72069458e7..ac8e8e9447 100644
--- a/include/wx/gtk/gdiobj.h
+++ b/include/wx/gtk/gdiobj.h
@@ -17,19 +17,20 @@
 #pragma interface
 #endif
 
-class WXDLLEXPORT wxGDIObject: public wxObject
+class wxGDIObject : public wxObject
 {
 DECLARE_DYNAMIC_CLASS(wxGDIObject)
- public:
-  inline wxGDIObject(void) { m_visible = FALSE; };
-  inline ~wxGDIObject(void) {};
 
-  virtual bool GetVisible(void) { return m_visible; }
-  virtual void SetVisible(bool v) { m_visible = v; }
+public:
+  inline wxGDIObject() { m_visible = FALSE; };
+  inline ~wxGDIObject() {};
+
+  virtual bool GetVisible() { return m_visible; }
+  virtual void SetVisible( bool visible ) { m_visible = visible; }
 
 protected:
-  bool m_visible; // Can a pointer to this object be safely taken?
-                 // - only if created within FindOrCreate...
+  bool m_visible; /* can a pointer to this object be safely taken?
+                   * - only if created within FindOrCreate... */
 };
 
 #endif
diff --git a/include/wx/gtk/window.h b/include/wx/gtk/window.h
index f7ca89a62d..046a6d6219 100644
--- a/include/wx/gtk/window.h
+++ b/include/wx/gtk/window.h
@@ -77,8 +77,8 @@ extern const wxPoint wxDefaultPosition;
 class wxClientData
 {
 public:
-    wxClientData() { }
-    virtual ~wxClientData() { }
+  wxClientData() { }
+  virtual ~wxClientData() { }
 };
 
 //-----------------------------------------------------------------------------
@@ -168,13 +168,13 @@ public:
 
   virtual void SetSizeHints( int minW, int minH, int maxW = -1, int maxH = -1, int incW = -1, int incH = -1 );
 
-  // Dialog units translations. Implemented in wincmn.cpp.
-  wxPoint ConvertPixelsToDialog(const wxPoint& pt) ;
-  wxPoint ConvertDialogToPixels(const wxPoint& pt) ;
-  inline wxSize ConvertPixelsToDialog(const wxSize& sz)
-  { wxPoint pt(ConvertPixelsToDialog(wxPoint(sz.x, sz.y))); return wxSize(pt.x, pt.y); }
-  inline wxSize ConvertDialogToPixels(const wxSize& sz)
-  { wxPoint pt(ConvertDialogToPixels(wxPoint(sz.x, sz.y))); return wxSize(pt.x, pt.y); }
+  /* Dialog units translations. Implemented in wincmn.cpp. */
+  wxPoint ConvertPixelsToDialog( const wxPoint& pt );
+  wxPoint ConvertDialogToPixels( const wxPoint& pt );
+  inline wxSize ConvertPixelsToDialog( const wxSize& sz )
+      { wxPoint pt(ConvertPixelsToDialog(wxPoint(sz.x, sz.y))); return wxSize(pt.x, pt.y); }
+  inline wxSize ConvertDialogToPixels( const wxSize& sz )
+      { wxPoint pt(ConvertDialogToPixels(wxPoint(sz.x, sz.y))); return wxSize(pt.x, pt.y); }
 
   void OnSize( wxSizeEvent &event );
 
@@ -198,8 +198,8 @@ public:
     { return m_parent; }
   wxWindow *GetGrandParent() const
     { return (m_parent ? m_parent->m_parent : (wxWindow*)NULL); }
-  void SetParent( wxWindow *p )
-    { m_parent = p; }
+  void SetParent( wxWindow *parent )
+    { m_parent = parent; }
   virtual wxWindow *ReParent( wxWindow *newParent );
 
   wxEvtHandler *GetEventHandler() const;
diff --git a/include/wx/gtk1/app.h b/include/wx/gtk1/app.h
index 7aa8552586..365c08f90a 100644
--- a/include/wx/gtk1/app.h
+++ b/include/wx/gtk1/app.h
@@ -74,13 +74,14 @@ class wxApp: public wxEvtHandler
 
     wxWindow *GetTopWindow();
     void SetTopWindow( wxWindow *win );
+    
     virtual int MainLoop();
     void ExitMainLoop();
     bool Initialized();
     virtual bool Pending();
     virtual void Dispatch();
 
-    inline void SetWantDebugOutput(bool flag) { m_wantDebugOutput = flag; }
+    inline void SetWantDebugOutput( bool flag ) { m_wantDebugOutput = flag; }
     inline bool GetWantDebugOutput() { return m_wantDebugOutput; }
 
     void OnIdle( wxIdleEvent &event );
@@ -88,29 +89,26 @@ class wxApp: public wxEvtHandler
     bool SendIdleEvents( wxWindow* win );
 
     inline wxString GetAppName() const 
-    {
-      if (m_appName != "")
-        return m_appName;
-      else return m_className;
-    }
+      { if (m_appName != "") return m_appName; else return m_className; }
+    inline void SetAppName( const wxString& name ) { m_appName = name; }
     
-    inline void SetAppName(const wxString& name) { m_appName = name; };
     inline wxString GetClassName() const { return m_className; }
-    inline void SetClassName(const wxString& name) { m_className = name; }
+    inline void SetClassName( const wxString& name ) { m_className = name; }
+    
     const wxString& GetVendorName() const { return m_vendorName; }
-    void SetVendorName(const wxString& name) { m_vendorName = name; }
+    void SetVendorName( const wxString& name ) { m_vendorName = name; }
 
-    inline void SetExitOnFrameDelete(bool flag) { m_exitOnFrameDelete = flag; }
+    inline void SetExitOnFrameDelete( bool flag ) { m_exitOnFrameDelete = flag; }
     inline bool GetExitOnFrameDelete() const { return m_exitOnFrameDelete; }
 
-    void SetPrintMode(int WXUNUSED(mode) ) {};
-    int GetPrintMode() const { return wxPRINT_POSTSCRIPT; };
+    void SetPrintMode( int WXUNUSED(mode) ) {}
+    int GetPrintMode() const { return wxPRINT_POSTSCRIPT; }
 
     /* override this function to create default log target of arbitrary
      * user-defined classv (default implementation creates a wxLogGui object) */
     virtual wxLog *CreateLogTarget();
 
-  /* GTK implementation */
+  // implementation 
 
     static bool Initialize();
     static bool InitialzeVisual();
@@ -130,13 +128,12 @@ class wxApp: public wxEvtHandler
     int             argc;
     char          **argv;
 
+    wxString        m_vendorName;
+    wxString        m_appName;
+    wxString        m_className;
+
     static wxAppInitializerFunction m_appInitFn;
     
-private:
-  wxString m_vendorName,
-           m_appName,
-           m_className;
-
   DECLARE_EVENT_TABLE()
 };
 
diff --git a/include/wx/gtk1/font.h b/include/wx/gtk1/font.h
index 9234d3390c..7e27d54e1a 100644
--- a/include/wx/gtk1/font.h
+++ b/include/wx/gtk1/font.h
@@ -30,13 +30,17 @@ class wxPaintDC;
 class wxWindow;
 
 class wxFont;
+/*
 class wxFontNameDirectory;
+*/
 
 //-----------------------------------------------------------------------------
 // global variables
 //-----------------------------------------------------------------------------
 
+/*
 extern wxFontNameDirectory *wxTheFontNameDirectory;
+*/
 extern const char* wxEmptyString;
 
 //-----------------------------------------------------------------------------
@@ -60,7 +64,6 @@ public:
 
   int GetPointSize() const;
   int GetFamily() const;
-  int GetFontId() const;
   int GetStyle() const;
   int GetWeight() const;
   bool GetUnderlined() const;
@@ -87,6 +90,7 @@ public:
   // no data :-)
 };
 
+/*
 //-----------------------------------------------------------------------------
 // wxFontDirectory
 //-----------------------------------------------------------------------------
@@ -114,5 +118,6 @@ class wxFontNameDirectory: public wxObject
     class wxHashTable *table;
     int   nextFontId;
 };
+*/
 
 #endif // __GTKFONTH__
diff --git a/include/wx/gtk1/frame.h b/include/wx/gtk1/frame.h
index 2265c07ffb..0dd712f946 100644
--- a/include/wx/gtk1/frame.h
+++ b/include/wx/gtk1/frame.h
@@ -83,7 +83,7 @@ public:
   virtual wxToolBar* CreateToolBar( long style = wxNO_BORDER|wxTB_HORIZONTAL, wxWindowID id = -1,
                                     const wxString& name = wxToolBarNameStr);
   virtual wxToolBar *OnCreateToolBar( long style, wxWindowID id, const wxString& name );
-  virtual wxToolBar *GetToolBar(void) const;
+  virtual wxToolBar *GetToolBar() const;
   inline void SetToolBar(wxToolBar *toolbar) { m_frameToolBar = toolbar; }
 
   virtual void SetMenuBar( wxMenuBar *menuBar );
@@ -94,10 +94,10 @@ public:
 
   virtual void SetIcon( const wxIcon &icon );
   virtual void Iconize( bool WXUNUSED(iconize)) { }
-  virtual bool IsIconized(void) const { return FALSE; }
-  bool Iconized(void) const { return IsIconized(); }
+  virtual bool IsIconized() const { return FALSE; }
+  bool Iconized() const { return IsIconized(); }
   virtual void Maximize(bool WXUNUSED(maximize)) {}
-  virtual void Restore(void) {}
+  virtual void Restore() {}
 
   void OnActivate( wxActivateEvent &WXUNUSED(event) ) { } // called from docview.cpp
   void OnSize( wxSizeEvent &event );
@@ -109,7 +109,6 @@ public:
   virtual wxPoint GetClientAreaOrigin() const;
   void DoMenuUpdates();
   void DoMenuUpdates(wxMenu* menu);
-
   virtual void OnInternalIdle();
 
   wxMenuBar    *m_frameMenuBar;
diff --git a/include/wx/gtk1/gauge.h b/include/wx/gtk1/gauge.h
index d6c546f706..e75a0c41b5 100644
--- a/include/wx/gtk1/gauge.h
+++ b/include/wx/gtk1/gauge.h
@@ -41,10 +41,9 @@ class wxGauge: public wxControl
   DECLARE_DYNAMIC_CLASS(wxGauge)
   
   public:
-    inline wxGauge(void) { m_rangeMax = 0; m_gaugePos = 0; m_useProgressBar = TRUE; }
+    inline wxGauge() { m_rangeMax = 0; m_gaugePos = 0; m_useProgressBar = TRUE; }
 
-    inline wxGauge( wxWindow *parent, wxWindowID id,
-           int range,
+    inline wxGauge( wxWindow *parent, wxWindowID id, int range,
            const wxPoint& pos = wxDefaultPosition,
            const wxSize& size = wxDefaultSize,
            long style = wxGA_HORIZONTAL,
@@ -53,8 +52,7 @@ class wxGauge: public wxControl
     {
       Create(parent, id, range, pos, size, style, validator, name);
     }
-    bool Create( wxWindow *parent, wxWindowID id,
-           int range,
+    bool Create( wxWindow *parent, wxWindowID id, int range,
            const wxPoint& pos = wxDefaultPosition,
            const wxSize& size = wxDefaultSize,
            long style = wxGA_HORIZONTAL,
@@ -64,13 +62,13 @@ class wxGauge: public wxControl
     void SetBezelFace( int WXUNUSED(w) ) {};
     void SetRange( int r );
     void SetValue( int pos );
-    int GetShadowWidth(void) const { return 0; };
-    int GetBezelFace(void) const { return 0; };
-    int GetRange(void) const;
-    int GetValue(void) const;
+    int GetShadowWidth() const { return 0; };
+    int GetBezelFace() const { return 0; };
+    int GetRange() const;
+    int GetValue() const;
 
     // Are we a Win95/GTK progress bar, or a normal gauge?
-    inline bool GetProgressBar(void) const { return m_useProgressBar; }
+    inline bool GetProgressBar() const { return m_useProgressBar; }
     
   // implementation
     
diff --git a/include/wx/gtk1/gdiobj.h b/include/wx/gtk1/gdiobj.h
index 72069458e7..ac8e8e9447 100644
--- a/include/wx/gtk1/gdiobj.h
+++ b/include/wx/gtk1/gdiobj.h
@@ -17,19 +17,20 @@
 #pragma interface
 #endif
 
-class WXDLLEXPORT wxGDIObject: public wxObject
+class wxGDIObject : public wxObject
 {
 DECLARE_DYNAMIC_CLASS(wxGDIObject)
- public:
-  inline wxGDIObject(void) { m_visible = FALSE; };
-  inline ~wxGDIObject(void) {};
 
-  virtual bool GetVisible(void) { return m_visible; }
-  virtual void SetVisible(bool v) { m_visible = v; }
+public:
+  inline wxGDIObject() { m_visible = FALSE; };
+  inline ~wxGDIObject() {};
+
+  virtual bool GetVisible() { return m_visible; }
+  virtual void SetVisible( bool visible ) { m_visible = visible; }
 
 protected:
-  bool m_visible; // Can a pointer to this object be safely taken?
-                 // - only if created within FindOrCreate...
+  bool m_visible; /* can a pointer to this object be safely taken?
+                   * - only if created within FindOrCreate... */
 };
 
 #endif
diff --git a/include/wx/gtk1/window.h b/include/wx/gtk1/window.h
index f7ca89a62d..046a6d6219 100644
--- a/include/wx/gtk1/window.h
+++ b/include/wx/gtk1/window.h
@@ -77,8 +77,8 @@ extern const wxPoint wxDefaultPosition;
 class wxClientData
 {
 public:
-    wxClientData() { }
-    virtual ~wxClientData() { }
+  wxClientData() { }
+  virtual ~wxClientData() { }
 };
 
 //-----------------------------------------------------------------------------
@@ -168,13 +168,13 @@ public:
 
   virtual void SetSizeHints( int minW, int minH, int maxW = -1, int maxH = -1, int incW = -1, int incH = -1 );
 
-  // Dialog units translations. Implemented in wincmn.cpp.
-  wxPoint ConvertPixelsToDialog(const wxPoint& pt) ;
-  wxPoint ConvertDialogToPixels(const wxPoint& pt) ;
-  inline wxSize ConvertPixelsToDialog(const wxSize& sz)
-  { wxPoint pt(ConvertPixelsToDialog(wxPoint(sz.x, sz.y))); return wxSize(pt.x, pt.y); }
-  inline wxSize ConvertDialogToPixels(const wxSize& sz)
-  { wxPoint pt(ConvertDialogToPixels(wxPoint(sz.x, sz.y))); return wxSize(pt.x, pt.y); }
+  /* Dialog units translations. Implemented in wincmn.cpp. */
+  wxPoint ConvertPixelsToDialog( const wxPoint& pt );
+  wxPoint ConvertDialogToPixels( const wxPoint& pt );
+  inline wxSize ConvertPixelsToDialog( const wxSize& sz )
+      { wxPoint pt(ConvertPixelsToDialog(wxPoint(sz.x, sz.y))); return wxSize(pt.x, pt.y); }
+  inline wxSize ConvertDialogToPixels( const wxSize& sz )
+      { wxPoint pt(ConvertDialogToPixels(wxPoint(sz.x, sz.y))); return wxSize(pt.x, pt.y); }
 
   void OnSize( wxSizeEvent &event );
 
@@ -198,8 +198,8 @@ public:
     { return m_parent; }
   wxWindow *GetGrandParent() const
     { return (m_parent ? m_parent->m_parent : (wxWindow*)NULL); }
-  void SetParent( wxWindow *p )
-    { m_parent = p; }
+  void SetParent( wxWindow *parent )
+    { m_parent = parent; }
   virtual wxWindow *ReParent( wxWindow *newParent );
 
   wxEvtHandler *GetEventHandler() const;
diff --git a/samples/dnd/dnd.cpp b/samples/dnd/dnd.cpp
index 8525390533..9de516c481 100644
--- a/samples/dnd/dnd.cpp
+++ b/samples/dnd/dnd.cpp
@@ -236,7 +236,7 @@ void DnDFrame::OnPaint(wxPaintEvent& /*event*/)
   GetClientSize( &w, &h );
 
   wxPaintDC dc(this);
-  dc.SetFont( wxFont( 24, wxDECORATIVE, wxNORMAL, wxNORMAL ) );
+  dc.SetFont( wxFont( 24, wxDECORATIVE, wxNORMAL, wxNORMAL, FALSE, "charter" ) );
   dc.DrawText( "Drag text from here!", 20, h-22 );
 }
 
diff --git a/src/generic/dcpsg.cpp b/src/generic/dcpsg.cpp
index ebd8b8c109..60758bcb9b 100644
--- a/src/generic/dcpsg.cpp
+++ b/src/generic/dcpsg.cpp
@@ -44,11 +44,6 @@
 
 #include <math.h>
 
-#ifdef __WXGTK__
-#include "gdk/gdk.h"
-#include "gtk/gtk.h"
-#endif
-
 #ifdef __WXMSW__
 
 #ifdef DrawText
@@ -759,7 +754,7 @@ void wxPostScriptDC::DrawEllipse (long x, long y, long width, long height)
     }
 }
 
-void wxPostScriptDC::DrawIcon (const wxIcon& icon, long x, long y)
+void wxPostScriptDC::DrawIcon( const wxIcon& icon, long x, long y )
 {
     DrawBitmap( icon, x, y, TRUE );
 }
@@ -818,7 +813,7 @@ void wxPostScriptDC::DrawBitmap( const wxBitmap& bitmap, long x, long y, bool WX
     
 }
 
-void wxPostScriptDC::SetFont (const wxFont& font)
+void wxPostScriptDC::SetFont( const wxFont& font )
 {
     wxCHECK_RET( m_ok && m_pstream, "invalid postscript dc" );
     
@@ -826,94 +821,85 @@ void wxPostScriptDC::SetFont (const wxFont& font)
     
     m_font = font;
 
-#ifdef __WXGTK__    
-    char *name = wxTheFontNameDirectory->GetPostScriptName( m_font.GetFamily(),
-                                m_font.GetWeight(),
-                                m_font.GetStyle() );
-    if (!name) name = "Times-Roman";
-
-    *m_pstream << "/" << name << " reencodeISO def\n"
-           << "/" << name << " findfont\n"
-           << YLOG2DEVREL(font.GetPointSize())
-           << " scalefont setfont\n";
-#else
-  char buf[100];
-  const char *name;
-  const char *style = "";
-  int Style = m_font.GetStyle ();
-  int Weight = m_font.GetWeight ();
-
-  switch (m_font.GetFamily ())
-    {
-    case wxTELETYPE:
-    case wxMODERN:
-      name = "/Courier";
-      break;
-    case wxSWISS:
-      name = "/Helvetica";
-      break;
-    case wxROMAN:
-//      name = "/Times-Roman";
-      name = "/Times"; // Altered by EDZ
-      break;
-    case wxSCRIPT:
-      name = "/Zapf-Chancery-MediumItalic";
-      Style  = wxNORMAL;
-      Weight = wxNORMAL;
-      break;
-    default:
-    case wxDEFAULT: // Sans Serif Font
-      name = "/LucidaSans";
-    }
-
-  if (Style == wxNORMAL && (Weight == wxNORMAL || Weight == wxLIGHT))
+    const char *name;
+    const char *style = "";
+    int Style = m_font.GetStyle();
+    int Weight = m_font.GetWeight();
+
+    switch (m_font.GetFamily ())
+    {
+        case wxTELETYPE:
+        case wxMODERN:
+            name = "/Courier";
+            break;
+        case wxSWISS:
+            name = "/Helvetica";
+            break;
+        case wxROMAN:
+//          name = "/Times-Roman";
+            name = "/Times"; // Altered by EDZ
+            break;
+        case wxSCRIPT:
+            name = "/Zapf-Chancery-MediumItalic";
+            Style  = wxNORMAL;
+            Weight = wxNORMAL;
+            break;
+        default:
+        case wxDEFAULT: // Sans Serif Font
+            name = "/LucidaSans";
+    }
+
+    if (Style == wxNORMAL && (Weight == wxNORMAL || Weight == wxLIGHT))
     {
       if (m_font.GetFamily () == wxROMAN)
     style = "-Roman";
       else
     style = "";
     }
-  else if (Style == wxNORMAL && Weight == wxBOLD)
-    style = "-Bold";
-
-  else if (Style == wxITALIC && (Weight == wxNORMAL || Weight == wxLIGHT))
+    else if (Style == wxNORMAL && Weight == wxBOLD)
+    {
+      style = "-Bold";
+    }
+    else if (Style == wxITALIC && (Weight == wxNORMAL || Weight == wxLIGHT))
     {
       if (m_font.GetFamily () == wxROMAN)
     style = "-Italic";
       else
     style = "-Oblique";
     }
-  else if (Style == wxITALIC && Weight == wxBOLD)
+    else if (Style == wxITALIC && Weight == wxBOLD)
     {
       if (m_font.GetFamily () == wxROMAN)
     style = "-BoldItalic";
       else
     style = "-BoldOblique";
     }
-  else if (Style == wxSLANT && (Weight == wxNORMAL || Weight == wxLIGHT))
+    else if (Style == wxSLANT && (Weight == wxNORMAL || Weight == wxLIGHT))
     {
       if (m_font.GetFamily () == wxROMAN)
     style = "-Italic";
       else
     style = "-Oblique";
     }
-  else if (Style == wxSLANT && Weight == wxBOLD)
+    else if (Style == wxSLANT && Weight == wxBOLD)
     {
       if (m_font.GetFamily () == wxROMAN)
     style = "-BoldItalic";
       else
     style = "-BoldOblique";
     }
-  else
-    style = "";
+    else
+    {
+      style = "";
+    }
 
-  strcpy (buf, name);
-  strcat (buf, style);
-  *m_pstream << buf << " findfont\n";
-  //  *m_pstream << (m_font.GetPointSize() * m_scaleFactor) << " scalefont setfont\n";
-  // No scale factor in this implementation?
-  *m_pstream << (m_font.GetPointSize()) << " scalefont setfont\n";
-#endif
+    char buf[100];
+    strcpy (buf, name);
+    strcat (buf, style);
+    
+    *m_pstream << buf << " reencodeISO def\n";
+    *m_pstream << buf << " findfont\n";
+    *m_pstream << YLOG2DEVREL(m_font.GetPointSize()) << " scalefont setfont\n";
 }
 
 void wxPostScriptDC::SetPen( const wxPen& pen )
@@ -1455,21 +1441,20 @@ void wxPostScriptDC::StartPage ()
     m_logicalOriginX = 0;
     m_logicalOriginY = 0;
 */
+	// Output scaling
+	long translate_x, translate_y;
+	double scale_x, scale_y;
+	wxThePrintSetupData->GetPrinterTranslation(&translate_x, &translate_y);
+	wxThePrintSetupData->GetPrinterScaling(&scale_x, &scale_y);
 
-    // Output scaling
-    long translate_x, translate_y;
-    double scale_x, scale_y;
-    wxThePrintSetupData->GetPrinterTranslation(&translate_x, &translate_y);
-    wxThePrintSetupData->GetPrinterScaling(&scale_x, &scale_y);
+	if (wxThePrintSetupData->GetPrinterOrientation() == PS_LANDSCAPE)
+	{
+		translate_y -= m_maxY;
+		*m_pstream << "90 rotate\n";
+	}
 
-    if (wxThePrintSetupData->GetPrinterOrientation() == PS_LANDSCAPE)
-    {
-        translate_y -= m_maxY;
-        *m_pstream << "90 rotate\n";
-    }
-
-    *m_pstream << scale_x << " " << scale_y << " scale\n";
-    *m_pstream << translate_x << " " << translate_y << " translate\n";
+	*m_pstream << scale_x << " " << scale_y << " scale\n";
+	*m_pstream << translate_x << " " << translate_y << " translate\n";
 }
 
 void wxPostScriptDC::EndPage ()
@@ -1504,269 +1489,294 @@ void wxPostScriptDC::GetTextExtent (const wxString& string, long *x, long *y,
            long *descent, long *externalLeading, wxFont *theFont,
                     bool WXUNUSED(use16))
 {
-//  if (!m_pstream) return;
-  
-  wxFont *fontToUse = theFont;
+    wxFont *fontToUse = theFont;
   
-  if (!fontToUse) fontToUse = (wxFont*) &m_font;
+    if (!fontToUse) fontToUse = (wxFont*) &m_font;
+
+    wxCHECK_RET( fontToUse, "GetTextExtent: no font defined" );
+    wxCHECK_RET( x, "GetTextExtent: x == NULL" );
+    wxCHECK_RET( y, "GetTextExtent: y == NULL" );
 
 #if !USE_AFM_FOR_POSTSCRIPT
-  // Provide a VERY rough estimate (avoid using it)
-    // Chris Breeze 5/11/97: produces accurate results for mono-spaced
-    // font such as Courier (aka wxMODERN)
+    /* Provide a VERY rough estimate (avoid using it).
+     * Produces accurate results for mono-spaced font
+     * such as Courier (aka wxMODERN) */
+     
     int height = 12;
     if (fontToUse)
     {
-        height = fontToUse->GetPointSize();
+	height = fontToUse->GetPointSize();
     }
     *x = strlen (string) * height * 72 / 120;
-    *y = (long) (height * 1.32);    // allow for descender
-
-  if (descent)
-    *descent = 0;
-  if (externalLeading)
-    *externalLeading = 0;
+    *y = (long) (height * 1.32);	/* allow for descender */
+    if (descent) *descent = 0;
+    if (externalLeading) *externalLeading = 0;
 #else
-  // +++++ start of contributed code +++++
-
-  // ************************************************************
-  // method for calculating string widths in postscript:
-  // read in the AFM (adobe font metrics) file for the
-  // actual font, parse it and extract the character widths
-  // and also the descender. this may be improved, but for now
-  // it works well. the AFM file is only read in if the
-  // font is changed. this may be chached in the future.
-  // calls to GetTextExtent with the font unchanged are rather
-  // efficient!!!
-  //
-  // for each font and style used there is an AFM file necessary.
-  // currently i have only files for the roman font family.
-  // i try to get files for the other ones!
-  //
-  // CAVE: the size of the string is currently always calculated
-  //       in 'points' (1/72 of an inch). this should later on be
-  //       changed to depend on the mapping mode.
-  // CAVE: the path to the AFM files must be set before calling this
-  //       function. this is usually done by a call like the following:
-  //       wxSetAFMPath("d:\\wxw161\\afm\\");
-  //
-  // example:
-  //
-  //    wxPostScriptDC dc(NULL, TRUE);
-  //    if (dc.Ok()){
-  //      wxSetAFMPath("d:\\wxw161\\afm\\");
-  //      dc.StartDoc("Test");
-  //      dc.StartPage();
-  //      long w,h;
-  //      dc.SetFont(new wxFont(10, wxROMAN, wxNORMAL, wxNORMAL));
-  //      dc.GetTextExtent("Hallo",&w,&h);
-  //      dc.EndPage();
-  //      dc.EndDoc();
-  //    }
-  //
-  // by steve (stefan.hammes@urz.uni-heidelberg.de)
-  // created: 10.09.94
-  // updated: 14.05.95
-
-  assert(fontToUse && "void wxPostScriptDC::GetTextExtent: no font defined");
-  assert(x && "void wxPostScriptDC::GetTextExtent: x == NULL");
-  assert(y && "void wxPostScriptDC::GetTextExtent: y == NULL");
-
-  // these static vars are for storing the state between calls
-  static int lastFamily= INT_MIN;
-  static int lastSize= INT_MIN;
-  static int lastStyle= INT_MIN;
-  static int lastWeight= INT_MIN;
-  static int lastDescender = INT_MIN;
-  static int lastWidths[256]; // widths of the characters
-
-  // get actual parameters
-  const int Family = fontToUse->GetFamily();
-  const int Size =   fontToUse->GetPointSize();
-  const int Style =  fontToUse->GetStyle();
-  const int Weight = fontToUse->GetWeight();
-
-  // if we have another font, read the font-metrics
-  if(Family!=lastFamily||Size!=lastSize||Style!=lastStyle||Weight!=lastWeight){
-    // store actual values
-    lastFamily = Family;
-    lastSize =   Size;
-    lastStyle =  Style;
-    lastWeight = Weight;
-
-    // read in new font metrics **************************************
-
-    // 1. construct filename ******************************************
-    /* MATTHEW: [2] Use wxTheFontNameDirectory */
-    const char *name;
 
-    // Julian - we'll need to do this a different way now we've removed the
-    // font directory system. Must find Stefan's original code.
-
-    name = wxTheFontNameDirectory->GetAFMName(Family, Weight, Style);
-    if (!name)
-      name = "unknown";
-
-    // get the directory of the AFM files
-    char afmName[256];
-    afmName[0] = 0;
-    if (wxGetAFMPath())
-      strcpy(afmName,wxGetAFMPath());
-
-    // 2. open and process the file **********************************
-
-    // a short explanation of the AFM format:
-    // we have for each character a line, which gives its size
-    // e.g.:
-    //
-    //   C 63 ; WX 444 ; N question ; B 49 -14 395 676 ;
-    //
-    // that means, we have a character with ascii code 63, and width
-    // (444/1000 * fontSize) points.
-    // the other data is ignored for now!
-    //
-    // when the font has changed, we read in the right AFM file and store the
-    // character widths in an array, which is processed below (see point 3.).
-
-        // new elements JC Sun Aug 25 23:21:44 MET DST 1996
-
-
-    strcat(afmName,name);
-    strcat(afmName,".afm");
-    FILE *afmFile = fopen(afmName,"r");
-    if(afmFile==NULL){
-      wxLogDebug("GetTextExtent: can't open AFM file '%s'\n",afmName);
-      wxLogDebug("               using approximate values\n");
-      int i;
-      for (i=0; i<256; i++) lastWidths[i] = 500; // an approximate value
-      lastDescender = -150; // dito.
-    }else{
-      int i;
-      // init the widths array
-      for(i=0; i<256; i++) lastWidths[i]= INT_MIN;
-      // some variables for holding parts of a line
-      char cString[10],semiString[10],WXString[10],descString[20];
-      char upString[30], utString[30], encString[50];
-      char line[256];
-      int ascii,cWidth;
-      // read in the file and parse it
-      while(fgets(line,sizeof(line),afmFile)!=NULL){
-        // A.) check for descender definition
-        if(strncmp(line,"Descender",9)==0){
-          if((sscanf(line,"%s%d",descString,&lastDescender)!=2)
-         || (strcmp(descString,"Descender")!=0)) {
-        wxLogDebug("AFM-file '%s': line '%s' has error (bad descender)\n",
-               afmName,line);
-          }
-        }
-            // JC 1.) check for UnderlinePosition
-        else if(strncmp(line,"UnderlinePosition",17)==0){
-          if((sscanf(line,"%s%lf",upString,&UnderlinePosition)!=2)
-         || (strcmp(upString,"UnderlinePosition")!=0)) {
-        wxLogDebug("AFM-file '%s': line '%s' has error (bad UnderlinePosition)\n",
-               afmName,line);
-          }
+   /* method for calculating string widths in postscript:
+   /  read in the AFM (adobe font metrics) file for the
+   /  actual font, parse it and extract the character widths
+   /  and also the descender. this may be improved, but for now
+   /  it works well. the AFM file is only read in if the
+   /  font is changed. this may be chached in the future.
+   /  calls to GetTextExtent with the font unchanged are rather
+   /  efficient!!!
+   /
+   /  for each font and style used there is an AFM file necessary.
+   /  currently i have only files for the roman font family.
+   /  I try to get files for the other ones!
+   /
+   /  CAVE: the size of the string is currently always calculated
+   /        in 'points' (1/72 of an inch). this should later on be
+   /        changed to depend on the mapping mode.
+   /  CAVE: the path to the AFM files must be set before calling this
+   /        function. this is usually done by a call like the following:
+   /        wxSetAFMPath("d:\\wxw161\\afm\\");
+   /
+   /  example:
+   /
+   /    wxPostScriptDC dc(NULL, TRUE);
+   /    if (dc.Ok()){
+   /      wxSetAFMPath("d:\\wxw161\\afm\\");
+   /      dc.StartDoc("Test");
+   /      dc.StartPage();
+   /      long w,h;
+   /      dc.SetFont(new wxFont(10, wxROMAN, wxNORMAL, wxNORMAL));
+   /      dc.GetTextExtent("Hallo",&w,&h);
+   /      dc.EndPage();
+   /      dc.EndDoc();
+   /    }
+   /
+   /  by steve (stefan.hammes@urz.uni-heidelberg.de)
+   /  created: 10.09.94
+   /  updated: 14.05.95 */
+
+    /* these static vars are for storing the state between calls */
+    static int lastFamily= INT_MIN;
+    static int lastSize= INT_MIN;
+    static int lastStyle= INT_MIN;
+    static int lastWeight= INT_MIN;
+    static int lastDescender = INT_MIN;
+    static int lastWidths[256]; /* widths of the characters */
+
+    /* get actual parameters */
+    const int Family = fontToUse->GetFamily();
+    const int Size =   fontToUse->GetPointSize();
+    const int Style =  fontToUse->GetStyle();
+    const int Weight = fontToUse->GetWeight();
+
+    /* if we have another font, read the font-metrics */
+    if (Family!=lastFamily || Size!=lastSize || Style!=lastStyle || Weight!=lastWeight)
+    {
+        /* store actual values */
+        lastFamily = Family;
+        lastSize =   Size;
+        lastStyle =  Style;
+        lastWeight = Weight;
+
+        char *name = (char*) NULL;
+
+        switch (Family)
+	{
+	    case wxMODERN:
+	    {
+		     if ((Style == wxITALIC) && (Weight == wxBOLD)) name = "CourBoO";
+		else if ((Style != wxITALIC) && (Weight == wxBOLD)) name = "CourBo";
+		else if ((Style == wxITALIC) && (Weight != wxBOLD)) name = "Cour0";
+		else name = "Cour";
+	    }
+	    break;
+	    case wxROMAN:
+	    {
+		     if ((Style == wxITALIC) && (Weight == wxBOLD)) name = "TimesBoO";
+		else if ((Style != wxITALIC) && (Weight == wxBOLD)) name = "TimesBo";
+	        else if ((Style == wxITALIC) && (Weight != wxBOLD)) name = "TimesO";
+		else if name = "TimesRo";  /* no typo */
+	    }
+	    break;
+	    default:
+	    {
+		     if ((Style == wxITALIC) && (Weight == wxBOLD)) name = "HelvBoO";
+		else if ((Style != wxITALIC) && (Weight == wxBOLD)) name = "HelvBo";
+		else if ((Style == wxITALIC) && (Weight != wxBOLD)) name = "Helv0";
+		else if ((Style != wxITALIC) && (Weight != wxBOLD)) name = "Helv";
+	    }
+	    break;
+	}
+
+        /* get the directory of the AFM files */
+        char afmName[256];
+        afmName[0] = 0;
+        if (wxGetAFMPath()) strcpy( afmName, wxGetAFMPath() );
+
+    /* 2. open and process the file
+    /  a short explanation of the AFM format:
+    /  we have for each character a line, which gives its size
+    /  e.g.:
+    / 
+    /    C 63 ; WX 444 ; N question ; B 49 -14 395 676 ;
+    / 
+    /  that means, we have a character with ascii code 63, and width
+    /  (444/1000 * fontSize) points.
+    /  the other data is ignored for now!
+    / 
+    /  when the font has changed, we read in the right AFM file and store the
+    /  character widths in an array, which is processed below (see point 3.). */
+
+        /* new elements JC Sun Aug 25 23:21:44 MET DST 1996 */
+
+        strcat(afmName,name);
+        strcat(afmName,".afm");
+        FILE *afmFile = fopen(afmName,"r");
+        if ( afmFile==NULL )
+        {
+            wxLogDebug( "GetTextExtent: can't open AFM file '%s'\n", afmName );
+            wxLogDebug( "               using approximate values\n");
+            for (int i=0; i<256; i++) lastWidths[i] = 500; /* an approximate value */
+            lastDescender = -150; /* dito. */
         }
-    // JC 2.) check for UnderlineThickness
-        else if(strncmp(line,"UnderlineThickness",18)==0){
-           if((sscanf(line,"%s%lf",utString,&UnderlineThickness)!=2)
-         || (strcmp(utString,"UnderlineThickness")!=0)) {
-        wxLogDebug("AFM-file '%s': line '%s' has error (bad UnderlineThickness)\n",
-               afmName,line);
-          }
+	else
+	{
+            /* init the widths array */
+            for(int i=0; i<256; i++) lastWidths[i] = INT_MIN;
+            /* some variables for holding parts of a line */
+            char cString[10],semiString[10],WXString[10],descString[20];
+            char upString[30], utString[30], encString[50];
+            char line[256];
+            int ascii,cWidth;
+            /* read in the file and parse it */
+            while(fgets(line,sizeof(line),afmFile)!=NULL)
+	    {
+                /* A.) check for descender definition */
+                if (strncmp(line,"Descender",9)==0)
+		{
+                    if ((sscanf(line,"%s%d",descString,&lastDescender)!=2) ||
+	                (strcmp(descString,"Descender")!=0)) 
+		    {
+	                wxLogDebug( "AFM-file '%s': line '%s' has error (bad descender)\n", afmName,line );
+                    }
+                }
+                /* JC 1.) check for UnderlinePosition */
+                else if(strncmp(line,"UnderlinePosition",17)==0)
+		{
+                    if ((sscanf(line,"%s%lf",upString,&UnderlinePosition)!=2) ||
+	                (strcmp(upString,"UnderlinePosition")!=0)) 
+		    {
+	                wxLogDebug( "AFM-file '%s': line '%s' has error (bad UnderlinePosition)\n", afmName, line );
+                    }
+                }
+	        /* JC 2.) check for UnderlineThickness */
+                else if(strncmp(line,"UnderlineThickness",18)==0)
+	        {
+                    if ((sscanf(line,"%s%lf",utString,&UnderlineThickness)!=2) ||
+	                (strcmp(utString,"UnderlineThickness")!=0)) 
+		    {
+	                wxLogDebug( "AFM-file '%s': line '%s' has error (bad UnderlineThickness)\n", afmName, line );
+                    }
+                }
+		/* JC 3.) check for EncodingScheme */
+                else if(strncmp(line,"EncodingScheme",14)==0)
+	        {
+                    if ((sscanf(line,"%s%s",utString,encString)!=2) ||
+	                (strcmp(utString,"EncodingScheme")!=0)) 
+		    {
+	                wxLogDebug("AFM-file '%s': line '%s' has error (bad EncodingScheme)\n", afmName, line );
+                    }
+                    else if (strncmp(encString, "AdobeStandardEncoding", 21))
+                    {
+	                wxLogDebug( "AFM-file '%s': line '%s' has error (unsupported EncodingScheme %s)\n",
+			            afmName,line, encString);
+                    }
+                }
+                /* B.) check for char-width */
+                else if(strncmp(line,"C ",2)==0)
+		{
+                    if (sscanf(line,"%s%d%s%s%d",cString,&ascii,semiString,WXString,&cWidth)!=5)
+	            {
+                        wxLogDebug("AFM-file '%s': line '%s' has an error (bad character width)\n",afmName,line);
+                    }
+                    if(strcmp(cString,"C")!=0 || strcmp(semiString,";")!=0 || strcmp(WXString,"WX")!=0)
+	            {
+                        wxLogDebug("AFM-file '%s': line '%s' has a format error\n",afmName,line);
+                    }
+                    /* printf("            char '%c'=%d has width '%d'\n",ascii,ascii,cWidth); */
+                    if (ascii>=0 && ascii<256)
+		    {
+                        lastWidths[ascii] = cWidth; /* store width */
+                    }
+		    else
+		    {
+	                /* MATTHEW: this happens a lot; don't print an error */
+                        /* wxLogDebug("AFM-file '%s': ASCII value %d out of range\n",afmName,ascii); */
+                    }
+                }
+                /* C.) ignore other entries. */
+            }
+            fclose(afmFile);
         }
-    // JC 3.) check for EncodingScheme
-        else if(strncmp(line,"EncodingScheme",14)==0){
-          if((sscanf(line,"%s%s",utString,encString)!=2)
-         || (strcmp(utString,"EncodingScheme")!=0)) {
-        wxLogDebug("AFM-file '%s': line '%s' has error (bad EncodingScheme)\n",
-               afmName,line);
-          }
-          else if (strncmp(encString, "AdobeStandardEncoding", 21))
-          {
-        wxLogDebug("AFM-file '%s': line '%s' has error (unsupported EncodingScheme %s)\n",
-               afmName,line, encString);
-          }
+        /* hack to compute correct values for german 'Umlaute'
+        /  the correct way would be to map the character names
+        /  like 'adieresis' to corresp. positions of ISOEnc and read
+        /  these values from AFM files, too. Maybe later ... */
+        lastWidths[196] = lastWidths['A'];  // Ä
+        lastWidths[228] = lastWidths['a'];  // ä
+        lastWidths[214] = lastWidths['O'];  // Ö
+        lastWidths[246] = lastWidths['o'];  // ö
+        lastWidths[220] = lastWidths['U'];  // Ü
+        lastWidths[252] = lastWidths['u'];  // ü
+        lastWidths[223] = lastWidths[251];  // ß
+    }
+
+    /* JC: calculate UnderlineThickness/UnderlinePosition */
+    m_underlinePosition = m_underlinePosition * fontToUse->GetPointSize() / 1000.0f;
+    m_underlineThickness = m_underlineThickness * fontToUse->GetPointSize() / 1000.0f * m_scaleFactor;
+
+    /* 3. now the font metrics are read in, calc size this
+    /  is done by adding the widths of the characters in the
+    /  string. they are given in 1/1000 of the size! */
+
+    long widthSum=0;
+    long height=Size; /* by default */
+    unsigned char *p;
+    for(p=(unsigned char *)(const char *)string; *p; p++)
+    {
+        if(lastWidths[*p]== INT_MIN)
+	{
+            wxLogDebug("GetTextExtent: undefined width for character '%c' (%d)\n", *p,*p);
+            widthSum += (long)(lastWidths[' ']/1000.0F * Size); /* assume space */
         }
-            // B.) check for char-width
-        else if(strncmp(line,"C ",2)==0){
-          if(sscanf(line,"%s%d%s%s%d",
-              cString,&ascii,semiString,WXString,&cWidth)!=5){
-             wxLogDebug("AFM-file '%s': line '%s' has an error (bad character width)\n",afmName,line);
-          }
-          if(strcmp(cString,"C")!=0 || strcmp(semiString,";")!=0 ||
-             strcmp(WXString,"WX")!=0){
-             wxLogDebug("AFM-file '%s': line '%s' has a format error\n",afmName,line);
-          }
-          //printf("            char '%c'=%d has width '%d'\n",ascii,ascii,cWidth);
-          if(ascii>=0 && ascii<256){
-            lastWidths[ascii] = cWidth; // store width
-          }else{
-        /* MATTHEW: this happens a lot; don't print an error */
-            // wxLogDebug("AFM-file '%s': ASCII value %d out of range\n",afmName,ascii);
-          }
+	else
+	{
+            widthSum += (long)((lastWidths[*p]/1000.0F)*Size);
         }
-        // C.) ignore other entries.
-      }
-      fclose(afmFile);
-    }
-        // hack to compute correct values for german 'Umlaute'
-        // the correct way would be to map the character names
-        // like 'adieresis' to corresp. positions of ISOEnc and read
-        // these values from AFM files, too. Maybe later ...
-    lastWidths[196] = lastWidths['A'];  // Ä
-    lastWidths[228] = lastWidths['a'];  // ä
-    lastWidths[214] = lastWidths['O'];  // Ö
-    lastWidths[246] = lastWidths['o'];  // ö
-    lastWidths[220] = lastWidths['U'];  // Ü
-    lastWidths[252] = lastWidths['u'];  // ü
-    lastWidths[223] = lastWidths[251];  // ß
-  }
-
-      // JC: calculate UnderlineThickness/UnderlinePosition
-  m_underlinePosition = m_underlinePosition * fontToUse->GetPointSize() / 1000.0f;
-  m_underlineThickness = m_underlineThickness * fontToUse->GetPointSize() / 1000.0f * m_scaleFactor;
-
-  // 3. now the font metrics are read in, calc size *******************
-  // this is done by adding the widths of the characters in the
-  // string. they are given in 1/1000 of the size!
-
-  long widthSum=0;
-  long height=Size; // by default
-  unsigned char *p;
-  for(p=(unsigned char *)(const char *)string; *p; p++){
-    if(lastWidths[*p]== INT_MIN){
-      wxLogDebug("GetTextExtent: undefined width for character '%c' (%d)\n",
-                 *p,*p);
-      widthSum += (long)(lastWidths[' ']/1000.0F * Size); // assume space
-    }else{
-      widthSum += (long)((lastWidths[*p]/1000.0F)*Size);
     }
-  }
-  // add descender to height (it is usually a negative value)
-  if(lastDescender!=INT_MIN){
-    height += (long)(((-lastDescender)/1000.0F) * Size); /* MATTHEW: forgot scale */
-  }
+    
+    /* add descender to height (it is usually a negative value) */
+    if (lastDescender!=INT_MIN)
+    {
+        height += (long)(((-lastDescender)/1000.0F) * Size); /* MATTHEW: forgot scale */
+    }
 
-  // return size values
-  *x = widthSum;
-  *y = height;
+    /* return size values */
+    *x = widthSum;
+    *y = height;
 
-  // return other parameters
-  if (descent){
-    if(lastDescender!=INT_MIN){
-      *descent = (long)(((-lastDescender)/1000.0F) * Size); /* MATTHEW: forgot scale */
-    }else{
-      *descent = 0;
+    /* return other parameters */
+    if (descent)
+    {
+        if(lastDescender!=INT_MIN)
+	{
+            *descent = (long)(((-lastDescender)/1000.0F) * Size); /* MATTHEW: forgot scale */
+        }
+	else
+	{
+           *descent = 0;
+        }
     }
-  }
 
-  // currently no idea how to calculate this!
-  // if (externalLeading) *externalLeading = 0;
-  if (externalLeading)
-    *externalLeading = 0;
+    /* currently no idea how to calculate this! */
+    if (externalLeading) *externalLeading = 0;
 
-  // ----- end of contributed code -----
 #endif
 }
 
diff --git a/src/generic/fontdlgg.cpp b/src/generic/fontdlgg.cpp
index 5a449ab8f7..8e02bee12b 100644
--- a/src/generic/fontdlgg.cpp
+++ b/src/generic/fontdlgg.cpp
@@ -204,7 +204,7 @@ void wxGenericFontDialog::CreateWidgets(void)
   */
   
   wxString
-     *families = new wxString[5],
+     *families = new wxString[6],
      *styles = new wxString[3],
      *weights = new wxString[3];
   families[0] =  _("Roman");
@@ -212,6 +212,7 @@ void wxGenericFontDialog::CreateWidgets(void)
   families[2] = _("Modern");
   families[3] = _("Script");
   families[4] = _("Swiss" );
+  families[5] = _("Teletype" );
   styles[0] = _("Normal");
   styles[1] = _("Italic");
   styles[2] = _("Slant");
@@ -401,6 +402,8 @@ char *wxFontFamilyIntToString(int family)
       return "Modern";
     case wxSCRIPT:
       return "Script";
+    case wxTELETYPE:
+      return "Teletype";
     case wxSWISS:
     default:
       return "Swiss";
@@ -421,6 +424,8 @@ int wxFontFamilyStringToInt(char *family)
     return wxMODERN;
   else if (strcmp(family, "Script") == 0)
     return wxSCRIPT;
+  else if (strcmp(family, "Teletype") == 0)
+    return wxTELETYPE;
   else return wxSWISS;
 }
 
diff --git a/src/gtk/app.cpp b/src/gtk/app.cpp
index 0df66f47b8..89c1d1546a 100644
--- a/src/gtk/app.cpp
+++ b/src/gtk/app.cpp
@@ -384,8 +384,10 @@ bool wxApp::Initialize(void)
     
     wxSystemSettings::Init();
   
+/*
     wxTheFontNameDirectory =  new wxFontNameDirectory;
     wxTheFontNameDirectory->Initialize();
+*/
 
     wxTheColourDatabase = new wxColourDatabase( wxKEY_STRING );
     wxTheColourDatabase->Initialize();
@@ -426,8 +428,10 @@ void wxApp::CleanUp(void)
     if (wxTheColourDatabase) delete wxTheColourDatabase;
     wxTheColourDatabase = (wxColourDatabase*) NULL;
     
+/*
     if (wxTheFontNameDirectory) delete wxTheFontNameDirectory;
     wxTheFontNameDirectory = (wxFontNameDirectory*) NULL;
+*/
     
     wxDeleteStockObjects();
 
diff --git a/src/gtk/data.cpp b/src/gtk/data.cpp
index 0dd6d35d89..8a6969b3a9 100644
--- a/src/gtk/data.cpp
+++ b/src/gtk/data.cpp
@@ -69,7 +69,9 @@ wxColourDatabase *wxTheColourDatabase = (wxColourDatabase *) NULL;
 wxBitmapList     *wxTheBitmapList = (wxBitmapList *) NULL;
   
 /* X only font names */
+/*
 wxFontNameDirectory *wxTheFontNameDirectory;
+*/
 
 /* Stock objects */
 wxFont *wxNORMAL_FONT;
diff --git a/src/gtk/dialog.cpp b/src/gtk/dialog.cpp
index f4a3d74144..f370b07580 100644
--- a/src/gtk/dialog.cpp
+++ b/src/gtk/dialog.cpp
@@ -59,6 +59,24 @@ static void gtk_dialog_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation
     win->GtkOnSize( alloc->x, alloc->y, alloc->width, alloc->height );
 }
 
+//-----------------------------------------------------------------------------
+// "configure_event"
+//-----------------------------------------------------------------------------
+
+static gint gtk_dialog_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *event, wxDialog *win )
+{
+    if (!win->HasVMT()) return FALSE;
+
+    win->m_x = event->x;
+    win->m_y = event->y;
+
+    wxMoveEvent mevent( wxPoint(win->m_x,win->m_y), win->GetId() );
+    mevent.SetEventObject( win );
+    win->GetEventHandler()->ProcessEvent( mevent );
+
+    return FALSE;
+}
+
 //-----------------------------------------------------------------------------
 // wxDialog
 //-----------------------------------------------------------------------------
@@ -107,9 +125,6 @@ bool wxDialog::Create( wxWindow *parent,
     gtk_signal_connect( GTK_OBJECT(m_widget), "delete_event", 
         GTK_SIGNAL_FUNC(gtk_dialog_delete_callback), (gpointer)this );
     
-    gtk_signal_connect( GTK_OBJECT(m_widget), "size_allocate", 
-        GTK_SIGNAL_FUNC(gtk_dialog_size_callback), (gpointer)this );
-    
     m_wxwindow = gtk_myfixed_new();
     gtk_widget_show( m_wxwindow );
     GTK_WIDGET_UNSET_FLAGS( m_wxwindow, GTK_CAN_FOCUS );
@@ -123,9 +138,14 @@ bool wxDialog::Create( wxWindow *parent,
      
     gtk_widget_set_usize( m_widget, m_width, m_height );
      
+    gtk_signal_connect( GTK_OBJECT(m_widget), "size_allocate", 
+        GTK_SIGNAL_FUNC(gtk_dialog_size_callback), (gpointer)this );
+    
+    gtk_signal_connect( GTK_OBJECT(m_widget), "configure_event",
+        GTK_SIGNAL_FUNC(gtk_dialog_configure_callback), (gpointer)this );
+
     if (m_parent) m_parent->AddChild( this );
   
-  
     PostCreation();
   
     return TRUE;
diff --git a/src/gtk/font.cpp b/src/gtk/font.cpp
index 14435124ee..9e52e23db1 100644
--- a/src/gtk/font.cpp
+++ b/src/gtk/font.cpp
@@ -22,7 +22,9 @@
 // local data
 //-----------------------------------------------------------------------------
 
+/*
 extern wxFontNameDirectory *wxTheFontNameDirectory;
+*/
 
 //-----------------------------------------------------------------------------
 // wxFont
@@ -40,7 +42,6 @@ public:
     int       m_pointSize;
     int       m_family, m_style, m_weight;
     bool      m_underlined;
-    int       m_fontId;
     wxString  m_faceName;
 
     bool      m_byXFontName;
@@ -57,7 +58,6 @@ wxFontRefData::wxFontRefData() : m_scaled_xfonts(wxKEY_INTEGER)
     m_style = wxNORMAL;
     m_weight = wxNORMAL;
     m_underlined = FALSE;
-    m_fontId = 0;
     m_font = (GdkFont *) NULL;
 }
 
@@ -69,7 +69,6 @@ wxFontRefData::wxFontRefData( const wxFontRefData& data ) : m_scaled_xfonts(wxKE
     m_style = data.m_style;
     m_weight = data.m_weight;
     m_underlined = data.m_underlined;
-    m_fontId = data.m_fontId;
     m_faceName = data.m_faceName;
     m_font = (GdkFont *) NULL;
     if (data.m_font) m_font = gdk_font_ref( data.m_font );
@@ -114,27 +113,28 @@ wxFont::wxFont( int pointSize, int family, int style, int weight, bool underline
 {
     m_refData = new wxFontRefData();
 
-    if (family == wxDEFAULT) family = wxSWISS;
-    M_FONTDATA->m_family = family;
-    
-    if (!face.IsEmpty())
-    {
-        M_FONTDATA->m_faceName = face;
-        M_FONTDATA->m_fontId = wxTheFontNameDirectory->FindOrCreateFontId( face, family );
-        M_FONTDATA->m_family  = wxTheFontNameDirectory->GetFamily( family );
-    }
+    if (family == wxDEFAULT) 
+        M_FONTDATA->m_family = wxSWISS;
     else
-    {
-        M_FONTDATA->m_fontId = family;
-        M_FONTDATA->m_family  = wxTheFontNameDirectory->GetFamily( family );
-    }
+        M_FONTDATA->m_family = family;
+    
+    if (!face.IsEmpty()) M_FONTDATA->m_faceName = face;
 
-    if (style == wxDEFAULT) style = wxNORMAL;
-    M_FONTDATA->m_style = style;
-    if (weight == wxDEFAULT) weight = wxNORMAL;
-    M_FONTDATA->m_weight = weight;
-    if (pointSize == wxDEFAULT) pointSize = 12;
-    M_FONTDATA->m_pointSize = pointSize;
+    if (style == wxDEFAULT) 
+        M_FONTDATA->m_style = wxNORMAL;
+    else
+        M_FONTDATA->m_style = style;
+    
+    if (weight == wxDEFAULT) 
+        M_FONTDATA->m_weight = wxNORMAL;
+    else
+        M_FONTDATA->m_weight = weight;
+    
+    if (pointSize == wxDEFAULT) 
+        M_FONTDATA->m_pointSize = 12;
+    else
+        M_FONTDATA->m_pointSize = pointSize;
+    
     M_FONTDATA->m_underlined = underlined;
 
     if (wxTheFontList) wxTheFontList->Append( this );
@@ -186,8 +186,7 @@ wxString wxFont::GetFaceName() const
 {
     wxCHECK_MSG( Ok(), "", "invalid font" );
 
-    wxString s = wxTheFontNameDirectory->GetFontName( M_FONTDATA->m_fontId );
-    return s;
+    return M_FONTDATA->m_faceName;
 }
 
 int wxFont::GetFamily() const
@@ -215,13 +214,6 @@ wxString wxFont::GetFamilyString() const
     return "wxDEFAULT";
 }
 
-int wxFont::GetFontId() const
-{
-    wxCHECK_MSG( Ok(), 0, "invalid font" );
-
-    return M_FONTDATA->m_fontId; // stub
-}
-
 int wxFont::GetStyle() const
 {
     wxCHECK_MSG( Ok(), 0, "invalid font" );
@@ -333,12 +325,10 @@ void wxFont::SetUnderlined(bool underlined)
 // get internal representation of font
 //-----------------------------------------------------------------------------
 
-// local help function
-static GdkFont *wxLoadQueryNearestFont(int point_size, int fontid,
-        int style, int weight,
-        bool underlined);
+static GdkFont *wxLoadQueryNearestFont( int point_size, int family, int style, int weight, 
+                                        bool underlined, const wxString &facename );
 
-GdkFont *wxFont::GetInternalFont(float scale) const
+GdkFont *wxFont::GetInternalFont( float scale ) const
 {
     if (!Ok())
     {
@@ -346,9 +336,10 @@ GdkFont *wxFont::GetInternalFont(float scale) const
         return (GdkFont*) NULL;
     }
 
+    /* short cut if the special X font constructor has been used */
     if (M_FONTDATA->m_byXFontName) return M_FONTDATA->m_font;
 
-    long int_scale = long(scale * 100.0 + 0.5); // key for fontlist
+    long int_scale = long(scale * 100.0 + 0.5); /* key for fontlist */
     int point_scale = (M_FONTDATA->m_pointSize * 10 * int_scale) / 100;
     GdkFont *font = (GdkFont *) NULL;
 
@@ -359,6 +350,7 @@ GdkFont *wxFont::GetInternalFont(float scale) const
     }
     else
     {
+/*
         if ((int_scale == 100) &&
                 (M_FONTDATA->m_family == wxSWISS) &&
                 (M_FONTDATA->m_style == wxNORMAL) &&
@@ -369,14 +361,18 @@ GdkFont *wxFont::GetInternalFont(float scale) const
             font = gdk_font_load( "-adobe-helvetica-medium-r-normal--*-120-*-*-*-*-*-*" );
         }
         else
+*/
         {
-            font = wxLoadQueryNearestFont( point_scale, M_FONTDATA->m_fontId, M_FONTDATA->m_style,
-                    M_FONTDATA->m_weight, M_FONTDATA->m_underlined );
+            font = wxLoadQueryNearestFont( point_scale, M_FONTDATA->m_family, M_FONTDATA->m_style,
+                    M_FONTDATA->m_weight, M_FONTDATA->m_underlined, M_FONTDATA->m_faceName );
         }
         M_FONTDATA->m_scaled_xfonts.Append( int_scale, (wxObject*)font );
     }
+    
     if (!font)
+    {
         wxLogError("could not load any font");
+    }
 	
     return font;
 }
@@ -385,51 +381,89 @@ GdkFont *wxFont::GetInternalFont(float scale) const
 // local utilities to find a X font
 //-----------------------------------------------------------------------------
 
-static GdkFont *wxLoadQueryFont(int point_size, int fontid, int style,
-        int weight, bool WXUNUSED(underlined))
+static GdkFont*wxLoadQueryFont( int pointSize, int family, int style, int weight, 
+                                bool underlined, const wxString &facename )
 {
-    char buffer[512];
-    char *name = wxTheFontNameDirectory->GetScreenName( fontid, weight, style );
-
-    if (!name)
-        name = "-*-*-*-*-*-*-*-%d-*-*-*-*-*-*";
-    sprintf(buffer, name, point_size);
-
-    return gdk_font_load( buffer );
+    char *xfamily = (char*) NULL;
+    char *xstyle = (char*) NULL;
+    char *xweight = (char*) NULL;
+    
+    switch (family)
+    {
+        case wxDECORATIVE: xfamily = "lucida"; break;
+        case wxROMAN:      xfamily = "times";  break;
+        case wxMODERN:     xfamily = "courier"; break;
+        case wxSWISS:      xfamily = "helvetica"; break;
+	case wxTELETYPE:   xfamily = "lucidatypewriter"; break;
+	case wxSCRIPT:     xfamily = "utopia"; break;
+        default:           xfamily = "*";
+    }
+    
+    if (!facename.IsEmpty())
+    {
+        sprintf( wxBuffer, "-*-%s-*-*-normal-*-*-*-*-*-*-*-*-*", facename.c_str() );
+        GdkFont *test = gdk_font_load( wxBuffer );
+        if (test)
+	{
+	    gdk_font_unref( test );
+	    xfamily = WXSTRINGCAST facename;
+	}
+    }
+    
+    switch (style)
+    {
+        case wxITALIC:     xstyle = "i"; break;
+        case wxSLANT:      xstyle = "o"; break;
+        case wxNORMAL:     xstyle = "r"; break;
+        default:           xstyle = "*"; break;
+    }
+    switch (weight)
+    {
+        case wxBOLD:       xweight = "bold"; break;
+        case wxLIGHT:
+        case wxNORMAL:     xweight = "medium"; break;
+        default:           xweight = "*"; break;
+    }
+    
+    sprintf( wxBuffer, "-*-%s-%s-%s-normal-*-*-%d-*-*-*-*-*-*",
+        xfamily, xweight, xstyle, pointSize);
+    
+    return gdk_font_load( wxBuffer );
 }
 
-static GdkFont *wxLoadQueryNearestFont(int point_size, int fontid,
-        int style, int weight,
-        bool underlined)
+static GdkFont *wxLoadQueryNearestFont( int point_size, int family, int style, int weight, 
+	                                bool underlined, const wxString &facename )
 {
-    GdkFont *font;
-
-    font = wxLoadQueryFont( point_size, fontid, style, weight, underlined );
+    GdkFont *font = wxLoadQueryFont( point_size, family, style, weight, underlined, facename );
 
-    if (!font) {
-        // search up and down by stepsize 10
+    if (!font) 
+    {
+        /* search up and down by stepsize 10 */
         int max_size = point_size + 20 * (1 + (point_size/180));
         int min_size = point_size - 20 * (1 + (point_size/180));
-        int i;
-
-        // Search for smaller size (approx.)
-        for (i=point_size-10; !font && i >= 10 && i >= min_size; i -= 10)
-            font = wxLoadQueryFont(i, fontid, style, weight, underlined);
-        // Search for larger size (approx.)
-        for (i=point_size+10; !font && i <= max_size; i += 10)
-            font = wxLoadQueryFont(i, fontid, style, weight, underlined);
-        // Try default family
-        if (!font && fontid != wxDEFAULT)
-            font = wxLoadQueryFont(point_size, wxDEFAULT, style,
-                    weight, underlined);
-        // Bogus font
+
+        /* Search for smaller size (approx.) */
+        for (int i=point_size-10; !font && i >= 10 && i >= min_size; i -= 10)
+            font = wxLoadQueryFont(i, family, style, weight, underlined, facename );
+
+        /* Search for larger size (approx.) */
+        for (int i=point_size+10; !font && i <= max_size; i += 10)
+            font = wxLoadQueryFont( i, family, style, weight, underlined, facename );
+
+        /* Try default family */
+        if (!font && family != wxDEFAULT)
+            font = wxLoadQueryFont( point_size, wxDEFAULT, style, weight, underlined, facename );
+
+        /* Bogus font */
         if (!font)
-            font = wxLoadQueryFont(120, wxDEFAULT, wxNORMAL, wxNORMAL,
-                    underlined);
+            font = wxLoadQueryFont(120, wxDEFAULT, wxNORMAL, wxNORMAL, underlined, facename );
     }
+    
     return font;
 }
 
+/*
+
 //-----------------------------------------------------------------------------
 // face names and index functions
 //-----------------------------------------------------------------------------
@@ -510,9 +544,6 @@ static char *font_defaults[] = {
     "ScreenItalic", "i",
     "ScreenSlant", "o",
 
-/*
-    "ScreenDefaultBase", "misc-fixed",
-*/
     "ScreenDefaultBase", "*-times",
     
     "ScreenRomanBase", "*-times",
@@ -600,12 +631,11 @@ static void SearchResource(const char *prefix, const char **names, int count, ch
         strcpy(resource, prefix);
         for (j = 0; j < count; j++) 
 	{
-	    /* upon failure to find a matching fontname 
-	       in the default fonts above, we substitute more
-	       and more values by _ so that at last ScreenMyFontBoldNormal
-	       would turn into Screen___ and this will then get
-	       converted to -${ScreenDefaultBase}${ScreenStdSuffix}
-	    */
+	    // upon failure to find a matching fontname 
+	    //   in the default fonts above, we substitute more
+	    //   and more values by _ so that at last ScreenMyFontBoldNormal
+	    //   would turn into Screen___ and this will then get
+	    //   converted to -${ScreenDefaultBase}${ScreenStdSuffix}
 	
             if (!(i & (1 << j)))
                 strcat(resource, names[j]);
@@ -613,7 +643,7 @@ static void SearchResource(const char *prefix, const char **names, int count, ch
                 strcat(resource, "_");
         }
 	
-        /* we previously search the Xt-resources here */
+        // we previously search the Xt-resources here 
 
         if (!internal) 
 	{
@@ -635,14 +665,14 @@ static void SearchResource(const char *prefix, const char **names, int count, ch
         if ((strcmp(internal,"-${ScreenDefaultBase}${ScreenStdSuffix}") == 0) &&
 	    (strcmp(names[0], "Default") != 0))
 	{
-	    /* we did not find any font name in the standard list.
-	       this can (hopefully does) mean that someone supplied
-	       the facename in the wxFont constructor so we insert
-	       it here */
+	    // we did not find any font name in the standard list.
+	    //   this can (hopefully does) mean that someone supplied
+	    //   the facename in the wxFont constructor so we insert
+	    //   it here 
 	
-	    strcpy( resource,"-*-" );                  /* any producer               */
-	    strcat( resource, names[0] );              /* facename                   */
-	    strcat( resource, "${ScreenStdSuffix}" );  /* add size params later on   */
+	    strcpy( resource,"-*-" );                  // any producer               
+	    strcat( resource, names[0] );              // facename                   
+	    strcat( resource, "${ScreenStdSuffix}" );  // add size params later on   
 	    *v = copystring(resource);
 	}
 	else
@@ -696,7 +726,7 @@ void wxSuffixMap::Initialize(const char *resname, const char *devresname)
 
             SearchResource(devresname, names, 3, &v);
 	    
-            /* Expand macros in the found string: */
+            // Expand macros in the found string: 
 found:
             int len, closer = 0, startpos = 0;
 
@@ -775,7 +805,7 @@ found:
                     goto found;
                 }
             }
-            /* We have a final value: */
+            // We have a final value: 
             map[k][j] = v;
         }
     }
@@ -978,3 +1008,5 @@ int wxFontNameDirectory::GetFamily(int fontid)
     // font does not exist
     return wxDEFAULT;
 }
+
+*/
diff --git a/src/gtk/frame.cpp b/src/gtk/frame.cpp
index e47d0a2613..d21f976cc8 100644
--- a/src/gtk/frame.cpp
+++ b/src/gtk/frame.cpp
@@ -91,6 +91,10 @@ static gint gtk_frame_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventC
     win->m_x = event->x;
     win->m_y = event->y;
 
+    wxMoveEvent mevent( wxPoint(win->m_x,win->m_y), win->GetId() );
+    mevent.SetEventObject( win );
+    win->GetEventHandler()->ProcessEvent( mevent );
+
     return FALSE;
 }
 
diff --git a/src/gtk1/app.cpp b/src/gtk1/app.cpp
index 0df66f47b8..89c1d1546a 100644
--- a/src/gtk1/app.cpp
+++ b/src/gtk1/app.cpp
@@ -384,8 +384,10 @@ bool wxApp::Initialize(void)
     
     wxSystemSettings::Init();
   
+/*
     wxTheFontNameDirectory =  new wxFontNameDirectory;
     wxTheFontNameDirectory->Initialize();
+*/
 
     wxTheColourDatabase = new wxColourDatabase( wxKEY_STRING );
     wxTheColourDatabase->Initialize();
@@ -426,8 +428,10 @@ void wxApp::CleanUp(void)
     if (wxTheColourDatabase) delete wxTheColourDatabase;
     wxTheColourDatabase = (wxColourDatabase*) NULL;
     
+/*
     if (wxTheFontNameDirectory) delete wxTheFontNameDirectory;
     wxTheFontNameDirectory = (wxFontNameDirectory*) NULL;
+*/
     
     wxDeleteStockObjects();
 
diff --git a/src/gtk1/data.cpp b/src/gtk1/data.cpp
index 0dd6d35d89..8a6969b3a9 100644
--- a/src/gtk1/data.cpp
+++ b/src/gtk1/data.cpp
@@ -69,7 +69,9 @@ wxColourDatabase *wxTheColourDatabase = (wxColourDatabase *) NULL;
 wxBitmapList     *wxTheBitmapList = (wxBitmapList *) NULL;
   
 /* X only font names */
+/*
 wxFontNameDirectory *wxTheFontNameDirectory;
+*/
 
 /* Stock objects */
 wxFont *wxNORMAL_FONT;
diff --git a/src/gtk1/dialog.cpp b/src/gtk1/dialog.cpp
index f4a3d74144..f370b07580 100644
--- a/src/gtk1/dialog.cpp
+++ b/src/gtk1/dialog.cpp
@@ -59,6 +59,24 @@ static void gtk_dialog_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation
     win->GtkOnSize( alloc->x, alloc->y, alloc->width, alloc->height );
 }
 
+//-----------------------------------------------------------------------------
+// "configure_event"
+//-----------------------------------------------------------------------------
+
+static gint gtk_dialog_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *event, wxDialog *win )
+{
+    if (!win->HasVMT()) return FALSE;
+
+    win->m_x = event->x;
+    win->m_y = event->y;
+
+    wxMoveEvent mevent( wxPoint(win->m_x,win->m_y), win->GetId() );
+    mevent.SetEventObject( win );
+    win->GetEventHandler()->ProcessEvent( mevent );
+
+    return FALSE;
+}
+
 //-----------------------------------------------------------------------------
 // wxDialog
 //-----------------------------------------------------------------------------
@@ -107,9 +125,6 @@ bool wxDialog::Create( wxWindow *parent,
     gtk_signal_connect( GTK_OBJECT(m_widget), "delete_event", 
         GTK_SIGNAL_FUNC(gtk_dialog_delete_callback), (gpointer)this );
     
-    gtk_signal_connect( GTK_OBJECT(m_widget), "size_allocate", 
-        GTK_SIGNAL_FUNC(gtk_dialog_size_callback), (gpointer)this );
-    
     m_wxwindow = gtk_myfixed_new();
     gtk_widget_show( m_wxwindow );
     GTK_WIDGET_UNSET_FLAGS( m_wxwindow, GTK_CAN_FOCUS );
@@ -123,9 +138,14 @@ bool wxDialog::Create( wxWindow *parent,
      
     gtk_widget_set_usize( m_widget, m_width, m_height );
      
+    gtk_signal_connect( GTK_OBJECT(m_widget), "size_allocate", 
+        GTK_SIGNAL_FUNC(gtk_dialog_size_callback), (gpointer)this );
+    
+    gtk_signal_connect( GTK_OBJECT(m_widget), "configure_event",
+        GTK_SIGNAL_FUNC(gtk_dialog_configure_callback), (gpointer)this );
+
     if (m_parent) m_parent->AddChild( this );
   
-  
     PostCreation();
   
     return TRUE;
diff --git a/src/gtk1/font.cpp b/src/gtk1/font.cpp
index 14435124ee..9e52e23db1 100644
--- a/src/gtk1/font.cpp
+++ b/src/gtk1/font.cpp
@@ -22,7 +22,9 @@
 // local data
 //-----------------------------------------------------------------------------
 
+/*
 extern wxFontNameDirectory *wxTheFontNameDirectory;
+*/
 
 //-----------------------------------------------------------------------------
 // wxFont
@@ -40,7 +42,6 @@ public:
     int       m_pointSize;
     int       m_family, m_style, m_weight;
     bool      m_underlined;
-    int       m_fontId;
     wxString  m_faceName;
 
     bool      m_byXFontName;
@@ -57,7 +58,6 @@ wxFontRefData::wxFontRefData() : m_scaled_xfonts(wxKEY_INTEGER)
     m_style = wxNORMAL;
     m_weight = wxNORMAL;
     m_underlined = FALSE;
-    m_fontId = 0;
     m_font = (GdkFont *) NULL;
 }
 
@@ -69,7 +69,6 @@ wxFontRefData::wxFontRefData( const wxFontRefData& data ) : m_scaled_xfonts(wxKE
     m_style = data.m_style;
     m_weight = data.m_weight;
     m_underlined = data.m_underlined;
-    m_fontId = data.m_fontId;
     m_faceName = data.m_faceName;
     m_font = (GdkFont *) NULL;
     if (data.m_font) m_font = gdk_font_ref( data.m_font );
@@ -114,27 +113,28 @@ wxFont::wxFont( int pointSize, int family, int style, int weight, bool underline
 {
     m_refData = new wxFontRefData();
 
-    if (family == wxDEFAULT) family = wxSWISS;
-    M_FONTDATA->m_family = family;
-    
-    if (!face.IsEmpty())
-    {
-        M_FONTDATA->m_faceName = face;
-        M_FONTDATA->m_fontId = wxTheFontNameDirectory->FindOrCreateFontId( face, family );
-        M_FONTDATA->m_family  = wxTheFontNameDirectory->GetFamily( family );
-    }
+    if (family == wxDEFAULT) 
+        M_FONTDATA->m_family = wxSWISS;
     else
-    {
-        M_FONTDATA->m_fontId = family;
-        M_FONTDATA->m_family  = wxTheFontNameDirectory->GetFamily( family );
-    }
+        M_FONTDATA->m_family = family;
+    
+    if (!face.IsEmpty()) M_FONTDATA->m_faceName = face;
 
-    if (style == wxDEFAULT) style = wxNORMAL;
-    M_FONTDATA->m_style = style;
-    if (weight == wxDEFAULT) weight = wxNORMAL;
-    M_FONTDATA->m_weight = weight;
-    if (pointSize == wxDEFAULT) pointSize = 12;
-    M_FONTDATA->m_pointSize = pointSize;
+    if (style == wxDEFAULT) 
+        M_FONTDATA->m_style = wxNORMAL;
+    else
+        M_FONTDATA->m_style = style;
+    
+    if (weight == wxDEFAULT) 
+        M_FONTDATA->m_weight = wxNORMAL;
+    else
+        M_FONTDATA->m_weight = weight;
+    
+    if (pointSize == wxDEFAULT) 
+        M_FONTDATA->m_pointSize = 12;
+    else
+        M_FONTDATA->m_pointSize = pointSize;
+    
     M_FONTDATA->m_underlined = underlined;
 
     if (wxTheFontList) wxTheFontList->Append( this );
@@ -186,8 +186,7 @@ wxString wxFont::GetFaceName() const
 {
     wxCHECK_MSG( Ok(), "", "invalid font" );
 
-    wxString s = wxTheFontNameDirectory->GetFontName( M_FONTDATA->m_fontId );
-    return s;
+    return M_FONTDATA->m_faceName;
 }
 
 int wxFont::GetFamily() const
@@ -215,13 +214,6 @@ wxString wxFont::GetFamilyString() const
     return "wxDEFAULT";
 }
 
-int wxFont::GetFontId() const
-{
-    wxCHECK_MSG( Ok(), 0, "invalid font" );
-
-    return M_FONTDATA->m_fontId; // stub
-}
-
 int wxFont::GetStyle() const
 {
     wxCHECK_MSG( Ok(), 0, "invalid font" );
@@ -333,12 +325,10 @@ void wxFont::SetUnderlined(bool underlined)
 // get internal representation of font
 //-----------------------------------------------------------------------------
 
-// local help function
-static GdkFont *wxLoadQueryNearestFont(int point_size, int fontid,
-        int style, int weight,
-        bool underlined);
+static GdkFont *wxLoadQueryNearestFont( int point_size, int family, int style, int weight, 
+                                        bool underlined, const wxString &facename );
 
-GdkFont *wxFont::GetInternalFont(float scale) const
+GdkFont *wxFont::GetInternalFont( float scale ) const
 {
     if (!Ok())
     {
@@ -346,9 +336,10 @@ GdkFont *wxFont::GetInternalFont(float scale) const
         return (GdkFont*) NULL;
     }
 
+    /* short cut if the special X font constructor has been used */
     if (M_FONTDATA->m_byXFontName) return M_FONTDATA->m_font;
 
-    long int_scale = long(scale * 100.0 + 0.5); // key for fontlist
+    long int_scale = long(scale * 100.0 + 0.5); /* key for fontlist */
     int point_scale = (M_FONTDATA->m_pointSize * 10 * int_scale) / 100;
     GdkFont *font = (GdkFont *) NULL;
 
@@ -359,6 +350,7 @@ GdkFont *wxFont::GetInternalFont(float scale) const
     }
     else
     {
+/*
         if ((int_scale == 100) &&
                 (M_FONTDATA->m_family == wxSWISS) &&
                 (M_FONTDATA->m_style == wxNORMAL) &&
@@ -369,14 +361,18 @@ GdkFont *wxFont::GetInternalFont(float scale) const
             font = gdk_font_load( "-adobe-helvetica-medium-r-normal--*-120-*-*-*-*-*-*" );
         }
         else
+*/
         {
-            font = wxLoadQueryNearestFont( point_scale, M_FONTDATA->m_fontId, M_FONTDATA->m_style,
-                    M_FONTDATA->m_weight, M_FONTDATA->m_underlined );
+            font = wxLoadQueryNearestFont( point_scale, M_FONTDATA->m_family, M_FONTDATA->m_style,
+                    M_FONTDATA->m_weight, M_FONTDATA->m_underlined, M_FONTDATA->m_faceName );
         }
         M_FONTDATA->m_scaled_xfonts.Append( int_scale, (wxObject*)font );
     }
+    
     if (!font)
+    {
         wxLogError("could not load any font");
+    }
 	
     return font;
 }
@@ -385,51 +381,89 @@ GdkFont *wxFont::GetInternalFont(float scale) const
 // local utilities to find a X font
 //-----------------------------------------------------------------------------
 
-static GdkFont *wxLoadQueryFont(int point_size, int fontid, int style,
-        int weight, bool WXUNUSED(underlined))
+static GdkFont*wxLoadQueryFont( int pointSize, int family, int style, int weight, 
+                                bool underlined, const wxString &facename )
 {
-    char buffer[512];
-    char *name = wxTheFontNameDirectory->GetScreenName( fontid, weight, style );
-
-    if (!name)
-        name = "-*-*-*-*-*-*-*-%d-*-*-*-*-*-*";
-    sprintf(buffer, name, point_size);
-
-    return gdk_font_load( buffer );
+    char *xfamily = (char*) NULL;
+    char *xstyle = (char*) NULL;
+    char *xweight = (char*) NULL;
+    
+    switch (family)
+    {
+        case wxDECORATIVE: xfamily = "lucida"; break;
+        case wxROMAN:      xfamily = "times";  break;
+        case wxMODERN:     xfamily = "courier"; break;
+        case wxSWISS:      xfamily = "helvetica"; break;
+	case wxTELETYPE:   xfamily = "lucidatypewriter"; break;
+	case wxSCRIPT:     xfamily = "utopia"; break;
+        default:           xfamily = "*";
+    }
+    
+    if (!facename.IsEmpty())
+    {
+        sprintf( wxBuffer, "-*-%s-*-*-normal-*-*-*-*-*-*-*-*-*", facename.c_str() );
+        GdkFont *test = gdk_font_load( wxBuffer );
+        if (test)
+	{
+	    gdk_font_unref( test );
+	    xfamily = WXSTRINGCAST facename;
+	}
+    }
+    
+    switch (style)
+    {
+        case wxITALIC:     xstyle = "i"; break;
+        case wxSLANT:      xstyle = "o"; break;
+        case wxNORMAL:     xstyle = "r"; break;
+        default:           xstyle = "*"; break;
+    }
+    switch (weight)
+    {
+        case wxBOLD:       xweight = "bold"; break;
+        case wxLIGHT:
+        case wxNORMAL:     xweight = "medium"; break;
+        default:           xweight = "*"; break;
+    }
+    
+    sprintf( wxBuffer, "-*-%s-%s-%s-normal-*-*-%d-*-*-*-*-*-*",
+        xfamily, xweight, xstyle, pointSize);
+    
+    return gdk_font_load( wxBuffer );
 }
 
-static GdkFont *wxLoadQueryNearestFont(int point_size, int fontid,
-        int style, int weight,
-        bool underlined)
+static GdkFont *wxLoadQueryNearestFont( int point_size, int family, int style, int weight, 
+	                                bool underlined, const wxString &facename )
 {
-    GdkFont *font;
-
-    font = wxLoadQueryFont( point_size, fontid, style, weight, underlined );
+    GdkFont *font = wxLoadQueryFont( point_size, family, style, weight, underlined, facename );
 
-    if (!font) {
-        // search up and down by stepsize 10
+    if (!font) 
+    {
+        /* search up and down by stepsize 10 */
         int max_size = point_size + 20 * (1 + (point_size/180));
         int min_size = point_size - 20 * (1 + (point_size/180));
-        int i;
-
-        // Search for smaller size (approx.)
-        for (i=point_size-10; !font && i >= 10 && i >= min_size; i -= 10)
-            font = wxLoadQueryFont(i, fontid, style, weight, underlined);
-        // Search for larger size (approx.)
-        for (i=point_size+10; !font && i <= max_size; i += 10)
-            font = wxLoadQueryFont(i, fontid, style, weight, underlined);
-        // Try default family
-        if (!font && fontid != wxDEFAULT)
-            font = wxLoadQueryFont(point_size, wxDEFAULT, style,
-                    weight, underlined);
-        // Bogus font
+
+        /* Search for smaller size (approx.) */
+        for (int i=point_size-10; !font && i >= 10 && i >= min_size; i -= 10)
+            font = wxLoadQueryFont(i, family, style, weight, underlined, facename );
+
+        /* Search for larger size (approx.) */
+        for (int i=point_size+10; !font && i <= max_size; i += 10)
+            font = wxLoadQueryFont( i, family, style, weight, underlined, facename );
+
+        /* Try default family */
+        if (!font && family != wxDEFAULT)
+            font = wxLoadQueryFont( point_size, wxDEFAULT, style, weight, underlined, facename );
+
+        /* Bogus font */
         if (!font)
-            font = wxLoadQueryFont(120, wxDEFAULT, wxNORMAL, wxNORMAL,
-                    underlined);
+            font = wxLoadQueryFont(120, wxDEFAULT, wxNORMAL, wxNORMAL, underlined, facename );
     }
+    
     return font;
 }
 
+/*
+
 //-----------------------------------------------------------------------------
 // face names and index functions
 //-----------------------------------------------------------------------------
@@ -510,9 +544,6 @@ static char *font_defaults[] = {
     "ScreenItalic", "i",
     "ScreenSlant", "o",
 
-/*
-    "ScreenDefaultBase", "misc-fixed",
-*/
     "ScreenDefaultBase", "*-times",
     
     "ScreenRomanBase", "*-times",
@@ -600,12 +631,11 @@ static void SearchResource(const char *prefix, const char **names, int count, ch
         strcpy(resource, prefix);
         for (j = 0; j < count; j++) 
 	{
-	    /* upon failure to find a matching fontname 
-	       in the default fonts above, we substitute more
-	       and more values by _ so that at last ScreenMyFontBoldNormal
-	       would turn into Screen___ and this will then get
-	       converted to -${ScreenDefaultBase}${ScreenStdSuffix}
-	    */
+	    // upon failure to find a matching fontname 
+	    //   in the default fonts above, we substitute more
+	    //   and more values by _ so that at last ScreenMyFontBoldNormal
+	    //   would turn into Screen___ and this will then get
+	    //   converted to -${ScreenDefaultBase}${ScreenStdSuffix}
 	
             if (!(i & (1 << j)))
                 strcat(resource, names[j]);
@@ -613,7 +643,7 @@ static void SearchResource(const char *prefix, const char **names, int count, ch
                 strcat(resource, "_");
         }
 	
-        /* we previously search the Xt-resources here */
+        // we previously search the Xt-resources here 
 
         if (!internal) 
 	{
@@ -635,14 +665,14 @@ static void SearchResource(const char *prefix, const char **names, int count, ch
         if ((strcmp(internal,"-${ScreenDefaultBase}${ScreenStdSuffix}") == 0) &&
 	    (strcmp(names[0], "Default") != 0))
 	{
-	    /* we did not find any font name in the standard list.
-	       this can (hopefully does) mean that someone supplied
-	       the facename in the wxFont constructor so we insert
-	       it here */
+	    // we did not find any font name in the standard list.
+	    //   this can (hopefully does) mean that someone supplied
+	    //   the facename in the wxFont constructor so we insert
+	    //   it here 
 	
-	    strcpy( resource,"-*-" );                  /* any producer               */
-	    strcat( resource, names[0] );              /* facename                   */
-	    strcat( resource, "${ScreenStdSuffix}" );  /* add size params later on   */
+	    strcpy( resource,"-*-" );                  // any producer               
+	    strcat( resource, names[0] );              // facename                   
+	    strcat( resource, "${ScreenStdSuffix}" );  // add size params later on   
 	    *v = copystring(resource);
 	}
 	else
@@ -696,7 +726,7 @@ void wxSuffixMap::Initialize(const char *resname, const char *devresname)
 
             SearchResource(devresname, names, 3, &v);
 	    
-            /* Expand macros in the found string: */
+            // Expand macros in the found string: 
 found:
             int len, closer = 0, startpos = 0;
 
@@ -775,7 +805,7 @@ found:
                     goto found;
                 }
             }
-            /* We have a final value: */
+            // We have a final value: 
             map[k][j] = v;
         }
     }
@@ -978,3 +1008,5 @@ int wxFontNameDirectory::GetFamily(int fontid)
     // font does not exist
     return wxDEFAULT;
 }
+
+*/
diff --git a/src/gtk1/frame.cpp b/src/gtk1/frame.cpp
index e47d0a2613..d21f976cc8 100644
--- a/src/gtk1/frame.cpp
+++ b/src/gtk1/frame.cpp
@@ -91,6 +91,10 @@ static gint gtk_frame_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventC
     win->m_x = event->x;
     win->m_y = event->y;
 
+    wxMoveEvent mevent( wxPoint(win->m_x,win->m_y), win->GetId() );
+    mevent.SetEventObject( win );
+    win->GetEventHandler()->ProcessEvent( mevent );
+
     return FALSE;
 }
 
diff --git a/src/motif.inc b/src/motif.inc
index 269d02bcec..efb2435516 100644
--- a/src/motif.inc
+++ b/src/motif.inc
@@ -87,7 +87,6 @@ LIB_CPP_SRC=\
  motif/dcmemory.cpp \
  motif/dcscreen.cpp \
  motif/dialog.cpp \
- motif/dirdlg.cpp \
  motif/dnd.cpp \
  motif/filedlg.cpp \
  motif/font.cpp \
@@ -132,6 +131,7 @@ LIB_CPP_SRC=\
  generic/choicdgg.cpp \
  generic/colrdlgg.cpp \
  generic/dcpsg.cpp \
+ generic/dirdlgg.cpp \
  generic/fontdlgg.cpp \
  generic/gridg.cpp \
  generic/helpext.cpp \
-- 
2.47.2

