#include "printing.h"
#include "image_viewer.h"
-#if GTK_CHECK_VERSION(2,10,0) && !defined(USE_GNOMEPRINT)
+#if GTK_CHECK_VERSION(2,10,0)
#include "gtkutils.h"
#include "toolbar.h"
if(res == GTK_PRINT_OPERATION_RESULT_ERROR) {
GError *error = NULL;
gtk_print_operation_get_error(op, &error);
- debug_print("Error printing message: %s",
+ debug_print("Error printing message: %s\n",
error ? error->message : "no details");
}
else if(res == GTK_PRINT_OPERATION_RESULT_APPLY) {
GtkToolItem *separator;
static GdkGeometry geometry;
GtkWidget *dialog = NULL;
- GtkTooltips *toolbar_tips = gtk_tooltips_new();
GtkWidget *statusbar = gtk_hbox_new(2, FALSE);
+ CLAWS_TIP_DECL();
+
debug_print("Creating internal print preview\n");
print_data = (PrintData*) data;
gtk_box_pack_start(GTK_BOX(vbox), toolbar, FALSE, FALSE, 0);
+#if !(GTK_CHECK_VERSION(2,12,0))
+#define CLAWS_SET_TOOL_ITEM_TIP(widget,tip) { \
+ gtk_tool_item_set_tooltip(GTK_TOOL_ITEM(widget), GTK_TOOLTIPS(tips), \
+ tip, NULL); \
+}
+#else
+#define CLAWS_SET_TOOL_ITEM_TIP(widget,tip) { \
+ gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(widget), tip); \
+}
+#endif
+
#define TOOLBAR_ITEM(item,text,tooltip,cb,cbdata) { \
item = GTK_WIDGET(gtk_tool_button_new_from_stock(text)); \
gtk_tool_item_set_homogeneous(GTK_TOOL_ITEM(item), FALSE); \
gtk_tool_item_set_is_important(GTK_TOOL_ITEM(item), TRUE); \
gtk_toolbar_insert(GTK_TOOLBAR(toolbar), GTK_TOOL_ITEM(item), -1); \
g_signal_connect (G_OBJECT(item), "clicked", G_CALLBACK(cb), cbdata); \
- gtk_tool_item_set_tooltip(GTK_TOOL_ITEM(item), GTK_TOOLTIPS(toolbar_tips), \
- tooltip, NULL); \
+ CLAWS_SET_TOOL_ITEM_TIP(GTK_TOOL_ITEM(item), \
+ tooltip); \
}
TOOLBAR_ITEM(preview_data->first, GTK_STOCK_GOTO_FIRST, _("First page"), cb_preview_go_first, preview_data);
int start, ii;
PangoLayoutIter *iter;
double start_pos;
+ gint header_end_pos;
gint num_header_lines;
+ gint dummy;
gboolean header_done;
const gchar *text;
double line_height =0.;
start_pos = 0.;
iter = pango_layout_get_iter(print_data->layout);
- /* count number of header lines */
- num_header_lines = 0;
+ /* find the last character of the header */
+ header_end_pos = 0;
header_done = FALSE;
text = pango_layout_get_text(print_data->layout);
if(text && *text && *text != '\n') {
do {
- if(text[0] == '\n' && (text[1] != '\0')) {
- num_header_lines++;
- if(text[1] == '\n') {
- header_done = TRUE;
- }
- }
+ if(text[0] == '\n' && (text[1] != '\0') && (text[1] == '\n'))
+ header_done = TRUE;
+ else
+ header_end_pos++;
text++;
} while(*text && !header_done);
}
+ /* find line number for header end */
+ pango_layout_index_to_line_x(print_data->layout, header_end_pos, 1,
+ &num_header_lines, &dummy);
+ /* line count is zero-based */
+ num_header_lines++;
do {
PangoRectangle logical_rect;