[MÀJ] Feelin, version du 17 Mai 2005

Feelin est un système Open Source orienté objet pour AmigaOS. Il propose deux choses :

  • Une petite bibliothèque, coeur du système objet, rapide et puissante. Elle contient tout ce qui est nécessaire pour créer un puissant environnement orienté objet,
  • Et un système externe extensible pour créer et gérer des interfaces graphiques orientées objet.

Pour connaître toutes les nouveautés de cette nouvelle version décrites par Gofromiel, son auteur, nous vous invitons à lire la suite…

[MÀJ] Grâce à vos rapports de bugs, un pack qui arrange tout à été réalisé.
Les détails sur cette mise à jour sont disponibles dans la suite.

Télécharger :

Nouveautés et caractéristiques de Feelin données par son auteur :

Nouveau standard pour les items de préférence

Les items sont à présent définies dans un style CSS e.g. $button-frame (notez le sign dollar). Le système de préférence a été partiellement réécrit, il est plus efficace.

Preview / Pop / Adjust

Creation du système d’ajustement à partir de deux classes bases FC_Adjust et FC_Preview.
Les précédentes classes « ajustement » et « pop » sont toutes des sous-classes d’elles. Ces sous-classes sont maintenant modulaires. Il est bien plus facile d’en écrire de nouvelles.

Documents : XML / HTML

FC_XMLApplication a été divisée pour créer FC_XMLObject. FC_XMLDocument a été divisée pour créer FC_Document, qui est maintenant la classe de base pour l’interprétation de documents. FC_HTMLDocument est une de ces sous-classes. Comme FC_XMLDocument est utilisée pour interpréter du code XML, FC_HTMLDocument peut être utilisée pour interpréter du code HTML (qui est moins formel).

XMLObjects

Feelin n’est plus seulement capable de créer des applications entières à partir de fichiers XML, a présent, il peut également incorporer des objets XML n’importe où dans vos applications (où classes) très facilement. Par exemple, tous les groupes utilisés par l’éditeur de préférence sont générés depuis des fichiers XML.

Les applications XML étaient un premier pas vers la séparation entre le code et la GUI, maintenant l’utilisateur peut faire CE QU’IL VEUT de sa GUI.

FC_PreferenceGroup a été entièrement réécrit

TOUS les groupes de préférences (les objets utilisés par l’éditeur de préférence pour ajuster les préférences) sont désormais des objets XML. Les fichiers XML sont disponibles dans le dossier « Feelin:XMLSources/Feelin/Preferences ».

Une seule minuscule ligne de code est nécessaire pour créer un groupe de préférence ! C’était déjà très facile avant, mais là tout est AUTOMATIQUE ! Grâce au nouveau format standard des items de préférences (e.g. $button-frame), au support XML et au type FPreferenceScript, le processus complet de préférence (génération des objets, chargement, sauvegarde, destruction des objets) est TOTALEMENT AUTOMATIQUE !

BEAUCOUP de nouvelles items de préférences ont été ajoutées à l’ensemble des classes. La GUI est EXTREMEMENT configurable.

Layout & Rendering

Enfin, FC_ImageDisplay est capable des dessiner des DEGRADES. Cette amélioration tant attendue rend la GUI encore plus jolie et tout douce.

Le nouveau système de recalcul du layout (le quatrième !) est fabuleux ! Les requêtes de recalcul sont mises en tampons, et même si 20 requêtes sont parvenues à FC_Window, 1 seul rafraichissement sera effectué ! Et comme d’habitude seuls les objets modifiés sont mis à jour.

L’expansion de la fenêtre est également plus jolie, puisqu’elle s’agrandi de tous cotés et plus seulement vers la droite et en bas. Ainsi, une fenêtre centrée qui s’agrandi, pour faire plus de place à ses objets, reste centrée.

FC_Area et FC_Window sont à présent des sous-classes de FC_Frame, qui est à présent en charge de l’attribut FA_Back. Le rafraichissement est maintenant juste parfait 🙂 Le mode de rafraichissement complexe a été amélioré, il est a présent fabuleux !

Events

Le nouveau code FV_EVENT_BUTTON_WHEEL pour l’événement FF_EVENT_BUTTON a été ajouté. Il peut être utilisé pour réagir à la roue de la souris. La plupart des classes utilisent à présent cette facilité. En fait, tout ce qui peut être ajusté avec la souris peut maintenant l’être aussi avec la roue : listes, sliders, props, cycles… et même les groupes-pages !

Dialogues

Sous-classe de FC_Window, FC_Dialog peut être utilisée pour créer toutes les requêtes les plus communes directement e.g. « Ok », « Oui | Non », « Sauver | Utiliser | Annuler »… Biensûr vous pouvez ajouter vos propres objets, la classe est totalement customizable. Par exemple, FC_PreferenceEditor est devenue une de ses sous-classes.

FC_List

FC_List a été particulièrement mise à jour. Elle est devenue aussi puissante que configurable. Le format des colonnes est a présent défini en XML, et plein de possibilités sont disponibles.

Avec 20 nouvelles classes (76 sont disponibles), j’ai fais de mon mieux pour offrir un framework plus puissant et plus agréable aux développeurs Amiga; et une GUI attractive pour les utilisateur qui AIMENT customiser leurs applications, BEAUCOUP 🙂

[MÀJ]
Caractéristiques mises à jour, toujours données par son auteur :

FM_Object_Notify essayait de résoudre la valeur FV_Notify_Always comme une valeur d’attribut, ce qui produisait un accés en lecture illégal à la mémoire à l’adresse 0x49893131.

FC_Adjust
J’avais oublié un NULL à la fin de la définition de la notification sur l’objet « clear », ce qui produisait des erreurs avec FC_PreviewScheme (c’était la seule à s’en plaindre en fait).

FC_AdjustScheme
Le drag’n’drop n’était accepté que si le premier membre du schéma de couleur était défini. Jusqu’à ce que je change de format pour la définition. Il accepte désormais les chaînes de caractères qui commencent par une virgule e.g. « ,,c:FFFFBB,, ».

FC_Balance
Il n’y avait pas réellement de bug, mais je l’ai tout de même améliorée pour qu’elle utilise la méthode FM_RethinkMethod au lieu de ces propres fonctions, ce qui nous donne un meilleur rafraichissement et un code plus petit et plus propre.

Voilà, d’autres bugs ? 😀

—-

Un grand merci à M. Damir (d980) pour son support amical et à M. Henes pour ses rapports de crash et sa sévérité 🙂

23 Commentaires

Passer au formulaire de commentaire

  1. Impressionnant 🙂

    Je vais tenter de me réinstaller un VBCC et tester un peu tout ça… (le côté XML me titille la curiosité :-)).

  2. Clair ça met l’eau à la bouche 😀

    /me qui va essayer ça mercredi prochain juste après les exams

  3. C’est vrai que ça donne envie !
    Un futur standart ?

    • Alex sur 17 mai 2005 à 13h58

    Commençons déjà par utiliser l’orthographe standard 😆

    /me oui oui je sors…

  4. je viens d’installer regardé les prefs + exemples c’est rapide, sympa, les prefs par defaut sont jolies mais…je vois toujours pas l’interet (de mon point de vu d’utilisateur) vis à vis de MUI.
    En tout cas il semble y avoir une sacré dose de boulot derriere et rien que ça impose le respect.

    PS: c’est quoi cette news partisane, trop detaillé et qui ne donne même pas un lien vers la derniere archive ? 🙂

  5. « Pour ne pas être esclave
    marthyres du temps
    enivrez-vous sans cesse
    de vin, de poésie ou de vertue
    à votre guise
    Il faut-être toujours ivre
    pour ne pas sentir
    le temps qui brise
    nos épaules
    et nous penche
    vers la terre »

    Gofromiel, t’es vraiment trop cool comme gars 😉

    • hybrid sur 17 mai 2005 à 16h57

    Sas_ : ça a peut être peu d’intérêt (encore que … pas si sûr) pour l’utilisateur final mais pour le codeur, ça peut être foutrement pratique et ça ouvre de belle perspectives en terme de fonctionnalités avancée de GUI.

    Des exemples rapides : le fait de pouvoir modifier complètement l’allure et la disposition des éléments de la GUI sans avoir à modifier le code, juste changer la feuille de style ou le fichier XML.
    La possibilité aussi de faire des GUI complètement dynamiques qui s’étendent par l’ajout de « modules XML », etc etc … bref, c’est une porte sur de grandes possibilités que ni MUI ni ReAction ne supportent à l’heure actuelle. (je ne dis pas que ce que permet Feelin est impossible avec MUI/ReAction, je dis juste que ça demande bcp bcp bcp plus de taf pour le codeur pour arriver au même résultat)

    @Gofromiel : par contre, tu veux vraiment pas utiliser le style par défaut d’Intuition, ne serait-ce que comme style par défaut paske vraiment, ce qui choque le plus quand on voit tes grabs, c’est le look qui « tranche » avec le look traditionnel du système … tu peux le trouver moche mais c’est le style par défaut, et pour des raisons de « Look’n’Feel », il est quand même préférable de le conserver, libre à l’utilisateur de le modifier ensuite si ça ne lui convient pas … enfin, c’est mon avis.

    Par contre, très très très beau boulot !

    /me reste sur le cul à chaque nouvelle version de Feelin 😮

  6. Merci à tous ! Ca fait plaisir 🙂

    Bon je suis conscient que le « look » des fenêtres peut être déroutant, mais comme je n’ai pas encore choisi la standardisation finale des décorateurs, il faut rentrer le nom de la classe à la main… c’est pourquoi j’en met un dans la démo sinon personne ne le trouverai.

    Bref, si le look des fenêtres ne vous plait pas, ouvrez l’éditeur de préférence, choisissez « Decorator » dans la liste et effacez « Shade » (classe décoratrice). Faites ensuite « Tester » et vous vous retrouvez avec une « jolie » fenêtre Intuition !

    Sinon si vous avez des suggestions…

  7. Bien bien bien, ca avance 🙂
    Le support de la molette etc ca commence a être bien 🙂
    Par contre j’ai des gros soucis avec le chargement des images dans les prefs…
    Tout ce qui n’est pas ilbm est trashé.

    Une autre chose étrange, le déplacement d’un fenetre (devant ou derrière une autre) provoque toujours le refresh du contenu ce qui est immonde 🙂
    Ya encore des progrés a faire mais ca avance.
    Bon courage pour la suite.

  8. @Polymere Huu ?? C’est bizare tout ça. J’utilise des images au format png la plupart du temps, avec le datatype WarpPNG, j’ai aucun problème… Qu’est ce que tu entends par « trashé » ?

    Idem pour le rafraichissement des fenêtres… c’est chelou. Mais Feelin n’est pas en cause puisqu’il ne fait qu’obéir à l’événement de rafraichissement d’Intuition. Sur mon ordi, les SEULS patch que j’ai installés sont MCP, Birdie et MagicMenu… pitet qu’un patch que tu utilise provoque de drôles de rafraichissements… Qu’elle version de l’OS utilises-tu ?

    Quelqu’un d’autre rencontre ce genre de problème ??

  9. Poly’, tu l’utilises sous quoi ? sous MOS ?… 😉

    • Fab1 sur 18 mai 2005 à 0h44

    Je confirme le pb de refresh permanent sous MOS. A préciser que j’utilise l’option « opaque move » des fenêtres, qui doit précipiter quelque peu le nombre d’évènements de refresh pour feelin dans le cas présent.

  10. @Poly et @fab Ui, c’est sur qu’il doit y avoir des problèmes sur MOS… surtout que Feelin n’est pas prévu pour tourner dessus 🙂 M’enfin je vois que ça marche quand même 😎

    Y aurait-il un candidat pour faire une véritable version MorphOS ??

  11. Donc mon soucis de refresh est aussi lié à l’opaque move sous MOS (une fenetre ne doit rafraichir que quand son contenu a été altèré par une autre fenetre qui se situait devant, de plus il ne faut pas systématiquement rafraichir TOUTE la fenetre mais uniquement la partie altérée… perso je sais pas comment on fait car j’ai toujours programmé en MUI et j’ai pas a m’occuper de ca).

    Sinon pour une version MOS, Henes semble bien placé pour la faire 😀
    Moi ce n’est pas que ce ne m’intéresse pas mais j’ai peu de temps a consacrer à la programmation en ce moment 🙁

    Donc en fait ca « marchotte » pas trop mal sauf que ya plein de msg debug de la part de methodstack.c (de mémoire) et des fois feelin semble planté et plus rien ne veut se lancer.

    Pour le pb des trash images, je vais tester un peu plus.

    A+

    • Yomgui sur 18 mai 2005 à 10h34

    Une version Morphos!
    Une version Morphos!
    Une version Morphos!
    Une version Morphos!
    Une version Morphos!
    Une version Morphos!
    Une version Morphos!

  12. Une version MorphOS!
    Une version MorphOS!
    Une version MorphOS!
    Une version MorphOS!
    Une version MorphOS!

    (enfin des softs qui l’utilisent ça le ferait aussi ^^)

    • Tcheko sur 18 mai 2005 à 14h46

    Bonjour,

    Perso, rien que pour la partie XML de Feelin, je vais faire mumuse avec… trop de la balle le fait de pouvoir écrire l’interface utilisateur en XML. Ca s’implifie les choses, enfin pour moi en tout cas.

    Par contre, je ne pourrais que quand une version MOS sera disponible…

    Allez hop, c’était mes deux centimes d’euro de la journée.

  13. Une version MorphOS!
    Une version MorphOS!
    Une version MorphOS!
    Une version MorphOS!
    Une version MorphOS et AROS et OS4 😀

    En ce qui concerne le déplacement opaque, ça ne pose pas ce genre de problème avec l’AmigaOS 3.1 (avec le patch MCP). Je pense que MorphOS utilise une technique différente pour le rafraichissement des fenêtres. On dirait du « simple refresh », un peu comme windows…

    • Lanza sur 18 mai 2005 à 15h49

    Pourquoi un $ dans les CSS ?

    • hybrid sur 18 mai 2005 à 18h25

    @Gofromiel : tu as essayé en activant le « Opaque Move » dans MCP ? paske moi aussi j’ai un refresh un peu dégueu sous WinUAE (avec MCP) alors que ça fonctionne pas trop mal (sans être tip top fluide) avec MUI.

  14. Lanza

    Pourquoi un $ dans les CSS ?

    Parce que les items de préférences peuvent être écrasées par le développeur si il le veut, du coup c’est pour différencier une item de préférence et du texte tout bête.

    Les objets sont crées de cette façon (en général)

    return F_SuperDo(Class,Obj,Method,
    FA_Back, « $button-back »,
    FA_Frame, « $button-frame »,
    FA_Font, « $button-font »,

    TAG_MORE,Msg);

    Le développeur peut donc facilement écraser les items de préférence en fournissant les mêmes attributs avec des valeurs différents e.g. FA_Back, « $gauge-back » ou encode FA_Back, « c:FF00FF »…

    Avant les items de préférence ressemblaient à « FP_Gauge_Back », « FP_ » étant utilisé pour la reconnaissance. D’ailleurs c’est pas vraiment du CSS, ça ressemble juste 🙂

    @hybrid

    Chez moi le déplacement opaque des fenêtres (sous WinUAE) ce fait sans trop de difficulté et ne provoque aucun rafraichissement étrange, sauf pour les fenêtres avec un rafraichissement « simple » comme l’éditeur « Palette » de l’Amiga où c’est l’horreur 🙂 Par contre le redimensionnement solide et pourrit pour tout le monde. Feelin sans sort pas si mal (en mode « rendu complexe ») par rapport à MUI, qui n’est pas du tout configuré chez moi et qui est tout pourrit quand même 🙂

    Pitet que ça vient des machines, pitet que ça vient de l’OS, pitet que ça vient des patches, pitet que ça vient du mode de rafraichissement…

  15. Bon je vais ajouter mon grain de sel. 🙂
    J’ai lancé le Setup, j’ai été dans Décorator.
    J’ai enlevé Shade
    J’ai cliqué test
    et mon taux d’utilisation de la memoire est passé de 47 à 209 Mo. 😉
    Je suis sous MOS
    Voilà.
    sinon, je trouve que pour un gars tout seul, ben, gofromiel a fait un sacré boulot

  16. mon taux d’utilisation de la memoire est passé de 47 à 209 Mo

    Ha, comme quoi, vaut mieux utiliser Feelin tout seul il se débrouille très bien 😀

Les commentaires sont désactivés.

Amiga Impact