static void PrintOneUASCommon(UAS_Pointer<UAS_Common> &doc, Widget pshell, int *cur_pageP) { Arg args[15]; int n; XmString label; char buf[BUFSIZ]; // Retrieve the topic from the doc // The retrieve function will send a UAS_DocumentRetrievedMsg to the // print manager which will render the canvas with the appropriate topic doc->retrieve((void *)1); // set print orientation to either landscape or portrait (if set) if (f_printOrientation != NULL) { snprintf(buf, sizeof(buf), "*content-orientation: %s\n", f_printOrientation); XpSetAttributes(XtDisplay(pshell), XpGetContext(XtDisplay(pshell)), XPPageAttr, buf, XPAttrMerge); } for (gHelpDisplayArea->firstVisible = gHelpDisplayArea->nextNonVisible = 0; gHelpDisplayArea->nextNonVisible >= 0; gHelpDisplayArea->firstVisible = gHelpDisplayArea->nextNonVisible + 1) { (*cur_pageP)++; XpStartPage(XtDisplay(pshell), XtWindow(pshell)); snprintf(buf, sizeof(buf), "%d", *cur_pageP); label = XmStringCreateLocalized(buf); n = 0; XtSetArg(args[n], XmNlabelString, label); n++; XtSetValues(footer_page_no, args, n); XmStringFree(label); // Process exposures so label is updated. XmUpdateDisplay(footer_page_no); // _DtHelpCleanAndDrawWholeCanvas((XtPointer)gHelpDisplayArea); XpEndPage(XtDisplay(pshell)); } // Print chidren if appropriate if (print_hierarchy) { unsigned int i; UAS_List<UAS_Common> kids = doc->children(); for (i = 0; i < kids.length(); i++) { PrintOneUASCommon(kids[i], pshell, cur_pageP); } } }
void printLocs (UAS_Pointer<UAS_Common> doc, int level) { for (int i = 0; i < level; i ++) cerr << " "; UAS_String theLoc = doc->locator(); if (level >= 2) { char buf[1024]; UAS_String loc = doc->id(); (void) sprintf (buf, "mmdb:LOCATOR=%s", (char *) loc); UAS_Pointer<UAS_Common> theDoc = UAS_Common::create(buf); cerr << (char *) theLoc << ", " << (char *) theDoc->title() << endl; } else { cerr << (char *) theLoc << endl; } UAS_List<UAS_Common> kids = doc->children(); for (i = 0; i < kids.length(); i ++) { printLocs (kids[i], level + 1); } }
void printTitles (UAS_Pointer<UAS_Common> doc, int level) { int i; for (i = 0; i < level; i ++) fprintf (stderr, " "); fprintf (stderr, "%s\n", (char *) doc->title ()); UAS_Pointer<UAS_Common> curDoc; if (doc->type() == UAS_BOOK) { curDoc = doc->next(); while (curDoc != 0) { fprintf (stderr, "********** %s \n", (char *) curDoc->title ()); curDoc = curDoc->next(); } } else { UAS_List<UAS_Common> theList = doc->children (); for (i = 0; i < theList.length(); i ++) printTitles (theList[i], level + 1); } }
void MapButton::expand() { if (f_expanded) { f_arrow.ArrowDirection (XmARROW_RIGHT); f_expanded = FALSE; } else { f_arrow.ArrowDirection (XmARROW_DOWN); f_expanded = TRUE; // Create a button for each child. UAS_List<UAS_Common> kids (f_doc_ptr->children()); WXawTree tree (XtParent (f_form)); for (unsigned int i = 0; i < kids.length(); i++) new MapButton (tree, kids[i], this); ON_DEBUG (puts ("managing kids")); MapButton::ManageKids(); ON_DEBUG (puts ("calling force layout")); tree.ForceLayout(); ON_DEBUG (puts ("called force layout")); } }