X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c1066cdf62de692cec3b61f68da35263aa17b1c0..3c1866e88fb77fc7e0b349cc15f6cebf0f727a9d:/src/msw/minifram.cpp diff --git a/src/msw/minifram.cpp b/src/msw/minifram.cpp index d792e4ec4a..57464f4e18 100644 --- a/src/msw/minifram.cpp +++ b/src/msw/minifram.cpp @@ -20,20 +20,40 @@ #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" + +#if !USE_SHARED_LIBRARY +IMPLEMENT_DYNAMIC_CLASS(wxMiniFrame, wxFrame) +#endif + + +#else + + +#if wxUSE_ITSY_BITSY #include "wx/minifram.h" -#include "wx/msw/private.h" +#ifndef __TWIN32__ #ifdef __GNUWIN32__ +#ifndef wxUSE_NORLANDER_HEADERS #include "wx/msw/gnuwin32/extra.h" #endif +#endif +#endif #if !USE_SHARED_LIBRARY IMPLEMENT_DYNAMIC_CLASS(wxMiniFrame, wxFrame) @@ -45,7 +65,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((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 +103,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 +181,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 +197,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 +396,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 ) ; @@ -858,14 +885,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 +916,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 ; @@ -954,7 +982,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 +1106,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 +1622,6 @@ void PASCAL DrawArrow( HDC hdc, LPRECT lprc, UINT uiStyle ) } // DrawArrow() -#endif // USE_ITSY_BITSY +#endif // wxUSE_ITSY_BITSY + +#endif // __WIN32__