naksh 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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>