1994689c1Smrg<sect2 id="Text_Widget_Actions"> 2994689c1Smrg<title>Text Widget Actions</title> 3994689c1Smrg<para> 4994689c1Smrg<!-- .LP --> 55ec34c4cSmrg<indexterm><primary>Text widget</primary><secondary>actions</secondary></indexterm> 6994689c1Smrg<!-- .XS --> 7994689c1Smrg<!-- Actions Supported by all Text Widgets --> 8994689c1Smrg<!-- .XE --> 95ec34c4cSmrg<indexterm significance="preferred"><primary>Text widget</primary><secondary>actions</secondary></indexterm> 10994689c1Smrg 11994689c1SmrgAll editing functions are performed by translation manager actions that may 12994689c1Smrgbe specified through the <function>translations</function> resource in the Text widget. 13994689c1Smrg</para> 14994689c1Smrg<para> 15994689c1Smrg<!-- .LP --> 16994689c1Smrg<!-- .sp --> 17994689c1Smrg<literallayout class="monospaced"> 18994689c1Smrg<!-- .TA .5i 2.5i 3i --> 19994689c1Smrg<!-- .ta .5i 2.5i 3i --> 20994689c1SmrgInsert Point Movement Delete 21994689c1Smrg forward-character delete-next-character 22994689c1Smrg backward-character delete-previous-character 23994689c1Smrg forward-word delete-next-word 24994689c1Smrg backward-word delete-previous-word 25994689c1Smrg forward-paragraph delete-selection 26994689c1Smrg backward-paragraph 27994689c1Smrg beginning-of-line 28994689c1Smrg end-of-line Selection 29994689c1Smrg next-line select-word 30994689c1Smrg previous-line select-all 31994689c1Smrg next-page select-start 32994689c1Smrg previous-page select-adjust 33994689c1Smrg beginning-of-file select-end 34994689c1Smrg end-of-file extend-start 35994689c1Smrg scroll-one-line-up extend-adjust 36994689c1Smrg scroll-one-line-down extend-end 37994689c1Smrg insert-selection 38994689c1Smrg 39994689c1Smrg 40994689c1SmrgMiscellaneous New Line 41994689c1Smrg redraw-display newline-and-indent 42994689c1Smrg insert-file newline-and-backup 43994689c1Smrg insert-char newline 44994689c1Smrg insert-string 45994689c1Smrg display-caret 46994689c1Smrg focus-in Kill 47994689c1Smrg focus-in kill-word 48994689c1Smrg search backward-kill-word 49994689c1Smrg multiply kill-selection 50994689c1Smrg form-paragraph kill-to-end-of-line 51994689c1Smrg transpose-characters kill-paragraph 52994689c1Smrg no-op kill-to-end-of-paragraph 53994689c1Smrg XawWMProtocols 54994689c1Smrg reconnect-im 55994689c1Smrg</literallayout> 56994689c1Smrg<!-- .sp --> 57994689c1Smrg</para> 58994689c1Smrg<para> 59994689c1Smrg<!-- .LP --> 60994689c1SmrgMost of the actions take no arguments, and unless otherwise noted you 61994689c1Smrgmay assume this to be the case. 62994689c1Smrg</para> 63994689c1Smrg<para> 64994689c1Smrg<!-- .LP --> 65994689c1Smrg</para> 66421c997bSmrg<sect3 id='Cursor_Movement_Actions'> 675ec34c4cSmrg<title>Cursor Movement Actions</title> 68994689c1Smrg<para> 69994689c1Smrg<!-- .LP --> 70994689c1Smrg<!-- .sp --> 71994689c1Smrg<variablelist> 72994689c1Smrg <varlistentry> 73994689c1Smrg <term> 74994689c1Smrg forward-character() 75994689c1Smrg </term> 76994689c1Smrg <listitem> 77994689c1Smrg <para> 78994689c1Smrg<!-- .br --> 79994689c1Smrg<!-- .ns --> 80994689c1Smrg </para> 81994689c1Smrg </listitem> 82994689c1Smrg </varlistentry> 83994689c1Smrg <varlistentry> 84994689c1Smrg <term> 85994689c1Smrg backward-character() 86994689c1Smrg </term> 87994689c1Smrg <listitem> 88994689c1Smrg <para> 89994689c1SmrgThese actions move the insert point forward or backward one character in 90994689c1Smrgthe buffer. If the insert point is at the end or beginning of a line 91994689c1Smrgthis action will move the insert point to the next (or previous) line. 92994689c1Smrg </para> 93994689c1Smrg </listitem> 94994689c1Smrg </varlistentry> 95994689c1Smrg <varlistentry> 96994689c1Smrg <term> 97994689c1Smrg forward-word() 98994689c1Smrg </term> 99994689c1Smrg <listitem> 100994689c1Smrg <para> 101994689c1Smrg<!-- .br --> 102994689c1Smrg<!-- .ns --> 103994689c1Smrg </para> 104994689c1Smrg </listitem> 105994689c1Smrg </varlistentry> 106994689c1Smrg <varlistentry> 107994689c1Smrg <term> 108994689c1Smrg backward-word() 109994689c1Smrg </term> 110994689c1Smrg <listitem> 111994689c1Smrg <para> 112994689c1SmrgThese actions move the insert point to the next or previous word boundary. 113994689c1SmrgA word boundary is defined as a Space, Tab or Carriage Return. 114994689c1Smrg </para> 115994689c1Smrg </listitem> 116994689c1Smrg </varlistentry> 117994689c1Smrg <varlistentry> 118994689c1Smrg <term> 119994689c1Smrg forward-paragraph() 120994689c1Smrg </term> 121994689c1Smrg <listitem> 122994689c1Smrg <para> 123994689c1Smrg<!-- .br --> 124994689c1Smrg<!-- .ns --> 125994689c1Smrg </para> 126994689c1Smrg </listitem> 127994689c1Smrg </varlistentry> 128994689c1Smrg <varlistentry> 129994689c1Smrg <term> 130994689c1Smrg backward-paragraph() 131994689c1Smrg </term> 132994689c1Smrg <listitem> 133994689c1Smrg <para> 134994689c1SmrgThese actions move the insert point to the next or previous paragraph boundary. 135994689c1SmrgA paragraph boundary is defined as two Carriage Returns in a row with only 136994689c1SmrgSpaces or Tabs between them. 137994689c1Smrg </para> 138994689c1Smrg </listitem> 139994689c1Smrg </varlistentry> 140994689c1Smrg <varlistentry> 141994689c1Smrg <term> 142994689c1Smrg beginning-of-line() 143994689c1Smrg </term> 144994689c1Smrg <listitem> 145994689c1Smrg <para> 146994689c1Smrg<!-- .br --> 147994689c1Smrg<!-- .ns --> 148994689c1Smrg </para> 149994689c1Smrg </listitem> 150994689c1Smrg </varlistentry> 151994689c1Smrg <varlistentry> 152994689c1Smrg <term> 153994689c1Smrg end-of-line() 154994689c1Smrg </term> 155994689c1Smrg <listitem> 156994689c1Smrg <para> 157994689c1SmrgThese actions move to the beginning or end of the current line. If the 158994689c1Smrginsert point is already at the end or beginning of the line then no action is taken. 159994689c1Smrg </para> 160994689c1Smrg </listitem> 161994689c1Smrg </varlistentry> 162994689c1Smrg <varlistentry> 163994689c1Smrg <term> 164994689c1Smrg next-line() 165994689c1Smrg </term> 166994689c1Smrg <listitem> 167994689c1Smrg <para> 168994689c1Smrg<!-- .br --> 169994689c1Smrg<!-- .ns --> 170994689c1Smrg </para> 171994689c1Smrg </listitem> 172994689c1Smrg </varlistentry> 173994689c1Smrg <varlistentry> 174994689c1Smrg <term> 175994689c1Smrg previous-line() 176994689c1Smrg </term> 177994689c1Smrg <listitem> 178994689c1Smrg <para> 179994689c1SmrgThese actions move the insert point up or down one line. If the insert 180994689c1Smrgpoint is currently N characters from the beginning of the line then it 181994689c1Smrgwill be N characters from the beginning of the next or previous line. 182994689c1SmrgIf N is past the end of the line, the insert point is placed at the end 183994689c1Smrgof the line. 184994689c1Smrg </para> 185994689c1Smrg </listitem> 186994689c1Smrg </varlistentry> 187994689c1Smrg <varlistentry> 188994689c1Smrg <term> 189994689c1Smrg next-page() 190994689c1Smrg </term> 191994689c1Smrg <listitem> 192994689c1Smrg <para> 193994689c1Smrg<!-- .br --> 194994689c1Smrg<!-- .ns --> 195994689c1Smrg </para> 196994689c1Smrg </listitem> 197994689c1Smrg </varlistentry> 198994689c1Smrg <varlistentry> 199994689c1Smrg <term> 200994689c1Smrg previous-page() 201994689c1Smrg </term> 202994689c1Smrg <listitem> 203994689c1Smrg <para> 204994689c1SmrgThese actions move the insert point up or down one page in the file. 205994689c1SmrgOne page is defined as the current height of the text widget. The 206994689c1Smrginsert point is always placed at the first character of the top line by 207994689c1Smrgthis action. 208994689c1Smrg </para> 209994689c1Smrg </listitem> 210994689c1Smrg </varlistentry> 211994689c1Smrg <varlistentry> 212994689c1Smrg <term> 213994689c1Smrg beginning-of-file() 214994689c1Smrg </term> 215994689c1Smrg <listitem> 216994689c1Smrg <para> 217994689c1Smrg<!-- .br --> 218994689c1Smrg<!-- .ns --> 219994689c1Smrg </para> 220994689c1Smrg </listitem> 221994689c1Smrg </varlistentry> 222994689c1Smrg <varlistentry> 223994689c1Smrg <term> 224994689c1Smrg end-of-file() 225994689c1Smrg </term> 226994689c1Smrg <listitem> 227994689c1Smrg <para> 228994689c1SmrgThese actions place the insert point at the beginning or end of the 229994689c1Smrgcurrent text buffer. The text widget is then scrolled the minimum 230994689c1Smrgamount necessary to make the new insert point location visible. 231994689c1Smrg </para> 232994689c1Smrg </listitem> 233994689c1Smrg </varlistentry> 234994689c1Smrg <varlistentry> 235994689c1Smrg <term> 236994689c1Smrg scroll-one-line-up() 237994689c1Smrg </term> 238994689c1Smrg <listitem> 239994689c1Smrg <para> 240994689c1Smrg<!-- .br --> 241994689c1Smrg<!-- .ns --> 242994689c1Smrg </para> 243994689c1Smrg </listitem> 244994689c1Smrg </varlistentry> 245994689c1Smrg <varlistentry> 246994689c1Smrg <term> 247994689c1Smrg scroll-one-line-down() 248994689c1Smrg </term> 249994689c1Smrg <listitem> 250994689c1Smrg <para> 251994689c1SmrgThese actions scroll the current text field up or down by one line. 252994689c1SmrgThey do not move the insert point. Other than the scrollbars this is 253994689c1Smrgthe only way that the insert point may be moved off of the visible text 254994689c1Smrgarea. The widget will be scrolled so that the insert point is back on 255994689c1Smrgthe screen as soon as some other action is executed. 256994689c1Smrg </para> 257994689c1Smrg </listitem> 258994689c1Smrg </varlistentry> 259994689c1Smrg</variablelist> 260994689c1Smrg</para> 261994689c1Smrg</sect3> 262994689c1Smrg<sect3 id="Delete_Actions"> 263994689c1Smrg<title>Delete Actions</title> 264994689c1Smrg<para> 265994689c1Smrg<!-- .LP --> 266994689c1Smrg<!-- .sp --> 267994689c1Smrg<variablelist> 268994689c1Smrg <varlistentry> 269994689c1Smrg <term> 270994689c1Smrg delete-next-character() 271994689c1Smrg </term> 272994689c1Smrg <listitem> 273994689c1Smrg <para> 274994689c1Smrg<!-- .br --> 275994689c1Smrg<!-- .ns --> 276994689c1Smrg </para> 277994689c1Smrg </listitem> 278994689c1Smrg </varlistentry> 279994689c1Smrg <varlistentry> 280994689c1Smrg <term> 281994689c1Smrg delete-previous-character() 282994689c1Smrg </term> 283994689c1Smrg <listitem> 284994689c1Smrg <para> 285994689c1SmrgThese actions remove the character immediately before or after the 286994689c1Smrginsert point. If a Carriage Return is removed then the next line is 287994689c1Smrgappended to the end of the current line. 288994689c1Smrg </para> 289994689c1Smrg </listitem> 290994689c1Smrg </varlistentry> 291994689c1Smrg <varlistentry> 292994689c1Smrg <term> 293994689c1Smrg delete-next-word() 294994689c1Smrg </term> 295994689c1Smrg <listitem> 296994689c1Smrg <para> 297994689c1Smrg<!-- .br --> 298994689c1Smrg<!-- .ns --> 299994689c1Smrg </para> 300994689c1Smrg </listitem> 301994689c1Smrg </varlistentry> 302994689c1Smrg <varlistentry> 303994689c1Smrg <term> 304994689c1Smrg delete-previous-word() 305994689c1Smrg </term> 306994689c1Smrg <listitem> 307994689c1Smrg <para> 308994689c1SmrgThese actions remove all characters between the insert point location and 309994689c1Smrgthe next word boundary. A word boundary is defined as a Space, Tab or 310994689c1SmrgCarriage Return. 311994689c1Smrg </para> 312994689c1Smrg </listitem> 313994689c1Smrg </varlistentry> 314994689c1Smrg <varlistentry> 315994689c1Smrg <term> 316994689c1Smrg delete-selection() 317994689c1Smrg </term> 318994689c1Smrg <listitem> 319994689c1Smrg <para> 320994689c1SmrgThis action removes all characters in the current selection. 321994689c1SmrgThe selection can be set with the selection actions. 322994689c1Smrg </para> 323994689c1Smrg </listitem> 324994689c1Smrg </varlistentry> 325994689c1Smrg</variablelist> 326994689c1Smrg</para> 327994689c1Smrg</sect3> 328994689c1Smrg<sect3 id="Selection_Actions"> 329994689c1Smrg<title>Selection Actions</title> 330994689c1Smrg<para> 331994689c1Smrg<!-- .LP --> 332994689c1Smrg<!-- .sp --> 333994689c1Smrg<variablelist> 334994689c1Smrg <varlistentry> 335994689c1Smrg <term> 336994689c1Smrg select-word() 337994689c1Smrg </term> 338994689c1Smrg <listitem> 339994689c1Smrg <para> 340994689c1SmrgThis action selects the word in which the insert point is currently located. 341994689c1SmrgIf the insert point is between words then it will select the previous word. 342994689c1Smrg </para> 343994689c1Smrg </listitem> 344994689c1Smrg </varlistentry> 345994689c1Smrg <varlistentry> 346994689c1Smrg <term> 347994689c1Smrg select-all() 348994689c1Smrg </term> 349994689c1Smrg <listitem> 350994689c1Smrg <para> 351994689c1SmrgThis action selects the entire text buffer. 352994689c1Smrg </para> 353994689c1Smrg </listitem> 354994689c1Smrg </varlistentry> 355994689c1Smrg <varlistentry> 356994689c1Smrg <term> 357994689c1Smrg select-start() 358994689c1Smrg </term> 359994689c1Smrg <listitem> 360994689c1Smrg <para> 361994689c1SmrgThis action sets the insert point to the current pointer location (if 362994689c1Smrgtriggered by a button event) or text cursor location (if triggered by 363994689c1Smrga key event). It 364994689c1Smrgwill then begin a selection at this location. If many of these 365994689c1Smrgselection actions occur quickly in succession then the selection count 3665ec34c4cSmrgmechanism will be invoked (see 3675ec34c4cSmrg<xref linkend="Text_Selections_for_Application_Programmers"/> for details). 368994689c1Smrg </para> 369994689c1Smrg </listitem> 370994689c1Smrg </varlistentry> 371994689c1Smrg <varlistentry> 372994689c1Smrg <term> 373994689c1Smrg select-adjust() 374994689c1Smrg </term> 375994689c1Smrg <listitem> 376994689c1Smrg <para> 377994689c1SmrgThis action allows a selection started with the <emphasis remap='I'>select-start</emphasis> 378994689c1Smrgaction to be modified, as described above. 379994689c1Smrg </para> 380994689c1Smrg </listitem> 381994689c1Smrg </varlistentry> 382994689c1Smrg <varlistentry> 383994689c1Smrg <term> 384994689c1Smrg select-end(<emphasis remap='I'>name</emphasis>[,<emphasis remap='I'>name</emphasis>,...]) 385994689c1Smrg </term> 386994689c1Smrg <listitem> 387994689c1Smrg <para> 388994689c1SmrgThis action ends a text selection that began with the <emphasis remap='I'>select-start</emphasis> 389994689c1Smrgaction, and asserts ownership of the selection or selections specified. 390994689c1SmrgA <emphasis remap='I'>name</emphasis> can be a selection (e.g., <function>PRIMARY</function>) or a cut buffer 391994689c1Smrg(e.g., <function>CUT_BUFFER0</function>). Note that case is important. If no 392994689c1Smrg<emphasis remap='I'>names</emphasis> are specified, <function>PRIMARY</function> is asserted. 393994689c1Smrg </para> 394994689c1Smrg </listitem> 395994689c1Smrg </varlistentry> 396994689c1Smrg <varlistentry> 397994689c1Smrg <term> 398994689c1Smrg extend-start() 399994689c1Smrg </term> 400994689c1Smrg <listitem> 401994689c1Smrg <para> 402994689c1SmrgThis action finds the nearest end of the current selection, and moves it 403994689c1Smrgto the current pointer location (if triggered by a button event) or text 404994689c1Smrgcursor location (if triggered by a key event). 405994689c1Smrg </para> 406994689c1Smrg </listitem> 407994689c1Smrg </varlistentry> 408994689c1Smrg <varlistentry> 409994689c1Smrg <term> 410994689c1Smrg extend-adjust() 411994689c1Smrg </term> 412994689c1Smrg <listitem> 413994689c1Smrg <para> 414994689c1SmrgThis action allows a selection started with an <emphasis remap='I'>extend-start</emphasis> action 415994689c1Smrgto be modified. 416994689c1Smrg </para> 417994689c1Smrg </listitem> 418994689c1Smrg </varlistentry> 419994689c1Smrg <varlistentry> 420994689c1Smrg <term> 421994689c1Smrg extend-end(<emphasis remap='I'>name</emphasis>[,<emphasis remap='I'>name</emphasis>,...]) 422994689c1Smrg </term> 423994689c1Smrg <listitem> 424994689c1Smrg <para> 425994689c1SmrgThis action ends a text selection that began with the <emphasis remap='I'>extend-start</emphasis> 426994689c1Smrgaction, and asserts ownership of the selection or selections specified. 427994689c1SmrgA <emphasis remap='I'>name</emphasis> can be a selection (e.g. <function>PRIMARY</function>) or a cut buffer 428994689c1Smrg(e.g <function>CUT_BUFFER0</function>). Note that case is important. If no names are 429994689c1Smrggiven, <function>PRIMARY</function> is asserted. 430994689c1Smrg </para> 431994689c1Smrg </listitem> 432994689c1Smrg </varlistentry> 433994689c1Smrg <varlistentry> 434994689c1Smrg <term> 435994689c1Smrg insert-selection(<emphasis remap='I'>name</emphasis>[,<emphasis remap='I'>name</emphasis>,...]) 436994689c1Smrg </term> 437994689c1Smrg <listitem> 438994689c1Smrg <para> 439994689c1SmrgThis action retrieves the value of the first (left-most) named selection 440994689c1Smrgthat exists or the cut buffer that is not empty and inserts it into the 441994689c1SmrgText widget at the current insert point location. A <emphasis remap='I'>name</emphasis> can be a 442994689c1Smrgselection (e.g. <function>PRIMARY</function>) or a cut buffer (e.g <function>CUT_BUFFER0</function>). 443994689c1SmrgNote that case is important. 444994689c1Smrg </para> 445994689c1Smrg </listitem> 446994689c1Smrg </varlistentry> 447994689c1Smrg</variablelist> 448994689c1Smrg</para> 449994689c1Smrg</sect3> 450994689c1Smrg<sect3 id="The_New_Line_Actions"> 451994689c1Smrg<title>The New Line Actions</title> 452994689c1Smrg<para> 453994689c1Smrg<!-- .LP --> 454994689c1Smrg<!-- .sp --> 455994689c1Smrg<variablelist> 456994689c1Smrg <varlistentry> 457994689c1Smrg <term> 458994689c1Smrg newline-and-indent() 459994689c1Smrg </term> 460994689c1Smrg <listitem> 461994689c1Smrg <para> 462994689c1SmrgThis action inserts a newline into the text and adds spaces to 463994689c1Smrgthat line to indent it to match the previous line. 464994689c1Smrg </para> 465994689c1Smrg </listitem> 466994689c1Smrg </varlistentry> 467994689c1Smrg <varlistentry> 468994689c1Smrg <term> 469994689c1Smrg newline-and-backup() 470994689c1Smrg </term> 471994689c1Smrg <listitem> 472994689c1Smrg <para> 473994689c1SmrgThis action inserts a newline into the text <emphasis remap='I'>after</emphasis> the insert point. 474994689c1Smrg </para> 475994689c1Smrg </listitem> 476994689c1Smrg </varlistentry> 477994689c1Smrg <varlistentry> 478994689c1Smrg <term> 479994689c1Smrg newline() 480994689c1Smrg </term> 481994689c1Smrg <listitem> 482994689c1Smrg <para> 483994689c1SmrgThis action inserts a newline into the text <emphasis remap='I'>before</emphasis> the insert point. 484994689c1Smrg </para> 485994689c1Smrg </listitem> 486994689c1Smrg </varlistentry> 487994689c1Smrg</variablelist> 488994689c1Smrg</para> 489994689c1Smrg</sect3> 490994689c1Smrg<sect3 id="Kill_and_Actions"> 491994689c1Smrg<title>Kill and Actions</title> 492994689c1Smrg<para> 493994689c1Smrg<!-- .LP --> 494994689c1Smrg<!-- .sp --> 495994689c1Smrg<variablelist> 496994689c1Smrg <varlistentry> 497994689c1Smrg <term> 498994689c1Smrg kill-word() 499994689c1Smrg </term> 500994689c1Smrg <listitem> 501994689c1Smrg <para> 502994689c1Smrg<!-- .br --> 503994689c1Smrg<!-- .ns --> 504994689c1Smrg </para> 505994689c1Smrg </listitem> 506994689c1Smrg </varlistentry> 507994689c1Smrg <varlistentry> 508994689c1Smrg <term> 509994689c1Smrg backward-kill-word() 510994689c1Smrg </term> 511994689c1Smrg <listitem> 512994689c1Smrg <para> 513994689c1SmrgThese actions act exactly like the <emphasis remap='I'>delete-next-word</emphasis> and 514994689c1Smrg<emphasis remap='I'>delete-previous-word</emphasis> actions, but they stuff the word that was 515994689c1Smrgkilled into the kill buffer (<function>CUT_BUFFER_1</function>). 516994689c1Smrg </para> 517994689c1Smrg </listitem> 518994689c1Smrg </varlistentry> 519994689c1Smrg <varlistentry> 520994689c1Smrg <term> 521994689c1Smrg kill-selection() 522994689c1Smrg </term> 523994689c1Smrg <listitem> 524994689c1Smrg <para> 525994689c1SmrgThis action deletes the current selection and stuffs the deleted text into 526994689c1Smrgthe kill buffer (<function>CUT_BUFFER_1</function>). 527994689c1Smrg </para> 528994689c1Smrg </listitem> 529994689c1Smrg </varlistentry> 530994689c1Smrg <varlistentry> 531994689c1Smrg <term> 532994689c1Smrg kill-to-end-of-line() 533994689c1Smrg </term> 534994689c1Smrg <listitem> 535994689c1Smrg <para> 536994689c1SmrgThis action deletes the entire line to the right of the insert point position, 537994689c1Smrgand stuffs the deleted text into the kill buffer (<function>CUT_BUFFER_1</function>). 538994689c1Smrg </para> 539994689c1Smrg </listitem> 540994689c1Smrg </varlistentry> 541994689c1Smrg <varlistentry> 542994689c1Smrg <term> 543994689c1Smrg kill-paragraph() 544994689c1Smrg </term> 545994689c1Smrg <listitem> 546994689c1Smrg <para> 547994689c1SmrgThis action deletes the current paragraph, if between paragraphs it deletes 548994689c1Smrgthe paragraph above the insert point, and stuffs the deleted text into 549994689c1Smrgthe kill buffer (<function>CUT_BUFFER_1</function>). 550994689c1Smrg </para> 551994689c1Smrg </listitem> 552994689c1Smrg </varlistentry> 553994689c1Smrg <varlistentry> 554994689c1Smrg <term> 555994689c1Smrg kill-to-end-of-paragraph() 556994689c1Smrg </term> 557994689c1Smrg <listitem> 558994689c1Smrg <para> 559994689c1SmrgThis action deletes everything between the current insert point location and 560994689c1Smrgthe next paragraph boundary, and stuffs the deleted text into the kill 561994689c1Smrgbuffer (<function>CUT_BUFFER_1</function>). 562994689c1Smrg </para> 563994689c1Smrg </listitem> 564994689c1Smrg </varlistentry> 565994689c1Smrg</variablelist> 566994689c1Smrg</para> 567994689c1Smrg</sect3> 568994689c1Smrg<sect3 id="Miscellaneous_Actions"> 569994689c1Smrg<title>Miscellaneous Actions</title> 570994689c1Smrg<para> 571994689c1Smrg<!-- .LP --> 572994689c1Smrg<!-- .sp 1 --> 573994689c1Smrg<variablelist> 574994689c1Smrg <varlistentry> 575994689c1Smrg <term> 576994689c1Smrg redraw-display() 577994689c1Smrg </term> 578994689c1Smrg <listitem> 579994689c1Smrg <para> 580994689c1SmrgThis action recomputes the location of all the text lines on the 581994689c1Smrgdisplay, scrolls the text to vertically center the line containing the insert point 582994689c1Smrgon the screen, clears the entire screen, and redisplays it. 583994689c1Smrg </para> 584994689c1Smrg </listitem> 585994689c1Smrg </varlistentry> 586994689c1Smrg <varlistentry> 587994689c1Smrg <term> 588994689c1Smrg insert-file([<emphasis remap='I'>filename</emphasis>]) 589994689c1Smrg </term> 590994689c1Smrg <listitem> 591994689c1Smrg <para> 592994689c1SmrgThis action activates the insert file popup. The <emphasis remap='I'>filename</emphasis> 593994689c1Smrgoption specifies the default filename to put in the filename buffer of 594994689c1Smrgthe popup. If no <emphasis remap='I'>filename</emphasis> is specified the buffer is empty 595994689c1Smrgat startup. 596994689c1Smrg </para> 597994689c1Smrg </listitem> 598994689c1Smrg </varlistentry> 599994689c1Smrg <varlistentry> 600994689c1Smrg <term> 601994689c1Smrg insert-char() 602994689c1Smrg </term> 603994689c1Smrg <listitem> 604994689c1Smrg <para> 605994689c1SmrgThis action may only be attached to a key event. When the 606994689c1Smrg<function>international</function> resource is <function>false</function>, this action 607994689c1Smrgcalls XLookupString to translate the event into a (rebindable) Latin-1 608994689c1Smrgcharacter (sequence) and inserts it into the text at the 609994689c1Smrginsert point. When the <function>international</function> resource is <function>true</function>, 610994689c1Smrgcharacters are passed to the input method via XwcLookupString, and any 611994689c1Smrgcommitted string returned is inserted into the text at the insert point. 612994689c1Smrg </para> 613994689c1Smrg </listitem> 614994689c1Smrg </varlistentry> 615994689c1Smrg <varlistentry> 616994689c1Smrg <term> 617994689c1Smrg insert-string(<emphasis remap='I'>string</emphasis>[,<emphasis remap='I'>string</emphasis>,...]) 618994689c1Smrg </term> 619994689c1Smrg <listitem> 620994689c1Smrg <para> 621994689c1SmrgThis action inserts each <emphasis remap='I'>string</emphasis> into the text 622994689c1Smrgat the insert point location. Any <emphasis remap='I'>string</emphasis> 623994689c1Smrgbeginning with the characters "0x" followed by an even 624994689c1Smrgnumber of hexadecimal digits is 625994689c1Smrginterpreted as a hexadecimal constant and the 626994689c1Smrgcorresponding string is inserted instead. This 627994689c1Smrghexadecimal string may represent up to 50 8-bit characters. 628994689c1Smrg When the<function>international</function> resource is 629994689c1Smrg<function>true</function>, a hexadecimal string is intrepeted as 630994689c1Smrgbeing in a multi-byte encoding, and a hexadecimal 631994689c1Smrgor regular string will result in an error message 632994689c1Smrgif it is not legal in the current locale. 633994689c1Smrg </para> 634994689c1Smrg </listitem> 635994689c1Smrg </varlistentry> 636994689c1Smrg <varlistentry> 637994689c1Smrg <term> 638994689c1Smrg display-caret(<emphasis remap='I'>state</emphasis>,<emphasis remap='I'>when</emphasis>) 639994689c1Smrg </term> 640994689c1Smrg <listitem> 641994689c1Smrg <para> 642994689c1SmrgThis action allows the insert point to be turned on and off. 643994689c1SmrgThe <emphasis remap='I'>state</emphasis> argument specifies the desired state of the insert point. 644994689c1SmrgThis value may be any of the string 645994689c1Smrgvalues accepted for Boolean resources (e.g. <function>on</function>, <function>True</function>, 646994689c1Smrg<function>off</function>, <function>False</function>, etc.). If no arguments are specified, the 647994689c1Smrgdefault value is <function>True</function>. 648994689c1SmrgThe <emphasis remap='I'>when</emphasis> argument specifies, for <function>EnterNotify</function> or <function>LeaveNotify</function> 649994689c1Smrgevents whether or not the focus field in the event is to be examined. 650994689c1SmrgIf the second argument is not specified, or specified as something other 651994689c1Smrgthan <function>always</function> then if the action is bound to an <function>EnterNotify</function> 652994689c1Smrgor <function>LeaveNotify</function> event, the action will be taken only if the focus 653994689c1Smrgfield is <function>True</function>. An augmented binding that might be useful is: 654994689c1Smrg </para> 655994689c1Smrg </listitem> 656994689c1Smrg </varlistentry> 657994689c1Smrg</variablelist> 658994689c1Smrg</para> 659994689c1Smrg<para> 660994689c1Smrg<!-- .LP --> 661994689c1Smrg<literallayout class="monospaced"> 662994689c1Smrg<!-- .TA 2.0i 2.5i 4.0i --> 663994689c1Smrg<!-- .ta 2.0i 2.5i 4.0i --> 664994689c1Smrg *Text.Translations: #override \\ 665994689c1Smrg <FocusIn>: display-caret(on) \\n\\ 666994689c1Smrg <FocusOut>: display-caret(off) 667994689c1Smrg</literallayout> 668994689c1Smrg<variablelist> 669994689c1Smrg <varlistentry> 670994689c1Smrg <term> 671994689c1Smrg focus-in() 672994689c1Smrg </term> 673994689c1Smrg <listitem> 674994689c1Smrg <para> 675994689c1Smrg<!-- .br --> 676994689c1Smrg<!-- .ns --> 677994689c1Smrg </para> 678994689c1Smrg </listitem> 679994689c1Smrg </varlistentry> 680994689c1Smrg <varlistentry> 681994689c1Smrg <term> 682994689c1Smrg focus-out() 683994689c1Smrg </term> 684994689c1Smrg <listitem> 685994689c1Smrg <para> 686994689c1SmrgThese actions do not currently do anything. 687994689c1Smrg </para> 688994689c1Smrg </listitem> 689994689c1Smrg </varlistentry> 690994689c1Smrg <varlistentry> 691994689c1Smrg <term> 692994689c1Smrg search(<emphasis remap='I'>direction</emphasis>,[<emphasis remap='I'>string</emphasis>]) 693994689c1Smrg </term> 694994689c1Smrg <listitem> 695994689c1Smrg <para> 696994689c1SmrgThis action activates the search popup. The <emphasis remap='I'>direction</emphasis> must be 697994689c1Smrgspecified as either <function>forward</function> or <function>backward</function>. The string is 698994689c1Smrgoptional and is used as an initial value for the <emphasis remap='I'>Search for</emphasis>: string. 699994689c1SmrgFor further explanation of the search widget see the section on 700994689c1Smrg<function>Text Searches</function>. 701994689c1Smrg </para> 702994689c1Smrg </listitem> 703994689c1Smrg </varlistentry> 704994689c1Smrg <varlistentry> 705994689c1Smrg <term> 706994689c1Smrg multiply(<emphasis remap='I'>value</emphasis>) 707994689c1Smrg </term> 708994689c1Smrg <listitem> 709994689c1Smrg <para> 710994689c1SmrgThe multiply action allows the user to multiply the effects of many of 711994689c1Smrgthe text actions. Thus the following action sequence 712994689c1Smrg<emphasis remap='I'>multiply(10) delete-next-word()</emphasis> will delete 10 words. It does not 713994689c1Smrgmatter whether these actions take place in one event or many events. 7145ec34c4cSmrgUsing the default translations the key sequence 7155ec34c4cSmrg<emphasis remap='I'>Control-u, Control-d</emphasis> will delete 4 characters. 7165ec34c4cSmrgMultiply actions can be chained, thus 7175ec34c4cSmrg<emphasis remap='I'>multiply(5) multiply(5)</emphasis> is the same as 7185ec34c4cSmrg<emphasis remap='I'>multiply(25)</emphasis>. If the string 719994689c1Smrg<function>reset</function> is passed to the multiply action the effects of all previous 720994689c1Smrgmultiplies are removed and a beep is sent to the display. 721994689c1Smrg </para> 722994689c1Smrg </listitem> 723994689c1Smrg </varlistentry> 724994689c1Smrg <varlistentry> 725994689c1Smrg <term> 726994689c1Smrg form-paragraph() 727994689c1Smrg </term> 728994689c1Smrg <listitem> 729994689c1Smrg <para> 730994689c1SmrgThis action removes all the Carriage Returns from the current 731994689c1Smrgparagraph and reinserts them so that each line is as long as possible, while 732994689c1Smrgstill fitting on the current screen. Lines are broken at word boundaries if 733994689c1Smrgat all possible. This action currently works only on Text widgets 734994689c1Smrgthat use ASCII text. 735994689c1Smrg </para> 736994689c1Smrg </listitem> 737994689c1Smrg </varlistentry> 738994689c1Smrg <varlistentry> 739994689c1Smrg <term> 740994689c1Smrg transpose-characters() 741994689c1Smrg </term> 742994689c1Smrg <listitem> 743994689c1Smrg <para> 744994689c1SmrgThis action will swap the position of the character to the left of the 745994689c1Smrginsert point with the character to the right of the insert point. The insert point will then 746994689c1Smrgbe advanced one character. 747994689c1Smrg </para> 748994689c1Smrg </listitem> 749994689c1Smrg </varlistentry> 750994689c1Smrg <varlistentry> 751994689c1Smrg <term> 752994689c1Smrg no-op([<emphasis remap='I'>action</emphasis>]) 753994689c1Smrg </term> 754994689c1Smrg <listitem> 755994689c1Smrg <para> 756994689c1SmrgThe no-op action makes no change to the text widget, and is mainly used 757994689c1Smrgto override translations. This action takes one optional argument. If 758994689c1Smrgthis argument is <emphasis remap='I'>RingBell</emphasis> then a beep is sent to the display. 759994689c1Smrg </para> 760994689c1Smrg </listitem> 761994689c1Smrg </varlistentry> 762994689c1Smrg <varlistentry> 763994689c1Smrg <term> 764994689c1Smrg XawWMProtocols([<emphasis remap='I'>wm_protocol_name</emphasis>]) 765994689c1Smrg </term> 766994689c1Smrg <listitem> 767994689c1Smrg <para> 7685ec34c4cSmrg<indexterm><primary>XawWMProtocols</primary></indexterm> 769994689c1Smrg<!-- .sp --> 770994689c1SmrgThis action is written specifically for the file insertion and the search 771994689c1Smrgand replace 772994689c1Smrgdialog boxes. This action is attached to those shells by the Text widget, 773994689c1Smrgin order to handle ClientMessage events with the WM_PROTOCOLS atom in the 774994689c1Smrgdetail field. This action supports WM_DELETE_WINDOW on the Text widget 775994689c1Smrgpopups, and may support other window manager protocols if necessary in 776994689c1Smrgthe future. The popup will be dismissed if the window manager sends 777994689c1Smrga WM_DELETE_WINDOW request and there are no parameters in the action 778994689c1Smrgcall, which is the default. The popup will also be dismissed if the 7795ec34c4cSmrgparameters include the string <quote>wm_delete_window,</quote> and the event is a 780994689c1SmrgClientMessage event requesting dismissal or is not a ClientMessage event. 781994689c1SmrgThis action is not sensitive to the case of the strings passed as parameters. 782994689c1Smrg </para> 783994689c1Smrg </listitem> 784994689c1Smrg </varlistentry> 785994689c1Smrg <varlistentry> 786994689c1Smrg <term> 787994689c1Smrg reconnect-im() 788994689c1Smrg </term> 789994689c1Smrg <listitem> 790994689c1Smrg <para> 7915ec34c4cSmrg<indexterm><primary>Input Method</primary></indexterm> 792994689c1SmrgWhen the <function>international</function> resource is <function>true</function>, 793994689c1Smrginput is usually passed to an input method, a separate 794994689c1Smrgprocess, for composing. Sometimes the connection to 795994689c1Smrgthis process gets severed; this action will attempt to 796994689c1Smrgreconnect it. Causes for severage include network 797994689c1Smrgtrouble, and the user explicitly killing one input 798994689c1Smrgmethod and starting a new one. This action may also 799994689c1Smrgestablish first connection when the application is 800994689c1Smrgstarted before the input method. 801994689c1Smrg </para> 802994689c1Smrg </listitem> 803994689c1Smrg </varlistentry> 804994689c1Smrg</variablelist> 805994689c1Smrg</para> 806994689c1Smrg</sect3> 807994689c1Smrg<sect3 id="Text_Selections_for_Application_Programmers"> 808994689c1Smrg<title>Text Selections for Application Programmers</title> 8095ec34c4cSmrg<indexterm><primary>Text widget</primary><secondary>Text Selections for Application Programmers</secondary></indexterm> 810994689c1Smrg<para> 811994689c1Smrg<!-- .LP --> 812994689c1SmrgThe default behavior of the text selection array is described in the 813994689c1Smrgsection called <function>Text Selections for Users</function>. To modify the selections 814994689c1Smrga programmer must construct a <function>XawTextSelectType</function> array (called the 815994689c1Smrgselection array), containing the selections desired, and pass this as 816994689c1Smrgthe new value for the <function>selectionTypes</function> resource. The selection 817421c997bSmrgarray may also be modified using the <xref linkend='XawTextSetSelectionArray' xrefstyle='select: title'/> 8185ec34c4cSmrg<indexterm><primary>XawTextSetSelectionArray</primary></indexterm> 819994689c1Smrgfunction. All selection arrays must end with the value 820994689c1Smrg<function>XawselectNull</function>. The <function>selectionTypes</function> resource has no converter 821994689c1Smrgregistered and cannot be modified through the resource manager. 822994689c1Smrg</para> 823994689c1Smrg<para> 824994689c1Smrg<!-- .LP --> 825994689c1SmrgThe array contains a list of entries that will be called when the user 826994689c1Smrgattempts to select text in rapid succession with the <emphasis remap='I'>select-start</emphasis> 827994689c1Smrgaction (usually by clicking a pointer button). The first entry in the 828994689c1Smrgselection array will be used when the <emphasis remap='I'>select-start</emphasis> action is 829994689c1Smrginitially called. The next entry will be used when <emphasis remap='I'>select-start</emphasis> 830994689c1Smrgis called again, and so on. If a timeout value (1/10 of a second) is 831994689c1Smrgexceeded, the the next <emphasis remap='I'>select-start</emphasis> action will begin at the top 832994689c1Smrgof the selection array. When <function>XawselectNull</function> is reached the array 833994689c1Smrgis recycled beginning with the first element. 834994689c1Smrg 835994689c1Smrg<informaltable> 836994689c1Smrg <tgroup cols='2' align='center'> 837994689c1Smrg <colspec colname='c1'/> 838994689c1Smrg <colspec colname='c2'/> 839994689c1Smrg <tbody> 840994689c1Smrg <row> 841994689c1Smrg <entry><function>XawselectAll</function></entry> 842994689c1Smrg <entry>Selects the contents of the entire buffer.</entry> 843994689c1Smrg </row> 844994689c1Smrg <row> 845994689c1Smrg <entry><function>XawselectChar</function></entry> 846994689c1Smrg <entry>Selects text characters as the pointer moves over them.</entry> 847994689c1Smrg </row> 848994689c1Smrg <row> 849994689c1Smrg <entry><function>XawselectLine</function></entry> 850994689c1Smrg <entry>Selects the entire line.</entry> 851994689c1Smrg </row> 852994689c1Smrg <row> 853994689c1Smrg <entry><function>XawselectNull</function></entry> 854994689c1Smrg <entry>Indicates the end of the selection array.</entry> 855994689c1Smrg </row> 856994689c1Smrg <row> 857994689c1Smrg <entry><function>XawselectParagraph</function></entry> 858994689c1Smrg <entry>Selects the entire paragraph.</entry> 859994689c1Smrg </row> 860994689c1Smrg <row> 861994689c1Smrg <entry><function>XawselectPosition</function></entry> 862994689c1Smrg <entry>Selects the current pointer position.</entry> 863994689c1Smrg </row> 864994689c1Smrg <row> 865994689c1Smrg <entry><function>XawselectWord</function></entry> 866994689c1Smrg <entry>Selects whole words as the pointer moves onto them.</entry> 867994689c1Smrg </row> 868994689c1Smrg </tbody> 869994689c1Smrg </tgroup> 870994689c1Smrg</informaltable> 871994689c1Smrg</para> 872994689c1Smrg<para> 873994689c1Smrg<!-- .LP --> 874994689c1SmrgThe default selectType array is: 875994689c1Smrg</para> 876994689c1Smrg<para> 877994689c1Smrg<!-- .LP --> 878994689c1Smrg<!-- .sp --> 879994689c1Smrg<literallayout class="monospaced"> 880994689c1Smrg{XawselectPosition, XawselectWord, XawselectLine, XawselectParagraph, XawselectAll, XawselectNull} 881994689c1Smrg</literallayout> 882994689c1Smrg<!-- .sp --> 883994689c1Smrg</para> 884994689c1Smrg<para> 885994689c1Smrg<!-- .LP --> 886994689c1SmrgThe selection array is not copied by the text widgets. The 887994689c1Smrgapplication must allocate space for the array and cannot deallocate or 888994689c1Smrgchange it until the text widget is destroyed or until a new selection 889994689c1Smrgarray is set. 890994689c1Smrg</para> 891994689c1Smrg</sect3> 892994689c1Smrg</sect2> 893994689c1Smrg<sect2 id="Default_Translation_Bindings"> 894994689c1Smrg<title>Default Translation Bindings</title> 895994689c1Smrg<para> 896994689c1Smrg<!-- .LP --> 897994689c1Smrg<!-- .XS --> 898994689c1Smrg<!-- Default Translation Bindings --> 899994689c1Smrg<!-- .XE --> 9005ec34c4cSmrg<indexterm><primary>Text widget</primary><secondary>default translations</secondary></indexterm> 901994689c1SmrgThe following translations are defaults built into every Text widget. 902994689c1SmrgThey can be overridden, or replaced by specifying a new value for the 903994689c1SmrgText widget's <function>translations</function> resource. 904994689c1Smrg</para> 905994689c1Smrg<para> 906994689c1Smrg<!-- .LP --> 907994689c1Smrg<!-- .sp --> 908994689c1Smrg<literallayout class="monospaced"> 909994689c1Smrg<!-- .TA .5i 2.5i --> 910994689c1Smrg<!-- .ta .5i 2.5i --> 911994689c1Smrg Ctrl<Key>A: beginning-of-line() \\n\\ 912994689c1Smrg Ctrl<Key>B: backward-character() \\n\\ 913994689c1Smrg Ctrl<Key>D: delete-next-character() \\n\\ 914994689c1Smrg Ctrl<Key>E: end-of-line() \\n\\ 915994689c1Smrg Ctrl<Key>F: forward-character() \\n\\ 916994689c1Smrg Ctrl<Key>G: multiply(Reset) \\n\\ 917994689c1Smrg Ctrl<Key>H: delete-previous-character() \\n\\ 918994689c1Smrg Ctrl<Key>J: newline-and-indent() \\n\\ 919994689c1Smrg Ctrl<Key>K: kill-to-end-of-line() \\n\\ 920994689c1Smrg Ctrl<Key>L: redraw-display() \\n\\ 921994689c1Smrg Ctrl<Key>M: newline() \\n\\ 922994689c1Smrg Ctrl<Key>N: next-line() \\n\\ 923994689c1Smrg Ctrl<Key>O: newline-and-backup() \\n\\ 924994689c1Smrg Ctrl<Key>P: previous-line() \\n\\ 925994689c1Smrg Ctrl<Key>R: search(backward) \\n\\ 926994689c1Smrg Ctrl<Key>S: search(forward) \\n\\ 927994689c1Smrg Ctrl<Key>T: transpose-characters() \\n\\ 928994689c1Smrg Ctrl<Key>U: multiply(4) \\n\\ 929994689c1Smrg Ctrl<Key>V: next-page() \\n\\ 930994689c1Smrg Ctrl<Key>W: kill-selection() \\n\\ 931994689c1Smrg Ctrl<Key>Y: insert-selection(CUT_BUFFER1) \\n\\ 932994689c1Smrg Ctrl<Key>Z: scroll-one-line-up() \\n\\ 933994689c1Smrg Ctrl<Key>\\: reconnect-im() \\n\\ 934994689c1Smrg Meta<Key>B: backward-word() \\n\\ 935994689c1Smrg Meta<Key>F: forward-word() \\n\\ 936994689c1Smrg Meta<Key>I: insert-file() \\n\\ 937994689c1Smrg Meta<Key>K: kill-to-end-of-paragraph() \\n\\ 938994689c1Smrg Meta<Key>Q: form-paragraph() \\n\\ 939994689c1Smrg Meta<Key>V: previous-page() \\n\\ 940994689c1Smrg Meta<Key>Y: insert-selection(PRIMARY, CUT_BUFFER0) \\n\\ 941994689c1Smrg Meta<Key>Z: scroll-one-line-down() \\n\\ 942994689c1Smrg :Meta<Key>d: delete-next-word() \\n\\ 943994689c1Smrg :Meta<Key>D: kill-word() \\n\\ 944994689c1Smrg :Meta<Key>h: delete-previous-word() \\n\\ 945994689c1Smrg :Meta<Key>H: backward-kill-word() \\n\\ 946994689c1Smrg :Meta<Key>\\<: beginning-of-file() \\n\\ 947994689c1Smrg :Meta<Key>\\>: end-of-file() \\n\\ 948994689c1Smrg :Meta<Key>]: forward-paragraph() \\n\\ 949994689c1Smrg :Meta<Key>[: backward-paragraph() \\n\\ 950994689c1Smrg ~Shift Meta<Key>Delete: delete-previous-word() \\n\\ 9515ec34c4cSmrg Shift Meta<Key>Delete: backward-kill-word() \\n\\ 952994689c1Smrg ~Shift Meta<Key>Backspace: delete-previous-word() \\n\\ 9535ec34c4cSmrg Shift Meta<Key>Backspace: backward-kill-word() \\n\\ 954994689c1Smrg <Key>Right: forward-character() \\n\\ 955994689c1Smrg <Key>Left: backward-character() \\n\\ 956994689c1Smrg <Key>Down: next-line() \\n\\ 957994689c1Smrg <Key>Up: previous-line() \\n\\ 958994689c1Smrg <Key>Delete: delete-previous-character() \\n\\ 959994689c1Smrg <Key>BackSpace: delete-previous-character() \\n\\ 960994689c1Smrg <Key>Linefeed: newline-and-indent() \\n\\ 961994689c1Smrg <Key>Return: newline() \\n\\ 962994689c1Smrg <Key>: insert-char() \\n\\ 963994689c1Smrg <Key>Kanji: reconnect-im() \\n\\ 964994689c1Smrg <FocusIn>: focus-in() \\n\\ 965994689c1Smrg <FocusOut>: focus-out() \\n\\ 966994689c1Smrg <Btn1Down>: select-start() \\n\\ 967994689c1Smrg <Btn1Motion>: extend-adjust() \\n\\ 968994689c1Smrg <Btn1Up>: extend-end(PRIMARY, CUT_BUFFER0) \\n\\ 969994689c1Smrg <Btn2Down>: insert-selection(PRIMARY, CUT_BUFFER0) \\n\\ 970994689c1Smrg <Btn3Down>: extend-start() \\n\\ 971994689c1Smrg <Btn3Motion>: extend-adjust() \\n\\ 972994689c1Smrg <Btn3Up>: extend-end(PRIMARY, CUT_BUFFER0) \\n 973994689c1Smrg</literallayout> 974994689c1Smrg 975994689c1Smrg 976994689c1Smrg</para> 977994689c1Smrg</sect2> 978