Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Symbian Os User Interfaces

1,401 views

Published on

Published in: Technology

Symbian Os User Interfaces

  1. 1. Réalisée par : Fatma Ghachem<br />Année Universitaire : 2009/2010<br />
  2. 2. Plan<br />Introduction<br />Le UI Framework de Symbian Os<br />Présentation des UIs de Symbian<br />Comparaison entre les UIs<br />Fichiers et dépendances<br />Les ressources AVKON UI<br />Conclusion<br />1/43<br />
  3. 3. Plan<br />Introduction<br />Le UI Framework de Symbian Os<br />Présentation des UIs de Symbian<br />Comparaison entre les UIs<br />Fichiers et dépendances<br />Les ressources AVKON UI<br />Conclusion<br />2/43<br />
  4. 4. Introduction<br /> Interface utilisateur facteur de différenciation<br /> La différentiationclépour survivre et réussirdans le marché, <br />Fournirune interface utilisateur unique et compétitive, répondantaux besoins des utilisateurs. <br />3/43<br />
  5. 5. Plan<br />Introduction<br />Le UI Framework de Symbian Os<br />Présentation des UIs de Symbian<br />Comparaison entre les UIs<br />Fichiers et dépendances<br />Les ressources AVKON UI<br />Conclusion<br />4/43<br />
  6. 6. Symbian UI Framework(1/2)<br />Architecture de Symbian OS<br />5/43<br />
  7. 7. Symbian UI Framework(2/2)<br />Qikon et Avkonimplémententles classes définiesdans le framework Uikon.<br />Application baséessur S60 et UIQ définissentleurs classes depuis les UI spécifiques :<br />UIQ remplace le prefix CEikpar CQik<br /> S60 utiliseCAkn.<br />6/43<br />
  8. 8. Plan<br />Introduction<br />Le UI Framework de Symbian Os<br />Présentation des UIs de Symbian<br />Comparaison entre les UIs<br />Fichiers et dépendances<br />Les ressources AVKON UI<br />Conclusion<br />7/43<br />
  9. 9. La philosophie Symbian UI<br />Moinsde fenêtrespour réaliserunetâche. <br />Fonctionnalitésavancéesdevraientêtrecacher(utilisateurnovice)<br />UI vise troisprincipauxcritères:<br />Simplicitéfacilitéd’utilisation<br />ErgonomieIl fautquel’utilisateur se familiarise avec l’interface. <br />Efficacitél’utilisation du téléphonedoitêtreefficace ; un utilisateurdoit se sentirmettre de la situation. <br />8/43<br />
  10. 10. S60 (précédemment: Series 60)<br />Propriétaire : Nokia<br />License donnée à : Samsung, LG, Panasonic, Lenovo<br />Conçue pour :<br />Utilisation « One-handed »<br />Support de l’écran tactile à partir de la dernière version 5.0 <br />5-directions de navigation (4 directions + centre), clavier numérique<br />Avantage : le multi-tachesest optimal dansS60<br />Inconvénient: limitation concernant la résolution de l’écranet le clavier.<br />Panasonic <br /> X800<br /> Nokia <br /> N93i<br /> Nokia <br /> N95<br /> LG <br />KS10 JoY<br /> Samsung <br />SGH - D720<br />9/43<br />
  11. 11. ou<br />Series 80<br />Propriétaire: Nokia<br />Conçue pour : <br />Intéractionà travers un clavier alphanumérique,<br />4 boutons de navigations à droiteet la joystick<br />Nokia 9500 qui tourne avec EPOC v6 est similaire à un Psion Series 5mx saufquece dernier n’a pas d’écrantactile = Series 80<br />Nokia 9500<br />10/43<br />
  12. 12. Series 90<br />Propriétaire: Nokia<br />Etatactuel : n’est plus en cours de développement<br />Caractèristiques :<br />Support de l’écran tactile <br />Résolution de l’écran est plus large que les Series 80<br />Saisie avec le clavier virtuelou le clavier Bluetooth.<br />Nokia 7710<br />11/43<br />
  13. 13. UIQ (User Interface Quartz)<br />Propriétaire: Sony Ericsson et Motorola<br />Les appareilsintégrant UIQ et montrantsavraivaleursont Sony Ericsson P800 et P900/P910i. <br />Licence donnée à : Sony Ericsson, Motorola, BenQ, Arima<br />Motorola <br /> M1000<br />Arima<br />U300<br /> MotorolaMOTORIZR Z8<br />BenQP30<br />SE P990<br />12/43<br />
  14. 14. MOAP (Mobile Oriented Applications Platform)<br />Propriétaire : NTT DoCoMo, FOMA = Freedom of Mobile Access (3G services)<br />Disponible uniquement au Japon<br />Licencedonnée à : Mitsubishi, Fujitsu, Sony Ericsson, Sharp<br />Différence par rapport au marchéeuropéen: cartes de créditintégrées , waterproof, capture des codes à barre, fingerprint sensor, GPS…<br />13/43<br />
  15. 15. Editions de S60<br />Series 60 (2001), &quot;Series 60 Second Edition&quot; (2003), &quot;Series 60 3rd Edition&quot; (2005) et &quot;S60 5th Edition&quot; (2008).<br />S60 1st Edition : résolution de l’écranfixé à 176x208<br />S60 2nd Edition Feature Pack 3 support de multiples résolutions Basic (176x208), et Double (352x416) exemple N90. <br />S60 v3, installation des programmescertifiés.<br />S60 5th Edition support de haute résolution (640x360) touchscreens. Intégration de Adobe Flash Lite 3.0 avec les extensions Action Script<br />Permet aux développeursFlash Lited’accèder aux fonctionalités du téléphonecomme les contacts, messagerie et GPS<br />14/43<br />
  16. 16. Editions de UIQ<br />UIQ 1.1 (2001)<br /> Intégré avec SymbianOS v6.1<br /> Triple-band GSM, HSCSD, et GPRS<br />Bluetooth v1.0b<br />WAP 1.2.1<br />UIQ 2.1(2003)<br />Intégré avec SymbianOS v7.0<br />Java MIDP 2.0<br />Themes<br />UIQ 1 intgére toutes les composantes du core ( téléphonie et connectivité).<br />UIQ 2 a été la première version utilisée sur un téléphone UIQ-based. Elle a intégré Java et des technologies de messagerie.<br />UIQ 3 a restauré la fonctionalité de multitaches, supportant différents style de téléphones avec un seul code de base et une configuration facile.<br />UIQ 3.3 (2008)<br />Intégré avec SymbianOS v9.3<br /> Nouvelle version d’ Opera 9<br /> JSR-248( Mobile Service Architecture)<br />(spécification qui décrit environnement non câblé)<br />15/43<br />
  17. 17. Plan<br />Introduction<br />Le UI Framework de Symbian Os<br />Présentation des UIs de Symbian<br />Comparaison entre les UIs<br />Fichiers et dépendances<br />Les ressources AVKON UI<br />Conclusion<br />16/43<br />
  18. 18. Comparaison entre les UI de Symbian Os<br />GPS,VoIP,3G <br />Séries 60 la plus répandue parmi les téléphones basés sur Symbian OS. <br />Séries 80 destinée à la famille « Communicator  » , PDA non tactile avec clavier alphanumérique<br />Séries 90 était destiner uniquement aux PDA tactile et n’est plus développée <br />UIQ la deuxième interface utilisateur la plus répandue sur les téléphones Symbian OS.<br />MOAP(S) cette plateforme a la particularité d&apos;être fermée; il est en effet impossible d&apos;installer des applications tierces.<br />17/43<br />
  19. 19. Plan<br />Introduction<br />Le UI Framework de Symbian Os<br />Présentation des UIs de Symbian<br />Comparaison entre les UIs<br />Fichiers et dépendances<br />Les ressources AVKON UI<br />Conclusion<br />18/43<br />
  20. 20. Relation entre les fichiers (1/2)<br />Les fichiers sources et leurs descriptions <br />19/43<br />20<br />
  21. 21. Relation entre les fichiers (2/2)<br />Fichier sources de l’application<br />Fichier ressources de l’application<br />Fichier header et rssi<br />20/43<br />
  22. 22. Concept de Ressource Files(rss(i))<br />But : Séparation entre les éléments du UI (list,boutons..) et le code<br />Définissent: User Interface (Menus, Dialogs, Lists)<br />Avantage: L’information est chargéequelorsqu’on en a besoin<br />moinsd’utilisation de la RAM<br />21/43<br />
  23. 23. Plan<br />Introduction<br />Le UI Framework de Symbian Os<br />Présentation des UIs de Symbian<br />Comparaison entre les UIs<br />Fichiers et dépendances<br />Les ressources AVKON UI<br />Conclusion<br />22/43<br />
  24. 24. Ressources AVKON : GenericDialogs (1/7)<br />Type<br /> Single-page dialog<br />Multi-pagedialog<br />Fonction<br />Affiche les données <br />Permet la saisie de données<br />Créer à partir de la classe CEikDialog<br />CEikDialog classe de base pour tous les  dialogs<br />utilisée pour créer des dialogs spécifiques à chaque UI.<br />23/43<br />
  25. 25. Ressources AVKON : GenericDialogs (2/7)<br /> Pour Implémenter un dialog :<br />Définir la ressource dialog dans le fichier.rss. <br />Définiruneclasse qui implémenteCAknDialog<br />UneressourceDIALOG encapsule la structure du dialog définit par le développeur .<br />Ces STRUCT sontdéfiniesdans le fichiereikon.rhcomme suit :<br />STRUCT DIALOG <br />{ <br />LONG flags=0; <br />LTEXT title=&quot;&quot;; <br />LLINK pages=0; <br />LLINK buttons=0; <br />STRUCT items[]; <br />LLINK form=0; <br />}<br />24/43<br />
  26. 26. Ressources AVKON : GenericDialogs (3/7)<br />La structure d’uneligne dialog est définiecomme suit danseikon.rh. <br />STRUCT DLG_LINE <br />{ <br />WORD type; <br />LTEXT prompt; <br />WORD id=0; <br />LONG itemflags=0; <br />STRUCT control; <br />LTEXT trailer=&quot;&quot;; <br />LTEXT bmpfile = &quot;&quot; ; <br />WORD bmpid = 0xffff ; <br />WORD bmpmask ; <br />LTEXT tooltip = &quot;&quot; ; <br />} <br />25/43<br />
  27. 27. Ressources AVKON : GenericDialogs (4/7)<br />EaknMyCmdNext est définiedans .hrh<br />EaknSoftkeyOptions est un standard ID, définitdans avkon.hrh. <br />Le texte est definitdans le fichier .loc<br /> Boutons prédéfinis :<br />R_AVKON_SOFTKEYS_OPTIONS_BACK pour avoir BACK dans menu options<br />R_AVKON_SOFTKEYS_OPTIONS_DONE pour avoir enregistrer dans menu options<br />R_AVKON_SOFTKEYS_OPTIONS_CANCEL pour avoir annuler dans menu options<br />R_AVKON_SOFTKEYS_OPTIONS_EXIT pour avoir EXIT dans menu options<br />RESOURCE CBA r_softkeys_options_next<br />{ <br />buttons = <br />{ <br />CBA_BUTTON <br />{ <br />id = EAknSoftkeyOptions; <br />txt = qtn_aknexeditor_cba_options; <br />}, <br />CBA_BUTTON <br />{ <br />id = EAknMyCmdNext; <br />txt = qtn_Myapp_cba_next; <br />} <br />}; <br />} <br />26/43<br />
  28. 28. Ressources AVKON : GenericDialogs (5/7)<br /> Définition d’une ressource dialog d’une seule page dans le fichier .rss . <br />RESOURCE DIALOG r_demo_singlepage_dialog<br />{ <br />flags = EEikDialogFlagNoDrag | EEikDialogFlagFillAppClientRect | EEikDialogFlagCbaButtons | EEikDialogFlagWait; <br />buttons = R_AVKON_SOFTKEYS_OK_CANCEL; <br />items = <br />{ <br />DLG_LINE { <br />type = EEikCtNumberEditor; <br />// The caption(prompt) <br />prompt = &quot;Number1:&quot;; <br />id = ESinglePageDlgC1Id; <br />// The control <br />control = NUMBER_EDITOR { min=0; max=999; }; <br />// The tag, indicating the measurement unit <br />trailer = &quot;cm&quot;; }, <br />DLG_LINE <br />{ <br />type = EEikCtNumberEditor; <br />// The caption(prompt) <br />prompt = &quot;Number2:&quot;; <br />id = EsinglePageDlgC2Id; <br />// The control <br />control = NUMBER_EDITOR { min=0; max=999; }; <br />// The tag, indicating the measurement unit <br />trailer = &quot;cm&quot;; } }; } <br />27/43<br />
  29. 29. Ressources AVKON : GenericDialogs (6/7)<br />La classe header<br />Class CMyDialog::public CAknDialog<br />{ <br />public: <br />// the static RunDlgLD launch function <br />staticTIntRunDlgLD(TIntaResouceId); <br />private: // FromCAknDialog<br />// base constructor - CAknDialog::CAknDialog() isused<br />// Destructor<br />~CMyDialog() <br />// the control initializerfunction<br />voidPreLayoutDynInitL(); <br />// the function that collects final control values as well as // checking the exit condition <br />TBoolOkToExitL(TIntaButtonId); <br />private: <br />//data items <br />}; <br /> Pour l’ Implémentation de la classe Dialog :<br />1. Implémenteruneclasse qui dérive de CAknDialogdans un fichier header, ouutilisercettedernièredirectement. <br />2. Si ilexite des controls qui ont des valeursprédéfinis , écrirealors la fonctionPreLayoutDynInitL()<br />3. Si la classe est dérivée de CAknDialog, définirunefonctionstatiqueRunDlgLD()<br />4. Si ilexite des conditions particulièreou des controls oùl’utilisateurdoitsaisir des données , on ajoute la fonctionOkToExitL() . <br />Il existed’autrefonctionalités pour l’initialisation du dialog et la vérification des données<br />28/43<br />
  30. 30. Ressources AVKON : GenericDialogs (7/7)<br /> Les méthodes de cette classe sont : <br />1. RunDlgLD() : <br />o Créeune instance de dialog et fait appel au constructeur. <br />o Fait appel à ExecuteLD() avec les ressources appropriées. <br />//3 The following example code checks the validity of the values in the two editor controls: <br />TBoolCMyDialog::OkToExitL (TIntaButtonId) <br />{ <br />// Get the Number1 editor control <br />CEikNumberEditor* editor1 = (CEikNumberEditor*) Control(ESingleDlgId); <br />// Get the Number2 editor control <br />CEikNumberEditor* editor2 = (CEikNumberEditor*) Control(ESingleDlg2Id); <br />// Check the validity of the values in the two editors <br />if ( editor1-&gt;Number() &gt; editor2-&gt;Number()) <br />{ <br />// Show an error note <br />CAknErrorNote* note = new (ELeave) CAknErrorNote; <br />note-&gt;ExecuteLD(_L(&quot;Number1 should be less than number2&quot;)); <br />return EFalse; <br />} <br />return ETrue; <br />} <br />2. PreLayoutDynInitL() Cette fonction est appelée par frameworkdialog<br /> pour dimensionner et afficher le dialog. <br />//1<br />Tint CMyDialog::RunDlgLD() <br />{ <br />CMyDialog* dlg = new (ELeave) CMyDialog(); <br />return dlg-&gt;ExecuteLD(R_DEMO_SINGLEPAGE_DIALOG); <br />} <br />//2 The following example code initializes the values of the two editors: <br />voidCMyDialog::PreLayoutDynInitL() <br />{ <br />// Get the Number1 editor control <br />CEikNumberEditor* editor1 = (CEikNumberEditor*) Control(ESinglePageDlgC1Id); <br />// Set the value to the Number1 editor <br />editor1-&gt;SetNumber(100); <br />// Get the Number2 editor control <br />CEikNumberEditor* editor2 = (CEikNumberEditor*) Control(EsinglePageDlgC2Id); <br />// Set the value to the Number2 editor <br />editor2-&gt;SetNumber(200); } <br />3. OkToExitL() <br /> Pour executer et instancier le dialog : <br />a.Appel des fonctionsnew(ELeave) ou call static NewL dialog factory pour créerune instance des classes dialogues<br />b.Appel de ExecuteLD(TIntaResourceId). Qui fait appel à :<br />o PrepareLC(aResourceId); <br />o return(RunLD()); <br />29/43<br />
  31. 31. Ressources AVKON : QueryDialogs (1/2)<br />Type <br /> Confirmation querydialog<br /> Data querydialog<br /> List querydialog<br />Multiselectionlistquerydialog<br /> Global confirmation query<br /> Global listquery<br /> Global message query<br />Gére les saisies de l’utilisateur<br />Elles ne sont pas ferméesautomatiquement<br />30/43<br />
  32. 32. Ressources AVKON : QueryDialogs (2/2)<br />//1<br />RESOURCE DIALOG r_aknexquery_confirmation_query<br />{ <br />flags = EGeneralQueryFlags; <br />buttons = R_AVKON_SOFTKEYS_YES_NO; <br />items = <br />{ <br />DLG_LINE <br />{ <br />type = EAknCtQuery; <br />id = EGeneralQuery; <br />control = AVKON_CONFIRMATION_QUERY <br />{ <br />layout = EConfirmationQueryLayout; <br />label = qtn_aknexquery_con_label_text; <br />bmpfile = AKNEXQUERY_BMPFILE_NAME; <br />bmpid = EMbmAknexqueryLshellicon; <br />bmpmask = AKNEXQUERY_BITMAP_MASK_FLAG; <br />}; } }; } <br />//2 The following code launches the dialog for which the resource has been defined previously: <br />TBuf&lt;256&gt; msg(_L(&quot;Delete note?&quot;)); <br />CAknQueryDialog* dlg = CAknQueryDialog::NewL( ); <br />if ( dlg-&gt;ExecuteLD(R_AKNEXQUERY_CONFIRMATION_QUERY, msg)) <br />{ <br />// yes/ok pressed<br />} <br />Ressource de Confirmation query a une structure standard <br />ExecuteLD(R_AKNEXQUERY_CONFIRMATION_QUERY, msg )est utilisé pour executer confirmation query. <br />31/43<br />
  33. 33. Ressources AVKON : Notes (1/3)<br />Affiche les notifications à l’utilisateur<br />32/43<br />
  34. 34. Ressources AVKON : Notes (2/3)<br />CAknConfirmationNote : <br />– Unetache qui s’estterminée avec succès<br />CAknInformationNote<br />– Informel’utilisateurd’une situation inhabituelle<br />CAknWarningNote<br />– Avertitl’utilisateurd’une situation qui requiertune action<br />CAknErrorNote<br />– Avertitl’utilisateurd’une situation qui ne permet pas de continuer la tache<br />33/43<br />
  35. 35. Ressources AVKON : Notes (3/3)<br />voidCNoteExamplesAppUi::HandleCommandL(TIntaCommand) <br />{ <br />switch(aCommand) <br />{ <br />... <br />case ECommand_ConfirmationNoteExample: //NoteExamples.hrh <br />{ <br />_LIT(text1, “Thank You&quot;); <br />CAknConfirmationNote* note1 = <br />new (ELeave) CAknConfirmationNote( ETrue ); //Waiting <br />note1-&gt;ExecuteLD(text1); //Blocks until note dismissed <br />} <br />break; <br />... <br />} <br />} <br />34/43<br />
  36. 36. Ressources AVKON : Forms (1/4)<br />Fournit un moyen de saisie de plusieurs données en un seul processus.<br />35/43<br />
  37. 37. Ressources AVKON : Forms (2/4)<br />Deux modes:<br />View mode (= list box, highlight fields)<br />Edit mode (editfields)<br />Par défaut: changement de modes depuis le menu options<br />Multi-page Forms: tabulations pour grouperplusieurs controls<br />36/43<br />
  38. 38. Ressources AVKON : Forms (3/4)<br />RESOURCE FORM r_aknexform_text_field_form<br />{ items = <br />{ DLG_LINE <br />{ type = EEikCtEdwin; <br />prompt = qtn_aknexform_form_label_ed1; <br />id = EAknExFormDlgCtrlIdEdwin01; <br />itemflags = EEikDlgItemTakesEnterKey | <br />EEikDlgItemOfferAllHotKeys; <br />control = EDWIN <br />{ <br />flags = EEikEdwinNoHorizScrolling | <br />EEikEdwinResizable; <br />width = AKNEXFORM_EDWIN_WIDTH; <br />lines = AKNEXFORM_EDWIN_LINES; <br />maxlength = EAknExFormEdwinMaxLength; // added to limit expanding in forms. // If you want full screen use 5 here <br />max_view_height_in_lines = 5; // if you have the line above, you must have this. // It&apos;s calculable from LAF <br />base_line_delta = 21; }; }, <br />DLG_LINE <br />{ type = EEikCtEdwin; <br />prompt = qtn_aknexform_form_label_ed2; <br />id = EAknExFormDlgCtrlIdEdwin02; <br />itemflags = EEikDlgItemTakesEnterKey | <br />EEikDlgItemOfferAllHotKeys; <br />control = EDWIN <br />{ <br />flags = EEikEdwinNoHorizScrolling | EEikEdwinResizable; <br />width = AKNEXFORM_EDWIN_WIDTH; <br />lines = AKNEXFORM_EDWIN_LINES; <br />maxlength = EAknExFormEdwinMaxLength; <br />// added to limit expanding in forms. <br />// If you want full screen use 5 here <br />max_view_height_in_lines = 5; // if you have the line above, you must have this. // It&apos;s calculable from LAF <br />base_line_delta = 21; }; } }; }<br />Structure dialog et une structure Form dans le fichier ressource (.rss) car un form est un dialog spécial.<br />Form est à définirdans la structure du dialog : <br />flags, qui spécifient le style du Form. <br />buttons, qui spécifient les types de softkey. <br />form, qui fait réference au Form définitultérieurement.<br /> Les champs de la Form sontdéfinis avec la structure DLG_LINE.<br />RESOURCE DIALOG r_aknexform_text_field_dialog<br />{ <br />flags = EEikDialogFlagNoDrag | EEikDialogFlagFillAppClientRect | <br />EEikDialogFlagNoTitleBar | EEikDialogFlagNoBorder | <br />EEikDialogFlagCbaButtons; <br />buttons = R_AVKON_SOFTKEYS_OPTIONS_BACK; <br />form = r_aknexform_text_field_form; <br />}<br />37/43<br />
  39. 39. Ressources AVKON : Forms (4/4)<br /> Pour créer un FORM depuis les définitions contenues dans le fichier ressource <br />1. Implémenteruneclasse qui hérite de CAknForm. <br />//1<br />class CMyForm : public CAknForm<br />{ <br />public: <br />staticCMyForm * NewL(); <br />virtual ~CMyForm(); <br />… <br />private: <br />CMyForm(); <br />private: <br />… <br />}; <br />2. Créerune instance de cetteclassedéjaimplémentée. <br />3. Faire appel à ConstructL pour l’objet form. <br />4. Appel de la fonctionExecuteLD avec l’id de la ressourcecommeparamètre pour lancer le Form. <br /> Le form peutétrecréer et affichercomme suit : <br />CMyForm * form = CMyForm::NewL(); <br />form-&gt;ExecuteLD( R_MYFORM_DIALOG ); <br />38/43<br />
  40. 40. Ressources AVKON : ListBox (1/3)<br /> Les ressources listboxsontdéfiniesdansune structure de donnéesLISTBOX dans le fichier &lt;eikon.rh&gt;. <br /> Les items définisdans les listboxsontaussidéfinisdans les ressources dans &lt;badef.rh&gt;.Ilssont de type LBUF. <br />STRUCT ARRAY { STRUCT items[]; // list items } <br />STRUCT LISTBOX { BYTE version; // version number <br />WORD flags; <br />WORD height;<br />// in items <br />WORD width; // in chars<br /> LLINK array_id; // points to items in ARRAY structure } <br /> Les types de listboxsontdéfinis par le paramètre flags dans la LISTBOX. <br />Vue sans unepossibilité de sélection<br />39/43<br />
  41. 41. Ressources AVKON : ListBox (2/3)<br />Pour définir un listboxdans le fichier (.rss)<br />r_demo_listbox_itemsdéfinit les items appartenant à la ressourcelistboxr_demo_listbox. <br />RESOURCE LISTBOX r_demo_listbox<br />{ flags = EAknListBoxSelectionList; <br />array_id = r_demo_listbox_items; } <br />RESOURCE ARRAY r_demo_listbox_items<br />{ items = <br />{ LBUF { txt = &quot;Item1&quot;; }, <br />LBUF { txt = &quot;Item2&quot;; }, <br />LBUF { txt = &quot;Item3&quot;; } }; } <br />40/43<br />
  42. 42. Ressources AVKON : ListBox (3/3)<br />// createlistbox instance <br />CEikTextListBox* list = new (ELeave) CAknSingleStyleListBox(); <br />// set container control <br />list-&gt;SetContainerWindow(*this); <br />// initialize resource reader, passing resource id as parameter <br />TResourceReaderrr; <br />iEikonEnv-&gt;CreateResourceReaderLC(rr, R_DEMO_LISTBOX); <br />// load and construct the resource <br />list-&gt;ConstructFromResourceL(rr);<br />CleanupStack::PopAndDestroy(); // rr<br />Pour créer un listbox de sélectiondepuis un fichierressource<br />1. Créerune nouvelle instance de listbox<br />2. Créer la fenêtre container du listbox.<br />3. Initialiser le lecteur de ressource<br />4. Charger la ressourcelistbox en utilisant le lecteur de ressource. <br />41/43<br />
  43. 43. Plan<br />Introduction<br />Le UI Framework de Symbian Os<br />Présentation des UIs de Symbian<br />Comparaison entre les UIs<br />Fichiers et dépendances<br />Ressources AVKON UI<br />Conclusion<br />42/43<br />
  44. 44. Conclusion<br />UI ont la même structure et classes de base <br />Les menus sontgénéralementdéfinis en utilisant les ressources du standard Uikon.<br /> Les Dialogs sont plus utilisésdans UIQ et S60<br /> Les boutonssont plus utilisésdans UIQ, maisrarementdans S60<br /> Les commandes et la gestion des événementssontsimilaires pour UIQ et S60, <br />(seulediffèrence les IDs command et codes des key event)<br />43/43<br />
  45. 45. Références<br />Symbian OS UI-Development for S60 , Andreas Jakl, 2008<br /> S60 Platform Avkon UI Resources Forms , Nokia Corporation ,2005<br /> S60 Platform Avkon UI Resources Notes , Nokia Corporation ,2005<br /> S60 Platform Avkon UI Resources Listboxes , Nokia Corporation ,2005<br /> S60 Platform Avkon UI Resources Dialogs , Nokia Corporation ,2005<br /> S60 Programming A Tutorial Guide, Paul Coulton, Reuben Edwards,Apr.2007<br />
  46. 46. Merci de Votre Attention<br />

×