bitchx/include/winbitchx.h

626 lines
14 KiB
C

#ifndef WIN_BitchX_h
#define WIN_BitchX_h
#include <windows.h>
/* prototypes */
void VTActivate();
void ChangeTitle();
void SwitchMenu();
void SwitchTitleBar();
void OpenHelp(HWND HWin, UINT Command, DWORD Data);
void ResetTerminal();
void ResetCharSet();
void HideStatusLine();
void ChangeTerminalSize(int Nx, int Ny);
int VTParse();
void EnableDlgItem(HWND HDlg, int FirstId, int LastId);
void DisableDlgItem(HWND HDlg, int FirstId, int LastId);
void ShowDlgItem(HWND HDlg, int FirstId, int LastId);
void SetRB(HWND HDlg, int R, int FirstId, int LastId);
void GetRB(HWND HDlg, LPWORD R, int FirstId, int LastId);
void SetDlgNum(HWND HDlg, int id_Item, LONG Num);
void SetDlgPercent(HWND HDlg, int id_Item, LONG a, LONG b);
/*void SetDropDownList(HWND HDlg, int Id_Item, PCHAR far *List, int nsel);*/
LONG GetCurSel(HWND HDlg, int Id_Item);
void InitDisp();
void EndDisp();
void DispReset();
void DispConvWinToScreen
(int Xw, int Yw, int *Xs, int *Ys, LPBOOL Right);
void SetLogFont();
void ChangeFont();
void ResetIME();
void ChangeCaret();
void CaretOn();
void CaretOff();
void DispDestroyCaret();
BOOL IsCaretOn();
void DispEnableCaret(BOOL On);
BOOL IsCaretEnabled();
void DispSetCaretWidth(BOOL DW);
void DispChangeWinSize(int Nx, int Ny);
void ResizeWindow(int x, int y, int w, int h, int cw, int ch);
void PaintWindow(HDC PaintDC, RECT PaintRect, BOOL fBkGnd,
int* Xs, int* Ys, int* Xe, int* Ye);
void DispEndPaint();
void DispClearWin();
void DispChangeBackground();
void DispChangeWin();
void DispInitDC();
void DispReleaseDC();
void DispSetupDC(BYTE Attr, BYTE Attr2, BOOL Reverse);
void DispStr(PCHAR Buff, int Count, int Y, int* X);
void DispEraseCurToEnd(int YEnd);
void DispEraseHomeToCur(int YHome);
void DispEraseCharsInLine(int XStart, int Count);
BOOL DispDeleteLines(int Count, int YEnd);
BOOL DispInsertLines(int Count, int YEnd);
BOOL IsLineVisible(int* X, int* Y);
void AdjustScrollBar();
void DispScrollToCursor(int CurX, int CurY);
void DispScrollNLines(int Top, int Bottom, int Direction);
void DispCountScroll();
void DispUpdateScroll();
void DispScrollHomePos();
void DispAutoScroll(POINT p);
void DispHScroll(int Func, int Pos);
void DispVScroll(int Func, int Pos);
void DispSetupFontDlg();
void DispRestoreWinSize();
void DispSetWinPos();
void DispSetActive(BOOL ActiveFlag);
/* Character attribute bit masks */
#define AttrDefault 0x00
#define AttrDefault2 0x00
#define AttrBold 0x01
#define AttrUnder 0x02
#define AttrSpecial 0x04
#define AttrFontMask 0x07
#define AttrBlink 0x08
#define AttrReverse 0x10
#define AttrKanji 0x80
extern int WinWidth, WinHeight;
extern HFONT VTFont[AttrFontMask+1];
extern int FontHeight, FontWidth, ScreenWidth, ScreenHeight;
extern BOOL AdjustSize, DontChangeSize;
extern int CursorX, CursorY;
extern int WinOrgX, WinOrgY, NewOrgX, NewOrgY;
extern int NumOfLines, NumOfColumns;
extern int PageStart, BuffEnd;
#define SCROLL_BOTTOM 1
#define SCROLL_LINEDOWN 2
#define SCROLL_LINEUP 3
#define SCROLL_PAGEDOWN 4
#define SCROLL_PAGEUP 5
#define SCROLL_POS 6
#define SCROLL_TOP 7
/* Parsing modes */
#define ModeFirst 0
#define ModeESC 1
#define ModeDCS 2
#define ModeDCUserKey 3
#define ModeSOS 4
#define ModeCSI 5
#define ModeXS 6
#define ModeDLE 7
#define ModeCAN 8
extern HWND HVTWin;
extern HWND HTEKWin;
extern int ActiveWin; /* IdVT, IdTEK */
extern int TalkStatus; /* IdTalkKeyb, IdTalkCB, IdTalkTextFile */
extern BOOL KeybEnabled; /* keyboard switch */
extern BOOL Connecting;
/* 'help' button on dialog box */
extern WORD MsgDlgHelp;
extern LONG HelpId;
/*extern TTTSet ts;
extern TComVar cv;*/
/* pointers to window objects */
extern void* pVTWin;
extern void* pTEKWin;
/* instance handle */
extern HINSTANCE hInst;
extern int SerialNo;
#define IdBreakTimer 1
#define IdDelayTimer 2
#define IdProtoTimer 3
#define IdDblClkTimer 4
#define IdScrollTimer 5
#define IdComEndTimer 6
#define IdCaretTimer 7
#define IdPrnStartTimer 8
#define IdPrnProcTimer 9
/* Window Id */
#define IdVT 1
#define IdTEK 2
/* Talker mode */
#define IdTalkKeyb 0
#define IdTalkCB 1
#define IdTalkFile 2
#define IdTalkQuiet 3
/* Character sets */
#define IdASCII 0
#define IdKatakana 1
#define IdKanji 2
#define IdSpecial 3
/* Color attribute bit masks */
#define Attr2Fore 0x08
#define Attr2ForeMask 0x07
#define Attr2Back 0x80
#define Attr2BackMask 0x70
#define SftAttrBack 4
/* Color codes */
#define IdBack 0
#define IdRed 1
#define IdGreen 2
#define IdYellow 3
#define IdBlue 4
#define IdMagenta 5
#define IdCyan 6
#define IdFore 7
/* Kermit function id */
#define IdKmtReceive 1
#define IdKmtGet 2
#define IdKmtSend 3
#define IdKmtFinish 4
/* XMODEM function id */
#define IdXReceive 1
#define IdXSend 2
/* ZMODEM function id */
#define IdZReceive 1
#define IdZSend 2
#define IdZAuto 3
/* B-Plus function id */
#define IdBPReceive 1
#define IdBPSend 2
#define IdBPAuto 3
/* Quick-VAN function id */
#define IdQVReceive 1
#define IdQVSend 2
#define HostNameMaxLength 80
/* internal WM_USER messages */
#define WM_USER_ACCELCOMMAND WM_USER+1
#define WM_USER_CHANGEMENU WM_USER+2
#define WM_USER_CLOSEIME WM_USER+3
#ifdef TERATERM32
#define WM_USER_COMMNOTIFY WM_USER+4
#else
#define WM_USER_COMMNOTIFY WM_COMMNOTIFY
#endif
#define WM_USER_COMMOPEN WM_USER+5
#define WM_USER_COMMSTART WM_USER+6
#define WM_USER_DLGHELP2 WM_USER+7
#define WM_USER_GETHOST WM_USER+8
#define WM_USER_FTCANCEL WM_USER+9
#define WM_USER_PROTOCANCEL WM_USER+10
#define WM_USER_CHANGETBAR WM_USER+11
#define WM_USER_KEYCODE WM_USER+12
#define WM_USER_GETSERIALNO WM_USER+13
#define WM_USER_DDEREADY WM_USER+21
#define WM_USER_DDECMNDEND WM_USER+22
#define WM_USER_DDECOMREADY WM_USER+23
#define WM_USER_DDEEND WM_USER+24
/* port type ID */
#define IdTCPIP 1
#define IdSerial 2
#define IdFile 3
/* XMODEM option */
#define XoptCheck 1
#define XoptCRC 2
#define Xopt1K 3
/* Language */
#define IdEnglish 1
#define IdJapanese 2
#define IdRussian 3
// log flags (used in ts.LogFlag)
#define LOG_TEL 1
#define LOG_KMT 2
#define LOG_X 4
#define LOG_Z 8
#define LOG_BP 16
#define LOG_QV 32
// file transfer flags (used in ts.FTFlag)
#define FT_ZESCCTL 1
#define FT_ZAUTO 2
#define FT_BPESCCTL 4
#define FT_BPAUTO 8
#define FT_RENAME 16
// menu flags (used in ts.MenuFlag)
#define MF_NOSHOWMENU 1
#define MF_NOPOPUP 2
#define MF_NOLANGUAGE 4
#define MF_SHOWWINMENU 8
// Terminal flags (used in ts.TermFlag)
#define TF_FIXEDJIS 1
#define TF_AUTOINVOKE 2
#define TF_CTRLINKANJI 8
#define TF_ALLOWWRONGSEQUENCE 16
#define TF_ACCEPT8BITCTRL 32
#define TF_ENABLESLINE 64
#define TF_BACKWRAP 128
// ANSI color flags (used in ts.ColorFlag)
#define CF_FULLCOLOR 1
#define CF_USETEXTCOLOR 2
// port flags (used in ts.PortFlag)
#define PF_CONFIRMDISCONN 1
#define PF_BEEPONCONNECT 2
#define IdCR 1
#define IdCRLF 2
/* Terminal ID */
#define IdVT100 1
#define IdVT100J 2
#define IdVT101 3
#define IdVT102 4
#define IdVT102J 5
#define IdVT220J 6
#define IdVT282 7
#define IdVT320 8
#define IdVT382 9
/* Kanji Code ID */
#define IdSJIS 1
#define IdEUC 2
#define IdJIS 3
// Russian code sets
#define IdWindows 1
#define IdKOI8 2
#define Id866 3
#define IdISO 4
/* KanjiIn modes */
#define IdKanjiInA 1
#define IdKanjiInB 2
/* KanjiOut modes */
#define IdKanjiOutB 1
#define IdKanjiOutJ 2
#define IdKanjiOutH 3
#define TermWidthMax 300
#define TermHeightMax 200
/* Cursor shapes */
#define IdBlkCur 1
#define IdVCur 2
#define IdHCur 3
#define IdBS 1
#define IdDEL 2
/* Serial port ID */
#define IdCOM1 1
#define IdCOM2 2
#define IdCOM3 3
#define IdCOM4 4
/* Baud rate ID */
#define IdBaud110 1
#define IdBaud300 2
#define IdBaud600 3
#define IdBaud1200 4
#define IdBaud2400 5
#define IdBaud4800 6
#define IdBaud9600 7
#define IdBaud14400 8
#define IdBaud19200 9
#define IdBaud38400 10
#define IdBaud57600 11
#define IdBaud115200 12
/* Parity ID */
#define IdParityEven 1
#define IdParityOdd 2
#define IdParityNone 3
/* Data bit ID */
#define IdDataBit7 1
#define IdDataBit8 2
/* Stop bit ID */
#define IdStopBit1 1
#define IdStopBit2 2
/* Flow control ID */
#define IdFlowX 1
#define IdFlowHard 2
#define IdFlowNone 3
/* GetHoerm internal key codes */
#define IdUp 1
#define IdDown 2
#define IdRight 3
#define IdLeft 4
#define Id0 5
#define Id1 6
#define Id2 7
#define Id3 8
#define Id4 9
#define Id5 10
#define Id6 11
#define Id7 12
#define Id8 13
#define Id9 14
#define IdMinus 15
#define IdComma 16
#define IdPeriod 17
#define IdEnter 18
#define IdPF1 19
#define IdPF2 20
#define IdPF3 21
#define IdPF4 22
#define IdFind 23
#define IdInsert 24
#define IdRemove 25
#define IdSelect 26
#define IdPrev 27
#define IdNext 28
#define IdHold 29
#define IdPrint 30
#define IdBreak 31
#define IdF6 32
#define IdF7 33
#define IdF8 34
#define IdF9 35
#define IdF10 36
#define IdF11 37
#define IdF12 38
#define IdF13 39
#define IdF14 40
#define IdHelp 41
#define IdDo 42
#define IdF17 43
#define IdF18 44
#define IdF19 45
#define IdF20 46
#define IdUDK6 47
#define IdUDK7 48
#define IdUDK8 49
#define IdUDK9 50
#define IdUDK10 51
#define IdUDK11 52
#define IdUDK12 53
#define IdUDK13 54
#define IdUDK14 55
#define IdUDK15 56
#define IdUDK16 57
#define IdUDK17 58
#define IdUDK18 59
#define IdUDK19 60
#define IdUDK20 61
#define IdXF1 62
#define IdXF2 63
#define IdXF3 64
#define IdXF4 65
#define IdXF5 66
#define IdCmdEditCopy 67
#define IdCmdEditPaste 68
#define IdCmdEditPasteCR 69
#define IdCmdEditCLS 70
#define IdCmdEditCLB 71
#define IdCmdCtrlOpenTEK 72
#define IdCmdCtrlCloseTEK 73
#define IdCmdLineUp 74
#define IdCmdLineDown 75
#define IdCmdPageUp 76
#define IdCmdPageDown 77
#define IdCmdBuffTop 78
#define IdCmdBuffBottom 79
#define IdCmdNextWin 80
#define IdCmdPrevWin 81
#define IdCmdLocalEcho 82
#define IdUser1 83
#define NumOfUserKey 99
#define IdKeyMax IdUser1+NumOfUserKey-1
// key code for macro commands
#define IdCmdDisconnect 1000
#define IdCmdLoadKeyMap 1001
#define IdCmdRestoreSetup 1002
#define KeyStrMax 1023
// (user) key type IDs
#define IdBinary 0 // transmit text without any modification
#define IdText 1 // transmit text with new-line & DBCS conversions
#define IdMacro 2 // activate macro
#define IdCommand 3 // post a WM_COMMAND message
/* Control Characters */
#define NUL 0x00
#define SOH 0x01
#define STX 0x02
#define ETX 0x03
#define EOT 0x04
#define ENQ 0x05
#define ACK 0x06
#define BEL 0x07
#define BS 0x08
#define HT 0x09
#define LF 0x0A
#define VT 0x0B
#define FF 0x0C
#define CR 0x0D
#define SO 0x0E
#define SI 0x0F
#define DLE 0x10
#define DC1 0x11
#define XON 0x11
#define DC2 0x12
#define DC3 0x13
#define XOFF 0x13
#define DC4 0x14
#define NAK 0x15
#define SYN 0x16
#define ETB 0x17
#define CAN 0x18
#define EM 0x19
#define SUB 0x1A
#define ESC 0x1B
#define FS 0x1C
#define GS 0x1D
#define RS 0x1E
#define US 0x1F
#define SP 0x20
#define DEL 0x7F
#define IND 0x84
#define NEL 0x85
#define SSA 0x86
#define ESA 0x87
#define HTS 0x88
#define HTJ 0x89
#define VTS 0x8A
#define PLD 0x8B
#define PLU 0x8C
#define RI 0x8D
#define SS2 0x8E
#define SS3 0x8F
#define DCS 0x90
#define PU1 0x91
#define PU2 0x92
#define STS 0x93
#define CCH 0x94
#define MW 0x95
#define SPA 0x96
#define EPA 0x97
/*#define SOS 0x98*/
#define CSI 0x9B
#define ST 0x9C
#define OSC 0x9D
#define PM 0x9E
#define APC 0x9F
#define InBuffSize 1024
#define OutBuffSize 1024
#define ID_FILE 0
#define ID_EDIT 1
#define ID_SETUP 2
#define ID_CONTROL 3
#define ID_HELPMENU 4
#define ID_WINDOW_1 50801
#define ID_WINDOW_WINDOW 50810
#define ID_TRANSFER 4
#define ID_SHOWMENUBAR 995
#define BuffXMax 300
#define BuffYMax 100000
#define BuffSizeMax 8000000
HDC PrnBox(HWND HWin, LPBOOL Sel);
BOOL PrnStart(LPSTR DocumentName);
void PrnStop();
#define IdPrnCancel 0
#define IdPrnScreen 1
#define IdPrnSelectedText 2
#define IdPrnScrollRegion 4
#define IdPrnFile 8
int VTPrintInit(int PrnFlag);
void PrnSetAttr(BYTE Attr, BYTE Attr2);
void PrnOutText(PCHAR Buff, int Count);
void PrnNewLine();
void VTPrintEnd();
void PrnFileDirectProc();
void PrnFileStart();
void OpenPrnFile();
void ClosePrnFile();
void WriteToPrnFile(BYTE b, BOOL Write);
void InitBuffer();
void LockBuffer();
void UnlockBuffer();
void FreeBuffer();
void BuffReset();
void BuffScroll(int Count, int Bottom);
void BuffInsertSpace(int Count);
void BuffEraseCurToEnd();
void BuffEraseHomeToCur();
void BuffInsertLines(int Count, int YEnd);
void BuffEraseCharsInLine(int XStart, int Count);
void BuffDeleteLines(int Count, int YEnd);
void BuffDeleteChars(int Count);
void BuffEraseChars(int Count);
void BuffFillWithE();
void BuffDrawLine(BYTE Attr, BYTE Attr2, int Direction, int C);
void BuffEraseBox(int XStart, int YStart, int XEnd, int YEnd);
void BuffCBCopy(BOOL Table);
void BuffPrint(BOOL ScrollRegion);
void BuffDumpCurrentLine(BYTE TERM);
void BuffPutChar(BYTE b, BYTE Attr, BYTE Attr2, BOOL Insert);
void BuffPutKanji(WORD w, BYTE Attr, BYTE Attr2, BOOL Insert);
void BuffUpdateRect(int XStart, int YStart, int XEnd, int YEnd);
void UpdateStr();
void MoveCursor(int Xnew, int Ynew);
void MoveRight();
void BuffSetCaretWidth();
void BuffScrollNLines(int n);
void BuffClearScreen();
void BuffUpdateScroll();
void CursorUpWithScroll();
void BuffDblClk(int Xw, int Yw);
void BuffTplClk(int Yw);
void BuffStartSelect(int Xw, int Yw, BOOL Box);
void BuffChangeSelect(int Xw, int Yw, int NClick);
void BuffEndSelect();
void BuffChangeWinSize(int Nx, int Ny);
void BuffChangeTerminalSize(int Nx, int Ny);
void ChangeWin();
void ClearBuffer();
void SetTabStop();
void MoveToNextTab();
void ClearTabStop(int Ps);
void ShowStatusLine(int Show);
PCHAR CBOpen(LONG MemSize);
void CBClose();
void CBStartPaste(HWND HWin, BOOL AddCR,
int BuffSize, PCHAR DataPtr, int DataSize);
void CBSend();
void CBEndPaste();
#endif