Changed generic wxScrolledWindow -> wxGenericScrolledWindow

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@9936 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2001-04-30 12:35:54 +00:00
parent 6957a370ff
commit fa3541bd15
6 changed files with 68 additions and 42 deletions

View File

@@ -90,7 +90,7 @@ prop.cpp G
propform.cpp G propform.cpp G
proplist.cpp G proplist.cpp G
sashwin.cpp G sashwin.cpp G
scrolwin.cpp G R scrolwin.cpp G
splash.cpp G splash.cpp G
splitter.cpp G splitter.cpp G
statline.cpp G U,R,P statline.cpp G U,R,P

View File

@@ -26,17 +26,19 @@
WXDLLEXPORT_DATA(extern const wxChar*) wxPanelNameStr; WXDLLEXPORT_DATA(extern const wxChar*) wxPanelNameStr;
// default scrolled window style // default scrolled window style
#ifndef wxScrolledWindowStyle
#define wxScrolledWindowStyle (wxHSCROLL | wxVSCROLL) #define wxScrolledWindowStyle (wxHSCROLL | wxVSCROLL)
#endif
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// wxScrolledWindow // wxGenericScrolledWindow
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
class WXDLLEXPORT wxScrolledWindow : public wxPanel class WXDLLEXPORT wxGenericScrolledWindow : public wxPanel
{ {
public: public:
wxScrolledWindow(); wxGenericScrolledWindow();
wxScrolledWindow(wxWindow *parent, wxGenericScrolledWindow(wxWindow *parent,
wxWindowID id = -1, wxWindowID id = -1,
const wxPoint& pos = wxDefaultPosition, const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize, const wxSize& size = wxDefaultSize,
@@ -46,7 +48,7 @@ public:
Create(parent, id, pos, size, style, name); Create(parent, id, pos, size, style, name);
} }
~wxScrolledWindow(); ~wxGenericScrolledWindow();
bool Create(wxWindow *parent, bool Create(wxWindow *parent,
wxWindowID id, wxWindowID id,
@@ -55,7 +57,7 @@ public:
long style = wxScrolledWindowStyle, long style = wxScrolledWindowStyle,
const wxString& name = wxPanelNameStr); const wxString& name = wxPanelNameStr);
// Normally the wxScrolledWindow will scroll itself, but in // Normally the wxGenericScrolledWindow will scroll itself, but in
// some rare occasions you might want it to scroll another // some rare occasions you might want it to scroll another
// window (e.g. a child of it in order to scroll only a portion // window (e.g. a child of it in order to scroll only a portion
// the area between the scrollbars (spreadsheet: only cell area // the area between the scrollbars (spreadsheet: only cell area
@@ -115,7 +117,7 @@ public:
// Override this function to draw the graphic (or just process EVT_PAINT) // Override this function to draw the graphic (or just process EVT_PAINT)
virtual void OnDraw(wxDC& WXUNUSED(dc)) {}; virtual void OnDraw(wxDC& WXUNUSED(dc)) {};
// Override this function if you don't want to have wxScrolledWindow // Override this function if you don't want to have wxGenericScrolledWindow
// automatically change the origin according to the scroll position. // automatically change the origin according to the scroll position.
virtual void PrepareDC(wxDC& dc); virtual void PrepareDC(wxDC& dc);
@@ -145,7 +147,7 @@ protected:
private: private:
DECLARE_EVENT_TABLE() DECLARE_EVENT_TABLE()
DECLARE_ABSTRACT_CLASS(wxScrolledWindow) DECLARE_ABSTRACT_CLASS(wxGenericScrolledWindow)
}; };
#endif #endif

View File

@@ -26,7 +26,9 @@
WXDLLEXPORT_DATA(extern const wxChar*) wxPanelNameStr; WXDLLEXPORT_DATA(extern const wxChar*) wxPanelNameStr;
// default scrolled window style // default scrolled window style
#ifndef wxScrolledWindowStyle
#define wxScrolledWindowStyle (wxHSCROLL | wxVSCROLL) #define wxScrolledWindowStyle (wxHSCROLL | wxVSCROLL)
#endif
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// wxScrolledWindow // wxScrolledWindow

View File

@@ -26,7 +26,9 @@
WXDLLEXPORT_DATA(extern const wxChar*) wxPanelNameStr; WXDLLEXPORT_DATA(extern const wxChar*) wxPanelNameStr;
// default scrolled window style // default scrolled window style
#ifndef wxScrolledWindowStyle
#define wxScrolledWindowStyle (wxHSCROLL | wxVSCROLL) #define wxScrolledWindowStyle (wxHSCROLL | wxVSCROLL)
#endif
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// wxScrolledWindow // wxScrolledWindow

View File

@@ -5,6 +5,22 @@
#include "wx/gtk/scrolwin.h" #include "wx/gtk/scrolwin.h"
#else #else
#include "wx/generic/scrolwin.h" #include "wx/generic/scrolwin.h"
// For non-GTK+ platforms, always use wxGenericScrolledWindow
class WXDLLEXPORT wxScrolledWindow: public wxGenericScrolledWindow
{
public:
DECLARE_CLASS(wxScrolledWindow)
wxScrolledWindow() {};
wxScrolledWindow(wxWindow *parent,
wxWindowID id = -1,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxScrolledWindowStyle,
const wxString& name = wxPanelNameStr)
{
wxGenericScrolledWindow::Create(parent, id, pos, size, style, name);
}
};
#endif #endif
#endif #endif

View File

@@ -1,6 +1,6 @@
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Name: generic/scrolwin.cpp // Name: generic/scrolwin.cpp
// Purpose: wxScrolledWindow implementation // Purpose: wxGenericScrolledWindow implementation
// Author: Julian Smart // Author: Julian Smart
// Modified by: // Modified by:
// Created: 01/02/97 // Created: 01/02/97
@@ -54,28 +54,32 @@
#endif #endif
#endif #endif
#ifndef __WXGTK__
IMPLEMENT_CLASS(wxScrolledWindow, wxGenericScrolledWindow)
#endif
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// event tables // event tables
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
BEGIN_EVENT_TABLE(wxScrolledWindow, wxPanel) BEGIN_EVENT_TABLE(wxGenericScrolledWindow, wxPanel)
EVT_SCROLLWIN(wxScrolledWindow::OnScroll) EVT_SCROLLWIN(wxGenericScrolledWindow::OnScroll)
EVT_SIZE(wxScrolledWindow::OnSize) EVT_SIZE(wxGenericScrolledWindow::OnSize)
EVT_PAINT(wxScrolledWindow::OnPaint) EVT_PAINT(wxGenericScrolledWindow::OnPaint)
EVT_CHAR(wxScrolledWindow::OnChar) EVT_CHAR(wxGenericScrolledWindow::OnChar)
END_EVENT_TABLE() END_EVENT_TABLE()
IMPLEMENT_DYNAMIC_CLASS(wxScrolledWindow, wxPanel) IMPLEMENT_DYNAMIC_CLASS(wxGenericScrolledWindow, wxPanel)
// ============================================================================ // ============================================================================
// implementation // implementation
// ============================================================================ // ============================================================================
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// wxScrolledWindow creation // wxGenericScrolledWindow creation
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
wxScrolledWindow::wxScrolledWindow() wxGenericScrolledWindow::wxGenericScrolledWindow()
{ {
m_xScrollPixelsPerLine = 0; m_xScrollPixelsPerLine = 0;
m_yScrollPixelsPerLine = 0; m_yScrollPixelsPerLine = 0;
@@ -92,7 +96,7 @@ wxScrolledWindow::wxScrolledWindow()
m_targetWindow = (wxWindow*) NULL; m_targetWindow = (wxWindow*) NULL;
} }
bool wxScrolledWindow::Create(wxWindow *parent, bool wxGenericScrolledWindow::Create(wxWindow *parent,
wxWindowID id, wxWindowID id,
const wxPoint& pos, const wxPoint& pos,
const wxSize& size, const wxSize& size,
@@ -124,7 +128,7 @@ bool wxScrolledWindow::Create(wxWindow *parent,
return ok; return ok;
} }
wxScrolledWindow::~wxScrolledWindow() wxGenericScrolledWindow::~wxGenericScrolledWindow()
{ {
} }
@@ -136,7 +140,7 @@ wxScrolledWindow::~wxScrolledWindow()
* pixelsPerUnitX/pixelsPerUnitY: number of pixels per unit (e.g. pixels per text line) * pixelsPerUnitX/pixelsPerUnitY: number of pixels per unit (e.g. pixels per text line)
* noUnitsX/noUnitsY: : no. units per scrollbar * noUnitsX/noUnitsY: : no. units per scrollbar
*/ */
void wxScrolledWindow::SetScrollbars (int pixelsPerUnitX, int pixelsPerUnitY, void wxGenericScrolledWindow::SetScrollbars (int pixelsPerUnitX, int pixelsPerUnitY,
int noUnitsX, int noUnitsY, int noUnitsX, int noUnitsY,
int xPos, int yPos, bool noRefresh ) int xPos, int yPos, bool noRefresh )
{ {
@@ -220,13 +224,13 @@ void wxScrolledWindow::SetScrollbars (int pixelsPerUnitX, int pixelsPerUnitY,
// target window handling // target window handling
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
void wxScrolledWindow::SetTargetWindow( wxWindow *target ) void wxGenericScrolledWindow::SetTargetWindow( wxWindow *target )
{ {
wxASSERT_MSG( target, wxT("target window must not be NULL") ); wxASSERT_MSG( target, wxT("target window must not be NULL") );
m_targetWindow = target; m_targetWindow = target;
} }
wxWindow *wxScrolledWindow::GetTargetWindow() wxWindow *wxGenericScrolledWindow::GetTargetWindow()
{ {
return m_targetWindow; return m_targetWindow;
} }
@@ -235,7 +239,7 @@ wxWindow *wxScrolledWindow::GetTargetWindow()
// scrolling implementation itself // scrolling implementation itself
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
void wxScrolledWindow::OnScroll(wxScrollWinEvent& event) void wxGenericScrolledWindow::OnScroll(wxScrollWinEvent& event)
{ {
int orient = event.GetOrientation(); int orient = event.GetOrientation();
@@ -281,7 +285,7 @@ void wxScrolledWindow::OnScroll(wxScrollWinEvent& event)
#endif #endif
} }
int wxScrolledWindow::CalcScrollInc(wxScrollWinEvent& event) int wxGenericScrolledWindow::CalcScrollInc(wxScrollWinEvent& event)
{ {
int pos = event.GetPosition(); int pos = event.GetPosition();
int orient = event.GetOrientation(); int orient = event.GetOrientation();
@@ -377,7 +381,7 @@ int wxScrolledWindow::CalcScrollInc(wxScrollWinEvent& event)
} }
// Adjust the scrollbars - new version. // Adjust the scrollbars - new version.
void wxScrolledWindow::AdjustScrollbars() void wxGenericScrolledWindow::AdjustScrollbars()
{ {
int w, h; int w, h;
m_targetWindow->GetClientSize(&w, &h); m_targetWindow->GetClientSize(&w, &h);
@@ -446,9 +450,9 @@ void wxScrolledWindow::AdjustScrollbars()
} }
} }
// Override this function if you don't want to have wxScrolledWindow // Override this function if you don't want to have wxGenericScrolledWindow
// automatically change the origin according to the scroll position. // automatically change the origin according to the scroll position.
void wxScrolledWindow::PrepareDC(wxDC& dc) void wxGenericScrolledWindow::PrepareDC(wxDC& dc)
{ {
dc.SetDeviceOrigin( -m_xScrollPosition * m_xScrollPixelsPerLine, dc.SetDeviceOrigin( -m_xScrollPosition * m_xScrollPixelsPerLine,
-m_yScrollPosition * m_yScrollPixelsPerLine ); -m_yScrollPosition * m_yScrollPixelsPerLine );
@@ -456,13 +460,13 @@ void wxScrolledWindow::PrepareDC(wxDC& dc)
} }
#if WXWIN_COMPATIBILITY #if WXWIN_COMPATIBILITY
void wxScrolledWindow::GetScrollUnitsPerPage (int *x_page, int *y_page) const void wxGenericScrolledWindow::GetScrollUnitsPerPage (int *x_page, int *y_page) const
{ {
*x_page = GetScrollPageSize(wxHORIZONTAL); *x_page = GetScrollPageSize(wxHORIZONTAL);
*y_page = GetScrollPageSize(wxVERTICAL); *y_page = GetScrollPageSize(wxVERTICAL);
} }
void wxScrolledWindow::CalcUnscrolledPosition(int x, int y, float *xx, float *yy) const void wxGenericScrolledWindow::CalcUnscrolledPosition(int x, int y, float *xx, float *yy) const
{ {
if ( xx ) if ( xx )
*xx = (float)(x + m_xScrollPosition * m_xScrollPixelsPerLine); *xx = (float)(x + m_xScrollPosition * m_xScrollPixelsPerLine);
@@ -471,7 +475,7 @@ void wxScrolledWindow::CalcUnscrolledPosition(int x, int y, float *xx, float *yy
} }
#endif // WXWIN_COMPATIBILITY #endif // WXWIN_COMPATIBILITY
void wxScrolledWindow::GetScrollPixelsPerUnit (int *x_unit, int *y_unit) const void wxGenericScrolledWindow::GetScrollPixelsPerUnit (int *x_unit, int *y_unit) const
{ {
if ( x_unit ) if ( x_unit )
*x_unit = m_xScrollPixelsPerLine; *x_unit = m_xScrollPixelsPerLine;
@@ -479,7 +483,7 @@ void wxScrolledWindow::GetScrollPixelsPerUnit (int *x_unit, int *y_unit) const
*y_unit = m_yScrollPixelsPerLine; *y_unit = m_yScrollPixelsPerLine;
} }
int wxScrolledWindow::GetScrollPageSize(int orient) const int wxGenericScrolledWindow::GetScrollPageSize(int orient) const
{ {
if ( orient == wxHORIZONTAL ) if ( orient == wxHORIZONTAL )
return m_xScrollLinesPerPage; return m_xScrollLinesPerPage;
@@ -487,7 +491,7 @@ int wxScrolledWindow::GetScrollPageSize(int orient) const
return m_yScrollLinesPerPage; return m_yScrollLinesPerPage;
} }
void wxScrolledWindow::SetScrollPageSize(int orient, int pageSize) void wxGenericScrolledWindow::SetScrollPageSize(int orient, int pageSize)
{ {
if ( orient == wxHORIZONTAL ) if ( orient == wxHORIZONTAL )
m_xScrollLinesPerPage = pageSize; m_xScrollLinesPerPage = pageSize;
@@ -498,7 +502,7 @@ void wxScrolledWindow::SetScrollPageSize(int orient, int pageSize)
/* /*
* Scroll to given position (scroll position, not pixel position) * Scroll to given position (scroll position, not pixel position)
*/ */
void wxScrolledWindow::Scroll( int x_pos, int y_pos ) void wxGenericScrolledWindow::Scroll( int x_pos, int y_pos )
{ {
if (!m_targetWindow) if (!m_targetWindow)
return; return;
@@ -555,13 +559,13 @@ void wxScrolledWindow::Scroll( int x_pos, int y_pos )
#endif #endif
} }
void wxScrolledWindow::EnableScrolling (bool x_scroll, bool y_scroll) void wxGenericScrolledWindow::EnableScrolling (bool x_scroll, bool y_scroll)
{ {
m_xScrollingEnabled = x_scroll; m_xScrollingEnabled = x_scroll;
m_yScrollingEnabled = y_scroll; m_yScrollingEnabled = y_scroll;
} }
void wxScrolledWindow::GetVirtualSize (int *x, int *y) const void wxGenericScrolledWindow::GetVirtualSize (int *x, int *y) const
{ {
if ( x ) if ( x )
*x = m_xScrollPixelsPerLine * m_xScrollLines; *x = m_xScrollPixelsPerLine * m_xScrollLines;
@@ -570,7 +574,7 @@ void wxScrolledWindow::GetVirtualSize (int *x, int *y) const
} }
// Where the current view starts from // Where the current view starts from
void wxScrolledWindow::GetViewStart (int *x, int *y) const void wxGenericScrolledWindow::GetViewStart (int *x, int *y) const
{ {
if ( x ) if ( x )
*x = m_xScrollPosition; *x = m_xScrollPosition;
@@ -578,7 +582,7 @@ void wxScrolledWindow::GetViewStart (int *x, int *y) const
*y = m_yScrollPosition; *y = m_yScrollPosition;
} }
void wxScrolledWindow::CalcScrolledPosition(int x, int y, int *xx, int *yy) const void wxGenericScrolledWindow::CalcScrolledPosition(int x, int y, int *xx, int *yy) const
{ {
if ( xx ) if ( xx )
*xx = x - m_xScrollPosition * m_xScrollPixelsPerLine; *xx = x - m_xScrollPosition * m_xScrollPixelsPerLine;
@@ -586,7 +590,7 @@ void wxScrolledWindow::CalcScrolledPosition(int x, int y, int *xx, int *yy) cons
*yy = y - m_yScrollPosition * m_yScrollPixelsPerLine; *yy = y - m_yScrollPosition * m_yScrollPixelsPerLine;
} }
void wxScrolledWindow::CalcUnscrolledPosition(int x, int y, int *xx, int *yy) const void wxGenericScrolledWindow::CalcUnscrolledPosition(int x, int y, int *xx, int *yy) const
{ {
if ( xx ) if ( xx )
*xx = x + m_xScrollPosition * m_xScrollPixelsPerLine; *xx = x + m_xScrollPosition * m_xScrollPixelsPerLine;
@@ -599,7 +603,7 @@ void wxScrolledWindow::CalcUnscrolledPosition(int x, int y, int *xx, int *yy) co
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// Default OnSize resets scrollbars, if any // Default OnSize resets scrollbars, if any
void wxScrolledWindow::OnSize(wxSizeEvent& WXUNUSED(event)) void wxGenericScrolledWindow::OnSize(wxSizeEvent& WXUNUSED(event))
{ {
#if wxUSE_CONSTRAINTS #if wxUSE_CONSTRAINTS
if (GetAutoLayout()) if (GetAutoLayout())
@@ -611,7 +615,7 @@ void wxScrolledWindow::OnSize(wxSizeEvent& WXUNUSED(event))
// This calls OnDraw, having adjusted the origin according to the current // This calls OnDraw, having adjusted the origin according to the current
// scroll position // scroll position
void wxScrolledWindow::OnPaint(wxPaintEvent& WXUNUSED(event)) void wxGenericScrolledWindow::OnPaint(wxPaintEvent& WXUNUSED(event))
{ {
wxPaintDC dc(this); wxPaintDC dc(this);
PrepareDC(dc); PrepareDC(dc);
@@ -623,7 +627,7 @@ void wxScrolledWindow::OnPaint(wxPaintEvent& WXUNUSED(event))
// compatibility here - if we used OnKeyDown(), the programs which process // compatibility here - if we used OnKeyDown(), the programs which process
// arrows themselves in their OnChar() would never get the message and like // arrows themselves in their OnChar() would never get the message and like
// this they always have the priority // this they always have the priority
void wxScrolledWindow::OnChar(wxKeyEvent& event) void wxGenericScrolledWindow::OnChar(wxKeyEvent& event)
{ {
int stx, sty, // view origin int stx, sty, // view origin
szx, szy, // view size (total) szx, szy, // view size (total)