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
|
// implement base class pure virtuals
|
||||||
// ----------------------------------
|
// ----------------------------------
|
||||||
|
|
||||||
virtual void Clear();
|
virtual void Clear(void);
|
||||||
|
|
||||||
virtual bool StartDoc(const wxString& message);
|
virtual bool StartDoc(const wxString& rsMessage);
|
||||||
virtual void EndDoc();
|
virtual void EndDoc(void);
|
||||||
|
|
||||||
virtual void StartPage();
|
virtual void StartPage(void);
|
||||||
virtual void EndPage();
|
virtual void EndPage(void);
|
||||||
|
|
||||||
virtual void SetFont(const wxFont& font);
|
virtual void SetFont(const wxFont& rFont);
|
||||||
virtual void SetPen(const wxPen& pen);
|
virtual void SetPen(const wxPen& rPen);
|
||||||
virtual void SetBrush(const wxBrush& brush);
|
virtual void SetBrush(const wxBrush& rBrush);
|
||||||
virtual void SetBackground(const wxBrush& brush);
|
virtual void SetBackground(const wxBrush& rBrush);
|
||||||
virtual void SetBackgroundMode(int mode);
|
virtual void SetBackgroundMode(int nMode);
|
||||||
virtual void SetPalette(const wxPalette& palette);
|
virtual void SetPalette(const wxPalette& rPalette);
|
||||||
|
|
||||||
virtual void DestroyClippingRegion();
|
virtual void DestroyClippingRegion(void);
|
||||||
|
|
||||||
virtual wxCoord GetCharHeight() const;
|
virtual wxCoord GetCharHeight(void) const;
|
||||||
virtual wxCoord GetCharWidth() const;
|
virtual wxCoord GetCharWidth(void) const;
|
||||||
virtual void DoGetTextExtent(const wxString& string,
|
virtual void DoGetTextExtent( const wxString& rsString
|
||||||
wxCoord *x, wxCoord *y,
|
,wxCoord* pX
|
||||||
wxCoord *descent = NULL,
|
,wxCoord* pY
|
||||||
wxCoord *externalLeading = NULL,
|
,wxCoord* pDescent = NULL
|
||||||
wxFont *theFont = NULL) const;
|
,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 void SetMapMode(int nMode);
|
||||||
virtual bool CanGetTextExtent() const;
|
virtual void SetUserScale( double dX
|
||||||
virtual int GetDepth() const;
|
,double dY
|
||||||
virtual wxSize GetPPI() const;
|
);
|
||||||
|
virtual void SetSystemScale( double dX
|
||||||
virtual void SetMapMode(int mode);
|
,double dY
|
||||||
virtual void SetUserScale(double x, double y);
|
);
|
||||||
virtual void SetSystemScale(double x, double y);
|
virtual void SetLogicalScale( double dX
|
||||||
virtual void SetLogicalScale(double x, double y);
|
,double dY
|
||||||
virtual void SetLogicalOrigin(wxCoord x, wxCoord y);
|
);
|
||||||
virtual void SetDeviceOrigin(wxCoord x, wxCoord y);
|
virtual void SetLogicalOrigin( wxCoord vX
|
||||||
virtual void SetAxisOrientation(bool xLeftRight, bool yBottomUp);
|
,wxCoord vY
|
||||||
virtual void SetLogicalFunction(int function);
|
);
|
||||||
|
virtual void SetDeviceOrigin( wxCoord vX
|
||||||
|
,wxCoord vY
|
||||||
|
);
|
||||||
|
virtual void SetAxisOrientation( bool bXLeftRight
|
||||||
|
,bool bYBottomUp
|
||||||
|
);
|
||||||
|
virtual void SetLogicalFunction(int nFunction);
|
||||||
|
|
||||||
// implementation from now on
|
// implementation from now on
|
||||||
// --------------------------
|
// --------------------------
|
||||||
|
|
||||||
virtual void SetRop(WXHDC cdc);
|
virtual void SetRop(WXHDC hCdc);
|
||||||
virtual void DoClipping(WXHDC cdc);
|
virtual void SelectOldObjects(WXHDC hDc);
|
||||||
virtual void SelectOldObjects(WXHDC dc);
|
|
||||||
|
|
||||||
wxWindow *GetWindow() const { return m_canvas; }
|
wxWindow* GetWindow(void) const { return m_pCanvas; }
|
||||||
void SetWindow(wxWindow *win) { m_canvas = win; }
|
void SetWindow(wxWindow* pWin) { m_pCanvas = pWin; }
|
||||||
|
|
||||||
WXHDC GetHDC() const { return m_hDC; }
|
WXHDC GetHDC(void) const { return m_hDC; }
|
||||||
void SetHDC(WXHDC dc, bool bOwnsDC = FALSE)
|
void SetHDC( WXHDC hDc
|
||||||
|
,bool bOwnsDC = FALSE
|
||||||
|
)
|
||||||
{
|
{
|
||||||
m_hDC = dc;
|
m_hDC = hDc;
|
||||||
m_bOwnsDC = bOwnsDC;
|
m_bOwnsDC = bOwnsDC;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const wxBitmap& GetSelectedBitmap(void) const { return m_vSelectedBitmap; }
|
||||||
|
wxBitmap& GetSelectedBitmap(void) { return m_vSelectedBitmap; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void DoFloodFill(wxCoord x, wxCoord y, const wxColour& col,
|
virtual void DoFloodFill( wxCoord vX
|
||||||
int style = wxFLOOD_SURFACE);
|
,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 DoDrawPoint( wxCoord vX
|
||||||
virtual void DoDrawLine(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2);
|
,wxCoord vY
|
||||||
|
);
|
||||||
|
virtual void DoDrawLine( wxCoord vX1
|
||||||
|
,wxCoord vY1
|
||||||
|
,wxCoord vX2
|
||||||
|
,wxCoord vY2
|
||||||
|
);
|
||||||
|
|
||||||
virtual void DoDrawArc(wxCoord x1, wxCoord y1,
|
virtual void DoDrawArc( wxCoord vX1
|
||||||
wxCoord x2, wxCoord y2,
|
,wxCoord vY1
|
||||||
wxCoord xc, wxCoord yc);
|
,wxCoord vX2
|
||||||
virtual void DoDrawEllipticArc(wxCoord x, wxCoord y, wxCoord w, wxCoord h,
|
,wxCoord vY2
|
||||||
double sa, double ea);
|
,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 DoDrawRectangle( wxCoord vX
|
||||||
virtual void DoDrawRoundedRectangle(wxCoord x, wxCoord y,
|
,wxCoord vY
|
||||||
wxCoord width, wxCoord height,
|
,wxCoord vWidth
|
||||||
double radius);
|
,wxCoord vHeight
|
||||||
virtual void DoDrawEllipse(wxCoord x, wxCoord y, wxCoord width, wxCoord height);
|
);
|
||||||
|
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 DoDrawIcon( const wxIcon& rIcon
|
||||||
virtual void DoDrawBitmap(const wxBitmap &bmp, wxCoord x, wxCoord y,
|
,wxCoord vX
|
||||||
bool useMask = FALSE);
|
,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 DoDrawText( const wxString& rsText
|
||||||
virtual void DoDrawRotatedText(const wxString& text, wxCoord x, wxCoord y,
|
,wxCoord vX
|
||||||
double angle);
|
,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,
|
virtual bool DoBlit( wxCoord vXdest
|
||||||
wxDC *source, wxCoord xsrc, wxCoord ysrc,
|
,wxCoord vYdest
|
||||||
int rop = wxCOPY, bool useMask = FALSE);
|
,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()
|
virtual void DoSetClippingRegionAsRegion(const wxRegion& rRegion);
|
||||||
// because of virtual function hiding
|
virtual void DoSetClippingRegion( wxCoord vX
|
||||||
virtual void DoSetClippingRegionAsRegion(const wxRegion& region);
|
,wxCoord vY
|
||||||
virtual void DoSetClippingRegion(wxCoord x, wxCoord y,
|
,wxCoord vWidth
|
||||||
wxCoord width, wxCoord height);
|
,wxCoord vHeight
|
||||||
virtual void DoGetClippingRegion(wxCoord *x, wxCoord *y,
|
);
|
||||||
wxCoord *width, wxCoord *height)
|
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 DoGetSize( int* pWidth
|
||||||
virtual void DoGetSizeMM(int* width, int* height) const;
|
,int* pHeight
|
||||||
|
) const;
|
||||||
|
virtual void DoGetSizeMM( int* pWidth
|
||||||
|
,int* pHeight
|
||||||
|
) const;
|
||||||
|
|
||||||
virtual void DoDrawLines(int n, wxPoint points[],
|
virtual void DoDrawLines( int n
|
||||||
wxCoord xoffset, wxCoord yoffset);
|
,wxPoint vaPoints[]
|
||||||
virtual void DoDrawPolygon(int n, wxPoint points[],
|
,wxCoord vXoffset
|
||||||
wxCoord xoffset, wxCoord yoffset,
|
,wxCoord yYoffset
|
||||||
int fillStyle = wxODDEVEN_RULE);
|
);
|
||||||
|
virtual void DoDrawPolygon( int n
|
||||||
|
,wxPoint vaPoints[]
|
||||||
|
,wxCoord vXoffset
|
||||||
|
,wxCoord vYoffset
|
||||||
|
,int nFillStyle = wxODDEVEN_RULE
|
||||||
|
);
|
||||||
|
|
||||||
#if wxUSE_SPLINES
|
#if wxUSE_SPLINES
|
||||||
virtual void DoDrawSpline(wxList *points);
|
virtual void DoDrawSpline(wxList* pPoints);
|
||||||
#endif // wxUSE_SPLINES
|
#endif // wxUSE_SPLINES
|
||||||
|
|
||||||
// OS2-specific member variables
|
//
|
||||||
int m_windowExtX;
|
// common part of DoDrawText() and DoDrawRotatedText()
|
||||||
int m_windowExtY;
|
//
|
||||||
|
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)
|
// the window associated with this DC (may be NULL)
|
||||||
wxWindow *m_canvas;
|
//
|
||||||
|
wxWindow* m_pCanvas;
|
||||||
wxBitmap m_selectedBitmap;
|
wxBitmap m_vSelectedBitmap;
|
||||||
|
|
||||||
|
//
|
||||||
// TRUE => DeleteDC() in dtor, FALSE => only ReleaseDC() it
|
// 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
|
// our HDC and its usage count: we only free it when the usage count drops
|
||||||
// to 0
|
// 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
|
// 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
|
// back in (this unselecting user's objects) so we can safely delete the
|
||||||
// DC.
|
// DC.
|
||||||
WXHBITMAP m_oldBitmap;
|
//
|
||||||
WXHPEN m_oldPen;
|
WXHBITMAP m_hOldBitmap;
|
||||||
WXHBRUSH m_oldBrush;
|
WXHPEN m_hOldPen;
|
||||||
WXHFONT m_oldFont;
|
WXHBRUSH m_hOldBrush;
|
||||||
WXHPALETTE m_oldPalette;
|
WXHFONT m_hOldFont;
|
||||||
|
WXHPALETTE m_hOldPalette;
|
||||||
float m_scaleFactor; // wxPSDC wants to have this. Will disappear.
|
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
// _WX_DC_H_
|
// _WX_DC_H_
|
||||||
|
@@ -42,6 +42,11 @@ static const int VIEWPORT_EXTENT = 1000;
|
|||||||
static const int MM_POINTS = 9;
|
static const int MM_POINTS = 9;
|
||||||
static const int MM_METRIC = 10;
|
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
|
// private functions
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
|
@@ -82,14 +82,14 @@ static RECT g_paintStruct;
|
|||||||
|
|
||||||
wxWindowDC::wxWindowDC()
|
wxWindowDC::wxWindowDC()
|
||||||
{
|
{
|
||||||
m_canvas = NULL;
|
m_pCanvas = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxWindowDC::wxWindowDC(wxWindow *the_canvas)
|
wxWindowDC::wxWindowDC(wxWindow *the_canvas)
|
||||||
{
|
{
|
||||||
m_canvas = the_canvas;
|
m_pCanvas = the_canvas;
|
||||||
m_hDC = (WXHDC) ::WinOpenWindowDC(GetWinHwnd(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
|
// default under PM is that Window and Client DC's are the same
|
||||||
// so we offer a separate Presentation Space to use for the
|
// 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, NULLHANDLE);
|
||||||
::GpiAssociate(m_hPS, m_hDC);
|
::GpiAssociate(m_hPS, m_hDC);
|
||||||
SetBackground(wxBrush(m_canvas->GetBackgroundColour(), wxSOLID));
|
SetBackground(wxBrush(m_pCanvas->GetBackgroundColour(), wxSOLID));
|
||||||
}
|
}
|
||||||
|
|
||||||
wxWindowDC::~wxWindowDC()
|
wxWindowDC::~wxWindowDC()
|
||||||
{
|
{
|
||||||
if (m_canvas && m_hDC)
|
if (m_pCanvas && m_hDC)
|
||||||
{
|
{
|
||||||
SelectOldObjects(m_hDC);
|
SelectOldObjects(m_hDC);
|
||||||
|
|
||||||
@@ -123,7 +123,7 @@ wxWindowDC::~wxWindowDC()
|
|||||||
m_hDC = NULLHANDLE;
|
m_hDC = NULLHANDLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_hDCCount--;
|
m_nDCCount--;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
@@ -132,12 +132,12 @@ wxWindowDC::~wxWindowDC()
|
|||||||
|
|
||||||
wxClientDC::wxClientDC()
|
wxClientDC::wxClientDC()
|
||||||
{
|
{
|
||||||
m_canvas = NULL;
|
m_pCanvas = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxClientDC::wxClientDC(wxWindow *the_canvas)
|
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
|
// 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
|
// 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()
|
wxClientDC::~wxClientDC()
|
||||||
{
|
{
|
||||||
if ( m_canvas && GetHdc() )
|
if ( m_pCanvas && GetHdc() )
|
||||||
{
|
{
|
||||||
SelectOldObjects(m_hDC);
|
SelectOldObjects(m_hDC);
|
||||||
|
|
||||||
@@ -187,7 +187,7 @@ wxArrayDCInfo wxPaintDC::ms_cache;
|
|||||||
|
|
||||||
wxPaintDC::wxPaintDC()
|
wxPaintDC::wxPaintDC()
|
||||||
{
|
{
|
||||||
m_canvas = NULL;
|
m_pCanvas = NULL;
|
||||||
m_hDC = 0;
|
m_hDC = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -204,7 +204,7 @@ wxPaintDC::wxPaintDC(wxWindow *canvas)
|
|||||||
}
|
}
|
||||||
#endif // __WXDEBUG__
|
#endif // __WXDEBUG__
|
||||||
|
|
||||||
m_canvas = canvas;
|
m_pCanvas = canvas;
|
||||||
|
|
||||||
// do we have a DC for this window in the cache?
|
// do we have a DC for this window in the cache?
|
||||||
wxPaintDCInfo *info = FindInCache();
|
wxPaintDCInfo *info = FindInCache();
|
||||||
@@ -215,10 +215,10 @@ wxPaintDC::wxPaintDC(wxWindow *canvas)
|
|||||||
}
|
}
|
||||||
else // not in cache, create a new one
|
else // not in cache, create a new one
|
||||||
{
|
{
|
||||||
m_hDC = (WXHDC)::WinBeginPaint(GetWinHwnd(m_canvas), NULLHANDLE, &g_paintStruct);
|
m_hDC = (WXHDC)::WinBeginPaint(GetWinHwnd(m_pCanvas), NULLHANDLE, &g_paintStruct);
|
||||||
ms_cache.Add(new wxPaintDCInfo(m_canvas, this));
|
ms_cache.Add(new wxPaintDCInfo(m_pCanvas, this));
|
||||||
}
|
}
|
||||||
SetBackground(wxBrush(m_canvas->GetBackgroundColour(), wxSOLID));
|
SetBackground(wxBrush(m_pCanvas->GetBackgroundColour(), wxSOLID));
|
||||||
}
|
}
|
||||||
|
|
||||||
wxPaintDC::~wxPaintDC()
|
wxPaintDC::~wxPaintDC()
|
||||||
@@ -252,7 +252,7 @@ wxPaintDCInfo *wxPaintDC::FindInCache(size_t *index) const
|
|||||||
for ( size_t n = 0; n < nCache; n++ )
|
for ( size_t n = 0; n < nCache; n++ )
|
||||||
{
|
{
|
||||||
info = &ms_cache[n];
|
info = &ms_cache[n];
|
||||||
if ( info->hwnd == m_canvas->GetHWND() )
|
if ( info->hwnd == m_pCanvas->GetHWND() )
|
||||||
{
|
{
|
||||||
if ( index )
|
if ( index )
|
||||||
*index = n;
|
*index = n;
|
||||||
|
@@ -77,13 +77,13 @@ void wxMemoryDC::SelectObject( const wxBitmap& bitmap )
|
|||||||
|
|
||||||
void wxMemoryDC::DoGetSize( int *width, int *height ) const
|
void wxMemoryDC::DoGetSize( int *width, int *height ) const
|
||||||
{
|
{
|
||||||
if (!m_selectedBitmap.Ok())
|
if (!m_vSelectedBitmap.Ok())
|
||||||
{
|
{
|
||||||
*width = 0; *height = 0;
|
*width = 0; *height = 0;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
*width = m_selectedBitmap.GetWidth();
|
*width = m_vSelectedBitmap.GetWidth();
|
||||||
*height = m_selectedBitmap.GetHeight();
|
*height = m_vSelectedBitmap.GetHeight();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@@ -469,17 +469,61 @@ wxStatusBar* wxFrame::OnCreateStatusBar(
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
wxStatusBar* pStatusBar = NULL;
|
wxStatusBar* pStatusBar = NULL;
|
||||||
|
SWP vSwp;
|
||||||
|
ERRORID vError;
|
||||||
|
wxString sError;
|
||||||
|
|
||||||
pStatusBar = wxFrameBase::OnCreateStatusBar( nNumber
|
pStatusBar = wxFrameBase::OnCreateStatusBar( nNumber
|
||||||
,lulStyle
|
,lulStyle
|
||||||
,vId
|
,vId
|
||||||
,rName
|
,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;
|
return pStatusBar;
|
||||||
} // end of wxFrame::OnCreateStatusBar
|
} // end of wxFrame::OnCreateStatusBar
|
||||||
|
|
||||||
void wxFrame::PositionStatusBar()
|
void wxFrame::PositionStatusBar()
|
||||||
{
|
{
|
||||||
|
SWP vSwp;
|
||||||
|
ERRORID vError;
|
||||||
|
wxString sError;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Native status bar positions itself
|
// Native status bar positions itself
|
||||||
//
|
//
|
||||||
@@ -509,6 +553,27 @@ void wxFrame::PositionStatusBar()
|
|||||||
,nWidth
|
,nWidth
|
||||||
,nStatbarHeight
|
,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
|
} // end of wxFrame::PositionStatusBar
|
||||||
#endif // wxUSE_STATUSBAR
|
#endif // wxUSE_STATUSBAR
|
||||||
|
@@ -269,8 +269,8 @@ void wxMetafileDC::SetMapMode(int mode)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m_windowExtX = 100;
|
m_nWindowExtX = 100;
|
||||||
m_windowExtY = 100;
|
m_nWindowExtY = 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef __WIN32__
|
#ifdef __WIN32__
|
||||||
|
Reference in New Issue
Block a user