\subsection{Text Viewer}
This is a Viewer for text files with word wrap. Just open a .txt file to
display it. The text viewer features controls to handle various styles of text
formatting, has top{}-of{}-file and bottom{}-of{}-file buttons. You can view
files without a \fname{.txt} extension by using \emph{Open with} from the
\emph{File Menu} (see \reference{ref:Filemenu}).

\subsubsection{Mode settings}

\begin{description}
\item[Word mode] toggles between Wrap and Chop.
    \begin{description}
        \item[Wrap] breaks lines at white space or hyphen.
        \item[Chop] breaks lines at the maximum column limit.
    \end{description}  
\item[Line mode] cycles through Normal, Join and Expand.
    \begin{description}
        \item[Normal] breaks lines at newline characters.
        \item[Join] ignores unpaired newline characters (i.e., joins lines).
        Useful for adopting the orphans that occur with e{}-mail style
        (i.e.,pre{}-wrapped) text files.
        \item[Expand] doubles unpaired newlines (i.e., adds a blank line).
        Useful for making the paragraphs clearer in some book style text files.
    \end{description}
\item[View mode] toggles between Narrow and Wide.
    \begin{description}
        \item[Narrow] sets maximum column to the screen width.
        \item[Wide] sets maximum column to 114. Useful for navigating large files. (Currently, Wide and Join cannot be selected together.)
    \end{description}
\opt{RECORDER_PAD,ONDIO_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD,IPOD_4G_PAD,IPOD_3G_PAD}{
\item[Page mode] toggles between Normal and Overlap.
    \begin{description}
        \item[Normal] sets page{}-down/page{}-up to one full screen.
        \item[Overlap] tells page{}-down/page{}-up to retain one line from previous screen.    
    \end{description}
\item[Scrollbar mode] toggles scrollbar for the current View mode.
    \begin{description}
        \item[Narrow mode] has no scrollbar by default, until toggled.
        \item[Wide mode] has a scrollbar by default, until toggled.
    \end{description}
}
\end{description}
Settings are not remembered after the viewer has been exited.
\opt{RECORDER_PAD,ONDIO_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD,IPOD_4G_PAD,IPOD_3G_PAD}{
If file fits on one screen, there is no scrollbar and toggling Scrollbar mode has no effect.}

\begin{table}
    \begin{btnmap}{}{}
    \opt{PLAYER_PAD}{\ButtonLeft}
    \opt{RECORDER_PAD,ONDIO_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD,IAUDIO_X5_PAD}{\ButtonUp}
    \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonScrollBack} 
        & Page{}-up (one screen up)\\
        
    \opt{PLAYER_PAD}{\ButtonRight}
    \opt{RECORDER_PAD,ONDIO_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD,IAUDIO_X5_PAD}{\ButtonDown}
    \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonScrollFwd} 
    & Page{}-down (one screen down)\\
        
    \opt{PLAYER_PAD}{\ButtonMenu+\ButtonLeft}
    \opt{RECORDER_PAD,ONDIO_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD,IPOD_4G_PAD,IPOD_3G_PAD,IAUDIO_X5_PAD}{\ButtonLeft} 
    & Top of file (Narrow mode) One screen left (Wide mode)\\
        
    \opt{PLAYER_PAD}{\ButtonMenu+\ButtonRight}
    \opt{RECORDER_PAD,ONDIO_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD,IPOD_4G_PAD,IPOD_3G_PAD,IAUDIO_X5_PAD}
        {\ButtonRight} 
    & Bottom of file (Narrow mode) One screen right (Wide mode)\\
        
    \opt{RECORDER_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD}
       {\ButtonOn+\ButtonUp & One line up\\}
    
    \opt{RECORDER_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD}
       {\ButtonOn+\ButtonDown & One line down\\}
    
    \opt{RECORDER_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD}
       {\ButtonOn+\ButtonLeft & One column left\\}
        
    \opt{RECORDER_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD}
       {\ButtonOn+\ButtonRight & One column right\\}
        
    \opt{PLAYER_PAD}{\ButtonOn+\ButtonLeft}
    \opt{RECORDER_PAD}{\ButtonFOne}
    \opt{ONDIO_PAD}{\ButtonMenu+\ButtonLeft}
    \opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonRec}
    \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonLeft}\opt{IAUDIO_X5_PAD}{\ButtonPlay}
        & Toggles Word mode\\
        
    \opt{PLAYER_PAD}{\ButtonOn+\ButtonMenu+\ButtonRight}
    \opt{RECORDER_PAD}{\ButtonFTwo}
    \opt{ONDIO_PAD}{\ButtonMenu+\ButtonUp}
    \opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonMode}
    \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonPlay}
    \opt{IAUDIO_X5_PAD}{Long press on \ButtonPlay}
        & Cycles line mode\\
        
    \opt{PLAYER_PAD}{\ButtonOn+\ButtonRight}
    \opt{RECORDER_PAD}{\ButtonFThree}
    \opt{ONDIO_PAD}{\ButtonMenu+\ButtonRight}
    \opt{IRIVER_H100_PAD,IRIVER_H300_PAD,IAUDIO_X5_PAD}{\ButtonSelect}
    \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonRight}
        & Toggles view mode\\
        
    \opt{RECORDER_PAD}{\ButtonOn+\ButtonFOne & Toggles page mode\\}
    \opt{ONDIO_PAD}{\ButtonMenu+\ButtonDown & Toggles page mode\\}
    \opt{IRIVER_H100_PAD,IRIVER_H300_PAD}
        {\ButtonOn+\ButtonMode & Toggles page mode\\}
    \opt{IPOD_4G_PAD,IPOD_3G_PAD}
        {\ButtonSelect+\ButtonMenu+\ButtonLeft & Toggles page mode\\}
        
    \opt{RECORDER_PAD}{\ButtonOn+\ButtonFThree & Toggles scrollbar mode\\}
    \opt{ONDIO_PAD}{\ButtonMenu+\ButtonOff & Toggles scrollbar mode\\}
    \opt{IRIVER_H100_PAD,IRIVER_H300_PAD}
        {\ButtonOn+\ButtonRec & Toggles scrollbar mode\\}
    \opt{IPOD_4G_PAD,IPOD_3G_PAD}
        {\ButtonSelect+\ButtonLeft+\ButtonRight & Toggles scrollbar mode\\}
        
    \opt{PLAYER_PAD}{\ButtonStop}
    \opt{RECORDER_PAD,ONDIO_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}
    \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
    \opt{IAUDIO_X5_PAD}{\ButtonPower}
        & Exit text viewer\\
    \end{btnmap}
\end{table}

\subsubsection{Compatibility}

\begin{itemize}
\item Correctly reads plain text files in Unix, Win/DOS, or Macintosh
format. Latin{}-alphabet Unicode files are  \emph{almost} readable.
\item Currently prefers fixed{}-width fonts. With proportional fonts,
pretends all characters are the width of a lower{}-case `o'.
\item Currently messages are in English 
\item Does not currently support right{}-to{}-left languages.
\end{itemize}
