// Test for PSTimer
// In this test two PSTimers are created.
// The timer handlers are expected to print the "Callback 1" AND "Callback 2" messages after 50 millis after start.
// In FWD only one timer fires.

DEFINE VARIABLE CtrlPSTimer AS WIDGET-HANDLE NO-UNDO.
DEFINE VARIABLE chCtrlPSTimer AS COMPONENT-HANDLE NO-UNDO.

DEFINE VARIABLE CtrlPSTimer2 AS WIDGET-HANDLE NO-UNDO.
DEFINE VARIABLE chCtrlPSTimer2 AS COMPONENT-HANDLE NO-UNDO.

DEFINE FRAME mainFrame WITH SIZE 80 BY 10.

CREATE CONTROL-FRAME CtrlPSTimer ASSIGN
       FRAME           = FRAME mainFrame:HANDLE
       ROW             = 1
       COLUMN          = 45
       HIDDEN          = YES
       SENSITIVE       = YES.

CREATE CONTROL-FRAME CtrlPSTimer2 ASSIGN
       FRAME           = FRAME mainFrame:HANDLE
       ROW             = 1
       COLUMN          = 45
       HIDDEN          = YES
       SENSITIVE       = YES.

CtrlPSTimer:NAME = "CtrlPSTimer":U .
CtrlPSTimer2:NAME = "CtrlPSTimer2":U .

PROCEDURE CtrlPSTimer.PSTimer.Tick.
  chCtrlPSTimer:PSTimer:ENABLED = NO.
  MESSAGE "Callback 1".
END PROCEDURE.  

PROCEDURE CtrlPSTimer2.PSTimer.Tick.
  chCtrlPSTimer2:PSTimer:ENABLED = NO.
  MESSAGE "Callback 2".
END PROCEDURE.  

ASSIGN
    chCtrlPSTimer = CtrlPSTimer:COM-HANDLE
    chCtrlPSTimer:LoadControls( ?, "CtrlPSTimer":U).
    
ASSIGN
    chCtrlPSTimer2 = CtrlPSTimer2:COM-HANDLE
    chCtrlPSTimer2:LoadControls( ?, "CtrlPSTimer2":U).
    
ENABLE ALL WITH FRAME mainFrame.

ASSIGN
  chCtrlPSTimer:PsTimer:INTERVAL = 50
  chCtrlPSTimer:PsTimer:ENABLED  = YES
  .
  
ASSIGN
  chCtrlPSTimer2:PsTimer:INTERVAL = 50
  chCtrlPSTimer2:PsTimer:ENABLED  = YES
  .

WAIT-FOR GO OF FRAME mainFrame.


