PureBasic

Forums PureBasic
Nous sommes le Mer 19/Juin/2013 7:10

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 7 messages ] 
Auteur Message
 Sujet du message: Volontaire pour tester GetWindowBackgroundColor()
MessagePosté: Mar 21/Fév/2012 14:52 
Hors ligne

Inscription: Mer 11/Fév/2004 0:32
Messages: 1015
Localisation: Québec, Canada
Bonjour aux utilisateurs de Mac,

Puisque je n'ai pas de machine Mac, j'ai besoin d'un volontaire pour tester le code ci-dessous pour voir si la commande fonctionne et surtout si elle retourne bien la valeur de la couleur du fond de la fenêtre.

Merci à l'avance.
Guimauve

Code:
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Project name : GetWindowBackgroundColor()
; File Name : GetWindowBackgroundColor.pb
; File version: 0.0.4
; Programmation : In Progress
; Programmed by : Guimauve
; Date : 19-02-2012
; Last Update : 22-02-2012
; PureBasic code : 4.60
; Plateform : Windows, Linux, MacOS X
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

CompilerSelect #PB_Compiler_OS
   
  CompilerCase #PB_OS_Linux
   
    ImportC ""
      gtk_style_lookup_color(*style, ColorName.p-utf8, *Color)
    EndImport
   
CompilerEndSelect

Procedure GetWindowBackgroundColor()
 
  CompilerSelect #PB_Compiler_OS
     
    CompilerCase #PB_OS_Windows
      BackgroundColor.l = GetSysColor_(#COLOR_3DFACE)
     
    CompilerCase #PB_OS_Linux
     
      BtnGadget = ButtonGadget(#PB_Any,0,0,0,0,"") ; Il faut créer un bouton bidon pour récupérer la couleur
     
      If BtnGadget <> #Null
       
        ColorNameAscii.s = Space(Len("bg_color"))
       
        PokeS(@ColorNameAscii, "bg_color", -1, #PB_UTF8)
       
        gtk_widget_realize_(GadgetID(BtnGadget))
       
        *style.GtkStyle = gtk_rc_get_style_(GadgetID(BtnGadget))
       
        If gtk_style_lookup_color(*style, ColorNameAscii, @BGColor.GDKColor)
          Red = (BGColor\red / 255) & $FF
          Green = (BGColor\green / 255) & $FF
          Blue = (BGColor\blue / 255) & $FF
        Else
          Red = 238
          Green = 237
          Blue = 236
        EndIf
       
        FreeGadget(BtnGadget) ; On se débarasse du bouton bidon
       
      EndIf
     
      BackgroundColor.l = RGB(Red, Green, Blue)
     
    CompilerCase #PB_OS_MacOS
     
        BackgroundColor.l = $EBEBEB
     
  CompilerEndSelect
 
  ProcedureReturn BackgroundColor
EndProcedure

; <<<<<<<<<<<<<<<<<<<<<<<
; <<<<< END OF FILE <<<<<
; <<<<<<<<<<<<<<<<<<<<<<<


Dernière édition par Guimauve le Jeu 23/Fév/2012 0:25, édité 4 fois.

Haut
 Profil  
 
 Sujet du message: Re: Volontaire pour tester GetWindowBackgroundColor()
MessagePosté: Mar 21/Fév/2012 21:10 
Hors ligne
Avatar de l’utilisateur

Inscription: Lun 17/Déc/2007 12:44
Messages: 936
Localisation: Nord (France)
Je na'ai pas trop de temps ce soir mais je ferais le test sur les 3 OS au plus vite.

Cordialement,
GallyHC


Haut
 Profil  
 
 Sujet du message: Re: Volontaire pour tester GetWindowBackgroundColor()
MessagePosté: Mer 22/Fév/2012 3:51 
Hors ligne

Inscription: Mer 11/Fév/2004 0:32
Messages: 1015
Localisation: Québec, Canada
Bonjour à tous,

Je confirme que le code fonctionne sous Windows et sous Linux sans problème. Il reste seulement le test sous Mac OSX que je ne peux pas faire.

A+
Guimauve


Haut
 Profil  
 
 Sujet du message: Re: Volontaire pour tester GetWindowBackgroundColor()
MessagePosté: Mer 22/Fév/2012 15:50 
Hors ligne

Inscription: Ven 23/Avr/2004 18:08
Messages: 282
Localisation: Ardèche St Montan
Bonjour Guimauve,

Bon, je ne suis pas un spécialiste du Mac, et j'ai donc lancé ta procédure sous windows avec parallels et sous Mac pour voir si les résultat étaient identiques.

Je fais sous les deus OS : Debug GetWindowBackgroundColor()

sur Mac j'obtient 10724259
et sur Windows 14215660

J'espère que cela peut t'aider.

A+

André.


Haut
 Profil  
 
 Sujet du message: Re: Volontaire pour tester GetWindowBackgroundColor()
MessagePosté: Mer 22/Fév/2012 19:12 
Hors ligne

Inscription: Mer 11/Fév/2004 0:32
Messages: 1015
Localisation: Québec, Canada
Good07 a écrit:
Bonjour Guimauve,

Bon, je ne suis pas un spécialiste du Mac, et j'ai donc lancé ta procédure sous windows avec parallels et sous Mac pour voir si les résultat étaient identiques.

Je fais sous les deus OS : Debug GetWindowBackgroundColor()

sur Mac j'obtient 10724259
et sur Windows 14215660

J'espère que cela peut t'aider.

A+

André.


Pas vraiment, ce qu'il faut faire serait d'ouvrir une fenêtre vide, prendre une capture du tout le bureau avec la touche "PrintScreen" (ou juste la fenêtre active avec "Alt" + "PrintScreen"), copier l'image dans un logiciel d'édition d'image, prélever la couleur quelque par dans le milieu de la fenêtre et la comparer avec celle retournée par la commande Debug GetWindowBackgroundColor() sous Mac.

Là ça pourrait m'aider.

A+
Guimauve


Haut
 Profil  
 
 Sujet du message: Re: Volontaire pour tester GetWindowBackgroundColor()
MessagePosté: Mer 22/Fév/2012 21:46 
Hors ligne

Inscription: Ven 23/Avr/2004 18:08
Messages: 282
Localisation: Ardèche St Montan
Bonsoir Guimauve,

Bon en ouvrant une fenêtre vide sur tout l'écran (1920, 1200) et en faisant ce que tu me dis, j'obtiens avec un logiciel d'édition d'image:
R=237
V=237
B=237
dans PureBasic si je fais:
Code:
red=237
green=237
blue=237
BackgroundColor.l = RGB(Red, Green, Blue)
Debug BackgroundColor

J'obtiens : 15592941
si à la fin de ton programme je rajoute:
Code:
If OpenWindow(0, 0, 0, 1920, 1200, "",#PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget) = 0
  End
EndIf
Repeat
  Event = WaitWindowEvent()
Debug GetWindowBackgroundColor()
Until Event = #PB_Event_CloseWindow

j'obtiens toujours le même chiffre: 10724259

J'espère que cette fois-ci cela répond à ta question ...

A+
André.


Haut
 Profil  
 
 Sujet du message: Re: Volontaire pour tester GetWindowBackgroundColor()
MessagePosté: Jeu 23/Fév/2012 0:10 
Hors ligne

Inscription: Mer 11/Fév/2004 0:32
Messages: 1015
Localisation: Québec, Canada
Bonjour Good7,

Effectivement, sans voir ce qui se passe c'est difficile de comprendre. Cependant, quelqu'un sur le forum anglais m'a fait remarquer que sous MacOS c'est toujours la valeur de $EBEBEB ou RGB(235, 235, 235) pour toute les fenêtres standards créées par PureBasic. Donc on cesse de se casser le pompon pour rien.

Merci pour tes efforts et désoler de t'avoir fait travailler pour rien.

A+
Guimauve


Haut
 Profil  
 
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 7 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  
cron

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye