Your SlideShare is downloading. ×
Réalisée  par : Fatma Ghachem<br />Année Universitaire : 2009/2010<br />
Plan<br />Introduction<br />Le  UI Framework de Symbian Os<br />Présentation des UIs de Symbian<br />Comparaison entre les...
Plan<br />Introduction<br />Le  UI Framework de Symbian Os<br />Présentation des UIs de Symbian<br />Comparaison entre les...
Introduction<br /> Interface utilisateur facteur  de  différenciation<br /> La différentiationclépour survivre et réussird...
Plan<br />Introduction<br />Le  UI Framework de Symbian Os<br />Présentation des UIs de Symbian<br />Comparaison entre les...
Symbian UI Framework(1/2)<br />Architecture de Symbian OS<br />5/43<br />
Symbian UI Framework(2/2)<br />Qikon et  Avkonimplémententles classes définiesdans le  framework Uikon.<br />Application b...
Plan<br />Introduction<br />Le  UI Framework de Symbian Os<br />Présentation des UIs de Symbian<br />Comparaison entre les...
La philosophie Symbian UI<br />Moinsde fenêtrespour réaliserunetâche. <br />Fonctionnalitésavancéesdevraientêtrecacher(uti...
S60 (précédemment: Series 60)<br />Propriétaire : Nokia<br />License donnée à : Samsung, LG, Panasonic, Lenovo<br />Conçue...
ou<br />Series 80<br />Propriétaire: Nokia<br />Conçue pour : <br />Intéractionà travers un clavier alphanumérique,<br />4...
Series 90<br />Propriétaire: Nokia<br />Etatactuel : n’est plus en cours de développement<br />Caractèristiques :<br />Sup...
UIQ (User Interface Quartz)<br />Propriétaire: Sony Ericsson et Motorola<br />Les appareilsintégrant UIQ et montrantsavrai...
MOAP (Mobile Oriented Applications Platform)<br />Propriétaire : NTT DoCoMo, FOMA = Freedom of Mobile Access (3G services)...
Editions de S60<br />Series 60 (2001), &quot;Series 60 Second Edition&quot; (2003), &quot;Series 60 3rd Edition&quot; (200...
Editions de UIQ<br />UIQ 1.1 (2001)<br /> Intégré avec SymbianOS v6.1<br /> Triple-band GSM, HSCSD, et  GPRS<br />Bluetoot...
Plan<br />Introduction<br />Le  UI Framework de Symbian Os<br />Présentation des UIs de Symbian<br />Comparaison entre les...
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  ...
Plan<br />Introduction<br />Le  UI Framework de Symbian Os<br />Présentation des UIs de Symbian<br />Comparaison entre les...
Relation entre les fichiers (1/2)<br />Les fichiers sources et leurs descriptions <br />19/43<br />20<br />
Relation entre les fichiers (2/2)<br />Fichier sources de l’application<br />Fichier ressources de l’application<br />Fich...
Concept de Ressource Files(rss(i))<br />But : Séparation entre  les éléments du UI (list,boutons..) et le code<br />Défini...
Plan<br />Introduction<br />Le  UI Framework de Symbian Os<br />Présentation des UIs de Symbian<br />Comparaison entre les...
Ressources AVKON : GenericDialogs (1/7)<br />Type<br /> Single-page dialog<br />Multi-pagedialog<br />Fonction<br />Affich...
Ressources AVKON : GenericDialogs (2/7)<br /> Pour Implémenter un dialog :<br />Définir  la ressource dialog dans le fichi...
Ressources AVKON : GenericDialogs (3/7)<br />La structure d’uneligne dialog  est définiecomme suit danseikon.rh. <br />STR...
Ressources AVKON : GenericDialogs (4/7)<br />EaknMyCmdNext est définiedans .hrh<br />EaknSoftkeyOptions est un standard ID...
Ressources AVKON : GenericDialogs (5/7)<br /> Définition d’une  ressource dialog d’une seule page  dans le fichier .rss . ...
Ressources AVKON : GenericDialogs (6/7)<br />La classe header<br />Class CMyDialog::public CAknDialog<br />{ <br />public:...
Ressources AVKON : GenericDialogs (7/7)<br /> Les méthodes de cette classe sont : <br />1. RunDlgLD() : <br />o Créeune in...
Ressources AVKON : QueryDialogs (1/2)<br />Type <br /> Confirmation querydialog<br /> Data querydialog<br /> List querydia...
Ressources AVKON : QueryDialogs (2/2)<br />//1<br />RESOURCE DIALOG r_aknexquery_confirmation_query<br />{ <br />flags = E...
Ressources AVKON : Notes (1/3)<br />Affiche les notifications à l’utilisateur<br />32/43<br />
Ressources AVKON : Notes (2/3)<br />CAknConfirmationNote : <br />– Unetache qui s’estterminée avec succès<br />CAknInforma...
Ressources AVKON : Notes (3/3)<br />voidCNoteExamplesAppUi::HandleCommandL(TIntaCommand) <br />{ <br />switch(aCommand) <b...
Ressources AVKON : Forms (1/4)<br />Fournit un moyen de saisie de plusieurs données en un seul  processus.<br />35/43<br />
Ressources AVKON : Forms (2/4)<br />Deux modes:<br />View mode (= list box, highlight fields)<br />Edit mode (editfields)<...
Ressources AVKON : Forms (3/4)<br />RESOURCE FORM r_aknexform_text_field_form<br />{ items = <br />{ DLG_LINE <br />{ type...
Ressources AVKON : Forms (4/4)<br /> Pour créer un FORM depuis les définitions contenues dans le  fichier ressource <br />...
Ressources AVKON : ListBox (1/3)<br /> Les ressources listboxsontdéfiniesdansune structure  de donnéesLISTBOX dans le fich...
Ressources AVKON : ListBox (2/3)<br />Pour définir un listboxdans le fichier (.rss)<br />r_demo_listbox_itemsdéfinit les i...
Ressources AVKON : ListBox (3/3)<br />// createlistbox instance <br />CEikTextListBox* list = new (ELeave) CAknSingleStyle...
Plan<br />Introduction<br />Le  UI Framework de Symbian Os<br />Présentation des UIs de Symbian<br />Comparaison entre les...
Conclusion<br />UI  ont la même structure et classes de base <br />Les menus sontgénéralementdéfinis en utilisant les ress...
Références<br />Symbian OS UI-Development for S60 , Andreas Jakl, 2008<br />  S60 Platform Avkon UI Resources Forms , Noki...
Merci de Votre Attention<br />
Upcoming SlideShare
Loading in...5
×

Symbian Os User Interfaces

1,028

Published on

Published in: Technology
1 Comment
1 Like
Statistics
Notes
No Downloads
Views
Total Views
1,028
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
1
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "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 />

×