Various update to Blit() SetBackground() Clear() etc.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1664 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -190,6 +190,7 @@ cp ./gtk/glcanvas.h ~/wxgtk_dist/wxGTK/utils/glcanvas/gtk
|
|||||||
|
|
||||||
mkdir ~/wxgtk_dist/wxGTK/utils/glcanvas/samples
|
mkdir ~/wxgtk_dist/wxGTK/utils/glcanvas/samples
|
||||||
mkdir ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/cube
|
mkdir ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/cube
|
||||||
|
mkdir ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/isosurf
|
||||||
mkdir ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/penguin
|
mkdir ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/penguin
|
||||||
|
|
||||||
cd samples/cube
|
cd samples/cube
|
||||||
@@ -198,6 +199,13 @@ cp cube.h ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/cube
|
|||||||
cp cube.cpp ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/cube
|
cp cube.cpp ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/cube
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
|
cd isosurf
|
||||||
|
cp Makefile ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/isosurf
|
||||||
|
cp isosurf.h ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/isosurf
|
||||||
|
cp isosurf.cpp ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/isosurf
|
||||||
|
cp isosurf.dat.gz ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/isosurf
|
||||||
|
cd ..
|
||||||
|
|
||||||
cd penguin
|
cd penguin
|
||||||
cp Makefile ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/penguin
|
cp Makefile ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/penguin
|
||||||
cp penguin.h ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/penguin
|
cp penguin.h ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/penguin
|
||||||
|
@@ -171,7 +171,7 @@ void Card::Erase(wxDC& dc, int x, int y)
|
|||||||
//+-------------------------------------------------------------+
|
//+-------------------------------------------------------------+
|
||||||
void Card::Draw(wxDC& dc, int x, int y)
|
void Card::Draw(wxDC& dc, int x, int y)
|
||||||
{
|
{
|
||||||
wxBrush* backgroundBrush = & dc.GetBackground();
|
wxBrush backgroundBrush( dc.GetBackground() );
|
||||||
dc.SetBrush(* wxWHITE_BRUSH);
|
dc.SetBrush(* wxWHITE_BRUSH);
|
||||||
dc.SetPen(* wxBLACK_PEN);
|
dc.SetPen(* wxBLACK_PEN);
|
||||||
dc.DrawRoundedRectangle(x, y, CardWidth, CardHeight, 4);
|
dc.DrawRoundedRectangle(x, y, CardWidth, CardHeight, 4);
|
||||||
@@ -336,7 +336,7 @@ void Card::Draw(wxDC& dc, int x, int y)
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
dc.SetBackground(* backgroundBrush);
|
dc.SetBackground( backgroundBrush );
|
||||||
} // Card:Draw()
|
} // Card:Draw()
|
||||||
|
|
||||||
|
|
||||||
|
@@ -167,6 +167,7 @@ void wxColour::CalcPixel( GdkColormap *cmap )
|
|||||||
if (!Ok()) return;
|
if (!Ok()) return;
|
||||||
|
|
||||||
if ((M_COLDATA->m_hasPixel) && (M_COLDATA->m_colormap == cmap)) return;
|
if ((M_COLDATA->m_hasPixel) && (M_COLDATA->m_colormap == cmap)) return;
|
||||||
|
|
||||||
M_COLDATA->FreeColour();
|
M_COLDATA->FreeColour();
|
||||||
|
|
||||||
GdkColormapPrivate *private_colormap = (GdkColormapPrivate*) cmap;
|
GdkColormapPrivate *private_colormap = (GdkColormapPrivate*) cmap;
|
||||||
|
@@ -611,19 +611,37 @@ bool wxWindowDC::Blit( long xdest, long ydest, long width, long height,
|
|||||||
/* we use the "XCopyArea" way to copy a memory dc into
|
/* we use the "XCopyArea" way to copy a memory dc into
|
||||||
y different window if the memory dc BOTH
|
y different window if the memory dc BOTH
|
||||||
a) doesn't have any mask or its mask isn't used
|
a) doesn't have any mask or its mask isn't used
|
||||||
b) it is clipped.
|
b) it is clipped
|
||||||
we HAVE TO use the direct way for memory dcs
|
c) is not 1-bit */
|
||||||
that have mask since the XCopyArea doesn't know
|
|
||||||
about masks and we SHOULD use the direct way if
|
|
||||||
all of the bitmap in the memory dc is copied in
|
|
||||||
which case XCopyArea wouldn't be able able to
|
|
||||||
boost performace by reducing the area to be scaled */
|
|
||||||
|
|
||||||
use_bitmap_method = ( (useMask && (memDC->m_selected.GetMask())) ||
|
if (useMask && (memDC->m_selected.GetMask()))
|
||||||
((xsrc == 0) && (ysrc == 0) &&
|
{
|
||||||
(width == memDC->m_selected.GetWidth()) &&
|
/* we HAVE TO use the direct way for memory dcs
|
||||||
(height == memDC->m_selected.GetHeight()) )
|
that have mask since the XCopyArea doesn't know
|
||||||
);
|
about masks and */
|
||||||
|
use_bitmap_method = TRUE;
|
||||||
|
}
|
||||||
|
else if (memDC->m_selected.GetDepth() == 1)
|
||||||
|
{
|
||||||
|
/* we HAVE TO use the direct way for memory dcs
|
||||||
|
that are bitmaps because XCopyArea doesn't copy
|
||||||
|
with different bit depths */
|
||||||
|
use_bitmap_method = TRUE;
|
||||||
|
}
|
||||||
|
else if ((xsrc == 0) && (ysrc == 0) &&
|
||||||
|
(width == memDC->m_selected.GetWidth()) &&
|
||||||
|
(height == memDC->m_selected.GetHeight()))
|
||||||
|
{
|
||||||
|
/* we SHOULD use the direct way if all of the bitmap
|
||||||
|
in the memory dc is copied in which case XCopyArea
|
||||||
|
wouldn't be able able to boost performace by reducing
|
||||||
|
the area to be scaled */
|
||||||
|
use_bitmap_method = TRUE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
use_bitmap_method = FALSE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CalcBoundingBox( xdest, ydest );
|
CalcBoundingBox( xdest, ydest );
|
||||||
@@ -648,6 +666,8 @@ bool wxWindowDC::Blit( long xdest, long ydest, long width, long height,
|
|||||||
|
|
||||||
if ((bm_width != bm_ww) || (bm_height != bm_hh))
|
if ((bm_width != bm_ww) || (bm_height != bm_hh))
|
||||||
{
|
{
|
||||||
|
printf( "scaling.\n" );
|
||||||
|
|
||||||
wxImage image( memDC->m_selected );
|
wxImage image( memDC->m_selected );
|
||||||
image = image.Scale( bm_ww, bm_hh );
|
image = image.Scale( bm_ww, bm_hh );
|
||||||
|
|
||||||
@@ -682,14 +702,16 @@ bool wxWindowDC::Blit( long xdest, long ydest, long width, long height,
|
|||||||
GdkPixmap *pm = use_bitmap.GetPixmap();
|
GdkPixmap *pm = use_bitmap.GetPixmap();
|
||||||
if (pm)
|
if (pm)
|
||||||
{
|
{
|
||||||
gdk_draw_pixmap( m_window, m_penGC, pm, 0, 0, xx, yy, ww, hh );
|
gdk_draw_pixmap( m_window, m_penGC, pm, xsrc, ysrc, xx, yy, ww, hh );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
GdkBitmap *bm = use_bitmap.GetBitmap();
|
GdkBitmap *bm = use_bitmap.GetBitmap();
|
||||||
if (bm)
|
if (bm)
|
||||||
{
|
{
|
||||||
gdk_draw_bitmap( m_window, m_penGC, bm, 0, 0, xx, yy, ww, hh );
|
/* we use the textGC here because blitting a bitmap is done
|
||||||
|
using the current text colour */
|
||||||
|
gdk_draw_bitmap( m_window, m_textGC, bm, xsrc, ysrc, xx, yy, ww, hh );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -837,15 +859,27 @@ void wxWindowDC::Clear()
|
|||||||
{
|
{
|
||||||
wxCHECK_RET( Ok(), "invalid window dc" );
|
wxCHECK_RET( Ok(), "invalid window dc" );
|
||||||
|
|
||||||
if (!m_isMemDC)
|
/* - we either are a memory dc or have a window as the
|
||||||
|
owner. anything else shouldn't happen.
|
||||||
|
- we don't use gdk_window_clear() as we don't set
|
||||||
|
the window's background colour anymore. it is too
|
||||||
|
much pain to keep the DC's and the window's back-
|
||||||
|
ground colour in synch. */
|
||||||
|
|
||||||
|
if (m_owner)
|
||||||
{
|
{
|
||||||
gdk_window_clear( m_window );
|
int width,height;
|
||||||
|
m_owner->GetSize( &width, &height );
|
||||||
|
gdk_draw_rectangle( m_window, m_bgGC, TRUE, 0, 0, width, height );
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
if (m_isMemDC)
|
||||||
{
|
{
|
||||||
int width,height;
|
int width,height;
|
||||||
GetSize( &width, &height );
|
GetSize( &width, &height );
|
||||||
gdk_draw_rectangle( m_window, m_bgGC, TRUE, 0, 0, width, height );
|
gdk_draw_rectangle( m_window, m_bgGC, TRUE, 0, 0, width, height );
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -962,11 +996,6 @@ void wxWindowDC::SetBackground( const wxBrush &brush )
|
|||||||
|
|
||||||
if (!m_backgroundBrush.Ok()) return;
|
if (!m_backgroundBrush.Ok()) return;
|
||||||
|
|
||||||
if (m_owner)
|
|
||||||
{
|
|
||||||
m_owner->SetBackgroundColour( m_backgroundBrush.GetColour() );
|
|
||||||
}
|
|
||||||
|
|
||||||
m_backgroundBrush.GetColour().CalcPixel( m_cmap );
|
m_backgroundBrush.GetColour().CalcPixel( m_cmap );
|
||||||
gdk_gc_set_background( m_brushGC, m_backgroundBrush.GetColour().GetColor() );
|
gdk_gc_set_background( m_brushGC, m_backgroundBrush.GetColour().GetColor() );
|
||||||
gdk_gc_set_background( m_penGC, m_backgroundBrush.GetColour().GetColor() );
|
gdk_gc_set_background( m_penGC, m_backgroundBrush.GetColour().GetColor() );
|
||||||
|
@@ -433,7 +433,7 @@ int wxDialog::ShowModal()
|
|||||||
wxFAIL_MSG( "wxDialog:ShowModal called twice" );
|
wxFAIL_MSG( "wxDialog:ShowModal called twice" );
|
||||||
return GetReturnCode();
|
return GetReturnCode();
|
||||||
}
|
}
|
||||||
|
|
||||||
Show( TRUE );
|
Show( TRUE );
|
||||||
|
|
||||||
m_modalShowing = TRUE;
|
m_modalShowing = TRUE;
|
||||||
|
@@ -2424,12 +2424,11 @@ void wxWindow::Refresh( bool eraseBackground, const wxRect *rect )
|
|||||||
{
|
{
|
||||||
gdk_window_clear_area( m_wxwindow->window,
|
gdk_window_clear_area( m_wxwindow->window,
|
||||||
rect->x, rect->y,
|
rect->x, rect->y,
|
||||||
rect->width,
|
rect->width, rect->height );
|
||||||
rect->height );
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Clear();
|
gdk_window_clear( m_wxwindow->window );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2484,7 +2483,10 @@ void wxWindow::Clear()
|
|||||||
{
|
{
|
||||||
wxCHECK_RET( m_widget != NULL, "invalid window" );
|
wxCHECK_RET( m_widget != NULL, "invalid window" );
|
||||||
|
|
||||||
if (m_wxwindow && m_wxwindow->window) gdk_window_clear( m_wxwindow->window );
|
if (m_wxwindow && m_wxwindow->window)
|
||||||
|
{
|
||||||
|
gdk_window_clear( m_wxwindow->window );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if wxUSE_TOOLTIPS
|
#if wxUSE_TOOLTIPS
|
||||||
@@ -2537,14 +2539,18 @@ void wxWindow::SetBackgroundColour( const wxColour &colour )
|
|||||||
m_backgroundColour = colour;
|
m_backgroundColour = colour;
|
||||||
if (!m_backgroundColour.Ok()) return;
|
if (!m_backgroundColour.Ok()) return;
|
||||||
|
|
||||||
if (m_wxwindow)
|
if (m_wxwindow && m_wxwindow->window)
|
||||||
{
|
{
|
||||||
GdkWindow *window = m_wxwindow->window;
|
/* wxMSW doesn't clear the window here. I don't do that
|
||||||
m_backgroundColour.CalcPixel( gdk_window_get_colormap( window ) );
|
either to provide compatibility. call Clear() to do
|
||||||
gdk_window_set_background( window, m_backgroundColour.GetColor() );
|
the job. */
|
||||||
|
|
||||||
|
m_backgroundColour.CalcPixel( gdk_window_get_colormap( m_wxwindow->window ) );
|
||||||
|
gdk_window_set_background( m_wxwindow->window, m_backgroundColour.GetColor() );
|
||||||
}
|
}
|
||||||
|
|
||||||
wxColour sysbg = wxSystemSettings::GetSystemColour( wxSYS_COLOUR_BTNFACE );
|
wxColour sysbg = wxSystemSettings::GetSystemColour( wxSYS_COLOUR_BTNFACE );
|
||||||
|
|
||||||
if (sysbg.Red() == colour.Red() &&
|
if (sysbg.Red() == colour.Red() &&
|
||||||
sysbg.Green() == colour.Green() &&
|
sysbg.Green() == colour.Green() &&
|
||||||
sysbg.Blue() == colour.Blue())
|
sysbg.Blue() == colour.Blue())
|
||||||
|
@@ -167,6 +167,7 @@ void wxColour::CalcPixel( GdkColormap *cmap )
|
|||||||
if (!Ok()) return;
|
if (!Ok()) return;
|
||||||
|
|
||||||
if ((M_COLDATA->m_hasPixel) && (M_COLDATA->m_colormap == cmap)) return;
|
if ((M_COLDATA->m_hasPixel) && (M_COLDATA->m_colormap == cmap)) return;
|
||||||
|
|
||||||
M_COLDATA->FreeColour();
|
M_COLDATA->FreeColour();
|
||||||
|
|
||||||
GdkColormapPrivate *private_colormap = (GdkColormapPrivate*) cmap;
|
GdkColormapPrivate *private_colormap = (GdkColormapPrivate*) cmap;
|
||||||
|
@@ -611,19 +611,37 @@ bool wxWindowDC::Blit( long xdest, long ydest, long width, long height,
|
|||||||
/* we use the "XCopyArea" way to copy a memory dc into
|
/* we use the "XCopyArea" way to copy a memory dc into
|
||||||
y different window if the memory dc BOTH
|
y different window if the memory dc BOTH
|
||||||
a) doesn't have any mask or its mask isn't used
|
a) doesn't have any mask or its mask isn't used
|
||||||
b) it is clipped.
|
b) it is clipped
|
||||||
we HAVE TO use the direct way for memory dcs
|
c) is not 1-bit */
|
||||||
that have mask since the XCopyArea doesn't know
|
|
||||||
about masks and we SHOULD use the direct way if
|
|
||||||
all of the bitmap in the memory dc is copied in
|
|
||||||
which case XCopyArea wouldn't be able able to
|
|
||||||
boost performace by reducing the area to be scaled */
|
|
||||||
|
|
||||||
use_bitmap_method = ( (useMask && (memDC->m_selected.GetMask())) ||
|
if (useMask && (memDC->m_selected.GetMask()))
|
||||||
((xsrc == 0) && (ysrc == 0) &&
|
{
|
||||||
(width == memDC->m_selected.GetWidth()) &&
|
/* we HAVE TO use the direct way for memory dcs
|
||||||
(height == memDC->m_selected.GetHeight()) )
|
that have mask since the XCopyArea doesn't know
|
||||||
);
|
about masks and */
|
||||||
|
use_bitmap_method = TRUE;
|
||||||
|
}
|
||||||
|
else if (memDC->m_selected.GetDepth() == 1)
|
||||||
|
{
|
||||||
|
/* we HAVE TO use the direct way for memory dcs
|
||||||
|
that are bitmaps because XCopyArea doesn't copy
|
||||||
|
with different bit depths */
|
||||||
|
use_bitmap_method = TRUE;
|
||||||
|
}
|
||||||
|
else if ((xsrc == 0) && (ysrc == 0) &&
|
||||||
|
(width == memDC->m_selected.GetWidth()) &&
|
||||||
|
(height == memDC->m_selected.GetHeight()))
|
||||||
|
{
|
||||||
|
/* we SHOULD use the direct way if all of the bitmap
|
||||||
|
in the memory dc is copied in which case XCopyArea
|
||||||
|
wouldn't be able able to boost performace by reducing
|
||||||
|
the area to be scaled */
|
||||||
|
use_bitmap_method = TRUE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
use_bitmap_method = FALSE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CalcBoundingBox( xdest, ydest );
|
CalcBoundingBox( xdest, ydest );
|
||||||
@@ -648,6 +666,8 @@ bool wxWindowDC::Blit( long xdest, long ydest, long width, long height,
|
|||||||
|
|
||||||
if ((bm_width != bm_ww) || (bm_height != bm_hh))
|
if ((bm_width != bm_ww) || (bm_height != bm_hh))
|
||||||
{
|
{
|
||||||
|
printf( "scaling.\n" );
|
||||||
|
|
||||||
wxImage image( memDC->m_selected );
|
wxImage image( memDC->m_selected );
|
||||||
image = image.Scale( bm_ww, bm_hh );
|
image = image.Scale( bm_ww, bm_hh );
|
||||||
|
|
||||||
@@ -682,14 +702,16 @@ bool wxWindowDC::Blit( long xdest, long ydest, long width, long height,
|
|||||||
GdkPixmap *pm = use_bitmap.GetPixmap();
|
GdkPixmap *pm = use_bitmap.GetPixmap();
|
||||||
if (pm)
|
if (pm)
|
||||||
{
|
{
|
||||||
gdk_draw_pixmap( m_window, m_penGC, pm, 0, 0, xx, yy, ww, hh );
|
gdk_draw_pixmap( m_window, m_penGC, pm, xsrc, ysrc, xx, yy, ww, hh );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
GdkBitmap *bm = use_bitmap.GetBitmap();
|
GdkBitmap *bm = use_bitmap.GetBitmap();
|
||||||
if (bm)
|
if (bm)
|
||||||
{
|
{
|
||||||
gdk_draw_bitmap( m_window, m_penGC, bm, 0, 0, xx, yy, ww, hh );
|
/* we use the textGC here because blitting a bitmap is done
|
||||||
|
using the current text colour */
|
||||||
|
gdk_draw_bitmap( m_window, m_textGC, bm, xsrc, ysrc, xx, yy, ww, hh );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -837,15 +859,27 @@ void wxWindowDC::Clear()
|
|||||||
{
|
{
|
||||||
wxCHECK_RET( Ok(), "invalid window dc" );
|
wxCHECK_RET( Ok(), "invalid window dc" );
|
||||||
|
|
||||||
if (!m_isMemDC)
|
/* - we either are a memory dc or have a window as the
|
||||||
|
owner. anything else shouldn't happen.
|
||||||
|
- we don't use gdk_window_clear() as we don't set
|
||||||
|
the window's background colour anymore. it is too
|
||||||
|
much pain to keep the DC's and the window's back-
|
||||||
|
ground colour in synch. */
|
||||||
|
|
||||||
|
if (m_owner)
|
||||||
{
|
{
|
||||||
gdk_window_clear( m_window );
|
int width,height;
|
||||||
|
m_owner->GetSize( &width, &height );
|
||||||
|
gdk_draw_rectangle( m_window, m_bgGC, TRUE, 0, 0, width, height );
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
if (m_isMemDC)
|
||||||
{
|
{
|
||||||
int width,height;
|
int width,height;
|
||||||
GetSize( &width, &height );
|
GetSize( &width, &height );
|
||||||
gdk_draw_rectangle( m_window, m_bgGC, TRUE, 0, 0, width, height );
|
gdk_draw_rectangle( m_window, m_bgGC, TRUE, 0, 0, width, height );
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -962,11 +996,6 @@ void wxWindowDC::SetBackground( const wxBrush &brush )
|
|||||||
|
|
||||||
if (!m_backgroundBrush.Ok()) return;
|
if (!m_backgroundBrush.Ok()) return;
|
||||||
|
|
||||||
if (m_owner)
|
|
||||||
{
|
|
||||||
m_owner->SetBackgroundColour( m_backgroundBrush.GetColour() );
|
|
||||||
}
|
|
||||||
|
|
||||||
m_backgroundBrush.GetColour().CalcPixel( m_cmap );
|
m_backgroundBrush.GetColour().CalcPixel( m_cmap );
|
||||||
gdk_gc_set_background( m_brushGC, m_backgroundBrush.GetColour().GetColor() );
|
gdk_gc_set_background( m_brushGC, m_backgroundBrush.GetColour().GetColor() );
|
||||||
gdk_gc_set_background( m_penGC, m_backgroundBrush.GetColour().GetColor() );
|
gdk_gc_set_background( m_penGC, m_backgroundBrush.GetColour().GetColor() );
|
||||||
|
@@ -433,7 +433,7 @@ int wxDialog::ShowModal()
|
|||||||
wxFAIL_MSG( "wxDialog:ShowModal called twice" );
|
wxFAIL_MSG( "wxDialog:ShowModal called twice" );
|
||||||
return GetReturnCode();
|
return GetReturnCode();
|
||||||
}
|
}
|
||||||
|
|
||||||
Show( TRUE );
|
Show( TRUE );
|
||||||
|
|
||||||
m_modalShowing = TRUE;
|
m_modalShowing = TRUE;
|
||||||
|
@@ -2424,12 +2424,11 @@ void wxWindow::Refresh( bool eraseBackground, const wxRect *rect )
|
|||||||
{
|
{
|
||||||
gdk_window_clear_area( m_wxwindow->window,
|
gdk_window_clear_area( m_wxwindow->window,
|
||||||
rect->x, rect->y,
|
rect->x, rect->y,
|
||||||
rect->width,
|
rect->width, rect->height );
|
||||||
rect->height );
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Clear();
|
gdk_window_clear( m_wxwindow->window );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2484,7 +2483,10 @@ void wxWindow::Clear()
|
|||||||
{
|
{
|
||||||
wxCHECK_RET( m_widget != NULL, "invalid window" );
|
wxCHECK_RET( m_widget != NULL, "invalid window" );
|
||||||
|
|
||||||
if (m_wxwindow && m_wxwindow->window) gdk_window_clear( m_wxwindow->window );
|
if (m_wxwindow && m_wxwindow->window)
|
||||||
|
{
|
||||||
|
gdk_window_clear( m_wxwindow->window );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if wxUSE_TOOLTIPS
|
#if wxUSE_TOOLTIPS
|
||||||
@@ -2537,14 +2539,18 @@ void wxWindow::SetBackgroundColour( const wxColour &colour )
|
|||||||
m_backgroundColour = colour;
|
m_backgroundColour = colour;
|
||||||
if (!m_backgroundColour.Ok()) return;
|
if (!m_backgroundColour.Ok()) return;
|
||||||
|
|
||||||
if (m_wxwindow)
|
if (m_wxwindow && m_wxwindow->window)
|
||||||
{
|
{
|
||||||
GdkWindow *window = m_wxwindow->window;
|
/* wxMSW doesn't clear the window here. I don't do that
|
||||||
m_backgroundColour.CalcPixel( gdk_window_get_colormap( window ) );
|
either to provide compatibility. call Clear() to do
|
||||||
gdk_window_set_background( window, m_backgroundColour.GetColor() );
|
the job. */
|
||||||
|
|
||||||
|
m_backgroundColour.CalcPixel( gdk_window_get_colormap( m_wxwindow->window ) );
|
||||||
|
gdk_window_set_background( m_wxwindow->window, m_backgroundColour.GetColor() );
|
||||||
}
|
}
|
||||||
|
|
||||||
wxColour sysbg = wxSystemSettings::GetSystemColour( wxSYS_COLOUR_BTNFACE );
|
wxColour sysbg = wxSystemSettings::GetSystemColour( wxSYS_COLOUR_BTNFACE );
|
||||||
|
|
||||||
if (sysbg.Red() == colour.Red() &&
|
if (sysbg.Red() == colour.Red() &&
|
||||||
sysbg.Green() == colour.Green() &&
|
sysbg.Green() == colour.Green() &&
|
||||||
sysbg.Blue() == colour.Blue())
|
sysbg.Blue() == colour.Blue())
|
||||||
|
@@ -1,10 +1,10 @@
|
|||||||
Summary: The GTK+ 1.0 port of wxWindows library
|
Summary: The GTK+ 1.0 port of wxWindows library
|
||||||
Name: wxGTK
|
Name: wxGTK
|
||||||
Version: 1.99.3
|
Version: 1.99.4
|
||||||
Release: 1
|
Release: 1
|
||||||
Copyright: wxWindows Licence
|
Copyright: wxWindows Licence
|
||||||
Group: X11/Libraries
|
Group: X11/Libraries
|
||||||
Source: ftp://wesley.informatik.uni-freiburg.de/pub/linux/wxxt/source/wxGTK2b3.tgz
|
Source: ftp://wesley.informatik.uni-freiburg.de/pub/linux/wxxt/source/wxGTK2b4.tgz
|
||||||
URL: http://www.freiburg.linux.de/~wxxt/docs.html
|
URL: http://www.freiburg.linux.de/~wxxt/docs.html
|
||||||
Packager: Robert Roebling <roebling@ruf.uni-freiburg.de>
|
Packager: Robert Roebling <roebling@ruf.uni-freiburg.de>
|
||||||
Requires: gtk+ >= 1.0.4
|
Requires: gtk+ >= 1.0.4
|
||||||
|
Reference in New Issue
Block a user