Hierarchy fixes; bug fix for tabg that was introduced somehow...

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1087 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart 1998-11-30 12:52:58 +00:00
parent add28c55a0
commit e6460682a2
12 changed files with 162 additions and 108 deletions

View File

@ -85,6 +85,9 @@ protected:
class WXDLLEXPORT wxTabLayer: public wxList
{
// Why did someone remove this, please?
DECLARE_DYNAMIC_CLASS(wxTabLayer)
wxTabLayer():wxList() {}
};
/*

View File

@ -18,19 +18,6 @@
#include "wx/dc.h"
class WXDLLEXPORT wxClientDC: public wxDC
{
DECLARE_DYNAMIC_CLASS(wxClientDC)
public:
wxClientDC(void);
// Create a DC corresponding to a canvas
wxClientDC(wxWindow *win);
~wxClientDC(void);
};
class WXDLLEXPORT wxWindowDC: public wxDC
{
DECLARE_DYNAMIC_CLASS(wxWindowDC)
@ -44,7 +31,20 @@ class WXDLLEXPORT wxWindowDC: public wxDC
~wxWindowDC(void);
};
class WXDLLEXPORT wxPaintDC: public wxDC
class WXDLLEXPORT wxClientDC: public wxWindowDC
{
DECLARE_DYNAMIC_CLASS(wxClientDC)
public:
wxClientDC(void);
// Create a DC corresponding to a canvas
wxClientDC(wxWindow *win);
~wxClientDC(void);
};
class WXDLLEXPORT wxPaintDC: public wxWindowDC
{
DECLARE_DYNAMIC_CLASS(wxPaintDC)

View File

@ -16,9 +16,9 @@
#pragma interface "dcscreen.h"
#endif
#include "wx/dc.h"
#include "wx/dcclient.h"
class WXDLLEXPORT wxScreenDC: public wxDC
class WXDLLEXPORT wxScreenDC: public wxWindowDC
{
DECLARE_DYNAMIC_CLASS(wxScreenDC)

View File

@ -44,10 +44,12 @@ class WXDLLEXPORT wxToolBar95: public wxToolBarBase
const wxString& name = wxToolBarNameStr);
// Call default behaviour
/*
void OnPaint(wxPaintEvent& event) { Default() ; }
void OnSize(wxSizeEvent& event) { Default() ; }
void OnMouseEvent(wxMouseEvent& event) { Default() ; }
void OnKillFocus(wxFocusEvent& event) { Default() ; }
*/
void OnMouseEvent(wxMouseEvent& event);
// Handle wxToolBar95 events

View File

@ -28,23 +28,16 @@ class WXDLLEXPORT wxWindow;
// Under Windows, wxClientDC, wxPaintDC and wxWindowDC are implemented differently.
// On many platforms, however, they will be the same.
typedef wxPaintDC wxClientDC;
typedef wxPaintDC wxWindowDC;
//-----------------------------------------------------------------------------
// wxPaintDC
//-----------------------------------------------------------------------------
class WXDLLEXPORT wxPaintDC: public wxDC
class WXDLLEXPORT wxWindowDC: public wxDC
{
DECLARE_DYNAMIC_CLASS(wxPaintDC)
DECLARE_DYNAMIC_CLASS(wxWindowDC)
public:
wxPaintDC(void);
wxPaintDC( wxWindow *win );
~wxPaintDC(void);
wxWindowDC(void);
wxWindowDC( wxWindow *win );
~wxWindowDC(void);
virtual void FloodFill( long x1, long y1, wxColour* col, int style=wxFLOOD_SURFACE );
virtual bool GetPixel( long x1, long y1, wxColour *col ) const;
@ -97,5 +90,35 @@ class WXDLLEXPORT wxPaintDC: public wxDC
virtual void DrawSpline( wxList *points );
};
//-----------------------------------------------------------------------------
// wxPaintDC
//-----------------------------------------------------------------------------
class WXDLLEXPORT wxPaintDC: public wxWindowDC
{
DECLARE_DYNAMIC_CLASS(wxPaintDC)
public:
wxPaintDC(void):wxWindowDC() {};
wxPaintDC( wxWindow *win ): wxWindowDC(win) {};
};
//-----------------------------------------------------------------------------
// wxClientDC
//-----------------------------------------------------------------------------
class WXDLLEXPORT wxClientDC: public wxWindowDC
{
DECLARE_DYNAMIC_CLASS(wxClientDC)
public:
wxClientDC(void):wxWindowDC() {};
wxClientDC( wxWindow *win ): wxWindowDC(win) {};
};
#endif
// _WX_DCCLIENT_H_

View File

@ -18,7 +18,7 @@
#include "wx/dcclient.h"
class WXDLLEXPORT wxScreenDC: public wxPaintDC
class WXDLLEXPORT wxScreenDC: public wxWindowDC
{
DECLARE_DYNAMIC_CLASS(wxScreenDC)

View File

@ -198,11 +198,11 @@ IMPLEMENT_DYNAMIC_CLASS(wxComboBox, wxControl)
#include "wx/dcclient.h"
#include "wx/dcscreen.h"
IMPLEMENT_ABSTRACT_CLASS(wxDC, wxObject)
IMPLEMENT_DYNAMIC_CLASS(wxClientDC, wxDC)
IMPLEMENT_DYNAMIC_CLASS(wxWindowDC, wxDC)
IMPLEMENT_DYNAMIC_CLASS(wxPaintDC, wxDC)
IMPLEMENT_DYNAMIC_CLASS(wxMemoryDC, wxDC)
IMPLEMENT_DYNAMIC_CLASS(wxPaintDC, wxWindowDC)
IMPLEMENT_DYNAMIC_CLASS(wxClientDC, wxWindowDC)
IMPLEMENT_DYNAMIC_CLASS(wxScreenDC, wxWindowDC)
IMPLEMENT_DYNAMIC_CLASS(wxMemoryDC, wxDC)
#if defined(__WXMSW__)
#include "wx/dcprint.h"

View File

@ -29,11 +29,44 @@
#include <windows.h>
#if !USE_SHARED_LIBRARY
IMPLEMENT_DYNAMIC_CLASS(wxClientDC, wxDC)
IMPLEMENT_DYNAMIC_CLASS(wxWindowDC, wxDC)
IMPLEMENT_DYNAMIC_CLASS(wxPaintDC, wxDC)
IMPLEMENT_DYNAMIC_CLASS(wxClientDC, wxWindowDC)
IMPLEMENT_DYNAMIC_CLASS(wxPaintDC, wxWindowDC)
#endif
/*
* wxWindowDC
*/
wxWindowDC::wxWindowDC(void)
{
m_canvas = NULL;
}
wxWindowDC::wxWindowDC(wxWindow *the_canvas)
{
m_canvas = the_canvas;
// m_hDC = (WXHDC) ::GetDCEx((HWND) the_canvas->GetHWND(), NULL, DCX_WINDOW);
m_hDC = (WXHDC) ::GetWindowDC((HWND) the_canvas->GetHWND() );
m_hDCCount ++;
}
wxWindowDC::~wxWindowDC(void)
{
if (m_canvas && m_hDC)
{
SelectOldObjects(m_hDC);
::ReleaseDC((HWND) m_canvas->GetHWND(), (HDC) m_hDC);
m_hDC = 0;
}
m_hDCCount --;
}
/*
* wxClientDC
*/
wxClientDC::wxClientDC(void)
{
m_canvas = NULL;
@ -59,30 +92,9 @@ wxClientDC::~wxClientDC(void)
}
}
wxWindowDC::wxWindowDC(void)
{
m_canvas = NULL;
}
wxWindowDC::wxWindowDC(wxWindow *the_canvas)
{
m_canvas = the_canvas;
// m_hDC = (WXHDC) ::GetDCEx((HWND) the_canvas->GetHWND(), NULL, DCX_WINDOW);
m_hDC = (WXHDC) ::GetWindowDC((HWND) the_canvas->GetHWND() );
m_hDCCount ++;
}
wxWindowDC::~wxWindowDC(void)
{
if (m_canvas && m_hDC)
{
SelectOldObjects(m_hDC);
::ReleaseDC((HWND) m_canvas->GetHWND(), (HDC) m_hDC);
m_hDC = 0;
}
m_hDCCount --;
}
/*
* wxPaintDC
*/
wxPaintDC::wxPaintDC(void)
{

View File

@ -149,7 +149,7 @@ bool wxListBox::Create(wxWindow *parent, wxWindowID id,
const wxValidator& validator,
const wxString& name)
{
m_noItems = n;
m_noItems = 0;
m_hWnd = 0;
m_selected = 0;
@ -227,6 +227,7 @@ bool wxListBox::Create(wxWindow *parent, wxWindowID id,
Append(choices[ui]);
}
/* Not needed -- done in Append
#if wxUSE_OWNER_DRAWN
if ( m_windowStyle & wxLB_OWNERDRAW ) {
for (ui = 0; ui < (size_t)n; ui++) {
@ -238,6 +239,7 @@ bool wxListBox::Create(wxWindow *parent, wxWindowID id,
}
}
#endif
*/
if ( (m_windowStyle & wxLB_MULTIPLE) == 0 )
SendMessage(hwnd, LB_SETCURSEL, 0, 0);

View File

@ -75,12 +75,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxToolBar95, wxToolBarBase)
#endif
BEGIN_EVENT_TABLE(wxToolBar95, wxToolBarBase)
#if 0 // it seems like none of these functions does anything anyhow
EVT_SIZE(wxToolBar95::OnSize)
EVT_PAINT(wxToolBar95::OnPaint)
EVT_KILL_FOCUS(wxToolBar95::OnKillFocus)
EVT_MOUSE_EVENTS(wxToolBar95::OnMouseEvent)
#endif // 0
EVT_SYS_COLOUR_CHANGED(wxToolBar95::OnSysColourChanged)
END_EVENT_TABLE()
@ -513,6 +508,20 @@ void wxToolBar95::OnSysColourChanged(wxSysColourChangedEvent& event)
wxWindow::OnSysColourChanged(event);
}
void wxToolBar95::OnMouseEvent(wxMouseEvent& event)
{
if (event.RightDown())
{
// For now, we don't have an id. Later we could
// try finding the tool.
OnRightClick((int)-1, event.GetX(), event.GetY());
}
else
{
Default();
}
}
// These are the default colors used to map the bitmap colors
// to the current system colors

View File

@ -28,47 +28,50 @@
//-----------------------------------------------------------------------------
#if !USE_SHARED_LIBRARY
//IMPLEMENT_DYNAMIC_CLASS(wxClientDC, wxDC)
//IMPLEMENT_DYNAMIC_CLASS(wxWindowDC, wxDC)
IMPLEMENT_DYNAMIC_CLASS(wxPaintDC, wxDC)
IMPLEMENT_DYNAMIC_CLASS(wxWindowDC, wxDC)
IMPLEMENT_DYNAMIC_CLASS(wxClientDC, wxWindowDC)
IMPLEMENT_DYNAMIC_CLASS(wxPaintDC, wxWindowDC)
#endif
/*
* wxWindowDC
*/
wxPaintDC::wxPaintDC(void)
wxWindowDC::wxWindowDC(void)
{
};
wxPaintDC::wxPaintDC( wxWindow *window )
wxWindowDC::wxWindowDC( wxWindow *window )
{
};
wxPaintDC::~wxPaintDC(void)
wxWindowDC::~wxWindowDC(void)
{
};
void wxPaintDC::FloodFill( long WXUNUSED(x1), long WXUNUSED(y1),
void wxWindowDC::FloodFill( long WXUNUSED(x1), long WXUNUSED(y1),
wxColour* WXUNUSED(col), int WXUNUSED(style) )
{
};
bool wxPaintDC::GetPixel( long WXUNUSED(x1), long WXUNUSED(y1), wxColour *WXUNUSED(col) ) const
bool wxWindowDC::GetPixel( long WXUNUSED(x1), long WXUNUSED(y1), wxColour *WXUNUSED(col) ) const
{
return FALSE;
};
void wxPaintDC::DrawLine( long x1, long y1, long x2, long y2 )
void wxWindowDC::DrawLine( long x1, long y1, long x2, long y2 )
{
if (!Ok()) return;
};
void wxPaintDC::CrossHair( long x, long y )
void wxWindowDC::CrossHair( long x, long y )
{
if (!Ok()) return;
};
void wxPaintDC::DrawArc( long x1, long y1, long x2, long y2, long xc, long yc )
void wxWindowDC::DrawArc( long x1, long y1, long x2, long y2, long xc, long yc )
{
if (!Ok()) return;
@ -114,7 +117,7 @@ void wxPaintDC::DrawArc( long x1, long y1, long x2, long y2, long xc, long yc )
};
void wxPaintDC::DrawEllipticArc( long x, long y, long width, long height, double sa, double ea )
void wxWindowDC::DrawEllipticArc( long x, long y, long width, long height, double sa, double ea )
{
if (!Ok()) return;
@ -134,14 +137,14 @@ void wxPaintDC::DrawEllipticArc( long x, long y, long width, long height, double
if (m_pen.GetStyle() != wxTRANSPARENT) {};
};
void wxPaintDC::DrawPoint( long x, long y )
void wxWindowDC::DrawPoint( long x, long y )
{
if (!Ok()) return;
if (m_pen.GetStyle() != wxTRANSPARENT) {};
};
void wxPaintDC::DrawLines( int n, wxPoint points[], long xoffset, long yoffset )
void wxWindowDC::DrawLines( int n, wxPoint points[], long xoffset, long yoffset )
{
if (!Ok()) return;
@ -156,7 +159,7 @@ void wxPaintDC::DrawLines( int n, wxPoint points[], long xoffset, long yoffset )
};
};
void wxPaintDC::DrawLines( wxList *points, long xoffset, long yoffset )
void wxWindowDC::DrawLines( wxList *points, long xoffset, long yoffset )
{
if (!Ok()) return;
@ -175,19 +178,19 @@ void wxPaintDC::DrawLines( wxList *points, long xoffset, long yoffset )
};
};
void wxPaintDC::DrawPolygon( int WXUNUSED(n), wxPoint WXUNUSED(points)[],
void wxWindowDC::DrawPolygon( int WXUNUSED(n), wxPoint WXUNUSED(points)[],
long WXUNUSED(xoffset), long WXUNUSED(yoffset), int WXUNUSED(fillStyle) )
{
if (!Ok()) return;
};
void wxPaintDC::DrawPolygon( wxList *WXUNUSED(lines), long WXUNUSED(xoffset),
void wxWindowDC::DrawPolygon( wxList *WXUNUSED(lines), long WXUNUSED(xoffset),
long WXUNUSED(yoffset), int WXUNUSED(fillStyle) )
{
if (!Ok()) return;
};
void wxPaintDC::DrawRectangle( long x, long y, long width, long height )
void wxWindowDC::DrawRectangle( long x, long y, long width, long height )
{
if (!Ok()) return;
@ -208,7 +211,7 @@ void wxPaintDC::DrawRectangle( long x, long y, long width, long height )
if (m_pen.GetStyle() != wxTRANSPARENT) {};
};
void wxPaintDC::DrawRoundedRectangle( long x, long y, long width, long height, double radius )
void wxWindowDC::DrawRoundedRectangle( long x, long y, long width, long height, double radius )
{
if (!Ok()) return;
@ -259,7 +262,7 @@ void wxPaintDC::DrawRoundedRectangle( long x, long y, long width, long height, d
};
};
void wxPaintDC::DrawEllipse( long x, long y, long width, long height )
void wxWindowDC::DrawEllipse( long x, long y, long width, long height )
{
if (!Ok()) return;
@ -277,12 +280,12 @@ void wxPaintDC::DrawEllipse( long x, long y, long width, long height )
if (m_pen.GetStyle() != wxTRANSPARENT) {};
};
bool wxPaintDC::CanDrawBitmap(void) const
bool wxWindowDC::CanDrawBitmap(void) const
{
return TRUE;
};
void wxPaintDC::DrawIcon( const wxIcon &icon, long x, long y, bool useMask )
void wxWindowDC::DrawIcon( const wxIcon &icon, long x, long y, bool useMask )
{
if (!Ok()) return;
@ -293,7 +296,7 @@ void wxPaintDC::DrawIcon( const wxIcon &icon, long x, long y, bool useMask )
};
bool wxPaintDC::Blit( long xdest, long ydest, long width, long height,
bool wxWindowDC::Blit( long xdest, long ydest, long width, long height,
wxDC *source, long xsrc, long ysrc, int WXUNUSED(logical_func), bool WXUNUSED(useMask) )
{
if (!Ok()) return FALSE;
@ -322,7 +325,7 @@ bool wxPaintDC::Blit( long xdest, long ydest, long width, long height,
return TRUE;
};
void wxPaintDC::DrawText( const wxString &text, long x, long y, bool
void wxWindowDC::DrawText( const wxString &text, long x, long y, bool
WXUNUSED(use16) )
{
if (!Ok()) return;
@ -331,12 +334,12 @@ WXUNUSED(use16) )
bool wxPaintDC::CanGetTextExtent(void) const
bool wxWindowDC::CanGetTextExtent(void) const
{
return TRUE;
};
void wxPaintDC::GetTextExtent( const wxString &string, long *width, long *height,
void wxWindowDC::GetTextExtent( const wxString &string, long *width, long *height,
long *WXUNUSED(descent), long *WXUNUSED(externalLeading),
wxFont *WXUNUSED(theFont), bool WXUNUSED(use16) )
{
@ -344,32 +347,32 @@ void wxPaintDC::GetTextExtent( const wxString &string, long *width, long *height
};
long wxPaintDC::GetCharWidth(void)
long wxWindowDC::GetCharWidth(void)
{
if (!Ok()) return 0;
return 0;
};
long wxPaintDC::GetCharHeight(void)
long wxWindowDC::GetCharHeight(void)
{
if (!Ok()) return 0;
return 0;
};
void wxPaintDC::Clear(void)
void wxWindowDC::Clear(void)
{
if (!Ok()) return;
};
void wxPaintDC::SetFont( const wxFont &font )
void wxWindowDC::SetFont( const wxFont &font )
{
if (!Ok()) return;
m_font = font;
};
void wxPaintDC::SetPen( const wxPen &pen )
void wxWindowDC::SetPen( const wxPen &pen )
{
if (!Ok()) return;
@ -380,7 +383,7 @@ void wxPaintDC::SetPen( const wxPen &pen )
if (!m_pen.Ok()) return;
};
void wxPaintDC::SetBrush( const wxBrush &brush )
void wxWindowDC::SetBrush( const wxBrush &brush )
{
if (!Ok()) return;
@ -392,7 +395,7 @@ void wxPaintDC::SetBrush( const wxBrush &brush )
};
void wxPaintDC::SetBackground( const wxBrush &brush )
void wxWindowDC::SetBackground( const wxBrush &brush )
{
if (!Ok()) return;
@ -404,12 +407,12 @@ void wxPaintDC::SetBackground( const wxBrush &brush )
};
void wxPaintDC::SetLogicalFunction( int function )
void wxWindowDC::SetLogicalFunction( int function )
{
if (m_logicalFunction == function) return;
};
void wxPaintDC::SetTextForeground( const wxColour &col )
void wxWindowDC::SetTextForeground( const wxColour &col )
{
if (!Ok()) return;
@ -419,7 +422,7 @@ void wxPaintDC::SetTextForeground( const wxColour &col )
if (!m_textForegroundColour.Ok()) return;
};
void wxPaintDC::SetTextBackground( const wxColour &col )
void wxWindowDC::SetTextBackground( const wxColour &col )
{
if (!Ok()) return;
@ -429,7 +432,7 @@ void wxPaintDC::SetTextBackground( const wxColour &col )
if (!m_textBackgroundColour.Ok()) return;
};
void wxPaintDC::SetBackgroundMode( int mode )
void wxWindowDC::SetBackgroundMode( int mode )
{
m_backgroundMode = mode;
@ -438,17 +441,17 @@ void wxPaintDC::SetBackgroundMode( int mode )
}
};
void wxPaintDC::SetPalette( const wxPalette& WXUNUSED(palette) )
void wxWindowDC::SetPalette( const wxPalette& WXUNUSED(palette) )
{
};
void wxPaintDC::SetClippingRegion( long x, long y, long width, long height )
void wxWindowDC::SetClippingRegion( long x, long y, long width, long height )
{
wxDC::SetClippingRegion( x, y, width, height );
};
void wxPaintDC::DestroyClippingRegion(void)
void wxWindowDC::DestroyClippingRegion(void)
{
wxDC::DestroyClippingRegion();
@ -569,7 +572,7 @@ static void wx_spline_draw_point_array(wxDC *dc)
}
}
void wxPaintDC::DrawSpline( wxList *points )
void wxWindowDC::DrawSpline( wxList *points )
{
wxPoint *p;
double cx1, cy1, cx2, cy2, cx3, cy3, cx4, cy4;

View File

@ -16,7 +16,7 @@
#include "wx/dcscreen.h"
#if !USE_SHARED_LIBRARY
IMPLEMENT_DYNAMIC_CLASS(wxScreenDC, wxPaintDC)
IMPLEMENT_DYNAMIC_CLASS(wxScreenDC, wxWindowDC)
#endif
// Create a DC representing the whole screen