A bit of scrolling works under GTK 2.0

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@14865 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling
2002-03-29 18:01:50 +00:00
parent af1d24da23
commit b5a49d4c52
6 changed files with 29 additions and 23 deletions

View File

@@ -87,12 +87,9 @@
#define NOTEBOOK_PANEL(nb) GTK_NOTEBOOK(nb)->panel #define NOTEBOOK_PANEL(nb) GTK_NOTEBOOK(nb)->panel
#endif #endif
// VZ: I _think_ that in GTK+ 2.0 the scroll type is passed to the
// value_changed callback as a 2nd argument but I'm not at all sure about
// it, if this is false all occurences of this macro must be changed!
#ifdef __WXGTK20__ #ifdef __WXGTK20__
#define SCROLLBAR_CBACK_ARG GtkScrollType scrollType, #define SCROLLBAR_CBACK_ARG
#define GET_SCROLL_TYPE(w) scrollType #define GET_SCROLL_TYPE(w) GTK_SCROLL_JUMP
#else #else
#define SCROLLBAR_CBACK_ARG #define SCROLLBAR_CBACK_ARG
#define GET_SCROLL_TYPE(w) GTK_RANGE((w))->scroll_type #define GET_SCROLL_TYPE(w) GTK_RANGE((w))->scroll_type

View File

@@ -87,12 +87,9 @@
#define NOTEBOOK_PANEL(nb) GTK_NOTEBOOK(nb)->panel #define NOTEBOOK_PANEL(nb) GTK_NOTEBOOK(nb)->panel
#endif #endif
// VZ: I _think_ that in GTK+ 2.0 the scroll type is passed to the
// value_changed callback as a 2nd argument but I'm not at all sure about
// it, if this is false all occurences of this macro must be changed!
#ifdef __WXGTK20__ #ifdef __WXGTK20__
#define SCROLLBAR_CBACK_ARG GtkScrollType scrollType, #define SCROLLBAR_CBACK_ARG
#define GET_SCROLL_TYPE(w) scrollType #define GET_SCROLL_TYPE(w) GTK_SCROLL_JUMP
#else #else
#define SCROLLBAR_CBACK_ARG #define SCROLLBAR_CBACK_ARG
#define GET_SCROLL_TYPE(w) GTK_RANGE((w))->scroll_type #define GET_SCROLL_TYPE(w) GTK_RANGE((w))->scroll_type

View File

@@ -74,6 +74,8 @@ public:
void OnPaint( wxPaintEvent &event ); void OnPaint( wxPaintEvent &event );
void OnEraseBackground( wxEraseEvent &event ); void OnEraseBackground( wxEraseEvent &event );
wxBitmap m_bitmap;
private: private:
DECLARE_EVENT_TABLE() DECLARE_EVENT_TABLE()
@@ -174,6 +176,10 @@ MyCanvas::MyCanvas( MyFrame *parent )
wxScrolledWindowStyle|wxNO_FULL_REPAINT_ON_RESIZE|wxSUNKEN_BORDER ) wxScrolledWindowStyle|wxNO_FULL_REPAINT_ON_RESIZE|wxSUNKEN_BORDER )
{ {
SetScrollbars( 10, 10, 40, 100, 0, 0 ); SetScrollbars( 10, 10, 40, 100, 0, 0 );
m_bitmap = wxBitmap( mondrian_xpm );
new wxStaticBitmap( this, -1, m_bitmap, wxPoint(80,20) );
} }
void MyCanvas::OnPaint( wxPaintEvent &event ) void MyCanvas::OnPaint( wxPaintEvent &event )
@@ -181,6 +187,11 @@ void MyCanvas::OnPaint( wxPaintEvent &event )
wxPaintDC dc(this); wxPaintDC dc(this);
PrepareDC( dc ); PrepareDC( dc );
dc.SetBrush( *wxBLACK_BRUSH );
dc.DrawRectangle( 0,0,200,50 );
dc.DrawBitmap( m_bitmap, 10, 20, TRUE );
#if 0 #if 0
wxRegionIterator upd( GetUpdateRegion() ); wxRegionIterator upd( GetUpdateRegion() );
while (upd) while (upd)

View File

@@ -1,13 +1,14 @@
/* XPM */ /* XPM */
static char *mondrian_xpm[] = { static char *mondrian_xpm[] = {
/* columns rows colors chars-per-pixel */ /* columns rows colors chars-per-pixel */
"32 32 6 1", "32 32 7 1",
" c Black", " c Black",
". c Blue", ". c Blue",
"X c #00bf00", "X c #00bf00",
"o c Red", "o c Red",
"O c Yellow", "O c Yellow",
"+ c Gray100", "+ c Gray100",
"a c None",
/* pixels */ /* pixels */
" ", " ",
" oooooo +++++++++++++++++++++++ ", " oooooo +++++++++++++++++++++++ ",
@@ -20,13 +21,13 @@ static char *mondrian_xpm[] = {
" ", " ",
" ++++++ ++++++++++++++++++ .... ", " ++++++ ++++++++++++++++++ .... ",
" ++++++ ++++++++++++++++++ .... ", " ++++++ ++++++++++++++++++ .... ",
" ++++++ +aaaaaaaaaaaaaaaa+ .... ",
" ++++++ +aaaaaaaaaaaaaaaa+ .... ",
" ++++++ ++++++++++++++++++ .... ", " ++++++ ++++++++++++++++++ .... ",
" ++++++ ++++++++++++++++++ .... ", " ++++++ +aaaaaaaaaaaaaaaa+ ",
" ++++++ ++++++++++++++++++ .... ", " ++++++ +aaaaaaaaaaaaaaaa+ ++++ ",
" ++++++ ++++++++++++++++++ ", " ++++++ +aaaaaaaaaaaaaaaa+ ++++ ",
" ++++++ ++++++++++++++++++ ++++ ", " ++++++ +aaaaaaaaaaaaaaaa+ ++++ ",
" ++++++ ++++++++++++++++++ ++++ ",
" ++++++ ++++++++++++++++++ ++++ ",
" ++++++ ++++++++++++++++++ ++++ ", " ++++++ ++++++++++++++++++ ++++ ",
" ++++++ ++++++++++++++++++ ++++ ", " ++++++ ++++++++++++++++++ ++++ ",
" ++++++ ++++++++++++++++++ ++++ ", " ++++++ ++++++++++++++++++ ++++ ",

View File

@@ -4092,10 +4092,10 @@ void wxWindowGTK::ScrollWindow( int dx, int dy, const wxRect* WXUNUSED(rect) )
m_clipPaintRegion = FALSE; m_clipPaintRegion = FALSE;
#else #else
gdk_window_scroll( GTK_PIZZA(m_wxwindow)->bin_window, -dx, -dy ); gdk_window_scroll( GTK_PIZZA(m_wxwindow)->bin_window, dx, dy );
GTK_PIZZA(m_wxwindow)->xoffset -= dx; GTK_PIZZA(m_wxwindow)->xoffset += dx;
GTK_PIZZA(m_wxwindow)->yoffset -= dy; GTK_PIZZA(m_wxwindow)->yoffset += dy;
#endif #endif

View File

@@ -4092,10 +4092,10 @@ void wxWindowGTK::ScrollWindow( int dx, int dy, const wxRect* WXUNUSED(rect) )
m_clipPaintRegion = FALSE; m_clipPaintRegion = FALSE;
#else #else
gdk_window_scroll( GTK_PIZZA(m_wxwindow)->bin_window, -dx, -dy ); gdk_window_scroll( GTK_PIZZA(m_wxwindow)->bin_window, dx, dy );
GTK_PIZZA(m_wxwindow)->xoffset -= dx; GTK_PIZZA(m_wxwindow)->xoffset += dx;
GTK_PIZZA(m_wxwindow)->yoffset -= dy; GTK_PIZZA(m_wxwindow)->yoffset += dy;
#endif #endif