Page 1 of 1

Arrow buttons in the PanelGadget

Posted: Mon Oct 19, 2020 4:33 pm
by Mohsen
Hi all,
How do I prevent the creation of the arrow buttons in the PanelGadget?

I mean these buttons :
Image

Re: Arrow buttons in the PanelGadget

Posted: Mon Oct 19, 2020 5:05 pm
by RASHAD
Hi
Workaround

Code: Select all

If OpenWindow(0, 0, 0, 345, 220, "PanelGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    ContainerGadget(#PB_Any,8,8,325,203)
    PanelGadget     (0, 0, 0, 370, 203)
      AddGadgetItem (0, -1, "Panel 1")
        PanelGadget (1, 5, 5, 290, 166)
          AddGadgetItem(1, -1, "Sub-Panel 1")
          AddGadgetItem(1, -1, "Sub-Panel 2")
          AddGadgetItem(1, -1, "Sub-Panel 3")
        CloseGadgetList()
      AddGadgetItem (0, -1,"Panel 2")
        ButtonGadget(2, 10, 15, 80, 24,"Button 1")
        ButtonGadget(3, 95, 15, 80, 24,"Button 2")
      AddGadgetItem (0, -1,"Panel 3")
      AddGadgetItem (0, -1,"Panel 4")
      AddGadgetItem (0, -1,"Panel 5")
      AddGadgetItem (0, -1,"Panel 6")
      CloseGadgetList()
      CloseGadgetList()
    Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
  EndIf

Re: Arrow buttons in the PanelGadget

Posted: Mon Oct 19, 2020 5:09 pm
by Mohsen
:D

Code: Select all

If OpenWindow(0, 0, 0, 345, 220, "PanelGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    ContainerGadget(#PB_Any,8,8,325,203)
    PanelGadget     (0, 0, 0, 200, 203)
      AddGadgetItem (0, -1, "Panel 1")
        PanelGadget (1, 5, 5, 180, 166)
          AddGadgetItem(1, -1, "Sub-Panel 1")
          AddGadgetItem(1, -1, "Sub-Panel 2")
          AddGadgetItem(1, -1, "Sub-Panel 3")
        CloseGadgetList()
      AddGadgetItem (0, -1,"Panel 2")
        ButtonGadget(2, 10, 15, 80, 24,"Button 1")
        ButtonGadget(3, 95, 15, 80, 24,"Button 2")
      AddGadgetItem (0, -1,"Panel 3")
      AddGadgetItem (0, -1,"Panel 4")
      AddGadgetItem (0, -1,"Panel 5")
      AddGadgetItem (0, -1,"Panel 6")
      CloseGadgetList()
      CloseGadgetList()
    Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
  EndIf
a more principled solution?

Re: Arrow buttons in the PanelGadget

Posted: Mon Oct 19, 2020 5:26 pm
by RASHAD
OK
Use Multi Rows

Code: Select all

  If OpenWindow(0, 0, 0, 345, 220, "PanelGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    ;ContainerGadget(#PB_Any,8,8,325,203)
    PanelGadget     (0, 8, 8, 330, 203)
    SetWindowLongPtr_(GadgetID(0), #GWL_STYLE, GetWindowLongPtr_(GadgetID(0), #GWL_STYLE) | #TCS_MULTILINE)
      AddGadgetItem (0, -1, "Panel 1")
        PanelGadget (1, 5, 5, 290, 166)
          AddGadgetItem(1, -1, "Sub-Panel 1")
          AddGadgetItem(1, -1, "Sub-Panel 2")
          AddGadgetItem(1, -1, "Sub-Panel 3")
        CloseGadgetList()
      AddGadgetItem (0, -1,"Panel 2")
        ButtonGadget(2, 10, 15, 80, 24,"Button 1")
        ButtonGadget(3, 95, 15, 80, 24,"Button 2")
      AddGadgetItem (0, -1,"Panel 3")
      AddGadgetItem (0, -1,"Panel 4")
      AddGadgetItem (0, -1,"Panel 5")
      AddGadgetItem (0, -1,"Panel 6")
      CloseGadgetList()
      ;CloseGadgetList()
    Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
  EndIf


Re: Arrow buttons in the PanelGadget

Posted: Mon Oct 19, 2020 6:21 pm
by Mohsen
Thanks but I do not want to use the multiline style. :?
I want all tabs to be single-line and the arrow buttons not to be created by the panel gadget.

Re: Arrow buttons in the PanelGadget

Posted: Mon Oct 19, 2020 7:13 pm
by infratec
Use the TabBarGadget()

viewtopic.php?f=12&t=47588

Re: Arrow buttons in the PanelGadget

Posted: Tue Oct 20, 2020 10:37 am
by RASHAD
No scroll controls

Code: Select all

If OpenWindow(0, 0, 0, 345, 220, "PanelGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    PanelGadget     (0, 0, 0, 340, 203)
      AddGadgetItem (0, -1, "Panel 1")
        PanelGadget (1, 5, 5, 290, 166)
          AddGadgetItem(1, -1, "Sub-Panel 1")
          AddGadgetItem(1, -1, "Sub-Panel 2")
          AddGadgetItem(1, -1, "Sub-Panel 3")
        CloseGadgetList()
      AddGadgetItem (0, -1,"Panel 2")
        ButtonGadget(2, 10, 15, 80, 24,"Button 1")
        ButtonGadget(3, 95, 15, 80, 24,"Button 2")
      AddGadgetItem (0, -1,"Panel 3")
      AddGadgetItem (0, -1,"Panel 4")
      AddGadgetItem (0, -1,"Panel 5")
      AddGadgetItem (0, -1,"Panel 6")
      CloseGadgetList()
      hwnd = GetWindow_(GadgetID(0),#GW_CHILD	)
      hwnd = GetWindow_(hwnd,#GW_HWNDLAST)
      ShowWindow_(hwnd,#SW_HIDE	)
    Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
  EndIf

Re: Arrow buttons in the PanelGadget

Posted: Tue Oct 20, 2020 11:00 am
by Mohsen
Thanks RASHAD, but it has no effect.
Just change the width of the gadget (0) from 340 to 240, you will see the arrow buttons appear.

Re: Arrow buttons in the PanelGadget

Posted: Tue Oct 20, 2020 5:14 pm
by RASHAD
Now this one should be OK in all cases :)

Code: Select all

Procedure HideSpin(gad)
  hwnd = GetWindow_(GadgetID(gad),#GW_CHILD   )
  hSpin = FindWindowEx_(GadgetID(gad), hwnd, "msctls_updown32", 0)
  If hSpin
    ShowWindow_(hSpin,#SW_HIDE   )
  EndIf  
EndProcedure

If OpenWindow(0, 0, 0, 345, 220, "PanelGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  PanelGadget     (0, 0, 0, 200, 203)
    AddGadgetItem (0, -1, "Panel 1")
      PanelGadget (1, 5, 5, 180, 166)
        AddGadgetItem(1, -1, "Sub-Panel 1")
        AddGadgetItem(1, -1, "Sub-Panel 2")
        AddGadgetItem(1, -1, "Sub-Panel 3")
      CloseGadgetList()
    AddGadgetItem (0, -1,"Panel 2")
      ButtonGadget(2, 10, 15, 80, 24,"Button 1")
      ButtonGadget(3, 95, 15, 80, 24,"Button 2")
    AddGadgetItem (0, -1,"Panel 3")
    AddGadgetItem (0, -1,"Panel 4")
    AddGadgetItem (0, -1,"Panel 5")
    AddGadgetItem (0, -1,"Panel 6")
  CloseGadgetList()
  HideSpin(0)
  HideSpin(1)
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf

Re: Arrow buttons in the PanelGadget

Posted: Tue Oct 20, 2020 5:28 pm
by Mohsen
Thank you very much RASHAD, that was the main solution. :D