Page 2 sur 4
Publié : sam. 22/oct./2005 21:00
par Anonyme2
Dr. Dri a écrit :sympa la lib ^^
une question hors sujet :
comment tu crées ton résident ???
Dri
Tailbite le fait mais moi j'utilise mon utilitaire PureLibCreation version 1.45 qui est sur mon site
ici
Ce n'est qu'une Utilisation du compilateur SHELL de PB (voir la doc)
Voici le code PB du résident de la lib MoreMenu version 2.10 (modifié par rapport à la 2.00). La structure Item (et les 2 suivantes) ne devraient pas s'y trouver puisqu'elles ne sont utilisées que par les fonctions des menus mais ce n'est pas grave
Je l'enregistre dans un fichier Pb et je lance mon utilistaire et je sélectionne la création d'un résident et je donne le chemin du fichier, le résident est mis directement dans le bon dossier, ensuite il faut redémarrer le compilateur PB
Code : Tout sélectionner
#MC_NormalState = 1
#MC_SelectedState = 2
#MC_MouseOverState = 4
Enumeration
#PB_EnabledMenu
#PB_DisabledMenu
EndEnumeration
#TypeMenuTitle = 1
#TypeMenuItem = 2
#TypeSubMenuItem = 4
#TypeMenuBar = 8
Structure ItemParams
Text.s ; le texte de l'élément du menu
TextColor.l ; couleur du texte du menu normal non sélectionné
IconAreaBkGndColor.l ; couleur de la bande gauche du menu
TextAreaBkGndColor.l ; couleur de la bande droite du menu
SelectedTextColor.l ; couleur du texte lorsque la souris est sur l'élément
SelectedBkGndColor.l ; couleur du fond lorsque la souris est sur l'élément
SelectedFrameColor.l ; couleur de la bordure du cadre lors de la sélection
MenuBarColor.l ; la couleur de la barre de séparation
; menutitle survolés par la souris et sans sélection
MouseOverMenuTitleTextColor.l ; couleur du texte
MouseOverMenuTitleBkGndColor.l ; couleur du fond
MouseOverMenuTitleFrameColor.l ; couleur du pourtour du cadre
StaticFontId.l ; id static de la police utilisée
EndStructure
Structure Item Extends ItemParams
idstatic.l
idCreateMenu.l
WindowHwnd.l
Type.l
MenuID_Parent.l
MenuID_item.l
DynamicFontId.l
EndStructure
Structure MenuCourant
hMenu.l
MenuType.l
EndStructure
Structure MenuIdentifiant
IdStaticCourant.l
IdDynamiqueCourant.l
FenetreMenuCourante.l
WindProcMenu_Origine.l
EndStructure
Publié : sam. 22/oct./2005 23:04
par Heis Spiter
Génial Denis !!!
Manque plus que le PopupMenu

.
À titre indicatif, pour ceux que ça intéresse, voici les couleurs pour Windows. Je les ai trouvées à l'œil, donc, elles peuvent être fausses.
Code : Tout sélectionner
VarMT\TextColor = GetSysColor_(7)
VarMT\TextAreaBkGndColor = GetSysColor_(5)
VarMT\SelectedTextColor = GetSysColor_(7)
VarMT\SelectedBkGndColor = GetSysColor_(28)
VarMT\SelectedFrameColor = GetSysColor_(2)
VarMT\MouseOverMenuTitleTextColor = GetSysColor_(7)
VarMT\MouseOverMenuTitleBkGndColor = GetSysColor_(28)
VarMT\MouseOverMenuTitleFrameColor = GetSysColor_(2)
Var\TextColor = GetSysColor_(7)
Var\IconAreaBkGndColor = GetSysColor_(15)
Var\TextAreaBkGndColor = GetSysColor_(4)
Var\SelectedTextColor = GetSysColor_(7)
Var\SelectedBkGndColor = GetSysColor_(28)
Var\SelectedFrameColor = GetSysColor_(2)
Var\StaticFontId = 0
Publié : sam. 22/oct./2005 23:56
par Chris
Les voilà, les couleurs
Code : Tout sélectionner
#COLOR_SCROLLBAR = 0
#COLOR_BACKGROUND = 1
#COLOR_ACTIVECAPTION = 2
#COLOR_INACTIVECAPTION = 3
#COLOR_MENU = 4
#COLOR_WINDOW = 5
#COLOR_WINDOWFRAME = 6
#COLOR_MENUTEXT = 7
#COLOR_WINDOWTEXT = 8
#COLOR_CAPTIONTEXT = 9
#COLOR_ACTIVEBORDER = 10
#COLOR_INACTIVEBORDER = 11
#COLOR_APPWORKSPACE = 12
#COLOR_HIGHLIGHT = 13
#COLOR_HIGHLIGHTTEXT = 14
#COLOR_BTNFACE = 15
#COLOR_BTNSHADOW = 16
#COLOR_GRAYTEXT = 17
#COLOR_BTNTEXT = 18
#COLOR_INACTIVECAPTIONTEXT = 19
#COLOR_BTNHIGHLIGHT = 20
#COLOR_3DDKSHADOW = 21
#COLOR_3DLIGHT = 22
#COLOR_INFOTEXT = 23
#COLOR_INFOBK = 24
#COLOR_HOTLIGHT = 26 ; Windows NT, Windows 95 : Non supporté
#COLOR_GRADIENTACTIVECAPTION = 27 ; Windows NT, Windows 95 : Non supporté
#COLOR_GRADIENTINACTIVECAPTION = 28 ; Windows NT, Windows 95 : Non supporté
#COLOR_MENUHILIGHT = 29 ; Windows 2000/NT, Windows Me/98/95 : Non supporté
#COLOR_MENUBAR = 30 ; Windows 2000/NT, Windows Me/98/95 : Non supporté
#COLOR_DESKTOP = #COLOR_BACKGROUND
#COLOR_3DFACE = #COLOR_BTNFACE
#COLOR_3DSHADOW = #COLOR_BTNSHADOW
#COLOR_3DHIGHLIGHT = #COLOR_BTNHIGHLIGHT
#COLOR_3DHILIGHT = #COLOR_BTNHIGHLIGHT
#COLOR_BTNHILIGHT = #COLOR_BTNHIGHLIGHT
Publié : dim. 23/oct./2005 4:33
par Anonyme2
Heis Spiter a écrit :Génial Denis !!!
Manque plus que le PopupMenu

.
Merci
Pour les PopUpMenu, je suis aussi dessus.
Pour griser le texte des menus désactivés, j'utilise GetSysColor_(#COLOR_GRAYTEXT)
Publié : dim. 23/oct./2005 8:48
par Heis Spiter
Zut ! Y a une des couleurs qui n'est pas supporté partout ! Vais revoir ça...
Publié : dim. 23/oct./2005 9:42
par Heis Spiter
J'ai pas trouvé mieux que de faire comme ça :
Code : Tout sélectionner
VarMT\TextColor = GetSysColor_(7)
VarMT\TextAreaBkGndColor = GetSysColor_(5)
If OSVersion() <> #PB_OS_Windows_95 And OSVersion() <> #PB_OS_Windows_NT_4 And OSVersion() <> #PB_OS_Windows_NT3_51
VarMT\SelectedTextColor = GetSysColor_(7)
VarMT\SelectedBkGndColor = GetSysColor_(28)
VarMT\SelectedFrameColor = GetSysColor_(2)
VarMT\MouseOverMenuTitleTextColor = GetSysColor_(7)
VarMT\MouseOverMenuTitleBkGndColor = GetSysColor_(28)
VarMT\MouseOverMenuTitleFrameColor = GetSysColor_(2)
Else
VarMT\SelectedTextColor = GetSysColor_(14)
VarMT\SelectedBkGndColor = GetSysColor_(13)
VarMT\SelectedFrameColor = GetSysColor_(16)
VarMT\MouseOverMenuTitleTextColor = GetSysColor_(14)
VarMT\MouseOverMenuTitleBkGndColor = GetSysColor_(13)
VarMT\MouseOverMenuTitleFrameColor = GetSysColor_(16)
EndIf
Var\TextColor = GetSysColor_(7)
Var\IconAreaBkGndColor = GetSysColor_(15)
Var\TextAreaBkGndColor = GetSysColor_(4)
If OSVersion() <> #PB_OS_Windows_95 And OSVersion() <> #PB_OS_Windows_NT_4 And OSVersion() <> #PB_OS_Windows_NT3_51
Var\SelectedTextColor = GetSysColor_(7)
Var\SelectedBkGndColor = GetSysColor_(28)
Var\SelectedFrameColor = GetSysColor_(2)
Else
Var\SelectedTextColor = GetSysColor_(14)
Var\SelectedBkGndColor = GetSysColor_(13)
Var\SelectedFrameColor = GetSysColor_(16)
EndIf
Var\StaticFontId = 0
Publié : dim. 23/oct./2005 9:58
par Heis Spiter
J'aurais une requête à formuler pour que ta lib devienne encore mieux

. La possibilité de changer le texte d'un item. Car la méthode que j'utilise actuellement ne marche plus avec ta lib... J'utilise celle-ci
Elle marche toujours, sauf que je perds toute amélioration de ta lib.
Donc, si tu pouvais m'expliquer comment changer sans rien perdre, ou carrément, insérer une fonction comme ça dans la lib, tu serai un ange

!
Publié : dim. 23/oct./2005 12:56
par Anonyme2
Heis Spiter a écrit :J'aurais une requête à formuler pour que ta lib devienne encore mieux

. La possibilité de changer le texte d'un item. Car la méthode que j'utilise actuellement ne marche plus avec ta lib... J'utilise celle-ci
Elle marche toujours, sauf que je perds toute amélioration de ta lib.
Donc, si tu pouvais m'expliquer comment changer sans rien perdre, ou carrément, insérer une fonction comme ça dans la lib, tu serai un ange

!
Heis, tu as téléchargé ma lib ?
Peut-être qu'en lisant la doc tu trouveras la commande
SetMenuText()
La gestion des items est entierement faite dans la callback, le menu est ownerdrawn, donc les API classiques ne fonctionnent pas du tout voire mal.
En plus je tiens à jour les paramètres de chaque élément et pour tout dire, j'ai passé 2 jours avant d'arriver à changer correctement le texte d'un élément.
Publié : dim. 23/oct./2005 18:52
par Heis Spiter
Oops ! Boulette, j'avais mal lu la doc ! Merci

.

Publié : lun. 31/oct./2005 20:17
par Anonyme2
Voici la version 3
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 5 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 --> fichier d'exemple
Exemple Multi_PopupColor.pb --> fichier d'exemple
Lisez la doc car il y a eu des changements depuis la version 2.00 pour certaines commandes (voir l'historique)
J'ai fait des tests avec toutes les commandes, mais il peut y avoir des bug, merci de me faire remonter
Voici les 35 commandes
Code : Tout sélectionner
MenuColor :
CloseSubMenuColor()
CreateMenuColor()
DisableMenuItemColor()
FreeMenuColor()
GetMenuTextColor()
MenuBarColor()
MenuItemColor()
MenuTitleColor()
OpenSubMenuColor()
SetMenuColor()
SetMenuFontColor()
SetMenuImageColor()
SetMenuItemColor()
SetMenuItemFontColor()
SetMenuItemStateColor()
SetMenuTextColor()
PopupMenuColor :
CloseSubPopupMenuColor()
CreatePopupMenuColor()
DisablePopupMenuItemColor()
DisplayPopupMenuColor()
FreePopupMenuColor()
GetPopupMenuTextColor()
OpenSubPopupMenuColor()
PopupMenuBarColor()
PopupMenuItemColor()
SetPopupMenuColor()
SetPopupMenuFontColor()
SetPopupMenuImageColor()
SetPopupMenuItemColor()
SetPopupMenuItemFontColor()
SetPopupMenuItemStateColor()
SetPopupMenuTextColor()
Commandes partagées :
IdMenuType()
MenuIdColor()
MoreMenu_Version()
Publié : lun. 31/oct./2005 20:38
par nico
Dans ton exemple fourni, lorsqu'on active le menu title Cocher la taille de la police augmente (on se retrouve avec un menu sur deux lignes) et lors du redimensionnement de la fenêtre, la hauteur du menu n'est pas suffisante ce qui fait que lors du survol on a un débordement de dessin sur la fenêtre.
Sinon j'avais remarqué (sur le code que j'ai fait) que le survol de la barre de titre ne fonctionne pas sur win98, non?
Publié : lun. 31/oct./2005 21:20
par Heis Spiter
Testé et approuvé sous XP Pro SP2

Vraiment génial ta lib !

Publié : mar. 01/nov./2005 5:36
par Anonyme2
nico a écrit :Dans ton exemple fourni, lorsqu'on active le menu title Cocher la taille de la police augmente (on se retrouve avec un menu sur deux lignes) et lors du redimensionnement de la fenêtre, la hauteur du menu n'est pas suffisante ce qui fait que lors du survol on a un débordement de dessin sur la fenêtre.
C'est normal, j'ai fait des essais avec des polices de grande taille pour voir ce que cela donne et comme je n'ai pas encore travaillé sur le redimensionnement de la barre de titre, ça bave et ça déborde
nico a écrit :
Sinon j'avais remarqué (sur le code que j'ai fait) que le survol de la barre de titre ne fonctionne pas sur win98, non?
Je vais relancer ce windows 98 pour tester
Merci pour tout

Publié : mer. 02/nov./2005 18:49
par Anonyme2
Voici la version 3.10
j'ai fait des tests sur Win98 pour corriger les problèmes
- Correction du bug concernant le non-fonctionnement sous Windows 98 du survol de la barre de menu (couleurs non prises en compte).
- Correction du bug concernant le non-redimensionnement de la fenêtre du menu/menu contextuel sous Windows 98 lors d'un changement de texte ou de police.
- Correction du bug concernant la non transparence pour certaines images sous Windows 98.
La doc a été corrigée et mise à jour
Le fichier zip est
ici
Il contient 5 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 --> fichier d'exemple
Exemple Multi_PopupColor.pb --> fichier d'exemple
Publié : mer. 02/nov./2005 19:27
par Backup
Merci Denis
