AppTitle "Ruler+" Desk_W = ClientWidth(Desktop()) ; Desktop Width Desk_H = ClientHeight(Desktop()) ; Desktop Height Parent = CreateWindow("", Desk_W/2-36, Desk_H/2-29, 72, 58, 0, 1) ; Create Window Button = CreateButton("Go", 1, 1, 64, 32, Parent) DeskImg = CreateImage(Desk_W, Desk_H) win_Mode = 1 AutoSuspend 1 CreateTimer(60) ; 60 fps Repeat Select WaitEvent() Case $803 ; Window "X" FreeImage DeskImg FreeGadget Parent End Case $101 ; Keydown event Select EventData() ; Scancode Case 1 ; Escape FreeImage DeskImg FreeGadget Parent End End Select Case $401 ; Gadget Event Select EventSource() ; Gadget Handle Case Button HideGadget Parent CopyRect 0, 0, Desk_W, Desk_H, 0, 0, DesktopBuffer(), ImageBuffer(DeskImg) Desk = CreateWindow("", 0, 0, Desk_W, Desk_H, Parent, 16) Canvas = CreateCanvas(0, 0, Desk_W, Desk_H, Desk) SetBuffer CanvasBuffer(Canvas) win_Mode = 2 SX = 0: SY = 0 ; Start Point EX = 0: EX = 0 ; End Point End Select Case $4001 ; Timer Tick If win_Mode = 2 Then Cls DrawImage DeskImg, 0, 0 If MouseDown(1) And SX + SY = 0 Then ; Set Start Point SX = MouseX(Canvas): SY = MouseY(Canvas) Else ; Update End Point EX = MouseX(Canvas): EY = MouseY(Canvas) EndIf If SX + SY > 0 Then Color 255, 0, 0: Line SX, SY, EX, EY ; Draw Line If SX + SY > 0 And MouseDown(1) = False Then ; Mouse Up, End the Process Notify "Line Width: " + Abs((EX - SX)) FreeGadget Desk win_Mode = 1: ShowGadget Parent Goto StepOut EndIf VWait 1 FlipCanvas Canvas, 1 .StepOut EndIf End Select Forever