fox.cpp
来自「语音接口~语音识别 & 从声音识别到对各种情报的查找/提供 资料请求~」· C++ 代码 · 共 651 行 · 第 1/2 页
CPP
651 行
new FXHorizontalFrame(this, JUSTIFY_LEFT|LAYOUT_FILL_X|LAYOUT_FILL_Y|PACK_UNIFORM_WIDTH, 0, 0, 0, 0, 4, 4, 4, 4, 0, 0); FXMatrix *keys = new FXMatrix(buttons, 4, MATRIX_BY_ROWS|LAYOUT_FILL_Y|LAYOUT_FILL_X|PACK_UNIFORM_WIDTH|PACK_UNIFORM_HEIGHT); digit[1] = new FXButton(keys, "1", NULL, this, ID_1,BUTTON_NORMAL|LAYOUT_FILL_COLUMN|LAYOUT_FILL_ROW|LAYOUT_FILL_X|LAYOUT_FILL_Y,0, 0, 0, 0, 1, 1, 2, 2); digit[4] = new FXButton(keys, "4", NULL, this, ID_4, BUTTON_NORMAL|LAYOUT_FILL_COLUMN|LAYOUT_FILL_ROW|LAYOUT_FILL_X|LAYOUT_FILL_Y, 0, 0, 0, 0, 1, 1, 2, 2); digit[7] = new FXButton(keys, "7", NULL, this, ID_7, BUTTON_NORMAL|LAYOUT_FILL_COLUMN|LAYOUT_FILL_ROW|LAYOUT_FILL_X|LAYOUT_FILL_Y, 0, 0, 0, 0, 1, 1, 2, 2); digit[10] = new FXButton(keys, "*", NULL, this, ID_STAR, BUTTON_NORMAL|LAYOUT_FILL_COLUMN|LAYOUT_FILL_ROW|LAYOUT_FILL_X|LAYOUT_FILL_Y, 0, 0, 0, 0, 1, 1, 2, 2); digit[2] = new FXButton(keys, "2", NULL, this, ID_2,BUTTON_NORMAL|LAYOUT_FILL_COLUMN|LAYOUT_FILL_ROW|LAYOUT_FILL_X|LAYOUT_FILL_Y,0, 0, 0, 0, 1, 1, 2, 2); digit[5] = new FXButton(keys, "5", NULL, this, ID_5,BUTTON_NORMAL|LAYOUT_FILL_COLUMN|LAYOUT_FILL_ROW|LAYOUT_FILL_X|LAYOUT_FILL_Y,0, 0, 0, 0, 1, 1, 2, 2); digit[8] = new FXButton(keys, "8", NULL, this, ID_8,BUTTON_NORMAL|LAYOUT_FILL_COLUMN|LAYOUT_FILL_ROW|LAYOUT_FILL_X|LAYOUT_FILL_Y, 0, 0, 0, 0, 1, 1, 2, 2); digit[0] = new FXButton(keys, "0", NULL, this, ID_0,BUTTON_NORMAL|LAYOUT_FILL_COLUMN|LAYOUT_FILL_ROW|LAYOUT_FILL_X|LAYOUT_FILL_Y, 0, 0, 0, 0, 1, 1, 2, 2); digit[3] = new FXButton(keys, "3", NULL, this, ID_3,BUTTON_NORMAL|LAYOUT_FILL_COLUMN|LAYOUT_FILL_ROW|LAYOUT_FILL_X|LAYOUT_FILL_Y,0, 0, 0, 0, 1, 1, 2, 2); digit[6] = new FXButton(keys, "6", NULL, this, ID_6,BUTTON_NORMAL|LAYOUT_FILL_COLUMN|LAYOUT_FILL_ROW|LAYOUT_FILL_X|LAYOUT_FILL_Y,0, 0, 0, 0, 1, 1, 2, 2); digit[9] = new FXButton(keys, "9", NULL, this, ID_9,BUTTON_NORMAL|LAYOUT_FILL_COLUMN|LAYOUT_FILL_ROW|LAYOUT_FILL_X|LAYOUT_FILL_Y, 0, 0, 0, 0, 1, 1, 2, 2); digit[11] = new FXButton(keys, "#", NULL, this, ID_POUND,BUTTON_NORMAL|LAYOUT_FILL_COLUMN|LAYOUT_FILL_ROW|LAYOUT_FILL_X|LAYOUT_FILL_Y, 0, 0, 0, 0, 1, 1, 2, 2); FXMatrix *ctrls =new FXMatrix(buttons, 5,MATRIX_BY_ROWS|LAYOUT_FILL_Y|PACK_UNIFORM_WIDTH|PACK_UNIFORM_HEIGHT); control[0] = new FXButton(ctrls, "ring", NULL, this, ID_RING, FRAME_RAISED|LAYOUT_FILL_X|LAYOUT_FILL_Y); control[1] = new FXButton(ctrls, "wink", NULL, this, ID_WINK, FRAME_RAISED|LAYOUT_FILL_X|LAYOUT_FILL_Y); control[2] = new FXButton(ctrls, "stop", NULL, this, ID_STOP, FRAME_RAISED|LAYOUT_FILL_X|LAYOUT_FILL_Y); control[3] = new FXButton(ctrls, "drop", NULL, this, ID_DROP, FRAME_RAISED|LAYOUT_FILL_X|LAYOUT_FILL_Y); control[4] = new FXButton(ctrls, "down", NULL, this, ID_DOWN, FRAME_RAISED|LAYOUT_FILL_X|LAYOUT_FILL_Y); FXVerticalFrame *text = new FXVerticalFrame(buttons, JUSTIFY_LEFT|LAYOUT_FILL_X|LAYOUT_FILL_Y|FRAME_SUNKEN|FRAME_THICK|LAYOUT_LEFT); output[0] = new FXTextField(text, 0, this, ID_COMMAND, TEXTFIELD_READONLY|LAYOUT_LEFT|LAYOUT_FILL_X|LAYOUT_FILL_Y); output[0]->setBackColor(getBackColor()); output[0]->setText("12345678901234567890"); output[1] = new FXTextField(text, 0, this, ID_COMMAND, TEXTFIELD_READONLY|LAYOUT_LEFT|LAYOUT_FILL_X|LAYOUT_FILL_Y); output[1]->setBackColor(getBackColor()); output[1]->setText("ABLE"); output[2] = new FXTextField(text, 0, this, ID_COMMAND, TEXTFIELD_READONLY|LAYOUT_LEFT|LAYOUT_FILL_X|LAYOUT_FILL_Y); output[2]->setBackColor(getBackColor()); output[2]->setText("ABLE"); output[3] = new FXTextField(text, 0, this, ID_COMMAND, TEXTFIELD_READONLY|LAYOUT_LEFT|LAYOUT_FILL_X|LAYOUT_FILL_Y); output[3]->setBackColor(getBackColor()); output[3]->setText("ABLE"); output[4] = new FXTextField(text, 0, this, ID_COMMAND, TEXTFIELD_READONLY|LAYOUT_LEFT|LAYOUT_FILL_X|LAYOUT_FILL_Y); output[4]->setBackColor(getBackColor()); output[4]->setText("ABLE"); command = new FXTextField(status, 8, this, ID_COMMAND, FRAME_SUNKEN|JUSTIFY_RIGHT|LAYOUT_RIGHT|LAYOUT_CENTER_Y,0,0,0,0,2,2,1,1); command->setBackColor(status->getBackColor()); new FXLabel(status, " Cmd:", NULL, LAYOUT_RIGHT|LAYOUT_CENTER_Y); lnum = new FXTextField(status, 4, this, ID_LINE, FRAME_SUNKEN|JUSTIFY_RIGHT|LAYOUT_RIGHT|LAYOUT_CENTER_Y,0,0,0,0,2,2,1,1); lnum->setBackColor(status->getBackColor()); new FXLabel(status, " Line:", NULL, LAYOUT_RIGHT|LAYOUT_CENTER_Y); digit[0]->addHotKey(MKUINT(KEY_0, 0)); digit[0]->addHotKey(MKUINT(KEY_KP_0, 0)); digit[1]->addHotKey(MKUINT(KEY_1, 0)); digit[1]->addHotKey(MKUINT(KEY_KP_1, 0)); digit[2]->addHotKey(MKUINT(KEY_2, 0)); digit[2]->addHotKey(MKUINT(KEY_KP_2, 0)); digit[3]->addHotKey(MKUINT(KEY_3, 0)); digit[3]->addHotKey(MKUINT(KEY_KP_3, 0)); digit[4]->addHotKey(MKUINT(KEY_4, 0)); digit[4]->addHotKey(MKUINT(KEY_KP_4, 0)); digit[5]->addHotKey(MKUINT(KEY_5, 0)); digit[5]->addHotKey(MKUINT(KEY_KP_5, 0)); digit[6]->addHotKey(MKUINT(KEY_6, 0)); digit[6]->addHotKey(MKUINT(KEY_KP_6, 0)); digit[7]->addHotKey(MKUINT(KEY_7, 0)); digit[7]->addHotKey(MKUINT(KEY_KP_7, 0)); digit[8]->addHotKey(MKUINT(KEY_8, 0)); digit[8]->addHotKey(MKUINT(KEY_KP_8, 0)); digit[9]->addHotKey(MKUINT(KEY_9, 0)); digit[9]->addHotKey(MKUINT(KEY_KP_9, 0)); digit[10]->addHotKey(MKUINT(KEY_asterisk,SHIFTMASK)); digit[10]->addHotKey(MKUINT(KEY_KP_Multiply,0)); digit[11]->addHotKey(MKUINT(KEY_Return, 0)); digit[11]->addHotKey(MKUINT(KEY_numbersign,SHIFTMASK)); getAccelTable()->addAccel(MKUINT(KEY_Q,0),this,FXSEL(SEL_COMMAND,ID_CLOSE)); getAccelTable()->addAccel(MKUINT(KEY_q,0),this,FXSEL(SEL_COMMAND,ID_CLOSE)); getAccelTable()->addAccel(MKUINT(KEY_q,CONTROLMASK),this,FXSEL(SEL_COMMAND,ID_CLOSE)); getAccelTable()->addAccel(MKUINT(KEY_Escape,0),this,FXSEL(SEL_COMMAND, ID_CLOSE)); FXColor hilite = makeHiliteColor(digcolor); FXColor shadow = makeShadowColor(digcolor); FXuint i = 0; for(i = 0; i < 12; i++) { digit[i]->setBackColor(digcolor); digit[i]->setHiliteColor(hilite); digit[i]->setShadowColor(shadow); } hilite = makeHiliteColor(ctrcolor); shadow = makeShadowColor(ctrcolor); for(i = 0; i < 5; i++) { control[i]->setBackColor(ctrcolor); control[i]->setHiliteColor(hilite); control[i]->setShadowColor(shadow); }}void Keypad::onEcho(void){ int i; for(i = 0; i < 5; ++i) output[i]->setText(echotext[i]);} void Keypad::onUpdate(void){ FXStatusLine *sl = status->getStatusLine(); session->enter(); int i; Line *line = session->getLine(); Name *scr = session->getName(); const char *cp = session->getSymbol("session.digits"); if(!session->getImage()) cp = NULL; if(cp) { char ln[6]; Line *line = session->getLine(); sl->setText(scr->name); sl->setNormalText(scr->name); if(line && line->cmd) { command->setText(line->cmd); snprintf(ln, sizeof(ln), "%d", line->lnum); lnum->setText(ln); } else { command->setText("eof"); lnum->setText("-"); } if(!active) { echoline = 0; active = true; control[0]->disable(); control[1]->enable(); control[2]->enable(); control[3]->enable(); for(i = 0; i < 5; ++i) output[i]->setText(""); } last = line; display->setText(cp); } else if(active) { last = NULL; active = false; control[0]->enable(); control[1]->disable(); control[2]->disable(); control[3]->disable(); sl->setNormalText("Ready."); sl->setText("-idle-"); sl->update(); display->setText(""); lnum->setText(" "); command->setText(" "); } session->leave();}long Keypad::onDown(FXObject *sender, FXSelector sel, void *){#ifdef WIN32 ExitProcess(0);#else keypad->close();#endif return 1;}long Keypad::onStop(FXObject *sender, FXSelector sel, void *p){ Event event; memset(&event, 0, sizeof(event)); event.id = STOP_SCRIPT; session->queEvent(&event); return 1;}long Keypad::onDrop(FXObject *sender, FXSelector sel, void *p){ Event event; memset(&event, 0, sizeof(event)); event.id = LINE_DISCONNECT; session->queEvent(&event); return 1;}long Keypad::onWink(FXObject *sender, FXSelector sel, void *p){ Event event; memset(&event, 0, sizeof(event)); event.id = LINE_WINK; session->queEvent(&event); return 1;} long Keypad::onRing(FXObject *sender, FXSelector sel, void *p){ Event event; if(session->isIdle()) { memset(&event, 0, sizeof(event)); event.id = RING_ON; session->queEvent(&event); Thread::sleep(100); event.id = RING_OFF; session->queEvent(&event); } return 1;}long Keypad::onDigit(FXObject *sender, FXSelector sel, void *p){ Event event; memset(&event, 0, sizeof(event)); event.id = DTMF_KEYUP; event.dtmf.duration = 60; event.dtmf.digit = FXSELID(sel) - ID_0; session->queEvent(&event); return 1;}void Keypad::create(){ FXMainWindow::create(); show();}FXbool Keypad::close(FXbool notify){ return FXMainWindow::close(notify);}Keypad::~Keypad(){}} // namespace#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?