From 8c419a5c4d7f473adb4a77853aa90d166275ed20 Mon Sep 17 00:00:00 2001 From: Robert Roebling Date: Fri, 24 Feb 2006 11:41:20 +0000 Subject: [PATCH] Implemented user dashes for gnome print. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37700 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/gtk/gnome/gprint.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/gtk/gnome/gprint.cpp b/src/gtk/gnome/gprint.cpp index ab2d2db204..05c48f8297 100644 --- a/src/gtk/gnome/gprint.cpp +++ b/src/gtk/gnome/gprint.cpp @@ -1529,6 +1529,22 @@ void wxGnomePrintDC::SetPen( const wxPen& pen ) case wxSHORT_DASH: gs_lgp->gnome_print_setdash( m_gpc, 2, short_dashed, 0 ); break; case wxLONG_DASH: gs_lgp->gnome_print_setdash( m_gpc, 2, wxCoord_dashed, 0 ); break; case wxDOT_DASH: gs_lgp->gnome_print_setdash( m_gpc, 4, dotted_dashed, 0 ); break; + case wxUSER_DASH: + { + // It may be noted that libgnomeprint between at least + // versions 2.8.0 and 2.12.1 makes a copy of the dashes + // and then leak the memory since it doesn't set the + // internal flag "privatedash" to 0. + wxDash *wx_dashes; + int num = m_pen.GetDashes (&wx_dashes); + gdouble *g_dashes = g_new( gdouble, num ); + int i; + for (i = 0; i < num; ++i) + g_dashes[i] = (gdouble) wx_dashes[i]; + gs_lgp -> gnome_print_setdash( m_gpc, num, g_dashes, 0); + g_free( g_dashes ); + } + break; case wxSOLID: case wxTRANSPARENT: default: gs_lgp->gnome_print_setdash( m_gpc, 0, NULL, 0 ); break; -- 2.45.2