From: David Webster Date: Wed, 27 Oct 1999 22:47:04 +0000 (+0000) Subject: Toolbar fixes X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/29435d814db9ce39543481543de199519e26175e Toolbar fixes git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4225 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/os2/frame.h b/include/wx/os2/frame.h index 4686bce84a..e830d71c49 100644 --- a/include/wx/os2/frame.h +++ b/include/wx/os2/frame.h @@ -3,17 +3,16 @@ // Purpose: wxFrame class // Author: David Webster // Modified by: -// Created: 10/06/99 +// Created: 10/27/99 // RCS-ID: $Id$ // Copyright: (c) David Webster -// Licence: wxWindows licence +// Licence: wxWindows license ///////////////////////////////////////////////////////////////////////////// #ifndef _WX_FRAME_H_ #define _WX_FRAME_H_ #include "wx/window.h" -#include "wx/toolbar.h" #include "wx/os2/accel.h" #include "wx/icon.h" @@ -23,35 +22,34 @@ WXDLLEXPORT_DATA(extern const wxChar*) wxStatusLineNameStr; class WXDLLEXPORT wxMenuBar; class WXDLLEXPORT wxStatusBar; +class WXDLLEXPORT wxToolBar; -class WXDLLEXPORT wxFrame: public wxWindow +class WXDLLEXPORT wxFrame : public wxWindow { - DECLARE_DYNAMIC_CLASS(wxFrame) + DECLARE_DYNAMIC_CLASS(wxFrame) public: wxFrame(); - inline wxFrame( wxWindow* parent - ,wxWindowID id - ,const wxString& title - ,const wxPoint& pos = wxDefaultPosition - ,const wxSize& size = wxDefaultSize - ,long style = wxDEFAULT_FRAME_STYLE - ,const wxString& name = wxFrameNameStr - ) + wxFrame(wxWindow *parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxDEFAULT_FRAME_STYLE, + const wxString& name = wxFrameNameStr) { Create(parent, id, title, pos, size, style, name); } ~wxFrame(); - bool Create( wxWindow* parent - ,wxWindowID id - ,const wxString& title - ,const wxPoint& pos = wxDefaultPosition - ,const wxSize& size = wxDefaultSize - ,long style = wxDEFAULT_FRAME_STYLE - ,const wxString& name = wxFrameNameStr - ); + bool Create(wxWindow *parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxDEFAULT_FRAME_STYLE, + const wxString& name = wxFrameNameStr); virtual bool Destroy(); @@ -66,10 +64,10 @@ public: void DetachMenuBar(); // Set menu bar void SetMenuBar(wxMenuBar *menu_bar); - virtual wxMenuBar *GetMenuBar() const ; + virtual wxMenuBar *GetMenuBar() const; // Call this to simulate a menu command - inline bool Command(int id) { return ProcessCommand(id); } + bool Command(int id) { return ProcessCommand(id); } // process menu command: returns TRUE if processed bool ProcessCommand(int id); @@ -202,7 +200,7 @@ protected: #endif // wxUSE_STATUSBAR #if wxUSE_TOOLBAR - wxToolBar * m_frameToolBar; + wxToolBar* m_frameToolBar; #endif // wxUSE_TOOLBAR private: diff --git a/src/os2/frame.cpp b/src/os2/frame.cpp index 80c284ad61..e15c049b13 100644 --- a/src/os2/frame.cpp +++ b/src/os2/frame.cpp @@ -3,7 +3,7 @@ // Purpose: wxFrame // Author: David Webster // Modified by: -// Created: 08/12/99 +// Created: 10/27/99 // RCS-ID: $Id$ // Copyright: (c) David Webster // Licence: wxWindows licence @@ -12,6 +12,10 @@ // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + #ifndef WX_PRECOMP #include "wx/setup.h" #include "wx/frame.h" @@ -51,23 +55,20 @@ bool wxFrame::m_useNativeStatusBar = FALSE; wxFrame::wxFrame() { -#if wxUSE_TOOLBAR m_frameToolBar = NULL ; -#endif m_frameMenuBar = NULL; m_frameStatusBar = NULL; m_iconized = FALSE; } -bool wxFrame::Create( wxWindow *parent - ,wxWindowID id - ,const wxString& title - ,const wxPoint& pos - ,const wxSize& size - ,long style - ,const wxString& name - ) +bool wxFrame::Create(wxWindow *parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos, + const wxSize& size, + long style, + const wxString& name) { #if wxUSE_TOOLTIPS m_hwndToolTip = 0; @@ -76,9 +77,7 @@ bool wxFrame::Create( wxWindow *parent SetName(name); m_windowStyle = style; m_frameMenuBar = NULL; -#if wxUSE_TOOLBAR m_frameToolBar = NULL ; -#endif m_frameStatusBar = NULL; SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE)); @@ -98,6 +97,10 @@ bool wxFrame::Create( wxWindow *parent m_iconized = FALSE; + // we pass NULL as parent to MSWCreate because frames with parents behave + // very strangely under Win95 shell + // Alteration by JACS: keep normal Windows behaviour (float on top of parent) + // with this style. if ((m_windowStyle & wxFRAME_FLOAT_ON_PARENT) == 0) parent = NULL; @@ -121,14 +124,16 @@ wxFrame::~wxFrame() if (m_frameMenuBar) delete m_frameMenuBar; +/* New behaviour March 1998: check if it's the last top-level window */ +// if (wxTheApp && (this == wxTheApp->GetTopWindow())) + if (wxTheApp && (wxTopLevelWindows.Number() == 0)) { wxTheApp->SetTopWindow(NULL); if (wxTheApp->GetExitOnFrameDelete()) { -// TODO: PostQuitMessage(0); - return; +// PostQuitMessage(0); } } @@ -139,28 +144,31 @@ wxFrame::~wxFrame() // Try to bring the parent to the top. // MT:Only do this if this frame is currently the active window, else weird // things start to happen + +// TODO: +/* if ( wxGetActiveWindow() == this ) - if (GetParent() && GetParent()->GetHWND()) - // TODO: OS/2 PM version - // ::BringWindowToTop((HWND) GetParent()->GetHWND()); -return; + if (GetParent() && GetParent()->GetHWND()) + ::BringWindowToTop((HWND) GetParent()->GetHWND()); +*/ } // Get size *available for subwindows* i.e. excluding menu bar, toolbar etc. void wxFrame::DoGetClientSize(int *x, int *y) const { +// TODO: +/* RECT rect; -//TODO: ::GetClientRect(GetHwnd(), &rect); + ::GetClientRect(GetHwnd(), &rect); if ( GetStatusBar() ) { int statusX, statusY; GetStatusBar()->GetClientSize(&statusX, &statusY); -// TODO: OS/2's rect rect.bottom -= statusY; + rect.bottom -= statusY; } wxPoint pt(GetClientAreaOrigin()); -/* rect.bottom -= pt.y; rect.right -= pt.x; @@ -177,71 +185,79 @@ void wxFrame::DoSetClientSize(int width, int height) { HWND hWnd = GetHwnd(); +// TODO: +/* RECT rect; -// TODO: ::GetClientRect(hWnd, &rect); + ::GetClientRect(hWnd, &rect); RECT rect2; -//TODO: ::GetWindowRect(hWnd, &rect2); + GetWindowRect(hWnd, &rect2); // Find the difference between the entire window (title bar and all) // and the client area; add this to the new client size to move the // window -/* int actual_width = rect2.right - rect2.left - rect.right + width; int actual_height = rect2.bottom - rect2.top - rect.bottom + height; -*/ + if ( GetStatusBar() ) { int statusX, statusY; GetStatusBar()->GetClientSize(&statusX, &statusY); -// actual_height += statusY; + actual_height += statusY; } -/* + wxPoint pt(GetClientAreaOrigin()); actual_width += pt.y; actual_height += pt.x; POINT point; - point.x = rect2.left; point.y = rect2.top; MoveWindow(hWnd, point.x, point.y, actual_width, actual_height, (BOOL)TRUE); -*/ + wxSizeEvent event(wxSize(width, height), m_windowId); event.SetEventObject( this ); GetEventHandler()->ProcessEvent(event); +*/ } void wxFrame::DoGetSize(int *width, int *height) const { +// TODO: +/* RECT rect; -// TODO: ::GetWindowRect(GetHwnd(), &rect); -// *width = rect.right - rect.left; -// *height = rect.bottom - rect.top; + GetWindowRect(GetHwnd(), &rect); + *width = rect.right - rect.left; + *height = rect.bottom - rect.top; +*/ } void wxFrame::DoGetPosition(int *x, int *y) const { +// TODO: +/* RECT rect; -// TODO: ::GetWindowRect(GetHwnd(), &rect); - POINTL point; -// point.x = rect.left; -// point.y = rect.top; + GetWindowRect(GetHwnd(), &rect); + POINT point; + point.x = rect.left; + point.y = rect.top; *x = point.x; *y = point.y; +*/ } bool wxFrame::Show(bool show) { - int cshow; +// TODO: /* + int cshow; if (show) cshow = SW_SHOW; else cshow = SW_HIDE; -*/ + if (!show) { // Try to highlight the correct window (the parent) @@ -250,70 +266,83 @@ bool wxFrame::Show(bool show) { hWndParent = (HWND) GetParent()->GetHWND(); if (hWndParent) -// TODO: ::BringWindowToTop(hWndParent); - cshow = (int)show; // just to have something here, remove + ::BringWindowToTop(hWndParent); } } -// TODO: ::ShowWindow(GetHwnd(), (BOOL)cshow); + ShowWindow(GetHwnd(), (BOOL)cshow); if (show) { -// TODO: ::BringWindowToTop(GetHwnd()); + BringWindowToTop(GetHwnd()); wxActivateEvent event(wxEVT_ACTIVATE, TRUE, m_windowId); event.SetEventObject( this ); GetEventHandler()->ProcessEvent(event); } return TRUE; +*/ + return FALSE; } void wxFrame::Iconize(bool iconize) { +// TODO: +/* if (!iconize) Show(TRUE); int cshow; -/* if (iconize) cshow = SW_MINIMIZE; else cshow = SW_RESTORE; ShowWindow(GetHwnd(), (BOOL)cshow); -*/ m_iconized = iconize; +*/ } // Equivalent to maximize/restore in Windows void wxFrame::Maximize(bool maximize) { +// TODO: +/* Show(TRUE); int cshow; -/* if (maximize) cshow = SW_MAXIMIZE; else cshow = SW_RESTORE; ShowWindow(GetHwnd(), cshow); -*/ m_iconized = FALSE; +*/ } bool wxFrame::IsIconized() const { -// TODO: ((wxFrame *)this)->m_iconized = (::IsIconic(GetHwnd()) != 0); +// TODO: +/* + ((wxFrame *)this)->m_iconized = (::IsIconic(GetHwnd()) != 0); return m_iconized; +*/ + return FALSE; } // Is it maximized? bool wxFrame::IsMaximized() const { -//TODO: return (::IsZoomed(GetHwnd()) != 0) ; - return FALSE; // remove +// return (::IsZoomed(GetHwnd()) != 0) ; + return FALSE; } void wxFrame::SetIcon(const wxIcon& icon) { +// TODO: +/* m_icon = icon; + if ( m_icon.Ok() ) + SendMessage(GetHwnd(), WM_SETICON, + (WPARAM)TRUE, (LPARAM)(HICON) m_icon.GetHICON()); +*/ } #if wxUSE_STATUSBAR @@ -321,21 +350,24 @@ wxStatusBar *wxFrame::OnCreateStatusBar(int number, long style, wxWindowID id, const wxString& name) { wxStatusBar *statusBar = NULL; + { + statusBar = new wxStatusBar(this, id, wxPoint(0, 0), wxSize(100, 20), + style, name); + + // Set the height according to the font and the border size + wxClientDC dc(statusBar); + dc.SetFont(statusBar->GetFont()); - statusBar = new wxStatusBar(this, id, wxPoint(0, 0), wxSize(100, 20), - style, name); + long x, y; + dc.GetTextExtent("X", &x, &y); - // Set the height according to the font and the border size - wxClientDC dc(statusBar); - dc.SetFont(statusBar->GetFont()); + int height = (int)( (y * 1.1) + 2* statusBar->GetBorderY()); - long x, y; - dc.GetTextExtent("X", &x, &y); + statusBar->SetSize(-1, -1, 100, height); + } - int height = (int)( (y * 1.1) + 2* statusBar->GetBorderY()); - statusBar->SetSize(-1, -1, 100, height); - statusBar->SetFieldsCount(number); - return statusBar; + statusBar->SetFieldsCount(number); + return statusBar; } wxStatusBar* wxFrame::CreateStatusBar(int number, long style, wxWindowID id, @@ -392,7 +424,7 @@ void wxFrame::DetachMenuBar() { if (m_frameMenuBar) { -// Fix this in wxMenuBar m_frameMenuBar->Detach(); + m_frameMenuBar->Detach(); m_frameMenuBar = NULL; } } @@ -405,12 +437,12 @@ void wxFrame::SetMenuBar(wxMenuBar *menu_bar) return; } -// Fix this in wxMenuBar wxCHECK_RET( !menu_bar->GetFrame(), wxT("this menubar is already attached") ); + wxCHECK_RET( !menu_bar->GetFrame(), wxT("this menubar is already attached") ); if (m_frameMenuBar) delete m_frameMenuBar; -// Fix this in wxMenuBar m_hMenu = menu_bar->Create(); + m_hMenu = menu_bar->Create(); if ( !m_hMenu ) return; @@ -418,13 +450,14 @@ void wxFrame::SetMenuBar(wxMenuBar *menu_bar) InternalSetMenuBar(); m_frameMenuBar = menu_bar; -// Fix this in wxMenuBar menu_bar->Attach(this); + menu_bar->Attach(this); } void wxFrame::InternalSetMenuBar() { // TODO: -/* if ( !::SetMenu(GetHwnd(), (HMENU)m_hMenu) ) +/* + if ( !::SetMenu(GetHwnd(), (HMENU)m_hMenu) ) { wxLogLastError("SetMenu"); } @@ -461,6 +494,7 @@ bool wxFrame::OS2Create(int id, wxWindow *parent, const wxChar *wclass, wxWindow // If child windows aren't properly drawn initially, WS_CLIPCHILDREN // could be the culprit. But without it, you can get a lot of flicker. + // TODO: /* DWORD msflags = 0; @@ -513,7 +547,7 @@ bool wxFrame::OS2Create(int id, wxWindow *parent, const wxChar *wclass, wxWindow extendedStyle |= WS_EX_TOPMOST; m_iconized = FALSE; - if ( !wxWindow::OS2Create(id, parent, wclass, wx_win, title, x, y, width, height, + if ( !wxWindow::MSWCreate(id, parent, wclass, wx_win, title, x, y, width, height, msflags, NULL, extendedStyle) ) return FALSE; @@ -521,8 +555,10 @@ bool wxFrame::OS2Create(int id, wxWindow *parent, const wxChar *wclass, wxWindow // style instead of WS_OVERLAPPED if (width > -1 && height > -1) ::PostMessage(GetHwnd(), WM_SIZE, SIZE_RESTORED, MAKELPARAM(width, height)); -*/ + return TRUE; +*/ + return FALSE; } // Default resizing behaviour - if only ONE subwindow, resize to client @@ -625,13 +661,10 @@ void wxFrame::OnMenuHighlight(wxMenuEvent& event) if ( menuId != -1 ) { wxMenuBar *menuBar = GetMenuBar(); -// Fix this in wxMenuBar -/* if (menuBar && menuBar->FindItem(menuId)) { help = menuBar->GetHelpString(menuId); } -*/ } // set status text even if the string is empty - this will at @@ -670,7 +703,6 @@ bool wxFrame::ProcessCommand(int id) wxPoint wxFrame::GetClientAreaOrigin() const { wxPoint pt(0, 0); -#if wxUSE_TOOLBAR if (GetToolBar()) { int w, h; @@ -685,13 +717,12 @@ wxPoint wxFrame::GetClientAreaOrigin() const pt.y += h; } } -#endif return pt; } void wxFrame::DoScreenToClient(int *x, int *y) const { - wxWindow::ScreenToClient(x, y); + wxWindow::DoScreenToClient(x, y); // We may be faking the client origin. // So a window that's really at (0, 30) may appear @@ -739,14 +770,16 @@ wxToolBar* wxFrame::OnCreateToolBar(long style, wxWindowID id, const wxString& n void wxFrame::PositionToolBar() { +// TODO: +/* RECT rect; -// TODO: ::GetClientRect(GetHwnd(), &rect); + ::GetClientRect(GetHwnd(), &rect); if ( GetStatusBar() ) { int statusX, statusY; GetStatusBar()->GetClientSize(&statusX, &statusY); -// TODO: rect.bottom -= statusY; + rect.bottom -= statusY; } if (GetToolBar()) @@ -757,14 +790,15 @@ void wxFrame::PositionToolBar() if (GetToolBar()->GetWindowStyleFlag() & wxTB_VERTICAL) { // Use the 'real' MSW position - GetToolBar()->SetSize(0, 0, tw, rect.yBottom, wxSIZE_NO_ADJUSTMENTS); + GetToolBar()->SetSize(0, 0, tw, rect.bottom, wxSIZE_NO_ADJUSTMENTS); } else { // Use the 'real' MSW position - GetToolBar()->SetSize(0, 0, rect.xRight, th, wxSIZE_NO_ADJUSTMENTS); + GetToolBar()->SetSize(0, 0, rect.right, th, wxSIZE_NO_ADJUSTMENTS); } } +*/ } #endif // wxUSE_TOOLBAR @@ -810,17 +844,16 @@ void wxFrame::MakeModal(bool modal) bool wxFrame::OS2TranslateMessage(WXMSG* pMsg) { -// TODO: if ( wxWindow::OS2TranslateMessage(pMsg) ) -// return TRUE; + if ( wxWindow::OS2TranslateMessage(pMsg) ) + return TRUE; // try the menu bar accels wxMenuBar *menuBar = GetMenuBar(); if ( !menuBar ) return FALSE; -// TODO: const wxAcceleratorTable& acceleratorTable = menuBar->GetAccelTable(); -// return acceleratorTable.Translate(this, pMsg); - return TRUE; + const wxAcceleratorTable& acceleratorTable = menuBar->GetAccelTable(); + return acceleratorTable.Translate(this, pMsg); } // --------------------------------------------------------------------------- @@ -829,60 +862,64 @@ bool wxFrame::OS2TranslateMessage(WXMSG* pMsg) bool wxFrame::HandlePaint() { - RECT rect; // TODO: -// if ( GetUpdateRect(GetHwnd(), &rect, FALSE) ) -// { -// if ( m_iconized ) -// { -// HICON hIcon = m_icon.Ok() ? GetHiconOf(m_icon) -// : (HICON)m_defaultIcon; -// +/* + RECT rect; + if ( GetUpdateRect(GetHwnd(), &rect, FALSE) ) + { + if ( m_iconized ) + { + HICON hIcon = m_icon.Ok() ? GetHiconOf(m_icon) + : (HICON)m_defaultIcon; + // Hold a pointer to the dc so long as the OnPaint() message // is being processed -// -// PAINTSTRUCT ps; -// HDC hdc = ::BeginPaint(GetHwnd(), &ps); -// // Erase background before painting or we get white background -// OS2DefWindowProc(WM_ICONERASEBKGND, (WORD)(LONG)ps.hdc, 0L); -// -// if ( hIcon ) -// { -// RECT rect; -// TODO: ::GetClientRect(GetHwnd(), &rect); + PAINTSTRUCT ps; + HDC hdc = ::BeginPaint(GetHwnd(), &ps); + + // Erase background before painting or we get white background + MSWDefWindowProc(WM_ICONERASEBKGND, (WORD)(LONG)ps.hdc, 0L); + + if ( hIcon ) + { + RECT rect; + ::GetClientRect(GetHwnd(), &rect); // FIXME: why hardcoded? -// static const int icon_width = 32; -// static const int icon_height = 32; -// -// int icon_x = (int)((rect.right - icon_width)/2); -// int icon_y = (int)((rect.bottom - icon_height)/2); -// -// TODO: ::DrawIcon(hdc, icon_x, icon_y, hIcon); -// } -// -// TODO: ::EndPaint(GetHwnd(), &ps); -// -// return TRUE; -// } -// else -// { -// return wxWindow::HandlePaint(); -// } -// } -// else -// { -// // nothing to paint - processed -// return TRUE; -// } - return TRUE; + static const int icon_width = 32; + static const int icon_height = 32; + + int icon_x = (int)((rect.right - icon_width)/2); + int icon_y = (int)((rect.bottom - icon_height)/2); + + ::DrawIcon(hdc, icon_x, icon_y, hIcon); + } + + ::EndPaint(GetHwnd(), &ps); + + return TRUE; + } + else + { + return wxWindow::HandlePaint(); + } + } + else + { + // nothing to paint - processed + return TRUE; + } +*/ + return FALSE; } bool wxFrame::HandleSize(int x, int y, WXUINT id) { bool processed = FALSE; -/* switch ( id ) +// TODO: +/* + switch ( id ) { case SIZENORMAL: // only do it it if we were iconized before, otherwise resizing the @@ -910,10 +947,9 @@ bool wxFrame::HandleSize(int x, int y, WXUINT id) */ if ( !m_iconized ) { + // forward WM_SIZE to status bar control PositionStatusBar(); -#if wxUSE_TOOLBAR PositionToolBar(); -#endif wxSizeEvent event(wxSize(x, y), m_windowId); event.SetEventObject( this ); @@ -930,8 +966,7 @@ bool wxFrame::HandleCommand(WXWORD id, WXWORD cmd, WXHWND control) // In case it's e.g. a toolbar. wxWindow *win = wxFindWinFromHandle(control); if ( win ) -// TODO: return win->OS2Command(cmd, id); - return TRUE; + return win->OS2Command(cmd, id); } // handle here commands from menus and accelerators @@ -942,8 +977,7 @@ bool wxFrame::HandleCommand(WXWORD id, WXWORD cmd, WXHWND control) wxMenu *popupMenu = wxCurrentPopupMenu; wxCurrentPopupMenu = NULL; -// return popupMenu->OS2Command(cmd, id); - return TRUE; + return popupMenu->OS2Command(cmd, id); } if ( ProcessCommand(id) ) @@ -963,6 +997,7 @@ bool wxFrame::HandleMenuSelect(WXWORD nItem, WXWORD flags, WXHMENU hMenu) // menu was removed from screen item = -1; } +// TODO: /* else if ( !(flags & MF_POPUP) && !(flags & MF_SEPARATOR) ) { diff --git a/src/os2/makefile.va b/src/os2/makefile.va index d2f1609f22..6b9f7dcff6 100644 --- a/src/os2/makefile.va +++ b/src/os2/makefile.va @@ -659,9 +659,9 @@ $(COMLIBOBJS2): copy ..\common\$D\valgen.obj copy ..\common\$D\validate.obj copy ..\common\$D\valtext.obj - copy ..\common\$D\variant.obj $(COMLIBOBJS3): + copy ..\common\$D\variant.obj copy ..\common\$D\wfstream.obj copy ..\common\$D\wincmn.obj copy ..\common\$D\wxchar.obj diff --git a/src/os2/toolbar.cpp b/src/os2/toolbar.cpp index 922a55e998..4ed0456193 100644 --- a/src/os2/toolbar.cpp +++ b/src/os2/toolbar.cpp @@ -16,7 +16,7 @@ #include "wx/wx.h" #endif -#if wxUSE_BUTTONBAR && wxUSE_TOOLBAR && defined(__WIN95__) +#if wxUSE_BUTTONBAR && wxUSE_TOOLBAR #include "malloc.h" #define INCL_PM @@ -157,14 +157,16 @@ bool wxToolBar::Create(wxWindow *parent, // Toolbar-specific initialisation ::SendMessage(hWndToolbar, TB_BUTTONSTRUCTSIZE, (WPARAM)sizeof(TBBUTTON), (LPARAM)0); -*/ m_hWnd = (WXHWND) hWndToolbar; + if (parent) parent->AddChild(this); SubclassWin((WXHWND)hWndToolbar); return TRUE; +*/ + return FALSE; } wxToolBar::~wxToolBar() @@ -553,6 +555,8 @@ void wxToolBar::OnMouseEvent(wxMouseEvent& event) void wxMapBitmap(HBITMAP hBitmap, int width, int height) { +// TODO: +/* COLORMAP ColorMap[] = { {BGR_BUTTONTEXT, COLOR_BTNTEXT}, // black {BGR_BUTTONSHADOW, COLOR_BTNSHADOW}, // dark grey @@ -581,29 +585,26 @@ void wxMapBitmap(HBITMAP hBitmap, int width, int height) { for ( j = 0; j < height; j++) { -// COLORREF pixel = ::GetPixel(hdcMem, i, j); -/* + COLORREF pixel = ::GetPixel(hdcMem, i, j); BYTE red = GetRValue(pixel); BYTE green = GetGValue(pixel); BYTE blue = GetBValue(pixel); -*/ for ( k = 0; k < NUM_MAPS; k ++) { if ( ColorMap[k].from == pixel ) { -// /* COLORREF actualPixel = */ ::SetPixel(hdcMem, i, j, ColorMap[k].to); + COLORREF actualPixel = ::SetPixel(hdcMem, i, j, ColorMap[k].to); break; } } } } - -// SelectObject(hdcMem, hbmOld); -// DeleteObject(hdcMem); + SelectObject(hdcMem, hbmOld); + DeleteObject(hdcMem); } - +*/ } // Some experiments...