| Global Mx3:Int, My3:Int '-----Mouse location on Canvas3 |
| Function Process_MouseMoveEvent:Int() Select EventSource() Case Canvas1 If CursorResize=False mx1=EventX() my1=EventY() Else mx1a=EventX() my1a=EventY() xsize=EventX()-mx1_Old ysize=EventY()-my1_Old EndIf RedrawGadget(Canvas1) Case Canvas3 mx3:Int=EventX() my3:Int=EventY() End Select End Function |
| Function Process_MouseDownEvent:Int() Select EventSource() Case Canvas1 Select EventData() Case MOUSE_LEFT If CursorResize=False 'We are not normal mode CursorResize=True 'user click left mouse xsize_old=xsize ysize_old=ysize mx1_Old=mx1 my1_Old=my1 MoveMouse(mx1+xsize,my1+ysize) Else 'We are in change size mode, so back out CursorResize=False xsize=mx1a-mx1_Old ysize=my1a-my1_Old If xsize>MaxCursorSize Then xsize=MaxCursorSize If ysize>MaxCursorSize Then ysize=MaxCursorSize MoveMouse(mx1_Old,my1_Old) EndIf Case MOUSE_RIGHT CopyPixUnderCursorToAnimStrip() End Select RedrawGadget(Canvas1) Case Canvas3 'From Animstrip Select EventData() Case MOUSE_LEFT SelectFrame() End Select RedrawGadget(Canvas3) End Select 'eventsource() End Function |
| Function SelectFrame:Int() If CountList(AnimList)=0 Then Return -1 Local i:Int=Int(mx3/AnimSize) If i<CountList(AnimList) Then Local tmp:TPixmap=TPixmap(AnimList.ValueAtIndex(i)) AnimListPtr=ListFindLink(AnimList,Tmp) RedrawGadget(Canvas3) EndIf End Function |
| Case Canvas3 SetGraphics CanvasGraphics(Canvas3) Cls If AnimListPtr<>Null Then Local j:Int=0 For Local p:TPixMap=EachIn AnimList Local YOffset:Int=(AnimSize-PixmapHeight(p))/2 Local XOffset:Int=(AnimSize-PixmapWidth(p))/2 DrawPixmap p,j*AnimSize+XOffset,YOffset If p = (TPixmap(AnimListPtr.Value())) SetColor 255,0,0 Else SetColor 255,255,255 EndIf DrawCursor(j*AnimSize,0,AnimSize,AnimSize) j=j+1 Next EndIf Flip |