Home Forums Wiki Doc Install Extras Screenshots Source Code Projects Blog Users Groups Register
Glx-Dock / Cairo-Dock List of forums Ideas | Propositions [Graphs] Changement dans la configuration
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)
Ideas | Propositions

Subjects Author Language Messages Last message
[Locked] [Graphs] Changement dans la configuration
Page : 1 2 3
SQP Français 59 lylambda [Read]
25 October 2011 à 18:23

fabounet, Wednesday 10 August 2011 à 13:13


Subscription date : 30 November 2007
Messages : 17118
Apparemment avec cairo, pour dessiner un trait vertical de 1 px de largeur sur le pixel 1, il faut se placer à x=1.5, sinon il l’étale salement sur 2 px.

tout à fait, en fait j'ai noté la même chose avec Opengl, si tu regardes le code qui dessine les labels, je les aligne sinon ils sont flous (pour les icônes ça se voit pas)


(et un énorme merci à matttbe pour sa réactivité de coté la, autant sur le forum que pour les merge, je crois que mes 4 patchs plugins, dont un nouvel applet, ont été vérifié, patché et intégré dans les 24h)

je te rejoins complètement

concernant les contributions on en a eu beaucoup (surtout au début du projet, normal il y'avait tout à faire), et j'ai essayé de faire un core qui soit carré pour que les gens désireux de contribuer puissent utiliser une API digne de ce nom, et ne pas avoir à faire des hacks (globalement je suis satisfait de ce côté-là, les applets écrites par d'autres que moi sont toutes très réussies )

évidemment que j'accepte les patchs dans le core, tu n'es pas le premier, mais je manque cruellement de temps (et puis je fais aussi ça pour m'amuser, donc les priorités ne sont pas ce qu'elles devraient être ).
Comme on arrive en fin de cyle (2.4) j'ai pris le temps de relire tout ce que Matttbe et toi avez fait, et j'intègrerai tes patchs (ou Matttbe) dans la semaine, vu que le résultat a l'air très sympa.

matttbe, Wednesday 10 August 2011 à 13:21


Subscription date : 24 January 2009
Messages : 12573
Merci beaucoup!

Et désolé pour la charge de travail supplémentaire

lylambda, Wednesday 10 August 2011 à 13:37


Subscription date : 06 September 2009
Messages : 1635
Petite note externe, sachez les utilisateurs assidus tel que moi vous remercies tous pour votre travail respectif!
À titre perso, même si je n'ai pas le 10ème de vos compétences respectives et que je ne me permets pas de commenter les sujets aussi pointus que celui-ci, j'aime beaucoup les suivre afin d'avoir une idée du chemin que prend le dock. Bref, je suis content de voir que le dock, outre ses main-dev que sont Fabounet ou Matttbe, reçoit des contributions d'autres codeurs doués comme SQP (il faut admettre que tu es un exemple rare !).

Donc syouplait soyez toujours copains pour que le Dock soit encore plus mieux que bien

PS : Ces jauges m'ont toujours paru intéressantes mais pour les utiliser actuellement, il faut passer par le code ou il existe déjà une interface graphique ?

fabounet, Thursday 11 August 2011 à 12:16


Subscription date : 30 November 2007
Messages : 17118
il faut tripoter le theme.xml
une ihm pourquoi pas (pas forcément dans le dock d'ailleurs), mais un bon README serait déjà très utile.

SQP, Sunday 14 August 2011 à 12:24


Subscription date : 03 July 2010
Messages : 1081
lylambda :
je ne me permets pas de commenter les sujets aussi pointus que celui-ci


au contraire, il faut se permettre. Même si tu comprend pas comment je fais ou tout ce que je dis (j'ai certains trucs ou je préfère être précis pour les codeurs), tout le monde à son mot à dire sur ce qu'il pense des propositions et surtout du rendu. La, en plus des debug, j'ai mis plusieurs petites modifs dont certaines paraissent très simples. Mais j'ai besoin de savoir l'effet que ca peut avoir sur d'autres personnes. (merci matttbe pour la confirmation)

Je sais faire plein de trucs, mais je suis vraiment nul en graphisme, alors il me faut vraiment le maximum d'avis et commentaires sur mes screens d'exemple. Déjà qu'il y a assez peu de contributeurs réguliers au forum, ça serait dommage que vous vous reteniez de vous exprimer

lylambda :
PS : Ces jauges m'ont toujours paru intéressantes mais pour les utiliser actuellement, il faut passer par le code ou il existe déjà une interface graphique ?


Les jauges viennent de rentrer dans le core (#826). Une fois la version à jour installée, à part l'installation du thème dans le bon répertoire (extra/gauges), il n'y a pas grand chose à faire.
C'est juste un thème qui permet d'utiliser au mieux toutes les possibilités des applets : avoir autant d'indicateurs qu'on veut et de la taille qu'on veut.
Tu auras même une base si tu veux le modifier pour y mettre tes couleurs ou images. Mon thème c'est juste 3 images de dégradés 3 couleurs plus les images de fond et de reflets à l'avant. Fait avec quelques formes simples sous Inkscape, c'est très simple à modifier.

Et merci pour les encouragements.

Attention si tu réponds ca sera ton 1000e

Retour au sujet initial :

1. La factorisation de la fonction de creation de graph
J'avais préparé un premier patch qui réparait juste mon bug sur les 7 applets. Puis corrigé la faute d'orthographe commune. Et je me suis dit que le patch était trop moche, et que ce code méritait d'avoir son appel commun dédié. J'en suis convaincu depuis que j'ai commencé, il y a plus d'un an, à bosser sur les jauges ou le besoin est le même. Cette alloc mémoire est trop bas niveau pour du code d'applet, et l'API devrait fournir une fonction de création pour ces objets.

2. Première tentative d'amélioration des graphs avec le réalignement du graph BAR sur les pixels #827:
-Affichage du bon nombre de valeurs (utilisation de n = fWidth = pRenderer->iWidth - 2*fMargin)
-Affichage sur le pixel et pas entre les entre deux (le petit décalage de 0.5px dont j'ai parlé plus haut)
-Affichage seulement si il y a une valeurs à afficher (le petit bonus sympa)

Ce patch est tout simple en fait. Juste une petite question de réglages.
J'ai commencé par le BAR parce que c'est celui qu'il me fallait mais qui était trop moche avant. Si inclusion, je fignole les lignes et je mate les ronds.

3. Changement du calcul des marges et du radius pour l'affichage du graph et de ses coins #828
Ca a été plus compliqué que prévu de trouver une formule qui évite de perdre trop de place sur les arrondis, mais je pense avoir un truc assez propre sans gaspillage (voir le screen). Il y a une variable ajustable pour rapprocher ou éloigner l'arrondi du cadre du graph (voir le code).

4. Lors de mes tests, j'ai été confronté au problème des desklets qui démarrent avec une taille de 1x1. J'ai alors compris l'intérêt du fallback à 10 sur le radius. Ca me parait plus être un bug lié au chargement des applets. Est ce qu'il existe un moyen de contrer ca, ou de réajuster la taille du graph une fois la taille de l'applet connue ?

5. Les petits triangles en bas à droite sur le screen, c'est un problème avec je crois la nouvelle flèche de redimensionnement des dialogues (ca m'en fout un peu partout dans mon dock, 1 par zone je crois)

6. Pour tester les multiples configurations, j'ai été amené à dupliquer des applets. Mais j'ai eu l'impression qu'il copiait la config d'une instance de l'applet au hasard (pas toujours celui ciblé). Quelqu'un peut confirmer ?

Voici le screen en zoom x2 du résultat des 2 patchs avec un dock taille 48 et des desklets de taille 32, 48, 64, 96, 128 et 192 pour bien voir l'effet dans les coins.
http://uppix.net/9/3/2/d115e14b7e9c1d7711d07b1e6b677.png

SQP, Monday 15 August 2011 à 12:24


Subscription date : 03 July 2010
Messages : 1081
7. Utilisation d'images pour le fond et le dessin du graph.
Maintenant qu'on a bien divergé (et que j'ai bien le code en main), je peux revenir un peu vers mon vrai sujet de départ, et j'ai fait quelques essais pour avoir des images plus jolies que ce qu'on peut avoir avec nos options actuelles.
Bah mon opinion maintenant, c'est que je m'en fous de comment on va l'implémenter, mais il me faut cette option d'une façon ou d'une autre

http://uppix.net/4/4/d/5b22a6ab2f83f3b719e89a9a9a966.png

8. Différence entre inDock et Desklets
J'arrivais pas à comprendre pourquoi j'avais toujours pas réussi à afficher les axes horizontaux proprement. Et puis un passage en desklet m'a montré un affichage nickel. J'ai donc mis sur le screen mes 2 applets identiques en vis-à-vis, et on voit bien qu'il y a une différence juste pour cette partie. Je ne vois pas trop pourquoi, mais peut-être que fabounet aura une idée.

9. Crash au passage en mode Desklet
Surement un effet secondaire d'une de mes modifs (problème de MemorySize ?), il faut que je cherche ça.

SQP, Monday 15 August 2011 à 18:15


Subscription date : 03 July 2010
Messages : 1081
Nouveau screen avec un fond de graph fait maison (un carré, avec un dégradé radial 2 couleurs) et appliqué au fond de chaque zone de graph.

Plus qu'à mettre tout ça au propre avec un chargement par thème.

http://uppix.net/d/a/1/85b0e3d0f2c12217b3cdea7e1c0f2.pnghttp://uppix.net/a/b/0/cf84247ad4d06df9fdeff0be3adde.pnghttp://meuarrr.free.fr/images/temp/cairo-dock-mymonitoring.png

Avec de la transparence, ca rend bien avec différents thèmes de background

lylambda, Monday 15 August 2011 à 23:48


Subscription date : 06 September 2009
Messages : 1635
Difficile de se faire une idée parfaite sur les screen, mais cela semble progresser drôlement, en netteté comme en stabilité
L'idéal serait évidement de tester sur pièce (via un thème test ?)

Encore une chose à ajouter à ma todo liste, comme l'upgrade de mon ubuntu, l'essai du script de fab ou le tuto de ppmt .
Rahh, si les journées pouvais durer 48h et l'appel du monde "réel" se faire moins prégnant ! Comment faîtes-vous ?

PS : Tiens oui, ce message sera mon 1001éme… mais combien de constructifs parmi eux ?

SQP, Tuesday 16 August 2011 à 12:24


Subscription date : 03 July 2010
Messages : 1081
Pour la stabilité du graphique, l'affichage BAR marche maintenant nickel, et il est d'une excellente précision. Il me reste à vérifier un demi pixel de décalage vertical encore . Le reste c'est du déterrage de bugs liés, mis en évidence par certains tests peu courants, donc tout bénef vu que ça permettra surement d'améliorer le fonctionnement ou le rendu du dock.

Il y a 2 patchs testables sur une branche pour le debug du BAR et la réduction des marges.
lp:~meuarrr/cairo-dock-core/graph-fix-display

Si tu veux tester, à partir d'une version bzr, il suffit de lancer
bzr pull lp:~meuarrr/cairo-dock-core/graph-fix-display
dans le répertoire core et le recompiler. (pour revenir : bzr revert)
Tu peux essayer mon script pour juste compiler une partie du dock : script à sauver sous le nom de build dans le répertoire parent des bzr (celui ou il y a core et plug-ins)
./build core # compile juste le core
./build plug-ins # compile toute la série des plug-ins
./build System-Monitor # compile juste un applet. Bien utiliser le même nom que le répertoire


Pour le moment mes dernières modifs en utilisant les images sont un peu codées en dur encore (je veux pas modifier la config des applets tant que je sais pas quoi en faire), mais ça progresse, et ma dernière version utilise un fichier theme pour charger le nom des images.

Je vais déjà ajouter le support des réglages pour les zones de texte et de labels (+ emblems ?),

10. Quel type de fichier theme faire ?
Actuellement, je charge juste le nom de mes 2 images. J'arrive à grosso modo un équivalent de ce qu'on à de base : Une texture pour le graph et une texture pour le fond. La configuration en moins, mais la qualité du rendu en plus, et la possibilité de développer et utiliser des thèmes variés.

Est ce qu'il faut essayer de faire un truc plus compliqué, se rapprochant des graphs, avec des indicateurs permettant de définir des réglages différents par zone, ou est-ce qu'on garde ca simple (ou en commencant simple) ?

11. Mise en commun du code de chargement de theme
Il faudrait que je factorise ce que je peux avec ce que j'ai copié du fichier graph. Ca devrait surement aller à part (dans un fichier cairo-dock-renderer-theme.[c/h] ?)

fabounet, Wednesday 17 August 2011 à 13:04


Subscription date : 30 November 2007
Messages : 17118
Nouveau screen avec un fond de graph fait maison (un carré, avec un dégradé radial 2 couleurs) et appliqué au fond de chaque zone de graph.

c'est à dire ? on ne voit pas trop la différence avec le fond du dock (l'ensemble rend très bien par ailleurs)

merci pour la branche ! par contre attention, je détecte un problème dans la 827:
for (int t = 0; t < fWidth; t ++)

il faut impérativement parcourir le tableau des données sur sa longueur, sinon tu risques le dépassement mémoire (et là, c'est le drame )
for (t = 0; t < pData->iMemorySize; t ++)

et puisque on fixe fBarWidth à 1, ça veut dire qu'il faut en fait dessiner de 0 à MIN (pData->iMemorySize, fWidth-2*fMargin), si fWidth est bien la largeur de l'icône.

attention aussi à ça:
fMargin + fWidth - t + .5,

fMargin + fWidth est un double, il y'a peut-être des chiffre après la virgule, donc si tu veux tomber "au milieu" d'un pixel à coup sûr, il faut faire
floor (fMargin + fWidth) -t +.5
ou round ()

dans la 828 tu n'utilises plus pAttribute->iRadius, mais il y'a un commentaire qui en parle, il manquerait pas qqch ? ceci dit si iRadius n'apparaît pas dans la config (donc n'est pas modifiable par l'utilisateur), autant le virer des attributs. même chose pour la marge d'ailleurs.

SQP, Thursday 18 August 2011 à 02:36


Subscription date : 03 July 2010
Messages : 1081
L'explication de mon thème :
    • Dégradé du dock : un simple dégradé assez leger au niveau de la transparence, noir sur les coté, blanc au milieu (gauche/droite)
    • Dégradé appliqué sur le fond des graphs : sur le même principe, mais c'est un dégradé rond, comme une tache claire un peu décalé en haut à droite par rapport au milieu, avec les contours plus sombres.


La superposition des deux à l'endroit des graphes rend pas mal, même avec différents fonds d'écran.

Appliqué sur chaque zone de graph, j'aime beaucoup le rendu qui souligne les bords des zones sans trop choquer. (peut être diminuer un poil le contraste encore je pense)

pour les détails techniques :
le fWidth de cette fonction est la place allouée au graph (total moins les marges) et est censé être inférieur à iMemorySize (égal à la taille totale). Je vais ajouter le test du MIN pour être sur, mais c'est bien CE fWidth la qu'il faut utiliser (le nombre de px dispo). Après je préfèrerais m'assurer qu'on a bien un MemorySize assez grand dans tous les cas.

fMargin est un entier (enfin à partir du 828) donc je n'ai pas de problèmes d'arrondis (à moins qu'on puisse avoir des tailles d'icones avec décimales)
Le floor j'en ai sur d'autres parties (genre les axes horizontaux), mais je l'ai réenlevé d'ici quand j'ai eu des marges entières.

Le 828 c'est juste une inversion du calcul. Au lieu de calculer le radius à partir de la marge, on se fixe une marge (que j'ai réduite par rapport à ce que j'avais imaginé), et on ajuste le radius en fonction. Il y a juste mon facteur 1.5 en plus pour l'ajustement de la taille (vu que l'arrondi n'est calculé que sur la moitié extérieure du trait) et que j'ai préféré documenter.

J'ai pas mal avancé sur ce que je voulais faire. J'utilise un fichier thème, et je cherche un moyen de charger un dégradé proprement à partir de celui ci. J'aimerais pouvoir avoir un truc flexible (plus de 2 valeurs, et sans être obligé de forcer une taille maxi en dur) pour pouvoir répondre au mieux aux cas simples comme aux plus évolués. (là, contrairement aux jauges, ca peut convenir à une majorité)

fabounet, Thursday 18 August 2011 à 17:42


Subscription date : 30 November 2007
Messages : 17118
ok, effectivement c'est assez discret mais joli.

à moins qu'on puisse avoir des tailles d'icones avec décimales

on n'est pas censés faire ce genre de supposition

le fWidth de cette fonction est la place allouée au graph (total moins les marges)

ok, je pensais que c'était encore celui de l'icône
mais ça ne change rien pour le compteur de la boucle, encore une fois, pas de suppositions => un code qui marchera dans tous les cas

pour le desklet de 1x1, c'est "normal", une fenêtre X est créée par GTK puis redimensionnée, au départ elle a une taille donnée (arbitraire).
donc il faut juste éviter toute division par 0, ou des distances négatives
lorsque la taille de l'applet change, elle est rechargée (sans recharger le .conf) donc on repasse dans le reload, et là l'applet recharge ses images à la bonne taille.

Il faudrait que je factorise ce que je peux avec ce que j'ai copié du fichier graph. Ca devrait surement aller à part

sans doute, tu n'as qu'à le coller qque part en attendant

matttbe, Monday 22 August 2011 à 23:32


Subscription date : 24 January 2009
Messages : 12573
Hello,

Avec toute la lecture à faire sur ce sujet de graph, je suis un peu perdu (et je manque de temps surtout...). Est-ce qu'il y a qqc que je peux faire? Concernant la branche proposée, je crois comprendre qu'il y a des modif à faire. Fab, tu t'en charges? Quelles questions n'ont pas reçues de (bonnes) réponses?

SQP, Tuesday 23 August 2011 à 00:21


Subscription date : 03 July 2010
Messages : 1081
J'ai un peu bossé sur un autre sujet cette semaine (faut que je termine et poste, ca va te faire du taf encore) alors j'ai pas pris le temps de continuer ces patchs graphs.
Actuellement je suis toujours avec ma version modifiée spéciale avec images, et je prend le temps de l'apprécier et de réfléchir comment mettre ca au propre.

C'est une des questions que je posais (#10) sur le type de fichier thème faire. Pour le moment, mon idée serait plutôt de faire un truc très simple : 1 fond image et 1 pattern image ou dégradé (à plus de 2 valeurs), et les zones de texte. Je vais garder les options actuelles en fallback.

J'aurais aussi surement besoin de 2 options pour passer mes textes en taille fixe, et choisir le point d'ancrage (TOPLEFT sera mieux que CENTER pour aligner quelquechose)

Sinon j'ai les bugs 5 et 6 à confirmer, et j'aimerais bien ton avis sur le rendu des modifs, et si t'utilise les graphs, ce que tu aimerais leur changer auquel j'ai pas pensé, ou sur cette idée de thème en général (et si t'utilises pas je veux bien quand même )

fabounet, Wednesday 24 August 2011 à 13:11


Subscription date : 30 November 2007
Messages : 17118

5. Les petits triangles en bas à droite sur le screen, c'est un problème avec je crois la nouvelle flèche de redimensionnement des dialogues (ca m'en fout un peu partout dans mon dock, 1 par zone je crois)

ça doit être GTK3, mais il me semblait qu'on avait fixé ça (enfin Mattbe, car moi je suis encore sous GTK2 )


6. Pour tester les multiples configurations, j'ai été amené à dupliquer des applets. Mais j'ai eu l'impression qu'il copiait la config d'une instance de l'applet au hasard (pas toujours celui ciblé). Quelqu'un peut confirmer ?

euh, il me semble qu'il prend le .conf, et qu'il en fait un .conf-N, en changeant 2-3 trucs au passage (position du desklet, etc).
à priori je dirais que si tu dupliques 2 fois une applet, tu devrais te retrouver avec 3 applets identiques côte à côte.

pour les graphes, déjà il y'a le problème de lisibilité, donc je peux adapter ton patch si tu n'as pas le temps de corriger, comme ça ça sera dans la 2.4
pour les thèmes, un .xml permettrait d'avoir plus d'options et de simplifier la config (on aurait plus qu'une liste de choix comme pour les jauges). après j'ai pas trop réfléchi à quoi mettre dedans, N couleurs, un fond, couleur des axes, placement des textes, à priori je tombe sur la même liste que toi.

matttbe, Wednesday 24 August 2011 à 13:30


Subscription date : 24 January 2009
Messages : 12573
ça doit être GTK3, mais il me semblait qu'on avait fixé ça (enfin Mattbe, car moi je suis encore sous GTK2 )
C'est une nouveauté de GTK3 mais backporté sur GTK2 sur Ubuntu (à partir de Natty), il faut donc utiliser le flag -Denable_gtk_grip=yes pour forcer la prise en charge des ces grips (enfin, pour les enlever).

SQP, Thursday 25 August 2011 à 01:24


Subscription date : 03 July 2010
Messages : 1081
euh, il me semble qu'il prend le .conf, et qu'il en fait un .conf-N, en changeant 2-3 trucs au passage (position du desklet, etc).
à priori je dirais que si tu dupliques 2 fois une applet, tu devrais te retrouver avec 3 applets identiques côte à côte.


j'ai pas du m'exprimer assez bien. Je vais prendre un exemple : J'ai déjà un applet en double. J'en rajoute en changeant des paramètres de taille. Je me suis donc retrouvé avec 5 ou 6 sysmon différents, dont mes 2 d'origine. Et quand j'en choisis un et que je clic droit dessus pour le dupliquer, je préfère qu'il le fasse avec l'applet que j'ai sélectionné. Pas un des 5 autres au hasard (enfin ca a pas l'air de tenir du hasard, mais c'est pas fixe)

donc si je reprend ta phrase, si tu duplique 1 applet parmi 2 pas identiques, tu sais pas si tu vas avoir AAB ou ABB quel que soit l'endroit ou tu clic.

C'est une nouveauté de GTK3 mais backporté sur GTK2 sur Ubuntu (à partir de Natty), il faut donc utiliser le flag -Denable_gtk_grip=yes pour forcer la prise en charge des ces grips (enfin, pour les enlever).


merci, et je confirme que ca marche chez moi

fabounet, Thursday 25 August 2011 à 17:11


Subscription date : 30 November 2007
Messages : 17118
ah ok je vois, effectivement je pense qu'il prend juste la "1ère" (celle en tête de liste).

matttbe, Friday 09 September 2011 à 13:01


Subscription date : 24 January 2009
Messages : 12573
Hello,

@SQP: À propos de ce topic, est-ce qu'il y a encore des patches dispo, des trucs à discuter/intégrer? (désolé, je suis un peu absent et perdu par toutes tes modifications, merci pour tes contributions )

@fabounet: et à propos de ces modif simples:
Le label en blanc avec alpha 75% (ligne 356)
l'effet de flou ignoble sur les labels est du à une ombre gris très sombre autour d'un texte noir, il suffit donc de changer la couleur centrale
pLabel->param.pColor[0] = 1.;
pLabel->param.pColor[1] = 1.;
pLabel->param.pColor[2] = 1.;
pLabel->param.pColor[3] = .75;


Virer les axes sur la gauche (ligne 254) :
//~ cairo_move_to (pCairoContext, fMargin, fMargin);
//~ cairo_rel_line_to (pCairoContext, 0., fHeight - 2*fMargin);
//~ cairo_stroke (pCairoContext);


Ne dessiner le trait que si la valeur est supérieure à 0
ajouter un test if (fValue > 0) autour des fonctions de dessin dans la fonction render

SQP, Saturday 10 September 2011 à 13:37


Subscription date : 03 July 2010
Messages : 1081
J'ai amélioré le rendu des axes, mais maintenant je galère encore sur un décalage d'un demi pixel en hauteur du pattern si multi graph

Ideas | Propositions

Subjects Author Language Messages Last message
[Locked] [Graphs] Changement dans la configuration
Page : 1 2 3
SQP Français 59 lylambda [Read]
25 October 2011 à 18:23


Glx-Dock / Cairo-Dock List of forums Ideas | Propositions [Graphs] Changement dans la configuration 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.