Page 3 sur 3

Publié : dim. 05/juil./2009 3:53
par Geo Trouvpatou
Salut.

Arfff!!! LSI, hier je n'avais pas eu le temps de lire le code en profondeur.

Donc là je me dis que si on décide de faire une interface chargée, c'est un peu prise de tête de graber le fond de tout les côté :wink:.

Par contre le code est excellent si l'on décide de ne mettre aucune image en background (qui est le soucis de ce code).

Bon, j'ai mis de côté le code pour savoir si la souris est sur le gadget, ça me servira bien un jour.

Bye et merci.

Publié : dim. 05/juil./2009 10:04
par Le Soldat Inconnu
c'est un peu prise de tête de graber le fond de tout les côté
Il doit y avoir moyen de rendre cela automatique via une procedure.

Publié : dim. 05/juil./2009 11:52
par Backup
............

Publié : dim. 05/juil./2009 16:22
par kernadec
bonjour
voila je pense que c'est bon!!
la solution est la suivante: un bouton peut en cacher un autre
a voir avec les autre os?
en attendant si quelqu'un peut expliquer le pourquoi du comment
c'est possible mystere?
je viens d'ajouter un test avec image!

Code : Tout sélectionner

;#############################################
;###     Kernadec   7/2009                ####
;###         Skin   gadget                ####
;#############################################

OpenWindow(0, 0, 0, 550, 550,"Fenêtre Skin", #PB_Window_SystemMenu|#PB_Window_ScreenCentered) 
ContainerGadget(1, 19, 19, 508, 508 ,#PB_Container_Double) 

test=1       ; 1 ou 0 = choix du skin

If test=0
;##           charge une image
 LoadImage(0, "c:\PureBasic\Examples\Sources\Data\Geebee2.bmp" )
 ResizeImage(0,512,512)
Else
;##          dégradé de couleur
CreateImage(0, WindowWidth(0), WindowHeight(0)) 
StartDrawing(ImageOutput(0)) 
  DrawingMode(1) 
 For n = 0 To 255 
   ;Box(0,n*6,512,3,RGB(n,n,n)) 
   ;Box(0,n*5,512,5,RGB(255-n,255-n,255)) 
   ;Box(0,n*10,512,10,RGB(255-n,255-n,255)) 
   ;Box(0,n*8,512,8,RGB(255-n,255-n,255)) 
    Box(0,n*2,512,2,RGB(n,n,255-n)) 
   ;Box(0,n*3,512,3,RGB(n,255-n,n)) 
   ;Box(0,n*3,512,3,RGB(255-n,n,n)) 
 Next 
StopDrawing() 
EndIf
  ButtonGadget(2, 150, 150, 80, 20 ,"Test",#PB_Button_Toggle)
  ButtonGadget(4, 280, 150, 80, 20 ,"Test",#PB_Button_Toggle)
  ButtonGadget(6, 215, 360, 80, 20 ,"Quitter",#PB_Button_Toggle)
  StringGadget(8, 215, 110, 80,20,"Bonjour")
  ImageGadget(0,0,0,ImageWidth(0), ImageHeight(0), ImageID(0))
  result= UseGadgetList(GadgetID(0))
  ButtonGadget(3, 150, 150, 80, 20 ,"Test",#PB_Button_Toggle)
  ButtonGadget(5, 280, 150, 80, 20 ,"Test",#PB_Button_Toggle)
  ButtonGadget(7, 215, 360, 80, 20 ,"Quitter",#PB_Button_Toggle)
  StringGadget(9, 215, 110, 80,20,"Bonjour")
  UseGadgetList(result)
Repeat 
  Event = WaitWindowEvent() 
  Select Event 
   Case #PB_Event_Gadget    
    Select EventGadget() 
     Case 2 
      Debug "Bouton2" 
      Case 4 
      Debug "Bouton4" 
      Case 6 
      Debug "Quitter"
      End 
     EndSelect 
   Case #PB_Event_CloseWindow 
    End 
  EndSelect 
ForEver 
cordialement

Publié : dim. 05/juil./2009 20:33
par Le Soldat Inconnu
Avec ta solution, sous XP, j'ai un bord blanc autour des boutons (thème avec bouton avec angle arrondi)
Donc c'est plutôt moche ....
Mais ça marche sinon

Publié : dim. 05/juil./2009 20:49
par kernadec
bonsoir soldat inconnu
mais ca doit venir du dégradé car je viens de mettre une version avec image
il n'y a pas ce problème,
est ce que c'est le dégradé en mode box, alors peut être qu'avec des lignes
ca le ferait moins, je n'ai pas testé!
enfin je te trouve exigeant quand même, car il n'y a pas de callback.
je viens de testé plusieurs couleur de dégrade,
il y a des couleurs ou ça se voit pas, mais c'est un truc du bouton xp il a une ceinture ce bouton pour détecte le curseur , alors tout dépend des couleurs du système.

cordialement

Publié : dim. 05/juil./2009 20:54
par Le Soldat Inconnu
enfin je te trouve exigeant quand même
euh ... Oui, je le suis :lol:

Mais si on veut un dégradé, c'est pour faire joli. Alors je pense qu'il faut arriver à faire un bouton qui s'intègre bien dans le dégradé. (aie, non, pas taper .... mais ... aie aie)

Publié : dim. 05/juil./2009 21:35
par kernadec
bonsoir
je viens de scruter ma trouvaille, je pense qu'elle contourne le systeme
et ca vient des gadget qui sont étudiés pour fonctionner avec
les couleurs des sélection et d'arrière plan définie du système et les gadget fonctionne principalement en connaissant ses couleurs d'arriéré plan,
et pour le coup des couleurs en dégradé d'arriere plan de gadget, c'est un cas de figure qui n'est pas prévu par le systeme, je trouve cela marrant, et cela fait de belles boites quand même

je viens de regarder code archive il y a un truc qui s'appelle GradientImage.pb
réalisé par Danillo une réference en purebasic
il fait un dégradé sur une fenêtre en utilisant DisableGadget et son bouton annuler est pareil avec des bords moche, par contre sa méthode du disablegadget ne fonctionne que pour les fenêtres apparemment,
j'ai tester sur un container gadget les boutons s'animes, mais n'ont pas de d'éffect pour l'instant dans la fenêtre debug. mais je continue les tests

nous sommes en pleine mythologie avec la légender des gémeaux, qui avec Castor et Pollux un immortel et un mortel partage tout les deux un jour sur deux l'immortalité.
mais bon le post suivant démontre l'inutilité de ces deux boutons qui cela dit fonctionnent.

cordialement

Publié : lun. 06/juil./2009 9:31
par kernadec
bonjour
j'ai utilisé la l'exemple de Danillo qui met un disablegadget sur l'image
et en mettant les boutons à la suite la méthode fonctionne, c'est génial !!
et avec un seul bouton sans callback et ce doit être compatible avec tous les Os

ce systeme pourrait peut être même être intégrer dans Visual Designer
pour se créer directement des gadget colorés,
avec une multitudes de textures de dégradés possible, ça serait trop cool.

Code : Tout sélectionner

;#############################################
;###               methode de Danillo                                          ####
;###                  Skin   gadget                                               ####
;#############################################

OpenWindow(0, 0, 0, 550, 550,"Fenêtre Skin", #PB_Window_SystemMenu|#PB_Window_ScreenCentered) 
ContainerGadget(1, 19, 19, 508, 508 ,#PB_Container_Double) 
 
test=0       ; 1/0 choix du skin

If test=1
;##           charge une image
 LoadImage(0, "c:\PureBasic\Examples\Sources\Data\Geebee2.bmp" )
 ResizeImage(0,512,512)
EndIf

If test=0
;##          dégradé de couleur
CreateImage(0, WindowWidth(0), WindowHeight(0)) 
StartDrawing(ImageOutput(0)) 
  DrawingMode(1) 
 For n = 0 To 255 
   ;Box(0,n*6,512,3,RGB(n,n,n)) 
   Box(0,n*5,512,5,RGB(255-n,255-n,255)) 
   ;Box(0,n*10,512,10,RGB(255-n,255-n,255)) 
   ;Box(0,n*8,512,8,RGB(255-n,255-n,255)) 
   ;Box(0,n*2,512,2,RGB(n,n,255-n)) 
   ;Box(0,n*3,512,3,RGB(n,255-n,n)) 
   ;Box(0,n*3,512,3,RGB(255-n,n,n)) 
 Next 
StopDrawing() 
EndIf

  
  ImageGadget(0,0,0,ImageWidth(0), ImageHeight(0), ImageID(0))
  DisableGadget(0,1)
  ButtonGadget(2, 150, 150, 80, 20 ,"< { @ } >",#PB_Button_Toggle)
  ButtonGadget(4, 280, 150, 80, 20 ,"< { @ } >",#PB_Button_Toggle)
  ButtonGadget(6, 235, 230, 35,60 ,"__",#PB_Button_Toggle)
  StringGadget(8, 215, 360, 80, 20,"      Bonjour")

Repeat 
  Event = WaitWindowEvent() 
  Select Event 
   Case #PB_Event_Gadget    
    Select EventGadget() 
     Case 2 
      Debug "Bouton2" 
      Case 4 
      Debug "Bouton4" 
      Case 6 
      Debug "Quitter"
      End 
     EndSelect 
   Case #PB_Event_CloseWindow 
    End 
  EndSelect 
ForEver 
Cordialement