[SOCPB 2006] Projet # 2-3 : Skinner fenêtre/gadgets/Menus

Sujets variés concernant le développement en PureBasic
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

[SOCPB 2006] Projet # 2-3 : Skinner fenêtre/gadgets/Menus

Message par Progi1984 »

Projet #2

Leader :Gillou & Dorian

Membres :

Bon Code

Note :
Le Leader a pour but :
+ d'orienter le développement du projet
+ de regrouper les codes recus
+ de formater le code final (lisibilité, commentaire)
Donc ses paroles sont lettres d'évangiles
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Idées Menus :
- mettre icone dans les menus (contextuels ou pas)
Image
- titre au dessus des menus contextuels
Image
- Gestion de la transparence des menus
Image
- Le reve
Image

Idées Gadgets :
- Gestion des skins de gadgets (dans tous les états facilement)
Image

-Le reve
Image

Idées Fenetres
- Skin barre de titre, fond de la fenetre, tour de fenetre
- Un article : http://www.flipcode.com/articles/articl ... kins.shtml


Pour tous :
-un max de compatibilité : Windows 9x à 2003
-le reve un skinMaker
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par Jacobus »

...
Dernière modification par Jacobus le sam. 24/juin/2006 16:14, modifié 1 fois.
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

:D

(humour)
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Pour colorer les menu avec des couleurs fixes (pas de dégradé comme Nico l'a fait), le plus long et difficile est la callback, la mienne fait presque 600 lignes

Pour vous aider, j'intercepte les événements suivants

Code : Tout sélectionner

;- #WM_ENTERMENULOOP
;- #WM_EXITMENULOOP
;- #WM_NCMOUSELEAVE
;- #WM_MENUSELECT
;- #WM_NCMOUSEMOVE
;- #WM_DRAWITEM
;- #WM_MEASUREITEM
;- #WM_DESTROY
sachant que les 3 derniers sont les plus important, les autres entrent dans la gestion des menu sous WIN98 pour obtenir le même résultat que sous XP
Gillou
Messages : 373
Inscription : sam. 28/août/2004 17:35
Localisation : Bretagne, 22
Contact :

Message par Gillou »

Et bien si le projet commence comme ça il va pas avancer beaucoup, je suis d'accord avec Jacobus. Si tout le monde décide de faire son truc dans son coin sans rien partager et en ne filant que des indices ont est pas sorti de l'auberge :(.

En bref, Nico, des interventions de ce type y'a rien de mieux pour encourager les codeurs à publier leur travail.

Tu es un excellent codeur bien meilleur que moi, mais pour un modérateur, je suis désolé mais ça le fait pas trop.

Voila je t'ai dis ce que je pensais, ne le prend pas mal, mais ton post ne fait en rien avancer ce projet.
Gillou
Messages : 373
Inscription : sam. 28/août/2004 17:35
Localisation : Bretagne, 22
Contact :

Message par Gillou »

bernard13
Messages : 1221
Inscription : mer. 05/janv./2005 21:30

Message par bernard13 »

nico a écrit :Une petite parenthèse pour te dire que dans ce Forum, il n'y a qu'une douzaine d'actifs en gros et c'est ceux là qui ont ma confiance, c'est pas plus compliqué que ça!
!
tu va pas nous faire un flan pour ton code, on va sortir les mouchoirs et pleurer , Nico je te comprend mais arrete de parler de ton code svp on sait que tu travaille dessus moi personnellement ça me derange pas que tu veux pas le montrai , tu as bien raison ...
Dorian
Messages : 489
Inscription : mar. 15/mars/2005 15:33

Message par Dorian »

Quelqu'un aurais au code qui permet de créer un gadget du début jusqu'à la fin avec les évenements pour étudier sa ? Merci d'avance :wink:
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

du pure code, amuses-toi, pas si simple mais terriblement puissant comme approche qui ressemble à celle de tailbite.
http://www.purebasic.fr/english/viewtopic.php?t=21412
Image
Gillou
Messages : 373
Inscription : sam. 28/août/2004 17:35
Localisation : Bretagne, 22
Contact :

Message par Gillou »

En ce qui concerne ce projet avez vous des suggestions (forme des fenêtres, transparence, création des skins, gestion des fichiers nécessaire au skin : un seul fichier? codé, en lecture libre, sous zip?)?

N'hésitez pas à la fin de la semaine je mettrais au propre les travaux actuellement lancer et la répartition des taches à ceux qui veulent participer
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

je suis pas du tout spécialiste mais il me semble que bcp de skins célèbres sont en XML, donc en clair, en tout cas pour le fichier descriptif.
Image
Gillou
Messages : 373
Inscription : sam. 28/août/2004 17:35
Localisation : Bretagne, 22
Contact :

Message par Gillou »

Merci Flype de cette précision,

Donc je vous propose ceci :

Le skin : Il sera stocké dans un fichier zip qui encapsulera les images ainsi que le fichier de la forme. (Un seul fichier avec l'extension SknPB)

Pour les fonctions :

Infos sur la lib:

Skin_LibName() ; Retourne le nom de la lib
Skin_LibVersion() ; Retourne la version de la lib
Skin_LibDescription() ; Retourne une descritpion de la lib

Initialisation, fermeture et info sur le skin:

Skin_Load(SkinID, FileName) ; Charger le skin
Skin_IsLoad(SkinID) ; Retourne si le skin est bien chargé
Skin_Free(SkinID) ; Libère le skin
Skin_Name(SkinID) ; Retourne le nom du skin
Skin_Description(SkinID) ; Retourne une description
Skin_Version(SkinID) ; Retourne la version du skin

Application sur une fenêtre:

Skin_WindowSet(WindowID, SkinID) ; Applique le skin sur une fenêtre
Skin_WindowGet(WindowID) ; Retourne l'identifiant du skin appliqué à la fenêtre
Skin_GadgetSet(GadgetID, SkinID) ; Applique le skin choisi sur le gadget
Skin_GadgetGet(GadgetID) ; Retourne l'identifiant du skin appliqué sur le gadget
Skin_MenuSet(MenuID, SkinID) ; Applique le skin sur le menu (Fonction identique pour PopMenu)
Skin_MenuGet(MenuID) ; Retourne l'identifiant du skin appliqué sur le menu
Skin_MenuItemSet(MenuID, ItemID, SkinID) ; Applique le skin sur le menu (Fonction identique pour PopMenu)
Skin_MenuItemGet(MenuID, ItemID) ; Retourne l'identifiant du skin appliqué sur le menu

Modification du skin:

Skin_Create(SkinID, FileName) ; Créer un fichier SknPB et le charge (la fonction Skin_IsLoad permet de tester si le skin est bien chargé)
Skin_ObjectSet(SkinID, ObjectType, State, ImageID) ; Permet de modifier le skin d'un object, ImageID voir script? pour un état de l'object
Skin_ObjectGet(SkinID, ObjectType, State) ; Retourne l'identifiant de l'image ou (du script?)
Skin_ObjectFontSet(SkinID, ObjectType, State, FontID) ; Permet de changer la police d'un object pour un état donné
Skin_ObjectFontGet(SkinID, ObjectType, State) ; Retourne l'identifiant de la police appliqué au skin
Skin_WindowMoveArea(WindowID, Area) ; Défini l'espace ou on peu cliquer pour déplacer une fenêtre

Autre fonction:

Skin_IsMouseOverGadget(GadgetID) ; Retourne si la souris est au dessus du gadget

En ce qui concerne les menus étant donné les possibilités de modification relativement réduite de la forme, je serais d'avis de créer nos propres menus
Dorian
Messages : 489
Inscription : mar. 15/mars/2005 15:33

Message par Dorian »

Sa serai nikel mais je peine pour trouver quoi faire et encore plus s'il faut faire des régions transparentes :( :(
Gillou
Messages : 373
Inscription : sam. 28/août/2004 17:35
Localisation : Bretagne, 22
Contact :

Message par Gillou »

Je te propose plusieurs axes à développer :

- gestion du fichier qui contient la forme
- gestion du zip
- gestion des fenêtres
- gestion des gadgets
- gestion des menus

Et tout ça sans lib externe, bien sur ;)

J'ai surtout attaqué les fenêtres et le zip
Si tu veux on peut attribuer des tâches à chaque personne voulant particiêr au projet
Répondre