00001 #include "aidialog.h"
00002
00003 #include <qgroupbox.h>
00004
00005 #include <qpe/qpeapplication.h>
00006
00007 AI_Dialog::AI_Dialog(QWidget* parent,const char* name,bool modal,WFlags f)
00008 : QDialog(parent,name,modal,f)
00009 {
00010 setCaption("AI Configuration");
00011
00012 QGroupBox* settings=new QGroupBox(tr( "Settings" ),this);
00013 settings->setGeometry(10,5,220,170);
00014
00015 QLabel* rescue_label=new QLabel(tr( "<b>Rescue</b>" ),settings);
00016 rescue_label->setGeometry(50,20,50,20);
00017 rescue=new QSpinBox(0,6,1,settings);
00018 rescue->setGeometry(100,20,40,20);
00019 QPushButton* rescuehelp=new QPushButton(tr( "?" ),settings);
00020 rescuehelp->setGeometry(140,20,20,20);
00021 connect(rescuehelp,SIGNAL(pressed()),this,SLOT(rescuehelp_pressed()));
00022 connect(rescuehelp,SIGNAL(released()),this,SLOT(rescuehelp_released()));
00023
00024 QLabel* eliminate_label=new QLabel(tr( "<b>Eliminate</b>" ),settings);
00025 eliminate_label->setGeometry(50,40,50,20);
00026 eliminate=new QSpinBox(0,6,1,settings);
00027 eliminate->setGeometry(100,40,40,20);
00028 QPushButton* eliminatehelp=new QPushButton(tr( "?" ),settings);
00029 eliminatehelp->setGeometry(140,40,20,20);
00030 connect(eliminatehelp,SIGNAL(pressed()),this,SLOT(eliminatehelp_pressed()));
00031 connect(eliminatehelp,SIGNAL(released()),this,SLOT(eliminatehelp_released()));
00032
00033 QLabel* expose_label=new QLabel(tr( "<b>Expose</b>" ),settings);
00034 expose_label->setGeometry(50,60,50,20);
00035 expose=new QSpinBox(0,6,1,settings);
00036 expose->setGeometry(100,60,40,20);
00037 QPushButton* exposeehelp=new QPushButton(tr( "?" ),settings);
00038 exposeehelp->setGeometry(140,60,20,20);
00039 connect(exposeehelp,SIGNAL(pressed()),this,SLOT(exposehelp_pressed()));
00040 connect(exposeehelp,SIGNAL(released()),this,SLOT(exposehelp_released()));
00041
00042 QLabel* protect_label=new QLabel(tr( "<b>Protect</b>" ),settings);
00043 protect_label->setGeometry(50,80,50,20);
00044 protect=new QSpinBox(0,6,1,settings);
00045 protect->setGeometry(100,80,40,20);
00046 QPushButton* protecthelp=new QPushButton(tr( "?" ),settings);
00047 protecthelp->setGeometry(140,80,20,20);
00048 connect(protecthelp,SIGNAL(pressed()),this,SLOT(protecthelp_pressed()));
00049 connect(protecthelp,SIGNAL(released()),this,SLOT(protecthelp_released()));
00050
00051 QLabel* safe_label=new QLabel(tr( "<b>Safe</b>" ),settings);
00052 safe_label->setGeometry(50,100,50,20);
00053 safe=new QSpinBox(0,6,1,settings);
00054 safe->setGeometry(100,100,40,20);
00055 QPushButton* safeehelp=new QPushButton(tr( "?" ),settings);
00056 safeehelp->setGeometry(140,100,20,20);
00057 connect(safeehelp,SIGNAL(pressed()),this,SLOT(safehelp_pressed()));
00058 connect(safeehelp,SIGNAL(released()),this,SLOT(safehelp_released()));
00059
00060 QLabel* empty_label=new QLabel(tr( "<b>Empty</b>" ),settings);
00061 empty_label->setGeometry(50,120,50,20);
00062 empty=new QSpinBox(0,6,1,settings);
00063 empty->setGeometry(100,120,40,20);
00064 QPushButton* emptyhelp=new QPushButton(tr( "?" ),settings);
00065 emptyhelp->setGeometry(140,120,20,20);
00066 connect(emptyhelp,SIGNAL(pressed()),this,SLOT(emptyhelp_pressed()));
00067 connect(emptyhelp,SIGNAL(released()),this,SLOT(emptyhelp_released()));
00068
00069 defaultvalues=new QPushButton(tr( "Default Values" ),settings);
00070 defaultvalues->setGeometry(60,140,90,20);
00071 connect(defaultvalues,SIGNAL(clicked()),this,SLOT(setDefaultValues()));
00072
00073 QGroupBox* helpbox=new QGroupBox(tr( "Help" ),this);
00074 helpbox->setGeometry(10,185,220,90);
00075
00076 help=new QLabel(helpbox);
00077 help->setGeometry(10,15,200,65);
00078
00079 setHelpText();
00080 QPEApplication::showDialog( this );
00081 }
00082
00083
00084 AI_Dialog::~AI_Dialog()
00085 {
00086 }
00087
00088 void AI_Dialog::rescuehelp_pressed()
00089 {
00090 setHelpText("rescue");
00091 }
00092
00093 void AI_Dialog::rescuehelp_released()
00094 {
00095 setHelpText();
00096 }
00097
00098 void AI_Dialog::eliminatehelp_pressed()
00099 {
00100 setHelpText("eliminate");
00101 }
00102
00103 void AI_Dialog::eliminatehelp_released()
00104 {
00105 setHelpText();
00106 }
00107
00108 void AI_Dialog::exposehelp_pressed()
00109 {
00110 setHelpText("expose");
00111 }
00112
00113 void AI_Dialog::exposehelp_released()
00114 {
00115 setHelpText();
00116 }
00117
00118 void AI_Dialog::protecthelp_pressed()
00119 {
00120 setHelpText("protect");
00121 }
00122
00123 void AI_Dialog::protecthelp_released()
00124 {
00125 setHelpText();
00126 }
00127
00128 void AI_Dialog::safehelp_pressed()
00129 {
00130 setHelpText("safe");
00131 }
00132
00133 void AI_Dialog::safehelp_released()
00134 {
00135 setHelpText();
00136 }
00137
00138 void AI_Dialog::emptyhelp_pressed()
00139 {
00140 setHelpText("empty");
00141 }
00142
00143 void AI_Dialog::emptyhelp_released()
00144 {
00145 setHelpText();
00146 }
00147
00148
00149
00150 void AI_Dialog::setDefaultValues()
00151 {
00152 rescue->setValue(6);
00153 eliminate->setValue(4);
00154 expose->setValue(1);
00155 protect->setValue(5);
00156 safe->setValue(3);
00157 empty->setValue(2);
00158 }
00159
00160 void AI_Dialog::setAISettings(const AISettings& values)
00161 {
00162 rescue->setValue(values.rescue);
00163 eliminate->setValue(values.eliminate);
00164 expose->setValue(values.expose);
00165 protect->setValue(values.protect);
00166 safe->setValue(values.safe);
00167 empty->setValue(values.empty);
00168 }
00169
00170 AISettings AI_Dialog::getAISettings()
00171 {
00172 AISettings ai;
00173 ai.rescue=rescue->value();
00174 ai.eliminate=eliminate->value();
00175 ai.expose=expose->value();
00176 ai.protect=protect->value();
00177 ai.safe= safe->value();
00178 ai.empty=empty->value();
00179 return ai;
00180 }
00181
00182 void AI_Dialog::setHelpText(const QString& type)
00183 {
00184 if(type=="rescue")
00185 {
00186 help->setText(tr( "Bring the pieces out of the endzone" ));
00187 }
00188 else if(type=="eliminate")
00189 {
00190 help->setText(tr( "Eliminate an opponents piece" ));
00191 }
00192 else if(type=="expose")
00193 {
00194 help->setText(tr( "Expose you own pieces.\nAfter such a move only one piece will remain in the slot") );
00195 }
00196 else if(type=="protect")
00197 {
00198 help->setText(tr( "Protect a single piece by\nputting another one in this slot" ));
00199 }
00200 else if(type=="safe")
00201 {
00202 help->setText(tr( "Move piece to a slot already\noccupied by the player" ));
00203 }
00204 else if(type=="empty")
00205 {
00206 help->setText(tr( "Move piece to an empty slot") );
00207 }
00208 else
00209 {
00210 help->setText(tr( "Press and hold the ? buttton\nnext to a field for help") );
00211 }
00212 }