From 6835592c5ce0c3c4bc3a0e1275b1a1592c023280 Mon Sep 17 00:00:00 2001 From: David Webster Date: Fri, 13 Jul 2001 17:41:54 +0000 Subject: [PATCH] OS/2 Updates for this week. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11013 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/os2/dc.h | 53 +++++++++++++++++++++++++-- include/wx/os2/dcprint.h | 4 +-- include/wx/os2/frame.h | 5 ++- include/wx/os2/settings.h | 9 ----- include/wx/os2/setup.h | 1 - include/wx/os2/setup0.h | 76 ++++++++++++++++++++++++++------------- 6 files changed, 108 insertions(+), 40 deletions(-) diff --git a/include/wx/os2/dc.h b/include/wx/os2/dc.h index 26c20594f7..89377fd23c 100644 --- a/include/wx/os2/dc.h +++ b/include/wx/os2/dc.h @@ -67,6 +67,34 @@ #define wx_round(a) (int)((a)+.5) +#if wxUSE_DC_CACHEING +/* + * Cached blitting, maintaining a cache + * of bitmaps required for transparent blitting + * instead of constant creation/deletion + */ + +class wxDCCacheEntry : public wxObject +{ +public: + wxDCCacheEntry( WXHBITMAP hBitmap + ,int nWidth + ,int nHeight + ,int nDepth + ); + wxDCCacheEntry( HPS hPS + ,int nDepth + ); + ~wxDCCacheEntry(); + + WXHBITMAP m_hBitmap; + HPS m_hPS; + int m_nWidth; + int m_nHeight; + int m_nDepth; +}; // end of CLASS wxDCCacheEntry +#endif + class WXDLLEXPORT wxDC : public wxDCBase { DECLARE_DYNAMIC_CLASS(wxDC) @@ -159,6 +187,20 @@ public: void UpdateClipBox(); +#if wxUSE_DC_CACHEING + static wxDCCacheEntry* FindBitmapInCache( HPS hPS + ,int nWidth + ,int nHeight + ); + static wxDCCacheEntry* FindDCInCache( wxDCCacheEntry* pNotThis + ,HPS hPS + ); + + static void AddToBitmapCache(wxDCCacheEntry* pEntry); + static void AddToDCCache(wxDCCacheEntry* pEntry); + static void ClearCache(void); +#endif + protected: virtual void DoFloodFill( wxCoord vX ,wxCoord vY @@ -250,8 +292,8 @@ protected: ,wxCoord vYsrc ,int nRop = wxCOPY ,bool bUseMask = FALSE - ,wxCoord xsrcMask = -1 - ,wxCoord ysrcMask = -1 + ,wxCoord vXsrcMask = -1 + ,wxCoord vYsrcMask = -1 ); virtual void DoSetClippingRegionAsRegion(const wxRegion& rRegion); @@ -337,6 +379,11 @@ public: WXHBRUSH m_hOldBrush; WXHFONT m_hOldFont; WXHPALETTE m_hOldPalette; -}; + +#if wxUSE_DC_CACHEING + static wxList m_svBitmapCache; + static wxList m_svDCCache; +#endif +}; // end of CLASS wxDC #endif // _WX_DC_H_ diff --git a/include/wx/os2/dcprint.h b/include/wx/os2/dcprint.h index fef20ef347..c91a88849e 100644 --- a/include/wx/os2/dcprint.h +++ b/include/wx/os2/dcprint.h @@ -52,8 +52,8 @@ protected: ,wxCoord vYsrc ,int nRop = wxCOPY ,bool bUseMask = FALSE - ,wxCoord xsrcMask = -1 - ,wxCoord ysrcMask = -1 + ,wxCoord vXsrcMask = -1 + ,wxCoord vYsrcMask = -1 ); // init the dc diff --git a/include/wx/os2/frame.h b/include/wx/os2/frame.h index 38d5f57600..cd9ebaf89a 100644 --- a/include/wx/os2/frame.h +++ b/include/wx/os2/frame.h @@ -178,10 +178,13 @@ protected: // helper void DetachMenuBar(void); +#if wxUSE_MENUS_NATIVE + // perform MSW-specific action when menubar is changed + virtual void AttachMenuBar(wxMenuBar* pMenubar); // a plug in for MDI frame classes which need to do something special when // the menubar is set virtual void InternalSetMenuBar(void); - +#endif // propagate our state change to all child frames void IconizeChildFrames(bool bIconize); diff --git a/include/wx/os2/settings.h b/include/wx/os2/settings.h index 2164abb8de..03b343faad 100644 --- a/include/wx/os2/settings.h +++ b/include/wx/os2/settings.h @@ -24,15 +24,6 @@ public: static wxColour GetSystemColour(int index); static wxFont GetSystemFont(int index); static int GetSystemMetric(int index); - static void SetOption( const wxString& rsName - ,const wxString& rsValue - ); - static void SetOption( const wxString& rsName - ,int nValue - ); - static wxString GetOption(const wxString& rsName) ; - static int GetOptionInt(const wxString& rsName) ; - static bool HasOption(const wxString& rsName) ; }; // end of CLASS wxSystemSettings #endif diff --git a/include/wx/os2/setup.h b/include/wx/os2/setup.h index 1fdeed452f..3ef0298525 100644 --- a/include/wx/os2/setup.h +++ b/include/wx/os2/setup.h @@ -121,7 +121,6 @@ #define wxUSE_STOPWATCH 1 #define wxUSE_TAB_DIALOG 1 #define wxUSE_WXHTML_HELP 1 - #define wxUSE_BUTTONBAR 1 // Define 1 to use buttonbar classes (enhanced toolbar // for MS Windows) diff --git a/include/wx/os2/setup0.h b/include/wx/os2/setup0.h index 283a68a075..3ef0298525 100644 --- a/include/wx/os2/setup0.h +++ b/include/wx/os2/setup0.h @@ -34,8 +34,11 @@ #define wxUSE_NET_API 1 // Utilize OS/2's UPM netapi's +#define wxUSE_DATETIME 1 // Utilize the date-time classes + #define wxUSE_CONFIG 1 // Use wxConfig, with CreateConfig in wxApp + #define wxUSE_POSTSCRIPT 1 // 0 for no PostScript device context #define wxUSE_AFM_FOR_POSTSCRIPT 1 @@ -73,40 +76,61 @@ #define wxUSE_DRAG_AND_DROP 1 // 0 for no drag and drop +#define wxUSE_CONTROLS 1 // Do not change +#define wxUSE_POPUPWIN 0 // OS/2 does not use this + +// Recommended setting: 1 +#define wxUSE_BUTTON 1 // wxButton +#define wxUSE_BMPBUTTON 1 // wxBitmapButton +#define wxUSE_CALENDARCTRL 1 // wxCalendarCtrl +#define wxUSE_CHECKBOX 1 // wxCheckBox +#define wxUSE_CHECKLISTBOX 1 // wxCheckListBox (requires wxUSE_OWNER_DRAWN) +#define wxUSE_CHOICE 1 // wxChoice +#define wxUSE_COMBOBOX 1 // wxComboBox +#define wxUSE_GAUGE 1 // wxGauge +#define wxUSE_LISTBOX 1 // wxListBox +#define wxUSE_LISTCTRL 1 // wxListCtrl +#define wxUSE_RADIOBOX 1 // wxRadioBox +#define wxUSE_RADIOBTN 1 // wxRadioButton +#define wxUSE_SCROLLBAR 1 // wxScrollBar +#define wxUSE_SLIDER 1 // wxSlider +#define wxUSE_SPINBTN 1 // wxSpinButton +#define wxUSE_SPINCTRL 1 // wxSpinCtrl +#define wxUSE_STATBOX 1 // wxStaticBox +#define wxUSE_STATLINE 1 // wxStaticLine +#define wxUSE_STATTEXT 1 // wxStaticText +#define wxUSE_STATBMP 1 // wxStaticBitmap +#define wxUSE_TEXTCTRL 1 // wxTextCtrl +#define wxUSE_TOGGLEBTN 1 // requires wxButton +#define wxUSE_TREECTRL 1 // wxTreeCtrl +#define wxUSE_CHOICEDLG 1 +#define wxUSE_COLOURDLG 1 +#define wxUSE_DATAOBJ 1 +#define wxUSE_FILEDLG 1 +#define wxUSE_FONTDLG 1 +#define wxUSE_FONTMAP 1 +#define wxUSE_GRID 1 +#define wxUSE_IMAGLIST 1 +#define wxUSE_LOGGUI 1 +#define wxUSE_LOGWINDOW 1 +#define wxUSE_LOG_DIALOG 1 +#define wxUSE_MIMETYPE 1 +#define wxUSE_MSGDLG 1 +#define wxUSE_NOTEBOOK 1 +#define wxUSE_SPLITTER 1 +#define wxUSE_STOPWATCH 1 +#define wxUSE_TAB_DIALOG 1 +#define wxUSE_WXHTML_HELP 1 #define wxUSE_BUTTONBAR 1 // Define 1 to use buttonbar classes (enhanced toolbar // for MS Windows) -#define wxUSE_GAUGE 1 - // Define 1 to use Microsoft's gauge (Windows) - // or Bull's gauge (Motif) library (both in contrib). -#define wxUSE_COMBOBOX 1 - // Define 1 to use COMBOXBOX control (Windows) - // or FWW's ComboBox widget (Motif). -#define wxUSE_CHOICE 1 - // Define 1 to use CHOICE #define wxUSE_RADIOBUTTON 1 // Define 1 to use radio button control -#define wxUSE_RADIOBTN 1 - // Unfortunately someone introduced this one, too #define wxUSE_SCROLLBAR 1 // Define 1 to compile contributed wxScrollBar class -#define wxUSE_CHECKBOX 1 - // Define 1 to compile checkbox - -#define wxUSE_LISTBOX 1 - // Define 1 to compile listbox - -#define wxUSE_SPINBTN 1 - // Define 1 to compile spin button - -// use wxStaticLine class (separator line in the dialog)? -#define wxUSE_STATLINE 1 - -#define wxUSE_CHECKLISTBOX 1 - // Define 1 to compile check listbox #define wxUSE_CARET 1 // Define 1 to use wxCaret class #define wxUSE_TREECTRL 1 @@ -251,6 +275,7 @@ #define wxUSE_ZIPSTREAM 1 // input stream for reading from zip archives +#define wxUSE_TIMER 1 // use the timer class /* * Finer detail * @@ -264,6 +289,8 @@ // use wxFile class - required by i18n code, wxConfig and others - recommended #define wxUSE_FILE 1 +#define wxUSE_FFILE 1 + // use wxTextFile class: requires wxFile, required by wxConfig #define wxUSE_TEXTFILE 1 @@ -306,6 +333,7 @@ #define wxUSE_NEW_GRID 1 // Define 1 to use the new drid classes + /* * Any platform * -- 2.45.2