Home Forums Wiki Doc Install Extras Screenshots Source Code Projects Blog Users Groups Register
Glx-Dock / Cairo-Dock List of forums Technical discussions | Discussions techniques Jauges en forme de barre
The latest stable release is the *3.4.0* : How to install it here.
Note: We just switched from BZR to Git on Github! (only to host the code and your future pull requests)
Technical discussions | Discussions techniques

Subjects Author Language Messages Last message
[Locked] Jauges en forme de barre [Bug #60]
Page : 1 2 3 4 5 6
SQP Français 103 nochka85 [Read]
05 January 2011 à 20:33

SQP, Monday 26 July 2010 à 10:20


Subscription date : 03 July 2010
Messages : 1081
bah ca implique de tourner toutes les textures, mais oui forcement ca sera mieux a long terme.
il m'a semblé voir passer une variable orientation a un moment, je vais voir ce que je peux en faire

mais je garde quoi comme clé xml ?
orientation de base ? en montant ca doit etre le cas le plus courant

et tu peux me confirmer que c'est normal ca : Icone : Taille = 15 x 0 (ou 0 x 15 en mode vertical) ?

fabounet, Monday 26 July 2010 à 10:34


Subscription date : 30 November 2007
Messages : 17118
taille = width x height
sachant que width = largeur de l'icône indépendamment de l'orientation (donc en mode vertical c'est la dimension sur l'axe y)
éventuellement on peut se baser sur le rapport w/h de l'icône pour décider de la meilleurs façon de la dessiner.

par exemple Switcher ou Clock font comme ça pour placer les différents bureaux et la date par rapport à l'heure.

SQP, Sunday 15 August 2010 à 14:38


Subscription date : 03 July 2010
Messages : 1081
Quitte à pull fab, autant le faire bien.

Alors j'ai avancé un peu mon idée.
  • Tourner la texture : Je vais avoir besoin de toi pour ca (au chargement et changement de position du dock) si on a la clé xml qui va bien. A redéfinir vu que x_ratio ou ratio ca va plus. Je propose Fluid ou Display_Fluid (terme css opposé au fixed).
  • Affichage du texte : Si le dock est vertical, même si je réduit la hauteur du plugin, j'arrive à un truc qui me convient bien. Mais dans l'autre sens l'affichage est illisible et crade (j'avais fait le thème vertical sans texte). Si j'élargit un peu la reflexion, j'arrive à ca :
    • Ajout d'une option "Via le thème" pour l'affichage des valeurs du plugin. Ca complète bien l'option et ajoute un peu de personalisation
http://uppix.net/3/4/b/0b13455882b11cfccfd35d0d05ee1.png
  • J'ai commencé à regarder un peu les codes de alsamixer et netspeed pour ajouter la gestion de thèmes de jauges à l'affichage du volume. Vu qu'ils ont pas l'air d'avoir la même structure, ca doit être faisable, mais ca m'oblige à me plonger complètement dans le code. Alors j'ai 2 questions :
    • est ce que c'est une bonne porte d'entrée ?
    • ou est ce que tu préfère le faire (vitesse ou complexité) ?

fabounet, Monday 16 August 2010 à 11:30


Subscription date : 30 November 2007
Messages : 17118
en fait je pense de plus en plus qu'il vaudrait mieux écrire un DataRenderer dédié aux barres de progression.
ça laisserait plus de libertés pour les personnaliser (dégradé entre 2 couleurs, dessin partiel d'une image, ou dessin d'un motif)
on pourrait aussi choisir de dessiner verticalement ou horizontalement suivant la taille de l'icône (donc dynamiquement).
le code ressemblerait plus à celui des graphes, mais en ne dessinant que la dernière valeur.
par contre c'est sûr c'est pas trivial

SQP, Monday 16 August 2010 à 12:38


Subscription date : 03 July 2010
Messages : 1081
je sais pas si il y a bcp d'autres barres dégradés (à part dans l'alsamixer), mais oui ca pourrait etre interessant d'avoir un truc dédié (au niveau du choix gauge/graph ?).
J'avais commencé par regarder du coté d'un dégradé 2 couleurs, et j'en suis vite arrivé à la conclusion que ca me plaisait pas.

Par contre des que j'ai fait un svg avec la 3e couleur un peu décalée, ca me convenait plus. J'ai vite conclu aussi qu'avec le moteur actuel ou le nombre d'images du thème determine la précision, j'aurais pas ce que je voulais. Je m'étonne même que le besoin n'ai pas été exprimé plus tôt (c'est chiant de faire 20 svg pour de la précision à 5%).
La découpe dynamique est je pense un gros besoin, parce que ca permet de faire un thème en 2 ou 3 images sans prises de tête, et donc des contributions beaucoup plus simples.

Et j'en viens à me demander si il ne faudrait pas une option permettant de choisir l'orientation. Je veux dire, si quelqu'un préfère avoir des barres horizontales sur un dock horizontal, il devrait pouvoir. Ou des barres qui vont du haut en bas pour un dock en haut.

Si on veut éviter de multiplier les thèmes presques identiques, il faudrait pouvoir leur integrer des options. Le mien pourrait avoir le choix des 3 couleurs, le slider pour la position de celle du milieu, l'orientation, et pourquoi pas l'affichage du texte (si ma proposition plus haut est rejetée). Voire en étant gourmand la possibilité de changer front et background, et des thèmes de couleurs et images prédéfinis. Avec ca t'as déjà largement couvert toutes les options du dégradé 2 couleurs.
(et on pourrait grouper les vistaish avec une option de choix du set d'images)

Je précise quand même que mon petit patch est actif sur mon dock depuis plus d'un mois, et que je ne l'imagine déjà plus sans.
Il ne fait que 20 lignes et bénéficie des animations (j'ai juste un peu changé la fonction d'affichage si on est en présence de la clé prévue), donc je ne vois pas l'avantage de passer par un code proche des graphes (plus leger surement)

fabounet, Monday 16 August 2010 à 17:45


Subscription date : 30 November 2007
Messages : 17118
e ne vois pas l'avantage de passer par un code proche des graphes


je pense que pour toutes les raisons que tu as cité précédemment, il vaut mieux faire un truc à part (le code est fait façon objet, avec des pointeurs de fonctions), plutôt que d'alourdir les jauges en voulant à tout prix tout faire rentrer dedans.
je sais que c'est plus dur, mais au final ce sera aussi plus mieux

typiquement ici on pourrait avoir une image de 100 pixels, dont on n'afficherait que les N premiers pixels (avec N = le pourcentage courant); c'est juste ue idée.

Shortcuts affiche une barre par exemple, et toutes celles qui affichent des jauges pourraient afficher des barres aussi.

SQP, Monday 16 August 2010 à 21:35


Subscription date : 03 July 2010
Messages : 1081
typiquement ici on pourrait avoir une image de 100 pixels, dont on n'afficherait que les N premiers pixels (avec N = le pourcentage courant); c'est juste ue idée.


ca marche déjà (la première version écrasait la texture, mais j'ai amélioré), et ya encore surement moyen de faire mieux
Sur ce que j'ai vu et fait (mate le patch), c'est la même chose des 2 cotés : un thème défini en xml, des textures et des paramètres à charger la dedans.
La seule différence c'est que dans le 1er cas, on charge plein de textures, et on affiche la bonne. Dans le 2e, on en charge une seule et on la découpe.
Pas besoin de réinventer la roue, j'ai juste modifié la fonction finale d'affichage de 6 lignes pour le découpage au lieu de l'affichage complet (et la dérive d'appel si je trouve la clé)

-si tu peux m'auditer le patch
-orientation : je pense maintenant qu'il faut une option pour laisser l'utilisateur choisir (comme parametre par applet en mode "gauge"), valable toujours aussi pour les thèmes actuels. On pense toujours principalement à un dock en bas, mais dans les autres positions, on peut avoir d'autres besoins.
-affichage ou pas du texte : tu penses quoi d'ajouter au select no/icon/label l'option "theme" pour completer le choix (et supprimer l'ecart entre mes 2 thèmes)
-taille carrée par défaut (pas génant, juste mettre une info pour prevenir qu'on peut changer dans les thèmes prévus pour)

Ensuite pour les dégradés, oui j'étais à l'ouest ca a rien a voir. Ca serait donc cool d'avoir ca dans un moteur similaire aux graph/gauge, comme ca on pourrait avoir du choix pour l'affichage du volume (qui jure un peu avec le reste du dock, alors que pour les raccourcis ca rend pas mal). En étant gourmand, je proposerais bien un vrai éditeur de dégradé comme dans inkscape, parce que les 2 couleurs ca rend pas terrible.

Avoir des thèmes figés, c'est pas aussi bien qu'un dégradé personnalisable, mais on l'a pas non plus cette personnalisation actuellement, et même avec un beau dégradé, ca rend vite plat. C'est pour ca que j'essaye de faire avancer mon truc (qui simplifierait aussi beaucoup la création et la maintenance de thèmes)

Vu que t'as l'air ok, je vais (essayer de) bosser sur les thèmes de jauge pour alsamixer (ou j'ai besoin d'attendre si t'as besoin de faire des modifs dessus pour déplacer du code spécifique avant ?)

fabounet, Tuesday 17 August 2010 à 12:14


Subscription date : 30 November 2007
Messages : 17118
En étant gourmand, je proposerais bien un vrai éditeur de dégradé comme dans inkscape, parce que les 2 couleurs ca rend pas terrible.

ça serait trop complexe, par contre en autorisant d'afficher une image, on pourrait lever cette contrainte.
l'image serait soit tronquée, soit compressé, soit répétée en motif.
avec une image en fond (celle de l'icône).

il y'a qques autres trucs que je voulais passer en DataRenderer aussi (l'effet zoom et l'effet transparence, qui sont codés par l'applet directement).
c'est juste de l'amélioration de code ceci dit, mais le tout serait bien plus homogène.
ah, saletés de 24h, c'est cette contrainte-là qu'il faudrait faire sauter en premier

matttbe, Tuesday 17 August 2010 à 13:41


Subscription date : 24 January 2009
Messages : 12573
ah, saletés de 24h, c'est cette contrainte-là qu'il faudrait faire sauter en premier
+1 !
Où qu'elle est la pétition m'sieur?

SQP, Tuesday 17 August 2010 à 15:38


Subscription date : 03 July 2010
Messages : 1081
ah, saletés de 24h, c'est cette contrainte-là qu'il faudrait faire sauter en premier


c'est la faute de dieu. Si il avait pas procrastiné tout le dimanche, il aurait pris 5 min pour creer un 8e jour !

ça serait trop complexe, par contre en autorisant d'afficher une image, on pourrait lever cette contrainte. l'image serait soit tronquée, soit compressé


already work !!! tronquée (l'actuelle) ou compressée (la fonction doit se trouver dans ma première proposition sur le sujet) ca pose aucun problème, les différences sont minimes sur la fonction d'affichage, et je pense pas qu'une série de if pour savoir quelle fonction utiliser nous coute bcp.

Pour ce que j'ai fait, l'utilisation du moteur de jauges actuel est un vrai plus. J'ai la gestion de images de foreground et background pour donner du relief à mon truc, et le texte bien placé.

Ajouter les options transparence et zoom à ce niveau serait pas trop dur je pense, et ca permettrait de faire des thèmes adaptés.

Par contre, ca pourrait etre bien dans un 4e DataRenderer "icon" (avec graph, jauge et dégradé) qui pourrait avoir ce genre d'options, plus découpage et compression et le choix de l'image (j'aimerais bien voir ce que donnerait un system monitor avec une belle icone dont la transparence serait modulée en fonction de l'activité).
Pour l'option pavage, j'ai un exemple de possible utilisation, mais ca complique les options, donc j'imagine que ca serait pas pour tout de suite. (parfait pour rentrer dans une roadmap sur le sujet) http://uppix.net/e/2/e/ac7005bf42a1192b4d8163e3d3fcb.png

Actuellement mon option pour dire qu'il faut tronquer est dans le fichier de thème. Je sais pas si c'est possible de faire des thèmes dont l'affichage serait bien en mode tronqué et en mode compréssé. C'est pour ca que j'ai pas proposé de faire remonter l'option au niveau utilisateur (le choix se ferait en fonction du thème choisi : multiples svg, tronqué ou compréssé).
Enfin je me suis pas attardé sur l'option compréssé parce que j'ai pas trouvé le rendu terrible (mais c'est pas dur à prévoir, juste à définir une clé).

Si on se met d'accord sur l'emplacement et la nature de ces options (et les autres problèmes soulevés), je pourrais avancer sur le sujet.

Pour l'alsamixer, il suffirait de proposer le choix entre jauge, dégradé et image.
Et si je mate les images fournies par défaut, il faudrait peut être les modifier pour ne garder que la partie supplémentaire broken ou mute et l'afficher au dessus de l'icone d'origine. (enfin c'est un comportement différent, qui aide celui qui veut changer l'icone de base facilement, mais pénalise celui qui voudrait 3 icones complètement différentes).

On arriverait à ces options :
  • Gauge
    • Orientation : ltr, rtl, ttb, btt
  • Gradient
    • Colors (2 + bg, ou editeur)
    • Orientation (en degré ?)
  • Icon
    • Effect : zoom, transparency, crop, stretch
    • Application : sur l'icone du plugin, ou sur une autre image
    • Image : l'image en plus
    • (+ spécial alsamixer broken & mute icon)


/me want to contribute et j'aime l'idée de nettoyer l'alsamixer avant de le faire évoluer, alors je me penche dessus.

ça serait trop complexe


qu'est ce qui serait trop complexe ? l'utilisation, l'integration d'un editeur existant, ou le rendu final du dégradé ?
Parce que je trouve que tous les dégradés proposés dans le dock bénéficieraient bien de cette option.

matttbe, Tuesday 17 August 2010 à 17:29


Subscription date : 24 January 2009
Messages : 12573
/me want to contribute
Excellent ça

N'hésite pas à regarder l'aide à propos de BZR, c'est tjs plus simple et plus rapide pour Fab ou la personne qui s'occupe de l'intégration des patches => Aidez-nous grâce à BZR

SQP, Tuesday 17 August 2010 à 19:45


Subscription date : 03 July 2010
Messages : 1081
justement je voulais mater un peu le fonctionnement de bzr pour ca.
je bloque à :

Vous pouvez également changer le nom associé à la clé ssh. Vous pouvez le voir avec la commande
bzr whoami
Pour le changer :
bzr whoami "Votre Nom, pseudo, email et/ou autre"
Si vous désirez lié vos commit à votre compte launchpad, utilisez cette syntaxe :
bzr whoami "pseudo <em@il>"
en donnant le pseudo et l'email (absolument entre <...>) de votre compte Launchpad (pas de soucis pour les spams, c'est prévu)


c'est quoi le mail du compte launchpad ?

et dès que je fais bzr init, ca crée une branche locale à mon nom ?

ensuite il me faut des conseils pour optimiser mon developpement. J'utilise geany pour le php, il a l'air pas mal aussi pour le C++, donc je vais le garder pour le moment. Mais pour la compilation, ya un moyen d'eviter de tout compiler quand je veux tester des changements sur un seul plugin ?

matttbe, Tuesday 17 August 2010 à 21:19


Subscription date : 24 January 2009
Messages : 12573
Bzr whoami, c'est surtout pour faire joli
Donc ton pseudo est "meuarrr" et ton adresse mail est celle dispo sur ta page LP (mais que tu as décidé de la cacher)

et dès que je fais bzr init, ca crée une branche locale à mon nom ?
Yep, mais une branche locale, c'est utile si tu pars de zéro (peut être pratique pour la création d'une nouvelle applet mais même, il te faudra modifier des CMakeLists.txt). Ici, je pense que tu ne feras que des modifs sur qqc d'existant. Les commandes seront donc principalement:
cd cairo-dock-plug-ins/xxx/src/
bzr pull # on vérifie que l'on a bien la dernière rev!
# modif du fichier Y et ajout de X
bzr add X
bzr status ## tout est bon?
bzr cdiff ## certain ? :)
bzr pull ## on vérifie que l'on a bien la dernière rev et pas de conflits (rare ;) ) !
bzr commit -m "Added X (why?) and modified Y (why?)"
bzr push lp:~meuarrr/cairo-dock-plug-ins/pouic
Et ne pas oublier un petit message prévenant de la modif (en passant par la page de ta branche sur Launchpad ou non)

Ensuite, il est p-ê préférable de travailler sur une copie du dossier de la branche si la modif prend plusieurs jours et que l'on désire faire qqs commit entre temps comme point de sauvegarde ou autre. Une fois fini, on repasse sur la branche qui est "propre" et on lance
bzr merge lp:~meuarrr/cairo-dock-plug-ins/pouic
Ce n'est pas obligatoire mais si ça peut t'éviter des conflits, why not

Pour la compil, si tu utilises le script, tu peux te rendre dans le dossier 'build/APPLET' pour lancer ton make. Si tu veux tester une compil depuis zéro, suffit de virer le dossier build puis de lancer
cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Debug
## cd APPLET
make -j $(grep -c ^processor /proc/cpuinfo)
+ make install

fabounet, Wednesday 18 August 2010 à 11:06


Subscription date : 30 November 2007
Messages : 17118
(j'aimerais bien voir ce que donnerait un system monitor avec une belle icone dont la transparence serait modulée en fonction de l'activité).

oui c'est de ça dont je parlais
je me suis mal exprimé, je pensais à un 4eme et 5eme data renderer, tout simples, qui module juste la transparence / le zoom en fonction du pourcentage.

tu pars sur carrément des thèmes de barres. ok, je pensais juste à un truc simple au début, mais c'est vrai qu'il y'a des rendus sympas qui pourrait être proposés facilement à l'utilisateur si on fait des thèmes.

pour les options, je pense que ça serait du même genre que les jauges (un .xml) :
position x/y du début de la barre, longueur (tout entre 0 et 1)
type de dessin : dégradé/image
couleurs : une liste de N couleurs pour le dégradé
image : fichier, tronquée/étirée/répétée
label : peut afficher un label (comme mem/swap), position x/y, largeur/hauteur
valeur : peut afficher la valeur, position x/y, largeur/hauteur

à voir si on répète ça pour chaque valeur, ou si on laisse le dock se débrouiller pour afficher N fois

il y'aura peut-être des ajouts à faire sur l'API des data-renderer, c'est une bonne occasion d'améliorer tout ça
je peux les faire si ça descend trop bas.

matttbe, Thursday 19 August 2010 à 22:59


Subscription date : 24 January 2009
Messages : 12573
Je voulais ajouter un commentaire à ce sujet http://www.glx-dock.org/bg_topic.php?t=4703
Mais c'est peut-être mieux de le mettre ici
The gauges are really nice
But is it provided to add a text above/bellow these gauges?

SQP, Friday 20 August 2010 à 00:17


Subscription date : 03 July 2010
Messages : 1081
yes, of course, and that's a nice question that will allow me to explain what's possible actually with the dock (using system monitor) :
  • Icon default text : 40x40 size with white text, with black text, with 20 or 15 px height, the text bugs under the icon, sometimes hidden under the icon below. (but that seem to be a limitation of the actual text rendering when icon is resized)
  • Theme text : using a simple black text in theme, sizes are the same : 40, 20, 15, even at 10px it's really small but still readable.
http://uppix.net/d/f/a/c29e82b955fda84cbdfdddced49a1.png

Problems I have :
  • Theme text info is hardcoded, and I can't disable it without editing. So if my theme has some text info, I'm forced to use them, and almost them only, as having 2x the same text won't help. I already mentionned that point earlier in the thread. I would like to add the option "theme" to the select no/icon/label l'option
  • Some more options about text could be nice, like adding per applet font/color/position
  • or we could see this as theme options
  • +the one I need to work on, related to applet rotation.


and that below option sounds cool too, but it's another question

fabounet, Friday 20 August 2010 à 10:51


Subscription date : 30 November 2007
Messages : 17118
normalement si un datarenderer peut écrire les valeurs lui-même, le dock n'affichera pas de quick-info (j'ai bien dis normalement :mrgreen: )
c'est à lui de l'indiquer dans pRenderer->bCanRenderValueAsText
pour l'instant ce n'est pas utilisé, et l'applet affiche les valeurs en quick-info elle-même (pRenderer->bWriteValues est à FALSE)

ce qui explique que tu aies les valeurs en double je pense

SQP, Friday 20 August 2010 à 10:58


Subscription date : 03 July 2010
Messages : 1081
c'est simple à produire : avoir un thème avec affichage de la valeur, et activer l'option "Afficher les valeurs" en "sur l'icone" (la ou je veux pouvoir avoir mon option "avec le thème" qui laisserait le choix à l'utilisateur l'info il préfère (cohérent avec les autres, ou en accord avec le thème).

Un petit exemple pour bien voir : en combinant mes 2 bugs (l'info du thème est tournée avec l'ensemble du thème)
http://uppix.net/8/2/3/bf07c65333d6e1bb14832f7d88ad0.png

SQP, Friday 20 August 2010 à 11:06


Subscription date : 03 July 2010
Messages : 1081
petit complément du même exemple détaché du dock avec un 2e thèmes (un vistaish)
http://uppix.net/2/f/5/482d51248faca5f80baf9edd965d7.png

ce qui me ramène à la remarque de matttbe, oui on devrait pouvoir faire un thème ou le graphique prend par exemple 70% de l'espace en haut et le texte la partie basse. Il tournera pas bien, mais devrait etre sympa qd même dans les 2 positions du dock, aussi bien qu'en desklet (mais il dira pas ce qui est monitoré comme avec le default text, c'est pour ca que je veux le choix)

fabounet, Friday 20 August 2010 à 11:46


Subscription date : 30 November 2007
Messages : 17118
en passant, c'est bizarre comme le texte de la jauge bleue est décalé
normalement il est centré (et on voit les 2)

Technical discussions | Discussions techniques

Subjects Author Language Messages Last message
[Locked] Jauges en forme de barre [Bug #60]
Page : 1 2 3 4 5 6
SQP Français 103 nochka85 [Read]
05 January 2011 à 20:33


Glx-Dock / Cairo-Dock List of forums Technical discussions | Discussions techniques Jauges en forme de barre Top

Online users :

Powered by ElementSpeak © 2007 Adrien Pilleboue, 2009-2013 Matthieu Baerts.
Dock based on CSS Dock Menu (Ndesign) with jQuery. Icons by zgegball
Cairo-Dock is a free software under GNU-GPL3 licence. First stable version created by Fabounet.
Many thanks to TuxFamily for the web Hosting and Mav for the domain name.