Lib MoreMenu Version 3.40

Vous avez développé un logiciel en PureBasic et vous souhaitez le faire connaitre ?
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Lib MoreMenu Version 3.40

Message par Anonyme2 »

J'ai fais cette petite librairie pour windows uniquement pour mettre de la couleur aux menus.

Le fichier zip est ici

Il contient 4 fichiers

MoreMenu --> la librairie à installer dans le dossier PureBasic\Purelibraries\userlibraries

MoreMenu.res --> le résident à mettre dans le dossier PureBasic\residents

MoreMenu.chm --> le fichier d'aide à mettre dans le dossier PureBasic\Help

Exemple 2.pb --> c'est le seul fichier d'exemple


Les commandes sont les mêmes que celles de PB mais suivi de Color
Voici les 6 commandes disponibles pour l'instant


CreateMenuColor()
MenuTitleColor()
MenuItemColor()
OpenSubMenuColor()
CloseSubMenuColor()
SetMenuItemStateColor()

Les commandes sont dans l'utilisation identiques à PB.

Tous les identifiants des menus et éléments doivent être différents.

Les paramètres permettant de colorier les menus sont importants, il devenait donc interessant de passer l'adresse de la variable ou sont stockés les valeurs

Je vous conseille d'utiliser 4 variables basées sur la structure ItemParams

Une pour les menuTitle, les autres pour pour les menus items, les submenuitem et la dernière pour les menusbar.
Cela permet de ne pas réattribuer à chaque fois les couleurs des éléments qui seront les mêmes.
Lorsqu'une commande comme MenuitemColor (ou autre) est utilisée, les valeurs de la variable passée en paramètre sont recopiées dans une variable propre à la fonction.
On peut donc ensuite réutiliser cette variable pour modifier par exemple que le texte pour le prochain élément.


Les limites :
----------

- Pour l'instant, je n'ai pas gèré le multi-fenêtrage, donc ça plantera surement si vous essayez de faire des menus sur plusieurs fenêtres

- Les polices ne sont pas supportés

- Pas possible de supprimer un élément

- si on ajoute un élément, cela se fera Toujours dans la colonne du dernier menuTitle créé

- Pas possible de modifier les paramètres après la création de l'élément

- Je n'ai fait que des essais avec des icônes au format 16x16.
Je n'ai pas fait de test avec les bitmap.

- Je n'utilise que des API windows pour les menus, il est donc inutile d'essayer de récupérer MenuID() ou d'utiliser une commande PB sur le menu couleur.

La version 2 qui est en cours permettra le multi-fenêtrage, l'ajout/modification/suppresion des éléments etc.


Voici un aperçu

Image

Image

Image


Image
Dernière modification par Anonyme2 le dim. 06/nov./2005 16:42, modifié 6 fois.
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Sympa, on peut faire des applis type Office avec les bons sprites ....
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Progi1984 a écrit :Sympa, on peut faire des applis type Office avec les bons sprites ....
J'espère pouvoir utilser dans une prochaine version des bitmap à la place des couleurs

à suivre ...
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Super Denis!

Sur celui sur lequel je travaille, on ne peut choisir qu'une seule fois les différentes couleurs, donc elles identiques pour tous les items mais il est possible de les changer en cours d'appli.

Le tiens permet de configurer les items individuellemet mais c'est un peu lourd, peut être devrait tu prévoir une commande pour gérer tous les items de la même façon, non?
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

Super :D Merci
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

nico a écrit :Super Denis!

Sur celui sur lequel je travaille, on ne peut choisir qu'une seule fois les différentes couleurs, donc elles identiques pour tous les items mais il est possible de les changer en cours d'appli.

Le tiens permet de configurer les items individuellemet mais c'est un peu lourd, peut être devrait tu prévoir une commande pour gérer tous les items de la même façon, non?
Merci Nico :D et Oliv

C'est vrai que c'est lourd car il y a pas mal de paramètres.
Je pense à écrire une fonction pour ça car j'ai déjà eu quelques soucis pour remplir correctement les variables :cry:
Faut encore trouver l'idée qui va bien
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Dis moi, tu n'as pas été embêté lors de la construction d'un menu ayant un sous menu car j'ai été obligé lors du calcul des dimensions de l'item de rajouter une constante lorsque justement un item ouvrait sur un autre menu sinon j'avais un problème d'affichage du triangle à droite.
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

nico a écrit :Dis moi, tu n'as pas été embêté lors de la construction d'un menu ayant un sous menu car j'ai été obligé lors du calcul des dimensions de l'item de rajouter une constante lorsque justement un item ouvrait sur un autre menu sinon j'avais un problème d'affichage du triangle à droite.
Non, j'ai pas souvenir de ça, j'ai ajouté pour tous les élément du menu sauf pour les menuBar 50 pixel pour la largeur

Je viens de faire des essais en retirant les 50 et je n'ai pas de problèmes (la largeur est plus courte et le triangle est bien dessiné dans les deux modes) mais je ne garantie pas car le code de la callback est pas très bien écrit :roll: (j'ai juste séparé la gestion des MenuTitle), je n'ai pas voulu séparer les événements et maintenant chaque fois que je modifie une valeur, ça modifie ailleurs... Je suis en train de la réécrire.

Comment as-tu abordé la colorisation pour l'ensemble des éléments ?
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Deux gestions
-une pour la barre de titre
-la deuxième pour les menus et sous menus

donc on peut différencier les couleurs de la barre de titre et du reste.

-choix de la couleur en dégradé de la colonne et pareil pour le fond des items.

-choix de la police pour les menus et sous menus et de la couleur du texte
-on peut choisir une icone pour chaque item

-choix des icône pour les checkbox et radio boutton.

-regroupement de plusieurs items avec une commande pour une meilleur gestion des radio boutton.

-ajout d'un item avant ou après l' item de son choix.
-destruction d'un item

-possibilité de changer toutes les couleurs et dégradé en cours d'appli.


Ce qui me reste à faire c'est de permettre de rajouter un item dans la barre de titre et pouvoir asocié un menu.

mais faudrait que je fasse des essais plus poussés sur win98 car ça ne fonctionne pas comme ça devrait et je n'ai pas win98 pour travaillé dessus à moins de réinstallé complètement ma machine.
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

J'ai voulu écrire un peu de code pou mettre les mêmes couleurs aux items mais ca ne me semble pas judicieux (pour mon code).

Pour mettre les même couleurs, il suffit d'utiliser la même variable et de ne changer que le texte et l'icône, c'est plus simple avec ma lib.

Le mode multi fenêtre fonctionne maintenant (pas eu de crash pour l'instant)

J'ai aussi écrit la fonction de modif couleur et texte

Reste à effacer un élément et à insérer un élément


Tu parles de mode dégradé, je pense que tu as utilisé createpatternBrush() ?

As-tu essayé de modifier le texte d'un MenuTitle ?

Si oui, la modif s'affiche ? car pour moi non, sauf si je passe dessus avec la souris, je n'ai pas encore trouvé la solution, je pense que c'est du au fait que les MenuTitle ne sont pas dans la zone client de la fenêtre.
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Je n'utilise pas de structure et la syntaxe est la même que PB.

Non je n'ai pas essayé de changer un item de la barre de titre.
t'as essayé de redessiner la barre de titre avec l'api drawmenubar ?

createpatternbrush, oui.
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

nico a écrit :Je n'utilise pas de structure et la syntaxe est la même que PB.

Non je n'ai pas essayé de changer un item de la barre de titre.
t'as essayé de redessiner la barre de titre avec l'api drawmenubar ?
Oui j'utilise drawmenubar chaque fois que je cré ou modifie un élément (la doc MS dit qu'il faut le faire même si le menu n'est pas affiché) mais ça ne rafraîchit rien. Je vais encore chercher
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Voici la version 2

j'ai fait des tests sur Win98, XP édition familiale et W2000 professionnel NT et je n'ai pas eu de problème.

Le fichier zip est ici

Il contient 4 fichiers

MoreMenu --> la librairie à installer dans le dossier PureBasic\Purelibraries\userlibraries

MoreMenu.res --> le résident à mettre dans le dossier PureBasic\residents

MoreMenu.chm --> le fichier d'aide à mettre dans le dossier PureBasic\Help

Exemple Menu Couleur.pb --> c'est le seul fichier d'exemple


Les commandes sont presque identiques à celles de PB mais suivi de Color
Voici les 14 commandes disponibles pour l'instant
  • CloseSubMenuColor
    CreateMenuColor
    DisableMenuItemColor
    IdMenuType
    MenuBarColor
    MenuIdColor
    MenuItemColor
    MenuTiTleColor
    MoreMenu_Version
    OpenSubMenuColor
    SetMenuColor
    SetMenuImage
    SetMenuItemStateColor
    SetMenuText
Les commandes sont dans l'utilisation identiques à PB.

Tous les identifiants des menus et éléments doivent être différents.

Normalement, le multi-fenêtrage est supporté.

Lorsque que l'on désactive un élément, il est grisé et s'il a une image, celle-ci sera "atténuée" mais pas grisée, vous verrez dans l'exemple.

Les limites :
----------

- Les polices sont supportées mais seulement lors de la construction du menu, la modification dynamique viendra avec la prochaine version, et il ne faut pas utiliser de polices trop grandes

- Pas possible de supprimer un élément (prochaine version :roll: )

- si on ajoute un élément, cela se fera toujours dans la colonne du dernier menuTitle créé

- Je n'utilise que des API windows pour les menus, il est donc inutile d'essayer de récupérer MenuID() ou d'utiliser une commande PB sur le menu couleur.
Dernière modification par Anonyme2 le dim. 23/oct./2005 18:35, modifié 1 fois.
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

J'ai fait une correction du fichier Chm sur 2 mauvais noms de constantes de la fonction IdMenuType

Même lien que ci-dessus
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

sympa la lib ^^
une question hors sujet :
comment tu crées ton résident ???

Dri
Répondre