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
This commit is contained in:
Robert Roebling
1999-01-24 15:07:54 +00:00
parent 9838df2cef
commit 36b3b54ad8
29 changed files with 749 additions and 610 deletions

View File

@@ -33,7 +33,7 @@ palette problems.
Default constructor. Default constructor.
\func{}{wxStaticBitmap}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp \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"}} \param{long}{ style = 0}, \param{const wxString\& }{name = ``staticBitmap"}}
Constructor, creating and showing a text control. Constructor, creating and showing a text control.
@@ -61,7 +61,7 @@ Constructor, creating and showing a text control.
\membersection{wxStaticBitmap::Create}\label{wxstaticbitmapcreate} \membersection{wxStaticBitmap::Create}\label{wxstaticbitmapcreate}
\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp \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"}} \param{long}{ style = 0}, \param{const wxString\& }{name = ``staticBitmap"}}
Creation function, for two-step construction. For details see \helpref{wxStaticBitmap::wxStaticBitmap}{wxstaticbitmapconstr}. Creation function, for two-step construction. For details see \helpref{wxStaticBitmap::wxStaticBitmap}{wxstaticbitmapconstr}.

View File

@@ -32,7 +32,7 @@ See also \helpref{window styles overview}{windowstyles}.
Default constructor. Default constructor.
\func{}{wxStaticText}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp \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"}} \param{long}{ style = 0}, \param{const wxString\& }{name = ``staticText"}}
Constructor, creating and showing a text control. Constructor, creating and showing a text control.
@@ -60,7 +60,7 @@ Constructor, creating and showing a text control.
\membersection{wxStaticText::Create}\label{wxstatictextcreate} \membersection{wxStaticText::Create}\label{wxstatictextcreate}
\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp \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"}} \param{long}{ style = 0}, \param{const wxString\& }{name = ``staticText"}}
Creation function, for two-step construction. For details see \helpref{wxStaticText::wxStaticText}{wxstatictextconstr}. Creation function, for two-step construction. For details see \helpref{wxStaticText::wxStaticText}{wxstatictextconstr}.

View File

@@ -72,7 +72,7 @@ generated when enter is pressed in a single-line text control.}
Default constructor. Default constructor.
\func{}{wxTextCtrl}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp \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"}} \param{long}{ style = 0}, \param{const wxValidator\& }{validator}, \param{const wxString\& }{name = ``text"}}
Constructor, creating and showing a text control. 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} \membersection{wxTextCtrl::Create}\label{wxtextctrlcreate}
\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp \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"}} \param{long}{ style = 0}, \param{const wxValidator\& }{validator}, \param{const wxString\& }{name = ``text"}}
Creates the text control for two-step construction. Derived classes Creates the text control for two-step construction. Derived classes

View File

@@ -74,6 +74,7 @@ class wxApp: public wxEvtHandler
wxWindow *GetTopWindow(); wxWindow *GetTopWindow();
void SetTopWindow( wxWindow *win ); void SetTopWindow( wxWindow *win );
virtual int MainLoop(); virtual int MainLoop();
void ExitMainLoop(); void ExitMainLoop();
bool Initialized(); bool Initialized();
@@ -88,29 +89,26 @@ class wxApp: public wxEvtHandler
bool SendIdleEvents( wxWindow* win ); bool SendIdleEvents( wxWindow* win );
inline wxString GetAppName() const inline wxString GetAppName() const
{ { if (m_appName != "") return m_appName; else return m_className; }
if (m_appName != "") inline void SetAppName( const wxString& name ) { m_appName = name; }
return m_appName;
else return m_className;
}
inline void SetAppName(const wxString& name) { m_appName = name; };
inline wxString GetClassName() const { return m_className; } 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; } 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; } inline bool GetExitOnFrameDelete() const { return m_exitOnFrameDelete; }
void SetPrintMode(int WXUNUSED(mode) ) {}; void SetPrintMode( int WXUNUSED(mode) ) {}
int GetPrintMode() const { return wxPRINT_POSTSCRIPT; }; int GetPrintMode() const { return wxPRINT_POSTSCRIPT; }
/* override this function to create default log target of arbitrary /* override this function to create default log target of arbitrary
* user-defined classv (default implementation creates a wxLogGui object) */ * user-defined classv (default implementation creates a wxLogGui object) */
virtual wxLog *CreateLogTarget(); virtual wxLog *CreateLogTarget();
/* GTK implementation */ // implementation
static bool Initialize(); static bool Initialize();
static bool InitialzeVisual(); static bool InitialzeVisual();
@@ -130,12 +128,11 @@ class wxApp: public wxEvtHandler
int argc; int argc;
char **argv; char **argv;
static wxAppInitializerFunction m_appInitFn; wxString m_vendorName;
wxString m_appName;
wxString m_className;
private: static wxAppInitializerFunction m_appInitFn;
wxString m_vendorName,
m_appName,
m_className;
DECLARE_EVENT_TABLE() DECLARE_EVENT_TABLE()
}; };

View File

@@ -30,13 +30,17 @@ class wxPaintDC;
class wxWindow; class wxWindow;
class wxFont; class wxFont;
/*
class wxFontNameDirectory; class wxFontNameDirectory;
*/
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// global variables // global variables
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
/*
extern wxFontNameDirectory *wxTheFontNameDirectory; extern wxFontNameDirectory *wxTheFontNameDirectory;
*/
extern const char* wxEmptyString; extern const char* wxEmptyString;
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@@ -60,7 +64,6 @@ public:
int GetPointSize() const; int GetPointSize() const;
int GetFamily() const; int GetFamily() const;
int GetFontId() const;
int GetStyle() const; int GetStyle() const;
int GetWeight() const; int GetWeight() const;
bool GetUnderlined() const; bool GetUnderlined() const;
@@ -87,6 +90,7 @@ public:
// no data :-) // no data :-)
}; };
/*
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// wxFontDirectory // wxFontDirectory
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@@ -114,5 +118,6 @@ class wxFontNameDirectory: public wxObject
class wxHashTable *table; class wxHashTable *table;
int nextFontId; int nextFontId;
}; };
*/
#endif // __GTKFONTH__ #endif // __GTKFONTH__

View File

@@ -83,7 +83,7 @@ public:
virtual wxToolBar* CreateToolBar( long style = wxNO_BORDER|wxTB_HORIZONTAL, wxWindowID id = -1, virtual wxToolBar* CreateToolBar( long style = wxNO_BORDER|wxTB_HORIZONTAL, wxWindowID id = -1,
const wxString& name = wxToolBarNameStr); const wxString& name = wxToolBarNameStr);
virtual wxToolBar *OnCreateToolBar( long style, wxWindowID id, const wxString& name ); 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; } inline void SetToolBar(wxToolBar *toolbar) { m_frameToolBar = toolbar; }
virtual void SetMenuBar( wxMenuBar *menuBar ); virtual void SetMenuBar( wxMenuBar *menuBar );
@@ -94,10 +94,10 @@ public:
virtual void SetIcon( const wxIcon &icon ); virtual void SetIcon( const wxIcon &icon );
virtual void Iconize( bool WXUNUSED(iconize)) { } virtual void Iconize( bool WXUNUSED(iconize)) { }
virtual bool IsIconized(void) const { return FALSE; } virtual bool IsIconized() const { return FALSE; }
bool Iconized(void) const { return IsIconized(); } bool Iconized() const { return IsIconized(); }
virtual void Maximize(bool WXUNUSED(maximize)) {} virtual void Maximize(bool WXUNUSED(maximize)) {}
virtual void Restore(void) {} virtual void Restore() {}
void OnActivate( wxActivateEvent &WXUNUSED(event) ) { } // called from docview.cpp void OnActivate( wxActivateEvent &WXUNUSED(event) ) { } // called from docview.cpp
void OnSize( wxSizeEvent &event ); void OnSize( wxSizeEvent &event );
@@ -109,7 +109,6 @@ public:
virtual wxPoint GetClientAreaOrigin() const; virtual wxPoint GetClientAreaOrigin() const;
void DoMenuUpdates(); void DoMenuUpdates();
void DoMenuUpdates(wxMenu* menu); void DoMenuUpdates(wxMenu* menu);
virtual void OnInternalIdle(); virtual void OnInternalIdle();
wxMenuBar *m_frameMenuBar; wxMenuBar *m_frameMenuBar;

View File

@@ -41,10 +41,9 @@ class wxGauge: public wxControl
DECLARE_DYNAMIC_CLASS(wxGauge) DECLARE_DYNAMIC_CLASS(wxGauge)
public: 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, inline wxGauge( wxWindow *parent, wxWindowID id, int range,
int range,
const wxPoint& pos = wxDefaultPosition, const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize, const wxSize& size = wxDefaultSize,
long style = wxGA_HORIZONTAL, long style = wxGA_HORIZONTAL,
@@ -53,8 +52,7 @@ class wxGauge: public wxControl
{ {
Create(parent, id, range, pos, size, style, validator, name); Create(parent, id, range, pos, size, style, validator, name);
} }
bool Create( wxWindow *parent, wxWindowID id, bool Create( wxWindow *parent, wxWindowID id, int range,
int range,
const wxPoint& pos = wxDefaultPosition, const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize, const wxSize& size = wxDefaultSize,
long style = wxGA_HORIZONTAL, long style = wxGA_HORIZONTAL,
@@ -64,13 +62,13 @@ class wxGauge: public wxControl
void SetBezelFace( int WXUNUSED(w) ) {}; void SetBezelFace( int WXUNUSED(w) ) {};
void SetRange( int r ); void SetRange( int r );
void SetValue( int pos ); void SetValue( int pos );
int GetShadowWidth(void) const { return 0; }; int GetShadowWidth() const { return 0; };
int GetBezelFace(void) const { return 0; }; int GetBezelFace() const { return 0; };
int GetRange(void) const; int GetRange() const;
int GetValue(void) const; int GetValue() const;
// Are we a Win95/GTK progress bar, or a normal gauge? // 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 // implementation

View File

@@ -17,19 +17,20 @@
#pragma interface #pragma interface
#endif #endif
class WXDLLEXPORT wxGDIObject: public wxObject class wxGDIObject : public wxObject
{ {
DECLARE_DYNAMIC_CLASS(wxGDIObject) DECLARE_DYNAMIC_CLASS(wxGDIObject)
public:
inline wxGDIObject(void) { m_visible = FALSE; };
inline ~wxGDIObject(void) {};
virtual bool GetVisible(void) { return m_visible; } public:
virtual void SetVisible(bool v) { m_visible = v; } inline wxGDIObject() { m_visible = FALSE; };
inline ~wxGDIObject() {};
virtual bool GetVisible() { return m_visible; }
virtual void SetVisible( bool visible ) { m_visible = visible; }
protected: protected:
bool m_visible; // Can a pointer to this object be safely taken? bool m_visible; /* can a pointer to this object be safely taken?
// - only if created within FindOrCreate... * - only if created within FindOrCreate... */
}; };
#endif #endif

View File

@@ -168,7 +168,7 @@ public:
virtual void SetSizeHints( int minW, int minH, int maxW = -1, int maxH = -1, int incW = -1, int incH = -1 ); 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. /* Dialog units translations. Implemented in wincmn.cpp. */
wxPoint ConvertPixelsToDialog( const wxPoint& pt ); wxPoint ConvertPixelsToDialog( const wxPoint& pt );
wxPoint ConvertDialogToPixels( const wxPoint& pt ); wxPoint ConvertDialogToPixels( const wxPoint& pt );
inline wxSize ConvertPixelsToDialog( const wxSize& sz ) inline wxSize ConvertPixelsToDialog( const wxSize& sz )
@@ -198,8 +198,8 @@ public:
{ return m_parent; } { return m_parent; }
wxWindow *GetGrandParent() const wxWindow *GetGrandParent() const
{ return (m_parent ? m_parent->m_parent : (wxWindow*)NULL); } { return (m_parent ? m_parent->m_parent : (wxWindow*)NULL); }
void SetParent( wxWindow *p ) void SetParent( wxWindow *parent )
{ m_parent = p; } { m_parent = parent; }
virtual wxWindow *ReParent( wxWindow *newParent ); virtual wxWindow *ReParent( wxWindow *newParent );
wxEvtHandler *GetEventHandler() const; wxEvtHandler *GetEventHandler() const;

View File

@@ -74,6 +74,7 @@ class wxApp: public wxEvtHandler
wxWindow *GetTopWindow(); wxWindow *GetTopWindow();
void SetTopWindow( wxWindow *win ); void SetTopWindow( wxWindow *win );
virtual int MainLoop(); virtual int MainLoop();
void ExitMainLoop(); void ExitMainLoop();
bool Initialized(); bool Initialized();
@@ -88,29 +89,26 @@ class wxApp: public wxEvtHandler
bool SendIdleEvents( wxWindow* win ); bool SendIdleEvents( wxWindow* win );
inline wxString GetAppName() const inline wxString GetAppName() const
{ { if (m_appName != "") return m_appName; else return m_className; }
if (m_appName != "") inline void SetAppName( const wxString& name ) { m_appName = name; }
return m_appName;
else return m_className;
}
inline void SetAppName(const wxString& name) { m_appName = name; };
inline wxString GetClassName() const { return m_className; } 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; } 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; } inline bool GetExitOnFrameDelete() const { return m_exitOnFrameDelete; }
void SetPrintMode(int WXUNUSED(mode) ) {}; void SetPrintMode( int WXUNUSED(mode) ) {}
int GetPrintMode() const { return wxPRINT_POSTSCRIPT; }; int GetPrintMode() const { return wxPRINT_POSTSCRIPT; }
/* override this function to create default log target of arbitrary /* override this function to create default log target of arbitrary
* user-defined classv (default implementation creates a wxLogGui object) */ * user-defined classv (default implementation creates a wxLogGui object) */
virtual wxLog *CreateLogTarget(); virtual wxLog *CreateLogTarget();
/* GTK implementation */ // implementation
static bool Initialize(); static bool Initialize();
static bool InitialzeVisual(); static bool InitialzeVisual();
@@ -130,12 +128,11 @@ class wxApp: public wxEvtHandler
int argc; int argc;
char **argv; char **argv;
static wxAppInitializerFunction m_appInitFn; wxString m_vendorName;
wxString m_appName;
wxString m_className;
private: static wxAppInitializerFunction m_appInitFn;
wxString m_vendorName,
m_appName,
m_className;
DECLARE_EVENT_TABLE() DECLARE_EVENT_TABLE()
}; };

View File

@@ -30,13 +30,17 @@ class wxPaintDC;
class wxWindow; class wxWindow;
class wxFont; class wxFont;
/*
class wxFontNameDirectory; class wxFontNameDirectory;
*/
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// global variables // global variables
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
/*
extern wxFontNameDirectory *wxTheFontNameDirectory; extern wxFontNameDirectory *wxTheFontNameDirectory;
*/
extern const char* wxEmptyString; extern const char* wxEmptyString;
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@@ -60,7 +64,6 @@ public:
int GetPointSize() const; int GetPointSize() const;
int GetFamily() const; int GetFamily() const;
int GetFontId() const;
int GetStyle() const; int GetStyle() const;
int GetWeight() const; int GetWeight() const;
bool GetUnderlined() const; bool GetUnderlined() const;
@@ -87,6 +90,7 @@ public:
// no data :-) // no data :-)
}; };
/*
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// wxFontDirectory // wxFontDirectory
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@@ -114,5 +118,6 @@ class wxFontNameDirectory: public wxObject
class wxHashTable *table; class wxHashTable *table;
int nextFontId; int nextFontId;
}; };
*/
#endif // __GTKFONTH__ #endif // __GTKFONTH__

View File

@@ -83,7 +83,7 @@ public:
virtual wxToolBar* CreateToolBar( long style = wxNO_BORDER|wxTB_HORIZONTAL, wxWindowID id = -1, virtual wxToolBar* CreateToolBar( long style = wxNO_BORDER|wxTB_HORIZONTAL, wxWindowID id = -1,
const wxString& name = wxToolBarNameStr); const wxString& name = wxToolBarNameStr);
virtual wxToolBar *OnCreateToolBar( long style, wxWindowID id, const wxString& name ); 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; } inline void SetToolBar(wxToolBar *toolbar) { m_frameToolBar = toolbar; }
virtual void SetMenuBar( wxMenuBar *menuBar ); virtual void SetMenuBar( wxMenuBar *menuBar );
@@ -94,10 +94,10 @@ public:
virtual void SetIcon( const wxIcon &icon ); virtual void SetIcon( const wxIcon &icon );
virtual void Iconize( bool WXUNUSED(iconize)) { } virtual void Iconize( bool WXUNUSED(iconize)) { }
virtual bool IsIconized(void) const { return FALSE; } virtual bool IsIconized() const { return FALSE; }
bool Iconized(void) const { return IsIconized(); } bool Iconized() const { return IsIconized(); }
virtual void Maximize(bool WXUNUSED(maximize)) {} virtual void Maximize(bool WXUNUSED(maximize)) {}
virtual void Restore(void) {} virtual void Restore() {}
void OnActivate( wxActivateEvent &WXUNUSED(event) ) { } // called from docview.cpp void OnActivate( wxActivateEvent &WXUNUSED(event) ) { } // called from docview.cpp
void OnSize( wxSizeEvent &event ); void OnSize( wxSizeEvent &event );
@@ -109,7 +109,6 @@ public:
virtual wxPoint GetClientAreaOrigin() const; virtual wxPoint GetClientAreaOrigin() const;
void DoMenuUpdates(); void DoMenuUpdates();
void DoMenuUpdates(wxMenu* menu); void DoMenuUpdates(wxMenu* menu);
virtual void OnInternalIdle(); virtual void OnInternalIdle();
wxMenuBar *m_frameMenuBar; wxMenuBar *m_frameMenuBar;

View File

@@ -41,10 +41,9 @@ class wxGauge: public wxControl
DECLARE_DYNAMIC_CLASS(wxGauge) DECLARE_DYNAMIC_CLASS(wxGauge)
public: 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, inline wxGauge( wxWindow *parent, wxWindowID id, int range,
int range,
const wxPoint& pos = wxDefaultPosition, const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize, const wxSize& size = wxDefaultSize,
long style = wxGA_HORIZONTAL, long style = wxGA_HORIZONTAL,
@@ -53,8 +52,7 @@ class wxGauge: public wxControl
{ {
Create(parent, id, range, pos, size, style, validator, name); Create(parent, id, range, pos, size, style, validator, name);
} }
bool Create( wxWindow *parent, wxWindowID id, bool Create( wxWindow *parent, wxWindowID id, int range,
int range,
const wxPoint& pos = wxDefaultPosition, const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize, const wxSize& size = wxDefaultSize,
long style = wxGA_HORIZONTAL, long style = wxGA_HORIZONTAL,
@@ -64,13 +62,13 @@ class wxGauge: public wxControl
void SetBezelFace( int WXUNUSED(w) ) {}; void SetBezelFace( int WXUNUSED(w) ) {};
void SetRange( int r ); void SetRange( int r );
void SetValue( int pos ); void SetValue( int pos );
int GetShadowWidth(void) const { return 0; }; int GetShadowWidth() const { return 0; };
int GetBezelFace(void) const { return 0; }; int GetBezelFace() const { return 0; };
int GetRange(void) const; int GetRange() const;
int GetValue(void) const; int GetValue() const;
// Are we a Win95/GTK progress bar, or a normal gauge? // 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 // implementation

View File

@@ -17,19 +17,20 @@
#pragma interface #pragma interface
#endif #endif
class WXDLLEXPORT wxGDIObject: public wxObject class wxGDIObject : public wxObject
{ {
DECLARE_DYNAMIC_CLASS(wxGDIObject) DECLARE_DYNAMIC_CLASS(wxGDIObject)
public:
inline wxGDIObject(void) { m_visible = FALSE; };
inline ~wxGDIObject(void) {};
virtual bool GetVisible(void) { return m_visible; } public:
virtual void SetVisible(bool v) { m_visible = v; } inline wxGDIObject() { m_visible = FALSE; };
inline ~wxGDIObject() {};
virtual bool GetVisible() { return m_visible; }
virtual void SetVisible( bool visible ) { m_visible = visible; }
protected: protected:
bool m_visible; // Can a pointer to this object be safely taken? bool m_visible; /* can a pointer to this object be safely taken?
// - only if created within FindOrCreate... * - only if created within FindOrCreate... */
}; };
#endif #endif

View File

@@ -168,7 +168,7 @@ public:
virtual void SetSizeHints( int minW, int minH, int maxW = -1, int maxH = -1, int incW = -1, int incH = -1 ); 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. /* Dialog units translations. Implemented in wincmn.cpp. */
wxPoint ConvertPixelsToDialog( const wxPoint& pt ); wxPoint ConvertPixelsToDialog( const wxPoint& pt );
wxPoint ConvertDialogToPixels( const wxPoint& pt ); wxPoint ConvertDialogToPixels( const wxPoint& pt );
inline wxSize ConvertPixelsToDialog( const wxSize& sz ) inline wxSize ConvertPixelsToDialog( const wxSize& sz )
@@ -198,8 +198,8 @@ public:
{ return m_parent; } { return m_parent; }
wxWindow *GetGrandParent() const wxWindow *GetGrandParent() const
{ return (m_parent ? m_parent->m_parent : (wxWindow*)NULL); } { return (m_parent ? m_parent->m_parent : (wxWindow*)NULL); }
void SetParent( wxWindow *p ) void SetParent( wxWindow *parent )
{ m_parent = p; } { m_parent = parent; }
virtual wxWindow *ReParent( wxWindow *newParent ); virtual wxWindow *ReParent( wxWindow *newParent );
wxEvtHandler *GetEventHandler() const; wxEvtHandler *GetEventHandler() const;

View File

@@ -236,7 +236,7 @@ void DnDFrame::OnPaint(wxPaintEvent& /*event*/)
GetClientSize( &w, &h ); GetClientSize( &w, &h );
wxPaintDC dc(this); 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 ); dc.DrawText( "Drag text from here!", 20, h-22 );
} }

View File

@@ -44,11 +44,6 @@
#include <math.h> #include <math.h>
#ifdef __WXGTK__
#include "gdk/gdk.h"
#include "gtk/gtk.h"
#endif
#ifdef __WXMSW__ #ifdef __WXMSW__
#ifdef DrawText #ifdef DrawText
@@ -826,18 +821,6 @@ void wxPostScriptDC::SetFont (const wxFont& font)
m_font = 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 *name;
const char *style = ""; const char *style = "";
int Style = m_font.GetStyle(); int Style = m_font.GetStyle();
@@ -874,8 +857,9 @@ void wxPostScriptDC::SetFont (const wxFont& font)
style = ""; style = "";
} }
else if (Style == wxNORMAL && Weight == wxBOLD) else if (Style == wxNORMAL && Weight == wxBOLD)
{
style = "-Bold"; style = "-Bold";
}
else if (Style == wxITALIC && (Weight == wxNORMAL || Weight == wxLIGHT)) else if (Style == wxITALIC && (Weight == wxNORMAL || Weight == wxLIGHT))
{ {
if (m_font.GetFamily () == wxROMAN) if (m_font.GetFamily () == wxROMAN)
@@ -905,15 +889,17 @@ void wxPostScriptDC::SetFont (const wxFont& font)
style = "-BoldOblique"; style = "-BoldOblique";
} }
else else
{
style = ""; style = "";
}
char buf[100];
strcpy (buf, name); strcpy (buf, name);
strcat (buf, style); strcat (buf, style);
*m_pstream << buf << " reencodeISO def\n";
*m_pstream << buf << " findfont\n"; *m_pstream << buf << " findfont\n";
// *m_pstream << (m_font.GetPointSize() * m_scaleFactor) << " scalefont setfont\n"; *m_pstream << YLOG2DEVREL(m_font.GetPointSize()) << " scalefont setfont\n";
// No scale factor in this implementation?
*m_pstream << (m_font.GetPointSize()) << " scalefont setfont\n";
#endif
} }
void wxPostScriptDC::SetPen( const wxPen& pen ) void wxPostScriptDC::SetPen( const wxPen& pen )
@@ -1455,7 +1441,6 @@ void wxPostScriptDC::StartPage ()
m_logicalOriginX = 0; m_logicalOriginX = 0;
m_logicalOriginY = 0; m_logicalOriginY = 0;
*/ */
// Output scaling // Output scaling
long translate_x, translate_y; long translate_x, translate_y;
double scale_x, scale_y; double scale_x, scale_y;
@@ -1504,183 +1489,198 @@ void wxPostScriptDC::GetTextExtent (const wxString& string, long *x, long *y,
long *descent, long *externalLeading, wxFont *theFont, long *descent, long *externalLeading, wxFont *theFont,
bool WXUNUSED(use16)) 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 #if !USE_AFM_FOR_POSTSCRIPT
// Provide a VERY rough estimate (avoid using it) /* Provide a VERY rough estimate (avoid using it).
// Chris Breeze 5/11/97: produces accurate results for mono-spaced * Produces accurate results for mono-spaced font
// font such as Courier (aka wxMODERN) * such as Courier (aka wxMODERN) */
int height = 12; int height = 12;
if (fontToUse) if (fontToUse)
{ {
height = fontToUse->GetPointSize(); height = fontToUse->GetPointSize();
} }
*x = strlen (string) * height * 72 / 120; *x = strlen (string) * height * 72 / 120;
*y = (long) (height * 1.32); // allow for descender *y = (long) (height * 1.32); /* allow for descender */
if (descent) *descent = 0;
if (descent) if (externalLeading) *externalLeading = 0;
*descent = 0;
if (externalLeading)
*externalLeading = 0;
#else #else
// +++++ start of contributed code +++++
// ************************************************************ /* method for calculating string widths in postscript:
// method for calculating string widths in postscript: / read in the AFM (adobe font metrics) file for the
// read in the AFM (adobe font metrics) file for the / actual font, parse it and extract the character widths
// actual font, parse it and extract the character widths / and also the descender. this may be improved, but for now
// and also the descender. this may be improved, but for now / it works well. the AFM file is only read in if the
// it works well. the AFM file is only read in if the / font is changed. this may be chached in the future.
// font is changed. this may be chached in the future. / calls to GetTextExtent with the font unchanged are rather
// calls to GetTextExtent with the font unchanged are rather / efficient!!!
// efficient!!! /
// / for each font and style used there is an AFM file necessary.
// for each font and style used there is an AFM file necessary. / currently i have only files for the roman font family.
// currently i have only files for the roman font family. / I try to get files for the other ones!
// i try to get files for the other ones! /
// / CAVE: the size of the string is currently always calculated
// CAVE: the size of the string is currently always calculated / in 'points' (1/72 of an inch). this should later on be
// in 'points' (1/72 of an inch). this should later on be / changed to depend on the mapping mode.
// changed to depend on the mapping mode. / CAVE: the path to the AFM files must be set before calling this
// CAVE: the path to the AFM files must be set before calling this / function. this is usually done by a call like the following:
// function. this is usually done by a call like the following: / wxSetAFMPath("d:\\wxw161\\afm\\");
// wxSetAFMPath("d:\\wxw161\\afm\\"); /
// / example:
// example: /
// / wxPostScriptDC dc(NULL, TRUE);
// wxPostScriptDC dc(NULL, TRUE); / if (dc.Ok()){
// if (dc.Ok()){ / wxSetAFMPath("d:\\wxw161\\afm\\");
// wxSetAFMPath("d:\\wxw161\\afm\\"); / dc.StartDoc("Test");
// dc.StartDoc("Test"); / dc.StartPage();
// dc.StartPage(); / long w,h;
// long w,h; / dc.SetFont(new wxFont(10, wxROMAN, wxNORMAL, wxNORMAL));
// dc.SetFont(new wxFont(10, wxROMAN, wxNORMAL, wxNORMAL)); / dc.GetTextExtent("Hallo",&w,&h);
// dc.GetTextExtent("Hallo",&w,&h); / dc.EndPage();
// dc.EndPage(); / dc.EndDoc();
// dc.EndDoc(); / }
// } /
// / by steve (stefan.hammes@urz.uni-heidelberg.de)
// by steve (stefan.hammes@urz.uni-heidelberg.de) / created: 10.09.94
// created: 10.09.94 / updated: 14.05.95 */
// updated: 14.05.95
assert(fontToUse && "void wxPostScriptDC::GetTextExtent: no font defined"); /* these static vars are for storing the state between calls */
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 lastFamily= INT_MIN;
static int lastSize= INT_MIN; static int lastSize= INT_MIN;
static int lastStyle= INT_MIN; static int lastStyle= INT_MIN;
static int lastWeight= INT_MIN; static int lastWeight= INT_MIN;
static int lastDescender = INT_MIN; static int lastDescender = INT_MIN;
static int lastWidths[256]; // widths of the characters static int lastWidths[256]; /* widths of the characters */
// get actual parameters /* get actual parameters */
const int Family = fontToUse->GetFamily(); const int Family = fontToUse->GetFamily();
const int Size = fontToUse->GetPointSize(); const int Size = fontToUse->GetPointSize();
const int Style = fontToUse->GetStyle(); const int Style = fontToUse->GetStyle();
const int Weight = fontToUse->GetWeight(); const int Weight = fontToUse->GetWeight();
// if we have another font, read the font-metrics /* if we have another font, read the font-metrics */
if(Family!=lastFamily||Size!=lastSize||Style!=lastStyle||Weight!=lastWeight){ if (Family!=lastFamily || Size!=lastSize || Style!=lastStyle || Weight!=lastWeight)
// store actual values {
/* store actual values */
lastFamily = Family; lastFamily = Family;
lastSize = Size; lastSize = Size;
lastStyle = Style; lastStyle = Style;
lastWeight = Weight; lastWeight = Weight;
// read in new font metrics ************************************** char *name = (char*) NULL;
// 1. construct filename ****************************************** switch (Family)
/* MATTHEW: [2] Use wxTheFontNameDirectory */ {
const char *name; 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;
}
// Julian - we'll need to do this a different way now we've removed the /* get the directory of the AFM files */
// 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]; char afmName[256];
afmName[0] = 0; afmName[0] = 0;
if (wxGetAFMPath()) if (wxGetAFMPath()) strcpy( afmName, wxGetAFMPath() );
strcpy(afmName,wxGetAFMPath());
// 2. open and process the file ********************************** /* 2. open and process the file
/ a short explanation of the AFM format:
// a short explanation of the AFM format: / we have for each character a line, which gives its size
// we have for each character a line, which gives its size / e.g.:
// e.g.: /
// / C 63 ; WX 444 ; N question ; B 49 -14 395 676 ;
// C 63 ; WX 444 ; N question ; B 49 -14 395 676 ; /
// / that means, we have a character with ascii code 63, and width
// that means, we have a character with ascii code 63, and width / (444/1000 * fontSize) points.
// (444/1000 * fontSize) points. / the other data is ignored for now!
// the other data is ignored for now! /
// / when the font has changed, we read in the right AFM file and store the
// 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.). */
// character widths in an array, which is processed below (see point 3.).
// new elements JC Sun Aug 25 23:21:44 MET DST 1996
/* new elements JC Sun Aug 25 23:21:44 MET DST 1996 */
strcat(afmName,name); strcat(afmName,name);
strcat(afmName,".afm"); strcat(afmName,".afm");
FILE *afmFile = fopen(afmName,"r"); FILE *afmFile = fopen(afmName,"r");
if(afmFile==NULL){ if ( afmFile==NULL )
{
wxLogDebug( "GetTextExtent: can't open AFM file '%s'\n", afmName ); wxLogDebug( "GetTextExtent: can't open AFM file '%s'\n", afmName );
wxLogDebug( " using approximate values\n"); wxLogDebug( " using approximate values\n");
int i; for (int i=0; i<256; i++) lastWidths[i] = 500; /* an approximate value */
for (i=0; i<256; i++) lastWidths[i] = 500; // an approximate value lastDescender = -150; /* dito. */
lastDescender = -150; // dito. }
}else{ else
int i; {
// init the widths array /* init the widths array */
for(i=0; i<256; i++) lastWidths[i]= INT_MIN; for(int i=0; i<256; i++) lastWidths[i] = INT_MIN;
// some variables for holding parts of a line /* some variables for holding parts of a line */
char cString[10],semiString[10],WXString[10],descString[20]; char cString[10],semiString[10],WXString[10],descString[20];
char upString[30], utString[30], encString[50]; char upString[30], utString[30], encString[50];
char line[256]; char line[256];
int ascii,cWidth; int ascii,cWidth;
// read in the file and parse it /* read in the file and parse it */
while(fgets(line,sizeof(line),afmFile)!=NULL){ while(fgets(line,sizeof(line),afmFile)!=NULL)
// A.) check for descender definition {
if(strncmp(line,"Descender",9)==0){ /* A.) check for descender definition */
if((sscanf(line,"%s%d",descString,&lastDescender)!=2) if (strncmp(line,"Descender",9)==0)
|| (strcmp(descString,"Descender")!=0)) { {
wxLogDebug("AFM-file '%s': line '%s' has error (bad descender)\n", if ((sscanf(line,"%s%d",descString,&lastDescender)!=2) ||
afmName,line); (strcmp(descString,"Descender")!=0))
{
wxLogDebug( "AFM-file '%s': line '%s' has error (bad descender)\n", afmName,line );
} }
} }
// JC 1.) check for UnderlinePosition /* JC 1.) check for UnderlinePosition */
else if(strncmp(line,"UnderlinePosition",17)==0){ else if(strncmp(line,"UnderlinePosition",17)==0)
if((sscanf(line,"%s%lf",upString,&UnderlinePosition)!=2) {
|| (strcmp(upString,"UnderlinePosition")!=0)) { if ((sscanf(line,"%s%lf",upString,&UnderlinePosition)!=2) ||
wxLogDebug("AFM-file '%s': line '%s' has error (bad UnderlinePosition)\n", (strcmp(upString,"UnderlinePosition")!=0))
afmName,line); {
wxLogDebug( "AFM-file '%s': line '%s' has error (bad UnderlinePosition)\n", afmName, line );
} }
} }
// JC 2.) check for UnderlineThickness /* JC 2.) check for UnderlineThickness */
else if(strncmp(line,"UnderlineThickness",18)==0){ else if(strncmp(line,"UnderlineThickness",18)==0)
if((sscanf(line,"%s%lf",utString,&UnderlineThickness)!=2) {
|| (strcmp(utString,"UnderlineThickness")!=0)) { if ((sscanf(line,"%s%lf",utString,&UnderlineThickness)!=2) ||
wxLogDebug("AFM-file '%s': line '%s' has error (bad UnderlineThickness)\n", (strcmp(utString,"UnderlineThickness")!=0))
afmName,line); {
wxLogDebug( "AFM-file '%s': line '%s' has error (bad UnderlineThickness)\n", afmName, line );
} }
} }
// JC 3.) check for EncodingScheme /* JC 3.) check for EncodingScheme */
else if(strncmp(line,"EncodingScheme",14)==0){ else if(strncmp(line,"EncodingScheme",14)==0)
if((sscanf(line,"%s%s",utString,encString)!=2) {
|| (strcmp(utString,"EncodingScheme")!=0)) { if ((sscanf(line,"%s%s",utString,encString)!=2) ||
wxLogDebug("AFM-file '%s': line '%s' has error (bad EncodingScheme)\n", (strcmp(utString,"EncodingScheme")!=0))
afmName,line); {
wxLogDebug("AFM-file '%s': line '%s' has error (bad EncodingScheme)\n", afmName, line );
} }
else if (strncmp(encString, "AdobeStandardEncoding", 21)) else if (strncmp(encString, "AdobeStandardEncoding", 21))
{ {
@@ -1688,32 +1688,36 @@ void wxPostScriptDC::GetTextExtent (const wxString& string, long *x, long *y,
afmName,line, encString); afmName,line, encString);
} }
} }
// B.) check for char-width /* B.) check for char-width */
else if(strncmp(line,"C ",2)==0){ else if(strncmp(line,"C ",2)==0)
if(sscanf(line,"%s%d%s%s%d", {
cString,&ascii,semiString,WXString,&cWidth)!=5){ 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); wxLogDebug("AFM-file '%s': line '%s' has an error (bad character width)\n",afmName,line);
} }
if(strcmp(cString,"C")!=0 || strcmp(semiString,";")!=0 || if(strcmp(cString,"C")!=0 || strcmp(semiString,";")!=0 || strcmp(WXString,"WX")!=0)
strcmp(WXString,"WX")!=0){ {
wxLogDebug("AFM-file '%s': line '%s' has a format error\n",afmName,line); wxLogDebug("AFM-file '%s': line '%s' has a format error\n",afmName,line);
} }
//printf(" char '%c'=%d has width '%d'\n",ascii,ascii,cWidth); /* printf(" char '%c'=%d has width '%d'\n",ascii,ascii,cWidth); */
if(ascii>=0 && ascii<256){ if (ascii>=0 && ascii<256)
lastWidths[ascii] = cWidth; // store width {
}else{ lastWidths[ascii] = cWidth; /* store width */
}
else
{
/* MATTHEW: this happens a lot; don't print an error */ /* MATTHEW: this happens a lot; don't print an error */
// wxLogDebug("AFM-file '%s': ASCII value %d out of range\n",afmName,ascii); /* wxLogDebug("AFM-file '%s': ASCII value %d out of range\n",afmName,ascii); */
} }
} }
// C.) ignore other entries. /* C.) ignore other entries. */
} }
fclose(afmFile); fclose(afmFile);
} }
// hack to compute correct values for german 'Umlaute' /* hack to compute correct values for german 'Umlaute'
// the correct way would be to map the character names / the correct way would be to map the character names
// like 'adieresis' to corresp. positions of ISOEnc and read / like 'adieresis' to corresp. positions of ISOEnc and read
// these values from AFM files, too. Maybe later ... / these values from AFM files, too. Maybe later ... */
lastWidths[196] = lastWidths['A']; // <20> lastWidths[196] = lastWidths['A']; // <20>
lastWidths[228] = lastWidths['a']; // <20> lastWidths[228] = lastWidths['a']; // <20>
lastWidths[214] = lastWidths['O']; // <20> lastWidths[214] = lastWidths['O']; // <20>
@@ -1723,50 +1727,56 @@ void wxPostScriptDC::GetTextExtent (const wxString& string, long *x, long *y,
lastWidths[223] = lastWidths[251]; // <20> lastWidths[223] = lastWidths[251]; // <20>
} }
// JC: calculate UnderlineThickness/UnderlinePosition /* JC: calculate UnderlineThickness/UnderlinePosition */
m_underlinePosition = m_underlinePosition * fontToUse->GetPointSize() / 1000.0f; m_underlinePosition = m_underlinePosition * fontToUse->GetPointSize() / 1000.0f;
m_underlineThickness = m_underlineThickness * fontToUse->GetPointSize() / 1000.0f * m_scaleFactor; m_underlineThickness = m_underlineThickness * fontToUse->GetPointSize() / 1000.0f * m_scaleFactor;
// 3. now the font metrics are read in, calc size ******************* /* 3. now the font metrics are read in, calc size this
// this is done by adding the widths of the characters in the / is done by adding the widths of the characters in the
// string. they are given in 1/1000 of the size! / string. they are given in 1/1000 of the size! */
long widthSum=0; long widthSum=0;
long height=Size; // by default long height=Size; /* by default */
unsigned char *p; unsigned char *p;
for(p=(unsigned char *)(const char *)string; *p; p++){ for(p=(unsigned char *)(const char *)string; *p; p++)
if(lastWidths[*p]== INT_MIN){ {
wxLogDebug("GetTextExtent: undefined width for character '%c' (%d)\n", if(lastWidths[*p]== INT_MIN)
*p,*p); {
widthSum += (long)(lastWidths[' ']/1000.0F * Size); // assume space wxLogDebug("GetTextExtent: undefined width for character '%c' (%d)\n", *p,*p);
}else{ widthSum += (long)(lastWidths[' ']/1000.0F * Size); /* assume space */
}
else
{
widthSum += (long)((lastWidths[*p]/1000.0F)*Size); widthSum += (long)((lastWidths[*p]/1000.0F)*Size);
} }
} }
// add descender to height (it is usually a negative value)
if(lastDescender!=INT_MIN){ /* add descender to height (it is usually a negative value) */
if (lastDescender!=INT_MIN)
{
height += (long)(((-lastDescender)/1000.0F) * Size); /* MATTHEW: forgot scale */ height += (long)(((-lastDescender)/1000.0F) * Size); /* MATTHEW: forgot scale */
} }
// return size values /* return size values */
*x = widthSum; *x = widthSum;
*y = height; *y = height;
// return other parameters /* return other parameters */
if (descent){ if (descent)
if(lastDescender!=INT_MIN){ {
if(lastDescender!=INT_MIN)
{
*descent = (long)(((-lastDescender)/1000.0F) * Size); /* MATTHEW: forgot scale */ *descent = (long)(((-lastDescender)/1000.0F) * Size); /* MATTHEW: forgot scale */
}else{ }
else
{
*descent = 0; *descent = 0;
} }
} }
// currently no idea how to calculate this! /* currently no idea how to calculate this! */
// if (externalLeading) *externalLeading = 0; if (externalLeading) *externalLeading = 0;
if (externalLeading)
*externalLeading = 0;
// ----- end of contributed code -----
#endif #endif
} }

View File

@@ -204,7 +204,7 @@ void wxGenericFontDialog::CreateWidgets(void)
*/ */
wxString wxString
*families = new wxString[5], *families = new wxString[6],
*styles = new wxString[3], *styles = new wxString[3],
*weights = new wxString[3]; *weights = new wxString[3];
families[0] = _("Roman"); families[0] = _("Roman");
@@ -212,6 +212,7 @@ void wxGenericFontDialog::CreateWidgets(void)
families[2] = _("Modern"); families[2] = _("Modern");
families[3] = _("Script"); families[3] = _("Script");
families[4] = _("Swiss" ); families[4] = _("Swiss" );
families[5] = _("Teletype" );
styles[0] = _("Normal"); styles[0] = _("Normal");
styles[1] = _("Italic"); styles[1] = _("Italic");
styles[2] = _("Slant"); styles[2] = _("Slant");
@@ -401,6 +402,8 @@ char *wxFontFamilyIntToString(int family)
return "Modern"; return "Modern";
case wxSCRIPT: case wxSCRIPT:
return "Script"; return "Script";
case wxTELETYPE:
return "Teletype";
case wxSWISS: case wxSWISS:
default: default:
return "Swiss"; return "Swiss";
@@ -421,6 +424,8 @@ int wxFontFamilyStringToInt(char *family)
return wxMODERN; return wxMODERN;
else if (strcmp(family, "Script") == 0) else if (strcmp(family, "Script") == 0)
return wxSCRIPT; return wxSCRIPT;
else if (strcmp(family, "Teletype") == 0)
return wxTELETYPE;
else return wxSWISS; else return wxSWISS;
} }

View File

@@ -384,8 +384,10 @@ bool wxApp::Initialize(void)
wxSystemSettings::Init(); wxSystemSettings::Init();
/*
wxTheFontNameDirectory = new wxFontNameDirectory; wxTheFontNameDirectory = new wxFontNameDirectory;
wxTheFontNameDirectory->Initialize(); wxTheFontNameDirectory->Initialize();
*/
wxTheColourDatabase = new wxColourDatabase( wxKEY_STRING ); wxTheColourDatabase = new wxColourDatabase( wxKEY_STRING );
wxTheColourDatabase->Initialize(); wxTheColourDatabase->Initialize();
@@ -426,8 +428,10 @@ void wxApp::CleanUp(void)
if (wxTheColourDatabase) delete wxTheColourDatabase; if (wxTheColourDatabase) delete wxTheColourDatabase;
wxTheColourDatabase = (wxColourDatabase*) NULL; wxTheColourDatabase = (wxColourDatabase*) NULL;
/*
if (wxTheFontNameDirectory) delete wxTheFontNameDirectory; if (wxTheFontNameDirectory) delete wxTheFontNameDirectory;
wxTheFontNameDirectory = (wxFontNameDirectory*) NULL; wxTheFontNameDirectory = (wxFontNameDirectory*) NULL;
*/
wxDeleteStockObjects(); wxDeleteStockObjects();

View File

@@ -69,7 +69,9 @@ wxColourDatabase *wxTheColourDatabase = (wxColourDatabase *) NULL;
wxBitmapList *wxTheBitmapList = (wxBitmapList *) NULL; wxBitmapList *wxTheBitmapList = (wxBitmapList *) NULL;
/* X only font names */ /* X only font names */
/*
wxFontNameDirectory *wxTheFontNameDirectory; wxFontNameDirectory *wxTheFontNameDirectory;
*/
/* Stock objects */ /* Stock objects */
wxFont *wxNORMAL_FONT; wxFont *wxNORMAL_FONT;

View File

@@ -59,6 +59,24 @@ static void gtk_dialog_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation
win->GtkOnSize( alloc->x, alloc->y, alloc->width, alloc->height ); 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 // wxDialog
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@@ -107,9 +125,6 @@ bool wxDialog::Create( wxWindow *parent,
gtk_signal_connect( GTK_OBJECT(m_widget), "delete_event", gtk_signal_connect( GTK_OBJECT(m_widget), "delete_event",
GTK_SIGNAL_FUNC(gtk_dialog_delete_callback), (gpointer)this ); 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(); m_wxwindow = gtk_myfixed_new();
gtk_widget_show( m_wxwindow ); gtk_widget_show( m_wxwindow );
GTK_WIDGET_UNSET_FLAGS( m_wxwindow, GTK_CAN_FOCUS ); GTK_WIDGET_UNSET_FLAGS( m_wxwindow, GTK_CAN_FOCUS );
@@ -123,8 +138,13 @@ bool wxDialog::Create( wxWindow *parent,
gtk_widget_set_usize( m_widget, m_width, m_height ); gtk_widget_set_usize( m_widget, m_width, m_height );
if (m_parent) m_parent->AddChild( this ); 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(); PostCreation();

View File

@@ -22,7 +22,9 @@
// local data // local data
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
/*
extern wxFontNameDirectory *wxTheFontNameDirectory; extern wxFontNameDirectory *wxTheFontNameDirectory;
*/
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// wxFont // wxFont
@@ -40,7 +42,6 @@ public:
int m_pointSize; int m_pointSize;
int m_family, m_style, m_weight; int m_family, m_style, m_weight;
bool m_underlined; bool m_underlined;
int m_fontId;
wxString m_faceName; wxString m_faceName;
bool m_byXFontName; bool m_byXFontName;
@@ -57,7 +58,6 @@ wxFontRefData::wxFontRefData() : m_scaled_xfonts(wxKEY_INTEGER)
m_style = wxNORMAL; m_style = wxNORMAL;
m_weight = wxNORMAL; m_weight = wxNORMAL;
m_underlined = FALSE; m_underlined = FALSE;
m_fontId = 0;
m_font = (GdkFont *) NULL; m_font = (GdkFont *) NULL;
} }
@@ -69,7 +69,6 @@ wxFontRefData::wxFontRefData( const wxFontRefData& data ) : m_scaled_xfonts(wxKE
m_style = data.m_style; m_style = data.m_style;
m_weight = data.m_weight; m_weight = data.m_weight;
m_underlined = data.m_underlined; m_underlined = data.m_underlined;
m_fontId = data.m_fontId;
m_faceName = data.m_faceName; m_faceName = data.m_faceName;
m_font = (GdkFont *) NULL; m_font = (GdkFont *) NULL;
if (data.m_font) m_font = gdk_font_ref( data.m_font ); 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(); m_refData = new wxFontRefData();
if (family == wxDEFAULT) family = wxSWISS; if (family == wxDEFAULT)
M_FONTDATA->m_family = wxSWISS;
else
M_FONTDATA->m_family = family; M_FONTDATA->m_family = family;
if (!face.IsEmpty()) if (!face.IsEmpty()) M_FONTDATA->m_faceName = face;
{
M_FONTDATA->m_faceName = face;
M_FONTDATA->m_fontId = wxTheFontNameDirectory->FindOrCreateFontId( face, family );
M_FONTDATA->m_family = wxTheFontNameDirectory->GetFamily( family );
}
else
{
M_FONTDATA->m_fontId = family;
M_FONTDATA->m_family = wxTheFontNameDirectory->GetFamily( family );
}
if (style == wxDEFAULT) style = wxNORMAL; if (style == wxDEFAULT)
M_FONTDATA->m_style = wxNORMAL;
else
M_FONTDATA->m_style = style; M_FONTDATA->m_style = style;
if (weight == wxDEFAULT) weight = wxNORMAL;
if (weight == wxDEFAULT)
M_FONTDATA->m_weight = wxNORMAL;
else
M_FONTDATA->m_weight = weight; M_FONTDATA->m_weight = weight;
if (pointSize == wxDEFAULT) pointSize = 12;
if (pointSize == wxDEFAULT)
M_FONTDATA->m_pointSize = 12;
else
M_FONTDATA->m_pointSize = pointSize; M_FONTDATA->m_pointSize = pointSize;
M_FONTDATA->m_underlined = underlined; M_FONTDATA->m_underlined = underlined;
if (wxTheFontList) wxTheFontList->Append( this ); if (wxTheFontList) wxTheFontList->Append( this );
@@ -186,8 +186,7 @@ wxString wxFont::GetFaceName() const
{ {
wxCHECK_MSG( Ok(), "", "invalid font" ); wxCHECK_MSG( Ok(), "", "invalid font" );
wxString s = wxTheFontNameDirectory->GetFontName( M_FONTDATA->m_fontId ); return M_FONTDATA->m_faceName;
return s;
} }
int wxFont::GetFamily() const int wxFont::GetFamily() const
@@ -215,13 +214,6 @@ wxString wxFont::GetFamilyString() const
return "wxDEFAULT"; return "wxDEFAULT";
} }
int wxFont::GetFontId() const
{
wxCHECK_MSG( Ok(), 0, "invalid font" );
return M_FONTDATA->m_fontId; // stub
}
int wxFont::GetStyle() const int wxFont::GetStyle() const
{ {
wxCHECK_MSG( Ok(), 0, "invalid font" ); wxCHECK_MSG( Ok(), 0, "invalid font" );
@@ -333,10 +325,8 @@ void wxFont::SetUnderlined(bool underlined)
// get internal representation of font // get internal representation of font
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// local help function static GdkFont *wxLoadQueryNearestFont( int point_size, int family, int style, int weight,
static GdkFont *wxLoadQueryNearestFont(int point_size, int fontid, bool underlined, const wxString &facename );
int style, int weight,
bool underlined);
GdkFont *wxFont::GetInternalFont( float scale ) const GdkFont *wxFont::GetInternalFont( float scale ) const
{ {
@@ -346,9 +336,10 @@ GdkFont *wxFont::GetInternalFont(float scale) const
return (GdkFont*) NULL; return (GdkFont*) NULL;
} }
/* short cut if the special X font constructor has been used */
if (M_FONTDATA->m_byXFontName) return M_FONTDATA->m_font; 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; int point_scale = (M_FONTDATA->m_pointSize * 10 * int_scale) / 100;
GdkFont *font = (GdkFont *) NULL; GdkFont *font = (GdkFont *) NULL;
@@ -359,6 +350,7 @@ GdkFont *wxFont::GetInternalFont(float scale) const
} }
else else
{ {
/*
if ((int_scale == 100) && if ((int_scale == 100) &&
(M_FONTDATA->m_family == wxSWISS) && (M_FONTDATA->m_family == wxSWISS) &&
(M_FONTDATA->m_style == wxNORMAL) && (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-*-*-*-*-*-*" ); font = gdk_font_load( "-adobe-helvetica-medium-r-normal--*-120-*-*-*-*-*-*" );
} }
else else
*/
{ {
font = wxLoadQueryNearestFont( point_scale, M_FONTDATA->m_fontId, M_FONTDATA->m_style, font = wxLoadQueryNearestFont( point_scale, M_FONTDATA->m_family, M_FONTDATA->m_style,
M_FONTDATA->m_weight, M_FONTDATA->m_underlined ); M_FONTDATA->m_weight, M_FONTDATA->m_underlined, M_FONTDATA->m_faceName );
} }
M_FONTDATA->m_scaled_xfonts.Append( int_scale, (wxObject*)font ); M_FONTDATA->m_scaled_xfonts.Append( int_scale, (wxObject*)font );
} }
if (!font) if (!font)
{
wxLogError("could not load any font"); wxLogError("could not load any font");
}
return font; return font;
} }
@@ -385,51 +381,89 @@ GdkFont *wxFont::GetInternalFont(float scale) const
// local utilities to find a X font // local utilities to find a X font
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
static GdkFont *wxLoadQueryFont(int point_size, int fontid, int style, static GdkFont*wxLoadQueryFont( int pointSize, int family, int style, int weight,
int weight, bool WXUNUSED(underlined)) bool underlined, const wxString &facename )
{ {
char buffer[512]; char *xfamily = (char*) NULL;
char *name = wxTheFontNameDirectory->GetScreenName( fontid, weight, style ); char *xstyle = (char*) NULL;
char *xweight = (char*) NULL;
if (!name) switch (family)
name = "-*-*-*-*-*-*-*-%d-*-*-*-*-*-*"; {
sprintf(buffer, name, point_size); case wxDECORATIVE: xfamily = "lucida"; break;
case wxROMAN: xfamily = "times"; break;
return gdk_font_load( buffer ); case wxMODERN: xfamily = "courier"; break;
case wxSWISS: xfamily = "helvetica"; break;
case wxTELETYPE: xfamily = "lucidatypewriter"; break;
case wxSCRIPT: xfamily = "utopia"; break;
default: xfamily = "*";
} }
static GdkFont *wxLoadQueryNearestFont(int point_size, int fontid, if (!facename.IsEmpty())
int style, int weight,
bool underlined)
{ {
GdkFont *font; sprintf( wxBuffer, "-*-%s-*-*-normal-*-*-*-*-*-*-*-*-*", facename.c_str() );
GdkFont *test = gdk_font_load( wxBuffer );
if (test)
{
gdk_font_unref( test );
xfamily = WXSTRINGCAST facename;
}
}
font = wxLoadQueryFont( point_size, fontid, style, weight, underlined ); 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;
}
if (!font) { sprintf( wxBuffer, "-*-%s-%s-%s-normal-*-*-%d-*-*-*-*-*-*",
// search up and down by stepsize 10 xfamily, xweight, xstyle, pointSize);
return gdk_font_load( wxBuffer );
}
static GdkFont *wxLoadQueryNearestFont( int point_size, int family, int style, int weight,
bool underlined, const wxString &facename )
{
GdkFont *font = wxLoadQueryFont( point_size, family, style, weight, underlined, facename );
if (!font)
{
/* search up and down by stepsize 10 */
int max_size = point_size + 20 * (1 + (point_size/180)); int max_size = point_size + 20 * (1 + (point_size/180));
int min_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.) /* Search for smaller size (approx.) */
for (i=point_size-10; !font && i >= 10 && i >= min_size; i -= 10) for (int i=point_size-10; !font && i >= 10 && i >= min_size; i -= 10)
font = wxLoadQueryFont(i, fontid, style, weight, underlined); font = wxLoadQueryFont(i, family, style, weight, underlined, facename );
// Search for larger size (approx.)
for (i=point_size+10; !font && i <= max_size; i += 10) /* Search for larger size (approx.) */
font = wxLoadQueryFont(i, fontid, style, weight, underlined); for (int i=point_size+10; !font && i <= max_size; i += 10)
// Try default family font = wxLoadQueryFont( i, family, style, weight, underlined, facename );
if (!font && fontid != wxDEFAULT)
font = wxLoadQueryFont(point_size, wxDEFAULT, style, /* Try default family */
weight, underlined); if (!font && family != wxDEFAULT)
// Bogus font font = wxLoadQueryFont( point_size, wxDEFAULT, style, weight, underlined, facename );
/* Bogus font */
if (!font) if (!font)
font = wxLoadQueryFont(120, wxDEFAULT, wxNORMAL, wxNORMAL, font = wxLoadQueryFont(120, wxDEFAULT, wxNORMAL, wxNORMAL, underlined, facename );
underlined);
} }
return font; return font;
} }
/*
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// face names and index functions // face names and index functions
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@@ -510,9 +544,6 @@ static char *font_defaults[] = {
"ScreenItalic", "i", "ScreenItalic", "i",
"ScreenSlant", "o", "ScreenSlant", "o",
/*
"ScreenDefaultBase", "misc-fixed",
*/
"ScreenDefaultBase", "*-times", "ScreenDefaultBase", "*-times",
"ScreenRomanBase", "*-times", "ScreenRomanBase", "*-times",
@@ -600,12 +631,11 @@ static void SearchResource(const char *prefix, const char **names, int count, ch
strcpy(resource, prefix); strcpy(resource, prefix);
for (j = 0; j < count; j++) for (j = 0; j < count; j++)
{ {
/* upon failure to find a matching fontname // upon failure to find a matching fontname
in the default fonts above, we substitute more // in the default fonts above, we substitute more
and more values by _ so that at last ScreenMyFontBoldNormal // and more values by _ so that at last ScreenMyFontBoldNormal
would turn into Screen___ and this will then get // would turn into Screen___ and this will then get
converted to -${ScreenDefaultBase}${ScreenStdSuffix} // converted to -${ScreenDefaultBase}${ScreenStdSuffix}
*/
if (!(i & (1 << j))) if (!(i & (1 << j)))
strcat(resource, names[j]); strcat(resource, names[j]);
@@ -613,7 +643,7 @@ static void SearchResource(const char *prefix, const char **names, int count, ch
strcat(resource, "_"); strcat(resource, "_");
} }
/* we previously search the Xt-resources here */ // we previously search the Xt-resources here
if (!internal) if (!internal)
{ {
@@ -635,14 +665,14 @@ static void SearchResource(const char *prefix, const char **names, int count, ch
if ((strcmp(internal,"-${ScreenDefaultBase}${ScreenStdSuffix}") == 0) && if ((strcmp(internal,"-${ScreenDefaultBase}${ScreenStdSuffix}") == 0) &&
(strcmp(names[0], "Default") != 0)) (strcmp(names[0], "Default") != 0))
{ {
/* we did not find any font name in the standard list. // we did not find any font name in the standard list.
this can (hopefully does) mean that someone supplied // this can (hopefully does) mean that someone supplied
the facename in the wxFont constructor so we insert // the facename in the wxFont constructor so we insert
it here */ // it here
strcpy( resource,"-*-" ); /* any producer */ strcpy( resource,"-*-" ); // any producer
strcat( resource, names[0] ); /* facename */ strcat( resource, names[0] ); // facename
strcat( resource, "${ScreenStdSuffix}" ); /* add size params later on */ strcat( resource, "${ScreenStdSuffix}" ); // add size params later on
*v = copystring(resource); *v = copystring(resource);
} }
else else
@@ -696,7 +726,7 @@ void wxSuffixMap::Initialize(const char *resname, const char *devresname)
SearchResource(devresname, names, 3, &v); SearchResource(devresname, names, 3, &v);
/* Expand macros in the found string: */ // Expand macros in the found string:
found: found:
int len, closer = 0, startpos = 0; int len, closer = 0, startpos = 0;
@@ -775,7 +805,7 @@ found:
goto found; goto found;
} }
} }
/* We have a final value: */ // We have a final value:
map[k][j] = v; map[k][j] = v;
} }
} }
@@ -978,3 +1008,5 @@ int wxFontNameDirectory::GetFamily(int fontid)
// font does not exist // font does not exist
return wxDEFAULT; return wxDEFAULT;
} }
*/

View File

@@ -91,6 +91,10 @@ static gint gtk_frame_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventC
win->m_x = event->x; win->m_x = event->x;
win->m_y = event->y; 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; return FALSE;
} }

View File

@@ -384,8 +384,10 @@ bool wxApp::Initialize(void)
wxSystemSettings::Init(); wxSystemSettings::Init();
/*
wxTheFontNameDirectory = new wxFontNameDirectory; wxTheFontNameDirectory = new wxFontNameDirectory;
wxTheFontNameDirectory->Initialize(); wxTheFontNameDirectory->Initialize();
*/
wxTheColourDatabase = new wxColourDatabase( wxKEY_STRING ); wxTheColourDatabase = new wxColourDatabase( wxKEY_STRING );
wxTheColourDatabase->Initialize(); wxTheColourDatabase->Initialize();
@@ -426,8 +428,10 @@ void wxApp::CleanUp(void)
if (wxTheColourDatabase) delete wxTheColourDatabase; if (wxTheColourDatabase) delete wxTheColourDatabase;
wxTheColourDatabase = (wxColourDatabase*) NULL; wxTheColourDatabase = (wxColourDatabase*) NULL;
/*
if (wxTheFontNameDirectory) delete wxTheFontNameDirectory; if (wxTheFontNameDirectory) delete wxTheFontNameDirectory;
wxTheFontNameDirectory = (wxFontNameDirectory*) NULL; wxTheFontNameDirectory = (wxFontNameDirectory*) NULL;
*/
wxDeleteStockObjects(); wxDeleteStockObjects();

View File

@@ -69,7 +69,9 @@ wxColourDatabase *wxTheColourDatabase = (wxColourDatabase *) NULL;
wxBitmapList *wxTheBitmapList = (wxBitmapList *) NULL; wxBitmapList *wxTheBitmapList = (wxBitmapList *) NULL;
/* X only font names */ /* X only font names */
/*
wxFontNameDirectory *wxTheFontNameDirectory; wxFontNameDirectory *wxTheFontNameDirectory;
*/
/* Stock objects */ /* Stock objects */
wxFont *wxNORMAL_FONT; wxFont *wxNORMAL_FONT;

View File

@@ -59,6 +59,24 @@ static void gtk_dialog_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation
win->GtkOnSize( alloc->x, alloc->y, alloc->width, alloc->height ); 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 // wxDialog
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@@ -107,9 +125,6 @@ bool wxDialog::Create( wxWindow *parent,
gtk_signal_connect( GTK_OBJECT(m_widget), "delete_event", gtk_signal_connect( GTK_OBJECT(m_widget), "delete_event",
GTK_SIGNAL_FUNC(gtk_dialog_delete_callback), (gpointer)this ); 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(); m_wxwindow = gtk_myfixed_new();
gtk_widget_show( m_wxwindow ); gtk_widget_show( m_wxwindow );
GTK_WIDGET_UNSET_FLAGS( m_wxwindow, GTK_CAN_FOCUS ); GTK_WIDGET_UNSET_FLAGS( m_wxwindow, GTK_CAN_FOCUS );
@@ -123,8 +138,13 @@ bool wxDialog::Create( wxWindow *parent,
gtk_widget_set_usize( m_widget, m_width, m_height ); gtk_widget_set_usize( m_widget, m_width, m_height );
if (m_parent) m_parent->AddChild( this ); 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(); PostCreation();

View File

@@ -22,7 +22,9 @@
// local data // local data
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
/*
extern wxFontNameDirectory *wxTheFontNameDirectory; extern wxFontNameDirectory *wxTheFontNameDirectory;
*/
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// wxFont // wxFont
@@ -40,7 +42,6 @@ public:
int m_pointSize; int m_pointSize;
int m_family, m_style, m_weight; int m_family, m_style, m_weight;
bool m_underlined; bool m_underlined;
int m_fontId;
wxString m_faceName; wxString m_faceName;
bool m_byXFontName; bool m_byXFontName;
@@ -57,7 +58,6 @@ wxFontRefData::wxFontRefData() : m_scaled_xfonts(wxKEY_INTEGER)
m_style = wxNORMAL; m_style = wxNORMAL;
m_weight = wxNORMAL; m_weight = wxNORMAL;
m_underlined = FALSE; m_underlined = FALSE;
m_fontId = 0;
m_font = (GdkFont *) NULL; m_font = (GdkFont *) NULL;
} }
@@ -69,7 +69,6 @@ wxFontRefData::wxFontRefData( const wxFontRefData& data ) : m_scaled_xfonts(wxKE
m_style = data.m_style; m_style = data.m_style;
m_weight = data.m_weight; m_weight = data.m_weight;
m_underlined = data.m_underlined; m_underlined = data.m_underlined;
m_fontId = data.m_fontId;
m_faceName = data.m_faceName; m_faceName = data.m_faceName;
m_font = (GdkFont *) NULL; m_font = (GdkFont *) NULL;
if (data.m_font) m_font = gdk_font_ref( data.m_font ); 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(); m_refData = new wxFontRefData();
if (family == wxDEFAULT) family = wxSWISS; if (family == wxDEFAULT)
M_FONTDATA->m_family = wxSWISS;
else
M_FONTDATA->m_family = family; M_FONTDATA->m_family = family;
if (!face.IsEmpty()) if (!face.IsEmpty()) M_FONTDATA->m_faceName = face;
{
M_FONTDATA->m_faceName = face;
M_FONTDATA->m_fontId = wxTheFontNameDirectory->FindOrCreateFontId( face, family );
M_FONTDATA->m_family = wxTheFontNameDirectory->GetFamily( family );
}
else
{
M_FONTDATA->m_fontId = family;
M_FONTDATA->m_family = wxTheFontNameDirectory->GetFamily( family );
}
if (style == wxDEFAULT) style = wxNORMAL; if (style == wxDEFAULT)
M_FONTDATA->m_style = wxNORMAL;
else
M_FONTDATA->m_style = style; M_FONTDATA->m_style = style;
if (weight == wxDEFAULT) weight = wxNORMAL;
if (weight == wxDEFAULT)
M_FONTDATA->m_weight = wxNORMAL;
else
M_FONTDATA->m_weight = weight; M_FONTDATA->m_weight = weight;
if (pointSize == wxDEFAULT) pointSize = 12;
if (pointSize == wxDEFAULT)
M_FONTDATA->m_pointSize = 12;
else
M_FONTDATA->m_pointSize = pointSize; M_FONTDATA->m_pointSize = pointSize;
M_FONTDATA->m_underlined = underlined; M_FONTDATA->m_underlined = underlined;
if (wxTheFontList) wxTheFontList->Append( this ); if (wxTheFontList) wxTheFontList->Append( this );
@@ -186,8 +186,7 @@ wxString wxFont::GetFaceName() const
{ {
wxCHECK_MSG( Ok(), "", "invalid font" ); wxCHECK_MSG( Ok(), "", "invalid font" );
wxString s = wxTheFontNameDirectory->GetFontName( M_FONTDATA->m_fontId ); return M_FONTDATA->m_faceName;
return s;
} }
int wxFont::GetFamily() const int wxFont::GetFamily() const
@@ -215,13 +214,6 @@ wxString wxFont::GetFamilyString() const
return "wxDEFAULT"; return "wxDEFAULT";
} }
int wxFont::GetFontId() const
{
wxCHECK_MSG( Ok(), 0, "invalid font" );
return M_FONTDATA->m_fontId; // stub
}
int wxFont::GetStyle() const int wxFont::GetStyle() const
{ {
wxCHECK_MSG( Ok(), 0, "invalid font" ); wxCHECK_MSG( Ok(), 0, "invalid font" );
@@ -333,10 +325,8 @@ void wxFont::SetUnderlined(bool underlined)
// get internal representation of font // get internal representation of font
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// local help function static GdkFont *wxLoadQueryNearestFont( int point_size, int family, int style, int weight,
static GdkFont *wxLoadQueryNearestFont(int point_size, int fontid, bool underlined, const wxString &facename );
int style, int weight,
bool underlined);
GdkFont *wxFont::GetInternalFont( float scale ) const GdkFont *wxFont::GetInternalFont( float scale ) const
{ {
@@ -346,9 +336,10 @@ GdkFont *wxFont::GetInternalFont(float scale) const
return (GdkFont*) NULL; return (GdkFont*) NULL;
} }
/* short cut if the special X font constructor has been used */
if (M_FONTDATA->m_byXFontName) return M_FONTDATA->m_font; 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; int point_scale = (M_FONTDATA->m_pointSize * 10 * int_scale) / 100;
GdkFont *font = (GdkFont *) NULL; GdkFont *font = (GdkFont *) NULL;
@@ -359,6 +350,7 @@ GdkFont *wxFont::GetInternalFont(float scale) const
} }
else else
{ {
/*
if ((int_scale == 100) && if ((int_scale == 100) &&
(M_FONTDATA->m_family == wxSWISS) && (M_FONTDATA->m_family == wxSWISS) &&
(M_FONTDATA->m_style == wxNORMAL) && (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-*-*-*-*-*-*" ); font = gdk_font_load( "-adobe-helvetica-medium-r-normal--*-120-*-*-*-*-*-*" );
} }
else else
*/
{ {
font = wxLoadQueryNearestFont( point_scale, M_FONTDATA->m_fontId, M_FONTDATA->m_style, font = wxLoadQueryNearestFont( point_scale, M_FONTDATA->m_family, M_FONTDATA->m_style,
M_FONTDATA->m_weight, M_FONTDATA->m_underlined ); M_FONTDATA->m_weight, M_FONTDATA->m_underlined, M_FONTDATA->m_faceName );
} }
M_FONTDATA->m_scaled_xfonts.Append( int_scale, (wxObject*)font ); M_FONTDATA->m_scaled_xfonts.Append( int_scale, (wxObject*)font );
} }
if (!font) if (!font)
{
wxLogError("could not load any font"); wxLogError("could not load any font");
}
return font; return font;
} }
@@ -385,51 +381,89 @@ GdkFont *wxFont::GetInternalFont(float scale) const
// local utilities to find a X font // local utilities to find a X font
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
static GdkFont *wxLoadQueryFont(int point_size, int fontid, int style, static GdkFont*wxLoadQueryFont( int pointSize, int family, int style, int weight,
int weight, bool WXUNUSED(underlined)) bool underlined, const wxString &facename )
{ {
char buffer[512]; char *xfamily = (char*) NULL;
char *name = wxTheFontNameDirectory->GetScreenName( fontid, weight, style ); char *xstyle = (char*) NULL;
char *xweight = (char*) NULL;
if (!name) switch (family)
name = "-*-*-*-*-*-*-*-%d-*-*-*-*-*-*"; {
sprintf(buffer, name, point_size); case wxDECORATIVE: xfamily = "lucida"; break;
case wxROMAN: xfamily = "times"; break;
return gdk_font_load( buffer ); case wxMODERN: xfamily = "courier"; break;
case wxSWISS: xfamily = "helvetica"; break;
case wxTELETYPE: xfamily = "lucidatypewriter"; break;
case wxSCRIPT: xfamily = "utopia"; break;
default: xfamily = "*";
} }
static GdkFont *wxLoadQueryNearestFont(int point_size, int fontid, if (!facename.IsEmpty())
int style, int weight,
bool underlined)
{ {
GdkFont *font; sprintf( wxBuffer, "-*-%s-*-*-normal-*-*-*-*-*-*-*-*-*", facename.c_str() );
GdkFont *test = gdk_font_load( wxBuffer );
if (test)
{
gdk_font_unref( test );
xfamily = WXSTRINGCAST facename;
}
}
font = wxLoadQueryFont( point_size, fontid, style, weight, underlined ); 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;
}
if (!font) { sprintf( wxBuffer, "-*-%s-%s-%s-normal-*-*-%d-*-*-*-*-*-*",
// search up and down by stepsize 10 xfamily, xweight, xstyle, pointSize);
return gdk_font_load( wxBuffer );
}
static GdkFont *wxLoadQueryNearestFont( int point_size, int family, int style, int weight,
bool underlined, const wxString &facename )
{
GdkFont *font = wxLoadQueryFont( point_size, family, style, weight, underlined, facename );
if (!font)
{
/* search up and down by stepsize 10 */
int max_size = point_size + 20 * (1 + (point_size/180)); int max_size = point_size + 20 * (1 + (point_size/180));
int min_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.) /* Search for smaller size (approx.) */
for (i=point_size-10; !font && i >= 10 && i >= min_size; i -= 10) for (int i=point_size-10; !font && i >= 10 && i >= min_size; i -= 10)
font = wxLoadQueryFont(i, fontid, style, weight, underlined); font = wxLoadQueryFont(i, family, style, weight, underlined, facename );
// Search for larger size (approx.)
for (i=point_size+10; !font && i <= max_size; i += 10) /* Search for larger size (approx.) */
font = wxLoadQueryFont(i, fontid, style, weight, underlined); for (int i=point_size+10; !font && i <= max_size; i += 10)
// Try default family font = wxLoadQueryFont( i, family, style, weight, underlined, facename );
if (!font && fontid != wxDEFAULT)
font = wxLoadQueryFont(point_size, wxDEFAULT, style, /* Try default family */
weight, underlined); if (!font && family != wxDEFAULT)
// Bogus font font = wxLoadQueryFont( point_size, wxDEFAULT, style, weight, underlined, facename );
/* Bogus font */
if (!font) if (!font)
font = wxLoadQueryFont(120, wxDEFAULT, wxNORMAL, wxNORMAL, font = wxLoadQueryFont(120, wxDEFAULT, wxNORMAL, wxNORMAL, underlined, facename );
underlined);
} }
return font; return font;
} }
/*
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// face names and index functions // face names and index functions
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@@ -510,9 +544,6 @@ static char *font_defaults[] = {
"ScreenItalic", "i", "ScreenItalic", "i",
"ScreenSlant", "o", "ScreenSlant", "o",
/*
"ScreenDefaultBase", "misc-fixed",
*/
"ScreenDefaultBase", "*-times", "ScreenDefaultBase", "*-times",
"ScreenRomanBase", "*-times", "ScreenRomanBase", "*-times",
@@ -600,12 +631,11 @@ static void SearchResource(const char *prefix, const char **names, int count, ch
strcpy(resource, prefix); strcpy(resource, prefix);
for (j = 0; j < count; j++) for (j = 0; j < count; j++)
{ {
/* upon failure to find a matching fontname // upon failure to find a matching fontname
in the default fonts above, we substitute more // in the default fonts above, we substitute more
and more values by _ so that at last ScreenMyFontBoldNormal // and more values by _ so that at last ScreenMyFontBoldNormal
would turn into Screen___ and this will then get // would turn into Screen___ and this will then get
converted to -${ScreenDefaultBase}${ScreenStdSuffix} // converted to -${ScreenDefaultBase}${ScreenStdSuffix}
*/
if (!(i & (1 << j))) if (!(i & (1 << j)))
strcat(resource, names[j]); strcat(resource, names[j]);
@@ -613,7 +643,7 @@ static void SearchResource(const char *prefix, const char **names, int count, ch
strcat(resource, "_"); strcat(resource, "_");
} }
/* we previously search the Xt-resources here */ // we previously search the Xt-resources here
if (!internal) if (!internal)
{ {
@@ -635,14 +665,14 @@ static void SearchResource(const char *prefix, const char **names, int count, ch
if ((strcmp(internal,"-${ScreenDefaultBase}${ScreenStdSuffix}") == 0) && if ((strcmp(internal,"-${ScreenDefaultBase}${ScreenStdSuffix}") == 0) &&
(strcmp(names[0], "Default") != 0)) (strcmp(names[0], "Default") != 0))
{ {
/* we did not find any font name in the standard list. // we did not find any font name in the standard list.
this can (hopefully does) mean that someone supplied // this can (hopefully does) mean that someone supplied
the facename in the wxFont constructor so we insert // the facename in the wxFont constructor so we insert
it here */ // it here
strcpy( resource,"-*-" ); /* any producer */ strcpy( resource,"-*-" ); // any producer
strcat( resource, names[0] ); /* facename */ strcat( resource, names[0] ); // facename
strcat( resource, "${ScreenStdSuffix}" ); /* add size params later on */ strcat( resource, "${ScreenStdSuffix}" ); // add size params later on
*v = copystring(resource); *v = copystring(resource);
} }
else else
@@ -696,7 +726,7 @@ void wxSuffixMap::Initialize(const char *resname, const char *devresname)
SearchResource(devresname, names, 3, &v); SearchResource(devresname, names, 3, &v);
/* Expand macros in the found string: */ // Expand macros in the found string:
found: found:
int len, closer = 0, startpos = 0; int len, closer = 0, startpos = 0;
@@ -775,7 +805,7 @@ found:
goto found; goto found;
} }
} }
/* We have a final value: */ // We have a final value:
map[k][j] = v; map[k][j] = v;
} }
} }
@@ -978,3 +1008,5 @@ int wxFontNameDirectory::GetFamily(int fontid)
// font does not exist // font does not exist
return wxDEFAULT; return wxDEFAULT;
} }
*/

View File

@@ -91,6 +91,10 @@ static gint gtk_frame_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventC
win->m_x = event->x; win->m_x = event->x;
win->m_y = event->y; 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; return FALSE;
} }

View File

@@ -87,7 +87,6 @@ LIB_CPP_SRC=\
motif/dcmemory.cpp \ motif/dcmemory.cpp \
motif/dcscreen.cpp \ motif/dcscreen.cpp \
motif/dialog.cpp \ motif/dialog.cpp \
motif/dirdlg.cpp \
motif/dnd.cpp \ motif/dnd.cpp \
motif/filedlg.cpp \ motif/filedlg.cpp \
motif/font.cpp \ motif/font.cpp \
@@ -132,6 +131,7 @@ LIB_CPP_SRC=\
generic/choicdgg.cpp \ generic/choicdgg.cpp \
generic/colrdlgg.cpp \ generic/colrdlgg.cpp \
generic/dcpsg.cpp \ generic/dcpsg.cpp \
generic/dirdlgg.cpp \
generic/fontdlgg.cpp \ generic/fontdlgg.cpp \
generic/gridg.cpp \ generic/gridg.cpp \
generic/helpext.cpp \ generic/helpext.cpp \