~~SLIDESHOW~~
====== PyMUI ======
=== Ecrire efficacement des interfaces utilisateurs avec Python et MUI. ===
//Par Guillaume ROGUEZ - Alchimie 2009//
===== PyMUI - Introduction =====
* Python et MorphOS
* MUI
* Python + MUI = PyMUI
===== PyMUI - Pourquoi ? =====
* Ecrire une interface avec MUI en C:
* Limite du C
* Langage bas niveau vs haut niveau
* Compilé vs Interprété
* Gestion de l'erreur
* Limite de MUI (surtout BOOPSI):
* Code Orienté-Objet
* Multiple-héritage
* Python - //All inclusives//
===== PyMUI - Histoire =====
* %%r1 | roguez | 2008-01-09 00:46:18 +0100 (Wed, 09 Jan 2008) | 1 line%%
* 2009 - L'idée de génie et 3 mois plus tard: Gribouillis!
===== PyMUI - Conception =====
===== PyMUI - Utilisation - Développement =====
* Exemple de déclaration d'une classe:
class Cycle(Group):
CLASSID = MUIC_Cycle
ATTRIBUTES = {
MUIA_Cycle_Active: ('Active', 'i', 'isg'),
MUIA_Cycle_Entries: ('Entries', '0s', 'i..',
lambda x: ArrayOfString(x),
None),
}
def __init__(self, Entries, **kwds):
super(Cycle, self).__init__(Entries=Entries, **kwds)
===== PyMUI - Utilisation - Utilisateur =====
===== PyMUI - Limitations (1) =====
**=> Manque de temps cruel!**
* Toutes les classes ne sont pas encore disponibles.
* Appel au méthodes trop bas niveau, aucune vérifications de paramétres, références des objets Python non gardée.
* Création d'une MCC limitée au méthodes suivantes: AskMinMax, Setup, Cleanup, Show, Hide, **Draw**, **HandleEvents** (limité) seulement.
* Pas de création d'objet MUI pré-construits (//MUIO_xxx//).
===== PyMUI - Limitations (2) =====
* Gestion basique des exceptions python pendant la boucle principale.
* Seulement certains types C sont gérés: entiers, booléens, objets MUI, chaînes de caractères, tableaux (des types de bases)...\\ => Sinon c'est un pointeur opaque.
* Et tout ce que j'ai oublié :-)
===== PyMUI - Gribouillis (exemple) =====
* Premier logiciel MUI/Python utilisant les tablettes graphiques.
* Un vrai test du feu pour PyMUI:
* Une GUI complexe avec MCC ;
* Multithreads.
* Pas de limites au dessin.
* Gestion multi-espaces de couleurs: RGB, CMYK.
===== PyMUI - Les liens =====
* **Python** (dernière en date): http://www.yomgui.fr/python/
* **PyMUI** //(Python 2.5 et plus néccessaire)//\\ http://www.yomgui.fr/python/thirdparties/