Page 1 of 1
ImageGadget as a minimize button
Posted: Wed Feb 09, 2011 4:24 pm
by braveheart
Code: Select all
Enumeration
#oWin
#oButton
#oImgBtn
EndEnumeration
OpenWindow(#oWin,0,0,300,300,"Minimize", #PB_Window_BorderLess|#PB_Window_ScreenCentered)
ButtonGadget(#oButton,10,10,100,30,"Minimize")
ImageGadget(#oImgBtn,130,10,100,30,0,#PB_Image_Border)
Repeat
event=WaitWindowEvent()
Select event
Case #PB_Event_Gadget
Select EventGadget()
Case #oButton
SetWindowState(#oWin,#PB_Window_Minimize)
Case #oImgBtn
SetWindowState(#oWin,#PB_Window_Minimize)
EndSelect
EndSelect
Until event=#PB_Event_CloseWindow
Why does image gadget performs minimize before it clicked after 2nd time?
Re: ImageGadget as a minimize button
Posted: Wed Feb 09, 2011 5:10 pm
by STARGÅTE
ImageGadget()
The following events are supported through EventType():
#PB_EventType_LeftClick
#PB_EventType_RightClick
#PB_EventType_LeftDoubleClick
#PB_EventType_RightDoubleClick
#PB_EventType_DragStart
Code: Select all
Enumeration
#oWin
#oButton
#oImgBtn
EndEnumeration
OpenWindow(#oWin,0,0,300,300,"Minimize", #PB_Window_BorderLess|#PB_Window_ScreenCentered)
ButtonGadget(#oButton,10,10,100,30,"Minimize")
ImageGadget(#oImgBtn,130,10,100,30,0,#PB_Image_Border)
Repeat
event=WaitWindowEvent()
Select event
Case #PB_Event_Gadget
Select EventGadget()
Case #oButton
SetWindowState(#oWin,#PB_Window_Minimize)
Case #oImgBtn
If EventType() = #PB_EventType_LeftClick
SetWindowState(#oWin,#PB_Window_Minimize)
EndIf
EndSelect
EndSelect
Until event=#PB_Event_CloseWindow
Re: ImageGadget as a minimize button
Posted: Wed Feb 09, 2011 5:18 pm
by braveheart
STARGÅTE Thank you!

Re: ImageGadget as a minimize button
Posted: Wed Feb 09, 2011 6:40 pm
by WilliamL
Mac only! I wanted to get this to work on a Mac and this is what I came up with. I found I had to add
|#PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget/i] to get it to work and #PB_Window_SystemMenu had to be added to be able to close the window. When the window 'minimizes' it goes into the Dock. (which I happen to like and use)
Code: Select all
Enumeration
#oWin
#oButton
#nButton
#oImgBtn
EndEnumeration
If CreateImage(#oImgBtn,100,30)
If StartDrawing(ImageOutput(#oImgBtn))
Box(0,0,100,30,$99FF99)
DrawingMode(#PB_2DDrawing_Transparent)
DrawText(4,10,"Minimize",0)
StopDrawing()
EndIf
EndIf
OpenWindow(#oWin,0,30,340,200,"Window sizes", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)
ButtonGadget(#oButton,10,10,100,30,"Maximize")
ImageGadget(#oImgBtn,130,10,100,30,ImageID(#oImgBtn),#PB_Image_Border)
ButtonGadget(#nButton,240,10,100,30,"Normalize")
Repeat
event=WaitWindowEvent()
Select event
Case #PB_Event_Gadget
Select EventGadget()
Case #oButton
SetWindowState(#oWin,#PB_Window_Maximize)
Case #oImgBtn
SetWindowState(#oWin,#PB_Window_Minimize)
Case #nButton
SetWindowState(#oWin,#PB_Window_Normal)
EndSelect
EndSelect
Until event=#PB_Event_CloseWindow