Support des API des themes XP

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

Support des API des themes XP

Message par Anonyme2 »

J'ai fait les fichiers pour Purebasic afin de pouvoir utiliser directement les API liées aux thèmes XP

Voici le lien du zip qui contient 2 fichiers ici

Le 1er est le fichier UXTHEME sans extension à placer dans le repertoire PureBasic\Purelibraries\Windows et le second le fichier uxtheme.lib à placer dans le répertoire PureBasic\Purelibraries\Windows\Libraries

Relancer PB

Les 48 API suivantes sont disponibles directement en mettant le traditionnel _
Il faut bien sur ne l'utiliser qu'avec XP c'est-à-dire tester que l'oS est bien XP


Code : Tout sélectionner

    CloseThemeData 
    DrawThemeBackground 
    DrawThemeBackgroundEx 
    DrawThemeEdge 
    DrawThemeIcon 
    DrawThemeParentBackground 
    DrawThemeText 
    EnableThemeDialogTexture 
    EnableTheming 
    GetCurrentThemeName 
    GetThemeAppProperties 
    GetThemeBackgroundContentRect 
    GetThemeBackgroundExtent 
    GetThemeBackgroundRegion 
    GetThemeBool 
    GetThemeColor 
    GetThemeDocumentationProperty 
    GetThemeEnumValue 
    GetThemeFilename 
    GetThemeFont 
    GetThemeInt 
    GetThemeIntList 
    GetThemeMargins 
    GetThemeMetric 
    GetThemePartSize 
    GetThemePosition 
    GetThemePropertyOrigin 
    GetThemeRect 
    GetThemeString 
    GetThemeSysBool 
    GetThemeSysColor 
    GetThemeSysColorBrush 
    GetThemeSysFont 
    GetThemeSysInt 
    GetThemeSysSize 
    GetThemeSysString 
    GetThemeTextExtent 
    GetThemeTextMetrics 
    GetWindowTheme 
    HitTestThemeBackground 
    IsAppThemed 
    IsThemeActive 
    IsThemeBackgroundPartiallyTransparent 
    IsThemeDialogTextureEnabled 
    IsThemePartDefined 
    OpenThemeData 
    SetThemeAppProperties 
    SetWindowTheme 
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

hmm c plutot cool çà.
as tu un source pour essayer çà ?
Image
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Flype a écrit :hmm c plutot cool çà.
as tu un source pour essayer çà ?
Pas grand chose pour l'instant mais ce code simple pour récupérer le handle du theme de la fenêtre
Utilise une procedure de Nico pour convertir le format ansi en unicode

Code : Tout sélectionner

Procedure.l Ansi2Uni(ansi.s)
  size.l=MultiByteToWideChar_(#CP_ACP,0,ansi,-1,0,0)
  Dim unicode.w(size)
  MultiByteToWideChar_(#CP_ACP, 0, ansi, Len(ansi), unicode(), size)
  ProcedureReturn @unicode() 
EndProcedure
 
 
WindowID_Fenetre_Principale = OpenWindow(0, 0, 0, 560 , 355, #PB_Window_MinimizeGadget | #PB_Window_SystemMenu | #PB_Window_ScreenCentered, "")
   If WindowID_Fenetre_Principale And CreateGadgetList( WindowID_Fenetre_Principale)
          If OSVersion() = #PB_OS_Windows_XP
             htheme =OpenThemeData_(WindowID_Fenetre_Principale, Ansi2Uni("Window"))
             Debug "htheme = "+Str(htheme)
          EndIf
          Repeat
           
          Until WaitWindowEvent() = #PB_Event_CloseWindow   
   EndIf
End 
bernard13
Messages : 1221
Inscription : mer. 05/janv./2005 21:30

Message par bernard13 »

merci denis
mais je comprend pas

tu dis de mettre le fichier uxtheme.lib à placer dans le répertoire PureBasic\Purelibraries\Windows\Libraries
hors j'ai dejà le fichier uxtheme.lib

peux tu m'expliquer denis ...
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

trop classe, je vais testé ça :D merci
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

bernard, font il exactement la meme taille ?
Image
bernard13
Messages : 1221
Inscription : mer. 05/janv./2005 21:30

Message par bernard13 »

non
un fais 12.0ko il date de du 12/12/2003

et celui de denis fais 11,6 ko

je comprend pas pourquoi ce fichier est deja installer
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Bernard, Je ne sais pas d'ou vient ton fichier mais ces APi ne fonctionnaient pas avec PB 3.93.

Peut-être que c'est une librairie utilisateur qui t'a installé ces fichiers.
Bon, puisque tu ne comprend pas, n'installe pas ces 2 fichiers.

C'est d'ailleurs très simple d'ajouter des API pour Pure voire ses propres commandes suivies par _ du moment ou elle existent dans un fichier Dll.
bernard13
Messages : 1221
Inscription : mer. 05/janv./2005 21:30

Message par bernard13 »

j'ai rajouter aucun fichier
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message par gansta93 »

Cool.
tu as fais ça avec DLLImporter ?
Sûrement... c domage que l'on ait pas la syntaxe dans la barre d'état.
Qu'elqu'un saurait-il comment faire pour qu'on puisse l'avoir ?
Arf... un peu hors-sujet dsl.
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

heu oui gangsta, utilise jaPBe par exemple. :wink:
Image
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message par gansta93 »

Je sais que certaines API ont leur syntaxe qui s'affichent dans la bare d'état comme les autres fonctions. Donc je supause que c'est possible avec les API.
Et pour JaPBe, j'aimerais bien, mais je ne peux pas.
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

gansta93 a écrit :Cool.
tu as fais ça avec DLLImporter ?
Sûrement... c domage que l'on ait pas la syntaxe dans la barre d'état.
Qu'elqu'un saurait-il comment faire pour qu'on puisse l'avoir ?
Arf... un peu hors-sujet dsl.
Oui je l'ai fait avec DLLImporter , mais dans l'éditeur PB, aucune API n'a la synthaxe.
D'ailleurs, pour programmer les API, il faut savoir quoi passer en paramètres alors certaines API ont jusqu'à 9 paramètres pour les thèmes XP, je ne sais pas si celà tiendrait dans la barre d'état mais de toute façon cette aide n'apporterait rien, car il faut bien lire la doc MS et encore pour savoir quoi passer :roll:
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message par gansta93 »

Denis a écrit :Oui je l'ai fait avec DLLImporter , mais dans l'éditeur PB, aucune API n'a la synthaxe.
Un exemple du contraire : marque

Code : Tout sélectionner

SetupPromptReboot_(
et la syntaxe est dans la bare d'état.
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

il s'agit du fichier "APIFunctionListing.txt" dans le dossier "compiler" de PB
La description de certaine fonction de l'API y est.

Donc c'est ce fichier qu'il faut compléter :wink:
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Répondre