⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 configserver.cpp

📁 linux文本方式下的外挂中文环境,很好用,有源码.功能很全.我都用它
💻 CPP
字号:
// vi:ts=4:shiftwidth=4:expandtab/***************************************************************************                          configserver.cpp  -  description                             -------------------    begin                : Fri Sep 28 2001    copyright            : (C) 2001 by ejoy    email                : 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.                                   * *                                                                         * ***************************************************************************/#include <cassert>#include "global.h"#include "zhcon.h"#include "candilist.h"#include "inputmanager.h"#include "configserver.h"ConfigServer::MenuItem ConfigServer::mSysMenu[] = {    {gettext_noop("input option"), NULL, &ConfigServer::MenuHandleIme},    {gettext_noop("Select Encode"), &ConfigServer::GetTextEncode, &ConfigServer::MenuHandleEncode},    {gettext_noop("Encode-Detect Method"), NULL, &ConfigServer::MenuHandleDetectEncode},    {gettext_noop("Quit"), NULL, &ConfigServer::MenuQuit},    {NULL, NULL, NULL}};ConfigServer::MenuItem ConfigServer::mDetectEncodeMenu[] = {    {gettext_noop("Current Encode-Detect Method:"), &ConfigServer::GetTextDetectEncode, NULL},    {"Auto-GB", NULL, &ConfigServer::MenuHandleSetAutoEncodeGB},    {"Auto-BIG5", NULL, &ConfigServer::MenuHandleSetAutoEncodeBIG5},    {"Auto", NULL, &ConfigServer::MenuHandleSetAutoEncodeAUTO},    {"Manual", NULL, &ConfigServer::MenuHandleSetAutoEncodeMANUAL},    {gettext_noop("Back"), NULL, &ConfigServer::MenuHandleGotoSysMenu},    {NULL, NULL, NULL}};ConfigServer::MenuItem ConfigServer::mImeMenu[] = {    {gettext_noop("Input Option:"), NULL, NULL},    {gettext_noop("Auto Select Unique Word"), NULL,     &ConfigServer::MenuHandleAutoSelectUnique},    {gettext_noop("Input Encode"), NULL,     &ConfigServer::MenuHandleInputEncode},    {gettext_noop("Back"), NULL, &ConfigServer::MenuHandleGotoSysMenu},    {NULL, NULL, NULL}};ConfigServer::MenuItem ConfigServer::mEncodeMenu[] = {    {gettext_noop("Please Select Encode:"), NULL, NULL},    {"GB2312", NULL, &ConfigServer::MenuHandleSetEncodeGB2312},    {"GBK", NULL, &ConfigServer::MenuHandleSetEncodeGBK},    {"BIG5", NULL, &ConfigServer::MenuHandleSetEncodeBIG5},    {"JIS", NULL, &ConfigServer::MenuHandleSetEncodeJIS},    {"KSC", NULL, &ConfigServer::MenuHandleSetEncodeKSC},    {gettext_noop("Back"), NULL, &ConfigServer::MenuHandleGotoSysMenu},    {NULL, NULL, NULL}};ConfigServer::ConfigServer() {    mImmInfo.mName = _("System Menu");    mpCurMenu = mSysMenu;}ConfigServer::~ConfigServer() {}void ConfigServer::GetCandilist(Candilist & rList) {    rList.Reset();    int i = 0;    for (MenuItem *p = mpCurMenu; p->mpText; p++) {        rList.mList[i].mKey = '\0';        rList.mList[i].mText = (p->mpGetText ? (this->*(p->mpGetText)) () : _(p->mpText));        i++;    }    rList.mCount = i;    assert(i <= 9);   //menu should has only one page,max 9 items}void ConfigServer::GetInputBuf(char * pBuf, int len) {    pBuf = '\0';}string ConfigServer::GetServerType() {    return "system";}bool ConfigServer::ProcessKey(char key, string & rBuf) {    assert(mpCurMenu);    rBuf = "";    if (key == 033) { //Esc pressed        return false;    }    int count = 0;    MenuItem *p;    for (p = mpCurMenu; p->mpText; p++)        count++;    assert(count);    if (key < '1' || key >= '1' + count)        return true;    p = &mpCurMenu[key - '1'];    if (p->mpFun == &ConfigServer::MenuQuit) {        return false;    }        (this->*(p->mpFun)) ();    return true;}bool ConfigServer::LoadImm(ImmInfo & rModule) {    assert("Could not reach here!");    return false;}void ConfigServer::MenuQuit() {}void ConfigServer::MenuHandleIme() {    mpCurMenu = mImeMenu;}void ConfigServer::MenuHandleEncode() {    mpCurMenu = mEncodeMenu;}string ConfigServer::GetTextEncode() {    string s = _("Current Encode:");    //s += '%';    //s += (char) mColor1;    switch (gpZhcon->mEncode) {        case ASCII:            s += "ASCII";            break;        case GB2312:            s += "GB2312";            break;        case GBK:            s += "GBK";            break;        case BIG5:            s += "BIG5";            break;        case JIS:            s += "JIS";            break;        case KSC:            s += "KSC";            break;        default:            assert(!"Error in encode!");    }    //s += '%';    //s += (char) 255;    return s;}void ConfigServer::MenuHandleSetEncodeGB2312() {    gpZhcon->SetEncode(GB2312, GB2312);}void ConfigServer::MenuHandleSetEncodeGBK() {    gpZhcon->SetEncode(GBK, GBK);}void ConfigServer::MenuHandleSetEncodeBIG5() {    gpZhcon->SetEncode(BIG5, BIG5);}void ConfigServer::MenuHandleSetEncodeJIS() {    gpZhcon->SetEncode(JIS, JIS);}void ConfigServer::MenuHandleSetEncodeKSC() {    gpZhcon->SetEncode(KSC, KSC);}string ConfigServer::GetTextDetectEncode() {    string s = _("Current Encode-Detect Method:");    //    s += '%';    //   s += (char) mColor1;    switch (gpZhcon->mAutoEncode) {        case Zhcon::AUTO:            s += "Auto";            break;        case Zhcon::AUTO_GB:            s += "Auto-GB";            break;        case Zhcon::AUTO_BIG5:            s += "Auto-BIG5";            break;        case Zhcon::MANUAL:            s += "Manual";            break;    }    // s += '%';    // s += (char) 255;    //s += ']';    return s;}void ConfigServer::MenuHandleSetAutoEncodeGB() {    gpZhcon->mAutoEncode = Zhcon::AUTO_GB;}void ConfigServer::MenuHandleSetAutoEncodeBIG5() {    gpZhcon->mAutoEncode = Zhcon::AUTO_BIG5;}void ConfigServer::MenuHandleSetAutoEncodeMANUAL() {    gpZhcon->mAutoEncode = Zhcon::MANUAL;}void ConfigServer::MenuHandleSetAutoEncodeAUTO() {    gpZhcon->mAutoEncode = Zhcon::AUTO;}void ConfigServer::MenuHandleDetectEncode() {    mpCurMenu = mDetectEncodeMenu;}string ConfigServer::ConfigServer::GetTextInputEncode() {    string s = _("Current Input Encode(native only)");    //    s += '%';    //s += (char) mColor1;    /*    if (mpCurIme) {            if (mpCurIme->GetGBKOut())                s += "GBK";            else                s += "GB2312";        } else            s += "UNKNOWN";*/    //    s += '%';    //s += (char) 255;    return s;}void ConfigServer::MenuHandleInputEncode() {    /*        if (mpCurIme)            mpCurIme->SetGBKOut(!mpCurIme->GetGBKOut());        else            Beep();*/}string ConfigServer::GetTextAutoSelectUnique() {    string s = _("Auto Select Unique Word");    /*    s += '%';    s += (char) mColor1;    s += (mAutoSelectUnique ? "Yes"  :  "No");    s += '%';    s += (char) 255;*/    return s;}void ConfigServer::MenuHandleAutoSelectUnique() {    /*        mAutoSelectUnique = !mAutoSelectUnique;*/}void ConfigServer::MenuHandleGotoSysMenu() {    mpCurMenu = mSysMenu;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -