From f5419957e5794f2d10f4e125f77b2c2e2cd222d6 Mon Sep 17 00:00:00 2001 From: Julian Smart Date: Fri, 4 Dec 1998 13:57:34 +0000 Subject: [PATCH] Fixes for WXWIN_COMPATIBILITY, and BC++ fix for event.cpp git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1109 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/docview.h | 2 +- include/wx/generic/colrdlgg.h | 4 ++-- include/wx/msw/dc.h | 2 ++ include/wx/prntbase.h | 2 +- src/common/event.cpp | 4 +++- src/common/resource.cpp | 8 ++++++- src/generic/scrolwin.cpp | 14 ++++++------ src/msw/checkbox.cpp | 2 +- src/msw/dc.cpp | 41 ++++++++++++++++++++++++++++++++++- src/msw/frame.cpp | 2 +- src/msw/menu.cpp | 2 +- src/msw/window.cpp | 2 +- 12 files changed, 67 insertions(+), 18 deletions(-) diff --git a/include/wx/docview.h b/include/wx/docview.h index f3717c44bf..755506cfeb 100644 --- a/include/wx/docview.h +++ b/include/wx/docview.h @@ -400,7 +400,7 @@ class WXDLLEXPORT wxDocParentFrame: public wxFrame public: wxDocParentFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const wxString& title, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long type = wxDEFAULT_FRAME, const wxString& name = "frame"); + long type = wxDEFAULT_FRAME_STYLE, const wxString& name = "frame"); // Extend event processing to search the document manager's event table virtual bool ProcessEvent(wxEvent& event); diff --git a/include/wx/generic/colrdlgg.h b/include/wx/generic/colrdlgg.h index b54d4df0fd..dac3a81ea2 100644 --- a/include/wx/generic/colrdlgg.h +++ b/include/wx/generic/colrdlgg.h @@ -40,10 +40,10 @@ class WXDLLEXPORT wxGenericColourDialog: public wxDialog wxRect singleCustomColourRect; // Size of each colour rectangle - wxIntPoint smallRectangleSize; + wxPoint smallRectangleSize; // For single customizable colour - wxIntPoint customRectangleSize; + wxPoint customRectangleSize; // Grid spacing (between rectangles) int gridSpacing; diff --git a/include/wx/msw/dc.h b/include/wx/msw/dc.h index 05e696b590..ba01d4b18f 100644 --- a/include/wx/msw/dc.h +++ b/include/wx/msw/dc.h @@ -115,6 +115,8 @@ public: DrawIcon(icon, pt.x, pt.y); } + virtual void DrawBitmap( const wxBitmap &bmp, long x, long y, bool useMask=FALSE ); + inline void DrawPoint(wxPoint& point) { DrawPoint(point.x, point.y); } virtual void DrawLines(wxList *list, long xoffset = 0, long yoffset = 0); virtual void DrawPolygon(wxList *list, long xoffset = 0, long yoffset = 0, int fillStyle=wxODDEVEN_RULE); diff --git a/include/wx/prntbase.h b/include/wx/prntbase.h index 6f49d54757..f484b7a925 100644 --- a/include/wx/prntbase.h +++ b/include/wx/prntbase.h @@ -170,7 +170,7 @@ class WXDLLEXPORT wxPreviewFrame: public wxFrame public: wxPreviewFrame(wxPrintPreviewBase *preview, wxFrame *parent, const wxString& title = "Print Preview", const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME, const wxString& name = "frame"); + long style = wxDEFAULT_FRAME_STYLE, const wxString& name = "frame"); ~wxPreviewFrame(); bool OnClose(); diff --git a/src/common/event.cpp b/src/common/event.cpp index 11d0de9e51..de088d74f0 100644 --- a/src/common/event.cpp +++ b/src/common/event.cpp @@ -371,7 +371,9 @@ bool wxEvtHandler::SearchEventTable(wxEventTable& table, wxEvent& event) int i = 0; int commandId = event.GetId(); - while (table.entries[i].m_fn) + // BC++ doesn't like while (table.entries[i].m_fn) + + while (table.entries[i].m_fn != 0L) { if ((event.GetEventType() == table.entries[i].m_eventType) && (table.entries[i].m_id == -1 || // Match, if event spec says any id will do (id == -1) diff --git a/src/common/resource.cpp b/src/common/resource.cpp index 49c769a130..fcce235d26 100644 --- a/src/common/resource.cpp +++ b/src/common/resource.cpp @@ -379,10 +379,15 @@ wxControl *wxResourceTable::CreateItem(wxWindow *parent, const wxItemResource* c { control = new wxScrollBar(parent, id, pos, size, childResource->GetStyle(), wxDefaultValidator, childResource->GetName()); +/* ((wxScrollBar *)control)->SetValue((int)childResource->GetValue1()); ((wxScrollBar *)control)->SetPageSize((int)childResource->GetValue2()); ((wxScrollBar *)control)->SetObjectLength((int)childResource->GetValue3()); ((wxScrollBar *)control)->SetViewLength((int)(long)childResource->GetValue5()); +*/ + ((wxScrollBar *)control)->SetScrollbar((int)childResource->GetValue1(),(int)childResource->GetValue2(), + (int)childResource->GetValue3(),(int)(long)childResource->GetValue5(),FALSE); + } #endif else if (itemType == wxString("wxSlider")) @@ -1834,7 +1839,8 @@ static wxResourceBitListStruct wxResourceBitListTable[] = { "wxMINIMIZE_BOX", wxMINIMIZE_BOX}, { "wxMAXIMIZE_BOX", wxMAXIMIZE_BOX}, { "wxRESIZE_BOX", wxRESIZE_BOX}, - { "wxDEFAULT_FRAME", wxDEFAULT_FRAME}, + { "wxDEFAULT_FRAME_STYLE", wxDEFAULT_FRAME_STYLE}, + { "wxDEFAULT_FRAME", wxDEFAULT_FRAME_STYLE}, { "wxDEFAULT_DIALOG_STYLE", wxDEFAULT_DIALOG_STYLE}, { "wxBORDER", wxBORDER}, { "wxRETAINED", wxRETAINED}, diff --git a/src/generic/scrolwin.cpp b/src/generic/scrolwin.cpp index bdc9467d73..7468a3194c 100644 --- a/src/generic/scrolwin.cpp +++ b/src/generic/scrolwin.cpp @@ -181,7 +181,7 @@ int wxScrolledWindow::CalcScrollInc(wxScrollEvent& event) int nScrollInc = 0; switch (event.GetEventType()) { - case wxEVENT_TYPE_SCROLL_TOP: + case wxEVT_SCROLL_TOP: { if (orient == wxHORIZONTAL) nScrollInc = - m_xScrollPosition; @@ -189,7 +189,7 @@ int wxScrolledWindow::CalcScrollInc(wxScrollEvent& event) nScrollInc = - m_yScrollPosition; break; } - case wxEVENT_TYPE_SCROLL_BOTTOM: + case wxEVT_SCROLL_BOTTOM: { if (orient == wxHORIZONTAL) nScrollInc = m_xScrollLines - m_xScrollPosition; @@ -197,17 +197,17 @@ int wxScrolledWindow::CalcScrollInc(wxScrollEvent& event) nScrollInc = m_yScrollLines - m_yScrollPosition; break; } - case wxEVENT_TYPE_SCROLL_LINEUP: + case wxEVT_SCROLL_LINEUP: { nScrollInc = -1; break; } - case wxEVENT_TYPE_SCROLL_LINEDOWN: + case wxEVT_SCROLL_LINEDOWN: { nScrollInc = 1; break; } - case wxEVENT_TYPE_SCROLL_PAGEUP: + case wxEVT_SCROLL_PAGEUP: { if (orient == wxHORIZONTAL) nScrollInc = -GetScrollPageSize(wxHORIZONTAL); @@ -215,7 +215,7 @@ int wxScrolledWindow::CalcScrollInc(wxScrollEvent& event) nScrollInc = -GetScrollPageSize(wxVERTICAL); break; } - case wxEVENT_TYPE_SCROLL_PAGEDOWN: + case wxEVT_SCROLL_PAGEDOWN: { if (orient == wxHORIZONTAL) nScrollInc = GetScrollPageSize(wxHORIZONTAL); @@ -223,7 +223,7 @@ int wxScrolledWindow::CalcScrollInc(wxScrollEvent& event) nScrollInc = GetScrollPageSize(wxVERTICAL); break; } - case wxEVENT_TYPE_SCROLL_THUMBTRACK: + case wxEVT_SCROLL_THUMBTRACK: { if (orient == wxHORIZONTAL) nScrollInc = pos - m_xScrollPosition; diff --git a/src/msw/checkbox.cpp b/src/msw/checkbox.cpp index 7cc14b9f10..3c659f88fa 100644 --- a/src/msw/checkbox.cpp +++ b/src/msw/checkbox.cpp @@ -33,7 +33,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxBitmapCheckBox, wxCheckBox) bool wxCheckBox::MSWCommand(WXUINT WXUNUSED(param), WXWORD WXUNUSED(id)) { - wxCommandEvent event(wxEVENT_TYPE_CHECKBOX_COMMAND, m_windowId); + wxCommandEvent event(wxEVT_COMMAND_CHECKBOX_CLICKED, m_windowId); event.SetInt(GetValue()); event.SetEventObject(this); ProcessCommand(event); diff --git a/src/msw/dc.cpp b/src/msw/dc.cpp index 9375860e75..9367a7d761 100644 --- a/src/msw/dc.cpp +++ b/src/msw/dc.cpp @@ -604,6 +604,45 @@ void wxDC::DrawIcon(const wxIcon& icon, long x, long y) CalcBoundingBox(x+icon.GetWidth(), y+icon.GetHeight()); } +void wxDC::DrawBitmap( const wxBitmap &bmp, long x, long y, bool useMask ) +{ + if (!bmp.Ok()) + return; + + // If we're not drawing transparently, and not drawing to a printer, + // optimize this function to use Windows functions. + if (!useMask && !IsKindOf(CLASSINFO(wxPrinterDC))) + { + HDC cdc = (HDC)m_hDC; + HDC memdc = ::CreateCompatibleDC( cdc ); + HBITMAP hbitmap = (HBITMAP) bmp.GetHBITMAP( ); + ::SelectObject( memdc, hbitmap ); + ::BitBlt( cdc, x, y, bmp.GetWidth(), bmp.GetHeight(), memdc, 0, 0, SRCCOPY); + ::SelectObject( memdc, 0 ); + ::DeleteDC( memdc ); + } + else + { + // Rather than reproduce wxDC::Blit, let's do it at the wxWin API level + wxMemoryDC memDC; + memDC.SelectObject(bmp); + + /* Not sure if we need this. The mask should leave the + * masked areas as per the original background of this DC. + */ +/* + // There might be transparent areas, so make these + // the same colour as this DC + memDC.SetBackground(* GetBackground()); + memDC.Clear(); +*/ + + Blit(x, y, bmp.GetWidth(), bmp.GetHeight(), & memDC, 0, 0, wxCOPY, useMask); + + memDC.SelectObject(wxNullBitmap); + } +} + void wxDC::SetFont(const wxFont& the_font) { // Set the old object temporarily, in case the assignment deletes an object @@ -1256,7 +1295,7 @@ bool wxDC::Blit(long xdest, long ydest, long width, long height, { if (IsKindOf(CLASSINFO(wxPrinterDC))) { - // If we are printing source colours are screen colours + // If we are printing, source colours are screen colours // not printer colours and so we need copy the bitmap // pixel by pixel. HDC dc_src = (HDC) source->m_hDC; diff --git a/src/msw/frame.cpp b/src/msw/frame.cpp index 0f5da8a297..8616d1a2ae 100644 --- a/src/msw/frame.cpp +++ b/src/msw/frame.cpp @@ -920,7 +920,7 @@ void wxFrame::Command(int id) void wxFrame::ProcessCommand(int id) { - wxCommandEvent commandEvent(wxEVENT_TYPE_MENU_COMMAND, id); + wxCommandEvent commandEvent(wxEVT_COMMAND_MENU_SELECTED, id); commandEvent.SetInt( id ); commandEvent.SetEventObject( this ); diff --git a/src/msw/menu.cpp b/src/msw/menu.cpp index cb90171636..6809100b60 100644 --- a/src/msw/menu.cpp +++ b/src/msw/menu.cpp @@ -413,7 +413,7 @@ wxString wxMenu::GetLabel(int id) const bool wxMenu::MSWCommand(WXUINT WXUNUSED(param), WXWORD id) { - wxCommandEvent event(wxEVENT_TYPE_MENU_COMMAND); + wxCommandEvent event(wxEVT_COMMAND_MENU_SELECTED); event.SetEventObject( this ); event.SetId( id ); event.SetInt( id ); diff --git a/src/msw/window.cpp b/src/msw/window.cpp index a783d227e4..3e4096094f 100644 --- a/src/msw/window.cpp +++ b/src/msw/window.cpp @@ -2069,7 +2069,7 @@ void wxWindow::MSWOnLButtonDown(int x, int y, WXUINT flags) event.SetTimestamp(wxApp::sm_lastMessageTime); event.m_eventObject = this; - m_lastXPos = event.m_x; m_lastYPos = event.m_y; m_lastEvent = wxEVENT_TYPE_LEFT_DOWN; + m_lastXPos = event.m_x; m_lastYPos = event.m_y; m_lastEvent = wxEVT_LEFT_DOWN; if (!GetEventHandler()->ProcessEvent(event)) Default(); -- 2.45.2