📄 q_button.cpp
字号:
#include "qcurses/Q_Button.hpp"/*######################################### 函数功能:析构函数 ## 返 回 值:NULL ## 函数参数:NULL #########################################*/Q_Button::~Q_Button(){ delete [] Text;}//------------------------------------------------------------------------------------------/*######################################### 函数功能:构造函数 ## 返 回 值:NULL ## 函数参数:WINDOW *vMainWin 主窗口 ## int vWidth 宽度 ## int vYBegin 起始y ## int vXBegin 起始x ## int vCFront 文字颜色 ## int vCBack 背景色 #########################################*/Q_Button::Q_Button(WINDOW *vMainWin,int vWidth,int vYBegin,int vXBegin,int vCFront,int vCBack):Q_Object(vMainWin, 1, vWidth, vYBegin, vXBegin, false, vCFront, vCBack){ mvwaddch(MainWin,_beginy,_beginx-1,'['); mvwaddch(MainWin,_beginy,_beginx+WorkWin->_maxx+1,']'); wrefresh(MainWin); mvwaddstr(WorkWin,0,WorkWin->_maxx/2-strlen("按钮")/2,"按钮"); wrefresh(WorkWin); Value = false; Text = new char[90];}//------------------------------------------------------------------------------------------/*######################################### 函数功能:设置显示 ## 返 回 值:NULL ## 函数参数:char *format 字符格式 ## ... 具体字符串 #########################################*/void Q_Button::Set(const char *format,...){ //赋值 va_list ap; va_start (ap,format); if(vsprintf(Text,format,ap)<0) strcpy(Text,"TooLong"); va_end(ap); mvwaddstr(WorkWin,0,WorkWin->_maxx/2-strlen(Text)/2,Text); wrefresh(WorkWin);}//------------------------------------------------------------------------------------------/*######################################### 函数功能:控件取值 ## 返 回 值:最后键盘输入 ## 函数参数:NULL #########################################*/int Q_Button::Get(){ int CH=0; wattron(WorkWin,A_REVERSE); mvwprintw(WorkWin,0,0," "); mvwaddstr(WorkWin,0,WorkWin->_maxx/2-strlen(Text)/2,Text); while ((CH = wgetch(WorkWin))!=10) { if (CH == 9 || CH == KEY_UP || CH == KEY_DOWN || CH == KEY_LEFT || CH == KEY_RIGHT) { wattroff(WorkWin,A_REVERSE); mvwprintw(WorkWin,0,0," "); mvwaddstr(WorkWin,0,WorkWin->_maxx/2-strlen(Text)/2,Text); wrefresh(WorkWin); Value = false; return(CH); } } wattroff(WorkWin,A_REVERSE); mvwprintw(WorkWin,0,0," "); mvwaddstr(WorkWin,0,WorkWin->_maxx/2-strlen(Text)/2,Text); wrefresh(WorkWin); Value = true; return(CH);}//------------------------------------------------------------------------------------------/*######################################### 函数功能:激活对象 ## 返 回 值:返回的是最后的键盘值 ## 函数参数:Own 当前控件指针 #########################################*/int Q_Button::Action(void *Own){ Get(); if (Value && OnClick) OnClick(Own); if (OnExit) OnExit(Own); return(NowKey);}//------------------------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -