more code simplification
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50847 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -1613,7 +1613,7 @@ void wxWindowDCImpl::DoGetTextExtent(const wxString &string,
|
|||||||
|
|
||||||
// ensure that theFont is always non-NULL
|
// ensure that theFont is always non-NULL
|
||||||
if ( !theFont || !theFont->IsOk() )
|
if ( !theFont || !theFont->IsOk() )
|
||||||
theFont = wx_const_cast(wxFont *, &m_font);
|
theFont = &m_font;
|
||||||
|
|
||||||
// and use it if it's valid
|
// and use it if it's valid
|
||||||
if ( theFont->IsOk() )
|
if ( theFont->IsOk() )
|
||||||
@@ -1633,24 +1633,19 @@ void wxWindowDCImpl::DoGetTextExtent(const wxString &string,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
pango_layout_set_text( m_layout, dataUTF8, strlen(dataUTF8) );
|
pango_layout_set_text(m_layout, dataUTF8, -1);
|
||||||
|
|
||||||
if (descent)
|
|
||||||
{
|
|
||||||
int h;
|
int h;
|
||||||
pango_layout_get_pixel_size(m_layout, width, &h);
|
pango_layout_get_pixel_size(m_layout, width, &h);
|
||||||
|
if (descent)
|
||||||
|
{
|
||||||
PangoLayoutIter *iter = pango_layout_get_iter(m_layout);
|
PangoLayoutIter *iter = pango_layout_get_iter(m_layout);
|
||||||
int baseline = pango_layout_iter_get_baseline(iter);
|
int baseline = pango_layout_iter_get_baseline(iter);
|
||||||
pango_layout_iter_free(iter);
|
pango_layout_iter_free(iter);
|
||||||
*descent = h - PANGO_PIXELS(baseline);
|
*descent = h - PANGO_PIXELS(baseline);
|
||||||
|
}
|
||||||
if (height)
|
if (height)
|
||||||
*height = (wxCoord) h;
|
*height = h;
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
pango_layout_get_pixel_size( m_layout, width, height );
|
|
||||||
}
|
|
||||||
|
|
||||||
// Reset old font description
|
// Reset old font description
|
||||||
if (theFont->IsOk())
|
if (theFont->IsOk())
|
||||||
@@ -1677,7 +1672,7 @@ bool wxWindowDCImpl::DoGetPartialTextExtents(const wxString& text,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
pango_layout_set_text( m_layout, dataUTF8, strlen(dataUTF8) );
|
pango_layout_set_text(m_layout, dataUTF8, -1);
|
||||||
|
|
||||||
// Calculate the position of each character based on the widths of
|
// Calculate the position of each character based on the widths of
|
||||||
// the previous characters
|
// the previous characters
|
||||||
@@ -1809,58 +1804,40 @@ void wxWindowDCImpl::SetPen( const wxPen &pen )
|
|||||||
int req_nb_dash;
|
int req_nb_dash;
|
||||||
const wxGTKDash *req_dash;
|
const wxGTKDash *req_dash;
|
||||||
|
|
||||||
GdkLineStyle lineStyle = GDK_LINE_SOLID;
|
GdkLineStyle lineStyle = GDK_LINE_ON_OFF_DASH;
|
||||||
switch (m_pen.GetStyle())
|
switch (m_pen.GetStyle())
|
||||||
{
|
{
|
||||||
case wxUSER_DASH:
|
case wxUSER_DASH:
|
||||||
{
|
|
||||||
lineStyle = GDK_LINE_ON_OFF_DASH;
|
|
||||||
req_nb_dash = m_pen.GetDashCount();
|
req_nb_dash = m_pen.GetDashCount();
|
||||||
req_dash = (wxGTKDash*)m_pen.GetDash();
|
req_dash = (wxGTKDash*)m_pen.GetDash();
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
case wxDOT:
|
case wxDOT:
|
||||||
{
|
|
||||||
lineStyle = GDK_LINE_ON_OFF_DASH;
|
|
||||||
req_nb_dash = 2;
|
req_nb_dash = 2;
|
||||||
req_dash = dotted;
|
req_dash = dotted;
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
case wxLONG_DASH:
|
case wxLONG_DASH:
|
||||||
{
|
|
||||||
lineStyle = GDK_LINE_ON_OFF_DASH;
|
|
||||||
req_nb_dash = 2;
|
req_nb_dash = 2;
|
||||||
req_dash = wxCoord_dashed;
|
req_dash = wxCoord_dashed;
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
case wxSHORT_DASH:
|
case wxSHORT_DASH:
|
||||||
{
|
|
||||||
lineStyle = GDK_LINE_ON_OFF_DASH;
|
|
||||||
req_nb_dash = 2;
|
req_nb_dash = 2;
|
||||||
req_dash = short_dashed;
|
req_dash = short_dashed;
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
case wxDOT_DASH:
|
case wxDOT_DASH:
|
||||||
{
|
|
||||||
// lineStyle = GDK_LINE_DOUBLE_DASH;
|
|
||||||
lineStyle = GDK_LINE_ON_OFF_DASH;
|
|
||||||
req_nb_dash = 4;
|
req_nb_dash = 4;
|
||||||
req_dash = dotted_dashed;
|
req_dash = dotted_dashed;
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
|
|
||||||
case wxTRANSPARENT:
|
case wxTRANSPARENT:
|
||||||
case wxSTIPPLE_MASK_OPAQUE:
|
case wxSTIPPLE_MASK_OPAQUE:
|
||||||
case wxSTIPPLE:
|
case wxSTIPPLE:
|
||||||
case wxSOLID:
|
case wxSOLID:
|
||||||
default:
|
default:
|
||||||
{
|
|
||||||
lineStyle = GDK_LINE_SOLID;
|
lineStyle = GDK_LINE_SOLID;
|
||||||
req_dash = (wxGTKDash*)NULL;
|
req_dash = (wxGTKDash*)NULL;
|
||||||
req_nb_dash = 0;
|
req_nb_dash = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (req_dash && req_nb_dash)
|
if (req_dash && req_nb_dash)
|
||||||
{
|
{
|
||||||
@@ -1886,19 +1863,13 @@ void wxWindowDCImpl::SetPen( const wxPen &pen )
|
|||||||
case wxCAP_BUTT: { capStyle = GDK_CAP_BUTT; break; }
|
case wxCAP_BUTT: { capStyle = GDK_CAP_BUTT; break; }
|
||||||
case wxCAP_ROUND:
|
case wxCAP_ROUND:
|
||||||
default:
|
default:
|
||||||
{
|
|
||||||
if (width <= 1)
|
if (width <= 1)
|
||||||
{
|
{
|
||||||
width = 0;
|
width = 0;
|
||||||
capStyle = GDK_CAP_NOT_LAST;
|
capStyle = GDK_CAP_NOT_LAST;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
capStyle = GDK_CAP_ROUND;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
GdkJoinStyle joinStyle = GDK_JOIN_ROUND;
|
GdkJoinStyle joinStyle = GDK_JOIN_ROUND;
|
||||||
switch (m_pen.GetJoin())
|
switch (m_pen.GetJoin())
|
||||||
@@ -1974,29 +1945,35 @@ void wxWindowDCImpl::SetBackground( const wxBrush &brush )
|
|||||||
|
|
||||||
if (!m_gdkwindow) return;
|
if (!m_gdkwindow) return;
|
||||||
|
|
||||||
m_backgroundBrush.GetColour().CalcPixel( m_cmap );
|
wxColor color = m_backgroundBrush.GetColour();
|
||||||
gdk_gc_set_background( m_brushGC, m_backgroundBrush.GetColour().GetColor() );
|
color.CalcPixel(m_cmap);
|
||||||
gdk_gc_set_background( m_penGC, m_backgroundBrush.GetColour().GetColor() );
|
const GdkColor* gdkColor = color.GetColor();
|
||||||
gdk_gc_set_background( m_bgGC, m_backgroundBrush.GetColour().GetColor() );
|
gdk_gc_set_background(m_brushGC, gdkColor);
|
||||||
gdk_gc_set_foreground( m_bgGC, m_backgroundBrush.GetColour().GetColor() );
|
gdk_gc_set_background(m_penGC, gdkColor);
|
||||||
|
gdk_gc_set_background(m_bgGC, gdkColor);
|
||||||
|
gdk_gc_set_foreground(m_bgGC, gdkColor);
|
||||||
|
|
||||||
|
|
||||||
gdk_gc_set_fill( m_bgGC, GDK_SOLID );
|
gdk_gc_set_fill( m_bgGC, GDK_SOLID );
|
||||||
|
|
||||||
if ((m_backgroundBrush.GetStyle() == wxSTIPPLE) && (m_backgroundBrush.GetStipple()->IsOk()))
|
if (m_backgroundBrush.GetStyle() == wxSTIPPLE)
|
||||||
{
|
{
|
||||||
if (m_backgroundBrush.GetStipple()->GetDepth() != 1)
|
const wxBitmap* stipple = m_backgroundBrush.GetStipple();
|
||||||
|
if (stipple->IsOk())
|
||||||
|
{
|
||||||
|
if (stipple->GetDepth() != 1)
|
||||||
{
|
{
|
||||||
gdk_gc_set_fill(m_bgGC, GDK_TILED);
|
gdk_gc_set_fill(m_bgGC, GDK_TILED);
|
||||||
gdk_gc_set_tile( m_bgGC, m_backgroundBrush.GetStipple()->GetPixmap() );
|
gdk_gc_set_tile(m_bgGC, stipple->GetPixmap());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gdk_gc_set_fill(m_bgGC, GDK_STIPPLED);
|
gdk_gc_set_fill(m_bgGC, GDK_STIPPLED);
|
||||||
gdk_gc_set_stipple( m_bgGC, m_backgroundBrush.GetStipple()->GetPixmap() );
|
gdk_gc_set_stipple(m_bgGC, stipple->GetPixmap());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (m_backgroundBrush.IsHatch())
|
else if (m_backgroundBrush.IsHatch())
|
||||||
{
|
{
|
||||||
gdk_gc_set_fill( m_bgGC, GDK_STIPPLED );
|
gdk_gc_set_fill( m_bgGC, GDK_STIPPLED );
|
||||||
gdk_gc_set_stipple(m_bgGC, GetHatch(m_backgroundBrush.GetStyle()));
|
gdk_gc_set_stipple(m_bgGC, GetHatch(m_backgroundBrush.GetStyle()));
|
||||||
@@ -2146,10 +2123,11 @@ void wxWindowDCImpl::DoSetClippingRegion( wxCoord x, wxCoord y, wxCoord width, w
|
|||||||
wxDC::DoSetClippingRegion( xx, yy, ww, hh );
|
wxDC::DoSetClippingRegion( xx, yy, ww, hh );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
gdk_gc_set_clip_region( m_penGC, m_currentClippingRegion.GetRegion() );
|
GdkRegion* gdkRegion = m_currentClippingRegion.GetRegion();
|
||||||
gdk_gc_set_clip_region( m_brushGC, m_currentClippingRegion.GetRegion() );
|
gdk_gc_set_clip_region(m_penGC, gdkRegion);
|
||||||
gdk_gc_set_clip_region( m_textGC, m_currentClippingRegion.GetRegion() );
|
gdk_gc_set_clip_region(m_brushGC, gdkRegion);
|
||||||
gdk_gc_set_clip_region( m_bgGC, m_currentClippingRegion.GetRegion() );
|
gdk_gc_set_clip_region(m_textGC, gdkRegion);
|
||||||
|
gdk_gc_set_clip_region(m_bgGC, gdkRegion);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxWindowDCImpl::DoSetClippingRegionAsRegion( const wxRegion ®ion )
|
void wxWindowDCImpl::DoSetClippingRegionAsRegion( const wxRegion ®ion )
|
||||||
@@ -2182,10 +2160,11 @@ void wxWindowDCImpl::DoSetClippingRegionAsRegion( const wxRegion ®ion )
|
|||||||
wxDC::DoSetClippingRegion( xx, yy, ww, hh );
|
wxDC::DoSetClippingRegion( xx, yy, ww, hh );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
gdk_gc_set_clip_region( m_penGC, m_currentClippingRegion.GetRegion() );
|
GdkRegion* gdkRegion = m_currentClippingRegion.GetRegion();
|
||||||
gdk_gc_set_clip_region( m_brushGC, m_currentClippingRegion.GetRegion() );
|
gdk_gc_set_clip_region(m_penGC, gdkRegion);
|
||||||
gdk_gc_set_clip_region( m_textGC, m_currentClippingRegion.GetRegion() );
|
gdk_gc_set_clip_region(m_brushGC, gdkRegion);
|
||||||
gdk_gc_set_clip_region( m_bgGC, m_currentClippingRegion.GetRegion() );
|
gdk_gc_set_clip_region(m_textGC, gdkRegion);
|
||||||
|
gdk_gc_set_clip_region(m_bgGC, gdkRegion);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxWindowDCImpl::DestroyClippingRegion()
|
void wxWindowDCImpl::DestroyClippingRegion()
|
||||||
@@ -2207,20 +2186,14 @@ void wxWindowDCImpl::DestroyClippingRegion()
|
|||||||
|
|
||||||
if (!m_gdkwindow) return;
|
if (!m_gdkwindow) return;
|
||||||
|
|
||||||
if (m_currentClippingRegion.IsEmpty())
|
GdkRegion* gdkRegion = NULL;
|
||||||
{
|
if (!m_currentClippingRegion.IsEmpty())
|
||||||
gdk_gc_set_clip_rectangle( m_penGC, (GdkRectangle *) NULL );
|
gdkRegion = m_currentClippingRegion.GetRegion();
|
||||||
gdk_gc_set_clip_rectangle( m_brushGC, (GdkRectangle *) NULL );
|
|
||||||
gdk_gc_set_clip_rectangle( m_textGC, (GdkRectangle *) NULL );
|
gdk_gc_set_clip_region(m_penGC, gdkRegion);
|
||||||
gdk_gc_set_clip_rectangle( m_bgGC, (GdkRectangle *) NULL );
|
gdk_gc_set_clip_region(m_brushGC, gdkRegion);
|
||||||
}
|
gdk_gc_set_clip_region(m_textGC, gdkRegion);
|
||||||
else
|
gdk_gc_set_clip_region(m_bgGC, gdkRegion);
|
||||||
{
|
|
||||||
gdk_gc_set_clip_region( m_penGC, m_currentClippingRegion.GetRegion() );
|
|
||||||
gdk_gc_set_clip_region( m_brushGC, m_currentClippingRegion.GetRegion() );
|
|
||||||
gdk_gc_set_clip_region( m_textGC, m_currentClippingRegion.GetRegion() );
|
|
||||||
gdk_gc_set_clip_region( m_bgGC, m_currentClippingRegion.GetRegion() );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxWindowDCImpl::Destroy()
|
void wxWindowDCImpl::Destroy()
|
||||||
|
Reference in New Issue
Block a user