//------------------------------------------------------------------------------
// Name: createMenu
// Desc:
//------------------------------------------------------------------------------
QMenu *QGmailNotifier::createMenu() {
	QMenu *const menu = new QMenu(this);
	QAction *const view		= menu->addAction(tr("View Inbox"), this, SLOT(doView()));
	menu->addAction(tr("Compose a Message"), this, SLOT(doCompose()));
	menu->addAction(tr("Check Mail Now"), this, SLOT(doCheck()));
	menu->addAction(tr("Tell me Again..."), this, SLOT(doTell()));
	menu->addAction(tr("Options"), this, SLOT(doOptions()));
	menu->addAction(tr("About"), this, SLOT(doAbout()));

	if(currentMails_.size() != 0) {

		menu->addSeparator();
		QMenu *const convsations = menu->addMenu(tr("Unread Conversations"));

		QSettings settings;

		const int maxCons = settings.value("max_conversations", 10).value<int>();

		int index = 0;
		Q_FOREACH(GMailEntry entry, currentMails_) {
			QAction *const action = convsations->addAction(entry.author_name + " : " + entry.title, this, SLOT(readConversation()));
			action->setData(index++);
			if(index >= maxCons) {
				break;
			}
		}
MainWindowComplex::MainWindowComplex(QWidget *parent) :// 基类构造函数
    QMainWindow(parent),
    ui(new Ui::MainWindowComplex)
{
    ui->setupUi(this);mainToolBar=new QToolBar(this);
    mainToolBar->setAllowedAreas(Qt::TopToolBarArea);
    actAbout=mainToolBar->addAction("关于",this,SLOT(doAbout()));
    actHelp=mainToolBar->addAction("帮助",this,SLOT(doHelp()));
    setWindowTitle("复数运算");
}
MainWindowPoly::MainWindowPoly(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindowPoly)
{
    ui->setupUi(this);
    mainToolBar=new QToolBar(this);
    mainToolBar->setAllowedAreas(Qt::TopToolBarArea);
    actAbout=mainToolBar->addAction("关于",this,SLOT(doAbout()));
    actHelp=mainToolBar->addAction("帮助",this,SLOT(doHelp()));
    setWindowTitle("多项式功能");

}
AdvancedMainwindow::AdvancedMainwindow(QMainWindow *parent):QMainWindow(parent)
{
    //setFixedSize(300,300);
    acal=new AdvancedCalwidget(this);
    acal->mySetLayout();

    //mbar=new QMenuBar;
    //menuFormat=new QMenu("格式",this);
    //menuPolynome=new QMenu("多项式计算",this);
    //menuStatistic=new QMenu("统计功能");
   // menuCustomFunction=new QMenu("自定义函数");
    //actDegOrRad=menuFormat->addAction("角度/弧度");
    //actFloatDigit=menuFormat->addAction("小数位数");
    //mbar->addMenu(menuFormat);
    //mbar->addMenu(menuPolynome);
    //mbar->addMenu(menuStatistic);
    //mbar->addMenu(menuCustomFunction);
    mToolBar=new QToolBar;
    mToolBar->setFloatable(false);
    mToolBar->setMovable(false);
    actBackToBasic=mToolBar->addAction("基本模式",this,SLOT(backToBasicClicked()));
    inputExpressionMannual=mToolBar->addAction("手动输入",acal,SLOT(doInputMannual()));
    actCustomVariable=mToolBar->addAction("自定义变量",this,SLOT(doCustomVariable()));
    actBaseChange=mToolBar->addAction("进制转换",this,SLOT(doBaseChange()));
    actAbout=mToolBar->addAction("关于",this,SLOT(doAbout()));
    actHelp=mToolBar->addAction("帮助",this,SLOT(helpClicked()));

    //actStatistic=menuStatistic->addAction("统计功能",this,SLOT(doStatistic()));
    //setMenuBar(mbar);
    addToolBar(Qt::TopToolBarArea,mToolBar);

    QLabel* Space=new QLabel;
    Space->setFixedSize(7,20);
    formatCheckBox=new QCheckBox("科学计数法");
    formatCheckBox->setTristate(true);
    formatCheckBox->setFixedSize(80,20);
    formatCheckBox->setCheckState(Qt::PartiallyChecked);
    statusBar=new QStatusBar;
    statusBar->addWidget(Space);
    statusBar->addWidget(formatCheckBox);
    //statusBar->setLayoutDirection(Qt::RightToLeft);
    //statusBar->setFixedSize(sizeHint().width(),28);
    statusBar->setSizeGripEnabled(false);
    QLabel* formatLabel=new QLabel("有效/小数位数");
    statusBar->addWidget(formatLabel);
    //formatEdit=new QLineEdit("6");
    //formatEdit->setFixedSize(54,20);
    QSpinBox* formatEdit=new QSpinBox;
    formatEdit->setValue(6);
    formatEdit->setRange(0,15);
    formatEdit->setFocusPolicy(Qt::NoFocus);
    formatEdit->setFixedWidth(46);
    statusBar->addWidget(formatEdit);
    QCheckBox* radCheckedBox=new QCheckBox("角度");
    radCheckedBox->setCheckState(Qt::Unchecked);
    radCheckedBox->setFixedWidth(radCheckedBox->sizeHint().width()+10);
    statusBar->addWidget(radCheckedBox);
    /*QCheckBox* roundCheckedBox=new QCheckBox("四舍五入");
    roundCheckedBox->setCheckState(Qt::Unchecked);
    statusBar->addWidget(roundCheckedBox);*/

    setStatusBar(statusBar);

    setCentralWidget(acal);

    QSize size=this->sizeHint();
    setFixedSize(size);
    setWindowTitle("高级模式");

    connect(formatCheckBox,SIGNAL(stateChanged(int)),acal,SLOT(doFormatCheckBoxChanged(int)));
    connect(formatEdit,SIGNAL(valueChanged(int)),acal,SLOT(formatEditChanged(int)));
    connect(radCheckedBox,SIGNAL(stateChanged(int)),acal,SLOT(radBoxStatusChanged(int)));
    //connect(roundCheckedBox,SIGNAL(stateChanged(int)),acal,SLOT(isRoundChanged(int)));
}
void U2Panel::keyRel(int key){
    cout<<"Key Released :"<<key<<endl;
	if(aboutDialogShows){
		aboutDialogShows=FALSE;
		repaint();
		return;
	}
	if(themeDialogShows){
		switch(key){
			case 4100:
				themeSelected();
				break;
			case 4114:
				themeIndex+=themeAvilable.count()-1;
				themeIndex=themeIndex%themeAvilable.count();
				break;
			case 4116:
				themeIndex+=1;
				themeIndex=themeIndex%themeAvilable.count();
				break;
			case 4146:
				themeDialogShows=FALSE;
				break;
		}
		repaint();
		return;
	}
	if(selectMode){//选词模式
		cout<<"select mode"<<endl;
	
		//是数字键
		if(key==4100){
			//输入
			doInput();
			num_buf="";
			alpha_buf="";
			cw_page_list.clear();
			cw_list.clear();
			selectMode=FALSE;
		}else if(key>48&&key<58){
			doInputByNum(key);
			num_buf="";
			alpha_buf="";
			cw_page_list.clear();
			cw_list.clear();
			selectMode=FALSE;
		}
		
		
	}else{//非选词模式
		cout<<"not select mode"<<endl;
		if(key>48&&key<58){
			if(!menuShows){
				num_buf+=QString::number(key-48);
				//数字发生变化============================================================
				numBufChanged();
				getCWords();
				CWPaging();
			}
		}else if(key==4100){
			if(!menuShows){
				justTheOne();
				num_buf="";
				alpha_buf="";
				cw_page_list.clear();
				cw_list.clear();
			}else{
				switch(menu_index){
					case 0:
						emit(rejected());
						break;
					case 1:
						doCopy();
						break;
					case 2:
						doPaste();
						break;
					case 3:
						doTheme();
						break;
					case 4:
						doAbout();
						return;
						break;

				}
				menuShows=!menuShows;
			}
		}else if(key==4152){
			if(num_buf==""){
				menuShows=!menuShows;
			}
		}else if(key==4154){
			emit(accepted());
			//接受
		}
	}

	repaint();
}