/* TaskTool.h */

#ifndef TASKTOOL_TASKTOOL_H
#define TASKTOOL_TASKTOOL_H

#define TASKARRAYSIZE 128

typedef struct TaskListInfo
    /* Structure used for keeping track of TaskList/Window  */
    {
    ULONG Task;             /* Current Task Index in TaskList[]           */
    ULONG HiGad;            /* HighLighted Gadget number in NameGads[]+1  */
    ULONG numentries;       /* Number of entries in TaskList[]            */
    ULONG topentry;         /* Index in TaskList of Top line of View      */
    } TaskListInfo;

#define MAXPRI  127   /* For priority slider... */
#define MINPRI -128   /* numentries=256         */
#define ABSPRI  256   /* TOT_DISPLAY=256        */


typedef struct TaskNode {
            STRPTR       Name;
            BYTE         Pri;
            struct Task *TaskID; /* ONLY to be used for identifying task! */
            } TaskNode;

/* Timer Defines */
#define STOPPED 0
#define RUNNING 1
#define TIMENICHES 4
#define TISECONDS(TI) (TI->Seconds[TI->TimeIndex])
#define TIMICROS(TI)  (TI->Micros[TI->TimeIndex])

typedef struct TimeInfo {
            BYTE        TimeStatus; /* STOPPED or RUNNING */
            ULONG       TimeIndex;  /* Index into array of time values */
            ULONG       Seconds[TIMENICHES]; /* Array of seconds */
            ULONG       Micros[TIMENICHES];  /* Array of micro-seconds */
            } TimeInfo;

#endif