head     1.3;
branch   ;
access   ;
symbols  ;
locks    ;
comment  @@;


1.3
date     95.02.19.21.22.08;  author ian;  state Exp;
branches ;
next     1.2;

1.2
date     95.02.19.21.21.54;  author ian;  state Exp;
branches ;
next     1.1;

1.1
date     95.02.19.21.21.29;  author ian;  state Exp;
branches ;
next     ;


desc
@Table Of Content with PDF hyperlinks.
@


1.3
log
@Mega-growth. Now has full data for Vol7a book. Couple of new 
functions. Works by itself, but rest of book prints as blank.
Love that PostScript.
@
text
@%!Adobe-PS

%%EndProlog
%%BeginSetup

% ensure pdfmark doesn't bomb out PS interpreters that lack it
/pdfmark where
{pop} {userdict /pdfmark /cleartomark load put} ifelse

%%EndSetup

%%Page: 1 "v"

/iandict 40 dict def
iandict begin

/cropLLX 50 def
/cropLLY 90 def
/cropURX 510 def
/cropURY 770 def

/lftmargin cropLLX 20 add def
/botmargin cropLLY 20 add def
/ritmargin cropURX 20 sub def
/topmargin cropURY 20 sub def

/linelen ritmargin lftmargin sub def

/bodysize 12 def
/deltay   14 def

/normal {
	/Times-Roman findfont bodysize scalefont setfont
} def
/bold	{
	/Times-Bold findfont 2 bodysize add scalefont setfont
} def

% Special TOC functions
/resetpage {	% -- resetpage --	reset position
	/curx lftmargin def
	/cury topmargin def
	curx cury moveto 
	normal
	nl
	} def

/nl	{	% -- nl --	newline
	/curx lftmargin def
	/cury cury deltay sub def
	% Commented out since we do it by hand to match printed TOC exactly
	% cury botmargin lt {
	% 	showpage
	% 	resetpage
	% } if
	curx cury moveto
	} def

/tl	{	% string tl --
	/tltxt exch def
	bold
	tltxt stringwidth pop /tlwid exch def
	linelen tlwid sub 2 div 0 rmoveto
	tltxt show
	nl
	normal
	} def

/rightshow {	% text rightshow --
	/rstext exch def
	rstext stringwidth pop /rswid exch def
	ritmargin rswid sub cury moveto
	rstext show
	} def

/Page	{	% -- Page --	sets "Page" at ritmargin
	nl
	(Page) rightshow
	nl
	} def

/mklink	{	% npage text mklink --
	/pageno exch def
	/text exch def
	text stringwidth
		pop
		/xmove exch def
	[ /Rect [curx cury curx xmove add cury bodysize add]
		/Border [1 1 1] /Page pageno
		/View [/XYZ -4 cropURY 1]
		/LNK pdfmark
	} def

/ent	{	% string spage npage ent --
	/npage exch def
	/spage exch def
	/mytext exch def
	mytext npage mklink
	mytext show
	spage stringwidth pop /xx exch def
	/curx ritmargin xx sub def
	curx cury moveto
	spage npage mklink
	spage show
	nl
	} def
/chent	{	% SAME AS ENT but (a) in bold for chapter (b) no links
	/npage exch def
	/spage exch def
	/mytext exch def
	bold mytext show normal
	spage stringwidth pop /xx exch def
	/curx ritmargin xx sub def
	curx cury moveto
	spage show
	nl
	} def

% Start of text

resetpage

(Table of Contents) tl
(Volume 7A: Programming Manual) tl
nl
Page
nl
(Preface) (xxxiii) 27  chent
nl
(Please Read This Section!) (xxxiii) 27 ent
(How to Use This Manual) (xxxiv) 28 ent
(Assumptions) (xxxvi) 30 ent
(Font Conventions Used in This Manual ) (xxxvi) 30 ent
(Related Documents) (xxxvii) 31 ent
(Requests for Comments) (xxxviii) 32 ent
(Obtaining the Example Programs) (xxxviii) 33 ent
(FTP) (xxxvii) 33 ent
(FTPMAIL) (xxxix) 33 ent
(BITFTP) (xl) 35 ent
(UUCP) (xl) 35 ent
(Acknowledgments) (xli) 36 ent
(Acknowledgments for XView Version 3 Update) (xli) 36 ent
nl
nl
(Chapter 1\ XView and the X Window System ) (3) 29 chent
nl
(1.1\ The X Window System) (3) 39 ent
(\ 1.1.1\ The Server and Client) (5) 41 ent
(1.2\ The Software Hierarchy) (7) 43 ent
(1.3\ Extensions to X) (8) 44 ent
(1.4\ The Window Manager) (9) 45 ent
(1.5\ Handling Events) (9) 45 ent
(1.6\ Development of the XView Toolkit) (11) 47 ent
(1.7\ Versions of the XView Toolkit) (12) 48 ent
(1.8\ OPENLOOK Graphical User Interface) (12) 48 ent
nl
nl
(Chapter 2 The XView Programmer's Model ) (17) 43 chent
nl
(2.1 Object-oriented Programming) (17) 53 ent
(\ 2.1.1 Object Class Hierarchy) (18) 54 ent
(\ 2.1.2 Object Handles) (19) 55 ent
(2.2 Attribute-based Functions) (21) 57 ent
(\ 2.2.1 Creating and Manipulating Objects) (21) 57 ent
(\ 2.2.2 Changing Object Attributes) (22) 58 ent
(\ 2.2.3 Types of Attributes) (22) 58 ent
showpage
%%EndPage
%%Page: 2 "vi"
resetpage
(2.3 Internal Attribute-Value Lists) (23) 59 ent
(2.4 Types of Objects) (23) 59 ent
(\ 2.4.1 Generic Objects) (24) 60 ent
(\ 2.4.2 Window Objects) (25) 61 ent
(\ 2.4.3 Frames and Subframes) (26) 62 ent
(\ 2.4.4 Subwindows) (29) 65 ent
(\ 2.4.4.1 Canvas Subwindows) (30) 66 ent
(\ 2.4.4.2 Text Subwindows) (30) 66 ent
(\ 2.4.4.3 Panels) (30) 66 ent
(\ 2.4.4.4 Menus) (31) 67 ent
(\ 2.4.4.5 Scrollbars) (33) 69 ent
(\ 2.4.4.6 Icons) (34) 70 ent
(\ 2.4.5 Nonvisual Objects) (34) 70 ent
(2.5 The Notifier Model) (35) 71 ent
(\ 2.5.1 Callback Style of Programming) (35) 71 ent
(\ 2.5.2 Why a Notification-based System?) (36) 72 ent
(\ 2.5.3 Relationship Among the Notifier, Objects, and the Application) (37) 73 ent
(\ 2.5.4 Calling the Notifier Directly) (37) 73 ent
nl
nl
(Chapter 3 Creating XView Applications ) (41) 67 chent
nl
(3.1 Interface Overview) (41) 77 ent
(\ 3.1.1 Compiling XView Programs) (41) 77 ent
(\ 3.1.2 XView Libraries) (42) 78 ent
(\ 3.1.3 Header Files) (42) 78 ent
(\ 3.1.4 Naming Conventions) (43) 79 ent
(\ 3.1.4.1 Reserved Names) (43) 79 ent
(\ 3.1.5 Example of XView-style Programming) (43) 79 ent
(3.2 Initializing XView) (45) 81 ent
(\ 3.2.1 Using xv_init\(\)) (46) 82 ent
(3.3 Creating and Modifying Objects) (47) 83 ent
(\ 3.3.1 Using xv_create\(\)) (47) 83 ent
(\ 3.3.2 Using xv_find\(\)) (49) 85 ent
(\ 3.3.3 Using xv_destroy\(\)) (50) 86 ent
(\ 3.3.4 Using xv_set\(\) and xv_get\(\)) (51) 87 ent
(\ 3.3.5 Precedence of Resource Options) (53) 89 ent
(3.4 xv_main_loop\(\) and the Notifier) (54) 90 ent
nl
nl
(Chapter 4 Frames ) (59) 85 chent
nl
(4.1 Types of Frames) (61) 97 ent
(\ 4.1.1 The Role of the Window Manager) (61) 97 ent
(4.2 Base Frames) (62) 98 ent
(\ 4.2.1 XView Initialization and Base Frames) (62) 98 ent
(\ 4.2.2 Headers and Footers) (63) 99 ent
(\ 4.2.3 Closed Base Frames) (66) 102 ent
showpage
%%EndPage
%%Page: 3 "vii"
resetpage
(\ 4.2.4 Quit Confirmation) (67) 103 ent
(4.3 Command Frames) (68) 104 ent
(\ 4.3.1 Manually Displaying Frames) (69) 105 ent
(\ 4.3.2 The Pushpin) (69) 105 ent
(\ 4.3.3 The FRAME_DONE_PROC Procedure) (71) 107 ent
(\ 4.3.4 Showing Resize Corners) (73) 109 ent
(\ 4.3.5 Minimum and Maximum Frame Sizes) (73) 109 ent
(4.4 Miscellaneous Attributes) (73) 109 ent
(4.5 Busy Frames) (74) 110 ent
(4.6 Frame Sizes) (74) 110 ent
(4.7 Frame Colors) (75) 111 ent
(4.8 Child Windows) (76) 112 ent
(4.9 Window Loop) (77) 113 ent
(4.10 Removing Decorations) (78) 114 ent
(4.11 Setting Properties and Saving Command-line Options) (78) 114 ent
(4.12 Destroying Frames) (79) 115 ent
(4.13 Frame Resize and Repaint Events) (81) 117 ent
(4.14 Frame Package Summary) (81) 117 ent
nl
nl
(Chapter 5 Canvases and Openwin ) (85) 111 chent
nl
(5.1 Canvas Model) (86) 122 ent
(5.2 Creating a Canvas) (88) 124 ent
(\ 5.2.1 Drawing in a Canvas) (89) 125 ent
(\ 5.2.1.1 Draw Programs) (89) 125 ent
(\ 5.2.1.2 Paint Programs) (90) 126 ent
(\ 5.2.1.3 Text-based Programs) (90) 126 ent
(\ 5.2.1.4 Visualization Programs) (90) 126 ent
(\ 5.2.1.5 Rendering Graphics) (91) 127 ent
(5.3 The Repaint Procedure) (91) 127 ent
(5.4 Controlling Canvas Sizes) (98) 134 ent
(\ 5.4.1 Automatic Canvas Sizing) (98) 134 ent
(\ 5.4.2 Explicit Canvas Sizing) (99) 135 ent
(\ 5.4.3 Tracking Changes in the Canvas Size) (100) 136 ent
(5.5 Scrolling Canvases) (101) 137 ent
(5.6 Splitting Canvas Views) (102) 138 ent
(\ 5.6.1 Splitting Views Using Scrollbars) (102) 138 ent
(\ 5.6.2 Splitting Views Using xv_set\(\)) (103) 139 ent
(\ 5.6.3 Getting View Windows) (103) 139 ent
(\ 5.6.3.1 Getting the Newest View) (103) 139 ent
(\ 5.6.3.2 Getting Arbitrary Views) (104) 140 ent
(5.7 Handling Input in the Canvas Package) (106) 142 ent
(\ 5.7.1 Default Events) (106) 142 ent
(\ 5.7.2 Notification of Events) (106) 142 ent
(5.8 Canvas and Openwin Package Summaries) (110) 146 ent
showpage
%%EndPage
%%Page: 4 "viii"
resetpage
(Chapter 6 Handling Input ) (115) 141 chent
nl
(6.1 Introduction to Events in XView) (116) 152 ent
(6.2 Classes of Events) (116) 152 ent
(\ 6.2.0.1 Event IDs) (117) 153 ent
(\ 6.2.0.2 Semantic Events) (117) 153 ent
(6.3 Registering Events) (118) 154 ent
(\ 6.3.1 Specifying X Event Masks) (118) 154 ent
(\ 6.3.2 Specifying XView Events) (119) 155 ent
(\ 6.3.2.1 Mouse Events) (120) 156 ent
(\ 6.3.2.2 Keyboard Events) (121) 157 ent
(\ 6.3.2.3 Resize and Repaint Events) (122) 158 ent
(\ 6.3.2.4 Client Messages) (123) 159 ent
(\ 6.3.2.5 Miscellaneous Events) (123) 159 ent
(6.4 The Event Handler) (124) 160 ent
(6.5 The Event Structure) (124) 160 ent
(6.6 Determining the Event) (125) 161 ent
(\ 6.6.0.1 Event States) (126) 162 ent
(\ 6.6.0.2 Modifier Keys) (126) 162 ent
(\ 6.6.1 Keyboard Events) (126) 162 ent
(\ 6.6.1.1 Mouse Events) (128) 164 ent
(\ 6.6.1.2 Keyboard Focus) (129) 165 ent
(\ 6.6.1.3 Selection Events) (130) 166 ent
(6.7 Interpreting Client Messages) (130) 166 ent
(\ 6.7.1 Sending and Reading Client Messages) (130) 166 ent
(6.8 Reading Input Directly) (131) 167 ent
(6.9 Sample Program) (133) 169 ent
(6.10 Extensions for Events) (138) 174 ent
(6.11 Selecting Events on Other Clients) (139) 175 ent
(6.12 Soft Function Keys and Virtual Keyboards) (140) 176 ent
(\ 6.12.1 Soft Function Keys) (140) 176 ent
(\ 6.12.2 Virtual Keyboards) (141) 177 ent
(\ 6.12.2.1 Multiple Language Support) (141) 177 ent
(6.13 The Mouseless Model) (142) 178 ent
(\ 6.13.1 Keyboard Command Mapping) (143) 179 ent
(\ 6.13.2 Mouseless Model Resources) (144) 180 ent
(\ 6.13.3 Using the Mouseless Model) (145) 181 ent
(\ 6.13.3.1 The Role of the Window Manager) (145) 181 ent
(\ 6.13.3.2 Application Responsibilities) (146) 182 ent
(\ 6.13.4 The Location Cursor) (146) 182 ent
(\ 6.13.5 Events) (147) 183 ent
(6.14 Using Accelerators) (147) 183 ent
nl
nl
(Chapter 7 Panels ) (151) 177 chent
nl
(7.1 Creating a Panel) (153) 189 ent
(\ 7.1.0.1 Fonts and Panels) (154) 190 ent
showpage
%%EndPage
%%Page: 5 "ix"
resetpage
(\ 7.1.1 Scrollable Panels) (154) 190 ent
(7.2 Creating Panel Items) (155) 191 ent
(7.3 Layout of Panels and Panel Items) (157) 193 ent
(\ 7.3.1 Panel Layout) (157) 193 ent
(\ 7.3.2 Panel Item Layout) (158) 194 ent
(7.4 Explicit Panel Item Positioning) (159) 195 ent
(\ 7.4.1 Relative Panel Item Positioning) (159) 195 ent
(\ 7.4.2 Absolute Panel Item Positioning) (160) 196 ent
(\ 7.4.2.1 General Positioning of Items) (161) 197 ent
(\ 7.4.3 Layout of Panel Items with Values) (161) 197 ent
(7.5 Sizing Panels) (162) 198 ent
(7.6 Panel Item Values) (162) 198 ent
(7.7 Iterating Over a Panel's Items) (163) 199 ent
(7.8 Panel Item Classes) (164) 200 ent
(7.9 Button Items) (164) 200 ent
(\ 7.9.1 Button Selection) (164) 200 ent
(\ 7.9.1.1 Making a Button Inactive) (166) 202 ent
(\ 7.9.2 Menu Buttons) (166) 202 ent
(\ 7.9.2.1 Destroying Menu Buttons) (167) 203 ent
(\ 7.9.3 Panel Button Width) (168) 204 ent
(\ 7.9.4 Abbreviated Menu Buttons) (169) 205 ent
(7.10 Choice Items) (169) 205 ent
(\ 7.10.1 Display and Layout of Item Choices) (170) 206 ent
(\ 7.10.2 Exclusive and Nonexclusive Choices) (170) 206 ent
(\ 7.10.3 Abbreviated Choices) (172) 208 ent
(\ 7.10.4 Checkbox Choices) (173) 209 ent
(\ 7.10.5 Choice Selection and Notification) (173) 209 ent
(\ 7.10.6 Foreground Color in Choice Items) (174) 210 ent
(\ 7.10.7 Parallel Lists) (174) 210 ent
(7.11 Scrolling Lists) (176) 212 ent
(\ 7.11.1 Displaying List Items) (176) 212 ent
(\ 7.11.2 Adding and Deleting List Entries) (179) 215 ent
(\ 7.11.3 List Selection) (180) 216 ent
(\ 7.11.4 List Notification) (181) 217 ent
(\ 7.11.4.1 List Item Client Data) (182) 218 ent
(\ 7.11.5 The Scrolling List Menu) (182) 218 ent
(7.12 Message Items) (182) 218 ent
(7.13 Slider Items) (184) 220 ent
(\ 7.13.1 Slider Selection) (185) 221 ent
(\ 7.13.2 Slider Notification) (185) 221 ent
(\ 7.13.3 Slider Value) (186) 222 ent
(7.14 Gauges) (186) 222 ent
(7.15 Text Items) (187) 223 ent
(\ 7.15.1 The Current Keyboard Focus) (188) 224 ent
(\ 7.15.2 Text Selection) (189) 225 ent
(\ 7.15.3 Text Notification) (189) 225 ent
(\ 7.15.4 Writing Your Own Text Notify Procedure) (190) 226 ent
(\ 7.15.5 Text Value) (191) 227 ent
showpage
%%EndPage
%%Page: 6 "x"
resetpage
(7.16 Numeric Text Items) (191) 227 ent
(7.17 Multiline Text Items) (191) 227 ent
(7.18 Drop Target Items) (192) 228 ent
(\ 7.18.1 Programming a Panel Drop Target Item) (194) 230 ent
(\ 7.18.1.1 Create the Drop Target Item) (194) 230 ent
(\ 7.18.1.2 Specify the Glyphs) (194) 230 ent
(\ 7.18.1.3 Create the Drag and Drop Object) (195) 231 ent
(\ 7.18.1.4 Define the Drop Target Item's Requestor) (195) 231 ent
(\ 7.18.1.5 Controlling the Glyphs) (196) 232 ent
(\ 7.18.1.6 Dropping on the Drop Target) (196) 232 ent
(\ 7.18.1.7 Dragging from the Drop Target Item) (196) 232 ent
(\ 7.18.2 Drop Target Notification) (196) 232 ent
(7.19 Advanced Panel Usage) (197) 233 ent
(\ 7.19.1 Attaching Data to Panel Items) (197) 233 ent
(\ 7.19.2 Using PANEL_REPAINT_PROC) (200) 236 ent
(\ 7.19.3 Painting Panel Items) (203) 239 ent
(\ 7.19.4 Panel Event Handling) (203) 239 ent
(\ 7.19.5 Using an Interpose Function) (204) 240 ent
(\ 7.19.6 Using PANEL_BACKGROUND_PROC) (205) 241 ent
(\ 7.19.7 Using PANEL_EVENT_PROC) (205) 241 ent
(\ 7.19.8 Event Handling Example) (206) 242 ent
(7.20 Panel Package Summary) (207) 243 ent
nl
nl
(Chapter 8 Text Subwindows ) (211) 237 chent
nl
(8.1 Creating Text Subwindows) (212) 248 ent
(8.2 Setting Text Subwindow Attributes) (212) 248 ent
(8.3 Text Subwindow Contents) (213) 249 ent
(8.4 Editing a Text Subwindow) (213) 249 ent
(\ 8.4.1 Loading a File) (213) 249 ent
(\ 8.4.2 Checking the Status of the Text Subwindow) (214) 250 ent
(\ 8.4.3 Writing to a Text Subwindow) (215) 251 ent
(\ 8.4.3.1 Setting the Insertion Point) (216) 252 ent
(\ 8.4.4 Reading from a Text Subwindow) (216) 252 ent
(\ 8.4.5 Deleting Text) (217) 253 ent
(\ 8.4.6 Emulating an Editing Character) (217) 253 ent
(\ 8.4.7 Replacing Characters) (218) 254 ent
(\ 8.4.8 The Editing Log) (218) 254 ent
(\ 8.4.9 Which File is Being Edited?) (219) 255 ent
(\ 8.4.9.1 Interactions with the File System) (219) 255 ent
(8.5 Saving Edits in a Subwindow) (220) 256 ent
(\ 8.5.1 Storing Edits) (220) 256 ent
(\ 8.5.2 Discarding Edits) (220) 256 ent
(8.6 Setting the Contents of a Text Subwindow) (221) 257 ent
(\ 8.6.1 TEXTSW_FILE_CONTENTS) (221) 257 ent
(\ 8.6.2 TEXTSW_CONTENTS) (221) 257 ent
(\ 8.6.3 TEXTSW_INSERT_FROM_FILE) (222) 258 ent
showpage
%%EndPage
%%Page: 7 "xi"
resetpage
(8.7 Positioning the Text Displayed in a Text Subwindow) (222) 258 ent
(\ 8.7.1 Screen Lines and File Lines) (222) 258 ent
(\ 8.7.2 Absolute Positioning) (223) 259 ent
(\ 8.7.3 Relative Positioning) (224) 260 ent
(\ 8.7.4 Which File Lines are Visible?) (224) 260 ent
(\ 8.7.4.1 Guaranteeing What is Visible) (224) 260 ent
(\ 8.7.4.2 Ensuring That the Insertion Point is Visible) (225) 261 ent
(8.8 Finding and Matching a Pattern) (225) 261 ent
(\ 8.8.1 Matching a Span of Characters) (225) 261 ent
(\ 8.8.2 Matching a Specific Pattern) (226) 262 ent
(8.9 Marking Positions) (227) 263 ent
(\ 8.9.1 Getting a Text Selection) (228) 264 ent
(\ 8.9.2 Setting the Primary Selection) (229) 265 ent
(8.10 Dealing with Multiple Views) (229) 265 ent
(8.11 Text Subwindow Destroy Confirmation) (230) 266 ent
(8.12 Notifications from a Text Subwindow) (230) 266 ent
(\ 8.12.1 Text Subwindow Interposition) (233) 269 ent
(8.13 Text Subwindow Package Summary) (233) 269 ent
nl
nl
(Chapter 9 TTY Subwindows ) (237) 263 chent
nl
(9.1 Creating a TTY Subwindow) (237) 273 ent
(9.2 Driving a TTY Subwindow) (238) 274 ent
(9.3 Monitoring the Program in the TTY Subwindow) (241) 277 ent
(9.4 Talking Directly to the TTY Subwindow) (243) 279 ent
(9.5 TTY Subwindow Function Key Escape Sequences) (245) 281 ent
(9.6 TTY Package Summary) (246) 282 ent
nl
nl
(Chapter 10 Scrollbars ) (249) 275 chent
nl
(10.1 Creating Scrollbars) (252) 288 ent
(10.2 Relationship Between Scrollbars and Objects) (252) 288 ent
(10.3 An Example) (254) 290 ent
(10.4 Managing Your Own Scrollbar) (259) 295 ent
(\ 10.4.1 Monitoring When Scrollbar Events Occur) (260) 296 ent
(\ 10.4.2 Providing a Scrollbar Compute Procedure) (262) 298 ent
(\ 10.4.3 Providing a Scrollbar Normalize Procedure) (263) 299 ent
(10.5 Scrollbar Package Summary) (263) 299 ent
nl
nl
(Chapter 11 Menus ) (267) 293 chent
nl
(11.1 Menu Types) (267) 303 ent
(\ 11.1.1 Pop-up Menus) (268) 304 ent
(\ 11.1.2 Pulldown Menus) (268) 304 ent
showpage
%%EndPage
%%Page: 8 "xii"
resetpage
(\ 11.1.3 Pullright Menus) (268) 304 ent
(11.2 Menu Items) (270) 306 ent
(\ 11.2.1 Choice Items) (270) 306 ent
(\ 11.2.2 Exclusive Items) (270) 306 ent
(\ 11.2.3 Nonexclusive Items) (271) 307 ent
(11.3 Creating Menus) (271) 307 ent
(11.4 Displaying Menus) (273) 309 ent
(11.5 A Simple Program) (274) 310 ent
(11.6 Creating Menu Items) (277) 313 ent
(\ 11.6.1 Using MENU_ITEM) (277) 313 ent
(\ 11.6.2 Using MENU_ACTION_ITEM) (278) 314 ent
(\ 11.6.3 Using MENUITEM) (278) 314 ent
(11.7 Adding Menu Items) (279) 315 ent
(11.8 Pullright Menus) (280) 316 ent
(11.9 Menu-generating Procedures) (282) 318 ent
(\ 11.9.1 Parent Menus) (285) 321 ent
(\ 11.9.2 Using MENU_GEN_PROC) (285) 321 ent
(11.10 Using Toggle Menus) (286) 322 ent
(11.11 Menu Layout) (287) 323 ent
(11.12 Making Pin-up Menus) (287) 323 ent
(11.13 Notification Procedures) (289) 325 ent
(11.14 Finding Menu Items) (292) 328 ent
(11.15 Initial and Default Menu Selections) (292) 328 ent
(11.16 Unpinned Command Frame Dismissal) (293) 329 ent
(11.17 Destroying Menus) (293) 329 ent
(\ 11.17.1 Freeing Allocated Strings) (294) 330 ent
(\ 11.17.2 Freeing Pullright Menus) (294) 330 ent
(\ 11.17.3 Menu Client Data) (295) 331 ent
(11.18 Example Program) (295) 331 ent
(11.19 Menu Package Summary) (299) 335 ent
nl
nl
(Chapter 12 Notices ) (303) 329 chent
nl
(12.1 Creating and Displaying Notices) (304) 340 ent
(\ 12.1.1 Notice Values and Status) (307) 343 ent
(12.2 Types of Notices) (309) 345 ent
(\ 12.2.1 Standard Notices) (310) 346 ent
(\ 12.2.1.1 Using a Notice Callback) (311) 347 ent
(\ 12.2.1.2 Selecting the Busy Frames) (312) 348 ent
(\ 12.2.2 Notices That Lock the Screen) (313) 349 ent
(\ 12.2.2.1 Notice Triggers) (314) 350 ent
(12.3 Destroying a Notice) (316) 352 ent
(12.4 Another Example) (317) 353 ent
(12.5 Notice Package Summary) (320) 356 ent
showpage
%%EndPage
%%Page: 9 "xiii"
resetpage
(Chapter 13 Cursors ) (323) 349 chent
nl
(13.1 Creating Cursors) (323) 359 ent
(\ 13.1.1 simple_cursor.c) (324) 360 ent
(13.2 Predefined Cursors) (326) 362 ent
(13.3 The Hotspot and Cursor Location) (326) 362 ent
(13.4 Color Cursors) (329) 365 ent
(13.5 Support for Text Drag and Drop) (330) 366 ent
(13.6 Cursor Package Summary) (331) 367 ent
nl
nl
(Chapter 14 Icons ) (335) 361 chent
nl
(14.1 Creating and Destroying Icons) (335) 371 ent
(14.2 The Icon's Image) (336) 372 ent
(\ 14.2.0.1 Color Icons) (338) 374 ent
(\ 14.2.0.2 ICON_TRANSPARENT) (339) 375 ent
(\ 14.2.0.3 ICON_MASK_IMAGE) (340) 376 ent
(\ 14.2.1 The Icon Text) (340) 376 ent
(\ 14.2.2 ICON_TRANSPARENT_LABEL) (341) 377 ent
(14.3 Icon Package Summary) (341) 377 ent
nl
nl
(Chapter 15 Nonvisual Objects ) (345) 371 chent
nl
(15.1 The Display) (346) 382 ent
(15.2 The Screen Object) (346) 382 ent
(\ 15.2.1 Multiple Screens) (347) 383 ent
(15.3 The SERVER Package) (349) 385 ent
(\ 15.3.1 Creating a Server \(Establishing a Connection\)) (349) 385 ent
(\ 15.3.2 Connecting to Multiple Servers) (350) 386 ent
(\ 15.3.3 Getting the Server) (350) 386 ent
(15.4 Server Images) (351) 387 ent
(\ 15.4.1 Creating Server Images) (352) 388 ent
(15.5 The FULLSCREEN Package) (355) 391 ent
(\ 15.5.0.1 Debugging and the FULLSCREEN Package) (357) 393 ent
(15.6 Nonvisual Package Summary) (358) 394 ent
nl
nl
(Chapter 16 Fonts ) (363) 389 chent
nl
(16.1 Creating Fonts) (364) 400 ent
(\ 16.1.1 Font Families and Styles) (367) 403 ent
(\ 16.1.2 Font Sizes) (369) 405 ent
(\ 16.1.3 Scaling Fonts) (369) 405 ent
(\ 16.1.4 Fonts by Name) (371) 407 ent
(16.2 Font Dimensions) (371) 407 ent
(16.3 Font Package Summary) (373) 409 ent
showpage
%%EndPage
%%Page: 10 "xiv"
resetpage
(Chapter 17 Resources ) (377) 403 chent
nl
(17.1 Predefined Defaults) (377) 413 ent
(17.2 XView Resource Database Functions) (380) 416 ent
(\ 17.2.1 Boolean Resources) (381) 417 ent
(\ 17.2.2 Integer Resources) (382) 418 ent
(\ 17.2.3 Character Resources) (383) 419 ent
(\ 17.2.4 String Resources) (383) 419 ent
(\ 17.2.5 Enumerated Resources) (383) 419 ent
(17.3 Creating Resource Instances) (386) 422 ent
nl
nl
(Chapter 18 Selections ) (389) 415 chent
nl
(18.1 The XView Selection Model) (391) 427 ent
(18.2 How Selection Works \(Without a Selection Item\)) (392) 428 ent
(\ 18.2.1 Highlighting the Selection \(selection owner\)) (393) 429 ent
(\ 18.2.2 Making the Selection \(selection owner\)) (393) 429 ent
(\ 18.2.3 Requesting the Selection \(selection requestor\)) (395) 431 ent
(\ 18.2.3.1 Specifying the Target Type \(selection requestor\)) (396) 432 ent
(\ 18.2.3.2 SEL_REPLY_PROC \(selection requestor\)) (396) 432 ent
(\ 18.2.3.3 Timeout for a Selection Response) (397) 433 ent
(\ 18.2.3.4 Requesting the CLIPBOARD Selection-Blocking) (397) 433 ent
(\ 18.2.3.5 Requesting the CLIPBOARD Selection-Non-blocking) (398) 434 ent
(\ 18.2.4 Converting the Selection \(selection owner\)) (399) 435 ent
(\ 18.2.4.1 The Default Conversion Procedure) (400) 436 ent
(\ 18.2.4.2 Sample Selection Owner with Conversion Procedure) (400) 436 ent
(\ 18.2.5 Handling the Response \(selection requestor\)) (402) 438 ent
(\ 18.2.5.1 Handling Selection Reply Procedure Errors) (404) 440 ent
(\ 18.2.6 If the Selection is Lost \(selection owner\)) (406) 442 ent
(\ 18.2.7 Cleanup - When the Selection Completes \(selection owner\)) (406) 442 ent
(18.3 How Selection Works \(With a Selection Item\)) (407) 443 ent
(\ 18.3.1 The Selection Item) (408) 444 ent
(18.4 How to Send Data Incrementally \(selection owner\)) (411) 447 ent
(\ 18.4.1 How to Handle Incremental Replies \(selection requestor\)) (412) 448 ent
(18.5 Requesting and Converting Multiple Targets) (413) 449 ent
(18.6 Additional Transfer Mechanisms \(selection requestor\)) (414) 450 ent
(18.7 Additional Transfer Mechanisms \(selection owner\)) (414) 450 ent
(18.8 Sample Selection Owner Program with a Selection Item) (414) 450 ent
(\ 18.8.0.1 The Notify Procedure) (417) 453 ent
(\ 18.8.0.2 The Conversion Procedure) (418) 454 ent
(\ 18.8.1 The Done Procedure) (419) 455 ent
(\ 18.8.2 The Lose Procedure) (419) 455 ent
(18.9 Sample Selection Requestor Program) (420) 456 ent
(\ 18.9.0.1 Sample Reply Procedure) (423) 459 ent
(\ 18.9.0.2 Sample Error Procedure) (425) 461 ent
(18.10 Selection Package Summary) (426) 462 ent
showpage
%%EndPage
%%Page: 11 "xv"
resetpage
(Chapter 19 Drag and Drop ) (429) 455 chent
nl
(19.1 Drag and Drop Objects) (431) 467 ent
(19.2 Registering Drop-sites) (432) 468 ent
(\ 19.2.1 Adding and Deleting Regions) (433) 469 ent
(\ 19.2.2 Handling Events) (433) 469 ent
(\ 19.2.2.1 Preview Events) (434) 470 ent
(\ 19.2.2.2 Event Forwarding) (434) 470 ent
(\ 19.2.2.3 Handling Drop and Preview Events) (435) 471 ent
(19.3 Sourcing the Drag) (435) 471 ent
(\ 19.3.1 Initiating the Drop Operation) (436) 472 ent
(\ 19.3.2 Interaction with the Selection Package) (437) 473 ent
(\ 19.3.3 Defining the Drag/Accept Cursor) (438) 474 ent
(\ 19.3.4 Timeout Value) (438) 474 ent
(19.4 Receiving a Drop) (438) 474 ent
(\ 19.4.0.1 The Move Operation) (439) 475 ent
(\ 19.4.0.2 The Done Procedure) (440) 476 ent
(19.5 Sample Program-Sourcing a Drag) (440) 476 ent
(19.6 Sample Program-Drop Site Item and Destination) (447) 483 ent
(19.7 Drag and Drop Package Summary) (452) 488 ent
nl
nl
(Chapter 20 The Notifier ) (457) 483 chent
nl
(20.1 Basic Concepts) (457) 493 ent
(\ 20.1.1 Mainline Input Handling) (457) 493 ent
(\ 20.1.2 Event-driven Input Handling) (458) 494 ent
(20.2 Functions of the Notifier) (458) 494 ent
(20.3 How the Notifier Works) (459) 495 ent
(\ 20.3.1 Restrictions) (459) 495 ent
(\ 20.3.1.1 System Calls to Avoid) (460) 496 ent
(20.4 What is a Notifier Client?) (461) 497 ent
(\ 20.4.1 Types of Interaction) (461) 497 ent
(20.5 Signal Handling) (462) 498 ent
(\ 20.5.1 Signals to Avoid) (462) 498 ent
(\ 20.5.2 A Replacement for signal\(\)) (463) 499 ent
(\ 20.5.3 Timers) (465) 501 ent
(\ 20.5.4 Handling SIGTERM) (469) 505 ent
(\ 20.5.5 Handling SIGCHLD) (469) 505 ent
(\ 20.5.5.1 Reaping Dead Processes) (470) 506 ent
(20.6 Interaction with RPC) (471) 507 ent
(20.7 Client Events) (472) 508 ent
(\ 20.7.1 Receiving Client Events) (473) 509 ent
(\ 20.7.2 Posting Client Events) (474) 510 ent
(\ 20.7.2.1 Actual Delivery Time) (475) 511 ent
(\ 20.7.3 Posting with an Argument) (475) 511 ent
(\ 20.7.4 Posting Destroy Events) (476) 512 ent
(\ 20.7.5 Delivery Time of Destroy Events) (477) 513 ent
showpage
%%EndPage
%%Page: 12 "xvi"
resetpage
(20.8 Reading and Writing Through File Descriptors) (477) 513 ent
(\ 20.8.1 Reading Files) (478) 514 ent
(\ 20.8.2 Reading and Writing on Pipes) (480) 516 ent
(\ 20.8.3 Exception Occurred Events) (485) 521 ent
(\ 20.8.4 Getting an Event Handler) (485) 521 ent
(20.9 Interposition) (486) 522 ent
(\ 20.9.1 Uses of Interposition) (487) 523 ent
(\ 20.9.2 Interface to Interposition) (487) 523 ent
(\ 20.9.3 Registering an Interposer) (487) 523 ent
(\ 20.9.4 Invoking the Next Function) (488) 524 ent
(\ 20.9.5 Removing an Interposed Function) (489) 525 ent
(\ 20.9.6 An Interposition Example) (489) 525 ent
(\ 20.9.7 Interposing on Resize Events) (491) 527 ent
(\ 20.9.8 Modifying an Object's Destruction) (491) 527 ent
(\ 20.9.8.1 Interposing a Client Destroy Handler) (493) 529 ent
(20.10 Notifier Control) (495) 531 ent
(\ 20.10.1 Mass Destruction) (496) 532 ent
(\ 20.10.2 Implicit Dispatching) (496) 532 ent
(\ 20.10.3 Explicit Dispatching) (498) 534 ent
(20.11 Emulating a sleep\(\) Call) (499) 535 ent
(20.12 Advanced Notifier Usage) (501) 537 ent
(\ 20.12.1 Prioritization) (501) 537 ent
(\ 20.12.1.1 Providing a Prioritizer) (501) 537 ent
(\ 20.12.1.2 Dispatching Events) (502) 538 ent
(\ 20.12.1.3 Getting The Prioritizer) (503) 539 ent
(\ 20.12.2 Scheduling the Notifier) (503) 539 ent
(\ 20.12.2.1 Dispatching Clients) (504) 540 ent
(\ 20.12.2.2 Getting the Scheduler) (505) 541 ent
(20.13 Error Codes) (505) 541 ent
(20.14 Issues) (506) 542 ent
nl
nl
(Chapter 21 Color ) (511) 537 chent
nl
(21.1 XView Color Model) (511) 547 ent
(\ 21.1.0.1 What is a Colormap Segment?) (512) 548 ent
(\ 21.1.1 Colormap Segment Types) (513) 549 ent
(\ 21.1.1.1 Static Colormap Segments) (513) 549 ent
(\ 21.1.1.2 Dynamic Colormap Segments) (513) 549 ent
(21.2 Creating Colormap Segments) (514) 550 ent
(\ 21.2.0.1 Cms Size) (514) 550 ent
(\ 21.2.1 Specifying Colors) (515) 551 ent
(\ 21.2.1.1 Specifying Colors by Name) (515) 551 ent
(\ 21.2.1.2 Specifying Colors by RGB values) (515) 551 ent
(\ 21.2.2 Cms Name) (517) 553 ent
(21.3 Color and Pixel Values) (517) 553 ent
(\ 21.3.0.1 Logical vs. Real Indices) (517) 553 ent
showpage
%%EndPage
%%Page: 13 "xvii"
resetpage
(\ 21.3.1 Foreground and Background Colors) (518) 554 ent
(\ 21.3.1.1 Colors of Control Objects) (519) 555 ent
(21.4 The color_logo.c Program) (519) 555 ent
(21.5 The Control Colormap Segment) (522) 558 ent
(\ 21.5.1 Coloring Panel Items) (523) 559 ent
(21.6 Using xv_find\(\) with Colormap Segments) (525) 561 ent
(21.7 Canvases and Colormaps) (526) 562 ent
(21.8 Multi-visual Support) (526) 562 ent
(\ 21.8.1 Using the Visual Attributes) (527) 563 ent
(21.9 Another Example) (527) 563 ent
(21.10 Cms Package Summary) (532) 568 ent
nl
nl
(Chapter 22 Internationalization ) (535) 561 chent
nl
(22.1 Locale Setting) (536) 572 ent
(\ 22.1.1 Locale Definition) (536) 572 ent
(\ 22.1.2 Enabling Internationalization) (536) 572 ent
(\ 22.1.2.1 Setting Path of Locale-specific Files) (537) 573 ent
(\ 22.1.3 OpenWindows Localization Properties Sheet) (537) 573 ent
(\ 22.1.4 XView Locale Attributes) (538) 574 ent
(\ 22.1.5 Command-line Options for Specifying Locale) (539) 575 ent
(\ 22.1.5.1 XView Locale Resources) (539) 575 ent
(\ 22.1.5.2 ANSI-C/POSIX) (540) 576 ent
(22.2 Localized Text Handling) (541) 577 ent
(\ 22.2.1 Localized Text Handling - Application Programmer Interface) (542) 578 ent
(\ 22.2.1.1 gettext\(\)) (542) 578 ent
(\ 22.2.1.2 dgettext\(\)) (542) 578 ent
(\ 22.2.1.3 textdomain\(\)) (543) 579 ent
(\ 22.2.1.4 bindtextdomain\(\)) (543) 579 ent
(\ 22.2.1.5 Examples) (544) 580 ent
(\ 22.2.1.6 XV_LOCALE_DIR) (544) 580 ent
(\ 22.2.2 Creating a Text Domain) (545) 581 ent
(\ 22.2.3 New and Enhanced XView Attributes for gettext\(\)) (546) 582 ent
(22.3 Object Layout and Customization) (547) 583 ent
(\ 22.3.1 Implicit and Explicit) (547) 583 ent
(\ 22.3.2 Layout and Customization API) (548) 584 ent
(\ 22.3.2.1 XV_LOCALE_DIR) (548) 584 ent
(\ 22.3.2.2 XV_USE_DB) (548) 584 ent
(\ 22.3.2.3 XV_INSTANCE_NAME) (548) 584 ent
(\ 22.3.3 Command-line Options) (550) 586 ent
(22.4 Internationalization Attribute Summary) (550) 586 ent
showpage
%%EndPage
%%Page: 14 "xviii"
resetpage
(Chapter 23 Help Facilities ) (553) 579 chent
nl
(23.1 Using XV_HELP_DATA) (554) 590 ent
(23.2 HELP Key Binding) (554) 590 ent
(\ 23.2.1 Attaching Help Data) (555) 591 ent
(\ 23.2.2 More Help) (556) 592 ent
(\ 23.2.3 Text Help) (557) 593 ent
(\ 23.2.4 Displaying Help Manually) (557) 593 ent
(\ 23.2.5 Help File Installation) (558) 594 ent
(\ 23.2.5.1 HELPPATH Usage with Internationalization) (559) 595 ent
(23.3 Help Package Summary) (560) 596 ent
nl
nl
(Chapter 24 Error Recovery ) (563) 589 chent
nl
(24.1 XView Errors) (563) 599 ent
(24.2 Simple Error Handling) (564) 600 ent
(\ 24.2.0.1 Using xv_error_format\(\)) (565) 601 ent
(24.3 X Error Handling) (565) 601 ent
(24.4 Advanced Error Handling) (566) 602 ent
(\ 24.4.0.1 Error Types) (566) 602 ent
(\ 24.4.1 Calling xv_error\(\)) (567) 603 ent
(\ 24.4.1.1 Error Severity) (568) 604 ent
(\ 24.4.2 Revisiting the Error Handler) (568) 604 ent
nl
nl
(Chapter 25 XView Internals ) (573) 599 chent
nl
(25.1 Methods) (574) 610 ent
(\ 25.1.0.1 Static Subclassing) (574) 610 ent
(\ 25.1.1 Order of Methods) (575) 611 ent
(25.2 Internal Attribute-value Lists) (576) 612 ent
(\ 25.2.1 Attribute Values) (576) 612 ent
(\ 25.2.2 Creating Attribute Lists) (577) 613 ent
(\ 25.2.2.1 Attribute Lists Within Attribute Lists) (577) 613 ent
(\ 25.2.3 Interpreting Attributes) (578) 614 ent
(\ 25.2.4 Checking for Bad Attributes) (580) 616 ent
(\ 25.2.4.1 Searching for Specific Attributes) (580) 616 ent
(\ 25.2.5 Consuming Attributes) (581) 617 ent
(25.3 Customizable Attributes) (581) 617 ent
(25.4 XView Packages) (583) 619 ent
(\ 25.4.1 The Xv_pkg Type) (583) 619 ent
(\ 25.4.2 Public and Private Data) (584) 620 ent
(25.5 The Logo Package) (585) 621 ent
(\ 25.5.1 Header Files) (585) 621 ent
(\ 25.5.1.1 The Public Header File) (585) 621 ent
(\ 25.5.1.2 The Private Header File) (586) 622 ent
showpage
%%EndPage
%%Page: 15 "xix"
resetpage
(\ 25.5.2 The Implementation File) (587) 623 ent
(\ 25.5.3 The Package Declaration) (588) 624 ent
(\ 25.5.4 The Initialize Method) (589) 625 ent
(\ 25.5.4.1 The logo_redraw\(\) Function) (592) 628 ent
(\ 25.5.5 The Set Method) (593) 629 ent
(\ 25.5.6 The Get Method) (595) 631 ent
(\ 25.5.7 The Destroy Method) (596) 632 ent
(25.6 Example Program Listing) (597) 633 ent
(25.7 Compiling an Implementation File) (598) 634 ent
(25.8 The Bitmap Package) (599) 635 ent
(\ 25.8.1 The Bitmap Initialize Method) (600) 636 ent
(\ 25.8.2 The Bitmap Set Method) (601) 637 ent
(\ 25.8.3 The Bitmap Get Method) (602) 638 ent
(\ 25.8.4 Creating a Bitmap Instance) (603) 639 ent
(25.9 The Find Method) (604) 640 ent
(\ 25.9.0.1 To Find or Not to Find) (604) 640 ent
(\ 25.9.1 Conceptual Implementation) (605) 641 ent
(\ 25.9.1.1 Scope of List Availability) (606) 642 ent
(\ 25.9.2 Actual Implementation) (606) 642 ent
(25.10 The Image Package) (606) 642 ent
(\ 25.10.0.1 The Public Image Header File) (607) 643 ent
(\ 25.10.0.2 The Private Image Header File) (607) 643 ent
(\ 25.10.0.3 The Image Package Declaration) (608) 644 ent
(\ 25.10.1 The Image Initialize Method) (608) 644 ent
(\ 25.10.2 The Image Set Method) (609) 645 ent
(\ 25.10.3 The Image Get Method) (610) 646 ent
(\ 25.10.4 The Image Destroy Method) (610) 646 ent
(\ 25.10.5 The Image Find Method) (611) 647 ent
(\ 25.10.6 The Image.c Program) (612) 648 ent
(25.11 The Wizzy Package-A Panel Item Extension) (614) 650 ent
(\ 25.11.1 The Public Wizzy Header File) (614) 650 ent
(\ 25.11.2 The Private Wizzy Header File) (614) 650 ent
(\ 25.11.3 The Wizzy Package Declaration) (615) 651 ent
(\ 25.11.4 The Implementation Files) (615) 651 ent
(\ 25.11.5 The Wizzy Initialize Method) (616) 652 ent
(\ 25.11.6 The Wizzy Set Method) (618) 654 ent
(\ 25.11.7 The Wizzy Get Method) (619) 655 ent
(\ 25.11.8 The Wizzy Destroy Method) (620) 656 ent
(\ 25.11.9 Panel Item Handler Procedures) (620) 656 ent
(\ 25.11.9.1 The Handle Event Function) (620) 656 ent
(\ 25.11.9.2 The Begin Preview Function) (621) 657 ent
(\ 25.11.9.3 The Update Preview Function) (621) 657 ent
(\ 25.11.9.4 The Cancel Preview Function) (621) 657 ent
(\ 25.11.9.5 The Accept Preview Function) (621) 657 ent
(\ 25.11.9.6 The Accept Menu Function) (622) 658 ent
(\ 25.11.9.7 The Accept Key Function) (622) 658 ent
(\ 25.11.9.8 The Clear Function) (622) 658 ent
(\ 25.11.9.9 The Paint Function) (622) 658 ent
showpage
%%EndPage
%%Page: 16 "xx"
resetpage
(\ 25.11.9.10 The Resize Function) (623) 659 ent
(\ 25.11.9.11 The Remove Function) (623) 659 ent
(\ 25.11.9.12 The Restore Function) (624) 660 ent
(\ 25.11.9.13 The Layout Function) (624) 660 ent
(\ 25.11.9.14 Accept Keyboard Focus Function) (624) 660 ent
(\ 25.11.9.15 The Yield Keyboard Focus Function) (625) 661 ent
(\ 25.11.10 Panel Item Extension Attributes) (625) 661 ent
nl
nl
(Appendix A The Selection Service ) (629) 665 ent
nl
(A.1 The XView Selection Model) (630) 666 ent
(A.2 Using the Selection Service) (631) 667 ent
(A.3 Getting the Current Selection) (632) 668 ent
(\ A.3.1 The Seln_request Structure) (635) 671 ent
(A.4 Using selection_query\(\)) (641) 677 ent
(A.5 Selection Package Summary) (646) 682 ent
nl
nl
(Appendix B The notice_prompt Function ) (651) 687 ent
nl
(B.1 Creating and Displaying Notices) (651) 687 ent
(\ B.1.1 Response Choices and Values) (654) 690 ent
(\ B.1.2 Notice Triggers) (655) 691 ent
(B.2 Another Example) (657) 693 ent
(B.3 Notice Package Summary) (660) 696 ent
nl
nl
(Appendix C Mouseless Model Keyboard Mappings ) (663) 699 ent
nl
(C.1 Mouseless Model Resources) (663) 699 ent
(\ C.1.1 SunView1 Mappings) (664) 700 ent
(\ C.1.2 Basic Mappings) (665) 701 ent
(\ C.1.3 Full Mouseless Mappings) (666) 702 ent
(C.2 Mouseless Model Keyboard Semantic Actions) (667) 703 ent
(C.3 SunView1 Mappings for the Mouseless Model) (668) 704 ent
showpage
%%EndPage
%%Page: 17 "xxi"
resetpage
(Appendix D XVPS Extension ) (673) 709 ent
nl
(D.1 The XView/NeWS PostScript Library) (673) 709 ent
(\ D.1.1 X and NeWS Color) (674) 710 ent
(\ D.1.2 Default Transformation Matrix) (675) 711 ent
(\ D.1.3 Using the NeWS Framebuffer) (675) 711 ent
(D.2 Attribute Summary) (675) 711 ent
(D.3 Data Types) (676) 712 ent
(D.4 Procedures and Macros) (676) 712 ent
(D.5 Additional CPS Macros) (677) 713 ent
(D.6 Program Sample) (678) 714 ent
(\ D.6.1 simple.c) (679) 715 ent
(\ D.6.2 simple.cps) (680) 716 ent
(\ D.6.3 Compiling the Example) (680) 716 ent
nl
nl
(Appendix E OPEN LOOK User-interface Compliance) (683) 719 ent
nl
(E.1 Level 1 Features Not Supported in XView 3.0) (683) 719 ent
(\ E.1.1 Keyboard and Mouse Customization) (683) 719 ent
(\ E.1.2 Default Buttons in Pop-ups) (684) 720 ent
(\ E.1.3 Help) (684) 720 ent
(\ E.1.4 Window Background) (685) 721 ent
(\ E.1.5 Notices) (685) 721 ent
(\ E.1.6 Text Functions) (685) 721 ent
(\ E.1.7 Control Items) (685) 721 ent
(\ E.1.8 Property Windows) (686) 722 ent
(E.2 Level 2 Features Supported in XView 3.0) (686) 722 ent
(E.3 Level 2 Features Not Supported in XView 3.0) (687) 723 ent
nl
nl
(Appendix F Example Programs ) (691) 727 ent
nl
(F.1 item_move.c) (691) 727 ent
(F.2 scroll_cells2.c) (697) 733 ent
(F.3 menu_dir2.c) (701) 737 ent
showpage
%%EndPage
%%Page: 18 "xxii"
resetpage
(F.4 type_font.c) (706) 742 ent
(F.5 fonts.c) (708) 744 ent
(F.6 x_draw.c) (712) 748 ent
(F.7 The Logo.c Module) (716) 752 ent
(F.8 The Bitmap.c Module) (719) 755 ent
(F.9 The panel_dnd.c Program) (723) 759 ent
showpage
%%EndPage
%%Page: 19 "xxiii"
resetpage
(Figures) tl
nl
Page
(1-1 An X application and a traditional text terminal) (4) 40 ent
(1-2 Selecting a menu item with the pointer) (4) 40 ent
(1-3 Applications can run on any system across the network) (6) 42 ent
(1-4 The software architecture of X applications) (8) 44 ent
(1-5 The Notifier exists between the server and the XView application) (10) 46 ent
(1-6 A sample OPEN LOOK workspace) (13) 49 ent
(2-1 XView class hierarchy) (18) 54 ent
(2-2 Object creation is top down; attribute setting is bottom up) (24) 60 ent
(2-3 Fully-featured base frame \(includes optional elements\)) (26) 62 ent
(2-4 Sample unpinned command frame) (27) 63 ent
(2-5 Sample help window) (28) 64 ent
(2-6 Sample notice) (28) 64 ent
(2-7 A window with multiple views) (29) 65 ent
(2-8 A control area above a subwindow) (30) 66 ent
(2-9 A control area to the right of a pane) (31) 67 ent
(2-10 A control area in a command window) (32) 68 ent
(2-11 Example of a pop-up menu with a pullright submenu) (32) 68 ent
(2-12 Vertical scrollbar components) (33) 69 ent
(2-13 Flow of control in a conventional program) (35) 71 ent
(2-14 Flow of control in a Notifier-based program) (36) 72 ent
(2-15 Flow of input events in an XView application) (38) 74 ent
(3-1 A frame containing a Quit button) (45) 81 ent
(4-1 Frame package class hierarchy) (59) 95 ent
(4-2 Three base frames) (60) 96 ent
(4-3 Simple base frame created without any FRAME attributes specified) (63) 99 ent
(4-4 A sample header label display in a frame) (64) 100 ent
(4-5 Headers and footers on base frame) (65) 101 ent
(4-6 Default icon and application icon) (66) 102 ent
(4-7 Base frame with a command frame) (69) 105 ent
(5-1 Canvas class hierarchy) (85) 121 ent
(5-2 A canvas subwindow with multiple views) (86) 122 ent
(5-3 Canvases, views, and paint windows) (87) 123 ent
(5-4 Window before and after an Expose event) (92) 128 ent
(5-5 Window with two views before and after an Expose event) (93) 129 ent
(5-6 A window created with canvas_event.c) (110) 146 ent
(6-1 A sample function keys window) (140) 176 ent
(6-2 Sample function keys window with a MORE key) (140) 176 ent
(6-3 Sample virtual keyboard binding) (142) 178 ent
(7-1 Panel package class hierarchy) (151) 187 ent
(7-2 Panel item class hierarchy) (151) 187 ent
(7-3 Controls in an OPENLOOK GUI implementation) (152) 188 ent
(7-4 Layout of panel items) (158) 194 ent
(7-5 Panel item value rectangle and label rectangle) (159) 195 ent
showpage
%%EndPage
%%Page: 20 "xxiv"
resetpage
(7-6 Visual feedback for button controls) (165) 201 ent
(7-7 Sample menu button \(unselected and selected\)) (168) 204 ent
(7-8 Sample abbreviated menu button) (169) 205 ent
(7-9 Sample panel with exclusive choices) (170) 206 ent
(7-10 Sample panel with nonexclusive choices) (171) 207 ent
(7-11 Sample panel with abbreviated choice \(unselected and selected\)) (172) 208 ent
(7-12 Sample panel with checkbox) (173) 209 ent
(7-13 Sample panel with scrolling list) (176) 212 ent
(7-14 Output of program list_glyphs.c) (179) 215 ent
(7-15 Sample panel with message item) (184) 220 ent
(7-16 Sample panel with message item-High Pressure) (184) 220 ent
(7-17 Sample panel with slider item) (186) 222 ent
(7-18 Sample panel with text item) (187) 223 ent
(7-19 Panel multiline text item) (193) 229 ent
(7-20 Sample panel with drop target items) (193) 229 ent
(7-21 Panel with gray background) (202) 238 ent
(7-22 Output of item_move.c in use) (206) 242 ent
(8-1 A sample text subwindow) (211) 247 ent
(8-2 Textsw class hierarchy) (212) 248 ent
(8-3 A caret marks the insertion point) (213) 249 ent
(8-4 A text selection) (228) 264 ent
(9-1 TTY package class hierarchy) (237) 273 ent
(9-2 Output of sample_tty.c) (239) 275 ent
(9-3 Output of textsw_to_ttysw.c) (242) 278 ent
(10-1 An OPEN LOOK scrollbar) (249) 285 ent
(10-2 Relationship between a scrollbar and the object it scrolls) (251) 287 ent
(10-3 Scrollbar class hierarchy) (252) 288 ent
(10-4 Splitting a text subwindow twice) (253) 289 ent
(10-5 Model for scroll_cells.c) (254) 290 ent
(11-1 The Window menu) (268) 304 ent
(11-2 Menu buttons each with a pulldown menu) (269) 305 ent
(11-3 Pushpins in a menu and a submenu) (269) 305 ent
(11-4 Exclusive settings on a menu) (270) 306 ent
(11-5 Nonexclusive settings on a submenu) (271) 307 ent
(11-6 Menu class hierarchy) (272) 308 ent
(11-7 Output of simple_menu.c when the menu is popped up) (276) 312 ent
(11-8 Output of xv_menu.c) (291) 327 ent
(12-1 Notice class hierarchy) (303) 339 ent
(12-2 A sample notice window) (304) 340 ent
(12-3 Output of simple_notice.c while the notice is up) (308) 344 ent
(13-1 Cursor class hierarchy) (323) 359 ent
(14-1 Three bordered default icons) (335) 371 ent
(14-2 Icon package class hierarchy) (336) 372 ent
(15-1 Nonvisual objects class hierarchy) (345) 381 ent
(16-1 Font package class hierarchy) (364) 400 ent
(16-2 The Courier font in different styles and sizes) (367) 403 ent
(18-1 Dragging the pointer to select text) (390) 426 ent
(18-2 Selection owner class hierarchy) (394) 430 ent
showpage
%%EndPage
%%Page: 21 "xxv"
resetpage
(18-3 Selection requestor class hierarchy) (395) 431 ent
(18-4 Selection item class hierarchy) (409) 445 ent
(19-1 Dragging a file onto an application) (430) 466 ent
(19-2 Loading a file by dropping) (430) 466 ent
(19-3 DRAGDROP class hierarchy) (431) 467 ent
(19-4 DROP_SITE_ITEM class hierarchy) (431) 467 ent
(20-1 Output of animate.c) (469) 505 ent
(20-2 Flow of control in interposition) (486) 522 ent
(21-1 CMS package class hierarchy) (512) 548 ent
(22-1 OPENLOOK localization menu) (538) 574 ent
(23-1 A sample Help window) (553) 589 ent
(25-1 Calling order for init, set, get, destroy, and find) (575) 611 ent
(25-2 The bits in an attribute) (576) 612 ent
(25-3 Output of logo.c) (598) 634 ent
(A-1 Byte stream after selection_ask\(\) returns the current text selection) (636) 670 ent
(A-2 How selection_query\(\) is used) (642) 678 ent
(B-1 Output of simple_notice.c while the notice is up) (653) 689 ent

showpage
%%EndPage
%%Page: 22 "xxvi"
resetpage
(Examples) tl
nl
Page
(3-1 The quit.c program) (44) 80 ent
(3-2 xv_create\(\) creates XView objects) (47) 83 ent
(4-1 The simple_frame.c program) (62) 98 ent
(4-2 Creating a base frame after calling xv_init\(\)) (62) 98 ent
(4-3 Setting separate values for a frame header) (65) 101 ent
(4-4 Creating a footer) (65) 101 ent
(4-5 Creating a subframe) (68) 104 ent
(4-6 Using several frame attributes) (70) 106 ent
(4-7 The subframe.c program) (72) 108 ent
(4-8 Changing a frame's color) (75) 111 ent
(5-1 The line.c program) (96) 132 ent
(5-2 Repainting objects within a damaged region) (97) 133 ent
(5-3 The canvas_event.c program) (107) 143 ent
(6-1 The canvas_input.c program) (133) 169 ent
(7-1 The quit.c program) (153) 189 ent
(7-2 The btn_menu.c program) (166) 202 ent
(7-3 The list_glyphs.c program) (177) 213 ent
(7-4 The message_item.c program) (183) 219 ent
(7-5 The multiline.c program) (192) 228 ent
(7-6 The client_data.c program) (198) 234 ent
(7-7 The panel_repaint.c program) (200) 236 ent
(8-1 Client notify procedure for a text subwindow) (230) 266 ent
(9-1 The sample_tty.c program) (238) 274 ent
(9-2 The textsw_to_ttysw.c program) (240) 276 ent
(9-3 The ttycurses.c program) (243) 279 ent
(10-1 The scroll_cells.c program) (255) 291 ent
(10-2 The scrollto.c program) (260) 296 ent
(11-1 The simple_menu.c program) (274) 310 ent
(11-2 How to create a menu containing a pushpin) (287) 323 ent
(11-3 The xv_menu.c program) (289) 325 ent
(11-4 Creating individual menu items) (294) 330 ent
(11-5 The menu_dir.c program) (295) 331 ent
(12-1 The simple_notice.c program) (306) 342 ent
(12-2 Creating a standard notice) (311) 347 ent
(12-3 A notice using a callback) (311) 347 ent
(12-4 Creating a screen-locking notice) (314) 350 ent
(12-5 The trigger_notice.c program) (314) 350 ent
(12-6 The notice.c program) (317) 353 ent
(13-1 The simple_cursor.c program) (324) 360 ent
(13-2 The hot_spot.c program) (327) 363 ent
(13-3 Using drag and drop text cursors) (330) 366 ent
showpage
%%EndPage
%%Page: 23 "xxvii"
resetpage
(14-1 The icon_demo.c program) (336) 372 ent
(14-2 Color cursors) (338) 374 ent
(14-3 Redefining an icon's size to include its label) (340) 376 ent
(15-1 Getting a pointer for a particular frame object \(screen.c\)) (347) 383 ent
(15-2 Display a base frame on two screens) (348) 384 ent
(15-3 The svrimage.c program) (354) 390 ent
(15-4 The fullscreen.c program) (356) 392 ent
(16-1 The simple_font.c program) (365) 401 ent
(17-1 The default_text.c program) (380) 416 ent
(17-2 The default_size.c program) (384) 420 ent
(18-1 Requesting the CLIPBOARD selection--blocking) (397) 433 ent
(18-2 Non-blocking selection request) (398) 434 ent
(18-3 Selection owner program) (401) 437 ent
(18-4 Sample reply procedure - SelectionReplyProc) (403) 439 ent
(18-5 Sample selection reply error handler) (405) 441 ent
(18-6 Sample done procedure - SelectionDoneProc) (407) 443 ent
(18-7 An incremental conversion procedure) (411) 447 ent
(18-8 Incremental reply - IncrReply.c) (412) 448 ent
(18-9 Sample program - sel_hold.c) (415) 451 ent
(18-10 The notify procedure - NotifyProc\(\)) (417) 453 ent
(18-11 Sample conversion procedure - SelectionConvertProc) (418) 454 ent
(18-12 Sample selection requestor program - sel_req.c) (420) 456 ent
(18-13 Sample requestor notify procedure) (422) 458 ent
(18-14 Sample make request notify procedure) (423) 459 ent
(18-15 Selection reply procedure) (423) 459 ent
(18-16 Sample error procedure - SelectionError.c) (425) 461 ent
(19-1 Sourcing a drag) (440) 476 ent
(19-2 A drop-site item example) (447) 483 ent
(20-1 The animate.c program) (466) 502 ent
(20-2 Demonstrating a wait3 handler) (470) 506 ent
(20-3 The notify_input.c program) (479) 515 ent
(20-4 The ntfy_pipe.c program) (481) 517 ent
(20-5 Transferring control through the Notifier) (490) 526 ent
(20-6 The interpose.c program) (493) 529 ent
(20-7 The ntfy_do_dis.c program) (497) 533 ent
(20-8 Emulating a sleep) (499) 535 ent
(21-1 The color_logo.c program) (519) 555 ent
(21-2 The color_panel.c program) (523) 559 ent
(21-3 The color_objs.c program) (527) 563 ent
(22-1 Using XV_INSTANCE_NAME) (549) 585 ent
(24-1 Example error parsing function) (569) 605 ent
(25-1 The logo.c program) (597) 633 ent
(25-2 The bitmap.c program) (603) 639 ent
(25-3 The image.c program) (613) 649 ent
(A-1 The simple_seln.c program) (633) 669 ent
(A-2 The text_seln.c program) (637) 673 ent
(A-3 The long_seln.c program) (643) 679 ent
(B-1 The simple_notice.c program) (652) 688 ent
showpage
%%EndPage
%%Page: 24 "xxviii"
resetpage
(B-2 The trigger_notice.c program) (655) 691 ent
(B-3 The notice.c program) (657) 693 ent
(F-1 The item_move.c program) (691) 727 ent
(F-2 The scroll_cells2.c program) (697) 733 ent
(F-3 The menu_dir2.c program) (701) 737 ent
(F-4 The type_font.c program) (706) 742 ent
(F-5 The fonts.c program) (708) 744 ent
(F-6 The x_draw.c program) (712) 748 ent
(F-7 The Logo.c module) (716) 752 ent
(F-8 The Bitmap.c module) (719) 755 ent
(F-9 The panel_dnd.c program) (723) 759 ent

showpage
%%EndPage 
%%Page: 25 "xxix"
resetpage
(Tables) tl
nl
Page
(2-1 XView Objects, Owners, Packages, and Data Types) (20) 56 ent
(2-2 Generic Functions) (21) 57 ent
(3-1 Reserved Prefixes) (43) 79 ent
(3-2 Default Ownership of Objects) (48) 84 ent
(4-1 Frame Attributes) (81) 117 ent
(5-1 Canvas Attributes) (110) 146 ent
(5-2 Openwin Attributes) (111) 147 ent
(6-1 Event Structure Fields) (125) 161 ent
(6-2 Mouseless Keyboard Commands with Action ACTION_NULL_EVENT) (143) 179 ent
(6-3 SunView1 Commands That Conflict with the Mouseless Model) (144) 180 ent
(6-4 Mouseless Actions Handled by the Window Manager) (145) 181 ent
(6-4 Mouseless Actions Handled by the Window Manager \(continued\)) (146) 182 ent
(7-1 Text Item Notification Level) (189) 225 ent
(7-2 Return Values for Text Item Notify Procedures) (190) 226 ent
(7-3 Default Event to Action Mapping) (204) 240 ent
(7-4 Panel Procedures and Macros) (207) 243 ent
(7-5 Panel Package Attributes) (207) 243 ent
(8-1 Range of Values for Status Variables) (215) 251 ent
(8-2 Textsw_action Attributes) (231) 267 ent
(8-3 Text Subwindow Procedures and Macros) (233) 269 ent
(8-4 Text Subwindow Attributes) (233) 269 ent
(9-1 TTY Subwindow Procedures) (246) 282 ent
(9-2 TTY Subwindow Attributes) (246) 282 ent
(10-1 Scrollbar Procedures) (263) 299 ent
(10-2 Scrollbar Attributes) (263) 299 ent
(11-1 Menu Procedures and Macros) (299) 335 ent
(11-2 Menu Attributes) (299) 335 ent
(12-1 Notice Attributes \(used with NOTICE_LOCK_SCREEN = FALSE\)) (310) 346 ent
(12-2 Screen-Locking Notice Attributes \(for NOTICE_LOCK_SCREEN = TRUE\)) (313) 349 ent
(12-3 Notice Attributes) (320) 356 ent
(13-1 Cursor Procedures) (331) 367 ent
(13-2 Cursor Attributes) (331) 367 ent
(14-1 Icon Attributes) (341) 377 ent
(15-1 Screen Attributes) (358) 394 ent
(15-2 Server and Server Image Attributes) (358) 394 ent
(15-3 Fullscreen Attributes) (358) 394 ent
(15-3 Fullscreen Attributes \(continued\)) (359) 395 ent
(16-1 Default Font Sizes) (370) 406 ent
(16-2 Font Attributes) (373) 409 ent
(17-1 Resources and Default Values Understood by XView) (378) 414 ent
(18-1 Selecting Text) (390) 426 ent
(18-2 Error Codes) (404) 440 ent
(18-3 Selection Procedures) (426) 462 ent
(18-4 Selection Attributes) (426) 462 ent
showpage
%%EndPage
%%Page: 26 "xxx"
resetpage
(19-1 Drag and Drop Semantic Events) (434) 470 ent
(19-2 dnd_send_drop\(\) Return Values) (437) 473 ent
(19-3 DROP_SITE_ITEM and DRAGDROP Procedures and Macros) (452) 488 ent
(19-4 DROP_SITE_ITEM and DRAGDROP Attributes) (453) 489 ent
(20-1 Notifier Error Codes) (505) 541 ent
(21-1 Cms Attributes) (532) 568 ent
(22-1 XView Locale Attributes) (538) 574 ent
(22-2 Locale Command-line Options) (539) 575 ent
(22-3 XView Locale Resources) (540) 576 ent
(22-4 POSIX Categories) (540) 576 ent
(22-5 Internationalization Attributes) (550) 586 ent
(23-1 Modified Help Keystrokes) (555) 591 ent
(23-2 Help Attributes and Procedures) (560) 596 ent
(25-1 Panel Item Extension Attributes) (625) 661 ent
(A-1 Selecting Text) (630) 666 ent
(A-2 Selection Service Procedures) (646) 682 ent
(A-3 Selection Service Attributes) (646) 682 ent
(B-1 Notice Attributes, Procedures, and Macros) (660) 696 ent
(D-1 File Chooser Procedures and Macros) (700) 750 ent
(D-2 File Chooser Attributes) (700) 750 ent
(D-3 History and History Menu Attributes) (700) 750 ent
(D-4 File List Attributes) (701) 750 ent
(D-5 Path Attributes) (701) 750 ent
(D-6 Version 3.2 Panel List Attributes) (701) 750 ent
(D-7 Version 3.2 Menu Accelerator Attributes) (701) 750 ent

end 	% iandict

showpage

%%EndPage
@


1.2
log
@Minor tweaks. This version works, as I recall.
@
text
@d5 1
d12 1
a12 1
%%Page 0 0
d14 1
a14 1
/iandict 100 dict def
d22 4
a25 4
/lftmargin cropLLX 20 add store
/botmargin cropLLY 20 add store
/ritmargin cropURX 20 sub store
/topmargin cropURY 20 sub store
d27 1
a27 2
/bodysize 12 store
/deltay   14 store
d29 3
d36 1
a36 1
	/Times-Bold findfont bodysize scalefont setfont
d41 2
a42 2
	/curx lftmargin store
	/cury topmargin store
d45 1
d49 7
a55 6
	/curx lftmargin store
	/cury cury deltay sub store
	cury botmargin lt {
		showpage
		resetpage
	} if
d60 1
d62 3
a64 1
	show
d69 7
d78 1
a78 1
	(Page) show
d86 1
a86 1
		/ymove exch def
a97 1
	%lftmargin cury moveto
d100 2
a101 1
	/curx ritmargin store
a104 1
	
d107 11
d128 965
a1092 1
(Preface) (xxxiii) 1  ent
d1094 115
d1210 80
a1289 4
(Please Read This Section! ) (xxxiii) 2 ent
(How to Use This Manual ) (xxxiv) 2 ent
(Assumptions ) (xxxvi) 3 ent
(Font Conventions Used in This Manual ) (xxxvi) 1 ent
a1292 6
showpage

%%EndPage
%%Page: 2 2

100 600 moveto (Page 2) show
@


1.1
log
@Initial revision
@
text
@d11 1
a11 1
%%Page: 1 1
d67 1
a67 2
/mklink	{	% npage mytext mklink --
	/mtext exch def
d69 5
a73 4
	mtext stringwidth
	/xmove exch def
	/ymove exch def
	[ /Rect [curx cury curx xmove add cury ymove add]
d75 1
a75 1
		/View [-4 cropURY 1]
d80 2
d83 1
a83 5
	/spage exch def
	/npage exch def
	ritmargin cury moveto
	spage show
	lftmargin cury moveto
d86 4
d103 1
a103 1
(Preface) (xxxiii) (2) ent
d106 4
a109 4
(Please Read This Section! ) (xxxiii) (2) ent
(How to Use This Manual ) (xxxiv) (2) ent
(Assumptions ) (xxxvi)(2) ent
(Font Conventions Used in This Manual ) (xxxvi) (1)ent
d112 1
d114 1
a115 1

@
