home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AmigActive 13
/
AACD13.ISO
/
AACD
/
Online
/
StrICQ
/
Src
/
stricqmui.h
< prev
next >
Wrap
C/C++ Source or Header
|
2000-08-21
|
15KB
|
555 lines
#ifndef GUI_FILE_H
#define GUI_FILE_H
#define MWDEBUG 1
#include <clib/alib_protos.h>
#include <exec/memory.h>
#include <libraries/gadtools.h>
#include <libraries/icq.h>
#include <libraries/mui.h>
#include <datatypes/datatypes.h>
#include <datatypes/pictureclass.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <workbench/icon.h>
#include <MUI/Busy_mcc.h>
#include <MUI/Lamp_mcc.h>
#include <MUI/NListview_mcc.h>
#include <MUI/NFloattext_mcc.h>
#include <MUI/TextEditor_mcc.h>
#include <MUI/Textinput_mcc.h>
#include <MUI/Toolbar_mcc.h>
#include <MUI/TWFmultiLED_mcc.h>
#include <proto/exec.h>
#include <proto/icon.h>
#include <proto/intuition.h>
#include <proto/muimaster.h>
#include <sys/dir.h>
#include <memwatch.h>
#define REG(x) register __ ## x
#define DatatypeObject MUI_NewObject("Dtpic.mui"
#define MUIA_Dtpic_Name 0x80423d72
#define LASTCHAR(c) c[strlen(c)-1]
#define BOOLP(b) ((b)?TRUE:FALSE)
#define UDPBUFLEN 0x0400
#define TCPBUFLEN 0x0900
#define LINE "\0"
#define SOCK_UDP 1
#define SOCK_MESSAGE 2
#define SOCK_CHAT 4
#define SOCK_FILE 8
#define TCP_DIR_OUT 1
#define TCP_DIR_IN 2
#define TCP_DIR_LISTEN 3
#define PORT_Trigger TAG_USER
#define PORT_AddApp TAG_USER+1
#define PORT_RemApp TAG_USER+2
#define TIME_Trigger TAG_USER+3
#define TIME_AddApp TAG_USER+4
#define TIME_RemApp TAG_USER+5
#define TIME_SetSecs TAG_USER+6
#define TIME_SetMicro TAG_USER+7
#define TIME_SetTrg TAG_USER+8
#define TIME_SetSock TAG_USER+9
#define CHAT_AddUIN TAG_USER+10
#define CHAT_AddCWin TAG_USER+11
#define TIME_Trigger1 TAG_USER+12
#define TIME_Trigger2 TAG_USER+13
#define TIME_Trigger_Parse TAG_USER+14
#define COLOR_ON TAG_USER
#define COLOR_OFF TAG_USER+1
#define COLOR_INVIS TAG_USER+2
#define COLOR_NA TAG_USER+3
#define COLOR_CHAT TAG_USER+4
#define COLOR_OCCUPIED TAG_USER+5
#define COLOR_AWAY TAG_USER+6
#define COLOR_DND TAG_USER+7
#define COLOR_NEW TAG_USER+8
#define NUM_STATUS 8
#define NUM_STATUS_COLORS 9
#define NUM_CHAT_COLORS 16
#define NUM_AFFILIATIONS 3
#define NUM_PASTS 3
#define NUM_INTERESTS 4
#define LOG_CLIENT 1
#define LOG_SERVER 2
enum {MSG_VIA_BEST=1, MSG_VIA_UDP, MSG_VIA_TCP};
enum {MSG_BOTH=1, MSG_LOCAL, MSG_REMOTE};
enum {OID_CHATIN=512, OID_CHATOUT};
enum {DBG_UDP_PKTS=1, DBG_UDP_ERRS, DBG_UDP_DBUG, DBG_TCP_PKTS, DBG_TCP_ERRS, DBG_TCP_DBUG, DBG_OTH_FATL, DBG_OTH_INFO};
enum {ONLINE=0, OFFLINE, INVISIBLE, NOTAVAILABLE, FREEFORCHAT, OCCUPIED, AWAY, DONOTDISTURB, NEWUSER};
struct Contact {
ULONG ListID;
char LampTxt[10];
APTR LampObj;
UWORD LampNum;
ULONG UIN;
char *Nick;
char *First;
char *Last;
char *EMail;
char *EMail_Secondary;
char *EMail_Old;
char *Street;
char *City;
char *State;
char *ZipCode;
char *Phone;
char *FAX;
char *Cellular;
char *HomePage;
char *About;
char *Comment;
char *Work_City;
char *Work_State;
char *Work_Phone;
char *Work_FAX;
char *Work_Address;
char *Work_ZipCode;
char *Work_Company;
char *Work_Department;
char *Work_Position;
char *Work_URL;
UWORD Occupation;
UWORD Country;
UWORD Work_Country;
UWORD Work_Occupation;
BYTE TimeZone;
UWORD Age;
UBYTE Sex;
UWORD BDay_Year;
UBYTE BDay_Month;
UBYTE BDay_Day;
UBYTE Language1;
UBYTE Language2;
UBYTE Language3;
ULONG Authorize;
ULONG IP;
ULONG Port;
ULONG RealIP;
UWORD Type;
UBYTE CanTCP;
ULONG Status;
BOOL SeeInvis;
BOOL BeInvis;
BOOL EditEMail;
UBYTE NewMsg;
ULONG MsgCount;
BOOL Changed;
BOOL ConnectMe;
UWORD ChatListen;
time_t LastOnline;
time_t LastMessageFm;
time_t LastMessageTo;
struct UserWindow *UWin;
struct ChatFileReqIn *CFWin;
struct FileWin *FWin;
};
struct Sockets {
UWORD Socket;
ULONG UIN;
UBYTE Dir;
ULONG IP;
UWORD Port;
UWORD TCPLen;
char PktLen[2];
char *LastTCP;
struct sockaddr_in Address;
struct sockaddr_in LocalAddr;
time_t Timehack;
BOOL Connecting;
BOOL HadInit;
BOOL Backward;
BOOL Closing;
BOOL Hidden;
UBYTE Type;
UWORD TCP_Version;
UWORD TCP_Revision;
ULONG TCP_Listen_Msg_Port;
UBYTE TCP_Flag;
ULONG TCP_Listen_Other_Port;
UWORD TCP_ChatData;
ULONG TCP_ChatHandShake;
UWORD ConnectPort;
struct RemoteChatObj *RCObj;
struct ChatWin *CWin;
struct Contact *ChatMode;
struct Contact *FileMode;
};
struct ObjApp {
struct DiskObject *DO_IconifyIcon;
APTR App;
APTR NM_AppMenu;
APTR CC_Parse;
APTR WI_Main;
APTR TX_Port, TX_Timer, TX_Timer1, TX_Color;
APTR LV_OfflineList;
APTR BT_AddContact, BT_RemContact;
APTR CY_MyStatus;
APTR WI_About;
APTR TX_About;
APTR WI_Splash;
APTR DT_Splash;
APTR WI_Progress;
APTR GA_Contacts, TX_LoadProgress;
APTR WI_Log;
APTR LV_ICQCliLog, LV_ICQSrvLog;
APTR WI_Message;
APTR LV_Msgs;
APTR NM_MsgMenu;
APTR BT_ReplyMessage;
APTR BT_GetInfo;
APTR BT_RemMessage;
APTR BT_ClearMsgs;
APTR BT_Auth;
APTR BT_OpenURLWin;
APTR TI_QuickMsg;
APTR TX_QuickTo;
APTR WI_Send;
APTR TX_Sendto;
APTR TI_Message;
APTR BT_Sendit;
APTR WI_Information;
APTR STR_UserUIN;
APTR STR_UserNick;
APTR STR_UserFirst;
APTR STR_UserLast;
APTR STR_UserEMail;
APTR STR_UserAuth;
APTR TX_UserCity;
APTR TX_UserCountry, NU_UserZone;
APTR TX_UserState;
APTR TX_UserAge;
APTR TX_UserSex;
APTR TX_UserPhone;
APTR TX_UserURL;
APTR LV_UserAbout;
APTR BT_AddUpdate;
APTR WI_Searches;
APTR CH_SearchUIN;
APTR CH_SearchEMail;
APTR CH_SearchName;
APTR STR_SrchUIN;
APTR STR_SrchEMail;
APTR STR_SrchNick;
APTR STR_SrchFirst;
APTR STR_SrchLast;
APTR BT_StartSrch;
APTR WI_SrchResults;
APTR LV_SearchList;
APTR TX_SearchStat;
APTR BT_AddUpdate2;
APTR BT_GetInfo3;
APTR WI_SendURL;
APTR TX_SendURLto;
APTR STR_Desc;
APTR STR_URL;
APTR BT_URLSend;
APTR WI_URLMessage;
APTR LV_AdText;
APTR TX_AdURL;
APTR BT_AdGoURL;
APTR BT_AdOK;
APTR WI_MessageHist;
APTR TX_MsgUser;
APTR LV_MsgText;
APTR DL_MsgDir;
APTR WI_Activities;
APTR LV_Activity;
APTR WI_Sockets;
APTR LV_SockList;
APTR WI_ChatReqOut;
APTR LV_Sessions, TI_ChatReason;
APTR BT_SendChat, BT_JoinChat, BT_CancelChat;
APTR WI_FileSendOut;
APTR LV_FileList;
APTR TX_TotalFiles, TX_TotalSize;
APTR BT_AddFile, BT_RemFile;
APTR GP_FDescGroup;
APTR TI_FileReason;
APTR BT_SendFile, BT_CancelFile;
APTR WI_AddUIN;
APTR TX_Desc;
APTR LV_ToAddUIN;
APTR BT_AddUIN, BT_AddCancel;
APTR WI_WebPager;
APTR TX_WebName, TX_WebEMail, LV_WebMsg;
APTR WI_ErrorWin;
APTR CH_UDPPkts, CH_UDPDebug, CH_TCPPkts, CH_TCPDebug;
APTR LV_Errors, BT_ErrClr, BT_ErrSave;
APTR WI_EditIgnore;
APTR TX_IgnoreUIN, TX_IgnoreNick;
APTR NU_IgnoreDays, BT_IgnoreOK, BT_IgnoreCanx;
APTR WI_ICQPrefs;
APTR LV_InfoPages, GP_InfoPages;
APTR STR_ICQUIN, POP_SelectUIN, DL_UINList, TX_CurrentIP;
APTR STR_Nick, STR_First, STR_Last;
APTR STR_EMail, CH_HideEMail, STR_EMail2, STR_EMailOld;
APTR TI_StreetAd, STR_City, STR_State, STR_ZipCode, BT_DisplayMap;
APTR POP_Country, STR_Country, LV_Countries;
APTR STR_Phone, STR_FAX, STR_Cellular;
APTR NU_TimeZone, TX_LocalTime;
APTR STR_CoName, STR_DivDept, STR_Position, CY_Occupation;
APTR STR_WkPhone, STR_WkFAX;
APTR TI_WorkAd, STR_WkCity, STR_WkState, BT_DisplayWkMap, STR_WkZipCode, STR_WkURL;
APTR POP_WkCountry, STR_WkCountry, LV_WkCountries;
APTR STR_Page, CY_Sex, STR_Age, BT_URLCategory;
APTR CY_BDMonth, STR_BDDay, NU_BDYear, GP_DTGroup, DT_Zodiac;
APTR CH_BDNotify, BT_ViewHoroscope;
APTR CY_Lang1, CY_Lang2, CY_Lang3;
APTR TI_About;
APTR OB_Affiliations[NUM_AFFILIATIONS][3], OB_Pasts[NUM_PASTS][3], OB_Interests[NUM_INTERESTS][3];
APTR TX_PicLastUpdate, POP_Picture, STR_Picture, TX_PicSize, BT_PicClear;
APTR RD_PicPrivacies, CH_PicPrivacy;
APTR RD_ReqAuth, STR_ICQPass, STR_ICQPass2, BT_ChangePW;
APTR LV_IgnoreUIN, STR_UIN2Ignore, BT_AddIgnore, BT_EditIgnore, BT_RemIgnore;
APTR LV_ICQServers, STR_TheServer, STR_ThePort, BT_AddServer, BT_RemServer;
APTR STR_OnStartup, STR_OnShutdown, STR_MsgNotify, STR_MsgPreParse, STR_MsgParse, STR_OnlineNotify;
APTR STR_OfflineNotify, STR_ChatNotify, STR_FileDirect;
APTR STR_SysMsg, /*STR_URLCmnd,*/ STR_ChatBeep;
APTR POP_DLDir, STR_DownloadDir; // <---
APTR PP_StatusColors[NUM_STATUS_COLORS], PP_ChatColors[NUM_CHAT_COLORS];
APTR STR_Messages[7], CH_UseMessages[7], CY_SetStatus[5], STR_TimedStatus[5];
APTR CH_OpenLog, CH_Reconnect, CH_MsgTime, CH_OpenMsg, CH_ActySort, CH_WebPresence, CH_HideIP, CH_MultiLine, CH_UseBeats;
APTR CH_NoInpBuf;
APTR CY_Lamp, CY_UDPVersion;
APTR CH_MsgPopup, CH_NoMsgLog, CH_Scrn2Frnt;
APTR LV_ColsStore, LV_StoreUser, LV_ColsUse, LV_UseUser;
APTR BT_GrabMyStats, BT_UpUInfo1;
};
struct UserWindow {
BOOL DoNotDelete;
char Title[80];
char UIN[32], Status[15], IP[25];
char Country[50], Age[12], Sex[12], Day[4], Year[6], LastOnline[32], MessageTo[32], MessageFm[32];
APTR WI_UserWindow, RG_UserPages;
APTR LV_Msgs;
APTR TI_QuickMsg, BB_WaitTCP, BT_SendIt, CH_MultiSend;
APTR POP_Choices;
APTR BT_Auth, BT_ChatReq, BT_Clear, BT_FileSend, BT_Forward, BT_IgnoreMe, BT_Contacts, BT_WhitePage;
APTR STR_Desc, STR_URL, BT_URLSend;
APTR LV_InfoPages, GP_InfoPages, STR_Nick, TX_UIN, TX_IP;
APTR STR_First, STR_Last;
APTR STR_EMail, CH_EditEMail, TX_EMail2, TX_EMailOld;
APTR TI_StreetAd, BT_DisplayMap, TX_FAX, TX_Cellular, TX_LocalTime, TX_UserTime;
APTR BT_URLCategory, GP_DTGroup, DT_Zodiac, CH_BDNotify, BT_ViewHoroscope;
APTR TX_BDMonth, TX_BDDay, TX_BDYear, TX_Lang1, TX_Lang2, TX_Lang3;
APTR BT_Load, BT_Save, BT_Query;
APTR TX_City, TX_Country, NU_TimeZone, TX_State, TX_ZipCode, TX_Age, TX_Sex, TX_Phone;
APTR BT_HomePage, TE_About, SC_AboutScroll;
APTR TX_WKCity, TX_WKState, TX_WKPhone, TX_WKFAX, TX_WKAddress, TX_WKZipCode, TX_WKCompany;
APTR TX_WKDepartment, TX_WKPosition, TX_WKURL;
APTR CH_SeeInvis, CH_BeInvis;
APTR TX_LastOnline, TX_MessageTo, TX_MessageFm;
APTR TE_Comment, SC_CommentScroll;
APTR LV_History;
APTR BT_LoadHist, BT_RemoveLine, BT_ClearHist, BT_SaveHist, BT_DeleteHist, BT_SelLine, BT_SelChar;
};
struct ChatFileReqIn {
APTR WI_ChatFileInWin;
APTR GP_Message;
APTR TX_Request, LV_Sessions, TI_Reason;
APTR BT_Accept, BT_Join, BT_Refuse;
};
struct ChatWin {
BOOL DoNotDelete;
char Title[256], LocalTime[20];
APTR WI_ChatWin;
APTR POP_FColors, LV_FColorList;
APTR TB_ChatBar, POP_ChatFont, STR_ChatFont;
APTR TX_LocalTime;
APTR TE_ChatLocal, SC_ScrollBar;
APTR GP_ChatGroups;
APTR RT_Dummy;
};
struct RemoteChatObj {
ULONG ChatID;
char Nick[21], RemoteTime[20];
APTR GP_RemoteObj;
APTR TB_RemoteChatBar;
APTR TX_Nick, TX_RemoteTime;
APTR TE_ChatRemote, SC_ScrollBar;
};
struct FileWin {
BOOL DoNotDelete, Skip;
char FilePcnt[10], BatchPcnt[10], Status[30];
int PktCnt;
time_t StartTime;
ULONG Speed, ThisFile, ThisFileSize, CurrFiles, TotalFiles, TotAllFiles, TotFilesSize, CPS;
char Title[150];
APTR WI_FileWin;
APTR TX_Filename, TX_FileCount;
APTR TX_StoreDir, TX_Status;
APTR GA_FileXfer, TX_FileStat;
APTR GA_BatchXfer, TX_BatchStat;
APTR TX_Elapsed, TX_Remain, TX_CPS;
APTR NU_Speed, BT_Skip, BT_Abort;
APTR CC_Timer;
struct AsyncFile *File;
struct TCP_FileData FileData;
};
struct SigData {
Object *App;
struct MUI_InputHandlerNode ihnode;
};
struct TimeData {
ULONG Seconds, Micros, Trigger;
UWORD Socket;
Object *App;
struct MsgPort *port;
struct timerequest *req_hbeat;
struct MUI_InputHandlerNode ihnode;
};
struct ColorData {
struct MUI_PenSpec StatusPens[NUM_STATUS_COLORS];
BOOL ChangedPen[NUM_STATUS_COLORS];
struct MUI_PenSpec ChatPens[NUM_CHAT_COLORS];
BOOL ChangedChat[NUM_CHAT_COLORS];
};
struct ChatData {
struct Sockets *Socks;
struct MUI_EventHandlerNode Events;
};
struct ColsData {
ULONG Dummy;
};
struct Colors {
LONG StatusColors[NUM_STATUS_COLORS];
LONG ChatColors[NUM_CHAT_COLORS];
};
struct ColorText {
char Status[25];
LONG Pen;
};
struct FileList {
char Filename[MAXNAMLEN];
ULONG Filesize;
};
struct IgnoreUIN {
ULONG UIN;
char Nick[21];
time_t Timehack;
time_t ExpireDays;
};
struct ErrorMsgs {
time_t Timehack;
char *Error;
};
struct ChatSession {
UWORD ChatListen;
char Session[256];
};
extern char config_fl[MAXNAMLEN], *Sex[], *Months[];
extern struct MUI_CustomClass *mcc_Transfert, *mcc_Port, *mcc_Time, *mcc_Color, *mcc_Chat, *mcc_Cols;
extern struct ObjApp *CreateApp(char *);
extern void DisposeApp(struct ObjApp *);
extern void fail(struct ObjApp *, char *);
extern ULONG __asm MyDispatcher(REG(a0) struct IClass *cl, REG(a2) Object *obj, REG(a1) Msg msg);
extern ULONG __asm TransfertDispatcher(REG(a0) struct IClass *cl, REG(a2) Object *obj, REG(a1) Msg msg);
extern ULONG __asm TimeDispatcher(REG(a0) struct IClass *cl, REG(a2) Object *obj, REG(a1) Msg msg);
extern ULONG __asm TimeDispatcher1(REG(a0) struct IClass *cl, REG(a2) Object *obj, REG(a1) Msg msg);
extern ULONG __asm ColorDispatcher(REG(a0) struct IClass *cl, REG(a2) Object *obj, REG(a1) Msg msg);
extern ULONG __asm ChatDispatcher(REG(a0) struct IClass *cl, REG(a2) Object *obj, REG(a1) Msg msg);
extern ULONG __asm ColsDispatcher(REG(a0) struct IClass *cl, REG(a2) Object *obj, REG(a1) Msg msg);
extern struct Hook AddMsgHook;
extern struct Hook RemMsgHook;
extern struct Hook CmpMsgHook;
extern struct Hook DisplayMsgHook;
extern struct Hook AddSessionHook;
extern struct Hook RemSessionHook;
extern struct Hook CmpSessionHook;
extern struct Hook DisplaySessionHook;
extern struct Hook GetUINInfoHook;
extern struct Hook GoURLHook;
extern struct Hook SendMsg2ICQaHook;
extern struct Hook SaveContactJumpHook;
extern struct Hook LoadContactJumpHook;
extern struct Hook LoadHistoryHook;
extern struct Hook SaveHistoryHook;
extern struct Hook DeleteHistoryHook;
extern struct Hook SendChatReqHook;
extern struct Hook AcceptHook;
extern struct Hook RefuseHook;
extern struct Hook OpenChatReqWinHook;
extern struct Hook EndChatHook;
extern struct Hook Add2IgnoreHook;
extern struct Hook SetXferSpeedHook;
extern struct Hook SkipFileHook;
extern struct Hook AbortXferHook;
extern struct Hook KillXferWinHook;
extern struct Hook OpenFileDirectWinHook;
extern struct Hook ForwardMsgHook;
extern struct Hook ShareContactsHook;
extern struct Hook ChatWinStateHook;
extern struct Hook EndAllChatHook;
extern struct Hook SetBIUHook;
extern struct Hook SetLocalFColorHook;
extern struct Hook AdjustFColorPopHook;
extern struct Hook SetUserVisPrefsHook;
/*
Probably the best way to convert standard time to Beats, is by first
calculating the time in seconds. A good formula to calculate standard time
to Internet time is: hours(in BMT)*60*60 + minutes*60 + seconds. Once
you've calculated this (let's call the total of the previous calculation
calculated_total): calculated_total/86.4. That should give you the time
in Beats. Just to make sure, compare it with the time on the Swatch site.
*/
#endif