GetBounds?

Just starting out? Need help? Post your questions and find answers here.
User avatar
kpeters58
Enthusiast
Enthusiast
Posts: 341
Joined: Tue Nov 22, 2011 5:11 pm
Location: Kelowna, BC, Canada

GetBounds?

Post by kpeters58 »

IF I want to assign the bounds of one gadget to another, do I have to do

x = MyGadget(#PB_Any, GetX(y), GetY(y), GetWidth(y), GetHeight(y))

or is there a shorter way?
PB 5.73 on Windows 10 & OS X High Sierra
infratec
Always Here
Always Here
Posts: 6883
Joined: Sun Sep 07, 2008 12:45 pm
Location: Germany

Re: GetBounds?

Post by infratec »

Don't know if you mean something like this:

Code: Select all

Enumeration
  #Right
  #Bottom
  #Left
  #Top
EndEnumeration

Procedure PlaceGadgetRelativeToGadget(Gadget.i, ReferenceGadget.i, Dir.i=#Right, Offset.i=0)
  
  Select Dir
    Case #Right
      ResizeGadget(Gadget,  GadgetX(ReferenceGadget) + GadgetWidth(ReferenceGadget) + Offset, GadgetY(ReferenceGadget), #PB_Ignore, #PB_Ignore)
    Case #Bottom
      ResizeGadget(Gadget, GadgetX(ReferenceGadget), GadgetY(ReferenceGadget) + GadgetHeight(ReferenceGadget) + Offset, #PB_Ignore, #PB_Ignore)
    Case #Left
      ResizeGadget(Gadget, GadgetX(ReferenceGadget) - GadgetWidth(Gadget) - Offset, GadgetY(ReferenceGadget), #PB_Ignore, #PB_Ignore)
    Case #Top
      ResizeGadget(Gadget, GadgetX(ReferenceGadget), GadgetY(ReferenceGadget) - GadgetHeight(Gadget) - Offset, #PB_Ignore, #PB_Ignore)
  EndSelect
  
EndProcedure




If OpenWindow(0, 100, 200, 250, 300, "PureBasic Window", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)
  
  StringGadget(0, 100, 50, 50, 20, "")
  SetGadgetColor(0, #PB_Gadget_BackColor, $0000FF)
  
  StringGadget(1, 0, 0, 50, 20, "Right")
  PlaceGadgetRelativeToGadget(1, 0, #Right)
 
  StringGadget(2, 0, 0, 50, 20, "Bottom")
  PlaceGadgetRelativeToGadget(2, 0, #Bottom)
  
  StringGadget(3, 0, 0, 50, 20, "Left")
  PlaceGadgetRelativeToGadget(3, 0, #Left)
  
  StringGadget(4, 0, 0, 50, 20, "Top")
  PlaceGadgetRelativeToGadget(4, 0, #Top)
  
  
  
  StringGadget(10, 100, 150, 50, 20, "")
  SetGadgetColor(10, #PB_Gadget_BackColor, $0000FF)
  
  StringGadget(11, 0, 0, 50, 20, "Right")
  PlaceGadgetRelativeToGadget(11, 10, #Right, 10)
 
  StringGadget(12, 0, 0, 50, 20, "Bottom")
  PlaceGadgetRelativeToGadget(12, 10, #Bottom, 10)
  
  StringGadget(13, 0, 0, 50, 20, "Left")
  PlaceGadgetRelativeToGadget(13, 10, #Left, 10)
  
  StringGadget(14, 0, 0, 50, 20, "Top")
  PlaceGadgetRelativeToGadget(14, 10, #Top, 10)
  
  
  Repeat
    Event = WaitWindowEvent()

    If Event = #PB_Event_CloseWindow  ; If the user has pressed on the close button
      Quit = 1
    EndIf

  Until Quit = 1
  
EndIf
Bernd
Post Reply