MoreListIconGadget

Archive.
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

MoreListIconGadget

Message par Flype »

un problème avec la lib de denis

est ce vraiment un bug - je ne sais pas - toujours est il que la commande SetColumnColor() ne fonctionne pas lorsque le gadget passé en paramêtre est dans un SplitterGadget !
Les autres commandes fonctionnent mais celle là semble ne pas réagir, voir fait planter le programme...

:x vooilà voilà denis :wink:
Image
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Re: MoreListIconGadget

Message par Anonyme2 »

Flype a écrit :un problème avec la lib de denis

est ce vraiment un bug - je ne sais pas - toujours est il que la commande SetColumnColor() ne fonctionne pas lorsque le gadget passé en paramêtre est dans un SplitterGadget !
Les autres commandes fonctionnent mais celle là semble ne pas réagir, voir fait planter le programme...

:x vooilà voilà denis :wink:
Flype, tu n'as pas un morceau de code pour que je teste (j'ai recomplilé ma lib avec PB 3.93 et toutes les updates). :D

Tu as fait un essai avec Setrowcolor :?: , ça ne doit pas marcher car j'appelle la même routine qui se charge de faire la différence entre les lignes et les colonnes .
Dernière modification par Anonyme2 le lun. 07/mars/2005 12:01, modifié 2 fois.
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

je te prépare un truc...

dis moi est ce que je peux telecharger la nlle version que tu as recompilée ?
Image
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Voici un lien pour la télécharger (uniquement le fichier librairie)

ici
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

bon voilà, j'ai essayé d'isoler au maximum le pb...

dans cet exemple, je créé, entre autres, 2 listicon

le 1er ds un splitter
le 2eme en dehors du splitter

si je 'colorise' le 1er sans 'coloriser' le 2ème çà marche pas.
si je 'colorise' le 1er et le 2ème çà marche.

idem donc pour SetRowColor()
idem pour la nlle version recompilé

il faudrait aussi verifier dans un panel et un frame, bref, dès lors que le listicon dépends d'une autre fenetre que la principale...

j'espere que çà t'aidera denis.

ps: j'adore ta lib, je peux pas m'en séparer alors fait en sorte qu'elle marche :D

Code : Tout sélectionner

;------------------------------------
;- Bug MoreListIconGadget - SetColumnColor()
;------------------------------------

Enumeration
  
  #gadListeA
  #gadListeB
  #gadEditor
  #gadSplitter
  
EndEnumeration

;------------------------------------

If OpenWindow(0,0,0,400,450,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"test")
  
  If CreateGadgetList(WindowID())
    
    ; dans le splitter
    
    ListIconGadget(#gadListeA,0,0,0,0,"col1",120,#PB_ListIcon_FullRowSelect)
    EditorGadget(#gadEditor,0,0,0,0)
    SplitterGadget(#gadSplitter,10,10,380,300,#gadListeA,#gadEditor)
    
    ; hors du splitter
    
    ListIconGadget(#gadListeB,10,315,380,125,"col1",100,#PB_ListIcon_FullRowSelect)
    
    ; remplissage des gadgets
    
    AddGadgetColumn(#gadListeA,1,"col2",120)
    AddGadgetColumn(#gadListeA,2,"col3",120)
    AddGadgetColumn(#gadListeB,1,"col2",120)
    AddGadgetColumn(#gadListeB,2,"col3",120)
    
    SetGadgetText(#gadEditor,"ligne1"+Chr(10)+"ligne2"+Chr(10)+"ligne3")
    
    For i=0 To 100
      AddGadgetItem(#gadListeA,-1,"test"+Str(i)+Chr(10)+"test"+Chr(10)+"test")
      AddGadgetItem(#gadListeB,-1,"test"+Str(i)+Chr(10)+"test"+Chr(10)+"test")
    Next

  EndIf
  
EndIf

;------------------------------------

; couleur du listicon dans le splitter

SetColumnColor(#gadListeA,0,$FFFFFF,$808080)
SetColumnColor(#gadListeA,1,$FFFFFF,$008080)
SetColumnColor(#gadListeA,2,$FFFFFF,$000080)
SetRowColor   (#gadListeA,5,$FFFFFF,$00FF00)

; couleur du listicon hors du splitter

;SetColumnColor(#gadListeB,0,$FFFFFF,$000080)  ; **** décommentez pour voir ***
;SetColumnColor(#gadListeB,1,$FFFFFF,$008080)  ; **** décommentez pour voir ***
;SetColumnColor(#gadListeB,2,$FFFFFF,$808080)  ; **** décommentez pour voir ***
;SetRowColor   (#gadListeB,5,$FFFFFF,$00FF00)  ; **** décommentez pour voir ***

;------------------------------------

Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
End
pire encore dans cet exemple :
le splittergadget pose pb - et là je ne sais si purebasic ou ta lib qui provoque un gros bug quand on essaye certains mouvements ds l'interface.

Code : Tout sélectionner

;------------------------------------
;- Bug MoreListIconGadget - SetColumnColor()
;------------------------------------

Enumeration
  
  #gadListeA
  #gadEditor
  #gadSplitter
  
  #gadFrame
  #gadListeB
  
  #gadListeC
  
EndEnumeration

;------------------------------------

If OpenWindow(0,0,0,400,600,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"test")
  
  If CreateGadgetList(WindowID())
    
    ; dans le splitter
    
    ListIconGadget(#gadListeA,0,0,0,0,"col1",120,#PB_ListIcon_FullRowSelect)
    EditorGadget(#gadEditor,0,0,0,0)
    SplitterGadget(#gadSplitter,10,10,380,300,#gadListeA,#gadEditor)
    
    ContainerGadget(#gadFrame,10,315,380,125,#PB_Frame3D_Flat)
    ListIconGadget(#gadListeB,5,5,370,115,"col1",100,#PB_ListIcon_FullRowSelect)
    CloseGadgetList()
    
    ; hors gadget 'contenant'
    
    ListIconGadget(#gadListeC,10,450,380,125,"col1",100,#PB_ListIcon_FullRowSelect)
    
    ; remplissage des gadgets
    
    AddGadgetColumn(#gadListeA,1,"col2",120)
    AddGadgetColumn(#gadListeA,2,"col3",120)
    AddGadgetColumn(#gadListeB,1,"col2",120)
    AddGadgetColumn(#gadListeB,2,"col3",120)
    AddGadgetColumn(#gadListeC,1,"col2",120)
    AddGadgetColumn(#gadListeC,2,"col3",120)
    
    SetGadgetText(#gadEditor,"ligne1"+Chr(10)+"ligne2"+Chr(10)+"ligne3")
    
    For i=0 To 100
      AddGadgetItem(#gadListeA,-1,"test"+Str(i)+Chr(10)+"test"+Chr(10)+"test")
      AddGadgetItem(#gadListeB,-1,"test"+Str(i)+Chr(10)+"test"+Chr(10)+"test")
      AddGadgetItem(#gadListeC,-1,"test"+Str(i)+Chr(10)+"test"+Chr(10)+"test")
    Next

  EndIf
  
EndIf

;------------------------------------

; couleur du listicon dans le splitter

SetColumnColor(#gadListeA,0,$FFFFFF,$808080)
SetColumnColor(#gadListeA,1,$FFFFFF,$008080)
SetColumnColor(#gadListeA,2,$FFFFFF,$000080)
SetRowColor   (#gadListeA,3,$000000,$00FF00)

; couleur du listicon dans le container

;SetColumnColor(#gadListeB,0,$FFFFFF,$000080)  ; **** décommentez pour voir ***
;SetColumnColor(#gadListeB,1,$FFFFFF,$008080)  ; **** décommentez pour voir ***
;SetColumnColor(#gadListeB,2,$FFFFFF,$808080)  ; **** décommentez pour voir ***
;SetRowColor   (#gadListeB,4,$000000,$00FF00)  ; **** décommentez pour voir ***

; couleur du listicon hors du splitter

;SetColumnColor(#gadListeC,0,$FFFFFF,$808080)  ; **** décommentez pour voir ***
;SetColumnColor(#gadListeC,1,$FFFFFF,$008080)  ; **** décommentez pour voir ***
;SetColumnColor(#gadListeC,2,$FFFFFF,$000080)  ; **** décommentez pour voir ***
;SetRowColor   (#gadListeC,5,$000000,$00FF00)  ; **** décommentez pour voir ***

;------------------------------------

Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
End
Dernière modification par Flype le lun. 07/mars/2005 14:37, modifié 1 fois.
Image
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Mercy Flype,

je vais regarder :D

Pour les Panel, je pense que ça ne marche pas, on intercepte pas de la même façon (Merci Erix14 :wink: ), il faudrait que je recode la lib, il ya déjà 63 fichiers asm, ça m'embêterait qu'elle ne fonctionne plus :roll:
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

ah tiens on s'est croisé... regarde les exemples 'buggés' ci dessus. :wink:
Image
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

FLype,

j'ai corrigé le bug, mes tests semblent être concluants.
Ca fonctionne avec les containergadget, les splittergadget et les panelsgadgets lorsque le niveau d'imbrication est de 1.

je n'ai pas fait de tests si on imbrique des containers dans des panels etc.
Uniquement si une listicongadget ext dans splittergadget ou dans un container ou dans un panelgadget.

C'est déjà ça, ça doit couvrir 90% des utilisations

La lib est au même endroit ici
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

raahh merci denis.
je vais regardé de suite...
Image
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

yeah ca marche :D

c cool - tu as bien bossé denis :wink:

je vais pouvoir mettre à jour 2dev News en intégrant un SplitterGadget ce qui sera plus joli et pratique...
Image
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Merci Flype :D

Je vais retravailler cette lib depuis le temps.
Je ne sais plus mais si c'est dans la doc mais on peut ajouter un parametre à toutes les commandes qui est le handle d'une font et 0 si on veut revenir à la font système.

voici un exemple avec les font et je viens de trouver un bug avec la commande SetColumnFont (problème de priorité d'affichage, je vais corriger ) mais qui ne plante pas le prog.

J'ai toujours pas trouvé comment augmenter la taille des lignes sans changer le mode de la listicon.

Si quelqu'un a une idée, je prend

Code : Tout sélectionner

;------------------------------------
;SetColumnColor()
;------------------------------------

Enumeration
 
  #gadListeA
  #gadListeB
  #gadEditor
  #gadSplitter
 
EndEnumeration

;------------------------------------

If OpenWindow(0,0,0,400,450,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"test")
 
  If CreateGadgetList(WindowID())
   
    ; dans le splitter
   
    ListIconGadget(#gadListeA,0,0,0,0,"col1",120,#PB_ListIcon_FullRowSelect)
    EditorGadget(#gadEditor,0,0,0,0)
    SplitterGadget(#gadSplitter,10,10,380,300,#gadListeA,#gadEditor)
   
    ; hors du splitter
   
    ListIconGadget(#gadListeB,10,315,380,125,"col1",100,#PB_ListIcon_FullRowSelect)
   a$ = Space(256)
    GetClassName_(GetParent_(GadgetID(#gadListeA)), a$, 256)
   Debug a$
    
    GetClassName_(GetParent_(GadgetID(#gadListeB)), a$, 256)
   Debug a$
    ; remplissage des gadgets
   
    AddGadgetColumn(#gadListeA,1,"col2",120)
    AddGadgetColumn(#gadListeA,2,"col3",120)
    AddGadgetColumn(#gadListeB,1,"col2",120)
    AddGadgetColumn(#gadListeB,2,"col3",120)
   
    SetGadgetText(#gadEditor,"ligne1"+Chr(10)+"ligne2"+Chr(10)+"ligne3")
   
    For i=0 To 100
      AddGadgetItem(#gadListeA,-1,"test"+Str(i)+Chr(10)+"test"+Chr(10)+"test")
      AddGadgetItem(#gadListeB,-1,"test"+Str(i)+Chr(10)+"test"+Chr(10)+"test")
    Next

  EndIf
 
EndIf

;------------------------------------

FontGras   = LoadFont(1000, "Verdana", 9, #PB_Font_HighQuality| #PB_Font_Bold )
FontItalic = LoadFont(1001, "Verdana", 9, #PB_Font_HighQuality| #PB_Font_Italic )
FontGI     = LoadFont(1002, "Verdana", 9, #PB_Font_HighQuality| #PB_Font_Italic| #PB_Font_Bold  )
FontBig    = LoadFont(1003, "Verdana", 11, #PB_Font_HighQuality )


; couleur du listicon dans le splitter

 SetColumnColor(#gadListeA,0,$FFFFFF,$808080, FontGras)
 SetColumnColor(#gadListeA,1,$FFFFFF,$008080, FontItalic)
 SetColumnColor(#gadListeA,2,$FFFFFF,$000080)
 SetRowColor   (#gadListeA,5,$FFFFFF,$00FF00, FontGI)
 SetColumnFont(#gadListeA, 2, FontBig)

; couleur du listicon hors du splitter

SetColumnColor(#gadListeB,0,$FFFFFF,$000080)
SetColumnColor(#gadListeB,1,$FFFFFF,$008080)
SetColumnColor(#gadListeB,2,$FFFFFF,$808080)
SetRowColor   (#gadListeB,5,$FFFFFF,$00FF00)

;------------------------------------

Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
End 
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

tiens c marrant que tu en parles...

le parametre 'font' je m'en étais apercu grace à jaPBe qui affiche la syntaxe des fonctions en bas.
et je m'en sert meme dans mon programme du boulot...
et je confirme c'est pas ds la doc.
Image
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Je vais mettre à jour tout ça un de ces 4 matins :D
Répondre