<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="http://blogs.forum.nokia.com/styles/rss.css" type="text/css"?>
<rdf:RDF 
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
  xmlns="http://my.netscape.com/rdf/simple/0.9/"
>

 <channel>
  <title>Paul Todd&#039;s Forum Nokia Blog</title>
  <link>http://blogs.forum.nokia.com/blog/paul-todds-forum-nokia-blog</link>
  <description>&lt;p&gt;Hi, I&#039;m Paul, but you can also call me Todd and I won&#039;t get upset.&lt;/p&gt;
</description>
 </channel>
    <item>
   <title>Carbide 2.3 and QT tip</title>
   <description>&lt;p&gt;
I have recently started investigating using QT since its the new Nokia hot topic!
&lt;/p&gt;
&lt;p&gt;
After installing carbide.c++ 2.3 beta I imported a QT project I had written for the desktop and got this error when opening anything to do with QT 
&lt;/p&gt;
&lt;p&gt;
&amp;quot;org.eclipse.swt.SWTException: Class ID not found in registry&amp;quot;
&lt;/p&gt;
&lt;p&gt;
The trick to getting rid of this error message is to register the QT DLL&#039;s. Look in the folder &amp;quot;configuration\qt&amp;quot; under your carbide installation root folder and there you will find a bat file called &amp;quot;register_plugins.bat&amp;quot; which you will need to run.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
This registers all the COM objects eclipse needs and the integrated tools will now work...
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;</description>
   <link>http://blogs.forum.nokia.com/blog/paul-todds-forum-nokia-blog/2009/11/19/carbide-2.3-and-qt-tip</link>
      <pubDate>Thu, 19 Nov 2009 02:04:38 +0200</pubDate>   
  </item>
    <item>
   <title>Using CAknUnitEditor</title>
   <description>&lt;p&gt;
One of the more useful features of Avkon 3.2 and later (though like the coordinate editor, is very poorly documented) is the unit editor control, aka CAknUnitEditor. This control allows formats such as &amp;lt;number&amp;gt; &amp;lt;unit&amp;gt; to be easily entered and in conformance with the current locale.Below is an example of the editor in action. It is also very touch friendly 
&lt;/p&gt;
&lt;p&gt;
&lt;a id=&quot;res_2178&quot; href=&quot;http://blogs.forum.nokia.com//data/blogs/resources/1412/blog1.jpg&quot;&gt;&lt;img src=&quot;http://blogs.forum.nokia.com//data/blogs/resources/1412/previews-med/blog1.jpg&quot; border=&quot;0&quot; alt=&quot;Example showing the CAknUnitEditor&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
The control is composed of a resource structure &amp;quot;AVKON_UNIT_EDITOR&amp;quot; defined in eikon.rh and the C++ class is CAknUnitEditor which implementes the actual class that can be used in a form.&lt;br /&gt;
&lt;br /&gt;
The editor consists of a number, a fraction, a range and default value and a set of units from meter, kilometer, foot, mile, metric and imperial speed. In addition a custom unit may also be specified through the C++ class when it is constructed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Of course all this can be found in the supplied example in the UEEX sample or for it being used in the real world, look at the position accuracy and altitude fields when editing a location in the location database.&lt;br /&gt;
&lt;br /&gt;
&lt;/p&gt;</description>
   <link>http://blogs.forum.nokia.com/blog/paul-todds-forum-nokia-blog/2009/09/25/using-caknuniteditor</link>
      <pubDate>Fri, 25 Sep 2009 19:45:04 +0300</pubDate>   
  </item>
    <item>
   <title>Showing the virtual keypad automatically in Queries</title>
   <description>&lt;p&gt;
As can be seen when a touch device boots after a hard reset or for the first time and the prompt for date and time is done, the input panel is raised and the user does not need o go through touching the control input field to activate the virtual keyboard.
&lt;/p&gt;
&lt;p&gt;
This cuts out an additional keypress for the user and makes it clear that on a touch device the user should click the virtual buttons! 
&lt;/p&gt;
&lt;p&gt;
This same affect can be achieved in 5th edition devices by using he EEikDialogFlagVirtualInput in the flags field of a query resource (ie the DIALOG resource control definition)&lt;br /&gt;
&lt;br /&gt;
This format is particularly useful when a single field needs to be ntered in. 
&lt;/p&gt;
&lt;p&gt;
Below is the dialog resource which is compatible with both 3rd and 5th edition devices
&lt;/p&gt;
&lt;p&gt;
&lt;br /&gt;
RESOURCE DIALOG r_text_query&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; flags = EGeneralQueryFlags | 0x8000/*| EEikDialogFlagVirtualInput*/;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; buttons = R_AVKON_SOFTKEYS_OK_CANCEL;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; items =&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DLG_LINE&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; type = EAknCtQuery;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; id = EGeneralQuery;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; control = AVKON_DATA_QUERY&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layout = EDataLayout;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; control = EDWIN&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; flags = EEikEdwinResizable;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; width = 5;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; maxlength = 256;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max_view_height_in_lines = 5;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; base_line_delta = 21;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
The effect is illustrated below&lt;br /&gt;
On all devices without the EEikDialogFlagVirtualInput set
&lt;/p&gt;
&lt;p&gt;
&lt;a id=&quot;res_2159&quot; href=&quot;http://blogs.forum.nokia.com//data/blogs/resources/1412/Scr000002.jpg&quot;&gt;&lt;img src=&quot;http://blogs.forum.nokia.com//data/blogs/resources/1412/previews-med/Scr000002.jpg&quot; border=&quot;0&quot; alt=&quot;Normal Query on all devices&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
and after&lt;br /&gt;
&lt;a id=&quot;res_2160&quot; href=&quot;http://blogs.forum.nokia.com//data/blogs/resources/1412/Scr000001.jpg&quot;&gt;&lt;img src=&quot;http://blogs.forum.nokia.com//data/blogs/resources/1412/previews-med/Scr000001.jpg&quot; border=&quot;0&quot; alt=&quot;Virtual keypad query on touch devices&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;
For extra credit its possible to replace the EEikDialogFlagVirtualInput efine with its hex value (0x8000) and in so doing the same code base can be utilized in both the 3rd and 5th edition devices, just on touch enabled devices the keypad will show automatically.&lt;br /&gt;
&lt;/p&gt;</description>
   <link>http://blogs.forum.nokia.com/blog/paul-todds-forum-nokia-blog/2009/09/10/showing-the-virtual-keypad-automatically-in-queries</link>
      <pubDate>Thu, 10 Sep 2009 16:38:47 +0300</pubDate>   
  </item>
    <item>
   <title>OVI API beta site up</title>
   <description>&lt;p&gt;
The new OVI API&#039;s have been announced! 
&lt;/p&gt;
&lt;p&gt;
&lt;a href=&quot;http://www.forum.nokia.com/Ovi/&quot;&gt;http://www.forum.nokia.com/Ovi/&lt;/a&gt; !
&lt;/p&gt;
&lt;p&gt;
Currently only maps is avaliable. 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;</description>
   <link>http://blogs.forum.nokia.com/blog/paul-todds-forum-nokia-blog/2009/09/03/ovi-api-beta-site-up</link>
      <pubDate>Thu, 03 Sep 2009 11:26:08 +0300</pubDate>   
  </item>
    <item>
   <title>Why can I not use custom soft keys in global notes?</title>
   <description>&lt;p&gt;
This question often pops up on the boards and has to do with the way global notes are implemented.A global note is implemented as a notifier and as such the server for the notifier exists in a seperate process so resource files that are loaded in the client side of the notifier will not get transferred to the notifier server process and so only avkon resources (in avkon.rsc/avkon.rsg) are guaranteed to be supported in the server process* and hence the only CBA buttons that can be used are those in avkon.&lt;br /&gt;
&lt;br /&gt;
Of course it is entirely possible to add a new cba structure to the data that is marshalled between the client structure and the server but this is not currently implemented and probably will never be due to issues around localization and the fact the global notes should strongly be discouraged as they block&amp;nbsp; access to the device until the note is dismissed. 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
(*this is sort of correct, its implemented slightly differently underneath) 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;</description>
   <link>http://blogs.forum.nokia.com/blog/paul-todds-forum-nokia-blog/2009/08/10/why-can-i-not-use-custom-soft-keys-in-global-notes</link>
      <pubDate>Mon, 10 Aug 2009 12:37:23 +0300</pubDate>   
  </item>
    <item>
   <title>CAknLocationEditor</title>
   <description>&lt;p&gt;
From FP2 there is support for a native MFNE to allow the entry of coordinates. This editor is called the CAknLocationEditor control and can be found in AknLocationEd.h. Since coordinates are always represented as a latitude and longitude it makes sense to use this&amp;nbsp; control in a multiline edit control to enter both the latitude and longitude.
&lt;/p&gt;
&lt;p&gt;
&lt;img src=&quot;http://blogs.forum.nokia.com//data/blogs/resources/1412/editor.jpg&quot; border=&quot;0&quot; alt=&quot;CAknLocationEditor in action&quot; hspace=&quot;0&quot; vspace=&quot;0&quot; width=&quot;256&quot; height=&quot;256&quot; align=&quot;middle&quot; /&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;More details on this can be found on the wiki page I created and this includes example code showing how to use it. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href=&quot;http://wiki.forum.nokia.com/index.php/Editing_Coordinates&quot; title=&quot;Wiki page link&quot;&gt;Wiki page link&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;</description>
   <link>http://blogs.forum.nokia.com/blog/paul-todds-forum-nokia-blog/2009/08/09/caknlocationeditor</link>
      <pubDate>Sun, 09 Aug 2009 17:43:37 +0300</pubDate>   
  </item>
    <item>
   <title>Using TSecurityInfo</title>
   <description>&lt;p&gt;
Ok its been a long time since I blogged since I have been overworked getting a couple of apps ready for OVI. 
&lt;/p&gt;
&lt;p&gt;
However there is some info on a useful little but well hidden class:
&lt;/p&gt;
&lt;p&gt;
There are two basic ways of getting the process info at runtime, rather than compile time&lt;br /&gt;
&lt;br /&gt;
The main method is to use the less than well known &lt;a href=&quot;http://www.forum.nokia.com/infocenter/index.jsp?topic=/S60_5th_Edition_Cpp_Developers_Library/GUID-35228542-8C95-4849-A73F-2B4F082F0C44/sdk/doc_source/reference/reference-cpp/Kernel_Architecture_2/TSecurityInfoClass.html&quot;&gt;TSecurityInfo&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
This T class will get the capabilties, VID and SID of the current process, current message or current thread. bviously all these need to be within the scope of the current process rather than system wide if platsec is enabled.&lt;br /&gt;
&lt;br /&gt;
There are some useful methods as well:
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;strong&gt;TSecurityInfo::SetToCreatorInfo()&lt;/strong&gt; &lt;br /&gt;
	which will set all the data to the process that created this process.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;TSecurityInfo::SetToCurrentInfo() &lt;/strong&gt;&lt;br /&gt;
	which will set all the data to the this process&#039;s info.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
There are other ways to get the creator info by using the &amp;quot;Creator*&amp;quot; methods in the User library but doing it via TSecurityInfo is a lot simpler to understand.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
The process info can also be retrieved if the name, path and drive of the executable is known which is quite difficult without the &amp;quot;all files&amp;quot; capability.
&lt;/p&gt;
&lt;p&gt;
RLibrary::TInfo info;&lt;br /&gt;
TPckg&amp;lt;RLibrary::TInfo&amp;gt; pkg(info);&lt;br /&gt;
User::LeaveIfError(RLibrary::GetInfo(_L(&amp;quot;c:\\sys\\bin\\PhoNetInfo.exe&amp;quot;), pkg));&lt;br /&gt;
&lt;br /&gt;
The creator info is quite useful as it allows the application to stop being launched by &amp;quot;unapproved&amp;quot; applications since the SID of the creating process can be checked to see if is a known one that is allowed or to ensure a creating process has the correct capabilty(ies).&lt;br /&gt;
&lt;/p&gt;</description>
   <link>http://blogs.forum.nokia.com/blog/paul-todds-forum-nokia-blog/2009/07/29/using-tsecurityinfo</link>
      <pubDate>Wed, 29 Jul 2009 16:02:07 +0300</pubDate>   
  </item>
    <item>
   <title>Mercurial book preview</title>
   <description>&lt;p&gt;
Since the Symbian Foundation is committed to using Mercurial as its SCM (DVCS) I have been looking around for tools and training notes to get up to speed since my tools involve Subversion + Tortoise (personal) and Perforce (work). 
&lt;/p&gt;
&lt;p&gt;
The best reference I have found so far has been this
&lt;/p&gt;
&lt;p&gt;
 (&lt;a href=&quot;http://blog.medallia.com/2007/02/a_guided_tour_of_mercurial.html&quot;&gt;http://blog.medallia.com/2007/02/a_guided_tour_of_mercurial.html&lt;/a&gt;) 
&lt;/p&gt;
&lt;p&gt;
But today O&#039;Reilly announced they are also bringing out a new book for Mercurial and there are review drafts avaliable at this link
&lt;/p&gt;
&lt;p&gt;
 &lt;a href=&quot;http://hgbook.red-bean.com/ &quot;&gt;http://hgbook.red-bean.com/&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;</description>
   <link>http://blogs.forum.nokia.com/blog/paul-todds-forum-nokia-blog/2009/04/18/mercurial-book-preview</link>
      <pubDate>Sat, 18 Apr 2009 11:26:08 +0300</pubDate>   
  </item>
    <item>
   <title>S60 running on the Intel Atom</title>
   <description>&lt;p&gt;
The guys over at the Symbian blog are showing off S60 running on an Intel Atom moetherboard, showing its possible to integrate S60 onto other chips aside from ARM.
&lt;/p&gt;
&lt;p&gt;
http://blog.symbian.org/2009/04/16/symbian-on-intels-atom/
&lt;/p&gt;
&lt;p&gt;
Roll on the foundation when we can do this ourselves! 
&lt;/p&gt;</description>
   <link>http://blogs.forum.nokia.com/blog/paul-todds-forum-nokia-blog/2009/04/16/s60-running-on-the-intel-atom</link>
      <pubDate>Thu, 16 Apr 2009 18:51:06 +0300</pubDate>   
  </item>
    <item>
   <title>Google web search traffic</title>
   <description>&lt;p&gt;
Enough toaster jokes already, its April the second..... 
&lt;/p&gt;
&lt;p&gt;
Techchrunch have posted an interesting analysis of traffic coming to websearch.
&lt;/p&gt;
&lt;p&gt;
&lt;a href=&quot;http://www.techcrunchit.com/2009/03/29/follow-the-mobile-user/&quot;&gt;http://www.techcrunchit.com/2009/03/29/follow-the-mobile-user/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Ok, so there are some questions around the Andoid vs S60 search views but it definately looks like S60 needs &amp;quot;comes with data plan&amp;quot; to make any kind of headway.
&lt;/p&gt;
&lt;p&gt;
Still it does look like S60 is still pulling down quite a lot of traffic against some of its competitors 
&lt;/p&gt;</description>
   <link>http://blogs.forum.nokia.com/blog/paul-todds-forum-nokia-blog/2009/04/02/google-web-search-traffic</link>
      <pubDate>Thu, 02 Apr 2009 15:55:04 +0300</pubDate>   
  </item>
  </rdf:RDF>

