µLua DS - Forum officiel | Official forum Index du Forum

µLua DS - Forum officiel | Official forum
Le bon endroit pour en savoir plus sur MicroLua et pour parler de vos projets ! | The right place to learn more about MicroLua and talk about your projects !

 FAQFAQ   RechercherRechercher   MembresMembres   GroupesGroupes   S’enregistrerS’enregistrer   ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

[widget]LWidget
Aller à la page: 1, 2  >
 
Poster un nouveau sujet   Répondre au sujet    µLua DS - Forum officiel | Official forum Index du Forum -> Section française -> Coin du dév' -> Librairies
Sujet précédent :: Sujet suivant  
Auteur Message
geeker


Hors ligne

Inscrit le: 23 Déc 2012
Messages: 363

MessagePosté le: Sam 20 Avr 2013 - 13:47    Sujet du message: [widget]LWidget Répondre en citant

LWidget
gestion de widgets by Geeker
               


Cette lib est basique mais supporte plusieurs types de widget:
-Le button
-La barre (un scroll)
-Le menu (sélection parmi plusieurs choix)
-La progBarre (une barre de progression avec affichage du pourcentage)
-La liste (comme le menu mais rétractable)
-Le pressButton (comme le button, mais redevient off si le stylet est relâché)[suggestion de megagugus14]
-La case (une checkbox)
-Le grad (bouton +, bouton - et affichage du chiffre) [en cours]
-Le clavier (la déclaration est un peu différente)
-more ...

Ajouts futurs:
-gestion de l'alpha (widget:alpha()) [fait]
-gestion de graphismes (widget:graph())
-modification des couleurs (widget:color())
-modification de la position (widget:pos()) [fait]
-possibilité de creer des "familles de widgets" (pour faire moins de widget:draw()/widget:held())[fait]
-création d'une doc' [preque fait]
-support des positions négatives (c'est un surprise ^^) [fait]
-clavier intégré [fait]
-...

ScreenShot: (fait sur émulateur, les rectangles sont ratés sur le haut et le bas)



Cette lib a une utilisation simpliste:

Code:

require("LW") --on charge la lib
widget1 = LWidget.new("button", écran, x, y, tailleX, tailleY, "texte") --on crée un widget 'button'
while not Keys.held.Start do
 Controls.read()
 LWidget.draw(widget1) --on dessine le widget
 LWidget.held(widget1) --on fait en sorte qu'il marche (button, barre, menu et liste seulement)
 render()
end

LWidget.del(widget1) --on détruit le widget
LWidget.unload() --on décharge la lib



La lib possède plusieurs autres fonctions:

Code:

widget LWidget.new(type, écran, X, Y, tailleX, tailleY, param1, param2, param3, param4)
 crée un widget

void LWidget.draw(widget)
 dessine le widget widget à l'écran.

void LWidget.held(widget)
 active les fonctions de widget. Seulement utile aux boutons, barres, menus et listes.

val LWidget.state(widget)
 retourne la valeur de widget (sa position)

val LWidget.getParam(widget, param)
 retourne la valeur du paramètre param de widget.
void LWidget.setParam(widget, param, val)
 change le paramètre param de widget en val.

number LWidget.alpha(widget[, number])
 si number est un chiffre alors le niveau alpha du widget sera changé en number. Sinon la fonction retourne le niveau alpha 
 du widget.

group LWidget.group(widgets)
 retourne un groupe de widgets (widgets doit être une table avec des widgets dedans). Il suffit de faire groupe:all() pour 
 appliquer LWidget.draw() et LWidget.held() à tous les widgets dans le groupe . Les fonctions LWidget.state() et 
 LWidget.alpha() fonctionnent toujours indépendamment car les widgets dans le groupe ne sont que des raccourcis.

void LWidget.del(widget)
 détruit le widget widget.

void LWidget.unload()
 décharge la lib.



Le seul inconvénient est qu'il faut faire "LWidget.draw()" (widget:draw()) et "LWidget.held()" (widget:held()) sur tout les widget ... réglé en 0.3
Mais les graphismes sont révolutionnaires ! (hum)


téléchargements:
v0.1: ici

v0.2: ici
pre0.3: ici [dernière version]


Tout commentaires sont acceptés !

{{{Vous devez répondre à ce sujet pour voir la partie cachée}}}





_________________
Beta-testeur de l'extrème
Tox: FFBDC8B34DC3CDE51F8F1CB0A628147DE740ACD1D44682EB5492A681F6541E32E8D8BB6052B3
CtrµLua: ctrulua.github.io
Des p'tits true, des p'tits true, toujours des p'tits true ...


Dernière édition par geeker le Mer 22 Mai 2013 - 17:43; édité 22 fois
Revenir en haut
Visiter le site web du posteur
Publicité






MessagePosté le: Sam 20 Avr 2013 - 13:47    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
thermo_nono
Modérateur

Hors ligne

Inscrit le: 31 Déc 2008
Messages: 2 415
Localisation: La Géhenne

MessagePosté le: Sam 20 Avr 2013 - 15:52    Sujet du message: [widget]LWidget Répondre en citant

Okay
 
 
Citation:
Le seul inconvénient est qu'il faut faire "LWidget.draw()" et "LWidget.held()" sur tout les widget ...


ça c'est pas bien grave.
 
Citation:
Mais les graphismes sont révolutionnaires !

là par contre là, j'aurais aimé voir un screenshot. ^^
 
_________________
“Qui reçoit une idée de moi reçoit de la connaissance sans diminuer la mienne, comme celui qui allume sa chandelle à la mienne reçoit la lumière sans me plonger dans l’obscurité.” - Thomas Jefferson


Revenir en haut
Visiter le site web du posteur MSN
Fantasix
Modérateur

Hors ligne

Inscrit le: 26 Avr 2010
Messages: 1 317
Localisation: SCREEN_UP, en -1, -1

MessagePosté le: Sam 20 Avr 2013 - 18:12    Sujet du message: [widget]LWidget Répondre en citant

Évite de mettre des balises BBCode dans les balises "Code", ça ne fonctionne tout simplement pas :p

Pareil, j'attends les screenshots pour voir la révolution Very Happy

J'pense que tu peux aussi très facilement remplacer LWidget.draw(widget1) par widget1:draw() en modifiant quelques trucs.

Fanta'
_________________


BMA News :

Création du Homebrew Storage en cours ...


Revenir en haut
Visiter le site web du posteur
geeker


Hors ligne

Inscrit le: 23 Déc 2012
Messages: 363

MessagePosté le: Sam 20 Avr 2013 - 18:59    Sujet du message: [widget]LWidget Répondre en citant

Les balises, elles se sont mises là toutes seules :p me demande pas comment ...
Pour widget:draw(), je maitrise pas bien les metatables ... Mais (self) si !
_________________
Beta-testeur de l'extrème
Tox: FFBDC8B34DC3CDE51F8F1CB0A628147DE740ACD1D44682EB5492A681F6541E32E8D8BB6052B3
CtrµLua: ctrulua.github.io
Des p'tits true, des p'tits true, toujours des p'tits true ...


Revenir en haut
Visiter le site web du posteur
Reylak
Administrateur

Hors ligne

Inscrit le: 24 Nov 2008
Messages: 2 838
Localisation: Toulouse

MessagePosté le: Sam 20 Avr 2013 - 22:02    Sujet du message: [widget]LWidget Répondre en citant

Pas besoin des metatables en vrai, elles servent à rendre ça propre et proche du C++ par exemple, mais tu peux faire sans.
_________________


Plein d'infos sur le SourceForge !


Revenir en haut
Visiter le site web du posteur MSN Skype
Fantasix
Modérateur

Hors ligne

Inscrit le: 26 Avr 2010
Messages: 1 317
Localisation: SCREEN_UP, en -1, -1

MessagePosté le: Dim 21 Avr 2013 - 00:58    Sujet du message: [widget]LWidget Répondre en citant

Perso', au début je me basais sur le Timer.lua pour voir comment "bien" construire une "classe".

Après, tu fais tes propres modifs, etc... Et franchement, j'trouve ça super propre @_@

Fanta'
_________________


BMA News :

Création du Homebrew Storage en cours ...


Revenir en haut
Visiter le site web du posteur
Reylak
Administrateur

Hors ligne

Inscrit le: 24 Nov 2008
Messages: 2 838
Localisation: Toulouse

MessagePosté le: Dim 21 Avr 2013 - 09:33    Sujet du message: [widget]LWidget Répondre en citant

En fait les metatables pourraient te permettre d'ajouter la surcharge d'opérateur par exemple.
Déclarer les fonctions sous la forme Table:fonction() c'est déjà bien Smile
_________________


Plein d'infos sur le SourceForge !


Revenir en haut
Visiter le site web du posteur MSN Skype
megagugus14


Hors ligne

Inscrit le: 03 Aoû 2012
Messages: 168

MessagePosté le: Dim 21 Avr 2013 - 09:35    Sujet du message: [widget]LWidget Répondre en citant

C'est pas mal mais il n'y a pas de Button qui ne sont pas Toggle ? (autrement dit qui ne reste pas appuyés quoi)

Et aussi, quand tu déplace le slider, si tu sors du scroller bah ça marche plus, tu devrais plutôt laisser le scroll sélectionné tant que le stylet est appuyé.
_________________
Programmeur à 11 ans... Quoi, t'as un problème ?


Revenir en haut
MSN
geeker


Hors ligne

Inscrit le: 23 Déc 2012
Messages: 363

MessagePosté le: Dim 21 Avr 2013 - 09:43    Sujet du message: [widget]LWidget Répondre en citant

le slider: ben, j'ai fais au plus simple ^^ mais je vais corriger ça dans une future version.
les boutons non toggle: tu fais:
Code:

if button.param[5] then
 [tonCode]
 button.param[5] = false
end

Ou alors:
Code:

if LWidget.state(button) then
 [tonCode]
 LWidget.setParam(button, 5, false)
end

Mr. Green C'est une des phases cachée de la lib, le param[5] .
_________________
Beta-testeur de l'extrème
Tox: FFBDC8B34DC3CDE51F8F1CB0A628147DE740ACD1D44682EB5492A681F6541E32E8D8BB6052B3
CtrµLua: ctrulua.github.io
Des p'tits true, des p'tits true, toujours des p'tits true ...


Revenir en haut
Visiter le site web du posteur
megagugus14


Hors ligne

Inscrit le: 03 Aoû 2012
Messages: 168

MessagePosté le: Dim 21 Avr 2013 - 09:57    Sujet du message: [widget]LWidget Répondre en citant

Faudra faire ça dans une autre classe.  Very Happy
_________________
Programmeur à 11 ans... Quoi, t'as un problème ?


Revenir en haut
MSN
geeker


Hors ligne

Inscrit le: 23 Déc 2012
Messages: 363

MessagePosté le: Dim 21 Avr 2013 - 11:34    Sujet du message: [widget]LWidget Répondre en citant

Ben, je finis le code pendant les vacances, et je poste ça à mon retour !
Sinon, qu'est-ce que vous pensez des graphismes ? Mort de Rire
_________________
Beta-testeur de l'extrème
Tox: FFBDC8B34DC3CDE51F8F1CB0A628147DE740ACD1D44682EB5492A681F6541E32E8D8BB6052B3
CtrµLua: ctrulua.github.io
Des p'tits true, des p'tits true, toujours des p'tits true ...


Revenir en haut
Visiter le site web du posteur
megagugus14


Hors ligne

Inscrit le: 03 Aoû 2012
Messages: 168

MessagePosté le: Dim 21 Avr 2013 - 14:03    Sujet du message: [widget]LWidget Répondre en citant

C'est plutôt beau. Mais je trouve que pour les boutons il y a trop d'espaces entre les deux rectangles.
_________________
Programmeur à 11 ans... Quoi, t'as un problème ?


Revenir en haut
MSN
geeker


Hors ligne

Inscrit le: 23 Déc 2012
Messages: 363

MessagePosté le: Ven 26 Avr 2013 - 13:08    Sujet du message: [widget]LWidget Répondre en citant

??? Trop d'espace ? Ben tu code pour arranger ça Wink ! Si tu parle des rectangles qui constituent le bouton, c'est un bug ...
Je release la nouvelle version!
changelog:
  • Ajout des TButtons: ils redeviennent off si on les relâches .
  • Ajout de la liste.
  • ajout des ":draw()", ":held()" etc.
téléchargement: ici .
_________________
Beta-testeur de l'extrème
Tox: FFBDC8B34DC3CDE51F8F1CB0A628147DE740ACD1D44682EB5492A681F6541E32E8D8BB6052B3
CtrµLua: ctrulua.github.io
Des p'tits true, des p'tits true, toujours des p'tits true ...


Revenir en haut
Visiter le site web du posteur
Fantasix
Modérateur

Hors ligne

Inscrit le: 26 Avr 2010
Messages: 1 317
Localisation: SCREEN_UP, en -1, -1

MessagePosté le: Ven 26 Avr 2013 - 13:24    Sujet du message: [widget]LWidget Répondre en citant

J'attends toujours de voir des screenshots moi @_@

Pourquoi "TButtons" ?

Fanta'
_________________


BMA News :

Création du Homebrew Storage en cours ...


Revenir en haut
Visiter le site web du posteur
geeker


Hors ligne

Inscrit le: 23 Déc 2012
Messages: 363

MessagePosté le: Ven 26 Avr 2013 - 13:30    Sujet du message: [widget]LWidget Répondre en citant

Tbuttons, pour la simple et bonne raison que ce sont des boutons non-toggle, donc ma logique énormément développée nulle m'a dit de mettre TButtons ... Oui je sais, c'est zarb è_é ...
_________________
Beta-testeur de l'extrème
Tox: FFBDC8B34DC3CDE51F8F1CB0A628147DE740ACD1D44682EB5492A681F6541E32E8D8BB6052B3
CtrµLua: ctrulua.github.io
Des p'tits true, des p'tits true, toujours des p'tits true ...


Revenir en haut
Visiter le site web du posteur
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 10:25    Sujet du message: [widget]LWidget

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    µLua DS - Forum officiel | Official forum Index du Forum -> Section française -> Coin du dév' -> Librairies Toutes les heures sont au format GMT + 1 Heure
Aller à la page: 1, 2  >
Page 1 sur 2

 
Sauter vers:  

Index | Creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com