(FILECREATED "29-Aug-85 11:22:33" {PHYLUM}<PAPERWORKS>IDEASKETCH.;3 7685   

      changes to:  (FNS SK.WRITING.MENU)

      previous date: "27-Aug-85 16:36:46" {PHYLUM}<PAPERWORKS>IDEASKETCH.;2)


(* Copyright (c) 1985 by Xerox Corporation. All rights reserved.)

(PRETTYCOMPRINT IDEASKETCHCOMS)

(RPAQQ IDEASKETCHCOMS [(FILES SKETCH)
		       (COMS (* stuff for creating a writing specialized sketch window.)
			     (FNS WRITEW.CREATE SK.TOGGLE.DEFAULT.ARROWHEAD SK.WRITING.MENU))
		       (COMS (* stuff to add writingtool to background menu)
			     (ADDVARS (BackgroundMenuCommands ("IdeaSketch" (QUOTE (WRITEW.CREATE
										     NIL NIL
										     (GETREGION)
										     NIL NIL T T))
									    
								   "Opens an idea sketch window.")))
			     (VARS (BackgroundMenu])
(FILESLOAD SKETCH)



(* stuff for creating a writing specialized sketch window.)

(DEFINEQ

(WRITEW.CREATE
  [LAMBDA (SKETCH SKETCHREGION SCREENREGION TITLE INITIALSCALE BRINGUPMENU INITIALGRID)
                                                             (* rrb " 7-May-85 09:22")
                                                             (* creates a sketch window with a menu that is 
							     specialized for writing.)
    (PROG ((SKW (SKETCHW.CREATE SKETCH SKETCHREGION SCREENREGION TITLE INITIALSCALE (SK.WRITING.MENU)
				INITIALGRID)))               (* change some default to more appropriate for 
							     writing.)
          (SK.SET.LINE.LENGTH.MODE SKW (QUOTE NO))
          (SK.SET.LINE.ARROWHEAD SKW (QUOTE LAST))
          (SK.SET.TEXT.HORIZ.ALIGN SKW (QUOTE LEFT))
          (SK.SET.TEXT.VERT.ALIGN SKW (QUOTE TOP))
          (RETURN SKW])

(SK.TOGGLE.DEFAULT.ARROWHEAD
  [LAMBDA (W)                                                (* rrb "12-Jan-85 11:03")
                                                             (* sets whether or not the default line has an 
							     arrowhead.)
    (PROG [(SKETCHCONTEXT (WINDOWPROP W (QUOTE SKETCHCONTEXT]
          (RETURN (replace (SKETCHCONTEXT SKETCHUSEARROWHEAD) of SKETCHCONTEXT
		     with (COND
			    ((EQ (fetch (SKETCHCONTEXT SKETCHUSEARROWHEAD) of SKETCHCONTEXT)
				 (QUOTE LAST))               (* if the last setting was LAST, make it NEITHER)
			      (QUOTE NEITHER))
			    (T (QUOTE LAST])

(SK.WRITING.MENU
  [LAMBDA (MENUTITLE)                                        (* rrb "28-Aug-85 11:06")
                                                             (* returns the control menu for a writing window.)
    (create MENU
	    ITEMS ←[APPEND (QUOTE (("Move points" SK.MOVE.POINTS 
						  "Moves a collection of control points.")))
			   (QUOTE ((Change SK.CHANGE.ELT "Changes a property of a piece.")))
			   (for ELEMENT in (QUOTE (TEXTBOX)) when [fetch (SKETCHTYPE LABEL)
								     of (SETQ ELEMENT
									  (GETPROP ELEMENT
										   (QUOTE SKETCHTYPE]
			      collect                        (* add the sketch elements that have a label.)
				      (LIST (fetch (SKETCHTYPE LABEL) of ELEMENT)
					    ELEMENT
					    (fetch (SKETCHTYPE DOCSTR) of ELEMENT)))
			   (QUOTE (("font LARGE" (SK.SEL.AND.MAKE (QUOTE (TEXT LARGER)))
						 "Makes the font larger.")
				    ("font small" (SK.SEL.AND.MAKE (QUOTE (TEXT SMALLER)))
						  "Makes the font of selected items smaller.")
				    ("BOLD" (SK.SEL.AND.MAKE (QUOTE (TEXT BOLD)))
					    "makes selected text bold."
					    (SUBITEMS ("Default BOLD" (SK.SET.DEFAULT.TEXT.FACE
									(QUOTE (BOLD REGULAR REGULAR))
									)
								      "makes the default text bold.")
						      ("Default unbold" (SK.SET.DEFAULT.TEXT.FACE
									  (QUOTE (MEDIUM REGULAR 
											 REGULAR)))
									
								 "makes the default text unbold.")))
				    ("line size" (SK.SEL.AND.MAKE (LIST (QUOTE SIZE)
									(READBRUSHSIZE)))
						 "sets the line size of selected elements."
						 (SUBITEMS ("Default line size" (
SK.SET.DEFAULT.BRUSH.SIZE (READBRUSHSIZE))
										
					     "sets the line size of any newly constructed lines.")))
				    ("More Menu" SK.SKETCH.MENU 
						 "pops up the normal sketch command menu.")))
			   [QUOTE (("Move view" SKETCH.ZOOM 
					     "makes a new region the part of the sketch visible."
						(SUBITEMS ("Move view" SKETCH.ZOOM 
							      "changes the scale of the display.")
							  (AutoZoom SKETCH.AUTOZOOM 
						     "changes the scale around a selected point.")
							  (Home SKETCH.HOME 
						    "returns to the origin at the original scale")
							  ("Fit it" SK.FRAME.IT 
					"moves so that the entire sketch just fits in the window")
							  ("Restore view" SK.RESTORE.VIEW 
							      "Moves to a previously saved view."
									  (SUBITEMS ("Restore view"
										      SK.RESTORE.VIEW 
							      "Moves to a previously saved view.")
										    ("Save view"
										      
									     SK.NAME.CURRENT.VIEW 
		     "saves the current view (position and scale) of the sketch for easy return.")
										    ("Forget view"
										      SK.FORGET.VIEW 
							       "Deletes a previously saved view.")))
							  ("Coord window" ADD.GLOBAL.DISPLAY 
				  "creates a window that shows the cursor in global coordinates."
									  (SUBITEMS ("Coord window"
										      
									       ADD.GLOBAL.DISPLAY 
			 "creates a window that shows the cursor position in global coordinates.")
										    (
"Grid coord window" ADD.GLOBAL.GRIDDED.DISPLAY 
	"creates a window that shows the grid position nearest the cursor in global coordinates.")))
							  (New% window SKETCH.NEW.VIEW 
							  "opens another viewer onto this sketch"]
			   [QUOTE ((HardCopy HARDCOPYIMAGEW 
			    "sends a copy of the current window contents on the default printer."
					     (SUBITEMS ("To a file" HARDCOPYIMAGEW.TOFILE 
					  "Puts image on a file; prompts for filename and format")
						       ("To a printer" HARDCOPYIMAGEW.TOPRINTER 
						      "Sends image to a printer of your choosing")
						       ("Whole sketch" SK.LIST.IMAGE 
		       "Sends the image of the whole sketch at the current scale to the printer."
								       (SUBITEMS ("To a file" 
									    HARDCOPYIMAGEW.TOFILE 
					  "Puts image on a file; prompts for filename and format")
										 ("To a printer"
										   
									 HARDCOPYIMAGEW.TOPRINTER 
						      "Sends image to a printer of your choosing")))
						       (Hardcopy% Display SK.SET.HARDCOPY.MODE 
		     "Makes the display correspond to the hardcopy image on the default printer.")
						       (Normal% Display SK.UNSET.HARDCOPY.MODE 
						      "Changes the display to use display fonts."]
			   [AND ALLOWSKETCHPUTFLG (QUOTE ((Put SK.PUT.ON.FILE 
							       "saves this sketch on a file"]
			   [AND ALLOWSKETCHPUTFLG (QUOTE ((Get SK.GET.FROM.FILE 
							       "gets a sketch from a file."]
			   (QUOTE ((Redisplay REDISPLAYW "repaints the sketch image."]
	    CENTERFLG ← T
	    WHENSELECTEDFN ←(FUNCTION SKETCHW.SELECTIONFN)
	    MENUFONT ←(FONTNAMELIST (FONTCREATE BOLDFONT))
	    TITLE ← MENUTITLE])
)



(* stuff to add writingtool to background menu)


(ADDTOVAR BackgroundMenuCommands ("IdeaSketch" (QUOTE (WRITEW.CREATE NIL NIL (GETREGION)
								     NIL NIL T T))
					       "Opens an idea sketch window."))

(RPAQQ BackgroundMenu NIL)
(PUTPROPS IDEASKETCH COPYRIGHT ("Xerox Corporation" 1985))
(DECLARE: DONTCOPY
  (FILEMAP (NIL (891 7350 (WRITEW.CREATE 901 . 1744) (SK.TOGGLE.DEFAULT.ARROWHEAD 1746 . 2434) (
SK.WRITING.MENU 2436 . 7348)))))
STOP