dwww Home | Show directory contents | Find package

<FILENAME filename="index.html"><html><head><title>The Okteta Handbook</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="description" content="Okteta is a simple editor for the raw data of files. This type of program is also called hex editor or binary editor."><meta name="keywords" content="KDE, Okteta, view, edit, bits, bytes, binary, octal, hexadecimal, hex editor, raw data"><link rel="home" href="index.html" title="The Okteta Handbook"><link rel="next" href="introduction.html" title="Chapter 1. Introduction"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> The <span class="application">Okteta</span> Handbook</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="introduction.html">Next</a></td></tr></table></div><div id="contentBody"><div lang="en" class="book"><div class="titlepage"><div><div><h1 class="title"><a name="okteta"></a>The <span class="application">Okteta</span> Handbook</h1></div><div><div class="authorgroup"><p class="author"><span class="firstname">Friedrich</span> <span class="othername">W. H.</span> <span class="surname">Kossebau</span> <code class="email">&lt;kossebau@kde.org&gt;</code></p><p class="author"><span class="firstname">Alex</span> <span class="surname">Richardson</span> <code class="email">&lt;arichardson.kde@gmail.com&gt;</code></p></div></div><div>Revision <span class="releaseinfo"><span class="application">Okteta</span> 0.24.60 (<span class="date">2018-03-23</span>)</span></div><div><p class="copyright">Copyright © 2008, 2010, 2011 <span class="firstname">Friedrich</span> <span class="othername">W. H.</span> <span class="surname">Kossebau</span> and <span class="firstname">Alex</span> <span class="surname">Richardson</span></p></div><div><p><a href="help:/kdoctools5-common/fdl-notice.html">Legal Notice</a></p></div><div><div><div class="abstract"><p><span class="application">Okteta</span> is a simple editor for the raw data of files. This type of program
  is also called hex editor or binary editor.</p></div></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="chapter"><a href="introduction.html">1. Introduction</a></span></dt><dt><span class="chapter"><a href="basics.html">2. Basics</a></span></dt><dd><dl><dt><span class="sect1"><a href="basics.html#starting-basics">Starting <span class="application">Okteta</span></a></span></dt><dt><span class="sect1"><a href="usage-basics.html">Usage</a></span></dt></dl></dd><dt><span class="chapter"><a href="tools.html">3. Tools</a></span></dt><dd><dl><dt><span class="sect1"><a href="tools.html#tools-overview">Overview</a></span></dt><dd><dl><dt><span class="sect2"><a href="tools.html#idm106">Analyzers and Manipulators</a></span></dt><dt><span class="sect2"><a href="tools.html#idm144">General tools</a></span></dt></dl></dd><dt><span class="sect1"><a href="tools-structures.html">Structures Tool</a></span></dt><dd><dl><dt><span class="sect2"><a href="tools-structures.html#idm177">General</a></span></dt><dt><span class="sect2"><a href="tools-structures.html#idm188">Installing structure definitions</a></span></dt><dt><span class="sect2"><a href="tools-structures.html#idm224">Sharing structure definitions</a></span></dt><dt><span class="sect2"><a href="tools-structures.html#idm234">Creating structure definitions</a></span></dt><dt><span class="sect2"><a href="tools-structures.html#idm246">Structure definition <acronym class="acronym">XML</acronym> file format</a></span></dt><dt><span class="sect2"><a href="tools-structures.html#idm446">An example structure definition in both <acronym class="acronym">XML</acronym> and JavaScript</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="interface-overview.html">4. Interface Overview</a></span></dt><dd><dl><dt><span class="sect1"><a href="interface-overview.html#menu-commands">Menu Items</a></span></dt><dd><dl><dt><span class="sect2"><a href="interface-overview.html#file-menu">File Menu</a></span></dt><dt><span class="sect2"><a href="interface-overview.html#edit-menu">Edit Menu</a></span></dt><dt><span class="sect2"><a href="interface-overview.html#view-menu">View Menu</a></span></dt><dt><span class="sect2"><a href="interface-overview.html#windows-menu">Windows Menu</a></span></dt><dt><span class="sect2"><a href="interface-overview.html#bookmarks-menu">Bookmarks Menu</a></span></dt><dt><span class="sect2"><a href="interface-overview.html#tools-menu">Tools Menu</a></span></dt><dt><span class="sect2"><a href="interface-overview.html#settings-menu">Settings Menu</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="credits.html">5. Credits and License</a></span></dt></dl></div><FILENAME filename="introduction.html"><html><head><title>Chapter 1. Introduction</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, Okteta, view, edit, bits, bytes, binary, octal, hexadecimal, hex editor, raw data"><link rel="home" href="index.html" title="The Okteta Handbook"><link rel="up" href="index.html" title="The Okteta Handbook"><link rel="prev" href="index.html" title="The Okteta Handbook"><link rel="next" href="basics.html" title="Chapter 2. Basics"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Introduction</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="index.html">Prev</a></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="basics.html">Next</a></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="introduction"></a>Chapter 1. Introduction</h1></div></div></div><p><span class="application">Okteta</span> is a simple editor for the raw data of files.</p><p>The data is displayed in two variants: as the numeric values of the bytes
and as the character assigned to the values. Values and characters can be shown
either in two columns (the traditional display in hex editors) or in rows with
the value on top of the character. Editing can be done both for the values and
for the characters.</p><p>Besides the usual editing capabilities <span class="application">Okteta</span> also brings a small set of
tools, like a table listing decodings into common simple data types, a table
listing all possible bytes with their character and value equivalents, an info
view with a statistic, a checksum calculator, a filter tool and a string
extraction tool.</p><p>All modifications to the data loaded can be endlessly undone or redone.</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="index.html">Prev</a></td><td class="upCell"><a accesskey="h" href="index.html">Contents</a></td><td class="nextCell"><a accesskey="n" href="basics.html">Next</a></td></tr><tr><td class="prevCell">The <span class="application">Okteta</span> Handbook </td><td class="upCell"> </td><td class="nextCell"> Basics</td></tr></table></div><div id="footer_text">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</a></div></div></div></body></html></FILENAME><FILENAME filename="basics.html"><html><head><title>Chapter 2. Basics</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, Okteta, view, edit, bits, bytes, binary, octal, hexadecimal, hex editor, raw data"><link rel="home" href="index.html" title="The Okteta Handbook"><link rel="up" href="index.html" title="The Okteta Handbook"><link rel="prev" href="introduction.html" title="Chapter 1. Introduction"><link rel="next" href="usage-basics.html" title="Usage"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Basics</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="introduction.html">Prev</a></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="usage-basics.html">Next</a></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="basics"></a>Chapter 2. Basics</h1></div></div></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="starting-basics"></a>Starting <span class="application">Okteta</span></h2></div></div></div><p>Type <strong class="userinput"><code><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="command"><span class="command"><strong>okteta</strong></span></span></code></strong> at a command
    prompt or select <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Hex Editor</span></span> from the
    <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guisubmenu">Applications</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guisubmenu">Utilities</span></span> group in the application launcher.</p><p>The standard <span class="trademark">Qt</span>™ and <span class="productname"><span class="orgname">KDE</span> Frameworks</span> <span class="productnumber">5</span> command line
    options are available, and can be listed by entering
    <strong class="userinput"><code><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="command"><span class="command"><strong>okteta</strong></span></span> <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="option"><code class="option">--help</code></span></code></strong>.</p><p>Command line options specific to <span class="application">Okteta</span> are:</p><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="option"><code class="option"><span class="replaceable"><em class="replaceable"><code>&lt;<acronym class="acronym">URL</acronym>(s)&gt;</code></em></span></code></span> - open
    file(s) from the specified <acronym class="acronym">URL</acronym>(s)</p></div><FILENAME filename="usage-basics.html"><html><head><title>Usage</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, Okteta, view, edit, bits, bytes, binary, octal, hexadecimal, hex editor, raw data"><link rel="home" href="index.html" title="The Okteta Handbook"><link rel="up" href="basics.html" title="Chapter 2. Basics"><link rel="prev" href="basics.html" title="Chapter 2. Basics"><link rel="next" href="tools.html" title="Chapter 3. Tools"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Usage</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="basics.html">Prev</a></td><td class="upCell">Basics</td><td class="nextCell"><a accesskey="n" href="tools.html">Next</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="usage-basics"></a>Usage</h2></div></div></div><p>The main <span class="application">Okteta</span> window has the following components:
    a menu bar, a toolbar, a status bar, one or several sidebars with tools, and
    the main view with the tabbed data views.</p><p>When a file is opened or a new byte array is created, the bytes
    contained are listed consecutively in lines with a given number of bytes
    per line. They are displayed in two variants: as the numeric values of the
    bytes and as the characters assigned to the values. Values and characters
    can be shown either separated in two columns or next to each other with the
    value on top of the character. On the left side the offsets of the first
    byte in each line are shown.</p><p>The handling is similar to that of most text editors:
    the data can be edited, cut, copied, pasted, dragged and dropped much as
    text in these can. A cursor marks the current position. Pressing the
    <span class="keycap"><strong>Insert</strong></span> key toggles between the overwrite and insert modes.
    The overwrite mode is stricter than in text editors, as it doesn't allow any
    operation which changes the size of the byte array.</p><p>Other than in text editors the content is displayed in two variants.
    Only one of these is active with regard to new input. There are two linked
    cursors shown for the value and the character display, the cursor of
    the active one is blinking. With the characters active, characters can be
    entered as known from text editors. With the values active, typing a digit
    will open a minimal editor to enter the rest of the value.</p><p>The search dialog allows the user to search for a specific string of
    bytes, definable as values (hexadecimal, decimal, octal, binary) or text
    (current 8-bit encoding or UTF-8).</p><p>Multiple byte arrays can be open at the same time, but only one can be
    active. Use the <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Windows</span></span> menu to select which byte array will
    be active.</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="basics.html">Prev</a></td><td class="upCell"><a accesskey="h" href="index.html">Contents</a></td><td class="nextCell"><a accesskey="n" href="tools.html">Next</a></td></tr><tr><td class="prevCell">Basics </td><td class="upCell">Basics</td><td class="nextCell"> Tools</td></tr></table></div><div id="footer_text">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</a></div></div></div></body></html></FILENAME></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="introduction.html">Prev</a></td><td class="upCell"><a accesskey="h" href="index.html">Contents</a></td><td class="nextCell"><a accesskey="n" href="usage-basics.html">Next</a></td></tr><tr><td class="prevCell">Introduction </td><td class="upCell"> </td><td class="nextCell"> Usage</td></tr></table></div><div id="footer_text">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</a></div></div></div></body></html></FILENAME><FILENAME filename="tools.html"><html><head><title>Chapter 3. Tools</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, Okteta, view, edit, bits, bytes, binary, octal, hexadecimal, hex editor, raw data"><link rel="home" href="index.html" title="The Okteta Handbook"><link rel="up" href="index.html" title="The Okteta Handbook"><link rel="prev" href="usage-basics.html" title="Usage"><link rel="next" href="tools-structures.html" title="Structures Tool"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Tools</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="usage-basics.html">Prev</a></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="tools-structures.html">Next</a></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="tools"></a>Chapter 3. Tools</h1></div></div></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tools-overview"></a>Overview</h2></div></div></div><p><span class="application">Okteta</span> brings some tools, some to analyze and manipulate the byte arrays
  and some with more general purpose. These tools can be activated or deactivated from
  the <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Tools</span></span> entry in the menu bar. Each tool has a small view,
  which docks either in one of the sidebars or freely floats as a window. You
  can dock, undock, rearrange and also stack the tool views with the mouse, by
  pressing the <span class="mousebutton">left</span> mouse button on the title bar of a tool view, moving it as you like and
  releasing the <span class="mousebutton">left</span> mouse button to complete the action, otherwise cancel it by pressing
  the <span class="keycap"><strong>Esc</strong></span> key.</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm106"></a>Analyzers and Manipulators</h3></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">Value/Char Table</span></dt><dd><p>The table lists all possible byte values, both as character and
    in the different numerical codings.</p><p>The selected value can be inserted at the cursor position for a
    defined number of bytes. This can be achieved by using the <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guibutton">Insert</span></span>
    button or double-clicking the line in the table.</p></dd><dt><span class="term">Binary Filter</span></dt><dd><p>The filter performs binary operations on the selected bytes.
    After choosing the operation (AND, OR, ROTATE..) the parameters,
    if any, can be set in the box below. The filter is executed on the use
    of the <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guibutton">Filter</span></span> button.</p></dd><dt><span class="term">Strings</span></dt><dd><p>This tool locates the strings in the selected bytes.
    After choosing the minimum string length, the strings are grepped for
    on the use of the <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guibutton">Extract</span></span> button.
    The list of the strings displayed can be narrowed by entering a
    filter term.</p></dd><dt><span class="term">Statistics</span></dt><dd><p>This tool builds a statistic for the selected bytes.
    The statistic gives the frequency of the occurrence of each byte value
    in the selection.
    It can be calculated by using the <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guibutton">Build</span></span>
    button.</p></dd><dt><span class="term">Checksum</span></dt><dd><p>This tool calculates various checksums or hashsums for the
    selected bytes. After choosing the algorithm and setting the parameter, if
    any, the sum is computed on the use of the <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guibutton">Calculate</span></span>
    button.</p></dd><dt><span class="term">Decoding Table</span></dt><dd><p>The table displays the values of the byte or the bytes
    starting at the cursor for some common simple data types like Integer or
    Float, but also UTF-8. Double-clicking on a line in the table opens an
    editor, so the value can be edited and changed.</p></dd><dt><span class="term">Structures</span></dt><dd><p>This tool enables investigating and editing of byte arrays
    based on user-creatable structure definitions. Detailed instructions are in
    an own <a class="link" href="tools-structures.html" title="Structures Tool">section</a>.</p></dd></dl></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm144"></a>General tools</h3></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">Filesystem</span></dt><dd><p>This tool offers an embedded file browser which
    can be used to select files to open.</p></dd><dt><span class="term">Documents</span></dt><dd><p>This tool shows all currently created or loaded files.
    Symbols mark the file with the currently active view and also show which
    files have unsaved changes or which storage copy has been modified by
    another program.</p></dd><dt><span class="term">Bookmarks</span></dt><dd><p>This tool can be used to manage the bookmarks, alternatively
    to the <a class="link" href="interface-overview.html#bookmarks-menu" title="Bookmarks Menu"><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Bookmarks</span></span></a> menu.
    </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>Bookmarks are currently only transient and not saved if you
    close a byte array or the whole program.</p></div></dd><dt><span class="term">File Info</span></dt><dd><p>This tool displays some information about the current file,
    including its type, the location of storage and the size.</p></dd><dt><span class="term">Terminal</span></dt><dd><p>An embedded Terminal, the working directory is not coupled with the active file.</p></dd><dt><span class="term">Charset Conversion</span></dt><dd><p>The tool rewrites the bytes so the respective chars are the same as with the other charset.
     Only 8-bit charsets are supported, and unmatched chars are currently substituted with a value hardcoded to 0.
     </p></dd></dl></div></div></div><FILENAME filename="tools-structures.html"><html><head><title>Structures Tool</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, Okteta, view, edit, bits, bytes, binary, octal, hexadecimal, hex editor, raw data"><link rel="home" href="index.html" title="The Okteta Handbook"><link rel="up" href="tools.html" title="Chapter 3. Tools"><link rel="prev" href="tools.html" title="Chapter 3. Tools"><link rel="next" href="interface-overview.html" title="Chapter 4. Interface Overview"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Structures Tool</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="tools.html">Prev</a></td><td class="upCell">Tools</td><td class="nextCell"><a accesskey="n" href="interface-overview.html">Next</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tools-structures"></a>Structures Tool</h2></div></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm177"></a>General</h3></div></div></div><p>The Structures tool enables analyzing and editing of byte arrays
      based on user-creatable structure definitions, which can be built from
      arrays, unions, primitive types and enum values.</p><p>It has an own settings dialog, which can be reached by using the
      <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guibutton">Settings</span></span> button. There are various options that can be
      configured, like the style (decimal, hexadecimal or binary) in which the
      values are displayed. Moreover it is possible to choose which structure
      definitions get loaded and which structures are shown in the view.</p><p>Structures are defined in <span class="application">Okteta</span> Structure Definition files (based
      on <acronym class="acronym">XML</acronym>, with the file extension <code class="literal">.osd</code>).
      Additionally a <code class="literal">.desktop</code> file contains
      metadata about that structure description file, such as author, homepage
      and license.</p><p>Currently there is no built-in support for creating or editing
      structure definitions, therefore this must be done manually as
      described in the next sections.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm188"></a>Installing structure definitions</h3></div></div></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a name="idm190"></a>Installing using KNewStuff</h4></div></div></div><p>The easiest way of installing new structure definitions is by using the built-in
        KNewStuff support in <span class="application">Okteta</span>. To install an existing structure open the settings dialog of the
        Structures tool. There select the <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Structures Management</span></span> tab and press the
        <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guibutton">Get New Structures...</span></span> button. The dialog that shows up now allows you to
        install and uninstall structures.</p></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a name="idm196"></a>Installing structure definitions manually</h4></div></div></div><p>The Structures tool looks for structure descriptions in the
          subdirectory <code class="filename">okteta/structures/</code>
          of the user's directory for program data (find that by executing
          <strong class="userinput"><code><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="command"><span class="command"><strong>qtpaths</strong></span></span> <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="option"><code class="option">--paths GenericDataLocation</code></span></code></strong>).
          You may need to create this directory if there are no structure
          definitions installed yet.</p><p>Two files exist for every structure definition: One file for the actual definition and a
          <code class="literal">.desktop</code> file for the metadata (author, version, etc.).</p><p>In that directory there is a subdirectory for each structure
          definition, which contains both the <code class="literal">.desktop</code>
          file and the <code class="literal">.osd</code> or
          <code class="filename">main.js</code> file of that definition.</p><p>For example, with the program data directory
          <code class="filename"><strong class="userinput"><code><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="command"><span class="command"><strong>qtpaths</strong></span></span> <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="option"><code class="option">--paths GenericDataLocation</code></span></code></strong></code>
          and a structure definition named ExampleStructure there is the directory
          <code class="filename">okteta/structures/ExampleStructure</code>
          which contains a file <code class="filename">ExampleStructure.desktop</code> and a
          file <code class="filename">ExampleStructure.osd</code>.</p></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a name="idm217"></a>Using the newly installed structures</h4></div></div></div><p>After having installed a new structure definition you need to restart <span class="application">Okteta</span>
        before you can use it.
        Once <span class="application">Okteta</span> has started, open the settings dialog of the Structures tool. There select the
        <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Structures Management</span></span> tab and make sure the relevant
        structure definition is checked. Then switch to the <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Structures</span></span> tab and
        make sure the desired element is listed on the right-hand side.</p></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm224"></a>Sharing structure definitions</h3></div></div></div><p>For common structures you may not need to create a definition yourself,
      but instead can reuse an already existing definition from places like
      <a class="ulink" href="https://store.kde.org/browse/cat/214" target="_top">store.kde.org</a>.</p><p>You also may want to share a definition yourself. To do so, create a
      file archive (<abbr class="abbrev">e.g.</abbr> a zipped tar archive, <code class="literal">.tar.gz</code>)
      containing just the subdirectory with the <code class="literal">.desktop</code>
      file and the structure definition file. Looking at the example in the last section this
      would be the directory <code class="filename">ExampleStructure</code> with all its contents.
      Using this format for sharing the structure definitions allows installing them inside <span class="application">Okteta</span> and
      requires no manual installation.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm234"></a>Creating structure definitions</h3></div></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>A more up to date, but not completed guide to writing structure definitions can be found
        <a class="ulink" href="https://userbase.kde.org/Okteta/Writing_structure_definitions" target="_top">on the KDE UserBase Wiki</a>.
      </p></div><p>There are two different ways of creating structure definitions. The first is writing the
      definition in <acronym class="acronym">XML</acronym> the other is using JavaScript. The JavaScript approach allows you
      to create more complex structures with features like <abbr class="abbrev">e.g.</abbr> validating the structure. Using <acronym class="acronym">XML</acronym> gives you
      less features but if a static structure is all you need this may be the easiest approach. If you need a dynamic
      structure i.e. where array lengths depend on other values in the structure or the structure layout is different when
      some member value changes, then you will have to write the structure definition in JavaScript.
      There is one exception to that rule: if you have an array where the length is supposed to be
      <span class="bold"><strong>exactly</strong></span> the same as another value in the structure, then you can use <acronym class="acronym">XML</acronym>.
      But if it is something like <span class="emphasis"><em>length - 1</em></span> it has to be JavaScript.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm246"></a>Structure definition <acronym class="acronym">XML</acronym> file format</h3></div></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>A more up to date, but not completed guide to writing structure definitions can be found
        <a class="ulink" href="https://userbase.kde.org/Okteta/Writing_structure_definitions" target="_top">on the KDE UserBase Wiki</a>.
      </p></div><p>
      
      The <code class="literal">.osd</code> <acronym class="acronym">XML</acronym> file has one root element: <span class="emphasis"><em>&lt;data&gt;</em></span> with no
      attributes. Inside this element there must be one of the following elements:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="bold"><strong><span class="emphasis"><em>&lt;primitive&gt;</em></span></strong></span></span></dt><dd><p>To create a primitive data types like <abbr class="abbrev">e.g.</abbr> <span class="emphasis"><em>int</em></span> and
              <span class="emphasis"><em>float</em></span>. This element accepts no subelements and can have the following attributes:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="bold"><strong>type</strong></span></span></dt><dd><p>The type of this primitive type. It must be one of the following:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><span class="emphasis"><em>char</em></span> for a 8 bit ASCII character</p></li><li class="listitem"><p><span class="emphasis"><em>int8, int16, int32, int64</em></span> for a signed integer of that size</p></li><li class="listitem"><p><span class="emphasis"><em>uint8, uint16, uint32, uint64</em></span> for an unsigned integer of that size</p></li><li class="listitem"><p><span class="emphasis"><em>bool8, bool16, bool32, bool64</em></span> for an unsigned boolean (0 = false, any other value = true) of that size</p></li><li class="listitem"><p><span class="emphasis"><em>float</em></span> for a 32 bit IEEE754 floating point number</p></li><li class="listitem"><p><span class="emphasis"><em>double</em></span> for a 64 bit IEEE754 floating point number</p></li></ul></div></dd></dl></div></dd><dt><span class="term"><span class="bold"><strong><span class="emphasis"><em>&lt;bitfield&gt;</em></span></strong></span></span></dt><dd><p>To create a bitfield. This element accepts no subelements and can have the following
              attributes:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="bold"><strong>width</strong></span></span></dt><dd><p>The number of bits used by this bitfield. Must be between 1 and 64.</p></dd><dt><span class="term"><span class="bold"><strong>type</strong></span></span></dt><dd><p>The type of this bitfield. It must be one of the following:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><span class="emphasis"><em>unsigned</em></span> for a bitfield where the value will be interpreted as
                      an unsigned value (value range from 0 to 2<sup>width</sup> - 1)</p></li><li class="listitem"><p><span class="emphasis"><em>signed</em></span> for a bitfield where the value will be interpreted as a
                      signed value (value range from -2<sup>width - 1</sup> to
                      2<sup>width - 1</sup> - 1)</p></li><li class="listitem"><p><span class="emphasis"><em>bool</em></span> for a bitfield where the value will be interpreted as a
                      boolean value</p></li></ul></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>Always remember to add padding after a <span class="emphasis"><em>&lt;bitfield&gt;</em></span>, since otherwise
                  the next element (except for strings and arrays, since they add padding automatically) will start in the
                  middle of a byte. Obviously padding is not necessary if you want this behavior.</p></div></dd></dl></div></dd><dt><span class="term"><span class="bold"><strong><span class="emphasis"><em>&lt;enum&gt;</em></span></strong></span></span></dt><dd><p>To create a primitive type, but where the values are displayed as members of an enumeration if
              possible. This element accepts no subelements (however you will need an <span class="emphasis"><em>&lt;enumDef&gt;</em></span>
              tag in the file to reference it). It has the following attributes:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="bold"><strong>enum</strong></span></span></dt><dd><p>The underlying enum for this value. Must match the <span class="emphasis"><em>name</em></span> attribute of
                  one of the <span class="emphasis"><em>&lt;enumDef&gt;</em></span> tags in this file.</p></dd><dt><span class="term"><span class="bold"><strong>type</strong></span></span></dt><dd><p>The type of this enum. See type attribute of <span class="emphasis"><em>&lt;primitive&gt;</em></span>.
                    Only difference is that <span class="emphasis"><em>Double</em></span> and <span class="emphasis"><em>Float</em></span> make no sense.</p></dd></dl></div></dd><dt><span class="term"><span class="bold"><strong><span class="emphasis"><em>&lt;flags&gt;</em></span></strong></span></span></dt><dd><p>This is the same as <span class="emphasis"><em>&lt;enum&gt;</em></span> with the only difference being
            that values are represented as a <span class="emphasis"><em>bitwise-or</em></span> of all the values of the enumeration.</p></dd><dt><span class="term"><span class="bold"><strong><span class="emphasis"><em>&lt;struct&gt;</em></span></strong></span></span></dt><dd><p>To create a structure. All other elements (including <span class="emphasis"><em>&lt;struct&gt;</em></span>) can
            be a child of this and will then be part of the resulting structure</p></dd><dt><span class="term"><span class="bold"><strong><span class="emphasis"><em>&lt;union&gt;</em></span></strong></span></span></dt><dd><p>To create a union. Basically the same as <span class="emphasis"><em>&lt;struct&gt;</em></span> except for the fact
            that all child elements will start from the same offset. Useful for interpreting the same sequence of bytes in
            various ways.</p></dd><dt><span class="term"><span class="bold"><strong><span class="emphasis"><em>&lt;array&gt;</em></span></strong></span></span></dt><dd><p>To create an array. This element accepts exactly one child (the underlying type of the array),
            which can be any of the elements, even <span class="emphasis"><em>&lt;array&gt;</em></span> itself. It also has the following
            attributes:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="bold"><strong>length</strong></span></span></dt><dd><p>The number of elements in this array as a decimal number.
                  Alternatively it can also be a string which matches the name attribute of a previously defined
                  <span class="emphasis"><em>&lt;primitive&gt;</em></span>, <span class="emphasis"><em>&lt;enum&gt;</em></span> or <span class="emphasis"><em>&lt;flags&gt;</em></span>
                  element. Then the length will be the value of that element.
                  Currently it is limited to 10000, because larger arrays would use too much memory and slow down the tool
                  too much.
                  </p></dd></dl></div></dd><dt><span class="term"><span class="bold"><strong><span class="emphasis"><em>&lt;string&gt;</em></span></strong></span></span></dt><dd><p>To create a string in various encodings. By default you get a <span class="emphasis"><em>NULL</em></span>-
            terminated C-style string. However different types of string can be created with the following attributes:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="bold"><strong>terminatedBy</strong></span></span></dt><dd><p>This attribute determines what unicode codepoint the string is terminated by. It must be a
                  hexadecimal number (optionally with leading <span class="emphasis"><em>0x</em></span>). When encoding is ASCII, only values
                  up to 0x7f are meaningful. If neither this nor <span class="emphasis"><em>maxCharCount</em></span> nor <span class="emphasis"><em>maxByteCount</em></span>
                  are set, this is assumed to be set to 0 (C-style string)
                  </p></dd><dt><span class="term"><span class="bold"><strong>maxCharCount</strong></span></span></dt><dd><p>The maximum number of chars this string can have. If <span class="emphasis"><em>terminatedBy</em></span> is
                  set too then whatever is reached first terminates the string. This is mutually exclusive with
                  <span class="emphasis"><em>maxByteCount</em></span></p></dd><dt><span class="term"><span class="bold"><strong>maxByteCount</strong></span></span></dt><dd><p>The maximum number of bytes this string can be long. If <span class="emphasis"><em>terminatedBy</em></span>
                  is set too then whatever is reached first terminates the string. This is mutually exclusive with
                  <span class="emphasis"><em>maxCharCount</em></span>. With encodings like <span class="emphasis"><em>ASCII</em></span> this is the same as
                  <span class="emphasis"><em>maxCharCount</em></span>.</p></dd><dt><span class="term"><span class="bold"><strong>type</strong></span></span></dt><dd><p>The encoding of this string. Can be one of the following:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><span class="emphasis"><em>ASCII</em></span></p></li><li class="listitem"><p><span class="emphasis"><em>LATIN-1</em></span></p></li><li class="listitem"><p><span class="emphasis"><em>UTF-8</em></span></p></li><li class="listitem"><p><span class="emphasis"><em>UTF-16-LE</em></span> or <span class="emphasis"><em>UTF-16-BE</em></span>. If neither
                      <span class="emphasis"><em>-LE</em></span> or <span class="emphasis"><em>-BE</em></span> suffix is given, little endian is assumed.
                      </p></li><li class="listitem"><p><span class="emphasis"><em>UTF-32-LE</em></span> or <span class="emphasis"><em>UTF-32-BE</em></span>. If neither
                      <span class="emphasis"><em>-LE</em></span> or <span class="emphasis"><em>-BE</em></span> suffix is given, little endian is assumed.
                      </p></li></ul></div></dd></dl></div></dd></dl></div><p>
      Every element also accepts an attribute <span class="emphasis"><em>name</em></span> which is then visible in the structures view.
      </p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm446"></a>An example structure definition in both <acronym class="acronym">XML</acronym> and JavaScript</h3></div></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>A more up to date, but not completed guide to writing structure definitions can be found
        <a class="ulink" href="https://userbase.kde.org/Okteta/Writing_structure_definitions" target="_top">on the KDE UserBase Wiki</a>.
      </p></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a name="idm452"></a>The common step shared by both approaches</h4></div></div></div><p>
        Our metadata file looks like this:
        </p><pre class="screen">
        [Desktop Entry]
        Icon=arrow-up<a name="icon"></a>❶
        Type=Service
        ServiceTypes=KPluginInfo

        Name=Simple test structure
        Comment=A very simple test structure containing only two items

        X-KDE-PluginInfo-Author=Alex Richardson
        X-KDE-PluginInfo-Email=foo.bar@email.org
        X-KDE-PluginInfo-Name=simplestruct
        X-KDE-PluginInfo-Version=1.0
        X-KDE-PluginInfo-Website=https://www.plugin.org/
        X-KDE-PluginInfo-Category=structure
        X-KDE-PluginInfo-License=LGPL
        X-KDE-PluginInfo-EnabledByDefault=false
        </pre><p>
        </p><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><p><a href="#icon">❶</a> </p></td><td valign="top" align="left"><p>The icon displayed in <span class="application">Okteta</span> for this structure can be anything found by executing
          <strong class="userinput"><code><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="command"><span class="command"><strong>kdialog</strong></span></span> <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="option"><code class="option">--geticon</code></span></code></strong> or a path to an icon</p></td></tr></table></div><p>

          These fields should all be pretty much self-explanatory, except for
          <code class="literal">X-KDE-PluginInfo-Name</code>. The value of this field must match the name of the directory containing the file as well as the name of the <code class="literal">.desktop</code> file. When creating <acronym class="acronym">XML</acronym> structure definitions the name of the <code class="literal">.osd</code> file must also match the name. </p><p>In this example we would have a directory named <code class="filename">simplestruct</code>
        containing the file <code class="filename">simplestruct.desktop</code>. When defining structures in <acronym class="acronym">XML</acronym>
        the directory would also contain a file named <code class="filename">simplestruct.osd</code>. Using JavaScript we would have a file named <code class="filename">main.js</code> instead.</p></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a name="idm474"></a>A simple <acronym class="acronym">XML</acronym> structure definition</h4></div></div></div><p>
          To start we create a definition for a very simple test structure
          containing only integral data types (one char, one 32-bit signed integer, and a bitfield).
          This would be expressed in C/C++ as:
          </p><pre class="screen">
          struct simple {
            char aChar;
            int anInt;
            bool bitFlag :1;
            unsigned padding :7;
          };
          </pre><p>
          The first step is writing the <code class="literal">.osd</code> file according to the file format defined
          in the previous section. We will call <code class="filename">simplestruct.osd</code>:
          </p><pre class="screen"><span class="markup">
          &lt;?xml version="1.0" encoding="UTF-8"?&gt;
          &lt;data&gt;
            &lt;struct name="simple"&gt;
              &lt;primitive name="aChar" type="Char"/&gt;
              &lt;primitive name="anInt" type="Int32"/&gt;
              &lt;bitfield name="bitFlag" type="bool" width="1"/&gt;
              &lt;bitfield name="padding" type="unsigned" width="7"/&gt;
            &lt;/struct&gt;
          &lt;/data&gt;
          </span></pre><p>
          which is fairly similar to the C/C++ definition.
          </p><p>Now create a directory <code class="filename">simplestruct</code>
          inside the structure installation directory (see manually installing structure definitions) 
          and copy the two files to this directory. Now you can restart <span class="application">Okteta</span> and use the new structure.</p></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a name="idm486"></a>The simple structure in JavaScript</h4></div></div></div><p>
        To implement the structure above in JavaScript, create a file named <code class="filename">main.js</code> instead of <code class="filename">simplestruct.osd</code>
        and change X-KDE-PluginInfo-Category=structure to X-KDE-PluginInfo-Category=structure/js.
        The contents of that file should be:
        </p><pre class="screen">
        function init() {
          var structure = struct({
            aChar : char(),
            anInt : int32(),
            bitFlag : bitfield("bool", 1),
            padding : bitfield("unsigned", 7),
          })
          return structure;
        }
        </pre><p>
        The structure displayed by <span class="application">Okteta</span> is always the return value of the <code class="literal">init</code> function.</p><p>
        The following functions can be called to create a primitive type:
        </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>char()</p></li><li class="listitem"><p>int8(), int16(), int32() or int64()</p></li><li class="listitem"><p>uint8(), uint16(), uint32() or uint64()</p></li><li class="listitem"><p>bool8(), bool16(), bool32() or bool64()</p></li><li class="listitem"><p>float()</p></li><li class="listitem"><p>double()</p></li></ul></div><p>
        The bitfield function takes two parameters, the first being a string consisting of
        <code class="literal">bool</code>, <code class="literal">signed</code> or <code class="literal">unsigned</code>. The second parameter is an integer which sets the width in bits.
        </p></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a name="idm511"></a>More complex structures</h4></div></div></div><p>
        Next we create a definition of a more complex structure which we will
        call "complex" and save in a file named <code class="filename">complex.osd</code>.
        This structure will contain two arrays (one with fixed length and one
        where the length is determined at runtime) as well as a nested structure
        and a union.
        </p><pre class="screen"><span class="markup">
          &lt;?xml version="1.0" encoding="UTF-8"?&gt;
          &lt;data&gt;
            &lt;struct name="complex"&gt;
              &lt;primitive name="size" type="UInt8" /&gt;
              &lt;union name="aUnion"&gt;
                &lt;array name="fourBytes" length="4"&gt;
                  &lt;primitive type="Int8" /&gt;
                &lt;/array&gt;
              &lt;/union&gt;
              &lt;struct name="nested"&gt;
                &lt;array name="string" length="size"&gt; &lt;!-- references the field size above --&gt;
                  &lt;primitive type="Char" /&gt;
                &lt;/array&gt;
              &lt;/struct&gt;
            &lt;/struct&gt;
          &lt;/data&gt;
          </span></pre><p>
          This would correspond to the following in pseudo-C/C++
          </p><pre class="screen">
          struct complex {
            uint8_t size;
            union aUnion {
              int8_t fourBytes[4];
            };
            struct nested {
              char string[size] //not valid C++, references value of the uint8 size
            };
          };
          </pre><p>
          </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>You can obviously only have dynamic length arrays
          reference fields before the array.</p></div><p>Next we create the <code class="filename">complex.desktop</code> file just as
          in the example before (make sure you set <code class="literal">X-KDE-PluginInfo-Name</code>
          correctly) and also do the same to install both files.</p></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a name="idm523"></a>Further information</h4></div></div></div><p>
          A few example structure definitions can be found in the <a class="ulink" href="https://commits.kde.org/okteta?path=kasten/controllers/view/structures/examples/okteta/structures/" target="_top">Git repository.</a>
          This includes for example the file header for PNG files and the ELF file header.
          An <acronym class="acronym">XML</acronym> schema describing the structure of the <code class="literal">.osd</code> file can be found <a class="ulink" href="https://commits.kde.org/okteta?path=kasten/controllers/view/structures/schema/" target="_top">here.</a>
          If more information is needed feel free to contact me at <code class="email">(arichardson.kde AT gmail.com)</code>
        </p></div></div></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="tools.html">Prev</a></td><td class="upCell"><a accesskey="h" href="index.html">Contents</a></td><td class="nextCell"><a accesskey="n" href="interface-overview.html">Next</a></td></tr><tr><td class="prevCell">Tools </td><td class="upCell">Tools</td><td class="nextCell"> Interface Overview</td></tr></table></div><div id="footer_text">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</a></div></div></div></body></html></FILENAME></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="usage-basics.html">Prev</a></td><td class="upCell"><a accesskey="h" href="index.html">Contents</a></td><td class="nextCell"><a accesskey="n" href="tools-structures.html">Next</a></td></tr><tr><td class="prevCell">Usage </td><td class="upCell"> </td><td class="nextCell"> Structures Tool</td></tr></table></div><div id="footer_text">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</a></div></div></div></body></html></FILENAME><FILENAME filename="interface-overview.html"><html><head><title>Chapter 4. Interface Overview</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, Okteta, view, edit, bits, bytes, binary, octal, hexadecimal, hex editor, raw data"><link rel="home" href="index.html" title="The Okteta Handbook"><link rel="up" href="index.html" title="The Okteta Handbook"><link rel="prev" href="tools-structures.html" title="Structures Tool"><link rel="next" href="credits.html" title="Chapter 5. Credits and License"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Interface Overview</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="tools-structures.html">Prev</a></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="credits.html">Next</a></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="interface-overview"></a>Chapter 4. Interface Overview</h1></div></div></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="menu-commands"></a>Menu Items</h2></div></div></div><p>Apart from the common <span class="orgname">KDE</span> menus described in the <a class="ulink" href="help:/fundamentals/ui.html#menus" target="_top">Menu</a>
chapter of the <span class="orgname">KDE</span> Fundamentals documentation <span class="application">Okteta</span> has these application specific menu entries:
</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="file-menu"></a>File Menu</h3></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">File</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">New</span></span> (<span class="shortcut"><strong><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>N</strong></span></strong></span>)</span></dt><dd><p><span class="action">Create a new byte array...</span></p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Empty</span></span>: ... as Empty one.</p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">From Clipboard</span></span>: ... by the current
    content of the clipboard.</p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Pattern...</span></span>: ... with a given pattern.</p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Random Data...</span></span>: ...with random data.</p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Sequence</span></span>: ... with all the bytes
    from 0 to 255.</p></li></ul></div></dd><dt><span class="term"><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">File</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guisubmenu">Export</span></span></span></dt><dd><p>Export the selected bytes to a file...</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Values</span></span>: ... encoded as byte values.
    By default the values are separated with one whitespace. The <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Separation</span></span>
    characters can be changed in the <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Export</span></span> dialog.
    </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Characters</span></span>: ... encoded as plain text.
    </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Base64</span></span>: ... encoded in the
    <a class="ulink" href="https://en.wikipedia.org/wiki/Base64" target="_top">Base64</a>
    format.</p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Base32</span></span>: ... encoded in the 
    <a class="ulink" href="https://en.wikipedia.org/wiki/Base32" target="_top">Base32</a>
    format.</p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Ascii85</span></span>: ... encoded in the
    <a class="ulink" href="https://en.wikipedia.org/wiki/Ascii85" target="_top">Ascii85</a>
    format.</p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Uuencoding</span></span>: ... encoded in the
    <a class="ulink" href="https://en.wikipedia.org/wiki/Uuencoding" target="_top">Uuencoding</a>
    format.</p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Xxencoding</span></span>: ... encoded in the
    <a class="ulink" href="https://en.wikipedia.org/wiki/Xxencoding" target="_top">Xxencoding</a>
    format.</p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Intel Hex</span></span>: ... encoded in the
    <a class="ulink" href="https://en.wikipedia.org/wiki/Intel_Hex" target="_top">Intel Hex</a>
    format.</p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">S-Record</span></span>: ... encoded in the
    <a class="ulink" href="https://en.wikipedia.org/wiki/S-record" target="_top">S-Record</a>
    format.</p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">C array</span></span>: ... defined as
    an array in the programming language C.</p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">View in Plain Text</span></span>:
    ... as in the data view with offset, byte values and characters. </p></li></ul></div></dd><dt><span class="term"><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">File</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guisubmenu">Permissions</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Set Read-only</span></span></span></dt><dd><p>When set, changes may not be made to the loaded
    byte array.</p></dd><dt><span class="term"><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">File</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Close All Other</span></span></span></dt><dd><p><span class="action">Close all besides the current byte array.</span></p></dd></dl></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="edit-menu"></a>Edit Menu</h3></div></div></div><div class="variablelist"><p>Simple copy and cut send data to the clipboard with the
mimetype <span class="quote">“<span class="quote">application/octetstream</span>”</span>, <span class="application">Klipper</span> is not able to display this data.
And almost all other applications cannot handle this, too, as this is
simply raw data. So also see for the <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guisubmenu">Copy as</span></span> submenu.</p><dl class="variablelist"><dt><span class="term"><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Edit</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guisubmenu">Copy as</span></span></span></dt><dd><p>Copy the selected bytes in one of different formats to the clipboard.
    For a list of available formats see the menu item <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">File</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guisubmenu">Export</span></span>
    </p></dd><dt><span class="term"><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Edit</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guisubmenu">Insert</span></span></span></dt><dd><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Insert Pattern...</span></span></span></dt><dd><p><span class="action">Insert a specified string of bytes at the cursor.</span></p><p>Options in the dialog box allow you to specify the number of insertion of the pattern
    and it's format (Hexadecimal, Decimal, Octal, Binary, Character(s) or UTF-8).</p></dd></dl></div></dd><dt><span class="term"><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Edit</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Deselect</span></span> (<span class="shortcut"><strong><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Shift</strong></span>+<span class="keycap"><strong>A</strong></span></strong></span>)</span></dt><dd><p><span class="action">Deselect the current selection.</span></p></dd><dt><span class="term"><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Edit</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Select Range...</span></span> (<span class="shortcut"><strong><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>E</strong></span></strong></span>)</span></dt><dd><p><span class="action">Opens an embedded dialog to enter the range to
    select.</span></p></dd><dt><span class="term"><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Edit</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Overwrite Mode</span></span> (<span class="shortcut"><strong><span class="keycap"><strong>Ins</strong></span></strong></span>)</span></dt><dd><p><span class="action">Switch between Insert mode and Overwrite mode</span>.
    </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>Overwrite mode is implemented to be very strict, it is not possible to
    change the size of the data (no appending or removing of bytes).</p></div></dd><dt><span class="term"><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Edit</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Find...</span></span> (<span class="shortcut"><strong><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>F</strong></span></strong></span>)</span></dt><dd><p><span class="action">Find a specified pattern in the document.</span>
    Hexadecimal, decimal, octal, binary or text patterns can be searched for.</p><p>Options in the dialog box allow you to specify the starting point,
    direction and range of the search.</p></dd><dt><span class="term"><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Edit</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Goto Offset...</span></span> (<span class="shortcut"><strong><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>G</strong></span></strong></span>)</span></dt><dd><p><span class="action">Move the cursor to a specified
    offset.</span></p></dd></dl></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="view-menu"></a>View Menu</h3></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">View</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Show Line Offset</span></span> (<span class="shortcut"><strong><span class="keycap"><strong>F11</strong></span></strong></span>)</span></dt><dd><p><span class="action">Toggle display of the line offset on a pane to the left
    on and off.</span></p></dd><dt><span class="term"><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">View</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guisubmenu">Show Values or Chars</span></span></span></dt><dd><p><span class="action">Select which of the byte interpretations are shown.</span>
    Possible are:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Values</span></span></p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Chars</span></span></p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Values and Chars</span></span></p></li></ul></div></dd><dt><span class="term"><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">View</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guisubmenu">Value Coding</span></span></span></dt><dd><p><span class="action">Select the coding of the values</span> from:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Hexadecimal</span></span></p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Decimal</span></span></p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Octal</span></span></p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Binary</span></span></p></li></ul></div></dd><dt><span class="term"><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">View</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guisubmenu">Char Coding</span></span></span></dt><dd><p><span class="action">Select the coding of the chars</span>
    from the submenu.
    </p></dd><dt><span class="term"><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">View</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Show Non-printing Chars</span></span></span></dt><dd><p><span class="action">Toggle display of non-printing chars on and
    off.</span> If the display is turned off, at the corresponding places in
    the character column a substitute char is shown instead.</p></dd><dt><span class="term"><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">View</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guisubmenu">Set Bytes per Line</span></span></span></dt><dd><p><span class="action">Select the displayed bytes per line</span>
    from the dialog, the default value is 16 bytes.
    </p></dd><dt><span class="term"><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">View</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guisubmenu">Set Bytes per Group</span></span></span></dt><dd><p><span class="action">By default the hexadecimal values are displayed in groups of 4 bytes.</span>
     Using this menu item you can adapt this to your preferences in a dialog.
    </p></dd><dt><span class="term"><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">View</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guisubmenu">Dynamic Layout</span></span></span></dt><dd><p><span class="action">Set the rules for the layout of the data display.</span>
    This defines how many bytes are displayed per line, depending on the width of the
    view. Possible rules are:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Off</span></span>: The layout is fixed to the
    current number of bytes per line and not adapted on the change of the view size.</p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Wrap only complete byte groups</span></span>: Puts as many bytes
    per line as possible, as long as groups of bytes are complete.
    </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">On</span></span>: Same as previous,
    but allows also incomplete groups of bytes.</p></li></ul></div></dd><dt><span class="term"><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">View</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guisubmenu">View Mode</span></span></span></dt><dd><p><span class="action">Select the layout for the view</span> from:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Columns</span></span>: The values and chars
    interpretations are shown in the classic layout with each listed in a
    separate column.</p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Rows</span></span>: The char
    interpretation of a byte is directly shown under the value interpretation.</p></li></ul></div></dd><dt><span class="term"><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">View</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Split Horizontal</span></span> (<span class="shortcut"><strong><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Shift</strong></span>+<span class="keycap"><strong>T</strong></span></strong></span>)</span></dt><dd><p><span class="action">Split the view area with the currently focused view
    into two parts and add a copy of the current view to the new, lower area.</span></p></dd><dt><span class="term"><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">View</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Split Vertically</span></span> (<span class="shortcut"><strong><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Shift</strong></span>+<span class="keycap"><strong>L</strong></span></strong></span>)</span></dt><dd><p><span class="action">Split the view area with the currently focused view
    into two parts and add a copy of the current view to the new, right area.</span></p></dd><dt><span class="term"><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">View</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Close View Area</span></span> (<span class="shortcut"><strong><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Shift</strong></span>+<span class="keycap"><strong>R</strong></span></strong></span>)</span></dt><dd><p><span class="action">Close the view area with the currently focused view.</span></p></dd><dt><span class="term"><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">View</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">View Profile</span></span></span></dt><dd><p>View settings can be separately stored as view profiles.
    The currently selected profile can be updated directly from the current view
    settings, or a new one can be created from them. All view profiles can be
    managed in a dialog available from <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Settings</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Manage View Profiles...</span></span>.</p></dd></dl></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="windows-menu"></a>Windows Menu</h3></div></div></div><p>Provides a list of the current views. Select the active window.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="bookmarks-menu"></a>Bookmarks Menu</h3></div></div></div><p>Multiple bookmarks can be set for a single byte array. Each byte array
    has its own set of bookmarks, and the appropriate set is displayed at the
    bottom of the <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Bookmarks</span></span> menu. Choose a bookmark
    from the menu to move the cursor and the view to it.
    </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>Bookmarks are currently only transient and not saved if you
    close a byte array or the whole program.</p></div><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Bookmarks</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Add Bookmark</span></span> (<span class="shortcut"><strong><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>B</strong></span></strong></span>)</span></dt><dd><p>Bookmark a location within the byte array.</p></dd><dt><span class="term"><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Bookmarks</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Remove Bookmark</span></span> (<span class="shortcut"><strong><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Shift</strong></span>+<span class="keycap"><strong>B</strong></span></strong></span>)</span></dt><dd><p><span class="action">Remove the current bookmark.</span> This command
    is only available if the cursor is at a bookmarked location.</p></dd><dt><span class="term"><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Bookmarks</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Remove All Bookmarks</span></span></span></dt><dd><p><span class="action">Clear the bookmark list.</span></p></dd><dt><span class="term"><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Bookmarks</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Goto Previous Bookmark</span></span> (<span class="shortcut"><strong><span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Up</strong></span></strong></span>)</span></dt><dd><p><span class="action">Move the cursor to the previous
    bookmark.</span></p></dd><dt><span class="term"><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Bookmarks</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Go to Next Bookmark</span></span> (<span class="shortcut"><strong><span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Down</strong></span></strong></span>)</span></dt><dd><p><span class="action">Move the cursor to the next
    bookmark.</span></p></dd></dl></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="tools-menu"></a>Tools Menu</h3></div></div></div><p>Provides a list of installed tools. Toggle the display of each tools
on or off. A detailed description of each tool you find in the <a class="link" href="tools.html" title="Chapter 3. Tools">Tools</a> section.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="settings-menu"></a>Settings Menu</h3></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Settings</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Manage View Profiles...</span></span></span></dt><dd><p>Open a dialog to create, edit, delete and set a default view profile.</p></dd></dl></div></div></div></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="tools-structures.html">Prev</a></td><td class="upCell"><a accesskey="h" href="index.html">Contents</a></td><td class="nextCell"><a accesskey="n" href="credits.html">Next</a></td></tr><tr><td class="prevCell">Structures Tool </td><td class="upCell"> </td><td class="nextCell"> Credits and License</td></tr></table></div><div id="footer_text">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</a></div></div></div></body></html></FILENAME><FILENAME filename="credits.html"><html><head><title>Chapter 5. Credits and License</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, Okteta, view, edit, bits, bytes, binary, octal, hexadecimal, hex editor, raw data"><link rel="home" href="index.html" title="The Okteta Handbook"><link rel="up" href="index.html" title="The Okteta Handbook"><link rel="prev" href="interface-overview.html" title="Chapter 4. Interface Overview"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Credits and License</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="interface-overview.html">Prev</a></td><td class="upCell"> </td><td class="nextCell"></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="credits"></a>Chapter 5. Credits and License</h1></div></div></div><p>
    <span class="application">Okteta</span>
    </p><p>Program Copyright 2006-2012 <span class="firstname">Friedrich</span> <span class="othername">W. H.</span> <span class="surname">Kossebau</span>
    <code class="email">(kossebau AT kde.org)</code></p><p>Documentation Copyright 2008,2010 <span class="firstname">Friedrich</span> <span class="othername">W. H.</span> <span class="surname">Kossebau</span>
    <code class="email">(kossebau AT kde.org)</code>, <span class="firstname">Alex</span> <span class="surname">Richardson</span> <code class="email">(arichardson.kde AT gmail.com)</code></p><p><a name="gnu-fdl"></a>This documentation is licensed under the terms of the <a class="ulink" href="help:/kdoctools5-common/fdl-license.html" target="_top">GNU Free Documentation
License</a>.</p><p>This program is licensed under the terms of the <a class="ulink" href="help:/kdoctools5-common/gpl-license.html" target="_top">GNU General Public License</a>.</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="interface-overview.html">Prev</a></td><td class="upCell"><a accesskey="h" href="index.html">Contents</a></td><td class="nextCell"></td></tr><tr><td class="prevCell">Interface Overview </td><td class="upCell"> </td><td class="nextCell"> </td></tr></table></div><div id="footer_text">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</a></div></div></div></body></html></FILENAME></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="introduction.html">Next</a></td></tr><tr><td class="prevCell"> </td><td class="upCell"> </td><td class="nextCell"> Introduction</td></tr></table></div><div id="footer_text">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</a></div></div></div></body></html></FILENAME>

Generated by dwww version 1.15 on Sat May 18 06:10:40 CEST 2024.