// ----------------------------------------------------------------------------- purpose: Allow wxTAB_TRAVERSAL to be disabled for splitter windows file: src/common/splitter.cpp line: 90 old: // allow TABbing from one window to the other style |= wxTAB_TRAVERSAL; new: // allow TABbing from one window to the other // @@@ 2007-04-13 If I don't ask for TAB_TREVERSAL, I don't want it, thank you very much! //style |= wxTAB_TRAVERSAL; // ----------------------------------------------------------------------------- purpose: Fix copy/paste of bitmaps into Photopaint/Photoshop file: src/msw/dib.cpp line: 522 old: // memory we need for BITMAPINFO only DWORD dwLen = bi.biSize + GetNumberOfColours(bm.bmBitsPixel) * sizeof(RGBQUAD); new: // memory we need for BITMAPINFO only DWORD dwLen = bi.biSize + GetNumberOfColours(bm.bmBitsPixel) * sizeof(RGBQUAD); // @@@ 2006-09-29 // HACK: Photoshop and Photopaint thing they are dealing with BI_BITFIELDS // so they expect masks, make room for that in the palet section if (bm.bmBitsPixel == 32) { dwLen += 3 * sizeof(DWORD); } line: 551 old: // return the total size return dwLen + bi.biSizeImage; new: // @@@ // HACK: make the DIB BI_BITFIELDS compatible for stupid programs that don't understand BI_RGB if (!wantSizeOnly && bm.bmBitsPixel == 32) { bi.biClrUsed = 3; ZeroMemory((char *)pbi + dwLen - 3 * sizeof(DWORD), 3 * sizeof(DWORD)); } // return the total size return dwLen + bi.biSizeImage; // ----------------------------------------------------------------------------- purpose: Draw 'checked' menu items with a border file: src/msw/ownerdrw.cpp line: 464 old: // there should be enough space! wxASSERT((nBmpWidth <= rc.GetWidth()) && (nBmpHeight <= rc.GetHeight())); int heightDiff = m_nHeight - nBmpHeight; dc.Blit(rc.x + (margin - nBmpWidth) / 2, rc.y + heightDiff / 2, nBmpWidth, nBmpHeight, &dcMem, 0, 0, wxCOPY, true /* use mask */); if ( ( st & wxODSelected ) && !( st & wxODDisabled ) && draw_bitmap_edge ) new: // there should be enough space! wxASSERT((nBmpWidth <= rc.GetWidth()) && (nBmpHeight <= rc.GetHeight())); // @@@ 2006-07-31 // Draw dither behind bitmap if ( ( st & wxODChecked) ) { RECT rectBmp = { rc.GetLeft(), rc.GetTop(), rc.GetLeft() + margin, rc.GetTop() + m_nHeight }; HBRUSH hbr, hPrevBrush; if (draw_bitmap_edge) { if ((st & wxODSelected)) { // Clear dither behind bitmap // Draw sunken edge on checked item DrawEdge(hdc, &rectBmp, BDR_SUNKENOUTER, BF_RECT | BF_MIDDLE); } else { // Draw dither behind bitmap // Stolen from ReactOS const WORD wPattern_AA55[8] = { 0xaaaa, 0x5555, 0xaaaa, 0x5555, 0xaaaa, 0x5555, 0xaaaa, 0x5555 }; HBITMAP hbm = CreateBitmap(8, 8, 1, 1, wPattern_AA55); hbr = CreatePatternBrush(hbm); hPrevBrush = (HBRUSH)SelectObject(hdc, hbr); SetBkColor(hdc, RGB(255, 255, 255)); PatBlt(hdc, rectBmp.left, rectBmp.top, rectBmp.right-rectBmp.left, rectBmp.bottom-rectBmp.top, 0x00FA0089); DeleteObject(hbm); SelectObject(hdc, hPrevBrush); DeleteObject(hbr); // Draw sunken edge on checked item DrawEdge(hdc, &rectBmp, BDR_SUNKENOUTER, BF_RECT); } } else { // Draw rectangle around checked item // background color is interpolated between selection and menu color HPEN hpen, hPrevPen; DWORD menu_bg_color = GetSysColor(COLOR_MENU); DWORD selected_color = GetSysColor(COLOR_MENUHILIGHT); if ((st & wxODSelected)) { hbr = CreateSolidBrush(menu_bg_color); } else { hbr = CreateSolidBrush(RGB( (3*GetRValue(menu_bg_color) + GetRValue(selected_color)) / 4 , (3*GetGValue(menu_bg_color) + GetGValue(selected_color)) / 4 , (3*GetBValue(menu_bg_color) + GetBValue(selected_color)) / 4)); } hpen = CreatePen(PS_SOLID,1, selected_color); hPrevBrush = (HBRUSH)SelectObject(hdc, hbr); hPrevPen = (HPEN) SelectObject(hdc, hpen); Rectangle(hdc, rectBmp.left, rectBmp.top, rectBmp.right, rectBmp.bottom); SelectObject(hdc, hPrevPen); SelectObject(hdc, hPrevBrush); DeleteObject(hpen); DeleteObject(hbr); } } // }}} int heightDiff = m_nHeight - nBmpHeight; dc.Blit(rc.x + (margin - nBmpWidth) / 2, rc.y + heightDiff / 2, nBmpWidth, nBmpHeight, &dcMem, 0, 0, wxCOPY, true /* use mask */); // @@@ 2006-07-31 // Edge for checked already drawn // ----------------------------------------------------------------------------- purpose: Don't mess with the default GUI font for no reason file: src/msw/settings.cpp line: 226 old: wxNativeFontInfo info; info.lf = lf; #ifndef __WXWINCE__ // We want Windows 2000 or later to have new fonts even MS Shell Dlg // is returned as default GUI font for compatibility int verMaj; if(index == DEFAULT_GUI_FONT && wxGetOsVersion(&verMaj) == wxOS_WINDOWS_NT && verMaj >= 5) wxStrcpy(info.lf.lfFaceName, wxT("MS Shell Dlg 2")); #endif // Under MicroWindows we pass the HFONT as well new: wxNativeFontInfo info; info.lf = lf; //@@@ 2006-11-21: Don't mess with my Default GUI Font! // Under MicroWindows we pass the HFONT as well // ----------------------------------------------------------------------------- purpose: Add support for dropdown arrows in wxToolBar patch: apply http://trac.wxwidgets.org/ticket/8556 should be in 2.10 and HEAD already // ----------------------------------------------------------------------------- purpose: Allow different size toolbar buttons patch: see http://stackoverflow.com/questions/868637/wxtoolbar-with-dynamically-sized-buttons file: src/msw/tbar95.cpp line: 989 (wx2.8.11) old: bitmapId++; break; new: // @@@ See http://stackoverflow.com/questions/868637/wxtoolbar-with-dynamically-sized-buttons button.fsStyle |= TBSTYLE_AUTOSIZE; bitmapId++; break; // -----------------------------------------------------------------------------