Small testing changes,

Small flicker reduction in wxGrid.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6126 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling
2000-02-17 21:17:54 +00:00
parent d6f0a4b367
commit c916e13bc0
6 changed files with 21 additions and 121 deletions

View File

@@ -616,7 +616,6 @@ void MyCanvas::DrawDefault(wxDC& dc)
// to the right // to the right
wxPen pen = *wxRED_PEN; wxPen pen = *wxRED_PEN;
pen.SetWidth(2);
memdc.SetPen(pen); memdc.SetPen(pen);
memdc.DrawLine( 10, 5,10, 5 ); memdc.DrawLine( 10, 5,10, 5 );
memdc.DrawLine( 10,10,11,10 ); memdc.DrawLine( 10,10,11,10 );
@@ -1060,8 +1059,10 @@ void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event)) void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
{ {
wxString msg; wxString msg;
msg.Printf( _T("This is the about dialog of the drawing sample.\n") msg.Printf( wxT("This is the about dialog of the drawing sample.\n")
_T("Copyright (c) Robert Roebling 1999") wxT("This sample tests various primitive drawing functions\n")
wxT("without any tests to prevent flicker.\n")
wxT("Copyright (c) Robert Roebling 1999")
); );
wxMessageBox(msg, "About Drawing", wxOK | wxICON_INFORMATION, this); wxMessageBox(msg, "About Drawing", wxOK | wxICON_INFORMATION, this);

View File

@@ -5536,6 +5536,9 @@ int wxGrid::GetColSize( int col )
void wxGrid::SetDefaultCellBackgroundColour( const wxColour& col ) void wxGrid::SetDefaultCellBackgroundColour( const wxColour& col )
{ {
m_defaultCellAttr->SetBackgroundColour(col); m_defaultCellAttr->SetBackgroundColour(col);
#ifdef __WXGTK__
m_gridWin->SetBackgroundColour(col);
#endif
} }
void wxGrid::SetDefaultCellTextColour( const wxColour& col ) void wxGrid::SetDefaultCellTextColour( const wxColour& col )

View File

@@ -18,6 +18,10 @@
extern "C" { extern "C" {
#endif /* __cplusplus */ #endif /* __cplusplus */
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xatom.h>
#define IS_ONSCREEN(x,y) ((x >= G_MINSHORT) && (x <= G_MAXSHORT) && \ #define IS_ONSCREEN(x,y) ((x >= G_MINSHORT) && (x <= G_MAXSHORT) && \
(y >= G_MINSHORT) && (y <= G_MAXSHORT)) (y >= G_MINSHORT) && (y <= G_MAXSHORT))

View File

@@ -2927,7 +2927,7 @@ void wxWindow::Clear()
if (m_wxwindow && m_wxwindow->window) if (m_wxwindow && m_wxwindow->window)
{ {
gdk_window_clear( m_wxwindow->window ); // gdk_window_clear( m_wxwindow->window );
} }
} }
@@ -3435,61 +3435,5 @@ void wxWindow::ScrollWindow( int dx, int dy, const wxRect* WXUNUSED(rect) )
wxCHECK_RET( m_wxwindow != NULL, wxT("window needs client area for scrolling") ); wxCHECK_RET( m_wxwindow != NULL, wxT("window needs client area for scrolling") );
/*
printf( "ScrollWindow: %d %d\n", dx, dy );
*/
gtk_pizza_scroll( GTK_PIZZA(m_wxwindow), -dx, -dy ); gtk_pizza_scroll( GTK_PIZZA(m_wxwindow), -dx, -dy );
/*
if (!m_scrollGC)
{
m_scrollGC = gdk_gc_new( m_wxwindow->window );
gdk_gc_set_exposures( m_scrollGC, TRUE );
}
wxNode *node = m_children.First();
while (node)
{
wxWindow *child = (wxWindow*) node->Data();
int sx = 0;
int sy = 0;
child->GetSize( &sx, &sy );
child->SetSize( child->m_x + dx, child->m_y + dy, sx, sy, wxSIZE_ALLOW_MINUS_ONE );
node = node->Next();
}
int cw = 0;
int ch = 0;
GetClientSize( &cw, &ch );
int w = cw - abs(dx);
int h = ch - abs(dy);
if ((h < 0) || (w < 0))
{
Refresh();
}
else
{
int s_x = 0;
int s_y = 0;
if (dx < 0) s_x = -dx;
if (dy < 0) s_y = -dy;
int d_x = 0;
int d_y = 0;
if (dx > 0) d_x = dx;
if (dy > 0) d_y = dy;
gdk_window_copy_area( m_wxwindow->window, m_scrollGC, d_x, d_y,
m_wxwindow->window, s_x, s_y, w, h );
wxRect rect;
if (dx < 0) rect.x = cw+dx; else rect.x = 0;
if (dy < 0) rect.y = ch+dy; else rect.y = 0;
if (dy != 0) rect.width = cw; else rect.width = abs(dx);
if (dx != 0) rect.height = ch; else rect.height = abs(dy);
Refresh( TRUE, &rect );
}
*/
} }

View File

@@ -18,6 +18,10 @@
extern "C" { extern "C" {
#endif /* __cplusplus */ #endif /* __cplusplus */
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xatom.h>
#define IS_ONSCREEN(x,y) ((x >= G_MINSHORT) && (x <= G_MAXSHORT) && \ #define IS_ONSCREEN(x,y) ((x >= G_MINSHORT) && (x <= G_MAXSHORT) && \
(y >= G_MINSHORT) && (y <= G_MAXSHORT)) (y >= G_MINSHORT) && (y <= G_MAXSHORT))

View File

@@ -2927,7 +2927,7 @@ void wxWindow::Clear()
if (m_wxwindow && m_wxwindow->window) if (m_wxwindow && m_wxwindow->window)
{ {
gdk_window_clear( m_wxwindow->window ); // gdk_window_clear( m_wxwindow->window );
} }
} }
@@ -3435,61 +3435,5 @@ void wxWindow::ScrollWindow( int dx, int dy, const wxRect* WXUNUSED(rect) )
wxCHECK_RET( m_wxwindow != NULL, wxT("window needs client area for scrolling") ); wxCHECK_RET( m_wxwindow != NULL, wxT("window needs client area for scrolling") );
/*
printf( "ScrollWindow: %d %d\n", dx, dy );
*/
gtk_pizza_scroll( GTK_PIZZA(m_wxwindow), -dx, -dy ); gtk_pizza_scroll( GTK_PIZZA(m_wxwindow), -dx, -dy );
/*
if (!m_scrollGC)
{
m_scrollGC = gdk_gc_new( m_wxwindow->window );
gdk_gc_set_exposures( m_scrollGC, TRUE );
}
wxNode *node = m_children.First();
while (node)
{
wxWindow *child = (wxWindow*) node->Data();
int sx = 0;
int sy = 0;
child->GetSize( &sx, &sy );
child->SetSize( child->m_x + dx, child->m_y + dy, sx, sy, wxSIZE_ALLOW_MINUS_ONE );
node = node->Next();
}
int cw = 0;
int ch = 0;
GetClientSize( &cw, &ch );
int w = cw - abs(dx);
int h = ch - abs(dy);
if ((h < 0) || (w < 0))
{
Refresh();
}
else
{
int s_x = 0;
int s_y = 0;
if (dx < 0) s_x = -dx;
if (dy < 0) s_y = -dy;
int d_x = 0;
int d_y = 0;
if (dx > 0) d_x = dx;
if (dy > 0) d_y = dy;
gdk_window_copy_area( m_wxwindow->window, m_scrollGC, d_x, d_y,
m_wxwindow->window, s_x, s_y, w, h );
wxRect rect;
if (dx < 0) rect.x = cw+dx; else rect.x = 0;
if (dy < 0) rect.y = ch+dy; else rect.y = 0;
if (dy != 0) rect.width = cw; else rect.width = abs(dx);
if (dx != 0) rect.height = ch; else rect.height = abs(dy);
Refresh( TRUE, &rect );
}
*/
} }