static void print (void *void_me, Graphics graphics) { iam (Manual); ManPages manPages = (ManPages) my data; long numberOfPages = manPages -> pages.size, savePage = my path; my ps = graphics; Graphics_setDollarSignIsCode (my ps, true); Graphics_setAtSignIsLink (my ps, true); my printing = true; HyperPage_initSheetOfPaper ((HyperPage) me); for (long ipage = 1; ipage <= numberOfPages; ipage ++) { ManPage page = manPages -> pages.at [ipage]; if (my printPagesStartingWith == nullptr || Melder_stringMatchesCriterion (page -> title, kMelder_string_STARTS_WITH, my printPagesStartingWith)) { ManPage_Paragraph par; my path = ipage; my paragraphs = page -> paragraphs; my numberOfParagraphs = 0; par = my paragraphs; while ((par ++) -> type) my numberOfParagraphs ++; Melder_free (my currentPageTitle); my currentPageTitle = Melder_dup_f (page -> title); my v_goToPage_i (ipage); my v_draw (); my v_goToPage_i (savePage); } } my printing = false; my printPagesStartingWith = nullptr; }
static void print (I, Graphics graphics) { iam (HyperPage); my ps = graphics; Graphics_setDollarSignIsCode (graphics, TRUE); Graphics_setAtSignIsLink (graphics, TRUE); my printing = TRUE; HyperPage_initSheetOfPaper (me); my v_draw (); my printing = FALSE; }
void HyperPage_init (HyperPage me, const wchar_t *title, Data data) { resolution = Gui_getResolution (NULL); Editor_init (me, 0, 0, 6 * resolution + 30, 800, title, data); #if motif Melder_assert (XtWindow (my drawingArea -> d_widget)); #endif my g = Graphics_create_xmdrawingarea (my drawingArea); Graphics_setAtSignIsLink (my g, TRUE); Graphics_setDollarSignIsCode (my g, TRUE); Graphics_setFont (my g, kGraphics_font_TIMES); if (prefs_font != kGraphics_font_TIMES && prefs_font != kGraphics_font_HELVETICA) prefs_font = kGraphics_font_TIMES; // ensure Unicode compatibility my font = prefs_font; setFontSize (me, prefs_fontSize); struct structGuiDrawingAreaResizeEvent event = { my drawingArea, 0 }; event. width = my drawingArea -> f_getWidth (); event. height = my drawingArea -> f_getHeight (); gui_drawingarea_cb_resize (me, & event); updateVerticalScrollBar (me); // scroll to the top (my top == 0) }