Annonces Google
Serveur IRC
Serveur : irc.portlane.se
Canal : #AmigaNG
Activité du Site

Pages vues depuis 25/07/2007 : 25 264 893

  • Nb. de membres 187
  • Nb. d'articles 1 270
  • Nb. de forums 19
  • Nb. de sujets 20
  • Nb. de critiques 24

Top 10  Statistiques

Index du forum »»  Création-Développement »» Docky Réseau : demande d'aide pour graphique

Docky Réseau : demande d'aide pour graphique#1454

8Contributeur(s)
zzd10hCentaurZalexK-LdavebracosinisrusthellierPetrol
3 Modérateur(s)
K-LElwoodcorto
zzd10h zzd10hicon_post
Bonjour à tous,
Je suis en train de faire un docky (pour AmiDock, donc) pour reprendre les infos Réseau de l'onglet Configuration de mon prog SysMon.
J'aime bien avoir les infos de débit réseau sous les yeux quand je transfére de gros dossiers sur mon NAS (quand l'indicateur de progression du Workbench semble se figer).

Bref, grâce à l'exemple d'Amiga Future n?69 (heureusement qu'il y avait un sample ( ;) ) ,
j'ai pu mettre mes fonctions de SysMon dans un docky rafraichit toutes les secondes.

Ca marche, mais c'est le truc moche au milieu, là :
http://zzd10h.amiga-ng.org/Divers/NetDock_Grab.jpg

Si ce n'est pas trop trop compliqué, j'aimerais mettre le débit par seconde en graphique (je virerai sans soucis les autres infos)
est-ce que qq'un pourrait m'orienter pour faire un graphique (sur un RastPort) ?

Ou d'avoir le fond un petit peu transparent ?

Si c'est vraiment trop compliquè pour moi (sachant que je ne comprends vraiment rien aux discussions sur le grahisme d'Alain, d'AmiDark et de Crisot)
il faudra que je trouve comment :
-diminuer la police
-changer la couleur du fond/police
-et faire ça par Tooltype.

Merci pour votre aide.
CentaurZ CentaurZicon_post
Salut,

Il faut effectivement que tu te serves des fonctions de la graphics.library pour dessiner sur le RastPort du docky. Sur le principe, c'est assez simple, tu peux tracer des lignes, du texte et des rectangles avec les fonctions Move(), Text(), RectFill(), Draw().... Ce n'est pas spécifique aux dockies, un tutoriel sur la gfx.lib ou même les RKRM feront l'affaire.

Pour changer les paramètres du RastPort tels que la police/taille, regarder du côté de SetRPAttrs(). Attention, la fonte doit être ouverte via OpenDiskFont() avant usage.

N'hésite pas à poster du code ici ce sera plus facile pour avancer.
zzd10h zzd10hicon_post
Merci CentaurZ,
j'espérais tes conseils (superbe ton Photoframe) ;)

L'exemple d'AF utilise déjà Move(), Text()...,
Ah oui, Draw() dans la graphics c'est pour les lignes, merci.

Je vais commencer par les polices, merci pour le tuyau.

Oui, je n'hésiterais pas à poster du code, je sens que j'en aurais besoin, je ne comprends vraiment pas tout.

Je suis resté bloqué 1/2 journée sur l'utilisation de strlen (utile pour Text()sur le RastPort).

Obligé de compiler avec mcrt=clib2 ?

Pourquoi est-ce si différent des programmes "normaux" ?

Enfin, pour le moment ça marche.
A+
CentaurZ CentaurZicon_post
En général sur OS4 maintenant il vaut mieux compiler/linker avec la newlib (=> ne pas mettre l'option -mcrt, c'est fait par défaut). Pour une library partagée (comme un .docky), c'est encore mieux de ne pas dépendre de la lib standard C, ce n'est pas trop grave pour les fonctions simples comme strlen() mais il faut vraiment éviter les printf() et tout ce qui dépend du code de démarrage.

zzd10h zzd10hicon_post
Oui, par défaut je ne mettais rien, donc newlib.

Mais j'avais des "undefined reference INewlib" dés que j'utilisais un strlen dans, par exemple

Move(dd->rp,2,10);
Text(dd->rp,dd->uptime,strlen(heure_uptime_chaine));

Alors, que j'avais tous les !include!s.
J'ai même, par désespoir, essayé de définir une interface NewLib mais ça faisait planter AmiDock. j'ai essayé plein de trucs et seul mcrt=clib2 m'a permis d'utiliser strlen (coup de bol)

Je n'utilise pas les printf pour debugger mais les kprintf (et sashimi)

Enfin, tu vois mon niveau... Je vais avoir besoin d'aide, mais je vais essayer de ne pas abuser ;)
alex alexicon_post
@zzd10h

c'est parce que tu as du linker avec l'option -nostdlib (ou -nostartup je ne me souviens plus bien) cela a pour effet de ne plus utiliser le code de démarrage de la bibliothèque C standard. Du coup tu ne bénéficies plus de l'ouverture automatique de la Newlib.library. Si tu veux utiliser tout de même les fonctions de chaine de caractères (qui existent dans utility.library) tu devras alors ouvrir et fermer toi-même la Newlib...

Bon courage pour ton docky, en graphique ce serait vraiment super !!
--
AmigaOne A1222
AmigaOne X1000 - RadeonHD - 2 Gio RAM
AmigaOne XE G4@933 - Radeon 9200 SE - 512 Mio RAM
zzd10h zzd10hicon_post
Merci Alex pour les conseils.
zzd10h zzd10hicon_post
J'avance un peu sur ce docky.

J'ai mis en graphique un "historique" sur 60 secondes pour le download et l'upload.
Il y a aussi une remise à l'échelle automatique

http://zzd10h.amiga-ng.org/Divers/NetDock_DU130126.jpg

Par contre, j'aimerais bien pouvoir mettre le débit IN/OUT au dessus des graphes mais comme vous pouvez le voir sur le graphe rouge de gauche, le fond noir du texte me dérange.
Est-ce que qq'un sait comment le rendre transparent ?

Voila comment je dessine :

SetABPenDrMd(dd->rp,1,2,JAM2);
SetAPen(dd->rp,2);
SetBPen(dd->rp,1);

SetAPen(dd->rp,4);
...
Draw du débit par
Move(dd->rp,i,hauteur_docky);
Draw(dd->rp,i,hauteur_docky - (tableauIN[indextableau]/diviseur)); /* pour remise à l'échelle automatique */
...

SetAPen(dd->rp,2);
Move(dd->rp,2,10);
Text(dd->rp,dd->uptime,strlen(heure_uptime_chaine));
SetAPen(dd->rp,1);


Merci pour votre aide.
Encore plein de choses à faire concernant les polices et l'organisation dans le Docky.

Mais ça me rappelle le Logo sur MO5, c'est marrant !

CentaurZ CentaurZicon_post
@zzd10h

Pour ne pas avoir de fond sous le texte, utilise le mode JAM1 au lieu de JAM2. JAM1 n'utilise que la couleur de 1er plan du RastPort.
zzd10h zzd10hicon_post
Merci Centaurz,
ça marche très bien !

http://zzd10h.amiga-ng.org/Divers/NetDock_DU130126_2.jpg


Message édité par : zzd10h / 26-01-2013 23:01
Petites Annonces

0 annonce(s) publiée(s)

Consulter

AmigaOS 4.1

Laissez-vous tenter par
AmigaOS 4.1
AmiTheme

AmiTheme