Diffstat (limited to 'noncore/games/backgammon/themedialog.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/games/backgammon/themedialog.cpp | 163 |
1 files changed, 163 insertions, 0 deletions
diff --git a/noncore/games/backgammon/themedialog.cpp b/noncore/games/backgammon/themedialog.cpp new file mode 100644 index 0000000..dcb957c --- a/dev/null +++ b/noncore/games/backgammon/themedialog.cpp @@ -0,0 +1,163 @@ +#include "themedialog.h" + +#include <qdir.h> +#include <qfileinfo.h> +#include <qlabel.h> +#include <qpushbutton.h> +#include <qpe/qpeapplication.h> + + +ThemeDialog::ThemeDialog(QWidget* parent,const char* name,bool modal,WFlags f) + :QDialog(parent,name,modal,f) +{ + setCaption("Theme Dialog"); + QLabel* labelname=new QLabel("name",this); + labelname->setGeometry(0,5,40,20); + lineName=new QLineEdit("user",this); + lineName->setGeometry(40,5,195,20); + + QLabel* labelboard=new QLabel("board",this); + labelboard->setGeometry(0,30,40,20); + boxboard=new QComboBox(this,""); + boxboard->setGeometry(40,30,195,20); + fillBox("boards",boxboard); + + QLabel* labelpiecesA=new QLabel("pieces1",this); + labelpiecesA->setGeometry(0,70,40,20); + boxpiecesA=new QComboBox(this); + boxpiecesA->setGeometry(40,70,195,20); + fillBox("pieces",boxpiecesA); + + QLabel* labelpiecesB=new QLabel("pieces2",this); + labelpiecesB->setGeometry(0,95,40,20); + boxpiecesB=new QComboBox(this); + boxpiecesB->setGeometry(40,95,195,20); + fillBox("pieces",boxpiecesB); + + QLabel* labeldiceA=new QLabel("dice1",this); + labeldiceA->setGeometry(0,135,40,20); + boxdiceA=new QComboBox(this); + boxdiceA->setGeometry(40,135,195,20); + fillBox("dice",boxdiceA); + + QLabel* labeldiceB=new QLabel("dice2",this); + labeldiceB->setGeometry(0,160,40,20); + boxdiceB=new QComboBox(this); + boxdiceB->setGeometry(40,160,195,20); + fillBox("dice",boxdiceB); + + QLabel* labelodds=new QLabel("odds",this); + labelodds->setGeometry(0,200,40,20); + boxodds=new QComboBox(this); + boxodds->setGeometry(40,200,195,20); + fillBox("odds",boxodds); + boxodds->setEnabled(false); + + QLabel* labeltable=new QLabel("table",this); + labeltable->setGeometry(0,225,40,20); + boxtable=new QComboBox(this); + boxtable->setGeometry(40,225,195,20); + fillBox("table",boxtable); + + showMaximized(); +} + +ThemeDialog::~ThemeDialog() +{} + + +ImageNames ThemeDialog::getNames() +{ + ImageNames names; + names.theme=lineName->text(); + names.board=boxboard->currentText(); + names.pieces1=boxpiecesA->currentText(); + names.pieces2=boxpiecesB->currentText(); + names.dice1=boxdiceA->currentText(); + names.dice2=boxdiceB->currentText(); + names.odds=boxodds->currentText(); + names.table=boxtable->currentText(); + return names; +} + +void ThemeDialog::setCurrent(const ImageNames& current) +{ + int a=0; + lineName->setText(current.theme); + for(a=0;a<boxboard->count();a++) + { + if(boxboard->text(a)==current.board) + { + boxboard->setCurrentItem(a); + break; + } + } + for(a=0;a<boxpiecesA->count();a++) + { + if(boxpiecesA->text(a)==current.pieces1) + { + boxpiecesA->setCurrentItem(a); + break; + } + } + for(a=0;a<boxpiecesB->count();a++) + { + if(boxpiecesB->text(a)==current.pieces2) + { + boxpiecesB->setCurrentItem(a); + break; + } + } + for(a=0;a<boxdiceA->count();a++) + { + if(boxdiceA->text(a)==current.dice1) + { + boxdiceA->setCurrentItem(a); + break; + } + } + for(a=0;a<boxdiceB->count();a++) + { + if(boxdiceB->text(a)==current.dice2) + { + boxdiceB->setCurrentItem(a); + break; + } + } + for(a=0;a<boxodds->count();a++) + { + if(boxodds->text(a)==current.odds) + { + boxodds->setCurrentItem(a); + break; + } + } + for(a=0;a<boxtable->count();a++) + { + if(boxtable->text(a)==current.table) + { + boxtable->setCurrentItem(a); + break; + } + } +} + +void ThemeDialog::fillBox(QString dirname,QComboBox* thebox) +{ + thebox->clear(); + QDir dir(QPEApplication::qpeDir()+"/pics/backgammon/"+dirname); + dir.setFilter(QDir::Dirs | QDir::Files); + QFileInfoListIterator it(*(dir.entryInfoList())); + QFileInfo* fi; + + while((fi=it.current())) // go through all file and subdirs + { + QString file=fi->fileName(); + if(file.right(4)==".png") + { + thebox->insertItem(file.left(file.find(".png"))); + } + ++it; + } + delete fi; +} |