Code: Select all
Global dpix.d,dpiy.d
dpix = DesktopResolutionX()
dpiy = DesktopResolutionY()
UseJPEG2000ImageDecoder()
UseJPEG2000ImageEncoder()
UseJPEGImageDecoder()
UseJPEGImageEncoder()
UsePNGImageDecoder()
UsePNGImageEncoder()
UseTGAImageDecoder()
UseTIFFImageDecoder()
ExamineDesktops()
Procedure sizeCB()
If IsImage(0)
CopyImage(0,1)
ResizeImage(1,WindowWidth(0)*dpix,WindowHeight(0)*dpiy)
SetGadgetState(0,ImageID(1))
EndIf
EndProcedure
flags = #PB_Window_SystemMenu| #PB_Window_MaximizeGadget| #PB_Window_MinimizeGadget| #PB_Window_ScreenCentered | #PB_Window_SizeGadget
OpenWindow(0,0,0,400,300,"Right Mouse for Context Menu",Flags)
If CreatePopupImageMenu(0)
MenuItem(1, "Open",LoadImage(10, #PB_Compiler_Home + "examples/sources/Data/ToolBar/Open.png"))
MenuItem(2, "Copy",LoadImage(20, #PB_Compiler_Home + "examples/sources/Data/ToolBar/Copy.png"))
MenuItem(3, "Paste",LoadImage(30, #PB_Compiler_Home + "examples/sources/Data/ToolBar/Paste.png"))
MenuBar()
MenuItem(4, "Save As..",LoadImage(40, #PB_Compiler_Home + "examples/sources/Data/ToolBar/Save.png"))
MenuBar()
OpenSubMenu("Resize Image")
MenuItem(5, "Full Screen",LoadImage(50, #PB_Compiler_Home + "examples/sources/Data/ToolBar/Open.png"))
MenuItem(6, "Normal Screen",LoadImage(60, #PB_Compiler_Home + "examples/sources/Data/ToolBar/Open.png"))
CloseSubMenu()
MenuBar()
MenuItem( 7, "Quit",LoadImage(70, #PB_Compiler_Home + "examples/sources/Data/ToolBar/New.png"))
EndIf
ImageGadget(0,0,0,0,0,0)
DisableGadget(0,1)
BindEvent(#PB_Event_SizeWindow,@sizeCB())
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Quit = 1
Case #PB_Event_Timer
Case #PB_Event_RightClick
DisplayPopupMenu(0, WindowID(0),DesktopMouseX(),DesktopMouseY())
Case #PB_Event_Menu
Select EventMenu()
Case 1
Filename$ = OpenFileRequester("Image", "", "Image|*.bmp;*.jpg;*.jpeg;*.png;*.gif;*.tiff", 0)
If FileSize(Filename$) >= 0
result = LoadImage(0,Filename$)
If result
CopyImage(0,1)
ResizeImage(1,WindowWidth(0)*dpix,WindowHeight(0)*dpiy)
SetGadgetState(0,ImageID(1))
EndIf
Else
MessageRequester("Error","No image loaded",#MB_OK)
EndIf
Case 2
If IsImage(1)
SetClipboardImage(1)
EndIf
Case 3
If GetClipboardImage(0)
CopyImage(0,1)
ResizeImage(1,WindowWidth(0)*dpix,WindowHeight(0)*dpiy)
SetGadgetState(0,ImageID(1))
EndIf
Case 4
If IsImage(1)
imgH = GetGadgetState(0)
CreateImage(10,WindowWidth(0)*dpix,WindowHeight(0)*dpiy,24)
StartDrawing(ImageOutput(10))
DrawImage(imgH,0,0)
StopDrawing()
SaveImage(10,GetTemporaryDirectory()+"Test.bmp")
FreeImage(10)
EndIf
Case 5
nx = WindowX(0)
ny = WindowY(0)
nw = WindowWidth(0)
nh = WindowHeight(0)
SetWindowLongPtr_(WindowID(0), #GWL_STYLE, GetWindowLongPtr_(WindowID(0), #GWL_STYLE)&~ #WS_THICKFRAME &~ #WS_DLGFRAME)
ResizeWindow(0,0,0,DesktopWidth(0),DesktopHeight(0))
Case 6
SetWindowLongPtr_(WindowID(0), #GWL_STYLE, GetWindowLongPtr_(WindowID(0), #GWL_STYLE)|#WS_THICKFRAME | #WS_DLGFRAME)
ResizeWindow(0,nx,ny,nw,nh)
Case 7
End
EndSelect
Case #PB_Event_Gadget
Select EventGadget()
Case 1
EndSelect
EndSelect
Until Quit = 1
End