#1 Le 27/05/2009, à 13:07
- kevlar
Ella : projet de logiciel d'animation Flash & SVG pour Linux
Le projet est aujourd'hui bien avancé : version 0.3.1.2 au 2 Novembre 2010 !
Ella (Elegant Light Linux Animator) est un projet amateur destiné à fournir à la communauté linuxienne un générateur d'animations Flash & SVG wysiwyg, fonctionnel, léger, bien intégré aux environnements fondés sur Gtk 2+.
Ce projet est développé sur notre temps libre, c'est pourquoi il avance doucement. Ce logiciel n'a pas la prétention d'égaler l'original propriétaire,mais il essaye d'intégrer le plus grand nombre possible de ses fonctionnalités, avec une dose d'originalité.
Merci à ceux qui se sont intéressés à ce projet, et/ou m'ont fourni une aide et plus particulièrement au Team Ella qui existe depuis le 16/5/2010 : xapantu, lovasoa, Brozowski, grim7reaper et moi-même.
Grâce aux efforts de Xapantu et Frafa, vous avez des instruments pour le compiler ou l'installer assez facilement. Voici par exemple le script de Frafa : http://forum.ubuntu-fr.org/viewtopic.ph … 3#p3849023 (message #1387, page #56) ; pour obtenir la dernière révision, mitonnée par Xapantu ou Brozowski, vous devez installer les outils bazaar (bzr tools) ;
REMARQUES :
- pour fonctionner, il faut que les swftools soient présentes ; un coup de sudo apt-get install swftools
et c'est réglé !
- il faut ABSOLUMENT utiliser goocanvas version 0.14 ou supérieure ; si elle n'est pas packagée, vous devez la récupérer ici : http://ftp.gnome.org/pub/GNOME/sources/goocanvas/ et la compiler (très simple, très rapide ...)
Grâce à Brozowski et Xapantu, le projet est maintenant disponible sous forme de paquet .deb, que vous trouverez ici : https://launchpad.net/~ella-animation/+archive/dev
Pour discuter avec nous, nous avons un canal #irc : http://webchat.freenode.net/?channels=#ella
Il reste :
- à débuguer.
- à écrire les fichiers d'aide sous forme de fichier HTML (la votre serait la bienvenue ...)
- à continuer la traduction du logiciel : vous pouvez participer aux traductions sur Launchpad.
- lovasoa a commencé à travailler sur l'exportation JavaScript.
Voici deux videos de démonstration des capacités d'Ella (fin Avril 2010, le logiciel a, depuis, évolué):
- ogg :http://kevlar.legtux.org/donnees_publiq … /out-1.ogv
- xvid :http://kevlar.legtux.org/donnees_publiq … la/out.avi
Vous trouverez à la page #8 ou sur launchpad(partie /doc)la description du format de fichier propre à Ella.
Ella est sur Launchpad : https://launchpad.net/ella merci à Xapantu
****************************************************************************
Vous trouverez ici une prise en main rapide : introduction
Vous trouverez un 1er tuto (PDF) ici : http://kevlar.voila.net/temp/tuto1.pdf
Enfin, pour ceux qui ne sont pas rébutés par l'anglais à la sauce froggie, sur tuxfamilly : Ella sur TuxFamilly (en anglais)
Dernière modification par kevlar (Le 14/11/2010, à 10:00)
Hors ligne
#2 Le 27/05/2009, à 13:27
- Daedalus11
Re : Ella : projet de logiciel d'animation Flash & SVG pour Linux
C'est à toi de voir la méthode que tu veux employer. un Datadrigview serait intéressant dans la mesure ou le nombre de case est amplifié.
Dans ton cas, je te recommande d'aller choper les sources de F4L et de voir ce qu'ils utilisent.
Tu vas me dire "Oui mais je ne connais pas Qt". Il n'est pas nécessaire de connaitre Qt pour savoir le controle qu'ils utilisent .
les noms de widgets se différencie de très très peu.
Hors ligne
#3 Le 27/05/2009, à 13:54
- kevlar
Re : Ella : projet de logiciel d'animation Flash & SVG pour Linux
merci de ta réponse !
- Datadrigview appartient à GTK ?
- j'ai les sources de F4L, mais 1), c'est du C++, donc problème, et 2) c'est Qt.
EDIT : Datagridview est un contrôle de Windows d'après Google ...:(
EDIT 2 : ou alors passer par Vala, C#, Mono !
Dernière modification par kevlar (Le 27/05/2009, à 14:22)
Hors ligne
#4 Le 27/05/2009, à 17:18
- philarmonie
Re : Ella : projet de logiciel d'animation Flash & SVG pour Linux
Dois-je abandonner ces widgets pour un simple GtkTable ? Mais alors, plus de gestion dynamique ...
Pourquoi? ça se redimensionne un GtkTable
Dernière modification par philarmonie (Le 27/05/2009, à 17:18)
#5 Le 27/05/2009, à 17:43
- kevlar
Re : Ella : projet de logiciel d'animation Flash & SVG pour Linux
en effet, je viens de m'en apercevoir. Sauvé !
Par contre, tu as vu ce que je souhaite faire :
- liberté pour l'utilisateur de créer autant de lignes (correspondant à un calque) qu'il le souhaite.
- chaque ligne devra contenir des pixbufs (pris dans 2-3 modèles différents, de petits rectangles). Or, on peut demander un minimum de 512 (j'aime les chiffres informatiques ) pixbufs par ligne ...
Avec tout ça, quid de l'utilisation de la mémoire ?
Hors ligne
#6 Le 27/05/2009, à 18:30
- philarmonie
Re : Ella : projet de logiciel d'animation Flash & SVG pour Linux
Avec tout ça, quid de l'utilisation de la mémoire ?
Ça doit pas être énorme si t'as que trois modèles de pixbuf.
Dans chaque case t'as juste un pointeur vers le pixbuf, c'est pas gourmand un pointeur
#7 Le 27/05/2009, à 18:45
- kevlar
Re : Ella : projet de logiciel d'animation Flash & SVG pour Linux
impec ' Je suis en train de passer aux Gtktables, en gardant l'interface de départ. Par contre, faudra voir comment changer le fond du tableau (en blanc, ce serait mieux !)
Hors ligne
#9 Le 28/05/2009, à 00:22
- rniamo
Re : Ella : projet de logiciel d'animation Flash & SVG pour Linux
c'est pas mal mais comment tu fais un curseur (linéaire) avec une table ?
< Quelques un des mes programmes | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
\ ^__^
\ (o o)\_______
(___)\ )\
Hors ligne
#10 Le 28/05/2009, à 01:09
- philarmonie
Re : Ella : projet de logiciel d'animation Flash & SVG pour Linux
Tu parles de la règle sur le screenshot de F4L?
Il peut mettre une drawingarea dans chaque case et dessiner dedans les traits et écrire les chiffres 1 case sur 5.
Dernière modification par philarmonie (Le 28/05/2009, à 01:14)
#11 Le 28/05/2009, à 07:31
- kevlar
Re : Ella : projet de logiciel d'animation Flash & SVG pour Linux
ce n'est pas à ça que je pense : pour la version Gtk, multiplier les drwingareas, même en 10x24 comme ici, finirait par coûter de la mémoire. Je pense faire ceci : garder la "table" que tu vois sur la copie précédente, mais la glisser dans une scrolledwindow, et AJOUTER au-dessus une scrolledwindow contenant la réglette style "Flash", et cette dernière dans une scrolled window également, mais SANS potentiomètres. Ainsi, deux avantages :
- c'est le déplacement du potentiomètre de la grille du scénario qui donnera l'impression de provoquer le déplacement de la réglette.
- cette dernière ser faite avec des petits pixmaps sélectionnables. La graduation se fera à travers une Vbox.
Hors ligne
#12 Le 28/05/2009, à 07:51
- kevlar
Re : Ella : projet de logiciel d'animation Flash & SVG pour Linux
Hors ligne
#13 Le 28/05/2009, à 18:20
- kevlar
Re : Ella : projet de logiciel d'animation Flash & SVG pour Linux
Bon, un autre problème (et j'ai quand même cherché ) : comment savoir quelle case de la GtkTable a été cliquée, sachant que mon interface peut en contenir des milliers (je ne parle pas du branchement de la fonction Call-Back) ?
EDIT : il semble que l'on puisse passer en paramètre de la Callback associée à chaque bouton un pointeur sur une structure de données, ou, une chaîne, indiquant automatiquement la cellule cliquée. ON va essayer de se débrouiller avec ça, mais la mémoire file, file ...
Dernière modification par kevlar (Le 28/05/2009, à 18:30)
Hors ligne
#14 Le 29/05/2009, à 13:02
- kevlar
Re : Ella : projet de logiciel d'animation Flash & SVG pour Linux
J'ai un doute ... Est-il possible d'utiliser plusieurs fois une même GtkListStore dans le cadre de vues (GTkTreeView) différentes (comme si on portait plusieurs regards sur le même objet) ; j'ai fait ça :
/* Creation de la vue en colonnes (titres) */
pListViewLayers = gtk_tree_view_new_with_model(GTK_TREE_MODEL(pListStore));
/* vue sur le panneau des calques */
pViewLayers = gtk_tree_view_new_with_model(GTK_TREE_MODEL(pListStore));
C'est la variable pListStore qui est commune, ici.
Hors ligne
#15 Le 29/05/2009, à 13:08
- philarmonie
Re : Ella : projet de logiciel d'animation Flash & SVG pour Linux
Je dirai que c'est possible.
#16 Le 29/05/2009, à 16:51
- rniamo
Re : Ella : projet de logiciel d'animation Flash & SVG pour Linux
en gtk+ (version C), c'est possible, tout comme tu peux utiliser que 2 gtkwidget * pour faire ta fenêtre... mais bon
< Quelques un des mes programmes | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
\ ^__^
\ (o o)\_______
(___)\ )\
Hors ligne
#17 Le 29/05/2009, à 18:30
- kevlar
Re : Ella : projet de logiciel d'animation Flash & SVG pour Linux
OK, mais moi j'essaye toujours d'éviter le gaspillage de RAM. L'idée est de stocker dans un seul GtkListore :
- les différents calques utilisés (leur nom)
- leur état (visible ou non)
- et un ensemble de pointeurs décrivant la ligne de temps de l'animation.
Mais, comme j'essaye de refaire une interface Macromedia like, je sépare dans deux ScrolledWindows, d'une part, un bloc 'nom calque+état calque' et dans une autre fenêtre, la 'ligne de temps'. L'autre idée, est qu'avec un GtkLIstore commun, détruire un calque permet de détruire automatiquement la ligne de temps, et de mettre à jour tout aussi automatiquement l'affichage.
Hors ligne
#18 Le 07/06/2009, à 20:04
- kevlar
Re : Ella : projet de logiciel d'animation Flash & SVG pour Linux
Bonsoir !
Quelqu'un parmi vous est-il déjà parvenu à associer un GtkRuler à autre chose qu'une DrawingArea ? 3 heures que j'essaye d'utiliser l'événement 'motion-notify' sur une GtkTable pour l'envoyer vers un GtkRuler, et bien sûr, ça ne marche pas ! (apparemment seule une DrawingArea gère l'information de position nécessaire ...)
D'une autre façon, on pourrait- s'en tirer en gérant le "clic gauche" sur la règle elle-même (GtkRuler) mais là aussi, impossible !
Comme une image vaut mieux qu'un long discours :
Comment faire pour que la règle supérieure soit autre chose qu'une décoration ?
Dernière modification par kevlar (Le 07/06/2009, à 20:05)
Hors ligne
#19 Le 07/06/2009, à 22:42
- philarmonie
Re : Ella : projet de logiciel d'animation Flash & SVG pour Linux
Quand un widget ne gère pas les événements on le met dans une eventBox, et on défini les événements que l'on souhaite gérer.
#20 Le 08/06/2009, à 15:39
- kevlar
Re : Ella : projet de logiciel d'animation Flash & SVG pour Linux
Quand un widget ne gère pas les événements on le met dans une eventBox, et on défini les événements que l'on souhaite gérer.
déjà essayé Philarmonie. ça ne marche pas, et finit pas une erreur de segmentation (pire cas) ou aucune réaction. Ma copie d'écran : les éléments de la time-line (les rectangles blancs+noirs) sont des icônes faites avec des GtkPixbuf ; pour interagir avec elles (elles sont placées dans une GtkTable) je capture le clic gauche de la souris (et je n'ai pourtant pas besoin d'une eventbox). Et ça marche : je capture ainsi la position virtuelle (calque choisi, position de l'image courante).
C'est pourquoi je sèche ...:/
Dernière modification par kevlar (Le 08/06/2009, à 15:40)
Hors ligne
#21 Le 08/06/2009, à 16:13
- philarmonie
Re : Ella : projet de logiciel d'animation Flash & SVG pour Linux
Effectivement j'ai testé, en plus cette classe gère nativement les événements (donc pas besoin d'un eventBox).
Il suffit d'utiliser la méthode add_events et rajouter l'event gtk.gdk.BUTTON_PRESS_MASK.
C'est juste que ce widget ne gère pas de base cet événement.
Edit: je code en python et voilà un exemple qui gère le clic sur un ruler
#!/usr/bin/pyhton
import gtk
class Win:
def __init__(self):
self.win = gtk.Window()
self.ruler = gtk.HRuler()
self.ruler.set_size_request(200, 50)
self.ruler.set_range(0, 200, 10, 200)
# rajoute la gestion du clic pour le ruler
self.ruler.add_events(gtk.gdk.BUTTON_PRESS_MASK)
self.win.connect("delete-event", gtk.main_quit)
self.win.add(self.ruler)
self.ruler.connect('button-press-event', self.press)
self.win.show_all()
def press(self, widget, event):
print 'pressed'
if __name__ == '__main__':
win = Win()
gtk.main()
Dernière modification par philarmonie (Le 08/06/2009, à 16:15)
#22 Le 08/06/2009, à 16:31
- kevlar
Re : Ella : projet de logiciel d'animation Flash & SVG pour Linux
vous avez bien de la chance avec Python ; je te donne des extraits du code C chez moi !
1- créer une macro pour "surcharger" (ce n'est pourtant pas du C++) la méthode de l'objet GtkRuler :
#define EVENT_METHOD(i, x) GTK_WIDGET_GET_CLASS(i)->x
un peu plus loin, je crée l'IHM de la copie d'écran; je ne détaille pas. Voici néanmoins un extrait des callbacks :
/* attachement et affichage de la règle */
gtk_table_attach(GTK_TABLE(pTableLayersTimeLine),TimeLineRuler,0,MAX_FRAMES+2,0,1,
GTK_EXPAND|GTK_FILL, GTK_EXPAND|GTK_FILL,0, 0);
/* brancher événements souris */
gtk_widget_add_events (pTableLayersTimeLine, GDK_BUTTON_PRESS_MASK |GDK_POINTER_MOTION_MASK
| GDK_POINTER_MOTION_HINT_MASK);
g_signal_connect (GTK_OBJECT (scrolledLayersTimeLine), "motion_notify_event",
G_CALLBACK (bouge_souris),
G_OBJECT (TimeLineRuler));
g_signal_connect(GTK_OBJECT(scrolledLayersTimeLine),"button-press-event",
G_CALLBACK(clic_souris__window_time_line),NULL);
Donc, sur ce que je comprends du langage Python, c'est la même démarche ... et pourtant, seule la callback réagissant à "event-press-button" ... réagit ! Avec ce listing, je récupère bien sûr un clic sur la règle (GtkRuler), mais cela m'est peu utile (c'est lors de l'événement que je transcode les coordonnées de la souris en coordonnées sur la time line) ; or, la présence de la règle fausse les calculs des coordonnées en ordonnées. En effet, je ne peux savoir quelle sera la hauteur réelle de la règle (GtkRuler), chaque utilisateur pouvant utiliser uen police différente ...)
Dernière modification par kevlar (Le 08/06/2009, à 16:43)
Hors ligne
#23 Le 08/06/2009, à 16:36
- kevlar
Re : Ella : projet de logiciel d'animation Flash & SVG pour Linux
cette version de mon programme est déjà éloignée de celle proposée sur le tuto Gtk, qui proposait d'automatiser ainsi l'appel à la callback pour "motion-notify" (et qui ne marche pas du tout chez moi ! J'en fournis une version adaptée à mon programme) :
gtk_signal_connect_object( GTK_OBJECT(scrolledLayersTimeLine), "motion_notify_event",
(GtkSignalFunc)EVENT_METHOD(TimeLineRuler, motion_notify_event),
GTK_OBJECT(TimeLineRuler) );
Dernière modification par kevlar (Le 08/06/2009, à 16:40)
Hors ligne
#24 Le 08/06/2009, à 16:39
- kevlar
Re : Ella : projet de logiciel d'animation Flash & SVG pour Linux
Je viens de lire ton code Python, et je précise que dans mon cas, le GtkRuler est sur la première ligne d'une GtkTable, que les autres lignes de cette GtkTable contiennent les GdkPixbufs, et que le GtkTable elle-même est intégrée dans une "scrolledwindow" nommé scrolledLayersTimeLine
Dernière modification par kevlar (Le 08/06/2009, à 16:39)
Hors ligne
#25 Le 08/06/2009, à 16:51
- kevlar
Re : Ella : projet de logiciel d'animation Flash & SVG pour Linux
sinon, j'ai une autre version du programme n'utilisant plus de GtkRulers, mais une règle fabriquée maison :
Dans cette version, l'intérêt est que la règle étant dans une fenêtre séparée, elle reste toujours visible. Mais il reste à implémenter la réaction de la fenêtre de la timeline aux déplacements en continu de la règle ...
Hors ligne