📄 wxmsw-win32.patch
字号:
# This patch was done from wxWidgets-2.6.1-Patch01.zip# found on the download page of wxwidgets# 24/08/05 -- Xtophediff -Naur wxwidgets-orig/include/wx/msw/listbox.h wxwidgets/include/wx/msw/listbox.h--- wxwidgets-orig/include/wx/msw/listbox.h 2005-04-11 20:18:36.000000000 +0000+++ wxwidgets/include/wx/msw/listbox.h 2005-08-24 16:47:00.000000000 +0000@@ -4,7 +4,7 @@ // Author: Julian Smart // Modified by: // Created: 01/02/97-// RCS-ID: $Id: listbox.h,v 1.42 2005/04/10 15:22:57 VZ Exp $+// RCS-ID: $Id: listbox.h,v 1.43 2005/06/16 15:36:42 JS Exp $ // Copyright: (c) Julian Smart // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////@@ -151,6 +151,13 @@ virtual wxSize DoGetBestSize() const; + // under XP when using "transition effect for menus and tooltips" if we+ // return true for WM_PRINTCLIENT here then it causes noticable slowdown+ virtual bool MSWShouldPropagatePrintChild()+ {+ return false;+ }+ #if wxUSE_OWNER_DRAWN // control items wxListBoxItemsArray m_aItems;diff -Naur wxwidgets-orig/include/wx/msw/uxthemep.h wxwidgets/include/wx/msw/uxthemep.h--- wxwidgets-orig/include/wx/msw/uxthemep.h 2005-05-14 16:57:49.000000000 +0000+++ wxwidgets/include/wx/msw/uxthemep.h 2005-08-24 16:47:00.000000000 +0000@@ -12,7 +12,7 @@ #ifndef __WINE_UXTHEME_H #define __WINE_UXTHEME_H -#include <commctrl.h>+#include "wx/msw/wrapcctl.h" typedef HANDLE HTHEME; diff -Naur wxwidgets-orig/include/wx/msw/window.h wxwidgets/include/wx/msw/window.h--- wxwidgets-orig/include/wx/msw/window.h 2005-05-31 20:47:32.000000000 +0000+++ wxwidgets/include/wx/msw/window.h 2005-08-24 16:47:00.000000000 +0000@@ -5,7 +5,7 @@ // Modified by: Vadim Zeitlin on 13.05.99: complete refont of message handling, // elimination of Default(), ... // Created: 01/02/97-// RCS-ID: $Id: window.h,v 1.146 2005/05/19 22:17:01 RD Exp $+// RCS-ID: $Id: window.h,v 1.147 2005/06/16 15:36:42 JS Exp $ // Copyright: (c) Julian Smart // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////@@ -391,6 +391,14 @@ return false; } + // some controls (e.g. wxListBox) need to set the return value themselves+ //+ // return true to let parent handle it if we don't, false otherwise+ virtual bool MSWShouldPropagatePrintChild()+ {+ return true;+ }+ // Responds to colour changes: passes event on to children. void OnSysColourChanged(wxSysColourChangedEvent& event);diff -Naur wxwidgets-orig/src/generic/grid.cpp wxwidgets/src/generic/grid.cpp--- wxwidgets-orig/src/generic/grid.cpp 2005-06-02 15:19:48.000000000 +0000+++ wxwidgets/src/generic/grid.cpp 2005-08-24 16:47:00.000000000 +0000@@ -4,7 +4,7 @@ // Author: Michael Bedward (based on code by Julian Smart, Robin Dunn) // Modified by: Robin Dunn, Vadim Zeitlin // Created: 1/08/1999-// RCS-ID: $Id: grid.cpp,v 1.339 2005/06/02 11:38:16 VZ Exp $+// RCS-ID: $Id: grid.cpp,v 1.341 2005/06/09 14:49:54 JS Exp $ // Copyright: (c) Michael Bedward (mbedward@ozemail.com.au) // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////@@ -242,7 +242,8 @@ public: wxGridCellEditorEvtHandler(wxGrid* grid, wxGridCellEditor* editor) : m_grid(grid),- m_editor(editor)+ m_editor(editor),+ m_inSetFocus(false) { } @@ -250,10 +251,16 @@ void OnKeyDown(wxKeyEvent& event); void OnChar(wxKeyEvent& event); + void SetInSetFocus(bool inSetFocus) { m_inSetFocus = inSetFocus; }+ private: wxGrid* m_grid; wxGridCellEditor* m_editor; + // Work around the fact that a focus kill event can be sent to+ // a combobox within a set focus event.+ bool m_inSetFocus;+ DECLARE_EVENT_TABLE() DECLARE_DYNAMIC_CLASS(wxGridCellEditorEvtHandler) DECLARE_NO_COPY_CLASS(wxGridCellEditorEvtHandler)@@ -571,7 +578,7 @@ // through in that case. if ((ctrl || alt) && !(ctrl && alt)) return false;- + #if wxUSE_UNICODE int key = event.GetUnicodeKey(); bool keyOk = true;@@ -588,7 +595,7 @@ return keyOk; #else // !wxUSE_UNICODE int key = event.GetKeyCode();- if (key <= 255) + if (key <= 255) return true; return false; #endif // wxUSE_UNICODE/!wxUSE_UNICODE@@ -752,7 +759,7 @@ wxTextCtrl* tc = Text(); wxChar ch; long pos;- + #if wxUSE_UNICODE ch = event.GetUnicodeKey(); if (ch <= 127)@@ -1106,7 +1113,7 @@ tmpbuf[0] = (char) keycode; tmpbuf[1] = '\0'; wxString strbuf(tmpbuf, *wxConvCurrent);-#if wxUSE_INTL +#if wxUSE_INTL bool is_decimal_point = ( strbuf == wxLocale::GetInfo(wxLOCALE_DECIMAL_POINT, wxLOCALE_CAT_NUMBER) ); #else@@ -1184,14 +1191,14 @@ tmpbuf[0] = (char) keycode; tmpbuf[1] = '\0'; wxString strbuf(tmpbuf, *wxConvCurrent);-#if wxUSE_INTL +#if wxUSE_INTL bool is_decimal_point = ( strbuf == wxLocale::GetInfo(wxLOCALE_DECIMAL_POINT, wxLOCALE_CAT_NUMBER) ); #else bool is_decimal_point = ( strbuf == _T(".") ); #endif- if ( (keycode < 128) && + if ( (keycode < 128) && (wxIsdigit(keycode) || tolower(keycode) == 'e' || is_decimal_point || keycode == '+' || keycode == '-') ) return true;@@ -1375,11 +1382,11 @@ case WXK_SPACE: CBox()->SetValue(!CBox()->GetValue()); break;- + case '+': CBox()->SetValue(true); break;- + case '-': CBox()->SetValue(false); break;@@ -1460,6 +1467,14 @@ wxASSERT_MSG(m_control, wxT("The wxGridCellEditor must be Created first!")); + wxGridCellEditorEvtHandler* evtHandler = NULL;+ if (m_control)+ evtHandler = wxDynamicCast(m_control->GetEventHandler(), wxGridCellEditorEvtHandler);++ // Don't immediately end if we get a kill focus event within BeginEdit+ if (evtHandler)+ evtHandler->SetInSetFocus(true);+ m_startValue = grid->GetTable()->GetValue(row, col); if (m_allowOthers)@@ -1468,12 +1483,15 @@ { // find the right position, or default to the first if not found int pos = Combo()->FindString(m_startValue);- if (pos == -1)+ if (pos == wxNOT_FOUND) pos = 0; Combo()->SetSelection(pos); } Combo()->SetInsertionPointEnd(); Combo()->SetFocus();++ if (evtHandler)+ evtHandler->SetInSetFocus(false); } bool wxGridCellChoiceEditor::EndEdit(int row, int col,@@ -1525,6 +1543,10 @@ void wxGridCellEditorEvtHandler::OnKillFocus(wxFocusEvent& event) {+ // Don't disable the cell if we're just starting to edit it+ if (m_inSetFocus)+ return;+ // accept changes m_grid->DisableCellEditControl(); @@ -3783,7 +3805,7 @@ { if (event.ButtonDown(wxMOUSE_BTN_LEFT) && FindFocus() != this) SetFocus();- + m_owner->ProcessGridCellMouseEvent( event ); } @@ -4905,6 +4927,7 @@ break; case WXGRID_CURSOR_SELECT_ROW:+ { if ( (row = YToRow( y )) >= 0 ) { if ( m_selection )@@ -4916,6 +4939,8 @@ event.MetaDown() ); } }+ }+ break; // default label to suppress warnings about "enumeration value // 'xxx' not handled in switch@@ -5127,6 +5152,7 @@ break; case WXGRID_CURSOR_SELECT_COL:+ { if ( (col = XToCol( x )) >= 0 ) { if ( m_selection )@@ -5138,6 +5164,8 @@ event.MetaDown() ); } }+ }+ break; // default label to suppress warnings about "enumeration value // 'xxx' not handled in switchdiff -Naur wxwidgets-orig/src/generic/splitter.cpp wxwidgets/src/generic/splitter.cpp--- wxwidgets-orig/src/generic/splitter.cpp 2005-03-29 12:22:43.000000000 +0000+++ wxwidgets/src/generic/splitter.cpp 2005-08-24 16:47:00.000000000 +0000@@ -4,7 +4,7 @@ // Author: Julian Smart // Modified by: // Created: 01/02/97-// RCS-ID: $Id: splitter.cpp,v 1.114 2005/03/29 12:22:43 JS Exp $+// RCS-ID: $Id: splitter.cpp,v 1.115 2005/06/21 16:08:22 JS Exp $ // Copyright: (c) Julian Smart // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////@@ -94,6 +94,11 @@ if ( !wxWindow::Create(parent, id, pos, size, style, name) ) return false; + if (size.x >= 0)+ m_lastSize.x = size.x;+ if (size.y >= 0)+ m_lastSize.y = size.y;+ m_permitUnsplitAlways = (style & wxSP_PERMIT_UNSPLIT) != 0; // FIXME: with this line the background is not erased at all under GTK1,@@ -700,8 +705,8 @@ y2 = size2; } - GetWindow1()->SetSize(border, border, w1, h1); GetWindow2()->SetSize(x2, y2, w2, h2);+ GetWindow1()->SetSize(border, border, w1, h1); } wxClientDC dc(this);diff -Naur wxwidgets-orig/src/msw/helpchm.cpp wxwidgets/src/msw/helpchm.cpp--- wxwidgets-orig/src/msw/helpchm.cpp 2005-05-31 20:49:53.000000000 +0000+++ wxwidgets/src/msw/helpchm.cpp 2005-08-24 16:47:00.000000000 +0000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -