/**
 * Scout - The Amiga System Monitor
 *
 *------------------------------------------------------------------
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 *
 * You must not use this source code to gain profit of any kind!
 *
 *------------------------------------------------------------------
 *
 * @author Andreas Gelhausen
 * @author Richard Körber <rkoerber@gmx.de>
 */


/* Prototypes for functions defined in
objects/scout_commodity.c
 */

struct PrivateCxObj {
   struct Node     mco_Node;
   UBYTE           mco_Flags;
   UBYTE           mco_dummy1;
   struct MinList  mco_SubList;
   APTR            mco_dummy2;
   char            mco_Name[CBD_NAMELEN];
   char            mco_Title[CBD_TITLELEN];
   char            mco_Descr[CBD_DESCRLEN];
   struct Task *   mco_Task;
   struct MsgPort *mco_Port;
   ULONG           mco_dummy3;
   WORD            mco_dummy4;
};

struct CxEntry {
    struct PrivateCxObj *cxe_Addr;
    UBYTE cxe_Address[ADDRESS_LENGTH];
    UBYTE cxe_Type[NODETYPE_LENGTH];
    UBYTE cxe_Pri[ADDRESS_LENGTH];
    UBYTE cxe_Name[CBD_NAMELEN];
    UBYTE cxe_Title[CBD_TITLELEN];
    UBYTE cxe_Description[CBD_DESCRLEN];
    UBYTE cxe_Task[ADDRESS_LENGTH];
    UBYTE cxe_Port[ADDRESS_LENGTH];
    UBYTE cxe_Unique[NUMBER_LENGTH];
    UBYTE cxe_FlagsInt;
    UBYTE cxe_Flags[NUMBER_LENGTH];
};

struct CxSubEntry {
    UBYTE cxse_Address[ADDRESS_LENGTH];
    UBYTE cxse_Type[NODETYPE_LENGTH];
    UBYTE cxse_Pri[NUMBER_LENGTH];
};

void PrintCx( char * );

void SendCxList(void);

#define CommoditiesWindowObject              NewObject(CommoditiesWinClass->mcc_Class, NULL

struct CommoditiesWinData {
    UBYTE cwd_Title[WINDOW_TITLE_LENGTH];
    APTR cwd_CxList;
    APTR cwd_CxText;
    APTR cwd_CxCount;
    APTR cwd_AppearButton;
    APTR cwd_DisappearButton;
    APTR cwd_EnableButton;
    APTR cwd_DisableButton;
    APTR cwd_KillButton;
    APTR cwd_ListChgButton;
    APTR cwd_UniqueButton;
    APTR cwd_RemoveButton;
    APTR cwd_PriorityButton;
    APTR cwd_MoreButton;
};

ULONG __asm __saveds CommoditiesWinDispatcher( register __a0 struct IClass *cl,
                                               register __a2 Object *obj,
                                               register __a1 Msg msg );

