Toolbar vertical et ToolbarImagebutton

Programmation d'applications complexes
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Toolbar vertical et ToolbarImagebutton

Message par Progi1984 »

Voilà grace à ce code, j'ai réussi à faire une toolbar vertical, mais impossible de mettre des toolbarimagebutton :

Code : Tout sélectionner

If OpenWindow(0, 0, 0, 150, 250, #PB_Window_SystemMenu |#PB_Window_ScreenCentered, "ToolBar")
  CreateGadgetList(WindowID())
  ContainerGadget(1,0, 30,20,200,#PB_Container_BorderLess)
  TBar=CreateToolBar(0, GadgetID(1))
  SetWindowLong_(TBar, #GWL_STYLE,GetWindowLong_(TBar, #GWL_STYLE)|#TBSTYLE_WRAPABLE)
  ToolBarStandardButton(0, #PB_ToolBarIcon_New)
  ToolBarStandardButton(1, #PB_ToolBarIcon_Open)
  ToolBarStandardButton(2, #PB_ToolBarIcon_Save)
  Repeat
    EventID = WaitWindowEvent()
    If EventID = #PB_Event_Menu
      Debug "ToolBar ID: "+Str(EventMenuID())
    EndIf
  Until EventID = #PB_Event_CloseWindow
EndIf
Donc j'en viens à vous demander de l'aide.

Faut il que les images/icones aient une taille spécifique ?
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Avec une image au format .ico, le bouton apparait, mais il ne fait qu'un ou deux pixels de haut 8O

Par contre, on peut quand même cliquer dessus, le débugger renvoie bien l'ID du bouton.

Essaie avec une icone 16x16 :?
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

En fait, dans ton code, la toolbar ne veut pas afficher plus de trois rangées de boutons. (Pourquoi?, je ne sais pas)

Supprime un des ToolBarStandardButton(), et tu verras que ton ToolBarImageButton() s'affiche correctement.

Code : Tout sélectionner

If CreateImage(10, 16, 16)
  StartDrawing(ImageOutput())
  Box(0,0,16,16,RGB($0,$0,$FF))
  StopDrawing()
EndIf

If OpenWindow(0, 0, 0, 150, 250, #PB_Window_SystemMenu |#PB_Window_ScreenCentered, "ToolBar") 
  CreateGadgetList(WindowID()) 
  ContainerGadget(1,0, 30,25,200,#PB_Container_BorderLess) 
  TBar=CreateToolBar(0, GadgetID(1)) 
  SetWindowLong_(TBar, #GWL_STYLE,GetWindowLong_(TBar, #GWL_STYLE)|#TBSTYLE_WRAPABLE) 
  ToolBarStandardButton(0, #PB_ToolBarIcon_New) 
  ;ToolBarStandardButton(1, #PB_ToolBarIcon_Open) 
  ToolBarStandardButton(2, #PB_ToolBarIcon_Save) 
  
  ToolBarImageButton(3,UseImage(10))
  
  
  Repeat 
    EventID = WaitWindowEvent() 
    If EventID = #PB_Event_Menu 
      Debug "ToolBar ID: "+Str(EventMenuID()) 
    EndIf 
  Until EventID = #PB_Event_CloseWindow 
EndIf 
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Ouais mais disons que trois rangées de boutons, c'est pas top. pas un moyen d'améliorer cela ?
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Dés qu'il y a un nombre pair de boutons, ca foire. Sinon, c'est ok ! Bizarre :

Code : Tout sélectionner

If CreateImage(1000, 16, 16)
  StartDrawing(ImageOutput())
  Box(0,0,16,16,RGB($0,$0,$FF))
  StopDrawing()
EndIf

If OpenWindow(0, 0, 0, 150, 600, #PB_Window_SystemMenu |#PB_Window_ScreenCentered, "ToolBar")
  CreateGadgetList(WindowID())
  ContainerGadget(1,0, 30,25,600,#PB_Container_BorderLess)
  TBar=CreateToolBar(0, GadgetID(1))
  SetWindowLong_(TBar, #GWL_STYLE,GetWindowLong_(TBar, #GWL_STYLE)|#TBSTYLE_WRAPABLE)
  ToolBarStandardButton(0, #PB_ToolBarIcon_New)
  ToolBarStandardButton(1, #PB_ToolBarIcon_Open)
  ToolBarStandardButton(2, #PB_ToolBarIcon_Save)
  ToolBarImageButton(3,UseImage(1000))
  ToolBarStandardButton(4, #PB_ToolBarIcon_New)
  ToolBarImageButton(5,UseImage(1000))
  ToolBarImageButton(6,UseImage(1000))
  ToolBarImageButton(7,UseImage(1000))
  ToolBarImageButton(8,UseImage(1000))
  ToolBarImageButton(9,UseImage(1000))
  ToolBarImageButton(10,UseImage(1000))
  ToolBarImageButton(11,UseImage(1000))
  ToolBarImageButton(12,UseImage(1000))
  ToolBarImageButton(13,UseImage(1000))
  ToolBarImageButton(14,UseImage(1000))
  ToolBarImageButton(15,UseImage(1000))
  ToolBarImageButton(16,UseImage(1000))
  ToolBarImageButton(17,UseImage(1000))
  ToolBarStandardButton(18, #PB_ToolBarIcon_New)
  ToolBarStandardButton(19, #PB_ToolBarIcon_New)
  Repeat
    EventID = WaitWindowEvent()
    If EventID = #PB_Event_Menu
      Debug "ToolBar ID: "+Str(EventMenuID())
    EndIf
  Until EventID = #PB_Event_CloseWindow
EndIf 
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Oui, effectivement! :?

Bizarre!
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Si tu termines ta toolbar par un ToolBarSeparator(), on dirait que ça marche!
Répondre