Attention: ExamineMouse() n'a plus d’effet
Code : Tout sélectionner
UsePNGImageDecoder()
Enumeration
#MainForm
#List
#Canvas
#Area
#AreaList
#splitter
EndEnumeration
#SplitterWidth=150
InitSprite()
InitKeyboard()
InitMouse()
OpenWindow(#MainForm,0,0,800,600,"Teste drag",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ScrollAreaGadget(#AreaList,0,0,#SplitterWidth,600,#SplitterWidth,600)
ListViewGadget(#List,0,0,#SplitterWidth,600)
CloseGadgetList()
EnableGadgetDrop(#List,#PB_Drop_Text,#PB_Drag_Copy)
ScrollAreaGadget(#Area,200,0,600,600,1200,1200)
CanvasGadget(#Canvas,0,0,1200,1200)
OpenWindowedScreen(GadgetID(#Canvas),0,0,1200,1200)
CloseGadgetList()
SplitterGadget(#splitter,0,0,800,600,#AreaList,#Area,#PB_Splitter_Vertical)
SetGadgetState(#splitter,#SplitterWidth)
CreateSprite(0,200,200)
StartDrawing(SpriteOutput(0))
Box(0,0,200,200,#Red)
StopDrawing()
X=316
N=0
Repeat
Event=WaitWindowEvent(1)
X=GetGadgetAttribute(#Canvas,#PB_Canvas_MouseX)
Y=GetGadgetAttribute(#Canvas,#PB_Canvas_MouseY)
Select Event
Case #PB_Event_CloseWindow
End
Case #PB_Event_Gadget
Select EventGadget()
Case #Canvas
Select EventType()
Case #PB_EventType_LeftButtonDown
DragText("teste")
Case #PB_EventType_MouseEnter
ClearScreen(RGB(0,0,0))
DisplaySprite(0,X,Y)
FlipBuffers()
Case #PB_EventType_MouseMove
ClearScreen(RGB(0,0,0))
DisplaySprite(0,X,Y)
FlipBuffers()
EndSelect
Case #splitter
If GetGadgetState(#splitter)>#SplitterWidth
ResizeGadget(#List,#PB_Ignore,#PB_Ignore,GetGadgetState(#splitter),#PB_Ignore)
SetGadgetAttribute(#AreaList,#PB_ScrollArea_InnerWidth,GetGadgetState(#splitter))
Else
ResizeGadget(#List,#PB_Ignore,#PB_Ignore,#SplitterWidth,#PB_Ignore)
SetGadgetAttribute(#AreaList,#PB_ScrollArea_InnerWidth,#SplitterWidth)
EndIf
EndSelect
Case #PB_Event_GadgetDrop
Select EventGadget()
Case #List
AddGadgetItem(#List,-1,EventDropText())
EndSelect
EndSelect
ForEver