//****************************************************************//
// Filename:    FreshBar_ARexxPort.h
// Autor:       Christian Taulien of Strange Intelligence
// Purpose:     Definition of the FreshBar-ARexx-Port
// Creation:    10. Mai 1998
//****************************************************************//
#ifndef FRESHBAR_AREXXPORT_H
#define FRESHBAR_AREXXPORT_H

#include "ARexxPort.h"
#include "SIFC_Strings.h"

enum { RXID_QUIT, RXID_INFO, RXID_TEST, RXID_CREATEWIN, RXID_DELETEWIN,
       RXID_OPENWIN, RXID_CLOSEWIN, RXID_ADDBAR, RXID_REMBAR, RXID_CLOSEALL,
       RXID_SETCURVAL, RXID_SETMAXVAL, RXID_SETFILLPEN, RXID_SETBACKPEN,
       RXID_SETPROGRESSMODE, RXID_SETWINWIDTH, RXID_SETWINPOS,
       RXID_TESTOKBUTTON, RXID_DELAY,
       RX_COMMANDCOUNT };

extern struct ARexxCommand *FreshBarARexxCommandList[];

class FreshBarARexxPortC : public ARexxPortC
{
  typedef ARexxPortC inherited;
private:
  // ## private methods ##
  BOOL RX_Quit(LONG *args);
  void RX_Info(LONG *args);
  void RX_Test(LONG *args);
  StringC RX_CreateWin(LONG *args);
  void RX_DeleteWin(LONG *args);
  void RX_OpenWin(LONG *args);
  void RX_CloseWin(LONG *args);
  StringC RX_AddBar(LONG *args);
  void RX_RemoveBar(LONG *args);
  void RX_CloseAllWindows(LONG *args);
  void RX_SetCurValue(LONG *args);
  void RX_SetMaxValue(LONG *args);
  void RX_SetFillPen(LONG *args);
  void RX_SetBackPen(LONG *args);
  void RX_SetProgressMode(LONG *args);
  void RX_SetWindowWidth(LONG *args);
  void RX_SetWindowPos(LONG *args);
  StringC RX_TestOkButton(LONG *args);
  void RX_Delay(LONG *args);

protected:
  // ## protected methods ##
  virtual BOOL dispatchARexxCommand(ULONG arg_ulCmdID,
                                    LONG *arg_alArgArray,
                                    LONG &arg_rlRC,
                                    LONG &arg_rlRC2,
                                    StringC &roResult);
public:
  // ## public methods ##
  FreshBarARexxPortC(char *arg_sPortName)
    : ARexxPortC(arg_sPortName, FreshBarARexxCommandList) {};
};


#endif // FRESHBAR_AREXXPORT_H
