X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2bda0e173844e8e0f8acf4e8ad8b5c26e5c6fe5d..c7ce8392e0fa752d121000b7732c8f4ac3e3088d:/src/msw/minifram.cpp diff --git a/src/msw/minifram.cpp b/src/msw/minifram.cpp index ca7b86bea6..e76e9f15de 100644 --- a/src/msw/minifram.cpp +++ b/src/msw/minifram.cpp @@ -6,7 +6,7 @@ // Created: 04/01/98 // RCS-ID: $Id$ // Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license +// Licence: wxWindows license ///////////////////////////////////////////////////////////////////////////// #ifdef __GNUG__ @@ -20,24 +20,38 @@ #pragma hdrstop #endif +#include "wx/window.h" +#include "wx/msw/private.h" + #ifndef WX_PRECOMP #include "wx/setup.h" +#include "wx/event.h" #include "wx/app.h" #include "wx/utils.h" #endif -#if USE_ITSY_BITSY + +#ifdef __WIN32__ #include "wx/minifram.h" -#include "wx/msw/private.h" -#ifdef __GNUWIN32__ -#include "wx/msw/gnuwin32/extra.h" +IMPLEMENT_DYNAMIC_CLASS(wxMiniFrame, wxFrame) + + +#else + + +#if wxUSE_ITSY_BITSY + +#include "wx/minifram.h" + +#ifndef __TWIN32__ + #ifdef __GNUWIN32_OLD__ + #include "wx/msw/gnuwin32/extra.h" + #endif #endif -#if !USE_SHARED_LIBRARY IMPLEMENT_DYNAMIC_CLASS(wxMiniFrame, wxFrame) -#endif long wxMiniFrame::MSWDefWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam) { @@ -45,7 +59,7 @@ long wxMiniFrame::MSWDefWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam (GetWindowStyleFlag() & wxTINY_CAPTION_VERT)) return ::ibDefWindowProc((HWND) GetHWND(), nMsg, wParam, lParam); else if ( m_oldWndProc ) - return ::CallWindowProc(CASTWNDPROC (FARPROC) m_oldWndProc, (HWND) GetHWND(), (UINT) nMsg, (WPARAM) wParam, (LPARAM) lParam); + return ::CallWindowProc(CASTWNDPROC m_oldWndProc, (HWND) GetHWND(), (UINT) nMsg, (WPARAM) wParam, (LPARAM) lParam); else return ::DefWindowProc((HWND) GetHWND(), nMsg, wParam, lParam); } @@ -83,12 +97,12 @@ wxMiniFrame::~wxMiniFrame(void) // ////////////////////////////////////////////////////////////////////////// -#include -#include +#include "wx/window.h" +#include "wx/msw/private.h" #include -#ifndef __WATCOMC__ +#if !defined( __WATCOMC__ ) && !defined( __MWERKS__ ) && !defined(__SALFORDC__) #include #endif @@ -161,13 +175,13 @@ wxMiniFrame::~wxMiniFrame(void) #define HASCAPTION( hwnd ) (TestWinStyle( hwnd, IBS_VERTCAPTION ) ||\ TestWinStyle( hwnd, IBS_HORZCAPTION )) -#define SETCAPTIONSIZE(h,i) (UINT)SetProp(h,"ibSize",(HANDLE)i) -#define GETCAPTIONSIZE(h) (UINT)GetProp(h,"ibSize") -#define FREECAPTIONSIZE(h) RemoveProp(h,"ibSize") +#define SETCAPTIONSIZE(h,i) (UINT)SetProp(h,wxT("ibSize"),(HANDLE)i) +#define GETCAPTIONSIZE(h) (UINT)GetProp(h,wxT("ibSize")) +#define FREECAPTIONSIZE(h) RemoveProp(h,wxT("ibSize")) -#define SETMENUWASUPFLAG(h,i) (UINT)SetProp(h,"ibFlag",(HANDLE)i) -#define GETMENUWASUPFLAG(h) (UINT)GetProp(h,"ibFlag") -#define FREEMENUWASUPFLAG(h) RemoveProp(h,"ibFlag") +#define SETMENUWASUPFLAG(h,i) (UINT)SetProp(h,wxT("ibFlag"),(HANDLE)i) +#define GETMENUWASUPFLAG(h) (UINT)GetProp(h,wxT("ibFlag")) +#define FREEMENUWASUPFLAG(h) RemoveProp(h,wxT("ibFlag")) ///////////////////////////////////////////////////////////////////// // Little known fact: @@ -177,14 +191,14 @@ wxMiniFrame::~wxMiniFrame(void) // Unfortunately there is a bug in the Windows 3.0 8514 driver // in using ExtTextOut() to a memory DC. If you are drawing // to an off screen bitmap, then blitting that bitmap to the -// display, do not #define USE_EXTTEXTOUT below. +// display, do not #define wxUSE_EXTTEXTOUT below. // // The following macro (DRAWFASTRECT) draws a filled rectangle // with no border and a solid color. It uses the current back- // ground color as the fill color. ////////////////////////////////////////////////////////////////////// -#define USE_EXTTEXTOUT -#ifdef USE_EXTTEXTOUT +#define wxUSE_EXTTEXTOUT +#ifdef wxUSE_EXTTEXTOUT #define DRAWFASTRECT(hdc,lprc) ExtTextOut(hdc,0,0,ETO_OPAQUE,lprc,NULL,0,NULL) #else #define DRAWFASTRECT(hdc,lprc) {\ @@ -376,12 +390,19 @@ LRESULT WINAPI ibDefWindowProc( HWND hWnd, UINT uiMsg, WPARAM wParam, LPARAM lPa cx = GetSystemMetrics( SM_CXFRAME ) ; cy = GetSystemMetrics( SM_CYFRAME ) ; } + else if (TestWinStyle(hWnd, WS_BORDER )) + { + cx = GetSystemMetrics( SM_CXBORDER ) ; + cy = GetSystemMetrics( SM_CYBORDER ) ; + } else - if (TestWinStyle(hWnd, WS_BORDER )) - { - cx = GetSystemMetrics( SM_CXBORDER ) ; - cy = GetSystemMetrics( SM_CYBORDER ) ; - } + { + // VZ: I don't know what should be here, but the vars must + // be inited! + wxFAIL_MSG(wxT("don't know how to initialize cx, cy")); + + cx = cy = 0; + } GetIconRect( hWnd, &rcMenu ) ; GetMinButtonRect( hWnd, &rcMin ) ; @@ -841,13 +862,13 @@ BOOL PASCAL DrawCaption( HDC hDC, HWND hWnd, LPRECT lprc, DRAWFASTRECT( hDC, &rc ) ; hbrCaption = CreateSolidBrush( rgbCaptionBG ) ; - hbrCaption = SelectObject( hDC, hbrCaption ) ; - SelectObject( hDC, GetStockObject( NULL_PEN ) ) ; + hbrCaption = (HBRUSH) SelectObject( hDC, hbrCaption ) ; + SelectObject( hDC, (HPEN) GetStockObject( NULL_PEN ) ) ; if (fVert) Rectangle( hDC, rcCap.left, rcCap.top, rcCap.right, rcCap.bottom + 1 ) ; else Rectangle( hDC, rcCap.left, rcCap.top, rcCap.right+1, rcCap.bottom ) ; - hbrCaption = SelectObject( hDC, hbrCaption ) ; + hbrCaption = (HBRUSH) SelectObject( hDC, hbrCaption ) ; DeleteObject( hbrCaption ) ; @@ -858,14 +879,15 @@ BOOL PASCAL DrawCaption( HDC hDC, HWND hWnd, LPRECT lprc, if (fWin31) { HFONT hFont ; - LPSTR lpsz ; + LPTSTR lpsz ; LOGFONT lf ; TEXTMETRIC tm ; int cx ; int cy ; SIZE Size ; - if ((lpsz = (char*)GlobalAllocPtr( GHND, ui + 2 ))) + lpsz = (wxChar*)GlobalAllocPtr( GHND, (ui + 2) * sizeof(wxChar) ); + if (lpsz) { UINT nBkMode ; @@ -888,7 +910,7 @@ BOOL PASCAL DrawCaption( HDC hDC, HWND hWnd, LPRECT lprc, { // Can only rotate true type fonts (well, ok, we could // try and use "modern"). - strcpy( lf.lfFaceName, "Arial" ) ; + wxStrcpy( lf.lfFaceName, wxT("Arial") ) ; lf.lfPitchAndFamily = FF_SWISS | 0x04; lf.lfEscapement = 900 ; @@ -901,7 +923,7 @@ BOOL PASCAL DrawCaption( HDC hDC, HWND hWnd, LPRECT lprc, lf.lfOrientation = 900 ; hFont = CreateFontIndirect( &lf ) ; - hFont = SelectObject( hDC, hFont ) ; + hFont = (HFONT) SelectObject( hDC, hFont ) ; GetTextExtentPoint( hDC, lpsz, ui, &Size ) ; cx = rcCap.bottom - ((rcCap.bottom - rcCap.top - Size.cx) / 2) ; @@ -920,7 +942,7 @@ BOOL PASCAL DrawCaption( HDC hDC, HWND hWnd, LPRECT lprc, lpsz, ui, NULL ) ; } - hFont = SelectObject( hDC, hFont ) ; + hFont = (HFONT) SelectObject( hDC, hFont ) ; DeleteObject( hFont ) ; } else @@ -931,7 +953,7 @@ BOOL PASCAL DrawCaption( HDC hDC, HWND hWnd, LPRECT lprc, lf.lfPitchAndFamily = FF_SWISS ; hFont = CreateFontIndirect( &lf ) ; - hFont = SelectObject( hDC, hFont ) ; + hFont = (HFONT) SelectObject( hDC, hFont ) ; GetTextExtentPoint( hDC, lpsz, ui, &Size ) ; cx = rcCap.left + ((rcCap.right - rcCap.left - Size.cx) / 2) ; @@ -945,7 +967,7 @@ BOOL PASCAL DrawCaption( HDC hDC, HWND hWnd, LPRECT lprc, ETO_CLIPPED, &rcCap, lpsz, ui, NULL ) ; - hFont = SelectObject( hDC, hFont ) ; + hFont = (HFONT) SelectObject( hDC, hFont ) ; DeleteObject( hFont ) ; } @@ -954,7 +976,11 @@ BOOL PASCAL DrawCaption( HDC hDC, HWND hWnd, LPRECT lprc, rgbText = SetTextColor( hDC, rgbText ) ; SetBkMode( hDC, nBkMode ) ; +#ifdef __WIN16__ + GlobalFreePtr( (unsigned int)(DWORD) lpsz ) ; +#else GlobalFreePtr( lpsz ) ; +#endif } } @@ -1074,7 +1100,8 @@ BOOL PASCAL DoMenu( HWND hWnd ) if (!TestWinStyle(hWnd, WS_SYSMENU)) return FALSE ; - if ((hDC = GetWindowDC( hWnd ))) + hDC = GetWindowDC( hWnd ); + if (hDC) { // Invert the icon // @@ -1589,4 +1616,6 @@ void PASCAL DrawArrow( HDC hdc, LPRECT lprc, UINT uiStyle ) } // DrawArrow() -#endif // USE_ITSY_BITSY +#endif // wxUSE_ITSY_BITSY + +#endif // __WIN32__