Home Page | About Us | Solutions | Technology| Careers | Support | News & Events | Downloads
    
       S2U Frequently Asked Questions

Below you can find answers to frequently asked questions regarding S2U. In case you require additional information please contact us at:

 http://www.peroon.co.il/support.html or support@peroon.co.il.


1. Non-default titles for Series 60 standard dialogs.

2. Embedding S2U SIS file.

3. Platforms supported by S2U and its add-ons.

4. UIQ DevKit with S2U.

5. Scroll bar visibility

6. Setting control window after constructing the control.

7. CEikEdwin::SetTextLimit() failure.

8. Smashed look of progress dialog.

9. Panic 54 in CListBoxView.

10. Tabs hide my controls.


1. Non-default titles for Series 60 standard dialogs.

Q: In Series 60 standard dialogs have no title bar and therefore no title. When ported with S2U to UIQ, they do have a title bar with a title assigned by S2U - "Note" for note dialogs, empty title for progress dialogs, etc. How can I set a non-default title to such a dialog?

A: It can be done in one of 2 ways:

   1) If a dialog is created from a resource, then simply specify field "title" in the dialog resource, e.g.:

       RESOURCE DIALOG r_my_wait_dialog

       {

              title = "My title";

              ...

       }

   2) To create a class derived from a standard dialog class and to set the dialog title in the class's overriden method SetSizeAndPosition() AFTER calling of the base class SetSizeAndPosition(), e.g.:

       class CMyDialog:

              public CAknProgressDialog

       {

       ...

              void CMyDialog::SetSizeAndPosition( const TSize& aSize)

              {

                     CAknProgressDialog::SetSizeAndPosition( aSize);

                     SetTitleL( _L("My title"));

              }

       ...

       };

Up

2. Embedding S2U SIS file.

Q: I don't want to force users of my application to install S2U Run-Time Environment before the application installation. Can I include the necessary S2U files in my application installation file (SIS)?

A: Please note that S2U Run-Time Environment can be downloaded directly from Peroon Web site at:

 http://www.peroon.co.il/Downloads/s2u_rte.sis

 So you can point your users to this link when suggesting them to install S2U before you application installation.

 In addition, as described in S2U User Manual:

 "An additional option is to “embed” S2U RTE into an application installation file by replacing the "requisite" line in the PKG file with:

 @"FULLY_QUALIFIED_FILE_SYSTEM_PATH\s2u_rte.sis",(0x1020317B)

 (It is required to specify the full path to s2u_rte.sis on your PC in the PKG file in case you choose this option).

 In this case, the standard Symbian utility makesis will incorporate the S2U RTE installation file into the application installation (SIS) file."

 It's worth to mention that in case you embed S2U SIS into your application installation, the size of the final SIS file will be about 200KB greater than the original SIS (without the embedding).

In addition, device installations for S2U add-ons can be downloaded directly as well:

http://www.peroon.co.il/Downloads/s2u_palb.sis - Photoalbum add-on
http://www.peroon.co.il/Downloads/s2u_pbk.sis - Phonebook add-on

 Up

 3. Platforms supported by S2U and its add-ons.

Q: Which platforms are supported by S2U? S2U Photoalbum add-on? S2U Phonebook add-on?

A: S2U Build-Time Environment (S2U BTE) supports UIQ 2.1 SDK, and all IDEs working with it (Metrowerks CodeWarrior, Borland C++ BuilderX, Microsoft Visual C++). In addition, S2U BTE was tested with UIQ 2.1 DevKit (release 015_7.0.16).

 S2U Run-Time Environment (S2U RTE) was tested on the following devices:

            - SonyEricsson P800

            - SonyEricsson P900

            - SonyEricsson P910

            - Motorola A920

            - Motorola A925

 BTE of S2U Photoalbum and Phonebook add-ons are included in the S2U BTE installation, thus supporting the same SDKs and IDEs.

 Photoalbum Run-Time supports all devices supported by S2U RTE.

 Phonebook Run-Time was tested on SonyEricsson P800/P900/P910 devices. It does NOT support Motorola A920/A925 devices due to incompatibility of phonebook engine on these phones.

 Up

 4. UIQ DevKit with S2U.

Q: S2U installation requires UIQ 2.1 SDK installed on PC. But I use UIQ 2.1 DevKit instead. How can I use S2U?

A: S2U supports UIQ 2.1 DevKit Release 015_7.0.16. Please download a special package for DevKit at:

  Download S2U package for users of UIQ 2.1 DevKit

 Please follow README.TXT file provided in the package to install S2U.

 Please note: the S2U package for DevKit consists of the same binaries as the standard S2U installation, but - as the structure of DevKit may vary - those binaries should be unpacked manually to the appropriated places (please follow instructions in README.TXT files from the package).

 Up

 5. Scroll bar visibility

Q: I created a scroll bar attached to my list/editor/etc. control. Nevertheless when I try to retrieve it with, e.g. control->ScrollBarFrame()->VerticalScrollBar(), it returns NULL that causes my application failure. Why?

A: The problem is that (unlike Series 60) in UIQ controls do not always return scroll bar when calling to CEikScrollBarFrame::VerticalScrollBar(), e.g. after:

        CEikScrollBar* scroll = control->ScrollBarFrame()->VerticalScrollBar();

 While in Series 60 if the list HAS vertical scroll bar then it will be returned, in UIQ if the list HAS vertical scroll bar AND the scroll bar IS currently displayed then it will be returned.

 The solution may be either to change the scroll bar visibility to CEikScrollBarFrame::EOn when creating the scroll bar (and to have it on screen even when it is not needed), or simply to check the value of "scroll" like:

        if( scroll)

              scroll->DrawDeferred();

 The latter solution is much better programming style as well.

 Up

 6. Setting control window after constructing the control.

Q: After porting with S2U to UIQ, my application consistently fails after creation of a control (e.g. CAknIntegerEdwin). Why?

A: A possible reason may be different requirements for controls on Series 60 and UIQ, namely assigning of window to a control. Some UIQ standard controls requires to have a window assigned (using SetContainerWindowL() method of CCoeControl class) BEFORE calling to their ConstructL() method. For example, this is true for CQikNumberEditor, which is wrapped by S2U implementation of CAknIntegerEdwin). Thus please ensure that you have:

        CAknIntegerEdwin editor = new (ELeave) CAknIntegerEdwin;

       editor->SetContainerWindowL( ...something...);

       editor->ConstructL( ...);

 and NOT:

        CAknIntegerEdwin editor = new (ELeave) CAknIntegerEdwin;

       editor->ConstructL( ...);

       editor->SetContainerWindowL( ...something...);

 Up

 7. CEikEdwin::SetTextLimit() failure.

Q: After porting with S2U to UIQ, my application sometimes fails when it calls CEikEdwin::SetTextLimit(). Why?

A: The problem is in Symbian 7.0s implementation of CEikEdwin::SetTextLimit(). The CEikEdwin::SetTextLimit() in DEBUG build only(!) tries to check that the new limit is enough for the text already existing in the editor, but if there is no text yet then this check fails. Please note: 1) the release build (including build for device) should work normally; 2) the text limit can be often set in call to ConstructL() of one of CEikEdwin derivative classes, thus the call to SetTextLimit() may be unnecessary.

 Nevertheless, in order to solve the problem an application has to assign a text to the control (e.g. using CEikEdwin::SetTextL()) BEFORE calling to its SetTextLimit() method.

 Up

 8. Smashed look of progress dialog.

Q: My application uses CAknProgressDialog, and after porting to UIQ with S2U the dialog works, but looks ugly (the progress bar is left aligned ad not centered, and the text is not see as it is under the progress bar). What I did wrong?

A: The reason is that you created your CAknProgressDialog from resource, but in the resource you mistakenly specified EWaitLayout instead of EProgressLayout. Those 2 layouts are the same on Series 60, but they naturally differ on UIQ.

 Up

 9. Panic 54 in CListBoxView.

Q: After porting with S2U to UIQ, a list in my application sometimes causes a failure with message about "EIKON-LISTBOX Panic 54". What I did wrong?

A: There is a substantial difference in the behavior of the basic Symbian CListBoxView class. More detailed: there is a method CListBoxView::VerticalMoveToItemL(), which is called by various functions of the class very often in order to set a new value of current item index and to redraw the list box. But: while on Series 60 if the old value of current item index (iCurrentItemIndex data field of CListBoxView class) is invalid (i.e. either <0 or >= than number of items in the list model), then it is simply ignored, on UIQ in case of invalid iCurrentItemIndex the panic 54 can be issued.

 The value of iCurrentItemIndex can become invalid in 2 cases (at least):

1) application has a class inherited from CListBoxView (or one of its derivatives) and (as iCurrentItemIndex is protected) changes it (e.g. setting it to -1 assuming that this will remove selection); or

2) application changes the content of the list model so that the model consists of number of items <= iCurrentItemIndex and does not updates/resets the correspondent CListBoxView.

 The solution is to review the source of the application and to synchronize the value of iCurrentItemIndex with the real number of items in the list model. It can be done by calling methods like CListBoxView::SetCurrentItemIndex(), CListBoxView::HandleItemAdditionL(), etc. in appropriate places of the application.

 Up

 10. Tabs hide my controls.

Q: My application created tabs (CAknTabGroup), and after porting with S2U to UIQ, the tabs reside over controls of my application partially hiding them. What can I do?

A: Usually the problem here is that the application took once its ClientRect and continues to use it. This coding is based on the assumption that the client rectangle will never change. This assumption is not true for any Symbian-based platform beside Series 60, as all of them can change the rectangle by either changing status pane size/position, or by creation/removing of menubars/toolbars/tabs/etc. (generally speaking, this is not true for Series 60 as well, as the size of Series 60 status pane can be changed by switching status pane layout).

 In this case the solution exists, and it is generic and usable for all Symbian-based UI platforms - the application should have implemented method HandleStatusPaneSizeChange() (either in its View or AppUi class), where the sizes/positions of the app's controls should be reconsidered based on the new ClientRect. If the function is written correctly is will be portable and helpful on all UI platforms. 

Up