diff --git a/ChangeLog b/ChangeLog index adad9a7269..91e57e7261 100644 --- a/ChangeLog +++ b/ChangeLog @@ -9,6 +9,12 @@ events are suspended. Without such an API, events can be lost if the event system is suspended when the event comes in. + * src/gnome-utils/print-session.[ch]: added gnucash wrappers + around gnome-print's rotate, translate, gsave, and grestore + APIs. All to allow sideways printing (by rotating the image). + * src/gnome-utils/gw-gnome-utils-spec.scm: wrap the new print-session + apis. + 2003-05-18 Derek Atkins * src/engine/gnc-lot.[ch]: add LOT_IS_CLOSED and LOT_BALANCE diff --git a/src/gnome-utils/gw-gnome-utils-spec.scm b/src/gnome-utils/gw-gnome-utils-spec.scm index f8b678a246..89978e42b4 100644 --- a/src/gnome-utils/gw-gnome-utils-spec.scm +++ b/src/gnome-utils/gw-gnome-utils-spec.scm @@ -194,6 +194,38 @@ '(( p) (( caller-owned const) text)) "Show some text in Courier 16") + (gw:wrap-function + ws + 'gnc:print-session-rotate + ' + "gnc_print_session_rotate" + '(( p) ( theta_in_degrees)) + "Rotate the image by X degrees") + + (gw:wrap-function + ws + 'gnc:print-session-translate + ' + "gnc_print_session_translate" + '(( p) ( x) ( y)) + "Translate the image to point x,y") + + (gw:wrap-function + ws + 'gnc:print-session-gsave + ' + "gnc_print_session_gsave" + '(( p)) + "Save the current print-session state") + + (gw:wrap-function + ws + 'gnc:print-session-grestore + ' + "gnc_print_session_grestore" + '(( p)) + "Restore the current print-session state") + (gw:wrap-function ws 'gnc:print-session-done diff --git a/src/gnome-utils/print-session.c b/src/gnome-utils/print-session.c index ba296bbbe9..533c16051f 100644 --- a/src/gnome-utils/print-session.c +++ b/src/gnome-utils/print-session.c @@ -82,6 +82,29 @@ gnc_print_session_done(PrintSession * ps, gboolean hand_built_pages) { } +void +gnc_print_session_rotate(PrintSession *ps, double theta_in_degrees) +{ + gnome_print_rotate(GNOME_PRINT_CONTEXT(ps->meta), theta_in_degrees); +} + +void +gnc_print_session_translate(PrintSession *ps, double x, double y) +{ + gnome_print_translate(GNOME_PRINT_CONTEXT(ps->meta), x, y); +} + +void +gnc_print_session_gsave(PrintSession *ps) +{ + gnome_print_gsave(GNOME_PRINT_CONTEXT(ps->meta)); +} + +void +gnc_print_session_grestore(PrintSession *ps) +{ + gnome_print_grestore(GNOME_PRINT_CONTEXT(ps->meta)); +} void gnc_print_session_print(PrintSession * ps) { diff --git a/src/gnome-utils/print-session.h b/src/gnome-utils/print-session.h index dd9b65c370..f86597359a 100644 --- a/src/gnome-utils/print-session.h +++ b/src/gnome-utils/print-session.h @@ -87,6 +87,12 @@ void gnc_print_session_moveto(PrintSession * ps, double x, double y); void gnc_print_session_text(PrintSession * ps, const char * text); void gnc_print_session_done(PrintSession * ps, gboolean); +void gnc_print_session_rotate(PrintSession *ps, double theta_in_degrees); +void gnc_print_session_translate(PrintSession *ps, double x, double y); + +void gnc_print_session_gsave(PrintSession *ps); +void gnc_print_session_grestore(PrintSession *ps); + void gnc_print_session_preview(PrintSession * ps); void gnc_print_session_print(PrintSession * ps); void gnc_print_session_render(PrintSession * ps);