📄 window.h
字号:
// vi:ts=4:shiftwidth=4:expandtab/*************************************************************************** window.h - description ------------------- begin : Fri July 20 2001 copyright : (C) 2001 by huyong,ejoy email : ccpaging@online.sh.cn ejoy@users.sourceforge.net ***************************************************************************//*************************************************************************** * * * 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 * * (at your option) any later version. * * * ***************************************************************************/#ifndef WINDOW_H#define WINDOW_H// text maskconst unsigned char txtUpdated = 1, txtASCII = 2, txtDblCode = 4, txtDblCode1 = 8, txtDblCode2 = 16, txtPrimary = 32;class Window;#define CUR_DEF 0#define CUR_NONE 1#define CUR_UNDERLINE 2#define CUR_LOWER_THIRD 3#define CUR_LOWER_HALF 4#define CUR_TWO_THIRDS 5#define CUR_BLOCK 6#define CUR_DEFAULT CUR_UNDERLINE#define WS_DEF 0#define WS_CHILD 1#define WS_FRAMETHIN 2#define WS_FRAMETHICK 4class Window { public: Window(int x1, int y1, int x2, int y2, int type = WS_DEF); virtual ~Window(); void SetFrameColor(int light, int dark) { mFrameLight = light; mFrameDark = dark; } void SetCursorType(int CurType); void SetFgColor(int color) { mFgColor = color; } void SetBgColor(int color) { mBgColor = color; } int Col() { return mCol; } int Row() { return mRow; } void Goto(int c, int r); bool Visible() { return mVisible; } void Clear(); void Clear(int c1, int r1, int c2, int r2, char attr); void Show(); void Hide(); int GetX1() { return mX1; } int GetY1() { return mY1; } void MoveTo(int x, int y); void CursorShow(); // turn cursor on void CursorHide(); // turn cursor off bool CursorOnOff() { return mCursorEnabled; } void CursorBlink(); int Width() { return mX2-mX1+1; } int Height() { return mY2-mY1+1; } int MaxCols() { return mMaxCols; } int MaxRows() { return mMaxRows; } int CorrectCol(int c) { if (c < 0) return 0; if (c > mEndCol) return mEndCol; return c; } int CorrectRow(int r) { if (r < 0) return 0; if (r > mEndRow) return mEndRow; return r; } int ColsOvered(); int RowsOvered(); void ResetFlagAll(); void Redraw(bool isUpdateAll = false); void DrawColorStr(int col,int row,string s); void PutStr(int col,int row,string s); void PutStr(int col,int row,string s,char fg); protected: int Index(int c, int r); void ResetFlagRow(char *pText, char *pFlag,int len); void RedrawRow(int row, char *pText, char *pAttr, char *pFlag, bool isUpdateAll); void RedrawChar(int col, int row); void PutChar(char attr,char flag,char c1,char c2); void PutChar(char attr,char flag,char c); void UpdateBlinkAttr(bool show); // set update and overlap flag for popwin's show/hide, by pixel void SetOverlaped(int x1, int y1, int x2, int y2, bool isOvered); void Resize(int w,int h); int mMaxCols, mMaxRows; // lines of cols and rows int mEndCol, mEndRow; // last line // screen buffers char *mpText; // Text Buffer char *mpAttr; // Attr Buffer char *mpFlag; private: void SetBuf(); void OutChar(int col, int row, int fg, int bg, char c); void OutChar(int col, int row, int fg, int bg, char c1, char c2); int mType; // cursor position int mCol, mRow; bool mVisible; int mX1, mX2, mY1, mY2; // console position in pixels int mTextX0, mTextY0; // relate pixel postion of text start bool mCursorEnabled, mCursorVisible; unsigned mCursorIntevel; //intevel in microseconds int mCursorStart, mCursorEnd; // inner used when text/cursor change void CursorSet(); void CursorRestore(); void CursorDraw(); int mFrameLight, mFrameDark; // frame color char mFgColor, mBgColor; static Window* mpConsole; // static PopWin* mPopWinList[2]; // not merge in mpFlag because scroll easy static char* mpOverlaps;};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -