naksh 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (137) hide show
  1. data/AUTHORS +1 -0
  2. data/COPYING +674 -0
  3. data/COPYING-DOCS +15 -0
  4. data/README.md +45 -0
  5. data/Rakefile +129 -0
  6. data/TODO +19 -0
  7. data/bin/naksh +2 -0
  8. data/data/default.mo +0 -0
  9. data/data/default.po +16 -0
  10. data/data/default2.mo +0 -0
  11. data/data/default2.po +27 -0
  12. data/data/starter.pot +29 -0
  13. data/docs/bash_flow.dia +0 -0
  14. data/docs/gtk_manual.txt +13 -0
  15. data/docs/master_plan.dia +0 -0
  16. data/docs/master_plan.png +0 -0
  17. data/docs/master_plan.svg +74 -0
  18. data/docs/master_plan.svgz +0 -0
  19. data/docs/userguide/en/about.xml +42 -0
  20. data/docs/userguide/en/gnu-fdl-1.2.xml +543 -0
  21. data/docs/userguide/en/naksh.xml +881 -0
  22. data/docs/userguide/en/naksh_start_window.png +0 -0
  23. data/docs/userguide/en/old_naksh.xml +180 -0
  24. data/docs/userguide/en/userguide-en.omf +37 -0
  25. data/lib/naksh.rb +165 -0
  26. data/lib/naksh/buffer.rb +153 -0
  27. data/lib/naksh/command_handling.rb +117 -0
  28. data/lib/naksh/commands/bash/README +2 -0
  29. data/lib/naksh/commands/bash/echo.nkc.rb +50 -0
  30. data/lib/naksh/commands/bsd.rb +25 -0
  31. data/lib/naksh/commands/dos.rb +25 -0
  32. data/lib/naksh/commands/fuse.rb +25 -0
  33. data/lib/naksh/commands/gnu.rb +30 -0
  34. data/lib/naksh/commands/gnu/README +2 -0
  35. data/lib/naksh/commands/gnu/cat.nkc.rb +50 -0
  36. data/lib/naksh/commands/gnu/cd.nkc.rb +11 -0
  37. data/lib/naksh/commands/gnu/echo.documentation.json +57 -0
  38. data/lib/naksh/commands/gnu/echo.documentation.rb +60 -0
  39. data/lib/naksh/commands/gnu/echo.nkc.rb +52 -0
  40. data/lib/naksh/commands/gnu/ls.nkc.rb +11 -0
  41. data/lib/naksh/commands/gnu/mv.nkc.rb +15 -0
  42. data/lib/naksh/commands/gnu/pwd.nkc.rb +11 -0
  43. data/lib/naksh/commands/naksh/addpath.nkc.rb +15 -0
  44. data/lib/naksh/commands/naksh/broken.nkc.rb +10 -0
  45. data/lib/naksh/commands/naksh/empty.nkc.rb +4 -0
  46. data/lib/naksh/commands/naksh/exit.nkc.rb +10 -0
  47. data/lib/naksh/commands/naksh/help.nkc.rb +21 -0
  48. data/lib/naksh/commands/naksh/man.nkc.rb +8 -0
  49. data/lib/naksh/commands/ruby.rb +31 -0
  50. data/lib/naksh/commands/unix.rb +131 -0
  51. data/lib/naksh/configuration/gconf.rb +51 -0
  52. data/lib/naksh/configuration/hash.rb +38 -0
  53. data/lib/naksh/defaults.rb +40 -0
  54. data/lib/naksh/history.rb +85 -0
  55. data/lib/naksh/interfaces.rb +59 -0
  56. data/lib/naksh/interfaces/fox.rb +49 -0
  57. data/lib/naksh/interfaces/gtk.rb +103 -0
  58. data/lib/naksh/interfaces/gtk/abtwin.rb +53 -0
  59. data/lib/naksh/interfaces/gtk/gnomeapp.rb +31 -0
  60. data/lib/naksh/interfaces/gtk/helpwin.rb +70 -0
  61. data/lib/naksh/interfaces/gtk/io.rb +94 -0
  62. data/lib/naksh/interfaces/gtk/mainwin.rb +56 -0
  63. data/lib/naksh/interfaces/gtk/mainwin/console.rb +121 -0
  64. data/lib/naksh/interfaces/gtk/mainwin/main_menu.rb +143 -0
  65. data/lib/naksh/interfaces/gtk/optwin.rb +78 -0
  66. data/lib/naksh/interfaces/tab.rb +58 -0
  67. data/lib/naksh/interfaces/wxw.rb +75 -0
  68. data/lib/naksh/interfaces/wxw/abtwin.rb +38 -0
  69. data/lib/naksh/interfaces/wxw/helpwin.rb +40 -0
  70. data/lib/naksh/interfaces/wxw/io.rb +61 -0
  71. data/lib/naksh/interfaces/wxw/mainwin.rb +42 -0
  72. data/lib/naksh/interfaces/wxw/mainwin/main_menu.rb +126 -0
  73. data/lib/naksh/interfaces/wxw/mainwin/sessions.rb +49 -0
  74. data/lib/naksh/interfaces/wxw/optwin.rb +37 -0
  75. data/lib/naksh/path_entry.rb +101 -0
  76. data/lib/naksh/regexp.rb +31 -0
  77. data/lib/naksh/session.rb +72 -0
  78. data/lib/naksh/stdlibext.rb +48 -0
  79. data/lib/naksh/syntax.rb +57 -0
  80. data/lib/naksh/syntax/bash.rb +219 -0
  81. data/lib/naksh/syntax/bash/antlr/bottomup.g +24 -0
  82. data/lib/naksh/syntax/bash/antlr/topdown.g +52 -0
  83. data/lib/naksh/syntax/bash/dhaka/evaluator.rb +353 -0
  84. data/lib/naksh/syntax/bash/dhaka/grammar.rb +71 -0
  85. data/lib/naksh/syntax/bash/dhaka/lexer.rb +52 -0
  86. data/lib/naksh/syntax/bash/treetop/bash.treetop +17 -0
  87. data/lib/old/abbr_call.rb +39 -0
  88. data/lib/old/autocomplete.rb +29 -0
  89. data/lib/old/command.rb +106 -0
  90. data/lib/old/command_holder.rb +75 -0
  91. data/lib/old/commands.rb +24 -0
  92. data/lib/old/old_executor.rb +95 -0
  93. data/lib/old/options.rb +31 -0
  94. data/lib/old/rush.rb +113 -0
  95. data/lib/old/sortissimo.rb +205 -0
  96. data/lib/old/systems.rb +25 -0
  97. data/lib/old/systems/ruby.rb +26 -0
  98. data/lib/old/un.rb +240 -0
  99. data/lib/rust/Rakefile +6 -0
  100. data/lib/rust/commands/builtins.rb +46 -0
  101. data/lib/rust/commands/builtins/cd.rb +17 -0
  102. data/lib/rust/commands/builtins/exit.rb +13 -0
  103. data/lib/rust/commands/builtins/help.rb +14 -0
  104. data/lib/rust/commands/builtins/parser.rb +13 -0
  105. data/lib/rust/commands/builtins/pwd.rb +13 -0
  106. data/lib/rust/commands/builtins/type.rb +13 -0
  107. data/lib/rust/commands/commands/ls.rb +13 -0
  108. data/lib/rust/commands/commands/read.rb +13 -0
  109. data/lib/rust/commands/commands/rm.rb +14 -0
  110. data/lib/rust/commands/commands/test.rb +20 -0
  111. data/lib/rust/helpers/array.rb +10 -0
  112. data/lib/rust/helpers/command_center.rb +78 -0
  113. data/lib/rust/helpers/constants.rb +58 -0
  114. data/lib/rust/helpers/io.rb +132 -0
  115. data/lib/rust/helpers/parser.rb +45 -0
  116. data/lib/rust/helpers/rush_control.rb +40 -0
  117. data/lib/rust/helpers/string.rb +50 -0
  118. data/lib/rust/helpers/trollop.rb +475 -0
  119. data/lib/rust/parsers/bash.rb +220 -0
  120. data/lib/rust/parsers/bash/stdlibext.rb +32 -0
  121. data/lib/rust/parsers/ren.rb +57 -0
  122. data/lib/rust/rust.rb +75 -0
  123. data/lib/rust/syntax/command.rb +23 -0
  124. data/lib/rust/syntax/paths.rb +31 -0
  125. data/lib/rust/syntax/pipes.rb +148 -0
  126. data/naksh.gemspec +55 -0
  127. data/test/naksh/arg_parser.rspec.rb +27 -0
  128. data/test/naksh/commands/bash/echo.rspec.rb +32 -0
  129. data/test/naksh/commands/sortlist +127 -0
  130. data/test/naksh/external_command.rspec.rb +46 -0
  131. data/test/naksh/send_error.rspec.rb +60 -0
  132. data/test/naksh/suggest.rspec.rb +38 -0
  133. data/test/naksh/syntax/bash.rspec.rb +69 -0
  134. data/test/naksh/syntax/bash/execute.rspec.rb +51 -0
  135. data/test/naksh/syntax/rspec.rb +63 -0
  136. data/test/run_rspecs.rb +20 -0
  137. metadata +217 -0
@@ -0,0 +1,881 @@
1
+ <?xml version="1.0"?>
2
+ <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
3
+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
4
+ <!ENTITY legal SYSTEM "legal.xml">
5
+ <!ENTITY appversion "0.2.0">
6
+ <!ENTITY manrevision "0.0.1">
7
+ <!ENTITY date "January 2008">
8
+ <!ENTITY app "<application>Naksh</application>">
9
+
10
+ <!ENTITY db-keen "Mahmut Bulut">
11
+ <!ENTITY db-keen-email "naksh-developers@rubyforge.org">
12
+ ]>
13
+ <!--
14
+ This document is based upon a GNOME documentation template, designed
15
+ by the GNOME Documentation Project Team.
16
+ Template version: 2.0 beta
17
+ Template last modified Apr 11, 2002
18
+ -->
19
+ <!-- =============Document Header ============================= -->
20
+ <article id="index" lang="en">
21
+
22
+ <!-- please do not change the id; for translations, change lang to -->
23
+ <!-- appropriate code -->
24
+ <articleinfo>
25
+ <title>&app; Manual V&manrevision;</title>
26
+
27
+ <copyright>
28
+ <year>2008</year>
29
+ <holder>&db-keen;</holder>
30
+ </copyright>
31
+
32
+ <!-- translators: uncomment this:
33
+
34
+ <copyright>
35
+ <year>2002</year>
36
+ <holder>ME-THE-TRANSLATOR (Latin translation)</holder>
37
+ </copyright>
38
+
39
+ -->
40
+ <!-- An address can be added to the publisher information. If a role is
41
+ not specified, the publisher/author is the same for all versions of the
42
+ document. -->
43
+ <publisher>
44
+ <publishername> GNOME Documentation Project </publishername>
45
+ </publisher>
46
+
47
+ &legal;
48
+ <!-- This file contains link to license for the documentation (GNU FDL), and
49
+ other legal stuff such as "NO WARRANTY" statement. Please do not change
50
+ any of this. -->
51
+
52
+ <authorgroup>
53
+ <author>
54
+ <firstname>Daniel</firstname>
55
+ <surname>Brumbaugh Keeney</surname>
56
+ <affiliation>
57
+ <orgname>GNOME Documentation Project</orgname>
58
+ <address> <email>&email;</email> </address>
59
+ </affiliation>
60
+ </author>
61
+ <!-- This is appropriate place for other contributors: translators,
62
+ maintainers, etc. Commented out by default.
63
+
64
+ <othercredit role="translator">
65
+ <firstname>Latin</firstname>
66
+ <surname>Translator 1</surname>
67
+ <affiliation>
68
+ <orgname>Latin Translation Team</orgname>
69
+ <address> <email>translator@gnome.org</email> </address>
70
+ </affiliation>
71
+ <contrib>Latin translation</contrib>
72
+ </othercredit>
73
+ -->
74
+ </authorgroup>
75
+
76
+
77
+ <!-- The revision numbering system for GNOME manuals is as follows: -->
78
+ <!-- * the revision number consists of two components -->
79
+ <!-- * the first component of the revision number reflects the release version of the GNOME desktop. -->
80
+ <!-- * the second component of the revision number is a decimal unit that is incremented with each revision of the manual. -->
81
+ <!-- For example, if the GNOME desktop release is V2.x, the first version of the manual that -->
82
+ <!-- is written in that desktop timeframe is V2.0, the second version of the manual is V2.1, etc. -->
83
+ <!-- When the desktop release version changes to V3.x, the revision number of the manual changes -->
84
+ <!-- to V3.0, and so on. -->
85
+ <revhistory>
86
+
87
+ <revision>
88
+ <revnumber>&app; Manual V&manrevision;</revnumber>
89
+ <date>&date;</date>
90
+ <revdescription>
91
+ <para role="author">&db-keen;
92
+ <email>&db-keen-email;</email>
93
+ </para>
94
+ <para role="publisher">GNOME Documentation Project</para>
95
+ </revdescription>
96
+ </revision>
97
+ <!--
98
+ <revision>
99
+ <revnumber>Full title of previous manual.</revnumber>
100
+ <date>Release date of previous manual.</date>
101
+ <revdescription>
102
+ <para role="author">Documentation Writer 1
103
+ <email>docwriter1@gnome.org</email>
104
+
105
+ </para>
106
+ <para role="publisher">GNOME Documentation Project</para>
107
+ </revdescription>
108
+ </revision>-->
109
+ </revhistory>
110
+
111
+ <releaseinfo>This manual describes version &appversion; of &app;.
112
+ </releaseinfo>
113
+ <legalnotice>
114
+ <title>Feedback</title>
115
+ <para>To report a bug or make a suggestion regarding the &app; application or
116
+ this manual, follow the directions in the <ulink url="ghelp:gnome-feedback"
117
+ type="help">GNOME Feedback Page</ulink>.
118
+ </para>
119
+
120
+ <!-- Translators may also add here feedback address for translations -->
121
+ </legalnotice>
122
+ </articleinfo>
123
+
124
+ <indexterm zone="index">
125
+ <primary>&app;</primary>
126
+ </indexterm>
127
+ <indexterm zone="index">
128
+ <primary>mygnomeapp</primary>
129
+ </indexterm>
130
+
131
+ <!-- ============= Document Body ============================= -->
132
+ <!-- ============= Introduction ============================== -->
133
+ <sect1 id="myapp-introduction">
134
+ <title>Introduction</title>
135
+ <para>&app; is a shell written in Ruby. Core features:</para>
136
+ <itemizedlist>
137
+ <listitem><para>History</para></listitem>
138
+ <listitem><para>Session control</para></listitem>
139
+ <listitem><para>Command Completion</para></listitem>
140
+ <listitem><para>Trailing line (if a string is open, it will
141
+ provide a new line instead of submitting upon striking the
142
+ return key.)</para></listitem></itemizedlist>
143
+ It has several Bash syntax
144
+ interpreters it can use, including:</para>
145
+ <itemizedlist>
146
+ <listitem>
147
+ <para>Regexp/Ruby handbuilt parser with the following syntax
148
+ constnkcts:</para>
149
+ <itemizedlist>
150
+ <listitem><para>Piping</para></listitem>
151
+ <listitem><para>
152
+ Multiple commands per line with ';'</para></listitem>
153
+ <listitem><para>
154
+ ignoring quoted special characters</para></listitem>
155
+ </itemizedlist></listitem>
156
+ <listitem>
157
+ <para>Dhaka formal grammar with the following syntax
158
+ constnkcts:</para>
159
+ <itemizedlist>
160
+ <listitem><para>
161
+ Not currently functional</para></listitem></itemizedlist>
162
+ </listitem>
163
+ <listitem>
164
+ <para>ANTLR formal grammar with the following syntax
165
+ constnkcts:</para>
166
+ <itemizedlist>
167
+ <listitem><para>
168
+ Not currently functional</para></listitem></itemizedlist>
169
+ </listitem></itemizedlist>
170
+ <para>It has several commands, including:</para>
171
+ <itemizedlist>
172
+ <listitem><para>echo</para></listitem>
173
+ <listitem><para>cat</para></listitem>
174
+ <listitem><para>mv</para></listitem>
175
+ <listitem><para>cp</para></listitem>
176
+ <listitem><para>exit</para></listitem>
177
+ <listitem><para>help</para></listitem></itemizedlist>
178
+ <para>It has several interfaces:</para>
179
+ <itemizedlist>
180
+ <listitem>
181
+ <para>GTK interface with the following features</para>
182
+ <itemizedlist>
183
+ <listitem><para>History Navigation</para></listitem>
184
+ <listitem><para>
185
+ Properly limited editing area</para></listitem>
186
+ <listitem><para>Click to move the cursor</para></listitem>
187
+ <listitem><para>
188
+ Shift+ArrowKey Text Selection</para></listitem>
189
+ <listitem><para>Configurable Interface</para></listitem>
190
+ </itemizedlist></listitem></itemizedlist>
191
+ <note>
192
+ <para>This is a note.</para>
193
+ </note>
194
+ </sect1>
195
+
196
+ <!-- =========== Getting Started ============================== -->
197
+ <!-- Use the Getting Started section to describe the steps required
198
+ to start the application and to describe the user interface components
199
+ of the application. If there is other information that it is important
200
+ for readers to know before they start using the application, you should
201
+ also include this information here.
202
+ If the information about how to get started is very short, you can
203
+ include it in the Introduction and omit this section. -->
204
+
205
+ <sect1 id="myapp-getting-started">
206
+ <title>Getting Started</title>
207
+
208
+ <sect2 id="myapp-start">
209
+ <title>To Start &app;</title>
210
+
211
+ <para>You can start <application>&app;</application> in the following ways:
212
+ </para>
213
+ <variablelist>
214
+ <varlistentry>
215
+ <term><guimenu>Applications</guimenu> menu</term>
216
+ <listitem>
217
+ <para>Choose
218
+ <menuchoice>
219
+
220
+ <guisubmenu>Accessories </guisubmenu>
221
+ <guimenuitem>&app;</guimenuitem>
222
+ </menuchoice>. </para>
223
+ </listitem>
224
+ </varlistentry>
225
+ <varlistentry>
226
+ <term>Command line</term>
227
+
228
+ <listitem>
229
+ <para>To start <application>&app;</application> from a command line, type the following command,
230
+ then press <keycap>Return</keycap>:</para>
231
+ <para>
232
+ <command>naksh</command>
233
+ </para>
234
+ </listitem>
235
+
236
+ </varlistentry>
237
+ </variablelist>
238
+ </sect2>
239
+
240
+ <sect2 id="myapp-when-start">
241
+ <title>When You Start &app;</title>
242
+ <para>When you start <application>&app;</application>, the following window is displayed.</para>
243
+
244
+ <!-- ==== Figure ==== -->
245
+ <figure id="mainwindow-fig">
246
+ <title>&app; Start Up Window</title>
247
+ <screenshot>
248
+ <mediaobject>
249
+ <imageobject><imagedata
250
+ fileref="figures/naksh_start_window.png" format="PNG"/>
251
+ </imageobject>
252
+ <!-- EPS versions of the figures are not required at the moment. -->
253
+ <!--
254
+ <imageobject>
255
+ <imagedata fileref="figures/image.eps" format="EPS"/>
256
+ </imageobject>
257
+ -->
258
+ <textobject>
259
+ <phrase>Shows &app; main window. Contains titlebar, menubar, console area, and
260
+ scrollbars. Menubar contains File, View, Search, and Help menus. </phrase>
261
+ </textobject>
262
+ </mediaobject>
263
+ </screenshot>
264
+ </figure>
265
+
266
+ <!-- ==== End of Figure ==== -->
267
+
268
+ <!-- Include any descriptions of the GUI immediately after the screenshot of the main UI, -->
269
+ <!-- for example, the items on the menubar and on the toolbar. This section is optional. -->
270
+
271
+ <para>The &app; window contains the following elements:
272
+ </para>
273
+ <variablelist>
274
+ <varlistentry>
275
+
276
+ <term>Menubar. </term>
277
+ <listitem>
278
+ <para>The menus on the menubar contain all of the commands you need to work with files in
279
+ <application>&app;</application>.</para>
280
+ </listitem>
281
+ </varlistentry>
282
+ <varlistentry>
283
+ <term>Toolbar. </term>
284
+
285
+ <listitem>
286
+ <para> The toolbar contains a subset of the commands that you can access from the menubar.</para>
287
+ </listitem>
288
+ </varlistentry>
289
+ <varlistentry>
290
+ <term>Statusbar. </term>
291
+ <listitem>
292
+
293
+ <para>The statusbar displays information about current <application>&app;</application>
294
+ activity and contextual information about the menu items. </para>
295
+ </listitem>
296
+ </varlistentry>
297
+ </variablelist>
298
+ </sect2>
299
+ </sect1>
300
+ <!-- ================ Usage ================================ -->
301
+ <!-- Use this section to describe how to use the application to perform the tasks for
302
+ which the application is designed. -->
303
+
304
+ <sect1 id="myapp-usage">
305
+ <title>Usage</title>
306
+ <para>You can use the &app; application to
307
+ perform the following tasks:
308
+ <itemizedlist>
309
+ <listitem>
310
+ <para>
311
+ <xref linkend="myapp-open-image"/></para>
312
+ </listitem>
313
+ <listitem>
314
+ <para>
315
+ <xref linkend="myapp-manipulate-view"/></para>
316
+ </listitem>
317
+ <listitem>
318
+ <para>
319
+ <xref linkend="myapp-scroll-image"/></para>
320
+
321
+ </listitem>
322
+ <listitem>
323
+ <para>
324
+ <xref linkend="myapp-close-image"/></para>
325
+ </listitem>
326
+ </itemizedlist> </para>
327
+ <!-- ================ Usage Subsection ================================ -->
328
+ <sect2 id="myapp-open-image">
329
+ <title>To Open an Image</title>
330
+ <para>To open an image, choose
331
+ <menuchoice>
332
+ <guimenu>File</guimenu>
333
+ <guimenuitem>Open Image</guimenuitem>
334
+ </menuchoice>. The
335
+ <guilabel>Open Image</guilabel> dialog is displayed. Select the file
336
+ that you want to open, then click
337
+ <guibutton>OK</guibutton>. To open another image in a new window,
338
+ choose
339
+ <menuchoice>
340
+ <guimenu>File</guimenu>
341
+ <guimenuitem>Create New Window</guimenuitem>
342
+ </menuchoice>. Choose
343
+ <menuchoice>
344
+ <guimenu>File</guimenu>
345
+ <guimenuitem>Open Image</guimenuitem>
346
+ </menuchoice>
347
+ to select the file that you want to open. You can also drag an image
348
+ from another application such as a file manager to the &app;
349
+
350
+ window. If the &app; window is empty, the application displays
351
+ the image in the window. If the window is not empty, the
352
+ application starts a new window to display the file. The
353
+ application displays the name of the image file and the size
354
+ of the image in pixels in the titlebar of the window. </para>
355
+ <para>
356
+ If you try to open an image file format that &app; does
357
+ not recognize, the application displays an error
358
+ message.
359
+ </para>
360
+ <caution>
361
+ <para>This is a caution.</para>
362
+
363
+ </caution>
364
+ </sect2>
365
+ <!-- ================ Usage Subsection ================================ -->
366
+ <sect2 id="myapp-manipulate-view">
367
+ <title>To Manipulate the View of an Image</title>
368
+ <para>You can use the following methods to resize the view of an image in
369
+ the &app; window:</para>
370
+ <itemizedlist>
371
+ <listitem>
372
+ <para>To enlarge the view of an image, choose
373
+ <menuchoice>
374
+ <guimenu>View</guimenu>
375
+ <guimenuitem>Zoom In</guimenuitem>
376
+ </menuchoice>.</para>
377
+ </listitem>
378
+ <listitem>
379
+ <para>To shrink the view of an image, choose
380
+ <menuchoice>
381
+ <guimenu>View</guimenu>
382
+ <guimenuitem>Zoom Out</guimenuitem>
383
+ </menuchoice>.</para>
384
+ </listitem>
385
+ <listitem>
386
+ <para>To view the image at its actual size, choose
387
+ <menuchoice>
388
+ <guimenu>View</guimenu>
389
+ <guimenuitem>Zoom 1:1</guimenuitem>
390
+ </menuchoice>. </para>
391
+ </listitem>
392
+ <listitem>
393
+ <para>To enlarge or shrink the view of an image so that the image
394
+ fits the &app; window, choose
395
+ <menuchoice>
396
+ <guimenu>View</guimenu>
397
+ <guimenuitem>Fit to Window</guimenuitem>
398
+ </menuchoice>.</para>
399
+ </listitem>
400
+ <listitem>
401
+ <para>To enlarge or shrink the image to a specific zoom factor,
402
+ choose
403
+ <menuchoice>
404
+ <guimenu>View</guimenu>
405
+ <guimenuitem>Zoom factor</guimenuitem>
406
+ </menuchoice>, then choose the appropriate zoom factor from the
407
+ drop-down list.</para>
408
+ </listitem>
409
+ <listitem>
410
+ <para>To display the image in full screen mode, choose
411
+ <menuchoice>
412
+ <guimenu>View</guimenu>
413
+ <guimenuitem>Full Screen</guimenuitem>
414
+ </menuchoice>. Full screen mode displays the image in a window that
415
+ fills the full screen. The window does not contain a
416
+ window frame, titlebar,
417
+ menubar, or toolbar. To exit from this mode, press the
418
+ <keycap>Esc</keycap> key or
419
+ <keycombo>
420
+
421
+ <keycap>Ctrl</keycap>
422
+ <keycap>W</keycap>
423
+ </keycombo>.
424
+ </para>
425
+ </listitem>
426
+ </itemizedlist>
427
+ <tip>
428
+ <para>This is a tip.</para>
429
+ </tip>
430
+
431
+ </sect2>
432
+ <!-- ================ Usage Subsection ================================ -->
433
+ <sect2 id="myapp-scroll-image">
434
+ <title>To Scroll an Image</title>
435
+ <para>To scroll around an image that is larger than the image window or
436
+ full screen window, you can use the following methods:</para>
437
+ <itemizedlist>
438
+ <listitem>
439
+ <para>Use the arrow keys on the keyboard.</para>
440
+ </listitem>
441
+ <listitem>
442
+ <para>Drag the image in the opposite direction to the direction in
443
+ which you want to scroll. For example, if you want to
444
+ scroll down the image,
445
+ drag the image upwards in the window.</para>
446
+ </listitem>
447
+ <listitem>
448
+ <para>Use the scrollbars on the window.</para>
449
+ </listitem>
450
+ </itemizedlist>
451
+ </sect2>
452
+
453
+ <!-- ================ Usage Subsection ================================ -->
454
+ <sect2 id="myapp-close-image">
455
+ <title>To Close an Image</title>
456
+ <para>To close an image, choose
457
+ <menuchoice>
458
+ <guimenu>File</guimenu>
459
+ <guimenuitem>Close This Window</guimenuitem>
460
+ </menuchoice>. If the window is the last
461
+ &app; window open, the application exits. </para>
462
+ <para>To quit &app; and close all of the
463
+ windows that you opened in the current session, choose
464
+ <menuchoice>
465
+ <guimenu>File</guimenu>
466
+ <guimenuitem>Exit</guimenuitem>
467
+ </menuchoice>. </para>
468
+ <warning>
469
+
470
+ <para>This is a warning.</para>
471
+ </warning>
472
+ </sect2>
473
+ </sect1>
474
+ <!-- ============= Customization ============================= -->
475
+ <!-- Use this section to describe how to customize the application. -->
476
+ <sect1 id="myapp-prefs">
477
+ <title>Settings</title>
478
+ <para>To configure &app;, choose
479
+ <menuchoice>
480
+ <guimenu>Settings</guimenu>
481
+ <guimenuitem>Preferences</guimenuitem>
482
+ </menuchoice>. The
483
+ <guilabel>Preferences</guilabel> dialog contains the following tabbed
484
+ sections:</para>
485
+ <itemizedlist>
486
+ <listitem>
487
+ <para>
488
+ <xref linkend="myapp-prefs-display"/></para>
489
+ </listitem>
490
+ <listitem>
491
+ <para>
492
+ <xref linkend="myapp-prefs-viewers"/></para>
493
+ </listitem>
494
+ </itemizedlist>
495
+
496
+ <!-- =============== Customization Subsection ================ -->
497
+ <!-- Use a new section to describe different tabbed sections on the Settings or Preferences
498
+ dialog. -->
499
+ <sect2 id="myapp-prefs-display">
500
+ <title>Display</title>
501
+ <variablelist>
502
+ <varlistentry>
503
+ <term>
504
+ <guilabel>Interpolation type</guilabel> </term>
505
+ <listitem>
506
+ <para>Use this drop-down list box to specify the
507
+ interpolation method that
508
+ &app; uses when the
509
+ application resizes images. Select one of the following
510
+ options:</para>
511
+
512
+ <itemizedlist>
513
+ <listitem>
514
+ <para>
515
+ <guilabel>Nearest neighbor</guilabel> </para>
516
+ <para>This method of interpolation takes a location in the
517
+ original image and replicates the pixel that is
518
+ nearest to this location. When
519
+ you zoom in on an image, the pixels are
520
+ replicated. When you zoom out of an
521
+ image, the image loses some of its detail. </para>
522
+ </listitem>
523
+ <listitem>
524
+ <para>
525
+ <guilabel>Bilinear</guilabel> </para>
526
+ <para>This is a simple and fast method of interpolation. When
527
+ you zoom in on an image, &app; uses up to four
528
+ adjacent pixels to compute the colors of the new
529
+ pixels. When you zoom out of
530
+ an image, &app; averages regions of color in the
531
+ existing image to compute the colors of the pixels. </para>
532
+ </listitem>
533
+ <listitem>
534
+ <para>
535
+ <guilabel>Hyperbolic</guilabel> </para>
536
+ <para>This is a high-quality, slow method of interpolation. The
537
+ application performs interpolation on the image in
538
+ the manner described in
539
+ Digital Image Warping by George Wolberg.</para>
540
+ </listitem>
541
+ </itemizedlist>
542
+ <para>Default:
543
+ <guilabel>Nearest neighbor</guilabel>.</para>
544
+ </listitem>
545
+ </varlistentry>
546
+ <varlistentry>
547
+ <term>
548
+ <guilabel>Transparency type</guilabel> </term>
549
+ <listitem>
550
+ <para>Use this drop-down list box to specify how
551
+ &app; displays transparent or partially opaque
552
+ backgrounds in images. Select one of the following options:</para>
553
+ <itemizedlist>
554
+ <listitem>
555
+ <para>
556
+ <guilabel>Dark checks</guilabel> </para>
557
+ <para>This option displays black and dark gray checks.</para>
558
+ </listitem>
559
+ <listitem>
560
+ <para>
561
+ <guilabel>Midtone checks</guilabel> </para>
562
+ <para>This option displays dark gray and light gray
563
+ checks.</para>
564
+ </listitem>
565
+ <listitem>
566
+ <para>
567
+ <guilabel>Light checks</guilabel> </para>
568
+ <para>This option displays light gray and white checks.</para>
569
+ </listitem>
570
+ <listitem>
571
+ <para>
572
+ <guilabel>Black only</guilabel> </para>
573
+ <para>This option displays solid black.</para>
574
+ </listitem>
575
+ <listitem>
576
+ <para>
577
+ <guilabel>Gray only</guilabel> </para>
578
+ <para>This option displays solid gray.</para>
579
+ </listitem>
580
+ <listitem>
581
+ <para>
582
+ <guilabel>White only</guilabel> </para>
583
+ <para>This option displays solid white.</para>
584
+ </listitem>
585
+ </itemizedlist>
586
+ <para>Default:
587
+ <guilabel>Dark checks</guilabel>.</para>
588
+ </listitem>
589
+ </varlistentry>
590
+ <varlistentry>
591
+ <term>
592
+ <guilabel>Check size</guilabel> </term>
593
+ <listitem>
594
+ <para>Use this drop-down list box to specify the size of the checks
595
+ to use to display transparent or partially opaque
596
+ backgrounds in images. This
597
+ option is only relevant if you choose
598
+ <guilabel>Dark checks</guilabel>,
599
+ <guilabel>Midtone checks</guilabel>, or
600
+ <guilabel>Light checks</guilabel> from the
601
+ <guilabel>Transparency type</guilabel> drop-down list box.
602
+ Select one of the following options:</para>
603
+ <itemizedlist>
604
+ <listitem>
605
+ <para>
606
+ <guilabel>Small</guilabel></para>
607
+ </listitem>
608
+ <listitem>
609
+ <para>
610
+ <guilabel>Medium</guilabel></para>
611
+ </listitem>
612
+ <listitem>
613
+ <para>
614
+ <guilabel>Large</guilabel></para>
615
+ </listitem>
616
+ </itemizedlist>
617
+ <para>Default:
618
+ <guilabel>Small</guilabel>.</para>
619
+ </listitem>
620
+ </varlistentry>
621
+ <varlistentry>
622
+ <term>
623
+ <guilabel>Dither type</guilabel> </term>
624
+ <listitem>
625
+ <para>Use this drop-down list box to specify the dithering method
626
+ to use to display images. Dithering is a technique that
627
+ is used to simulate
628
+ colors in the original image file but that your system
629
+ can not display. Select
630
+ one of the following options:</para>
631
+ <itemizedlist>
632
+ <listitem>
633
+ <para>
634
+ <guilabel>None</guilabel> </para>
635
+ <para>This option does not use dithering. </para>
636
+ </listitem>
637
+ <listitem>
638
+ <para>
639
+ <guilabel>Normal (pseudocolor)</guilabel> </para>
640
+ <para>This option performs dithering on pseudocolor displays,
641
+ which use a limited palette of colors. </para>
642
+ </listitem>
643
+ <listitem>
644
+ <para>
645
+ <guilabel>Maximum (high color)</guilabel> </para>
646
+ <para>This option performs dithering on pseudocolor and high
647
+ color displays. </para>
648
+ </listitem>
649
+ </itemizedlist>
650
+ <para>Default:
651
+ <guilabel>None</guilabel>.</para>
652
+ </listitem>
653
+ </varlistentry>
654
+ <varlistentry>
655
+ <term>
656
+ <guilabel>Two-pass scrolling</guilabel> </term>
657
+ <listitem>
658
+ <para>Select this option to render an image in two passes
659
+ when you scroll the image quickly. The first pass
660
+ renders a low quality version of the image. The second
661
+ pass renders a full quality version of the image over
662
+ the low quality version. Two-pass scrolling enables you
663
+ to view at least a low quality version of the image at
664
+ all times regardless of how quickly you scroll the
665
+ image.
666
+ </para>
667
+
668
+ <para>Default: unselected.</para>
669
+ </listitem>
670
+ </varlistentry>
671
+ </variablelist>
672
+ </sect2>
673
+ <!-- ============= Customization Subsection ===================== -->
674
+ <!-- Another tabbed section on the Preferences dialog. -->
675
+ <sect2 id="myapp-prefs-viewers">
676
+ <title>Viewers</title>
677
+ <para>You can set the following viewer preferences:
678
+ <itemizedlist>
679
+ <listitem>
680
+ <para>
681
+ <xref linkend="myapp-viewer-prefs-image-window"/></para>
682
+ </listitem>
683
+ <listitem>
684
+ <para>
685
+ <xref linkend="myapp-viewer-prefs-full-screen"/></para>
686
+ </listitem>
687
+ </itemizedlist> </para>
688
+ <sect3 id="myapp-viewer-prefs-image-window">
689
+ <title>Image Windows</title>
690
+ <para>The
691
+ <guilabel>Image Windows</guilabel> group contains the preferences
692
+ that you can set to view images in image windows.</para>
693
+ <variablelist>
694
+ <varlistentry>
695
+ <term>
696
+ <guilabel>Use scrollbars</guilabel> </term>
697
+ <listitem>
698
+ <para>Use this drop-down list box to specify when to use
699
+ scrollbars to scroll through an image. Select one of
700
+ the following options:</para>
701
+ <itemizedlist>
702
+ <listitem>
703
+ <para>
704
+ <guilabel>Never</guilabel> </para>
705
+ <para>This option never displays scrollbars. You can use the
706
+ arrow keys on the keyboard or the mouse to scroll
707
+ through the image. </para>
708
+ </listitem>
709
+ <listitem>
710
+ <para>
711
+ <guilabel>Only if image does not fit</guilabel> </para>
712
+ <para>This option displays scrollbars when the image is
713
+ larger than the image window.</para>
714
+ </listitem>
715
+ </itemizedlist>
716
+ <para>Default:
717
+ <guilabel>Never</guilabel>.</para>
718
+ </listitem>
719
+ </varlistentry>
720
+ <varlistentry>
721
+ <term>
722
+ <guilabel>Pick window size and zoom factor
723
+ automatically</guilabel> </term>
724
+ <listitem>
725
+ <para>Select this option to resize the image window to fit the
726
+ image or to resize the image to fit the image
727
+ window. If the image is small,
728
+ &app; resizes the image window to fit the image. If
729
+ the image is large, &app; resizes the image to fit
730
+ the image window. </para>
731
+ <para>Default: unselected.</para>
732
+ </listitem>
733
+ </varlistentry>
734
+ <varlistentry>
735
+ <term>
736
+ <guilabel>Open images in a new window</guilabel> </term>
737
+ <listitem>
738
+ <para>Select this option to open a new
739
+ &app; window each time you open an image. If you do
740
+ not select this option, &app; replaces the existing
741
+ image with the new image when you open an image. </para>
742
+ <para>Default: unselected.</para>
743
+ </listitem>
744
+ </varlistentry>
745
+ </variablelist>
746
+ </sect3>
747
+ <sect3 id="myapp-viewer-prefs-full-screen">
748
+ <title>Full Screen</title>
749
+ <para>The
750
+ <guilabel>Full Screen</guilabel> group contains the preferences that
751
+ you can set to view images in full screen mode.</para>
752
+ <variablelist>
753
+ <varlistentry>
754
+ <term>
755
+ <guilabel>Use scrollbars</guilabel> </term>
756
+ <listitem>
757
+ <para>Use this drop-down list box to specify when to use
758
+ scrollbars to scroll through an image. Select one of the following
759
+ options:</para>
760
+ <itemizedlist>
761
+ <listitem>
762
+ <para>
763
+ <guilabel>Never</guilabel> </para>
764
+ <para>This option never displays scrollbars. You can use the
765
+ arrow keys on the keyboard or the mouse to scroll
766
+ through the image. </para>
767
+ </listitem>
768
+ <listitem>
769
+ <para>
770
+ <guilabel>Only if image does not fit</guilabel> </para>
771
+ <para>This option displays scrollbars when the image is
772
+ larger than the full screen. </para>
773
+ </listitem>
774
+ </itemizedlist>
775
+ <para>Default:
776
+ <guilabel>Never</guilabel>.</para>
777
+ </listitem>
778
+ </varlistentry>
779
+ <varlistentry>
780
+ <term>
781
+ <guilabel>Use 1:1 zoom factor</guilabel> </term>
782
+ <listitem>
783
+ <para>Select this option to use the 1:1 zoom factor when you open
784
+ an image. The 1:1 zoom factor displays the image at
785
+ its actual size. </para>
786
+ <para>Default: selected.</para>
787
+ </listitem>
788
+ </varlistentry>
789
+ <varlistentry>
790
+ <term>
791
+ <guilabel>Use same zoom factor as image window</guilabel> </term>
792
+
793
+
794
+ <listitem>
795
+ <para>Select this option to use the same zoom factor that the
796
+ application uses to display the image in an image
797
+ window. </para>
798
+ <para>Default: unselected.</para>
799
+ </listitem>
800
+ </varlistentry>
801
+ <varlistentry>
802
+ <term>
803
+ <guilabel>Fit all images to screen</guilabel> </term>
804
+ <listitem>
805
+ <para>Select this option to resize images to fill the full screen
806
+ when you open the images in full screen mode. </para>
807
+ <para>Default: unselected.</para>
808
+ </listitem>
809
+ </varlistentry>
810
+ <varlistentry>
811
+ <term>
812
+ <guilabel>Fit standard-sized images to screen</guilabel> </term>
813
+ <listitem>
814
+ <para>Select this option to automatically resize images
815
+ that are the same size as standard screens so that the
816
+ images fill the full screen when you open them in full
817
+ screen mode. If you select this option, &app; ignores
818
+ the settings for the previous three options when you
819
+ open an image that is the same size as a standard
820
+ screen. Examples of standard screen sizes are 640 x
821
+ 480 pixels, 1024 x 768 pixels, and so on. </para>
822
+
823
+ <para>Default: unselected.</para>
824
+ </listitem>
825
+ </varlistentry>
826
+ <varlistentry>
827
+ <term>
828
+ <guilabel>Put a bevel around the edge of the screen</guilabel>
829
+ </term>
830
+ <listitem>
831
+ <para>Select this option to display a 3D beveled border around
832
+ the full screen view of an image. </para>
833
+ <para>Default: unselected.</para>
834
+ </listitem>
835
+ </varlistentry>
836
+ </variablelist>
837
+ </sect3>
838
+ </sect2>
839
+ </sect1>
840
+
841
+ <!-- ============= Bugs ================================== -->
842
+ <sect1 id="mayapp-bugs">
843
+ <title>Known Bugs and Limitations</title>
844
+ <variablelist>
845
+ <varlistentry>
846
+ <term><guilabel>History</guilabel></term>
847
+ <listitem><para>Extra entries are added to end of history upon
848
+ various history tasks.</para></listitem></varlistentry>
849
+ </variablelist>
850
+ </sect1>
851
+ -->
852
+ <!-- ============= About ================================== -->
853
+ <!-- This section contains info about the program (not docs), such as
854
+ author's name(s), web page, license, feedback address. This
855
+ section is optional: primary place for this info is "About.." box of
856
+ the program. However, if you do wish to include this info in the
857
+ manual, this is the place to put it. Alternatively, you can put this information in the title page.-->
858
+ <sect1 id="myapp-about">
859
+ <title>About &app;</title>
860
+ <para> &app; was written by &db-keen;
861
+ (<email>&db-keen-email;</email>). To find more information about
862
+ &app;, please visit the
863
+ <ulink url="http://naksh.rubyforge.org/" type="http">&app; Web
864
+ page</ulink>. </para>
865
+
866
+ <para>
867
+ To report a bug or make a suggestion regarding this application or
868
+ this manual, follow the directions in this
869
+ <ulink url="ghelp:gnome-feedback" type="help">document</ulink>.
870
+ </para>
871
+
872
+ <para> This program is distributed under the terms of the GNU
873
+ General Public license as published by the Free Software
874
+ Foundation; either version 3 of the License, or (at your option)
875
+ any later version. A copy of this license can be found at this
876
+ <ulink url="ghelp:gpl3" type="help">link</ulink>, or in the file
877
+ COPYING included with the source code of this program. </para>
878
+
879
+ </sect1>
880
+
881
+ </article>