(Difference between revisions)

Archived:Hello World in WidSets

From Nokia Developer Wiki
Jump to: navigation, search
tanjaluodes (Talk | contribs)
hamishwillee (Talk | contribs)
m (Hamishwillee - Bot addition of Template:ArticleMetaData)
Line 1: Line 1:
{{Archived}}[[Category:WidSets]][[Category:Code Examples]]
|sourcecode= <!-- Link to example source code e.g. [[Media:The Code Example ZIP.zip]] -->
|installfile= <!-- Link to installation file (e.g. [[Media:The Installation File.sis]]) -->
|devices= <!-- Devices tested against - e.g. ''devices=Nokia 6131 NFC, Nokia C7-00'') -->
|sdk= <!-- SDK(s) built and tested against (e.g. [http://linktosdkdownload/ Nokia Qt SDK 1.1]) -->
|platform= <!-- Compatible platforms - e.g. Symbian^1 and later, Qt 4.6 and later -->
|devicecompatability= <!-- Compatible devices e.g.: All* (must have internal GPS) -->
|dependencies= <!-- Any other/external dependencies e.g.: Google Maps Api v1.0 -->
|signing=<!-- Signing requirements - empty or one of: Self-Signed, DevCert, Manufacturer -->
|capabilities=<!-- Capabilities required by the article/code example (e.g. Location, NetworkServices. -->
|keywords= <!-- APIs, classes and methods (e.g. QSystemScreenSaver, QList, CBase -->
|id= <!-- Article Id (Knowledge base articles only) -->
|language=<!-- Language category code for non-English topics - e.g. Lang-Chinese -->
|review-by=<!-- After re-review: [[User:username]] -->
|review-timestamp=<!-- After re-review: YYYYMMDD -->
|update-by=<!-- After significant update: [[User:username]]-->
|update-timestamp=<!-- After significant update: YYYYMMDD -->
}}{{Archived}}[[Category:WidSets]][[Category:Code Examples]]
== About this widget ==
== About this widget ==

Revision as of 08:22, 21 October 2011

Article Metadata
Created: User:Mirsilla (29 May 2008)
Last edited: hamishwillee (21 Oct 2011)

Archived.pngArchived: This article is archived because it is not considered relevant for third-party developers creating commercial solutions today. If you think this article is still relevant, let us know by adding the template {{ReviewForRemovalFromArchive|user=~~~~|write your reason here}}.

The article is believed to be still valid for the original topic scope.



About this widget

This is a basic Hello World demo widget.

WidSets Scripting Language code: hello_world.he

class hello_world
  //It is recommended to store command ids to static constants
  const int CMD_BACK = 1;
  //MenuItems are displayed over phone's softkeys
  //Usually to go back, ok, open options menu etc
  MenuItem BACK = new MenuItem(CMD_BACK, "Back");

  //WidSets framework calls createElement() per
  //each script-element it finds from views being
  //created by createView()
  Component createElement(String viewName,
                         String elementName,
                         Style style,
                         Object context)
    //return simple label with style defined in widget.xml,
    //in this case "text"
    if (elementName.equals("hello")) {
      //to get the label aligned in the middle of the
      //view you need to contain it inside a Flow which
      //you then return here
      return new Label(style, "Hello World");
    return null;

  void startWidget()
    //instantiate minimized view in startup
    setMinimizedView(createView("viewMini", getStyle("bg")));

  Shell openWidget()
    //instantiate maximized view when user opens this widget
    Flow view = createView("viewMaxi", getStyle("bg"));
    return new Shell(view);

  MenuItem getSoftKey(Shell shell, Component focused, int key)
    //return the key to be displayed at position=SOFTKEY_BACK
    //this is usually the right softkey, for other key
    //positions return null

    if (key == SOFTKEY_BACK) {
      return BACK;
    return null;
  void actionPerformed(Shell shell, Component source, int action)
    //when CMD_BACK event comes in, pop the current shell (this widget)
    if (action == CMD_BACK) {


<?xml version="1.0" encoding="utf-8"?>
<widget spec_version="2.0">

    <shortdescription>Very simple widget</shortdescription>
    <longdescription>Simplest possible widget saying hello to the world.</longdescription>
    <tags>test example hello world</tags>
    <parameter type="string" name="widgetname">Hello World</parameter>
    <code src="hello_world.he"/>
      bg {
        color-1: white;
        background: solid black;
        align: hcenter vcenter;
        border: 1 1 1 1;
        border-type: rectangle white;

      text {
        color-1: white;
        padding: 2 2 2 2;
  <layout minimizedheight="65sp">
    <view id="viewMini" class="bg">
      <label class="text">${widgetname}</label>
    <view id="viewMaxi" class="bg">
      <script id="hello" class="text"/>
      <weblabel class="top: 0px; left: 10px;" style="color: black;">${widgetname}</weblabel>


See also

62 page views in the last 30 days.