From 4765d335f603c29f1fd300288ff1d40a118fcf0e Mon Sep 17 00:00:00 2001 From: Stefan Csomor Date: Thu, 13 Jan 2000 07:57:22 +0000 Subject: [PATCH] adaptions for CW Pro 5.3 on mac git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5365 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/mac/button.h | 2 +- include/wx/mac/control.h | 10 ++- include/wx/mac/dc.h | 11 ++++ include/wx/mac/listbox.h | 2 +- include/wx/mac/notebook.h | 43 ------------- include/wx/mac/setup.h | 127 +++++++++++++++++++++++++++++++++++--- include/wx/mac/spinbutt.h | 2 +- include/wx/mac/statbmp.h | 1 + include/wx/mac/toolbar.h | 51 ++++++++------- include/wx/mac/window.h | 7 +-- include/wx/notebook.h | 2 +- include/wx/resource.h | 1 + src/make_cw.mcp | Bin 333236 -> 324916 bytes 13 files changed, 175 insertions(+), 84 deletions(-) diff --git a/include/wx/mac/button.h b/include/wx/mac/button.h index d581f9a97b..b016c98338 100644 --- a/include/wx/mac/button.h +++ b/include/wx/mac/button.h @@ -48,7 +48,7 @@ class WXDLLEXPORT wxButton: public wxControl virtual void SetDefault(); virtual void Command(wxCommandEvent& event); protected: - virtual wxSize DoGetBestSize(); + virtual wxSize DoGetBestSize() const ; }; #endif diff --git a/include/wx/mac/control.h b/include/wx/mac/control.h index 3770d647f2..713f91fd09 100644 --- a/include/wx/mac/control.h +++ b/include/wx/mac/control.h @@ -16,6 +16,8 @@ #pragma interface "control.h" #endif +WXDLLEXPORT_DATA(extern const wxChar*) wxControlNameStr; + // General item class class WXDLLEXPORT wxControl : public wxControlBase { @@ -25,6 +27,12 @@ public: wxControl(); virtual ~wxControl(); + bool Create(wxWindow *parent, wxWindowID id, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, long style = 0, + const wxValidator& validator = wxDefaultValidator, + const wxString& name = wxControlNameStr); + // Simulates an event virtual void Command(wxCommandEvent& event) { ProcessCommand(event); } @@ -88,7 +96,7 @@ protected: int m_macVerticalBorder ; wxList m_subControls; - virtual wxSize DoGetBestSize(); + virtual wxSize DoGetBestSize() const ; private: DECLARE_EVENT_TABLE() diff --git a/include/wx/mac/dc.h b/include/wx/mac/dc.h index 3075bbf734..82c959b4c7 100644 --- a/include/wx/mac/dc.h +++ b/include/wx/mac/dc.h @@ -168,6 +168,17 @@ class WXDLLEXPORT wxDC: public wxObject virtual void GetTextExtent( const wxString &string, long *width, long *height, long *descent = NULL, long *externalLeading = NULL, wxFont *theFont = NULL, bool use16 = FALSE ) const ; + virtual void GetTextExtent( const wxString &string, int *width, int *height, + int *descent = NULL, int *externalLeading = NULL, + wxFont *theFont = NULL, bool use16 = FALSE ) const + { + long lwidth,lheight,ldescent,lexternal ; + GetTextExtent( string, &lwidth,&lheight,&ldescent,&lexternal,theFont,use16 ) ; + *width = lwidth ; + *height = lheight ; + if (descent) *descent = ldescent ; + if (externalLeading) *externalLeading = lexternal ; + } virtual wxCoord GetCharWidth(void) const; virtual wxCoord GetCharHeight(void) const; diff --git a/include/wx/mac/listbox.h b/include/wx/mac/listbox.h index 96be3d0f0e..a312aec593 100644 --- a/include/wx/mac/listbox.h +++ b/include/wx/mac/listbox.h @@ -138,7 +138,7 @@ protected: int m_noItems; int m_selected; - virtual wxSize DoGetBestSize(); + virtual wxSize DoGetBestSize() const ; #if wxUSE_OWNER_DRAWN // control items diff --git a/include/wx/mac/notebook.h b/include/wx/mac/notebook.h index 0e43da55d8..aac5e6042e 100644 --- a/include/wx/mac/notebook.h +++ b/include/wx/mac/notebook.h @@ -34,27 +34,6 @@ class WXDLLEXPORT wxWindow; typedef wxWindow wxNotebookPage; // so far, any window can be a page WX_DEFINE_ARRAY(wxNotebookPage *, wxArrayPages); -// ---------------------------------------------------------------------------- -// notebook events -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxNotebookEvent : public wxCommandEvent -{ -public: - wxNotebookEvent(wxEventType commandType = wxEVT_NULL, int id = 0, - int nSel = -1, int nOldSel = -1) - : wxCommandEvent(commandType, id) { m_nSel = nSel; m_nOldSel = nOldSel; } - - // accessors - int GetSelection() const { return m_nSel; } - int GetOldSelection() const { return m_nOldSel; } - -private: - int m_nSel, // currently selected page - m_nOldSel; // previously selected page - - DECLARE_DYNAMIC_CLASS(wxNotebookEvent) -}; - // ---------------------------------------------------------------------------- // wxNotebook // ---------------------------------------------------------------------------- @@ -181,27 +160,5 @@ protected: DECLARE_EVENT_TABLE() }; -// ---------------------------------------------------------------------------- -// event macros -// ---------------------------------------------------------------------------- -typedef void (wxEvtHandler::*wxNotebookEventFunction)(wxNotebookEvent&); - -#define EVT_NOTEBOOK_PAGE_CHANGED(id, fn) \ - { \ - wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, \ - id, \ - -1, \ - (wxObjectEventFunction)(wxEventFunction)(wxNotebookEventFunction) &fn, \ - NULL \ - }, - -#define EVT_NOTEBOOK_PAGE_CHANGING(id, fn) \ - { \ - wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, \ \ - id, \ - -1, \ - (wxObjectEventFunction)(wxEventFunction)(wxNotebookEventFunction) &fn, \ - NULL \ - }, #endif // _WX_NOTEBOOK_H_ diff --git a/include/wx/mac/setup.h b/include/wx/mac/setup.h index 0a1df37e9a..bfb74aab4d 100644 --- a/include/wx/mac/setup.h +++ b/include/wx/mac/setup.h @@ -12,21 +12,128 @@ #ifndef _WX_SETUP_H_ #define _WX_SETUP_H_ -/* - * General features - * - */ +// ---------------------------------------------------------------------------- +// global settings +// ---------------------------------------------------------------------------- + +// define this to 0 when building wxBase library +#define wxUSE_GUI 1 +// ---------------------------------------------------------------------------- +// compatibility settings +// ---------------------------------------------------------------------------- + +// This setting determines the compatibility with 1.68 API: +// Level 0: no backward compatibility, all new features +// Level 1: some extra methods are defined for compatibility. +// +// Default is 0. +// +// Recommended setting: 0 (in fact the compatibility code is now very minimal +// so there is little advantage to setting it to 1. +#define WXWIN_COMPATIBILITY 0 + #define WORDS_BIGENDIAN 1 +// ---------------------------------------------------------------------------- +// non GUI features selection +// ---------------------------------------------------------------------------- + +// Set wxUSE_LONGLONG to 1 to compile the wxLongLong class. This is a 64 bit +// integer which is implemented in terms of native 64 bit integers if any or +// uses emulation otherwise. +// +// This class is required by wxDateTime and so you should enable it if you want +// to use wxDateTime. For most modern platforms, it will use the native 64 bit +// integers in which case (almost) all of its functions are inline and it +// almost does not take any space, so there should be no reason to switch it +// off. +// +// Recommended setting: 1 +#define wxUSE_LONGLONG 1 + + +// Set wxUSE_TIMEDATE to 1 to compile the wxDateTime and related classes which +// allow to manipulate dates, times and time intervals. wxDateTime replaces the +// old wxTime and wxDate classes which are still provided for backwards +// compatibility (and implemented in terms of wxDateTime). +// +// Note that this class is relatively new and is still officially in alpha +// stage because some features are not yet (fully) implemented. It is already +// quite useful though and should only be disabled if you are aiming at +// absolutely minimal version of the library. +// +// Requires: wxUSE_LONGLONG +// +// Recommended setting: 1 +#define wxUSE_TIMEDATE 1 + +// Setting wxUSE_CONFIG to 1 enables the use of wxConfig and related classes +// which allow the application to store its settings in the persistent +// storage. Setting this to 1 will also enable on-demand creation of the +// global config object in wxApp. +// +// See also wxUSE_CONFIG_NATIVE below. +// +// Recommended setting: 1 #define wxUSE_CONFIG 1 - // Use wxConfig, with CreateConfig in wxApp -#define WXWIN_COMPATIBILITY 0 - // Compatibility with 1.66 API. - // Level 0: no backward compatibility, all new features - // Level 1: wxDC, OnSize (etc.) compatibility, but - // some new features such as event tables +// ---------------------------------------------------------------------------- +// Optional controls +// ---------------------------------------------------------------------------- + +// wxToolBar related settings: if wxUSE_TOOLBAR is 0, don't compile any toolbar +// classes at all. Otherwise, use the native toolbar class unless +// wxUSE_TOOLBAR_NATIVE is 0. Additionally, the generic toolbar class which +// supports some features which might not be supported by the native wxToolBar +// class may be compiled in if wxUSE_TOOLBAR_SIMPLE is 1. +// +// Default is 1 for all settings. +// +// Recommended setting: 1 for wxUSE_TOOLBAR and wxUSE_TOOLBAR_NATIVE and 0 for +// wxUSE_TOOLBAR_SIMPLE (the default is 1 mainly for backwards compatibility). +#define wxUSE_TOOLBAR 1 +#define wxUSE_TOOLBAR_NATIVE 1 +#define wxUSE_TOOLBAR_SIMPLE 0 + +// wxNotebook is a control with several "tabs" located on one of its sides. It +// may be used ot logically organise the data presented to the user instead of +// putting everything in one huge dialog. It replaces wxTabControl and related +// classes of wxWin 1.6x. +// +// Default is 1. +// +// Recommended setting: 1 +#define wxUSE_NOTEBOOK 1 + + +// The corresponding controls will be compiled in if wxUSE_ is set to +// 1 and not compiled into the library otherwise. +// +// Default is 1 for everything. +// +// Recommended setting: 1 (library might fail to compile for some combinations +// of disabled controls) +#define wxUSE_COMBOBOX 1 +#define wxUSE_CHOICE 1 +#define wxUSE_RADIOBTN 1 +#define wxUSE_RADIOBOX 1 +#define wxUSE_SCROLLBAR 1 +#define wxUSE_CHECKBOX 1 +#define wxUSE_LISTBOX 1 +#define wxUSE_SPINBTN 1 +#define wxUSE_SPINCTRL 1 +#define wxUSE_STATLINE 1 +#define wxUSE_CHECKLISTBOX 1 +#define wxUSE_CHOICE 1 +#define wxUSE_CARET 1 +#define wxUSE_SLIDER 1 + +// ---------------------------------------------------------------------------- +// Postscript support settings +// ---------------------------------------------------------------------------- + + #define wxUSE_POSTSCRIPT 0 // 0 for no PostScript device context #define wxUSE_AFM_FOR_POSTSCRIPT 0 diff --git a/include/wx/mac/spinbutt.h b/include/wx/mac/spinbutt.h index 3903eecb29..9909adfea9 100644 --- a/include/wx/mac/spinbutt.h +++ b/include/wx/mac/spinbutt.h @@ -65,7 +65,7 @@ public: virtual void MacHandleControlClick( ControlHandle control , SInt16 controlpart ) ; protected: - virtual wxSize DoGetBestSize(); + virtual wxSize DoGetBestSize() const; int m_value ; private: diff --git a/include/wx/mac/statbmp.h b/include/wx/mac/statbmp.h index f2162aeb10..48cad8933a 100644 --- a/include/wx/mac/statbmp.h +++ b/include/wx/mac/statbmp.h @@ -54,6 +54,7 @@ class WXDLLEXPORT wxStaticBitmap: public wxControl // overriden base class virtuals virtual bool AcceptsFocus() const { return FALSE; } + wxSize DoGetBestSize() const ; protected: wxBitmap m_messageBitmap; diff --git a/include/wx/mac/toolbar.h b/include/wx/mac/toolbar.h index 6fe126b788..63c3d7f937 100644 --- a/include/wx/mac/toolbar.h +++ b/include/wx/mac/toolbar.h @@ -31,12 +31,14 @@ class WXDLLEXPORT wxToolBar: public wxToolBarBase * Public interface */ - wxToolBar(); + wxToolBar() { Init(); } + inline wxToolBar(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxNO_BORDER|wxTB_HORIZONTAL, const wxString& name = wxToolBarNameStr) { + Init(); Create(parent, id, pos, size, style, name); } ~wxToolBar(); @@ -45,36 +47,43 @@ class WXDLLEXPORT wxToolBar: public wxToolBarBase long style = wxNO_BORDER|wxTB_HORIZONTAL, const wxString& name = wxToolBarNameStr); - // If pushedBitmap is NULL, a reversed version of bitmap is - // created and used as the pushed/toggled image. - // If toggle is TRUE, the button toggles between the two states. - wxToolBarTool *AddTool(int toolIndex, const wxBitmap& bitmap, const wxBitmap& pushedBitmap = wxNullBitmap, - bool toggle = FALSE, long xPos = -1, long yPos = -1, wxObject *clientData = NULL, - const wxString& helpString1 = "", const wxString& helpString2 = ""); + // override/implement base class virtuals + virtual wxToolBarToolBase *FindToolForPosition(wxCoord x, wxCoord y) const; - // Set default bitmap size - void SetToolBitmapSize(const wxSize& size); - void EnableTool(int toolIndex, bool enable); // additional drawing on enabling - void ToggleTool(int toolIndex, bool toggle); // toggle is TRUE if toggled on - void ClearTools(); + virtual bool Realize(); - // The button size is bigger than the bitmap size - wxSize GetToolSize() const; + virtual void SetToolBitmapSize(const wxSize& size); + virtual wxSize GetToolSize() const; - wxSize GetMaxSize() const; + virtual void SetRows(int nRows); // Add all the buttons - virtual bool CreateTools(); - virtual void LayoutButtons() {} - // The post-tool-addition call. TODO: do here whatever's - // necessary for completing the toolbar construction. - bool Realize() { return CreateTools(); }; virtual void MacHandleControlClick( ControlHandle control , SInt16 controlpart ) ; protected: + // common part of all ctors + void Init(); + + // implement base class pure virtuals + virtual bool DoInsertTool(size_t pos, wxToolBarToolBase *tool); + virtual bool DoDeleteTool(size_t pos, wxToolBarToolBase *tool); + + virtual void DoEnableTool(wxToolBarToolBase *tool, bool enable); + virtual void DoToggleTool(wxToolBarToolBase *tool, bool toggle); + virtual void DoSetToggle(wxToolBarToolBase *tool, bool toggle); + + virtual wxToolBarToolBase *CreateTool(int id, + const wxBitmap& bitmap1, + const wxBitmap& bitmap2, + bool toggle, + wxObject *clientData, + const wxString& shortHelpString, + const wxString& longHelpString); + virtual wxToolBarToolBase *CreateTool(wxControl *control); + wxArrayPtrVoid m_macToolHandles ; -DECLARE_EVENT_TABLE() + DECLARE_EVENT_TABLE() }; #endif // wxUSE_TOOLBAR diff --git a/include/wx/mac/window.h b/include/wx/mac/window.h index 3eac7270ce..c7c6bd43b0 100644 --- a/include/wx/mac/window.h +++ b/include/wx/mac/window.h @@ -86,7 +86,6 @@ public: virtual void SetFocus(); - virtual bool Reparent( wxWindow *newParent ); virtual void WarpPointer(int x, int y); virtual void CaptureMouse(); @@ -181,6 +180,8 @@ public: void OnEraseBackground(wxEraseEvent& event); void OnIdle(wxIdleEvent& event); void MacOnScroll(wxScrollEvent&event ) ; + + bool AcceptsFocus() const ; public: // For implementation purposes - sometimes decorations make the client area @@ -297,10 +298,6 @@ protected: int sizeFlags = wxSIZE_AUTO); virtual void DoSetClientSize(int width, int height); - // get the size which best suits the window: e.g., for a static text it - // will be the width and height of the text - virtual wxSize DoGetBestSize(); - // move the window to the specified location and resize it: this is called // from both DoSetSize() and DoSetClientSize() and would usually just call // ::MoveWindow() except for composite controls which will want to arrange diff --git a/include/wx/notebook.h b/include/wx/notebook.h index 4dea9653ef..63bbee89ea 100644 --- a/include/wx/notebook.h +++ b/include/wx/notebook.h @@ -102,7 +102,7 @@ typedef void (wxEvtHandler::*wxNotebookEventFunction)(wxNotebookEvent&); #elif defined(__WXQT__) #include "wx/qt/notebook.h" #elif defined(__WXMAC__) - #include "wx/generic/notebook.h" + #include "wx/mac/notebook.h" #elif defined(__WXPM__) #include "wx/os2/notebook.h" #elif defined(__WXSTUBS__) diff --git a/include/wx/resource.h b/include/wx/resource.h index bbd5aa1f75..937bc47b7f 100644 --- a/include/wx/resource.h +++ b/include/wx/resource.h @@ -147,6 +147,7 @@ class WXDLLEXPORT wxResourceTable: public wxHashTable virtual bool DeleteResource(const wxString& name); virtual bool ParseResourceFile(const wxString& filename); + virtual bool ParseResourceFile( wxInputStream *is ) ; virtual bool ParseResourceData(const wxString& data); virtual bool SaveResource(const wxString& filename); diff --git a/src/make_cw.mcp b/src/make_cw.mcp index 4dedadf9b20a2454ed212c06f2519e98056a4132..79abe23b376ce92c65d010e982ec014395755f93 100644 GIT binary patch delta 14692 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 delta 14348 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 -- 2.45.2