Changes to DC
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_2_BRANCH@7332 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -78,148 +78,258 @@ public:
|
||||
// implement base class pure virtuals
|
||||
// ----------------------------------
|
||||
|
||||
virtual void Clear();
|
||||
virtual void Clear(void);
|
||||
|
||||
virtual bool StartDoc(const wxString& message);
|
||||
virtual void EndDoc();
|
||||
virtual bool StartDoc(const wxString& rsMessage);
|
||||
virtual void EndDoc(void);
|
||||
|
||||
virtual void StartPage();
|
||||
virtual void EndPage();
|
||||
virtual void StartPage(void);
|
||||
virtual void EndPage(void);
|
||||
|
||||
virtual void SetFont(const wxFont& font);
|
||||
virtual void SetPen(const wxPen& pen);
|
||||
virtual void SetBrush(const wxBrush& brush);
|
||||
virtual void SetBackground(const wxBrush& brush);
|
||||
virtual void SetBackgroundMode(int mode);
|
||||
virtual void SetPalette(const wxPalette& palette);
|
||||
virtual void SetFont(const wxFont& rFont);
|
||||
virtual void SetPen(const wxPen& rPen);
|
||||
virtual void SetBrush(const wxBrush& rBrush);
|
||||
virtual void SetBackground(const wxBrush& rBrush);
|
||||
virtual void SetBackgroundMode(int nMode);
|
||||
virtual void SetPalette(const wxPalette& rPalette);
|
||||
|
||||
virtual void DestroyClippingRegion();
|
||||
virtual void DestroyClippingRegion(void);
|
||||
|
||||
virtual wxCoord GetCharHeight() const;
|
||||
virtual wxCoord GetCharWidth() const;
|
||||
virtual void DoGetTextExtent(const wxString& string,
|
||||
wxCoord *x, wxCoord *y,
|
||||
wxCoord *descent = NULL,
|
||||
wxCoord *externalLeading = NULL,
|
||||
wxFont *theFont = NULL) const;
|
||||
virtual wxCoord GetCharHeight(void) const;
|
||||
virtual wxCoord GetCharWidth(void) const;
|
||||
virtual void DoGetTextExtent( const wxString& rsString
|
||||
,wxCoord* pX
|
||||
,wxCoord* pY
|
||||
,wxCoord* pDescent = NULL
|
||||
,wxCoord* pExternalLeading = NULL
|
||||
,wxFont* pTheFont = NULL
|
||||
) const;
|
||||
virtual bool CanDrawBitmap(void) const;
|
||||
virtual bool CanGetTextExtent(void) const;
|
||||
virtual int GetDepth(void) const;
|
||||
virtual wxSize GetPPI(void) const;
|
||||
|
||||
virtual bool CanDrawBitmap() const;
|
||||
virtual bool CanGetTextExtent() const;
|
||||
virtual int GetDepth() const;
|
||||
virtual wxSize GetPPI() const;
|
||||
|
||||
virtual void SetMapMode(int mode);
|
||||
virtual void SetUserScale(double x, double y);
|
||||
virtual void SetSystemScale(double x, double y);
|
||||
virtual void SetLogicalScale(double x, double y);
|
||||
virtual void SetLogicalOrigin(wxCoord x, wxCoord y);
|
||||
virtual void SetDeviceOrigin(wxCoord x, wxCoord y);
|
||||
virtual void SetAxisOrientation(bool xLeftRight, bool yBottomUp);
|
||||
virtual void SetLogicalFunction(int function);
|
||||
virtual void SetMapMode(int nMode);
|
||||
virtual void SetUserScale( double dX
|
||||
,double dY
|
||||
);
|
||||
virtual void SetSystemScale( double dX
|
||||
,double dY
|
||||
);
|
||||
virtual void SetLogicalScale( double dX
|
||||
,double dY
|
||||
);
|
||||
virtual void SetLogicalOrigin( wxCoord vX
|
||||
,wxCoord vY
|
||||
);
|
||||
virtual void SetDeviceOrigin( wxCoord vX
|
||||
,wxCoord vY
|
||||
);
|
||||
virtual void SetAxisOrientation( bool bXLeftRight
|
||||
,bool bYBottomUp
|
||||
);
|
||||
virtual void SetLogicalFunction(int nFunction);
|
||||
|
||||
// implementation from now on
|
||||
// --------------------------
|
||||
|
||||
virtual void SetRop(WXHDC cdc);
|
||||
virtual void DoClipping(WXHDC cdc);
|
||||
virtual void SelectOldObjects(WXHDC dc);
|
||||
virtual void SetRop(WXHDC hCdc);
|
||||
virtual void SelectOldObjects(WXHDC hDc);
|
||||
|
||||
wxWindow *GetWindow() const { return m_canvas; }
|
||||
void SetWindow(wxWindow *win) { m_canvas = win; }
|
||||
wxWindow* GetWindow(void) const { return m_pCanvas; }
|
||||
void SetWindow(wxWindow* pWin) { m_pCanvas = pWin; }
|
||||
|
||||
WXHDC GetHDC() const { return m_hDC; }
|
||||
void SetHDC(WXHDC dc, bool bOwnsDC = FALSE)
|
||||
WXHDC GetHDC(void) const { return m_hDC; }
|
||||
void SetHDC( WXHDC hDc
|
||||
,bool bOwnsDC = FALSE
|
||||
)
|
||||
{
|
||||
m_hDC = dc;
|
||||
m_hDC = hDc;
|
||||
m_bOwnsDC = bOwnsDC;
|
||||
}
|
||||
|
||||
const wxBitmap& GetSelectedBitmap(void) const { return m_vSelectedBitmap; }
|
||||
wxBitmap& GetSelectedBitmap(void) { return m_vSelectedBitmap; }
|
||||
|
||||
protected:
|
||||
virtual void DoFloodFill(wxCoord x, wxCoord y, const wxColour& col,
|
||||
int style = wxFLOOD_SURFACE);
|
||||
virtual void DoFloodFill( wxCoord vX
|
||||
,wxCoord vY
|
||||
,const wxColour& rCol
|
||||
,int nStyle = wxFLOOD_SURFACE
|
||||
);
|
||||
|
||||
virtual bool DoGetPixel(wxCoord x, wxCoord y, wxColour *col) const;
|
||||
virtual bool DoGetPixel( wxCoord vX
|
||||
,wxCoord vY
|
||||
,wxColour* pCol
|
||||
) const;
|
||||
|
||||
virtual void DoDrawPoint(wxCoord x, wxCoord y);
|
||||
virtual void DoDrawLine(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2);
|
||||
virtual void DoDrawPoint( wxCoord vX
|
||||
,wxCoord vY
|
||||
);
|
||||
virtual void DoDrawLine( wxCoord vX1
|
||||
,wxCoord vY1
|
||||
,wxCoord vX2
|
||||
,wxCoord vY2
|
||||
);
|
||||
|
||||
virtual void DoDrawArc(wxCoord x1, wxCoord y1,
|
||||
wxCoord x2, wxCoord y2,
|
||||
wxCoord xc, wxCoord yc);
|
||||
virtual void DoDrawEllipticArc(wxCoord x, wxCoord y, wxCoord w, wxCoord h,
|
||||
double sa, double ea);
|
||||
virtual void DoDrawArc( wxCoord vX1
|
||||
,wxCoord vY1
|
||||
,wxCoord vX2
|
||||
,wxCoord vY2
|
||||
,wxCoord vXc
|
||||
,wxCoord vYc
|
||||
);
|
||||
virtual void DoDrawCheckMark( wxCoord vX
|
||||
,wxCoord vY
|
||||
,wxCoord vWidth
|
||||
,wxCoord vHeight
|
||||
);
|
||||
virtual void DoDrawEllipticArc( wxCoord vX
|
||||
,wxCoord vY
|
||||
,wxCoord vW
|
||||
,wxCoord vH
|
||||
,double dSa
|
||||
,double dEa
|
||||
);
|
||||
|
||||
virtual void DoDrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height);
|
||||
virtual void DoDrawRoundedRectangle(wxCoord x, wxCoord y,
|
||||
wxCoord width, wxCoord height,
|
||||
double radius);
|
||||
virtual void DoDrawEllipse(wxCoord x, wxCoord y, wxCoord width, wxCoord height);
|
||||
virtual void DoDrawRectangle( wxCoord vX
|
||||
,wxCoord vY
|
||||
,wxCoord vWidth
|
||||
,wxCoord vHeight
|
||||
);
|
||||
virtual void DoDrawRoundedRectangle( wxCoord vX
|
||||
,wxCoord vY
|
||||
,wxCoord vWidth
|
||||
,wxCoord vHeight
|
||||
,double dRadius
|
||||
);
|
||||
virtual void DoDrawEllipse( wxCoord vX
|
||||
,wxCoord vY
|
||||
,wxCoord vWidth
|
||||
,wxCoord vHeight
|
||||
);
|
||||
|
||||
virtual void DoCrossHair(wxCoord x, wxCoord y);
|
||||
virtual void DoCrossHair( wxCoord vX
|
||||
,wxCoord vY
|
||||
);
|
||||
|
||||
virtual void DoDrawIcon(const wxIcon& icon, wxCoord x, wxCoord y);
|
||||
virtual void DoDrawBitmap(const wxBitmap &bmp, wxCoord x, wxCoord y,
|
||||
bool useMask = FALSE);
|
||||
virtual void DoDrawIcon( const wxIcon& rIcon
|
||||
,wxCoord vX
|
||||
,wxCoord vY
|
||||
);
|
||||
virtual void DoDrawBitmap( const wxBitmap& rBmp
|
||||
,wxCoord vX
|
||||
,wxCoord vY
|
||||
,bool bUseMask = FALSE
|
||||
);
|
||||
|
||||
virtual void DoDrawText(const wxString& text, wxCoord x, wxCoord y);
|
||||
virtual void DoDrawRotatedText(const wxString& text, wxCoord x, wxCoord y,
|
||||
double angle);
|
||||
virtual void DoDrawText( const wxString& rsText
|
||||
,wxCoord vX
|
||||
,wxCoord vY
|
||||
);
|
||||
virtual void DoDrawRotatedText( const wxString& rsText
|
||||
,wxCoord vX
|
||||
,wxCoord vY
|
||||
,double dAngle
|
||||
);
|
||||
|
||||
virtual bool DoBlit(wxCoord xdest, wxCoord ydest, wxCoord width, wxCoord height,
|
||||
wxDC *source, wxCoord xsrc, wxCoord ysrc,
|
||||
int rop = wxCOPY, bool useMask = FALSE);
|
||||
virtual bool DoBlit( wxCoord vXdest
|
||||
,wxCoord vYdest
|
||||
,wxCoord vWidth
|
||||
,wxCoord vHeight
|
||||
,wxDC* pSource
|
||||
,wxCoord vXsrc
|
||||
,wxCoord vYsrc
|
||||
,int nRop = wxCOPY
|
||||
,bool bUseMask = FALSE
|
||||
);
|
||||
|
||||
// this is gnarly - we can't even call this function DoSetClippingRegion()
|
||||
// because of virtual function hiding
|
||||
virtual void DoSetClippingRegionAsRegion(const wxRegion& region);
|
||||
virtual void DoSetClippingRegion(wxCoord x, wxCoord y,
|
||||
wxCoord width, wxCoord height);
|
||||
virtual void DoGetClippingRegion(wxCoord *x, wxCoord *y,
|
||||
wxCoord *width, wxCoord *height)
|
||||
virtual void DoSetClippingRegionAsRegion(const wxRegion& rRegion);
|
||||
virtual void DoSetClippingRegion( wxCoord vX
|
||||
,wxCoord vY
|
||||
,wxCoord vWidth
|
||||
,wxCoord vHeight
|
||||
);
|
||||
virtual void DoGetClippingRegion( wxCoord* pX
|
||||
,wxCoord* pY
|
||||
,wxCoord* pWidth
|
||||
,wxCoord* pHeight)
|
||||
{
|
||||
GetClippingBox(x, y, width, height);
|
||||
GetClippingBox( pX
|
||||
,pY
|
||||
,pWidth
|
||||
,pHeight
|
||||
);
|
||||
}
|
||||
|
||||
virtual void DoGetSize(int *width, int *height) const;
|
||||
virtual void DoGetSizeMM(int* width, int* height) const;
|
||||
virtual void DoGetSize( int* pWidth
|
||||
,int* pHeight
|
||||
) const;
|
||||
virtual void DoGetSizeMM( int* pWidth
|
||||
,int* pHeight
|
||||
) const;
|
||||
|
||||
virtual void DoDrawLines(int n, wxPoint points[],
|
||||
wxCoord xoffset, wxCoord yoffset);
|
||||
virtual void DoDrawPolygon(int n, wxPoint points[],
|
||||
wxCoord xoffset, wxCoord yoffset,
|
||||
int fillStyle = wxODDEVEN_RULE);
|
||||
virtual void DoDrawLines( int n
|
||||
,wxPoint vaPoints[]
|
||||
,wxCoord vXoffset
|
||||
,wxCoord yYoffset
|
||||
);
|
||||
virtual void DoDrawPolygon( int n
|
||||
,wxPoint vaPoints[]
|
||||
,wxCoord vXoffset
|
||||
,wxCoord vYoffset
|
||||
,int nFillStyle = wxODDEVEN_RULE
|
||||
);
|
||||
|
||||
#if wxUSE_SPLINES
|
||||
virtual void DoDrawSpline(wxList *points);
|
||||
virtual void DoDrawSpline(wxList* pPoints);
|
||||
#endif // wxUSE_SPLINES
|
||||
|
||||
// OS2-specific member variables
|
||||
int m_windowExtX;
|
||||
int m_windowExtY;
|
||||
//
|
||||
// common part of DoDrawText() and DoDrawRotatedText()
|
||||
//
|
||||
void DrawAnyText( const wxString& rsText
|
||||
,wxCoord vX
|
||||
,wxCoord vY
|
||||
);
|
||||
|
||||
// OS2-specific member variables ?? do we even need this under OS/2?
|
||||
int m_nWindowExtX;
|
||||
int m_nWindowExtY;
|
||||
|
||||
//
|
||||
// for use in some generic code
|
||||
//
|
||||
float m_scaleFactor;
|
||||
|
||||
//
|
||||
// the window associated with this DC (may be NULL)
|
||||
wxWindow *m_canvas;
|
||||
|
||||
wxBitmap m_selectedBitmap;
|
||||
//
|
||||
wxWindow* m_pCanvas;
|
||||
wxBitmap m_vSelectedBitmap;
|
||||
|
||||
//
|
||||
// TRUE => DeleteDC() in dtor, FALSE => only ReleaseDC() it
|
||||
bool m_bOwnsDC:1;
|
||||
//
|
||||
bool m_bOwnsDC:1;
|
||||
|
||||
//
|
||||
// our HDC and its usage count: we only free it when the usage count drops
|
||||
// to 0
|
||||
WXHDC m_hDC;
|
||||
int m_hDCCount;
|
||||
//
|
||||
WXHDC m_hDC;
|
||||
int m_nDCCount;
|
||||
|
||||
//
|
||||
// Store all old GDI objects when do a SelectObject, so we can select them
|
||||
// back in (this unselecting user's objects) so we can safely delete the
|
||||
// DC.
|
||||
WXHBITMAP m_oldBitmap;
|
||||
WXHPEN m_oldPen;
|
||||
WXHBRUSH m_oldBrush;
|
||||
WXHFONT m_oldFont;
|
||||
WXHPALETTE m_oldPalette;
|
||||
|
||||
float m_scaleFactor; // wxPSDC wants to have this. Will disappear.
|
||||
//
|
||||
WXHBITMAP m_hOldBitmap;
|
||||
WXHPEN m_hOldPen;
|
||||
WXHBRUSH m_hOldBrush;
|
||||
WXHFONT m_hOldFont;
|
||||
WXHPALETTE m_hOldPalette;
|
||||
};
|
||||
#endif
|
||||
// _WX_DC_H_
|
||||
|
@@ -42,6 +42,11 @@ static const int VIEWPORT_EXTENT = 1000;
|
||||
static const int MM_POINTS = 9;
|
||||
static const int MM_METRIC = 10;
|
||||
|
||||
// usually this is defined in math.h
|
||||
#ifndef M_PI
|
||||
static const double M_PI = 3.14159265358979323846;
|
||||
#endif // M_PI
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// private functions
|
||||
// ---------------------------------------------------------------------------
|
||||
|
@@ -82,14 +82,14 @@ static RECT g_paintStruct;
|
||||
|
||||
wxWindowDC::wxWindowDC()
|
||||
{
|
||||
m_canvas = NULL;
|
||||
m_pCanvas = NULL;
|
||||
}
|
||||
|
||||
wxWindowDC::wxWindowDC(wxWindow *the_canvas)
|
||||
{
|
||||
m_canvas = the_canvas;
|
||||
m_pCanvas = the_canvas;
|
||||
m_hDC = (WXHDC) ::WinOpenWindowDC(GetWinHwnd(the_canvas) );
|
||||
m_hDCCount++;
|
||||
m_nDCCount++;
|
||||
//
|
||||
// default under PM is that Window and Client DC's are the same
|
||||
// so we offer a separate Presentation Space to use for the
|
||||
@@ -103,12 +103,12 @@ wxWindowDC::wxWindowDC(wxWindow *the_canvas)
|
||||
);
|
||||
::GpiAssociate(m_hPS, NULLHANDLE);
|
||||
::GpiAssociate(m_hPS, m_hDC);
|
||||
SetBackground(wxBrush(m_canvas->GetBackgroundColour(), wxSOLID));
|
||||
SetBackground(wxBrush(m_pCanvas->GetBackgroundColour(), wxSOLID));
|
||||
}
|
||||
|
||||
wxWindowDC::~wxWindowDC()
|
||||
{
|
||||
if (m_canvas && m_hDC)
|
||||
if (m_pCanvas && m_hDC)
|
||||
{
|
||||
SelectOldObjects(m_hDC);
|
||||
|
||||
@@ -123,7 +123,7 @@ wxWindowDC::~wxWindowDC()
|
||||
m_hDC = NULLHANDLE;
|
||||
}
|
||||
|
||||
m_hDCCount--;
|
||||
m_nDCCount--;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
@@ -132,12 +132,12 @@ wxWindowDC::~wxWindowDC()
|
||||
|
||||
wxClientDC::wxClientDC()
|
||||
{
|
||||
m_canvas = NULL;
|
||||
m_pCanvas = NULL;
|
||||
}
|
||||
|
||||
wxClientDC::wxClientDC(wxWindow *the_canvas)
|
||||
{
|
||||
m_canvas = the_canvas;
|
||||
m_pCanvas = the_canvas;
|
||||
|
||||
//
|
||||
// default under PM is that Window and Client DC's are the same
|
||||
@@ -147,12 +147,12 @@ wxClientDC::wxClientDC(wxWindow *the_canvas)
|
||||
//
|
||||
// Default mode is BM_LEAVEALONE so we make no call Set the mix
|
||||
//
|
||||
SetBackground(wxBrush(m_canvas->GetBackgroundColour(), wxSOLID));
|
||||
SetBackground(wxBrush(m_pCanvas->GetBackgroundColour(), wxSOLID));
|
||||
}
|
||||
|
||||
wxClientDC::~wxClientDC()
|
||||
{
|
||||
if ( m_canvas && GetHdc() )
|
||||
if ( m_pCanvas && GetHdc() )
|
||||
{
|
||||
SelectOldObjects(m_hDC);
|
||||
|
||||
@@ -187,7 +187,7 @@ wxArrayDCInfo wxPaintDC::ms_cache;
|
||||
|
||||
wxPaintDC::wxPaintDC()
|
||||
{
|
||||
m_canvas = NULL;
|
||||
m_pCanvas = NULL;
|
||||
m_hDC = 0;
|
||||
}
|
||||
|
||||
@@ -204,7 +204,7 @@ wxPaintDC::wxPaintDC(wxWindow *canvas)
|
||||
}
|
||||
#endif // __WXDEBUG__
|
||||
|
||||
m_canvas = canvas;
|
||||
m_pCanvas = canvas;
|
||||
|
||||
// do we have a DC for this window in the cache?
|
||||
wxPaintDCInfo *info = FindInCache();
|
||||
@@ -215,10 +215,10 @@ wxPaintDC::wxPaintDC(wxWindow *canvas)
|
||||
}
|
||||
else // not in cache, create a new one
|
||||
{
|
||||
m_hDC = (WXHDC)::WinBeginPaint(GetWinHwnd(m_canvas), NULLHANDLE, &g_paintStruct);
|
||||
ms_cache.Add(new wxPaintDCInfo(m_canvas, this));
|
||||
m_hDC = (WXHDC)::WinBeginPaint(GetWinHwnd(m_pCanvas), NULLHANDLE, &g_paintStruct);
|
||||
ms_cache.Add(new wxPaintDCInfo(m_pCanvas, this));
|
||||
}
|
||||
SetBackground(wxBrush(m_canvas->GetBackgroundColour(), wxSOLID));
|
||||
SetBackground(wxBrush(m_pCanvas->GetBackgroundColour(), wxSOLID));
|
||||
}
|
||||
|
||||
wxPaintDC::~wxPaintDC()
|
||||
@@ -252,7 +252,7 @@ wxPaintDCInfo *wxPaintDC::FindInCache(size_t *index) const
|
||||
for ( size_t n = 0; n < nCache; n++ )
|
||||
{
|
||||
info = &ms_cache[n];
|
||||
if ( info->hwnd == m_canvas->GetHWND() )
|
||||
if ( info->hwnd == m_pCanvas->GetHWND() )
|
||||
{
|
||||
if ( index )
|
||||
*index = n;
|
||||
|
@@ -77,13 +77,13 @@ void wxMemoryDC::SelectObject( const wxBitmap& bitmap )
|
||||
|
||||
void wxMemoryDC::DoGetSize( int *width, int *height ) const
|
||||
{
|
||||
if (!m_selectedBitmap.Ok())
|
||||
if (!m_vSelectedBitmap.Ok())
|
||||
{
|
||||
*width = 0; *height = 0;
|
||||
return;
|
||||
}
|
||||
*width = m_selectedBitmap.GetWidth();
|
||||
*height = m_selectedBitmap.GetHeight();
|
||||
*width = m_vSelectedBitmap.GetWidth();
|
||||
*height = m_vSelectedBitmap.GetHeight();
|
||||
};
|
||||
|
||||
|
||||
|
@@ -469,17 +469,61 @@ wxStatusBar* wxFrame::OnCreateStatusBar(
|
||||
)
|
||||
{
|
||||
wxStatusBar* pStatusBar = NULL;
|
||||
SWP vSwp;
|
||||
ERRORID vError;
|
||||
wxString sError;
|
||||
|
||||
pStatusBar = wxFrameBase::OnCreateStatusBar( nNumber
|
||||
,lulStyle
|
||||
,vId
|
||||
,rName
|
||||
);
|
||||
//
|
||||
// The default parent set for the Statusbar is m_hWnd which, of course,
|
||||
// is the handle to the client window of the frame. We don't want that,
|
||||
// so we have to set the parent to actually be the Frame.
|
||||
//
|
||||
::WinSetParent(pStatusBar->GetHWND(), m_hFrame, FALSE);
|
||||
{
|
||||
vError = ::WinGetLastError(vHabmain);
|
||||
sError = wxPMErrorToStr(vError);
|
||||
wxLogError("Error setting parent for submenu. Error: %s\n", sError);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
//
|
||||
// Also we need to reset it positioning to enable the SHOW attribute
|
||||
//
|
||||
if (!::WinQueryWindowPos(pStatusBar->GetHWND(), &vSwp))
|
||||
{
|
||||
vError = ::WinGetLastError(vHabmain);
|
||||
sError = wxPMErrorToStr(vError);
|
||||
wxLogError("Error setting parent for submenu. Error: %s\n", sError);
|
||||
return NULL;
|
||||
}
|
||||
if (!::WinSetWindowPos( pStatusBar->GetHWND()
|
||||
,HWND_TOP
|
||||
,vSwp.cx
|
||||
,vSwp.cy
|
||||
,vSwp.x
|
||||
,vSwp.y
|
||||
,SWP_SIZE | SWP_MOVE | SWP_SHOW | SWP_ZORDER
|
||||
))
|
||||
{
|
||||
vError = ::WinGetLastError(vHabmain);
|
||||
sError = wxPMErrorToStr(vError);
|
||||
wxLogError("Error setting parent for submenu. Error: %s\n", sError);
|
||||
return NULL;
|
||||
}
|
||||
return pStatusBar;
|
||||
} // end of wxFrame::OnCreateStatusBar
|
||||
|
||||
void wxFrame::PositionStatusBar()
|
||||
{
|
||||
SWP vSwp;
|
||||
ERRORID vError;
|
||||
wxString sError;
|
||||
|
||||
//
|
||||
// Native status bar positions itself
|
||||
//
|
||||
@@ -509,6 +553,27 @@ void wxFrame::PositionStatusBar()
|
||||
,nWidth
|
||||
,nStatbarHeight
|
||||
);
|
||||
if (!::WinQueryWindowPos(m_frameStatusBar->GetHWND(), &vSwp))
|
||||
{
|
||||
vError = ::WinGetLastError(vHabmain);
|
||||
sError = wxPMErrorToStr(vError);
|
||||
wxLogError("Error setting parent for submenu. Error: %s\n", sError);
|
||||
return;
|
||||
}
|
||||
if (!::WinSetWindowPos( m_frameStatusBar->GetHWND()
|
||||
,HWND_TOP
|
||||
,nStatbarWidth
|
||||
,nStatbarHeight
|
||||
,vSwp.x
|
||||
,vSwp.y
|
||||
,SWP_SIZE | SWP_MOVE | SWP_SHOW | SWP_ZORDER
|
||||
))
|
||||
{
|
||||
vError = ::WinGetLastError(vHabmain);
|
||||
sError = wxPMErrorToStr(vError);
|
||||
wxLogError("Error setting parent for submenu. Error: %s\n", sError);
|
||||
return;
|
||||
}
|
||||
}
|
||||
} // end of wxFrame::PositionStatusBar
|
||||
#endif // wxUSE_STATUSBAR
|
||||
|
@@ -269,8 +269,8 @@ void wxMetafileDC::SetMapMode(int mode)
|
||||
break;
|
||||
}
|
||||
}
|
||||
m_windowExtX = 100;
|
||||
m_windowExtY = 100;
|
||||
m_nWindowExtX = 100;
|
||||
m_nWindowExtY = 100;
|
||||
}
|
||||
|
||||
#ifdef __WIN32__
|
||||
|
Reference in New Issue
Block a user