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

📄 interfacehandler.cpp

📁 qgo-1.5.4-r3.tar.gz linux下一个很好玩的游戏
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/** interfacehandler.cpp*/#include "defines.h"#include "interfacehandler.h"#include "board.h"#include "textedit_gui.h"#include "normaltools_gui.h"#include "scoretools_gui.h"#include "mainwidget.h"#include "icons.h"#include "move.h"#include <qaction.h>#include <qpushbutton.h>#include <qlabel.h>#include <qtextedit.h>#include <qbuttongroup.h>#include <qlineedit.h>#include <qslider.h>#include <qtabwidget.h>//#ifdef USE_XPM#include ICON_NODE_BLACK#include ICON_NODE_WHITE//#endifstruct ButtonState{    bool navPrevVar, navNextVar, navBackward, navForward, navFirst, navStartVar, navMainBranch,		navLast, navNextBranch, navPrevComment, navNextComment, navIntersection, editPaste, editPasteBrother; // SL added eb 11};InterfaceHandler::InterfaceHandler(){    buttonState = new ButtonState;    scored_flag = false;}InterfaceHandler::~InterfaceHandler(){    delete buttonState;}GameMode InterfaceHandler::toggleMode(){	GameMode mode = board->getGameMode();		switch (mode)	{	case modeEdit:		board->setMode(modeNormal);//		modeButton->setEnabled(true);		mainWidget->setToolsTabWidget(tabEdit, tabEnable);		mainWidget->setToolsTabWidget(tabTeachGameTree, tabDisable);		scoreButton->setEnabled(true);		scoreButton->setText(QObject::tr("Score", "button label"));		passButton->setEnabled(true);		undoButton->setDisabled(true); // for later: undo button -> one step back		resignButton->setDisabled(true);		adjournButton->setDisabled(true);		refreshButton->setDisabled(true);		commentEdit->setReadOnly(false);		//commentEdit2->setReadOnly(true);		commentEdit2->setDisabled(true);		statusMode->setText(" " + QObject::tr("N", "Board status line: normal mode") + " ");		statusMark->setText(" - ");		return modeNormal;			case modeNormal:		board->setMode(modeEdit);//		modeButton->setEnabled(true);		mainWidget->setToolsTabWidget(tabEdit, tabEnable);		mainWidget->setToolsTabWidget(tabTeachGameTree, tabDisable);		scoreButton->setDisabled(true);		scoreButton->setText(QObject::tr("Score", "button label"));		passButton->setDisabled(true);		undoButton->setDisabled(true);		resignButton->setDisabled(true);		adjournButton->setDisabled(true);		refreshButton->setDisabled(true);		commentEdit->setReadOnly(false);		//commentEdit2->setReadOnly(true);		commentEdit2->setDisabled(true);		statusMode->setText(" " + QObject::tr("E", "Board status line: edit mode") + " ");		statusMark->setText(getStatusMarkText(board->getMarkType()));		return modeEdit;			case modeObserve:		board->setMode(modeObserve);//		modeButton->setDisabled(true);		mainWidget->setToolsTabWidget(tabEdit, tabDisable);		mainWidget->setToolsTabWidget(tabTeachGameTree, tabDisable);		scoreButton->setEnabled(true);		scoreButton->setText(QObject::tr("Edit", "button label"));		passButton->setDisabled(true);		undoButton->setDisabled(true);		resignButton->setDisabled(true);		adjournButton->setDisabled(true);		refreshButton->setEnabled(true);		commentEdit->setReadOnly(true);		commentEdit2->setReadOnly(false);		commentEdit2->setDisabled(false);    		editCut->setEnabled(false);    		editDelete->setEnabled(false);		fileNew->setEnabled(false);		fileNewBoard->setEnabled(false);		fileOpen->setEnabled(false);		statusMode->setText(" " + QObject::tr("O", "Board status line: observe mode") + " ");		statusMark->setText(getStatusMarkText(board->getMarkType()));		return modeObserve;			case modeMatch : 		board->setMode(modeMatch);//		modeButton->setDisabled(true);		mainWidget->setToolsTabWidget(tabEdit, tabDisable);		mainWidget->setToolsTabWidget(tabTeachGameTree, tabDisable);		scoreButton->setEnabled(true);		scoreButton->setText(QObject::tr("Edit", "button label"));		passButton->setEnabled(true);		passButton->setText(QObject::tr("Pass", "button label"));		undoButton->setEnabled(true);		resignButton->setEnabled(true);		adjournButton->setEnabled(true);		refreshButton->setEnabled(true);		commentEdit->setReadOnly(true);		commentEdit2->setReadOnly(false);		commentEdit2->setDisabled(false);		fileNew->setEnabled(false);		fileNewBoard->setEnabled(false);		fileOpen->setEnabled(false);		statusMode->setText(" " + QObject::tr("P", "Board status line: play mode") + " ");		statusMark->setText(getStatusMarkText(board->getMarkType()));		return modeMatch;	case   modeComputer :           // added eb 12		board->setMode(modeComputer);//		modeButton->setDisabled(true);		mainWidget->setToolsTabWidget(tabEdit, tabDisable);		mainWidget->setToolsTabWidget(tabTeachGameTree, tabDisable);		scoreButton->setEnabled(true);		scoreButton->setText(QObject::tr("Edit", "button label"));		passButton->setEnabled(true);		passButton->setText(QObject::tr("Pass", "button label"));		undoButton->setEnabled(true);		resignButton->setEnabled(true);		adjournButton->setEnabled(false);		refreshButton->setEnabled(false);		commentEdit->setReadOnly(true);		commentEdit2->setReadOnly(false);		commentEdit2->setDisabled(false);		fileNew->setEnabled(false);		fileNewBoard->setEnabled(false);		fileOpen->setEnabled(false);		statusMode->setText(" " + QObject::tr("P", "Board status line: play mode") + " ");		statusMark->setText(getStatusMarkText(board->getMarkType()));		return modeComputer;               //end add eb 12      			case modeTeach:		board->setMode(modeTeach);//		modeButton->setDisabled(true);		mainWidget->setToolsTabWidget(tabEdit, tabDisable);		mainWidget->setToolsTabWidget(tabTeachGameTree, tabEnable);		scoreButton->setEnabled(true);		scoreButton->setText(QObject::tr("Edit", "button label"));		passButton->setEnabled(true);		passButton->setText(QObject::tr("Pass", "button label"));		undoButton->setEnabled(true);		resignButton->setEnabled(true);		adjournButton->setEnabled(true);		refreshButton->setEnabled(true);		commentEdit->setReadOnly(true);		commentEdit2->setReadOnly(false);		commentEdit2->setDisabled(false);		fileNew->setEnabled(false);		fileNewBoard->setEnabled(false);		fileOpen->setEnabled(false);		statusMode->setText(" " + QObject::tr("T", "Board status line: teach mode") + " ");		statusMark->setText(getStatusMarkText(board->getMarkType()));		return modeTeach;			case modeScore://		modeButton->setDisabled(true);		mainWidget->setToolsTabWidget(tabEdit, tabDisable);//		mainWidget->setToolsTabWidget(tabNormalScore);		scoreButton->setEnabled(true);		scoreButton->setText(QObject::tr("Score", "button label"));		passButton->setDisabled(true);		undoButton->setEnabled(true);		resignButton->setDisabled(true);		adjournButton->setEnabled(true);		refreshButton->setEnabled(true);		commentEdit->setReadOnly(true);		//commentEdit2->setReadOnly(true);		commentEdit2->setDisabled(true);		statusMode->setText(" " + QObject::tr("S", "Board status line: score mode") + " ");		statusMark->setText(getStatusMarkText(board->getMarkType()));		return modeScore;			default:		return modeNormal;	}}void InterfaceHandler::setEditMode(){//    modeButton->setOn(true);	mainWidget->setToolsTabWidget(tabEdit);//    normalTools->hide();//    editTools->show();    board->setMode(modeEdit);    statusMode->setText(" " + QObject::tr("E", "Board status line: edit mode") + " ");    statusMark->setText(getStatusMarkText(board->getMarkType()));}void InterfaceHandler::setMoveData(int n, bool black, int brothers, int sons, bool hasParent,								   bool hasPrev, bool hasNext, int lastX, int lastY){    QString s(QObject::tr("Move") + " ");    s.append(QString::number(n));    if (lastX >= 1 && lastX <= board->getBoardSize() && lastY >= 1 && lastY <= board->getBoardSize())    {		s.append(" (");		s.append(black ? QObject::tr("W")+" " : QObject::tr("B")+" ");		s.append(QString(QChar(static_cast<const char>('A' + (lastX<9?lastX:lastX+1) - 1))) +			QString::number(board->getBoardSize()-lastY+1) + ")");    }    else if (lastX == 20 && lastY == 20)  // Pass    {		s.append(" (");		s.append(black ? QObject::tr("W")+" " : QObject::tr("B")+" ");		s.append(" " + QObject::tr("Pass") + ")");    }        moveNumLabel->setText(s);    statusTurn->setText(" " + s.right(s.length() - 5) + " ");  // Without 'Move '	    statusNav->setText(" " + QString::number(brothers) + "/" + QString::number(sons));        s = black ? QObject::tr("Black to play") : QObject::tr("White to play");    turnLabel->setText(s);	    s = "";    s.append(QString::number(brothers));    if (brothers == 1)		s.append(" " + QObject::tr("brother") + "\n");    else		s.append(" " + QObject::tr("brothers") + "\n");    s.append(QString::number(sons));    if (sons == 1)		s.append(" " + QObject::tr("son"));    else		s.append(" " + QObject::tr("sons"));    varLabel->setText(s);		if (board->getGameMode() == modeNormal || board->getGameMode() == modeEdit)	{		// Update the toolbar buttons		navPrevVar->setEnabled(hasPrev);		navNextVar->setEnabled(hasNext);		navBackward->setEnabled(hasParent);		navForward->setEnabled(sons);		navFirst->setEnabled(hasParent);		navStartVar->setEnabled(hasParent);		navMainBranch->setEnabled(hasParent);		navLast->setEnabled(sons);		navNextBranch->setEnabled(sons);		navSwapVariations->setEnabled(hasPrev);		navPrevComment->setEnabled(hasParent);		navNextComment->setEnabled(sons);    		navIntersection->setEnabled(true); //SL added eb 11				slider->setEnabled(true);	}	else  if (board->getGameMode() == modeObserve)  // add eb 8	{		// Update the toolbar buttons		navBackward->setEnabled(hasParent);		navForward->setEnabled(sons);		navFirst->setEnabled(hasParent);		navLast->setEnabled(sons);		navPrevComment->setEnabled(hasParent);		navNextComment->setEnabled(sons);		navIntersection->setEnabled(true);  //SL added eb 11		slider->setEnabled(true);		board->getBoardHandler()->display_incoming_move = !bool(sons);            //SL added eb 9 - This is used to know whether we are browsing through a game or at the last move	}	else                                               //end add eb 8		slider->setDisabled(true);	    // Update slider  mainWidget->toggleSliderSignal(false);  int mv = slider->maxValue();                            // add eb 8  int v = slider->value();      if (slider->maxValue() < n)		  setSliderMax(n);                                                                  // we need to be carefull with the slider  if (board->getGameMode() != modeObserve ||                    // normal case, slider is moved    (board->getGameMode() == modeObserve && mv >= n) ||       // observing, but browsing (no incoming move)    (board->getGameMode() == modeObserve && mv < n && v==n-1))// observing, but at the last move, and an incoming move occurs           slider->setValue(n);                                                                       // end add eb 8          mainWidget->toggleSliderSignal(true);}// clear the big field (offline)void InterfaceHandler::clearComment(){	commentEdit->clear();}// display textvoid InterfaceHandler::displayComment(const QString &c){	if (board->get_isLocalGame())	{		if (c.isEmpty())			commentEdit->clear();		else			commentEdit->setText(c);	}	else if (!c.isEmpty())			commentEdit->append(c);}// get the comment of commentEdit - the multiline fieldQString InterfaceHandler::getComment(){	return commentEdit->text();}// get the comment of commentEdit2 - the single lineQString InterfaceHandler::getComment2(){	QString text = commentEdit2->text();		// clear entry	commentEdit2->setText("");		// don't show short text	if (text.length() < 1)		return 0;		return text;}void InterfaceHandler::setMarkType(int m){    MarkType t;    QString txt;	    switch(m)    {    case 0:		t = markNone;		break;		    case 1:		t = markSquare;		break;		    case 2:		t = markCircle;		break;

⌨️ 快捷键说明

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