[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: window-hardcopy for fred dialog items



Dale J. Skrien (djskrien@colby.edu) writes:
 On page 493 in the manual for MCL 2.0 final, it says that window-hardcopy
 works for Fred windows or Fred dialog items.  However, when I create a
 window with a scrolling-fred-dialog-item (which I assign to a variable x)
 and then call
   (window-hardcopy x)
 I get an error message:  "No applicable method for args:
 (#<ccl::scrolling-fred-dialog-item #x51E179>) to
 #<standard-generic-function window-hardcopy #x47A396>."

You're right - there are no methods defined for scrolling-fred-dialog-items.
Here's the result of inspecting the ccl::window-hardcopy function:
 #<STANDARD-GENERIC-FUNCTION WINDOW-HARDCOPY #x2808AE>
 Name: WINDOW-HARDCOPY
 Arglist: (WINDOW &OPTIONAL (SHOW-DIALOG? T))
 Methods: (#<STANDARD-METHOD WINDOW-HARDCOPY (FRED-WINDOW)>)
And the standard version doesn't know how to print any other windows.

If you want to define your own methods for printing the contents of
a window (print-contents), I've contributed print-utils.lisp to the 
contrib directory.  This includes methods for printing windows
window-hardcopy which recursively prints the subviews of the window
after drawing a box the size of the window. The subviews are drawn
using print-contents. Print-contents is defined for
  SIMPLE-VIEW
  BUTTON-DIALOG-ITEM
  STATIC-TEXT-DIALOG-ITEM
  CCL::BASIC-EDITABLE-TEXT-DIALOG-ITEM
  VIEW
  WINDOW
You can add other print-contents routines to print other types of
views.  The window-hardcopy routine supports reduction/enlargement,
treating fred-windows separately from non-fred windows.


mark