<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
  <!-- Define an entity for your application if it is not part of KDE
       CVS -->
  <!ENTITY kmobiletools "<application>KMobileTools</application>">
  <!ENTITY kappname "&kmobiletools;">
  <!ENTITY package "kde-module">
  <!ENTITY % addindex "IGNORE">
  <!ENTITY % English "INCLUDE">
]>
<book lang="&language;">

<bookinfo>
<title>The &kmobiletools; Handbook</title>

<authorgroup>
<author>
<personname>
<firstname>Marco</firstname>
<surname>Gulino</surname>
</personname>
<email>marco@kmobiletools.org</email>
</author>
</authorgroup>

<copyright>
<year>2007</year>
<holder>Marco Gulino</holder>
</copyright>

<legalnotice>&FDLNotice;</legalnotice>


<date>2007-04-29</date>
<releaseinfo>1.01.00</releaseinfo>

<abstract>
<para>
&kmobiletools; is an application specially designed to manage mobile phones.
</para>
</abstract>


<keywordset>
<keyword>KDE</keyword>
<keyword>pim</keyword>
<keyword>kdepim</keyword>
<keyword>mobile</keyword>
<keyword>phone</keyword>
</keywordset>

</bookinfo>

<chapter id="introduction">
<title>Introduction</title>

<para>
&kmobiletools; is a program that lets you manage mobile phones.</para>
<para>It handles full SMS control, dialing calls, phonebook, and phone status monitoring. It's also integrated with the &kde; environment, so it can be embedd in &kontact;, or import/export from and to &kaddressbook;.</para>
<para>&kmobiletools; is completely modular: the main program can load so called "Engines" which can support different range of devices. Each engine also has a set of wizard pages, so that the user is guided in adding new devices.</para>
<itemizedlist>
<listitem>
<para><acronym>AT Engine</acronym> has been tested on Motorola, Nokia, Siemens, Sony Ericsson and LG mobile phones. Anyway each AT Command compliant device should be well supported. It allows the user to upload and download the phonebook, view SMS stored on the phone, and write new ones. It also can dial numbers and display phone parameters.</para></listitem>

<listitem>
<para><acronym>Gammu Engine</acronym> uses <ulink url="http://www.gammu.org">Gammu</ulink> as backend to connect to the mobile phone, and so the list of supported phones can be found in the project homepage (<ulink url="http://www.gammu.org/wiki/index.php?title=Phones:Support" /> or <ulink url="http://cihar.com/gammu/phonedb/" />). It has almost the same features than the AT Engine, and even something more, but it is younger and less tested. It also supports a smaller list of mobile phones.</para>
</listitem>
</itemizedlist>
<para>&kmobiletools; homepage can be found on <ulink url="http://www.kmobiletools.org" />. There you will find user documentation, a support forum and contact informations.</para>
</chapter>

<chapter id="get-started">
<title>Getting Started</title>
<para>
This chapter is just a short introduction to &kmobiletools; as well as its usage so
you can start using it right away. More information on using &kmobiletools; can be
found in the <link linkend="using-kmobiletools">Using &kmobiletools;</link> section.
</para>

<para>
When starting &kmobiletools; for the first time, you will see the welcome homepage.</para>
<screenshot><screeninfo>Here's a screenshot of &kmobiletools; main window</screeninfo>
  <mediaobject><imageobject>
      <imagedata fileref="mainwin.png" format="PNG"/>
    </imageobject></mediaobject></screenshot>
<note>
<title>Wizard</title>
<para>Clicking on the <guilabel>Add new mobile phone device</guilabel> link will launch a wizard that will help you in configuring &kmobiletools; to use your mobile phone.
</para>
<screenshot><screeninfo>Here's a screenshot of &kmobiletools; new device wizard</screeninfo>
<mediaobject><imageobject>
      <imagedata fileref="wizard.png" format="PNG"/>
    </imageobject></mediaobject></screenshot>
<para>The <guilabel>Mobile Phone Name</guilabel> entry will allow you to choose a friendly name to be displayed in &kmobiletools; for your phone. The field below instead is used to choose the engine that will manage your mobile phone. The next wizard pages will be different for each engine.</para></note>
</chapter>
<chapter id="using-kmobiletools">
<title>Using &kmobiletools;</title>
<para>This Chapter will show you &kmobiletools; usage in the most common tasks.</para>
<!-- This chapter should tell the user how to use your app. You should use as
many sections (Chapter, Sect1, Sect3, etc...) as is necessary to fully document
your application. -->

<sect1 id="kmt-mainpage">
<title>&kmobiletools; Main Window</title>
<para>The main windows will show you a list of configured phones. It will display also their current status:</para>
<itemizedlist>
<listitem><para>Not Loaded: the engine relative to this mobile phone is not loaded.</para></listitem>
<listitem><para>Not Connected: the engine is loaded, but the phone is not found.</para></listitem>
<listitem><para>Connected: the engine is loaded, and the phone was found as manageable.</para></listitem>
</itemizedlist>
<screenshot><screeninfo>Here's a screenshot of &kmobiletools; main window</screeninfo>
<mediaobject><imageobject>
      <imagedata fileref="mainpage_p.png" format="PNG"/>
    </imageobject></mediaobject></screenshot>
</sect1>

<sect1 id="kmt-devicehome">
<title>Mobile Phone HomePage</title>
<para>The Mobile Phone Homepage will show you some useful informations about your mobile phone, like the number of messages, contacts, and a brief summary of the calendar. In the status bar you will also see your network operator (when supported), and the level of battery and network signal, plus a visual representation of currently executing tasks.</para>
<para>Clicking on the <guilabel>Phone details</guilabel> link will also show you more advanced informations, like phone manufacturer and model and the IMEI code, </para>
<screenshot><screeninfo>Here's a screenshot of &kmobiletools; device homepage</screeninfo>
<mediaobject><imageobject>
      <imagedata fileref="phonepage.png" format="PNG"/>
    </imageobject></mediaobject></screenshot>
</sect1>

<sect1 id="kmt-phonebook">
<title>Phonebook Management</title>
<para>&kmobiletools; Phonebook Management page contains a list of entries and a html-like page showing details. While the <guilabel>Phone Contacts</guilabel> tab will show you contacts from the current mobile phone, the <guilabel>Other Contacts</guilabel> tab contains items from other devices, and &kaddressbook;.</para>
<para>Clicking an entry will automatically update the details page. In the details page, at the bottom row there will be a list of tasks to handle contacts, creating new items, removing and modifying current ones. You can also right click a contact in the list, and selecting multiple items will work too, when appropriate.</para>
<screenshot><screeninfo>Here's a screenshot of &kmobiletools; phonebook management page</screeninfo>

<mediaobject><imageobject>
      <imagedata fileref="phonebookpage_0.png" format="PNG"/>
    </imageobject></mediaobject></screenshot>
<para>Adding new contacts is easy! You just need to click the <guilabel>Add new</guilabel> link, then choose the name to assign to this contact in the new dialog window appearing. Remember also to add phone numbers entering it in the <guilabel>Phone numbers</guilabel> text box and clicking the <guilabel>Add</guilabel> button after having selected the proper number type in the combo box above that button. You can also choose where you want to save the new contact.</para>
<screenshot><screeninfo>Here's a screenshot of &kmobiletools; phonebook management page</screeninfo>
<mediaobject><imageobject>
      <imagedata fileref="phonebookpage_1.png" format="PNG"/>
    </imageobject></mediaobject></screenshot>

</sect1>

<sect1 id="kmt-smslist">
<title>Short Text Messages Management</title>
<para>The SMS Page is similar to a mail application like &kmail; The left list shows the count of messages and their position, while the right one shows the sender number (or the name, if it is found in the phonebook), the date of the message and the subject. Finally, the page at down will show the message text, plus some actions allowing you to remove messages, or write a new one.</para>
<screenshot><screeninfo>Here's a screenshot of &kmobiletools; sms list page</screeninfo>
<mediaobject><imageobject>
      <imagedata fileref="smspage_0.png" format="PNG"/>
    </imageobject></mediaobject></screenshot>

<para>Clicking the <guilabel>Write New</guilabel> link will pop up a simple dialog window that will guide you in writing a new SMS Message. Just remember to add a recipient first, by both writing the number in the text box or picking it from the phonebook clicking the <guilabel>Browse</guilabel> button, and then the <guilabel>Add</guilabel> button. You will now need to write the message itself in the box below, and then clicking one of the <guilabel>Send</guilabel> or <guilabel>Store</guilabel> buttons.</para>
<screenshot><screeninfo>Here's a screenshot of &kmobiletools; sms list page</screeninfo>
<mediaobject><imageobject>
      <imagedata fileref="smspage_1.png" format="PNG"/>
    </imageobject></mediaobject></screenshot>
</sect1>

</chapter>

<chapter id="commands">
<title>Command Reference</title>

<!-- (OPTIONAL, BUT RECOMMENDED) This chapter should list all of the
application windows and their menubar and toolbar commands for easy reference.
Also include any keys that have a special function but have no equivalent in the
menus or toolbars. This may not be necessary for small apps or apps with no tool
or menu bars. -->

<sect1 id="kapp-mainwindow">
<title>The main &kmobiletools; window</title>

<sect2>
<title>The File Menu</title>
<para>
<variablelist>
<varlistentry>
<term><menuchoice>
<shortcut>
<keycombo action="simul">&Ctrl;<keycap>N</keycap></keycombo>
</shortcut>
<guimenu>File</guimenu>
<guimenuitem>New</guimenuitem>
</menuchoice></term>
<listitem><para><action>Creates a new document</action></para></listitem>
</varlistentry>
<varlistentry>
<term><menuchoice>
<shortcut>
<keycombo action="simul">&Ctrl;<keycap>S</keycap></keycombo>
</shortcut>
<guimenu>File</guimenu>
<guimenuitem>Save</guimenuitem>
</menuchoice></term>
<listitem><para><action>Saves the document</action></para></listitem>
</varlistentry>
<varlistentry>
<term><menuchoice>
<shortcut>
<keycombo action="simul">&Ctrl;<keycap>Q</keycap></keycombo>
</shortcut>
<guimenu>File</guimenu>
<guimenuitem>Quit</guimenuitem>
</menuchoice></term>
<listitem><para><action>Quits</action> &kmobiletools;</para></listitem>
</varlistentry>
</variablelist>
</para>

</sect2>

<sect2>
<title>The <guimenu>Help</guimenu> Menu</title>

<!-- Assuming you have a standard help menu (help, what's this, about -->
<!-- &kmobiletools;, about KDE) then the documentation is already written. -->
<!-- The following entity is valid anywhere that a variablelist is -->
<!-- valid.  -->

&help.menu.documentation;

</sect2>

</sect1>
</chapter>

<chapter id="developers">
<title>Developer's Guide to &kmobiletools;</title>

<!-- (OPTIONAL) A Programming/Scripting reference chapter should be
used for apps that use plugins or that provide their own scripting hooks
and/or development libraries. -->

<para>
Programming &kmobiletools; plugins is a joy to behold. Just read through the next
66 pages of API's to learn how!
</para>

<!-- Use refentries to describe APIs.  Refentries are fairly complicated and you
should consult the docbook reference for further details. The example below was
taken from that reference and shortened a bit for readability. -->

<refentry id="re-1007-unmanagechildren-1">
<refmeta>
<refentrytitle>XtUnmanageChildren</refentrytitle>
<refmiscinfo>Xt - Geometry Management</refmiscinfo>
</refmeta>
<refnamediv>
<refname>XtUnmanageChildren
</refname>
<refpurpose>remove a list of children from a parent widget's managed
list.
<indexterm id="ix-1007-unmanagechildren-1"><primary>widgets</primary><secondary>removing</secondary></indexterm>
<indexterm id="ix-1007-unmanagechildren-2"><primary>XtUnmanageChildren</primary></indexterm>
</refpurpose>

</refnamediv>
<refsynopsisdiv>
<refsynopsisdivinfo>
<date>4 March 1996</date>
</refsynopsisdivinfo>
<synopsis>
void XtUnmanageChildren(<replaceable class="parameter">children</replaceable>, <replaceable class="parameter">num_children</replaceable>)
    WidgetList <replaceable class="parameter">children</replaceable>;
    Cardinal <replaceable class="parameter">num_children</replaceable>;
</synopsis>

<refsect2 id="r2-1007-unmanagechildren-1">
<title>Inputs</title>
<variablelist>
<varlistentry>
<term><replaceable class="parameter">children</replaceable>
</term>
<listitem>
<para>Specifies an array of child widgets. Each child must be of
class RectObj or any subclass thereof.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><replaceable class="parameter">num_children</replaceable>
</term>
<listitem>
<para>Specifies the number of elements in <replaceable class="parameter">children</replaceable>.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect2></refsynopsisdiv>

<refsect1 id="r1-1007-unmanagechildren-1">
<title>Description
</title>
<para><function>XtUnmanageChildren()</function> unmaps the specified widgets
and removes them from their parent's geometry management.
The widgets will disappear from the screen, and (depending
on its parent) may no longer have screen space allocated for
them.
</para>
<para>Each of the widgets in the <replaceable class="parameter">children</replaceable> array must have
the same parent.
</para>
<para>See the &ldquo;Algorithm&rdquo; section below for full details of the
widget unmanagement procedure.
</para>
</refsect1>

<refsect1 id="r1-1007-unmanagechildren-2">
<title>Usage</title>
<para>Unmanaging widgets is the usual method for temporarily
making them invisible.  They can be re-managed with
<function>XtManageChildren()</function>.
</para>
<para>You can unmap a widget, but leave it under geometry
management by calling <function>XtUnmapWidget()</function>.  You can
destroy a widget's window without destroying the widget by
calling <function>XtUnrealizeWidget()</function>.  You can destroy a
widget completely with <function>XtDestroyWidget()</function>.
</para>
<para>If you are only going to unmanage a single widget, it is
more convenient to call <function>XtUnmanageChild()</function>.  It is
often more convenient to call <function>XtUnmanageChild()</function>
several times than it is to declare and initialize an array
of widgets to pass to <function>XtUnmanageChildren()</function>.  Calling
<function>XtUnmanageChildren()</function> is more efficient, however,
because it only calls the parent's <function>change_managed()</function>
method once.
</para>
</refsect1>

<refsect1 id="r1-1007-unmanagechildren-3">
<title>Algorithm
</title>
<para><function>XtUnmanageChildren()</function> performs the following:
</para>
<variablelist>
<varlistentry>
<term>-
</term>
<listitem>
<para>Ignores the child if it already is unmanaged or is being
destroyed.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-
</term>
<listitem>
<para>Otherwise, if the child is realized, it makes it nonvisible
by unmapping it.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
</para>
</refsect1>

<refsect1 id="r1-1007-unmanagechildren-4">
<title>Structures</title>
<para>The <type>WidgetList</type> type is simply an array of widgets:
</para>
<screen id="sc-1007-unmanagechildren-1">typedef Widget *WidgetList;
</screen>
</refsect1>
</refentry>

</chapter>

<chapter id="faq">
<title>Questions and Answers</title>

<!-- (OPTIONAL but recommended) This chapter should include all of the silly
(and not-so-silly) newbie questions that fill up your mailbox. This chapter
should be reserved for BRIEF questions and answers! If one question uses more
than a page or so then it should probably be part of the
"Using this Application" chapter instead. You should use links to
cross-reference questions to the parts of your documentation that answer them.
This is also a great place to provide pointers to other FAQ's if your users
must do some complicated configuration on other programs in order for your
application work. -->

&reporting.bugs;
&updating.documentation;

<qandaset id="faqlist">
<qandaentry>
<question>
<para>My Mouse doesn't work. How do I quit &kmobiletools;?</para>
</question>
<answer>
<para>You silly goose! Check out the <link linkend="commands">Commands
Section</link> for the answer.</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>Why can't I twiddle my documents?</para>
</question>
<answer>
<para>You can only twiddle your documents if you have the foobar.lib
installed.</para>
</answer>
</qandaentry>
</qandaset>
</chapter>

<chapter id="credits">

<!-- Include credits for the programmers, documentation writers, and
contributors here. The license for your software should then be included below
the credits with a reference to the appropriate license file included in the KDE
distribution. -->

<title>Credits and License</title>

<para>
&kmobiletools;
</para>
<para>
Program copyright 2007 Marco Gulino <email>marco@kmobiletools.org</email>
</para>
<para>
Contributors:
<!--<itemizedlist> @TODO add contributors from KAboutData in the app
<listitem><para>Konqui the KDE Dragon <email>konqui@kde.org</email></para>
</listitem>
<listitem><para>Tux the Linux Penguin <email>tux@linux.org</email></para>
</listitem>
</itemizedlist>-->
</para>

<para>
Documentation Copyright &copy; 1999 George N. Ugnacious <email>gnu@kde.org</email>
</para>

<!-- TRANS:CREDIT_FOR_TRANSLATORS -->

&underFDL;               <!-- FDL: do not remove -->

<!-- Determine which license your application is licensed under,
     and delete all the remaining licenses below:

     (NOTE:  All documentation are licensed under the FDL,
     regardless of what license the application uses) -->

&underGPL;        	 <!-- GPL License -->
<!--&underBSDLicense;-->        <!-- BSD License -->
<!--&underArtisticLicense;-->   <!-- BSD Artistic License -->
<!--&underX11License;-->        <!-- X11 License  -->

</chapter>

<appendix id="installation">
<title>Installation</title>

<sect1 id="getting-kapp">
<title>How to obtain &kmobiletools;</title>

<!-- This first entity contains boiler plate for applications that are
part of KDE CVS.  You should remove it if you are releasing your
application -->

&install.intro.documentation;

</sect1>

<sect1 id="requirements">
<title>Requirements</title>

<!--
List any special requirements for your application here. This should include:
.Libraries or other software that is not included in kdesupport,
kdelibs, or kdebase.
.Hardware requirements like amount of RAM, disk space, graphics card
capabilities, screen resolution, special expansion cards, etc.
.Operating systems the app will run on. If your app is designed only for a
specific OS, (you wrote a graphical LILO configurator for example) put this
information here.
-->

<para>
<!-- taken from the phone wizard, TODO have to make this look better, more arch-generic and with more informations. -->
To use &kmobiletools; you need to properly configure your distribution, try reading documentation in your distribution first.
&kmobiletools; needs that you already have the devices created in /dev (manually or with udev),
and that you have read/write permissions.
You should also ensure that your mobile phone is properly configured.
<!--
In order to successfully use &kmobiletools;, you need &kde; 1.1. Foobar.lib is
required in order to support the advanced &kmobiletools; features. &kmobiletools; uses
about 5 megs of memory to run, but this may vary depending on your
platform and configuration.-->
</para>

<para><!--
All required libraries as well as &kmobiletools; itself can be found
on <ulink url="ftp://ftp.kapp.org">The &kmobiletools; home page</ulink>.
--></para>

<!-- For a list of updates, you may refer to the application web site
or the ChangeLog file, or ... -->
<para>
You can find a list of changes at <ulink
url="http://www.kmobiletools.org">http://www.kmobiletools.org</ulink>.
</para>
</sect1>

<sect1 id="compilation">
<title>Compilation and Installation</title>

<!-- This entity contains the boilerplate text for standard -->
<!-- compilation instructions.  If your application requires any -->
<!-- special handling, remove it, and replace with your own text. -->

&install.compile.documentation;

</sect1>

<sect1 id="configuration">
<title>Configuration</title>

<para>Don't forget to tell your system to start the <filename>dtd</filename>
dicer-toaster daemon first, or &kmobiletools; won't work !</para>

</sect1>

</appendix>

&documentation.index;
</book>

<!--
Local Variables:
mode: xml
sgml-minimize-attributes:nil
sgml-general-insert-case:lower
sgml-indent-step:0
sgml-indent-data:nil
End:

vim:tabstop=2:shiftwidth=2:expandtab
kate: space-indent on; indent-width 2; tab-width 2; indent-mode none;
-->
