author | ar <ar> | 2004-02-14 16:06:45 (UTC) |
---|---|---|
committer | ar <ar> | 2004-02-14 16:06:45 (UTC) |
commit | 1ab6282d6869ca200133a0e47323ae9a760b3400 (patch) (unidiff) | |
tree | a7f2b4fb6f34edb4b50f00b12cf649b9cf59b8ca | |
parent | c7cf5faa7f1512fa48fb298a75902d4557bc9cfa (diff) | |
download | opie-1ab6282d6869ca200133a0e47323ae9a760b3400.zip opie-1ab6282d6869ca200133a0e47323ae9a760b3400.tar.gz opie-1ab6282d6869ca200133a0e47323ae9a760b3400.tar.bz2 |
improve support for BigScreen
-rw-r--r-- | noncore/games/backgammon/aidialog.cpp | 15 | ||||
-rw-r--r-- | noncore/games/backgammon/filedialog.cpp | 129 | ||||
-rw-r--r-- | noncore/games/backgammon/playerdialog.cpp | 4 | ||||
-rw-r--r-- | noncore/games/backgammon/rulesdialog.cpp | 4 | ||||
-rw-r--r-- | noncore/games/backgammon/themedialog.cpp | 2 | ||||
-rw-r--r-- | noncore/games/sfcave/helpwindow.cpp | 4 | ||||
-rw-r--r-- | noncore/games/tetrix/ohighscoredlg.cpp | 3 | ||||
-rw-r--r-- | noncore/games/tictac/tictac.cpp | 4 |
8 files changed, 87 insertions, 78 deletions
diff --git a/noncore/games/backgammon/aidialog.cpp b/noncore/games/backgammon/aidialog.cpp index 7dfe403..32e9b52 100644 --- a/noncore/games/backgammon/aidialog.cpp +++ b/noncore/games/backgammon/aidialog.cpp | |||
@@ -1,175 +1,176 @@ | |||
1 | #include "aidialog.h" | 1 | #include "aidialog.h" |
2 | 2 | ||
3 | #include <qgroupbox.h> | 3 | #include <qgroupbox.h> |
4 | 4 | ||
5 | #include <qpe/qpeapplication.h> | ||
5 | 6 | ||
6 | AI_Dialog::AI_Dialog(QWidget* parent,const char* name,bool modal,WFlags f) | 7 | AI_Dialog::AI_Dialog(QWidget* parent,const char* name,bool modal,WFlags f) |
7 | : QDialog(parent,name,modal,f) | 8 | : QDialog(parent,name,modal,f) |
8 | { | 9 | { |
9 | setCaption("AI Configuration"); | 10 | setCaption("AI Configuration"); |
10 | 11 | ||
11 | QGroupBox* settings=new QGroupBox(tr( "Settings" ),this); | 12 | QGroupBox* settings=new QGroupBox(tr( "Settings" ),this); |
12 | settings->setGeometry(10,5,220,170); | 13 | settings->setGeometry(10,5,220,170); |
13 | 14 | ||
14 | QLabel* rescue_label=new QLabel(tr( "<b>Rescue</b>" ),settings); | 15 | QLabel* rescue_label=new QLabel(tr( "<b>Rescue</b>" ),settings); |
15 | rescue_label->setGeometry(50,20,50,20); | 16 | rescue_label->setGeometry(50,20,50,20); |
16 | rescue=new QSpinBox(0,6,1,settings); | 17 | rescue=new QSpinBox(0,6,1,settings); |
17 | rescue->setGeometry(100,20,40,20); | 18 | rescue->setGeometry(100,20,40,20); |
18 | QPushButton* rescuehelp=new QPushButton(tr( "?" ),settings); | 19 | QPushButton* rescuehelp=new QPushButton(tr( "?" ),settings); |
19 | rescuehelp->setGeometry(140,20,20,20); | 20 | rescuehelp->setGeometry(140,20,20,20); |
20 | connect(rescuehelp,SIGNAL(pressed()),this,SLOT(rescuehelp_pressed())); | 21 | connect(rescuehelp,SIGNAL(pressed()),this,SLOT(rescuehelp_pressed())); |
21 | connect(rescuehelp,SIGNAL(released()),this,SLOT(rescuehelp_released())); | 22 | connect(rescuehelp,SIGNAL(released()),this,SLOT(rescuehelp_released())); |
22 | 23 | ||
23 | QLabel* eliminate_label=new QLabel(tr( "<b>Eliminate</b>" ),settings); | 24 | QLabel* eliminate_label=new QLabel(tr( "<b>Eliminate</b>" ),settings); |
24 | eliminate_label->setGeometry(50,40,50,20); | 25 | eliminate_label->setGeometry(50,40,50,20); |
25 | eliminate=new QSpinBox(0,6,1,settings); | 26 | eliminate=new QSpinBox(0,6,1,settings); |
26 | eliminate->setGeometry(100,40,40,20); | 27 | eliminate->setGeometry(100,40,40,20); |
27 | QPushButton* eliminatehelp=new QPushButton(tr( "?" ),settings); | 28 | QPushButton* eliminatehelp=new QPushButton(tr( "?" ),settings); |
28 | eliminatehelp->setGeometry(140,40,20,20); | 29 | eliminatehelp->setGeometry(140,40,20,20); |
29 | connect(eliminatehelp,SIGNAL(pressed()),this,SLOT(eliminatehelp_pressed())); | 30 | connect(eliminatehelp,SIGNAL(pressed()),this,SLOT(eliminatehelp_pressed())); |
30 | connect(eliminatehelp,SIGNAL(released()),this,SLOT(eliminatehelp_released())); | 31 | connect(eliminatehelp,SIGNAL(released()),this,SLOT(eliminatehelp_released())); |
31 | 32 | ||
32 | QLabel* expose_label=new QLabel(tr( "<b>Expose</b>" ),settings); | 33 | QLabel* expose_label=new QLabel(tr( "<b>Expose</b>" ),settings); |
33 | expose_label->setGeometry(50,60,50,20); | 34 | expose_label->setGeometry(50,60,50,20); |
34 | expose=new QSpinBox(0,6,1,settings); | 35 | expose=new QSpinBox(0,6,1,settings); |
35 | expose->setGeometry(100,60,40,20); | 36 | expose->setGeometry(100,60,40,20); |
36 | QPushButton* exposeehelp=new QPushButton(tr( "?" ),settings); | 37 | QPushButton* exposeehelp=new QPushButton(tr( "?" ),settings); |
37 | exposeehelp->setGeometry(140,60,20,20); | 38 | exposeehelp->setGeometry(140,60,20,20); |
38 | connect(exposeehelp,SIGNAL(pressed()),this,SLOT(exposehelp_pressed())); | 39 | connect(exposeehelp,SIGNAL(pressed()),this,SLOT(exposehelp_pressed())); |
39 | connect(exposeehelp,SIGNAL(released()),this,SLOT(exposehelp_released())); | 40 | connect(exposeehelp,SIGNAL(released()),this,SLOT(exposehelp_released())); |
40 | 41 | ||
41 | QLabel* protect_label=new QLabel(tr( "<b>Protect</b>" ),settings); | 42 | QLabel* protect_label=new QLabel(tr( "<b>Protect</b>" ),settings); |
42 | protect_label->setGeometry(50,80,50,20); | 43 | protect_label->setGeometry(50,80,50,20); |
43 | protect=new QSpinBox(0,6,1,settings); | 44 | protect=new QSpinBox(0,6,1,settings); |
44 | protect->setGeometry(100,80,40,20); | 45 | protect->setGeometry(100,80,40,20); |
45 | QPushButton* protecthelp=new QPushButton(tr( "?" ),settings); | 46 | QPushButton* protecthelp=new QPushButton(tr( "?" ),settings); |
46 | protecthelp->setGeometry(140,80,20,20); | 47 | protecthelp->setGeometry(140,80,20,20); |
47 | connect(protecthelp,SIGNAL(pressed()),this,SLOT(protecthelp_pressed())); | 48 | connect(protecthelp,SIGNAL(pressed()),this,SLOT(protecthelp_pressed())); |
48 | connect(protecthelp,SIGNAL(released()),this,SLOT(protecthelp_released())); | 49 | connect(protecthelp,SIGNAL(released()),this,SLOT(protecthelp_released())); |
49 | 50 | ||
50 | QLabel* safe_label=new QLabel(tr( "<b>Safe</b>" ),settings); | 51 | QLabel* safe_label=new QLabel(tr( "<b>Safe</b>" ),settings); |
51 | safe_label->setGeometry(50,100,50,20); | 52 | safe_label->setGeometry(50,100,50,20); |
52 | safe=new QSpinBox(0,6,1,settings); | 53 | safe=new QSpinBox(0,6,1,settings); |
53 | safe->setGeometry(100,100,40,20); | 54 | safe->setGeometry(100,100,40,20); |
54 | QPushButton* safeehelp=new QPushButton(tr( "?" ),settings); | 55 | QPushButton* safeehelp=new QPushButton(tr( "?" ),settings); |
55 | safeehelp->setGeometry(140,100,20,20); | 56 | safeehelp->setGeometry(140,100,20,20); |
56 | connect(safeehelp,SIGNAL(pressed()),this,SLOT(safehelp_pressed())); | 57 | connect(safeehelp,SIGNAL(pressed()),this,SLOT(safehelp_pressed())); |
57 | connect(safeehelp,SIGNAL(released()),this,SLOT(safehelp_released())); | 58 | connect(safeehelp,SIGNAL(released()),this,SLOT(safehelp_released())); |
58 | 59 | ||
59 | QLabel* empty_label=new QLabel(tr( "<b>Empty</b>" ),settings); | 60 | QLabel* empty_label=new QLabel(tr( "<b>Empty</b>" ),settings); |
60 | empty_label->setGeometry(50,120,50,20); | 61 | empty_label->setGeometry(50,120,50,20); |
61 | empty=new QSpinBox(0,6,1,settings); | 62 | empty=new QSpinBox(0,6,1,settings); |
62 | empty->setGeometry(100,120,40,20); | 63 | empty->setGeometry(100,120,40,20); |
63 | QPushButton* emptyhelp=new QPushButton(tr( "?" ),settings); | 64 | QPushButton* emptyhelp=new QPushButton(tr( "?" ),settings); |
64 | emptyhelp->setGeometry(140,120,20,20); | 65 | emptyhelp->setGeometry(140,120,20,20); |
65 | connect(emptyhelp,SIGNAL(pressed()),this,SLOT(emptyhelp_pressed())); | 66 | connect(emptyhelp,SIGNAL(pressed()),this,SLOT(emptyhelp_pressed())); |
66 | connect(emptyhelp,SIGNAL(released()),this,SLOT(emptyhelp_released())); | 67 | connect(emptyhelp,SIGNAL(released()),this,SLOT(emptyhelp_released())); |
67 | 68 | ||
68 | defaultvalues=new QPushButton(tr( "Default Values" ),settings); | 69 | defaultvalues=new QPushButton(tr( "Default Values" ),settings); |
69 | defaultvalues->setGeometry(60,140,90,20); | 70 | defaultvalues->setGeometry(60,140,90,20); |
70 | connect(defaultvalues,SIGNAL(clicked()),this,SLOT(setDefaultValues())); | 71 | connect(defaultvalues,SIGNAL(clicked()),this,SLOT(setDefaultValues())); |
71 | 72 | ||
72 | QGroupBox* helpbox=new QGroupBox(tr( "Help" ),this); | 73 | QGroupBox* helpbox=new QGroupBox(tr( "Help" ),this); |
73 | helpbox->setGeometry(10,185,220,90); | 74 | helpbox->setGeometry(10,185,220,90); |
74 | 75 | ||
75 | help=new QLabel(helpbox); | 76 | help=new QLabel(helpbox); |
76 | help->setGeometry(10,15,200,65); | 77 | help->setGeometry(10,15,200,65); |
77 | 78 | ||
78 | setHelpText(); | 79 | setHelpText(); |
79 | showMaximized(); | 80 | QPEApplication::showDialog( this ); |
80 | } | 81 | } |
81 | 82 | ||
82 | 83 | ||
83 | AI_Dialog::~AI_Dialog() | 84 | AI_Dialog::~AI_Dialog() |
84 | { | 85 | { |
85 | } | 86 | } |
86 | 87 | ||
87 | void AI_Dialog::rescuehelp_pressed() | 88 | void AI_Dialog::rescuehelp_pressed() |
88 | { | 89 | { |
89 | setHelpText("rescue"); | 90 | setHelpText("rescue"); |
90 | } | 91 | } |
91 | 92 | ||
92 | void AI_Dialog::rescuehelp_released() | 93 | void AI_Dialog::rescuehelp_released() |
93 | { | 94 | { |
94 | setHelpText(); | 95 | setHelpText(); |
95 | } | 96 | } |
96 | 97 | ||
97 | void AI_Dialog::eliminatehelp_pressed() | 98 | void AI_Dialog::eliminatehelp_pressed() |
98 | { | 99 | { |
99 | setHelpText("eliminate"); | 100 | setHelpText("eliminate"); |
100 | } | 101 | } |
101 | 102 | ||
102 | void AI_Dialog::eliminatehelp_released() | 103 | void AI_Dialog::eliminatehelp_released() |
103 | { | 104 | { |
104 | setHelpText(); | 105 | setHelpText(); |
105 | } | 106 | } |
106 | 107 | ||
107 | void AI_Dialog::exposehelp_pressed() | 108 | void AI_Dialog::exposehelp_pressed() |
108 | { | 109 | { |
109 | setHelpText("expose"); | 110 | setHelpText("expose"); |
110 | } | 111 | } |
111 | 112 | ||
112 | void AI_Dialog::exposehelp_released() | 113 | void AI_Dialog::exposehelp_released() |
113 | { | 114 | { |
114 | setHelpText(); | 115 | setHelpText(); |
115 | } | 116 | } |
116 | 117 | ||
117 | void AI_Dialog::protecthelp_pressed() | 118 | void AI_Dialog::protecthelp_pressed() |
118 | { | 119 | { |
119 | setHelpText("protect"); | 120 | setHelpText("protect"); |
120 | } | 121 | } |
121 | 122 | ||
122 | void AI_Dialog::protecthelp_released() | 123 | void AI_Dialog::protecthelp_released() |
123 | { | 124 | { |
124 | setHelpText(); | 125 | setHelpText(); |
125 | } | 126 | } |
126 | 127 | ||
127 | void AI_Dialog::safehelp_pressed() | 128 | void AI_Dialog::safehelp_pressed() |
128 | { | 129 | { |
129 | setHelpText("safe"); | 130 | setHelpText("safe"); |
130 | } | 131 | } |
131 | 132 | ||
132 | void AI_Dialog::safehelp_released() | 133 | void AI_Dialog::safehelp_released() |
133 | { | 134 | { |
134 | setHelpText(); | 135 | setHelpText(); |
135 | } | 136 | } |
136 | 137 | ||
137 | void AI_Dialog::emptyhelp_pressed() | 138 | void AI_Dialog::emptyhelp_pressed() |
138 | { | 139 | { |
139 | setHelpText("empty"); | 140 | setHelpText("empty"); |
140 | } | 141 | } |
141 | 142 | ||
142 | void AI_Dialog::emptyhelp_released() | 143 | void AI_Dialog::emptyhelp_released() |
143 | { | 144 | { |
144 | setHelpText(); | 145 | setHelpText(); |
145 | } | 146 | } |
146 | 147 | ||
147 | 148 | ||
148 | 149 | ||
149 | void AI_Dialog::setDefaultValues() | 150 | void AI_Dialog::setDefaultValues() |
150 | { | 151 | { |
151 | rescue->setValue(6); | 152 | rescue->setValue(6); |
152 | eliminate->setValue(4); | 153 | eliminate->setValue(4); |
153 | expose->setValue(1); | 154 | expose->setValue(1); |
154 | protect->setValue(5); | 155 | protect->setValue(5); |
155 | safe->setValue(3); | 156 | safe->setValue(3); |
156 | empty->setValue(2); | 157 | empty->setValue(2); |
157 | } | 158 | } |
158 | 159 | ||
159 | void AI_Dialog::setAISettings(const AISettings& values) | 160 | void AI_Dialog::setAISettings(const AISettings& values) |
160 | { | 161 | { |
161 | rescue->setValue(values.rescue); | 162 | rescue->setValue(values.rescue); |
162 | eliminate->setValue(values.eliminate); | 163 | eliminate->setValue(values.eliminate); |
163 | expose->setValue(values.expose); | 164 | expose->setValue(values.expose); |
164 | protect->setValue(values.protect); | 165 | protect->setValue(values.protect); |
165 | safe->setValue(values.safe); | 166 | safe->setValue(values.safe); |
166 | empty->setValue(values.empty); | 167 | empty->setValue(values.empty); |
167 | } | 168 | } |
168 | 169 | ||
169 | AISettings AI_Dialog::getAISettings() | 170 | AISettings AI_Dialog::getAISettings() |
170 | { | 171 | { |
171 | AISettings ai; | 172 | AISettings ai; |
172 | ai.rescue=rescue->value(); | 173 | ai.rescue=rescue->value(); |
173 | ai.eliminate=eliminate->value(); | 174 | ai.eliminate=eliminate->value(); |
174 | ai.expose=expose->value(); | 175 | ai.expose=expose->value(); |
175 | ai.protect=protect->value(); | 176 | ai.protect=protect->value(); |
diff --git a/noncore/games/backgammon/filedialog.cpp b/noncore/games/backgammon/filedialog.cpp index 6c858a2..a5e71c9 100644 --- a/noncore/games/backgammon/filedialog.cpp +++ b/noncore/games/backgammon/filedialog.cpp | |||
@@ -1,64 +1,65 @@ | |||
1 | #include "filedialog.h" | 1 | #include "filedialog.h" |
2 | 2 | ||
3 | #include <qdir.h> | 3 | #include <qdir.h> |
4 | #include <qfileinfo.h> | 4 | #include <qfileinfo.h> |
5 | #include <qmessagebox.h> | 5 | #include <qmessagebox.h> |
6 | #include <qpixmap.h> | 6 | #include <qpixmap.h> |
7 | #include <qpushbutton.h> | 7 | #include <qpushbutton.h> |
8 | #include <qpe/qpeapplication.h> | 8 | #include <qpe/qpeapplication.h> |
9 | 9 | ||
10 | FileDialog::FileDialog(QWidget* parent,QString header,QString extension,const char* name,bool modal,WFlags f) | 10 | FileDialog::FileDialog(QWidget* parent,QString header,QString extension,const char* name,bool modal,WFlags f) |
11 | :QDialog(parent,name,modal,f) | 11 | :QDialog(parent,name,modal,f) |
12 | { | 12 | { |
13 | setCaption(header); | 13 | setCaption(header); |
14 | ext=extension; | 14 | ext=extension; |
15 | dirselector=new QListView(this); | 15 | dirselector=new QListView(this); |
16 | dirselector->setGeometry(1,10,235,200); | 16 | dirselector->setGeometry(1,10,235,200); |
17 | dirselector->addColumn("Files"); | 17 | dirselector->addColumn("Files"); |
18 | connect(dirselector,SIGNAL(clicked(QListViewItem*)),this,SLOT(selectorclicked(QListViewItem*))); | 18 | connect(dirselector,SIGNAL(clicked(QListViewItem*)),this,SLOT(selectorclicked(QListViewItem*))); |
19 | 19 | ||
20 | getCurrentDir(); | 20 | getCurrentDir(); |
21 | 21 | ||
22 | file_name="user"; | 22 | file_name="user"; |
23 | fileinput=new QLineEdit(file_name,this); | 23 | fileinput=new QLineEdit(file_name,this); |
24 | fileinput->setGeometry(1,220,235,20); | 24 | fileinput->setGeometry(1,220,235,20); |
25 | showMaximized(); | 25 | |
26 | } | 26 | QPEApplication::showDialog( this ); |
27 | 27 | } | |
28 | FileDialog::~FileDialog() | 28 | |
29 | {} | 29 | FileDialog::~FileDialog() |
30 | 30 | {} | |
31 | 31 | ||
32 | void FileDialog::selectorclicked(QListViewItem* entry) | 32 | |
33 | { | 33 | void FileDialog::selectorclicked(QListViewItem* entry) |
34 | if(entry==NULL) | 34 | { |
35 | return; | 35 | if(entry==NULL) |
36 | file_name=entry->text(0); | 36 | return; |
37 | fileinput->setText(file_name); | 37 | file_name=entry->text(0); |
38 | } | 38 | fileinput->setText(file_name); |
39 | 39 | } | |
40 | void FileDialog::getCurrentDir() | 40 | |
41 | { | 41 | void FileDialog::getCurrentDir() |
42 | dirselector->clear(); | 42 | { |
43 | QDir dir(QPEApplication::qpeDir()+"/backgammon"); | 43 | dirselector->clear(); |
44 | dir.setFilter(QDir::Files); | 44 | QDir dir(QPEApplication::qpeDir()+"/backgammon"); |
45 | QFileInfoListIterator it(*(dir.entryInfoList())); | 45 | dir.setFilter(QDir::Files); |
46 | QFileInfo* fi; | 46 | QFileInfoListIterator it(*(dir.entryInfoList())); |
47 | 47 | QFileInfo* fi; | |
48 | int ext_length=ext.length(); | 48 | |
49 | while((fi=it.current())) // go through all file and subdirs | 49 | int ext_length=ext.length(); |
50 | { | 50 | while((fi=it.current())) // go through all file and subdirs |
51 | QString file=fi->fileName(); | 51 | { |
52 | if(file.right(ext_length)==ext && file) | 52 | QString file=fi->fileName(); |
53 | { | 53 | if(file.right(ext_length)==ext && file) |
54 | file=file.left(file.length()-ext_length); | 54 | { |
55 | new QListViewItem(dirselector,file); | 55 | file=file.left(file.length()-ext_length); |
56 | } | 56 | new QListViewItem(dirselector,file); |
57 | ++it; | 57 | } |
58 | } | 58 | ++it; |
59 | } | 59 | } |
60 | 60 | } | |
61 | QString FileDialog::filename() | 61 | |
62 | { | 62 | QString FileDialog::filename() |
63 | return file_name; | 63 | { |
64 | } | 64 | return file_name; |
65 | } | ||
diff --git a/noncore/games/backgammon/playerdialog.cpp b/noncore/games/backgammon/playerdialog.cpp index c16f202..0faf7e2 100644 --- a/noncore/games/backgammon/playerdialog.cpp +++ b/noncore/games/backgammon/playerdialog.cpp | |||
@@ -1,114 +1,116 @@ | |||
1 | #include "playerdialog.h" | 1 | #include "playerdialog.h" |
2 | 2 | ||
3 | #include <qgroupbox.h> | 3 | #include <qgroupbox.h> |
4 | 4 | ||
5 | #include <qpe/qpeapplication.h> | ||
6 | |||
5 | PlayerDialog::PlayerDialog(QWidget* parent,const char* name,bool modal,WFlags f) | 7 | PlayerDialog::PlayerDialog(QWidget* parent,const char* name,bool modal,WFlags f) |
6 | :QDialog(parent,name,modal,f) | 8 | :QDialog(parent,name,modal,f) |
7 | { | 9 | { |
8 | auto2=false; | 10 | auto2=false; |
9 | auto2=true; | 11 | auto2=true; |
10 | setCaption("Player Settings"); | 12 | setCaption("Player Settings"); |
11 | 13 | ||
12 | QGroupBox* player1_box=new QGroupBox("Player 1",this); | 14 | QGroupBox* player1_box=new QGroupBox("Player 1",this); |
13 | player1_box->setGeometry(10,30,220,60); | 15 | player1_box->setGeometry(10,30,220,60); |
14 | 16 | ||
15 | manual_button1=new QRadioButton("Human",player1_box); | 17 | manual_button1=new QRadioButton("Human",player1_box); |
16 | connect(manual_button1,SIGNAL(clicked()),this,SLOT(button_manual1())); | 18 | connect(manual_button1,SIGNAL(clicked()),this,SLOT(button_manual1())); |
17 | manual_button1->setGeometry(10,20,100,20); | 19 | manual_button1->setGeometry(10,20,100,20); |
18 | auto_button1=new QRadioButton("Computer",player1_box); | 20 | auto_button1=new QRadioButton("Computer",player1_box); |
19 | connect(auto_button1,SIGNAL(clicked()),this,SLOT(button_auto1())); | 21 | connect(auto_button1,SIGNAL(clicked()),this,SLOT(button_auto1())); |
20 | auto_button1->setGeometry(110,20,100,20); | 22 | auto_button1->setGeometry(110,20,100,20); |
21 | button1_state(auto1); | 23 | button1_state(auto1); |
22 | 24 | ||
23 | QGroupBox* player2_box=new QGroupBox("Player 2",this); | 25 | QGroupBox* player2_box=new QGroupBox("Player 2",this); |
24 | player2_box->setGeometry(10,150,220,60); | 26 | player2_box->setGeometry(10,150,220,60); |
25 | 27 | ||
26 | manual_button2=new QRadioButton("Human",player2_box); | 28 | manual_button2=new QRadioButton("Human",player2_box); |
27 | connect(manual_button2,SIGNAL(clicked()),this,SLOT(button_manual2())); | 29 | connect(manual_button2,SIGNAL(clicked()),this,SLOT(button_manual2())); |
28 | manual_button2->setGeometry(10,20,100,20); | 30 | manual_button2->setGeometry(10,20,100,20); |
29 | auto_button2=new QRadioButton("Computer",player2_box); | 31 | auto_button2=new QRadioButton("Computer",player2_box); |
30 | connect(auto_button2,SIGNAL(clicked()),this,SLOT(button_auto2())); | 32 | connect(auto_button2,SIGNAL(clicked()),this,SLOT(button_auto2())); |
31 | auto_button2->setGeometry(110,20,100,20); | 33 | auto_button2->setGeometry(110,20,100,20); |
32 | button2_state(auto2); | 34 | button2_state(auto2); |
33 | 35 | ||
34 | showMaximized(); | 36 | QPEApplication::showDialog( this ); |
35 | } | 37 | } |
36 | 38 | ||
37 | PlayerDialog::~PlayerDialog() | 39 | PlayerDialog::~PlayerDialog() |
38 | {} | 40 | {} |
39 | 41 | ||
40 | 42 | ||
41 | void PlayerDialog::button_manual1() | 43 | void PlayerDialog::button_manual1() |
42 | { | 44 | { |
43 | auto1=false; | 45 | auto1=false; |
44 | button1_state(auto1); | 46 | button1_state(auto1); |
45 | } | 47 | } |
46 | 48 | ||
47 | void PlayerDialog::button_auto1() | 49 | void PlayerDialog::button_auto1() |
48 | { | 50 | { |
49 | auto1=true; | 51 | auto1=true; |
50 | button1_state(auto1); | 52 | button1_state(auto1); |
51 | } | 53 | } |
52 | 54 | ||
53 | void PlayerDialog::button_manual2() | 55 | void PlayerDialog::button_manual2() |
54 | { | 56 | { |
55 | auto2=false; | 57 | auto2=false; |
56 | button2_state(auto2); | 58 | button2_state(auto2); |
57 | } | 59 | } |
58 | 60 | ||
59 | void PlayerDialog::button_auto2() | 61 | void PlayerDialog::button_auto2() |
60 | { | 62 | { |
61 | auto2=true; | 63 | auto2=true; |
62 | button2_state(auto2); | 64 | button2_state(auto2); |
63 | } | 65 | } |
64 | 66 | ||
65 | void PlayerDialog::button1_state(bool computer) | 67 | void PlayerDialog::button1_state(bool computer) |
66 | { | 68 | { |
67 | if(computer) | 69 | if(computer) |
68 | { | 70 | { |
69 | manual_button1->setChecked(false); | 71 | manual_button1->setChecked(false); |
70 | auto_button1->setChecked(true); | 72 | auto_button1->setChecked(true); |
71 | } | 73 | } |
72 | else | 74 | else |
73 | { | 75 | { |
74 | manual_button1->setChecked(true); | 76 | manual_button1->setChecked(true); |
75 | auto_button1->setChecked(false); | 77 | auto_button1->setChecked(false); |
76 | } | 78 | } |
77 | } | 79 | } |
78 | 80 | ||
79 | void PlayerDialog::button2_state(bool computer) | 81 | void PlayerDialog::button2_state(bool computer) |
80 | { | 82 | { |
81 | if(computer) | 83 | if(computer) |
82 | { | 84 | { |
83 | manual_button2->setChecked(false); | 85 | manual_button2->setChecked(false); |
84 | auto_button2->setChecked(true); | 86 | auto_button2->setChecked(true); |
85 | } | 87 | } |
86 | else | 88 | else |
87 | { | 89 | { |
88 | manual_button2->setChecked(true); | 90 | manual_button2->setChecked(true); |
89 | auto_button2->setChecked(false); | 91 | auto_button2->setChecked(false); |
90 | } | 92 | } |
91 | } | 93 | } |
92 | 94 | ||
93 | 95 | ||
94 | void PlayerDialog::setAuto1(bool newstate) | 96 | void PlayerDialog::setAuto1(bool newstate) |
95 | { | 97 | { |
96 | auto1=newstate; | 98 | auto1=newstate; |
97 | button1_state(auto1); | 99 | button1_state(auto1); |
98 | } | 100 | } |
99 | 101 | ||
100 | bool PlayerDialog::getAuto1() | 102 | bool PlayerDialog::getAuto1() |
101 | { | 103 | { |
102 | return auto1; | 104 | return auto1; |
103 | } | 105 | } |
104 | 106 | ||
105 | void PlayerDialog::setAuto2(bool newstate) | 107 | void PlayerDialog::setAuto2(bool newstate) |
106 | { | 108 | { |
107 | auto2=newstate; | 109 | auto2=newstate; |
108 | button2_state(auto2); | 110 | button2_state(auto2); |
109 | } | 111 | } |
110 | 112 | ||
111 | bool PlayerDialog::getAuto2() | 113 | bool PlayerDialog::getAuto2() |
112 | { | 114 | { |
113 | return auto2; | 115 | return auto2; |
114 | } | 116 | } |
diff --git a/noncore/games/backgammon/rulesdialog.cpp b/noncore/games/backgammon/rulesdialog.cpp index 85c3db3..5e17eeb 100644 --- a/noncore/games/backgammon/rulesdialog.cpp +++ b/noncore/games/backgammon/rulesdialog.cpp | |||
@@ -1,77 +1,79 @@ | |||
1 | #include "rulesdialog.h" | 1 | #include "rulesdialog.h" |
2 | 2 | ||
3 | #include <qgroupbox.h> | 3 | #include <qgroupbox.h> |
4 | #include <qlabel.h> | 4 | #include <qlabel.h> |
5 | 5 | ||
6 | #include <qpe/qpeapplication.h> | ||
7 | |||
6 | RulesDialog::RulesDialog(QWidget* parent,const char* name,bool modal,WFlags f) | 8 | RulesDialog::RulesDialog(QWidget* parent,const char* name,bool modal,WFlags f) |
7 | : QDialog(parent,name,modal,f) | 9 | : QDialog(parent,name,modal,f) |
8 | { | 10 | { |
9 | setCaption("Rules Configuration"); | 11 | setCaption("Rules Configuration"); |
10 | QLabel* header=new QLabel("<b>Change the game rules here</b>",this); | 12 | QLabel* header=new QLabel("<b>Change the game rules here</b>",this); |
11 | header->setGeometry(10,10,200,20); | 13 | header->setGeometry(10,10,200,20); |
12 | 14 | ||
13 | // | 15 | // |
14 | QGroupBox* pieces_out_box=new QGroupBox("Movement",this); | 16 | QGroupBox* pieces_out_box=new QGroupBox("Movement",this); |
15 | pieces_out_box->setGeometry(10,10,220,120); | 17 | pieces_out_box->setGeometry(10,10,220,120); |
16 | 18 | ||
17 | pieces_out=new QCheckBox("Don't care about others",pieces_out_box); | 19 | pieces_out=new QCheckBox("Don't care about others",pieces_out_box); |
18 | pieces_out->setGeometry(10,20,200,20); | 20 | pieces_out->setGeometry(10,20,200,20); |
19 | connect(pieces_out,SIGNAL(clicked()),this,SLOT(pieces_out_clicked())); | 21 | connect(pieces_out,SIGNAL(clicked()),this,SLOT(pieces_out_clicked())); |
20 | 22 | ||
21 | QLabel* pieces_out_help=new QLabel("allow movement of the pieses\neven if there are pieces knocked\nout by the opponent",pieces_out_box); | 23 | QLabel* pieces_out_help=new QLabel("allow movement of the pieses\neven if there are pieces knocked\nout by the opponent",pieces_out_box); |
22 | pieces_out_help->setGeometry(10,40,200,60); | 24 | pieces_out_help->setGeometry(10,40,200,60); |
23 | 25 | ||
24 | // | 26 | // |
25 | QGroupBox* nice_dice_box=new QGroupBox("Dice",this); | 27 | QGroupBox* nice_dice_box=new QGroupBox("Dice",this); |
26 | nice_dice_box->setGeometry(10,140,220,120); | 28 | nice_dice_box->setGeometry(10,140,220,120); |
27 | 29 | ||
28 | nice_dice=new QCheckBox("Big dice for small numbers",nice_dice_box); | 30 | nice_dice=new QCheckBox("Big dice for small numbers",nice_dice_box); |
29 | nice_dice->setGeometry(10,20,200,20); | 31 | nice_dice->setGeometry(10,20,200,20); |
30 | connect(nice_dice,SIGNAL(clicked()),this,SLOT(nice_dice_clicked())); | 32 | connect(nice_dice,SIGNAL(clicked()),this,SLOT(nice_dice_clicked())); |
31 | 33 | ||
32 | QLabel* nice_dice_help=new QLabel("allow to rescue pieces with dice\nvalues graeter than the distance\nto the players endzone.",nice_dice_box); | 34 | QLabel* nice_dice_help=new QLabel("allow to rescue pieces with dice\nvalues graeter than the distance\nto the players endzone.",nice_dice_box); |
33 | nice_dice_help->setGeometry(10,40,200,60); | 35 | nice_dice_help->setGeometry(10,40,200,60); |
34 | 36 | ||
35 | showMaximized(); | 37 | QPEApplication::showDialog( this ); |
36 | } | 38 | } |
37 | 39 | ||
38 | 40 | ||
39 | RulesDialog::~RulesDialog() | 41 | RulesDialog::~RulesDialog() |
40 | { | 42 | { |
41 | } | 43 | } |
42 | 44 | ||
43 | void RulesDialog::pieces_out_clicked() | 45 | void RulesDialog::pieces_out_clicked() |
44 | { | 46 | { |
45 | if(pieces_out->isChecked()) | 47 | if(pieces_out->isChecked()) |
46 | rules.move_with_pieces_out=true; | 48 | rules.move_with_pieces_out=true; |
47 | else | 49 | else |
48 | rules.move_with_pieces_out=false; | 50 | rules.move_with_pieces_out=false; |
49 | } | 51 | } |
50 | 52 | ||
51 | void RulesDialog::nice_dice_clicked() | 53 | void RulesDialog::nice_dice_clicked() |
52 | { | 54 | { |
53 | if(nice_dice->isChecked()) | 55 | if(nice_dice->isChecked()) |
54 | rules.generous_dice=true; | 56 | rules.generous_dice=true; |
55 | else | 57 | else |
56 | rules.generous_dice=false; | 58 | rules.generous_dice=false; |
57 | } | 59 | } |
58 | 60 | ||
59 | void RulesDialog::setRules(const Rules& new_rules) | 61 | void RulesDialog::setRules(const Rules& new_rules) |
60 | { | 62 | { |
61 | rules=new_rules; | 63 | rules=new_rules; |
62 | if(rules.move_with_pieces_out) | 64 | if(rules.move_with_pieces_out) |
63 | pieces_out->setChecked(true); | 65 | pieces_out->setChecked(true); |
64 | else | 66 | else |
65 | pieces_out->setChecked(false); | 67 | pieces_out->setChecked(false); |
66 | 68 | ||
67 | if(rules.generous_dice) | 69 | if(rules.generous_dice) |
68 | nice_dice->setChecked(true); | 70 | nice_dice->setChecked(true); |
69 | else | 71 | else |
70 | nice_dice->setChecked(false); | 72 | nice_dice->setChecked(false); |
71 | } | 73 | } |
72 | 74 | ||
73 | Rules RulesDialog::getRules() | 75 | Rules RulesDialog::getRules() |
74 | { | 76 | { |
75 | return rules; | 77 | return rules; |
76 | } | 78 | } |
77 | 79 | ||
diff --git a/noncore/games/backgammon/themedialog.cpp b/noncore/games/backgammon/themedialog.cpp index dcb957c..f342381 100644 --- a/noncore/games/backgammon/themedialog.cpp +++ b/noncore/games/backgammon/themedialog.cpp | |||
@@ -1,158 +1,158 @@ | |||
1 | #include "themedialog.h" | 1 | #include "themedialog.h" |
2 | 2 | ||
3 | #include <qdir.h> | 3 | #include <qdir.h> |
4 | #include <qfileinfo.h> | 4 | #include <qfileinfo.h> |
5 | #include <qlabel.h> | 5 | #include <qlabel.h> |
6 | #include <qpushbutton.h> | 6 | #include <qpushbutton.h> |
7 | #include <qpe/qpeapplication.h> | 7 | #include <qpe/qpeapplication.h> |
8 | 8 | ||
9 | 9 | ||
10 | ThemeDialog::ThemeDialog(QWidget* parent,const char* name,bool modal,WFlags f) | 10 | ThemeDialog::ThemeDialog(QWidget* parent,const char* name,bool modal,WFlags f) |
11 | :QDialog(parent,name,modal,f) | 11 | :QDialog(parent,name,modal,f) |
12 | { | 12 | { |
13 | setCaption("Theme Dialog"); | 13 | setCaption("Theme Dialog"); |
14 | QLabel* labelname=new QLabel("name",this); | 14 | QLabel* labelname=new QLabel("name",this); |
15 | labelname->setGeometry(0,5,40,20); | 15 | labelname->setGeometry(0,5,40,20); |
16 | lineName=new QLineEdit("user",this); | 16 | lineName=new QLineEdit("user",this); |
17 | lineName->setGeometry(40,5,195,20); | 17 | lineName->setGeometry(40,5,195,20); |
18 | 18 | ||
19 | QLabel* labelboard=new QLabel("board",this); | 19 | QLabel* labelboard=new QLabel("board",this); |
20 | labelboard->setGeometry(0,30,40,20); | 20 | labelboard->setGeometry(0,30,40,20); |
21 | boxboard=new QComboBox(this,""); | 21 | boxboard=new QComboBox(this,""); |
22 | boxboard->setGeometry(40,30,195,20); | 22 | boxboard->setGeometry(40,30,195,20); |
23 | fillBox("boards",boxboard); | 23 | fillBox("boards",boxboard); |
24 | 24 | ||
25 | QLabel* labelpiecesA=new QLabel("pieces1",this); | 25 | QLabel* labelpiecesA=new QLabel("pieces1",this); |
26 | labelpiecesA->setGeometry(0,70,40,20); | 26 | labelpiecesA->setGeometry(0,70,40,20); |
27 | boxpiecesA=new QComboBox(this); | 27 | boxpiecesA=new QComboBox(this); |
28 | boxpiecesA->setGeometry(40,70,195,20); | 28 | boxpiecesA->setGeometry(40,70,195,20); |
29 | fillBox("pieces",boxpiecesA); | 29 | fillBox("pieces",boxpiecesA); |
30 | 30 | ||
31 | QLabel* labelpiecesB=new QLabel("pieces2",this); | 31 | QLabel* labelpiecesB=new QLabel("pieces2",this); |
32 | labelpiecesB->setGeometry(0,95,40,20); | 32 | labelpiecesB->setGeometry(0,95,40,20); |
33 | boxpiecesB=new QComboBox(this); | 33 | boxpiecesB=new QComboBox(this); |
34 | boxpiecesB->setGeometry(40,95,195,20); | 34 | boxpiecesB->setGeometry(40,95,195,20); |
35 | fillBox("pieces",boxpiecesB); | 35 | fillBox("pieces",boxpiecesB); |
36 | 36 | ||
37 | QLabel* labeldiceA=new QLabel("dice1",this); | 37 | QLabel* labeldiceA=new QLabel("dice1",this); |
38 | labeldiceA->setGeometry(0,135,40,20); | 38 | labeldiceA->setGeometry(0,135,40,20); |
39 | boxdiceA=new QComboBox(this); | 39 | boxdiceA=new QComboBox(this); |
40 | boxdiceA->setGeometry(40,135,195,20); | 40 | boxdiceA->setGeometry(40,135,195,20); |
41 | fillBox("dice",boxdiceA); | 41 | fillBox("dice",boxdiceA); |
42 | 42 | ||
43 | QLabel* labeldiceB=new QLabel("dice2",this); | 43 | QLabel* labeldiceB=new QLabel("dice2",this); |
44 | labeldiceB->setGeometry(0,160,40,20); | 44 | labeldiceB->setGeometry(0,160,40,20); |
45 | boxdiceB=new QComboBox(this); | 45 | boxdiceB=new QComboBox(this); |
46 | boxdiceB->setGeometry(40,160,195,20); | 46 | boxdiceB->setGeometry(40,160,195,20); |
47 | fillBox("dice",boxdiceB); | 47 | fillBox("dice",boxdiceB); |
48 | 48 | ||
49 | QLabel* labelodds=new QLabel("odds",this); | 49 | QLabel* labelodds=new QLabel("odds",this); |
50 | labelodds->setGeometry(0,200,40,20); | 50 | labelodds->setGeometry(0,200,40,20); |
51 | boxodds=new QComboBox(this); | 51 | boxodds=new QComboBox(this); |
52 | boxodds->setGeometry(40,200,195,20); | 52 | boxodds->setGeometry(40,200,195,20); |
53 | fillBox("odds",boxodds); | 53 | fillBox("odds",boxodds); |
54 | boxodds->setEnabled(false); | 54 | boxodds->setEnabled(false); |
55 | 55 | ||
56 | QLabel* labeltable=new QLabel("table",this); | 56 | QLabel* labeltable=new QLabel("table",this); |
57 | labeltable->setGeometry(0,225,40,20); | 57 | labeltable->setGeometry(0,225,40,20); |
58 | boxtable=new QComboBox(this); | 58 | boxtable=new QComboBox(this); |
59 | boxtable->setGeometry(40,225,195,20); | 59 | boxtable->setGeometry(40,225,195,20); |
60 | fillBox("table",boxtable); | 60 | fillBox("table",boxtable); |
61 | 61 | ||
62 | showMaximized(); | 62 | QPEApplication::showDialog( this ); |
63 | } | 63 | } |
64 | 64 | ||
65 | ThemeDialog::~ThemeDialog() | 65 | ThemeDialog::~ThemeDialog() |
66 | {} | 66 | {} |
67 | 67 | ||
68 | 68 | ||
69 | ImageNames ThemeDialog::getNames() | 69 | ImageNames ThemeDialog::getNames() |
70 | { | 70 | { |
71 | ImageNames names; | 71 | ImageNames names; |
72 | names.theme=lineName->text(); | 72 | names.theme=lineName->text(); |
73 | names.board=boxboard->currentText(); | 73 | names.board=boxboard->currentText(); |
74 | names.pieces1=boxpiecesA->currentText(); | 74 | names.pieces1=boxpiecesA->currentText(); |
75 | names.pieces2=boxpiecesB->currentText(); | 75 | names.pieces2=boxpiecesB->currentText(); |
76 | names.dice1=boxdiceA->currentText(); | 76 | names.dice1=boxdiceA->currentText(); |
77 | names.dice2=boxdiceB->currentText(); | 77 | names.dice2=boxdiceB->currentText(); |
78 | names.odds=boxodds->currentText(); | 78 | names.odds=boxodds->currentText(); |
79 | names.table=boxtable->currentText(); | 79 | names.table=boxtable->currentText(); |
80 | return names; | 80 | return names; |
81 | } | 81 | } |
82 | 82 | ||
83 | void ThemeDialog::setCurrent(const ImageNames& current) | 83 | void ThemeDialog::setCurrent(const ImageNames& current) |
84 | { | 84 | { |
85 | int a=0; | 85 | int a=0; |
86 | lineName->setText(current.theme); | 86 | lineName->setText(current.theme); |
87 | for(a=0;a<boxboard->count();a++) | 87 | for(a=0;a<boxboard->count();a++) |
88 | { | 88 | { |
89 | if(boxboard->text(a)==current.board) | 89 | if(boxboard->text(a)==current.board) |
90 | { | 90 | { |
91 | boxboard->setCurrentItem(a); | 91 | boxboard->setCurrentItem(a); |
92 | break; | 92 | break; |
93 | } | 93 | } |
94 | } | 94 | } |
95 | for(a=0;a<boxpiecesA->count();a++) | 95 | for(a=0;a<boxpiecesA->count();a++) |
96 | { | 96 | { |
97 | if(boxpiecesA->text(a)==current.pieces1) | 97 | if(boxpiecesA->text(a)==current.pieces1) |
98 | { | 98 | { |
99 | boxpiecesA->setCurrentItem(a); | 99 | boxpiecesA->setCurrentItem(a); |
100 | break; | 100 | break; |
101 | } | 101 | } |
102 | } | 102 | } |
103 | for(a=0;a<boxpiecesB->count();a++) | 103 | for(a=0;a<boxpiecesB->count();a++) |
104 | { | 104 | { |
105 | if(boxpiecesB->text(a)==current.pieces2) | 105 | if(boxpiecesB->text(a)==current.pieces2) |
106 | { | 106 | { |
107 | boxpiecesB->setCurrentItem(a); | 107 | boxpiecesB->setCurrentItem(a); |
108 | break; | 108 | break; |
109 | } | 109 | } |
110 | } | 110 | } |
111 | for(a=0;a<boxdiceA->count();a++) | 111 | for(a=0;a<boxdiceA->count();a++) |
112 | { | 112 | { |
113 | if(boxdiceA->text(a)==current.dice1) | 113 | if(boxdiceA->text(a)==current.dice1) |
114 | { | 114 | { |
115 | boxdiceA->setCurrentItem(a); | 115 | boxdiceA->setCurrentItem(a); |
116 | break; | 116 | break; |
117 | } | 117 | } |
118 | } | 118 | } |
119 | for(a=0;a<boxdiceB->count();a++) | 119 | for(a=0;a<boxdiceB->count();a++) |
120 | { | 120 | { |
121 | if(boxdiceB->text(a)==current.dice2) | 121 | if(boxdiceB->text(a)==current.dice2) |
122 | { | 122 | { |
123 | boxdiceB->setCurrentItem(a); | 123 | boxdiceB->setCurrentItem(a); |
124 | break; | 124 | break; |
125 | } | 125 | } |
126 | } | 126 | } |
127 | for(a=0;a<boxodds->count();a++) | 127 | for(a=0;a<boxodds->count();a++) |
128 | { | 128 | { |
129 | if(boxodds->text(a)==current.odds) | 129 | if(boxodds->text(a)==current.odds) |
130 | { | 130 | { |
131 | boxodds->setCurrentItem(a); | 131 | boxodds->setCurrentItem(a); |
132 | break; | 132 | break; |
133 | } | 133 | } |
134 | } | 134 | } |
135 | for(a=0;a<boxtable->count();a++) | 135 | for(a=0;a<boxtable->count();a++) |
136 | { | 136 | { |
137 | if(boxtable->text(a)==current.table) | 137 | if(boxtable->text(a)==current.table) |
138 | { | 138 | { |
139 | boxtable->setCurrentItem(a); | 139 | boxtable->setCurrentItem(a); |
140 | break; | 140 | break; |
141 | } | 141 | } |
142 | } | 142 | } |
143 | } | 143 | } |
144 | 144 | ||
145 | void ThemeDialog::fillBox(QString dirname,QComboBox* thebox) | 145 | void ThemeDialog::fillBox(QString dirname,QComboBox* thebox) |
146 | { | 146 | { |
147 | thebox->clear(); | 147 | thebox->clear(); |
148 | QDir dir(QPEApplication::qpeDir()+"/pics/backgammon/"+dirname); | 148 | QDir dir(QPEApplication::qpeDir()+"/pics/backgammon/"+dirname); |
149 | dir.setFilter(QDir::Dirs | QDir::Files); | 149 | dir.setFilter(QDir::Dirs | QDir::Files); |
150 | QFileInfoListIterator it(*(dir.entryInfoList())); | 150 | QFileInfoListIterator it(*(dir.entryInfoList())); |
151 | QFileInfo* fi; | 151 | QFileInfo* fi; |
152 | 152 | ||
153 | while((fi=it.current())) // go through all file and subdirs | 153 | while((fi=it.current())) // go through all file and subdirs |
154 | { | 154 | { |
155 | QString file=fi->fileName(); | 155 | QString file=fi->fileName(); |
156 | if(file.right(4)==".png") | 156 | if(file.right(4)==".png") |
157 | { | 157 | { |
158 | thebox->insertItem(file.left(file.find(".png"))); | 158 | thebox->insertItem(file.left(file.find(".png"))); |
diff --git a/noncore/games/sfcave/helpwindow.cpp b/noncore/games/sfcave/helpwindow.cpp index c920312..544e237 100644 --- a/noncore/games/sfcave/helpwindow.cpp +++ b/noncore/games/sfcave/helpwindow.cpp | |||
@@ -1,79 +1,81 @@ | |||
1 | /*************************************************************************** | 1 | /*************************************************************************** |
2 | helpwindow.cpp - description | 2 | helpwindow.cpp - description |
3 | ------------------- | 3 | ------------------- |
4 | begin : Sun Sep 8 2002 | 4 | begin : Sun Sep 8 2002 |
5 | copyright : (C) 2002 by Andy Qua | 5 | copyright : (C) 2002 by Andy Qua |
6 | email : andy.qua@blueyonder.co.uk | 6 | email : andy.qua@blueyonder.co.uk |
7 | ***************************************************************************/ | 7 | ***************************************************************************/ |
8 | 8 | ||
9 | /*************************************************************************** | 9 | /*************************************************************************** |
10 | * * | 10 | * * |
11 | * This program is free software; you can redistribute it and/or modify * | 11 | * This program is free software; you can redistribute it and/or modify * |
12 | * it under the terms of the GNU General Public License as published by * | 12 | * it under the terms of the GNU General Public License as published by * |
13 | * the Free Software Foundation; either version 2 of the License, or * | 13 | * the Free Software Foundation; either version 2 of the License, or * |
14 | * (at your option) any later version. * | 14 | * (at your option) any later version. * |
15 | * * | 15 | * * |
16 | ***************************************************************************/ | 16 | ***************************************************************************/ |
17 | 17 | ||
18 | #include <qwidget.h> | 18 | #include <qwidget.h> |
19 | #include <qlayout.h> | 19 | #include <qlayout.h> |
20 | #include <qstring.h> | 20 | #include <qstring.h> |
21 | #include <qtextview.h> | 21 | #include <qtextview.h> |
22 | 22 | ||
23 | #include <qpe/qpeapplication.h> | ||
24 | |||
23 | #include "helpwindow.h" | 25 | #include "helpwindow.h" |
24 | 26 | ||
25 | 27 | ||
26 | #define HELP_TEXT \ | 28 | #define HELP_TEXT \ |
27 | "<qt><h1>SFCave Help</h1><p> " \ | 29 | "<qt><h1>SFCave Help</h1><p> " \ |
28 | "SFCave is a flying game for the Zaurus.<br><br> " \ | 30 | "SFCave is a flying game for the Zaurus.<br><br> " \ |
29 | "The aim is to stay alive for as long as possible and get the highest score " \ | 31 | "The aim is to stay alive for as long as possible and get the highest score " \ |
30 | "you can.<br><br>" \ | 32 | "you can.<br><br>" \ |
31 | "There are three game types currently - SFCave, Gates, and Fly.<br>" \ | 33 | "There are three game types currently - SFCave, Gates, and Fly.<br>" \ |
32 | "<b>SFCave</b> is a remake of the classic SFCave game - fly through the " \ | 34 | "<b>SFCave</b> is a remake of the classic SFCave game - fly through the " \ |
33 | "cavern avoiding all the blocks that just happen to be hanging in " \ | 35 | "cavern avoiding all the blocks that just happen to be hanging in " \ |
34 | "midair<br><br>" \ | 36 | "midair<br><br>" \ |
35 | "<b>Gates</b> is similar to SFCave but instead you must fly through the " \ | 37 | "<b>Gates</b> is similar to SFCave but instead you must fly through the " \ |
36 | "without crashing.<br><br>" \ | 38 | "without crashing.<br><br>" \ |
37 | "<b>Fly</b> is somewhat different to SFCave and above. Instead, you have " \ | 39 | "<b>Fly</b> is somewhat different to SFCave and above. Instead, you have " \ |
38 | "are flying in the open air above a scrolling landscape, and the aim is to " \ | 40 | "are flying in the open air above a scrolling landscape, and the aim is to " \ |
39 | "hug the ground - the closer to the land you fly the more points " \ | 41 | "hug the ground - the closer to the land you fly the more points " \ |
40 | "scored.<br><br><br>" \ | 42 | "scored.<br><br><br>" \ |
41 | "Basic instruction - Press <b>Up</B> or <b>Down</b> on the circle pad to " \ | 43 | "Basic instruction - Press <b>Up</B> or <b>Down</b> on the circle pad to " \ |
42 | "start a new game, press the middle of the pad to apply thrust (makes you " \ | 44 | "start a new game, press the middle of the pad to apply thrust (makes you " \ |
43 | "go up), and release the pad to remove thrust and drop down.<br><br>" \ | 45 | "go up), and release the pad to remove thrust and drop down.<br><br>" \ |
44 | "Also, if playing the Fly game, you can press z to toggle the display " \ | 46 | "Also, if playing the Fly game, you can press z to toggle the display " \ |
45 | "of the scoring zones. This will display 4 red lines at varying heights " \ | 47 | "of the scoring zones. This will display 4 red lines at varying heights " \ |
46 | "above the landscape - if your ship falls into this zone, point are scored. " \ | 48 | "above the landscape - if your ship falls into this zone, point are scored. " \ |
47 | "The closer to the landscape you get the more points you get.<br><br>" \ | 49 | "The closer to the landscape you get the more points you get.<br><br>" \ |
48 | "In addition, SFCave has replays - save and load too so you can show off to all " \ | 50 | "In addition, SFCave has replays - save and load too so you can show off to all " \ |
49 | "your friends (or vice versa). Currently, this is in its infancy but will improve.<br>" \ | 51 | "your friends (or vice versa). Currently, this is in its infancy but will improve.<br>" \ |
50 | "To use, once you have crashed, press 'r' to replay the last game.<br>" \ | 52 | "To use, once you have crashed, press 'r' to replay the last game.<br>" \ |
51 | "To save the replay press 's'.<br>" \ | 53 | "To save the replay press 's'.<br>" \ |
52 | "To load a saved replay press 'l' (after you've crashed at least once).<br><br>" \ | 54 | "To load a saved replay press 'l' (after you've crashed at least once).<br><br>" \ |
53 | "Replays are currently saved to your home directory in a file called sfcave.replay." \ | 55 | "Replays are currently saved to your home directory in a file called sfcave.replay." \ |
54 | "This file can be copied and given to others as long as it it put in their home directory.<br><br>" \ | 56 | "This file can be copied and given to others as long as it it put in their home directory.<br><br>" \ |
55 | "Have lots of fun.<br>" \ | 57 | "Have lots of fun.<br>" \ |
56 | "Andy" \ | 58 | "Andy" \ |
57 | "</p></qt>" | 59 | "</p></qt>" |
58 | 60 | ||
59 | 61 | ||
60 | HelpWindow::HelpWindow( QWidget *parent, const char *name, bool modal, WFlags flags ) | 62 | HelpWindow::HelpWindow( QWidget *parent, const char *name, bool modal, WFlags flags ) |
61 | : QDialog( parent, name, modal, flags ) | 63 | : QDialog( parent, name, modal, flags ) |
62 | { | 64 | { |
63 | // resize( 230, 280 ); | 65 | // resize( 230, 280 ); |
64 | 66 | ||
65 | setCaption( "Help for SFCave" ); | 67 | setCaption( "Help for SFCave" ); |
66 | 68 | ||
67 | QVBoxLayout *layout = new QVBoxLayout( this ); | 69 | QVBoxLayout *layout = new QVBoxLayout( this ); |
68 | QString text = HELP_TEXT;; | 70 | QString text = HELP_TEXT;; |
69 | QTextView *view = new QTextView( text, 0, this, "view" ); | 71 | QTextView *view = new QTextView( text, 0, this, "view" ); |
70 | layout->insertSpacing( -1, 5 ); | 72 | layout->insertSpacing( -1, 5 ); |
71 | layout->insertWidget( -1, view ); | 73 | layout->insertWidget( -1, view ); |
72 | layout->insertSpacing( -1, 5 ); | 74 | layout->insertSpacing( -1, 5 ); |
73 | 75 | ||
74 | showMaximized(); | 76 | QPEApplication::showDialog( this ); |
75 | } | 77 | } |
76 | 78 | ||
77 | HelpWindow::~HelpWindow() | 79 | HelpWindow::~HelpWindow() |
78 | { | 80 | { |
79 | } | 81 | } |
diff --git a/noncore/games/tetrix/ohighscoredlg.cpp b/noncore/games/tetrix/ohighscoredlg.cpp index cf0dcf7..7581f51 100644 --- a/noncore/games/tetrix/ohighscoredlg.cpp +++ b/noncore/games/tetrix/ohighscoredlg.cpp | |||
@@ -1,199 +1,200 @@ | |||
1 | /*************************************************************************** | 1 | /*************************************************************************** |
2 | begin : January 2003 | 2 | begin : January 2003 |
3 | copyright : ( C ) 2003 by Carsten Niehaus | 3 | copyright : ( C ) 2003 by Carsten Niehaus |
4 | email : cniehaus@handhelds.org | 4 | email : cniehaus@handhelds.org |
5 | **************************************************************************/ | 5 | **************************************************************************/ |
6 | 6 | ||
7 | /*************************************************************************** | 7 | /*************************************************************************** |
8 | * * | 8 | * * |
9 | * This program is free software; you can redistribute it and/or modify * | 9 | * This program is free software; you can redistribute it and/or modify * |
10 | * it under the terms of the GNU General Public License as published by * | 10 | * it under the terms of the GNU General Public License as published by * |
11 | * the Free Software Foundation; either version 2 of the License, or * | 11 | * the Free Software Foundation; either version 2 of the License, or * |
12 | * ( at your option ) any later version. * | 12 | * ( at your option ) any later version. * |
13 | * * | 13 | * * |
14 | **************************************************************************/ | 14 | **************************************************************************/ |
15 | 15 | ||
16 | #include <qdialog.h> | 16 | #include <qdialog.h> |
17 | #include <qpe/config.h> | 17 | #include <qpe/config.h> |
18 | #include <qlayout.h> | 18 | #include <qlayout.h> |
19 | #include <qpe/config.h> | 19 | #include <qpe/config.h> |
20 | #include <qpe/qpeapplication.h> | ||
20 | 21 | ||
21 | #include <qstring.h> | 22 | #include <qstring.h> |
22 | #include <qhbox.h> | 23 | #include <qhbox.h> |
23 | #include <qvbox.h> | 24 | #include <qvbox.h> |
24 | #include <qlabel.h> | 25 | #include <qlabel.h> |
25 | #include <qlistview.h> | 26 | #include <qlistview.h> |
26 | #include <qlineedit.h> | 27 | #include <qlineedit.h> |
27 | 28 | ||
28 | #include "ohighscoredlg.h" | 29 | #include "ohighscoredlg.h" |
29 | 30 | ||
30 | OHighscore::OHighscore( int score , int playerLevel ) | 31 | OHighscore::OHighscore( int score , int playerLevel ) |
31 | { | 32 | { |
32 | pLevel = playerLevel; | 33 | pLevel = playerLevel; |
33 | getList(); | 34 | getList(); |
34 | checkIfItIsANewhighscore( score ); | 35 | checkIfItIsANewhighscore( score ); |
35 | } | 36 | } |
36 | 37 | ||
37 | OHighscore::~OHighscore() | 38 | OHighscore::~OHighscore() |
38 | { | 39 | { |
39 | std::list<t_playerData*>::iterator deleteIterator = playerData.begin(); | 40 | std::list<t_playerData*>::iterator deleteIterator = playerData.begin(); |
40 | for ( ; deleteIterator != playerData.end() ; deleteIterator++ ) | 41 | for ( ; deleteIterator != playerData.end() ; deleteIterator++ ) |
41 | { | 42 | { |
42 | delete ( *deleteIterator ); | 43 | delete ( *deleteIterator ); |
43 | } | 44 | } |
44 | } | 45 | } |
45 | 46 | ||
46 | void OHighscore::getList() | 47 | void OHighscore::getList() |
47 | { | 48 | { |
48 | Config cfg ( "tetrix" ); | 49 | Config cfg ( "tetrix" ); |
49 | cfg.setGroup( QString::number( 1 ) ); | 50 | cfg.setGroup( QString::number( 1 ) ); |
50 | lowest = cfg.readNumEntry( "Points" ); | 51 | lowest = cfg.readNumEntry( "Points" ); |
51 | playerData.clear(); | 52 | playerData.clear(); |
52 | 53 | ||
53 | int rest = 1;//for the filling up later | 54 | int rest = 1;//for the filling up later |
54 | 55 | ||
55 | for ( int i = 1 ; i < 11 ; i++ ) | 56 | for ( int i = 1 ; i < 11 ; i++ ) |
56 | { | 57 | { |
57 | if ( cfg.hasGroup( QString::number( i ) ) ) | 58 | if ( cfg.hasGroup( QString::number( i ) ) ) |
58 | { | 59 | { |
59 | cfg.setGroup( QString::number( i ) ); | 60 | cfg.setGroup( QString::number( i ) ); |
60 | int temp = cfg.readNumEntry( "Points" ); | 61 | int temp = cfg.readNumEntry( "Points" ); |
61 | 62 | ||
62 | t_playerData *pPlayerData = new t_playerData; | 63 | t_playerData *pPlayerData = new t_playerData; |
63 | pPlayerData->sName = cfg.readEntry( "Name" ); | 64 | pPlayerData->sName = cfg.readEntry( "Name" ); |
64 | pPlayerData->points = temp; | 65 | pPlayerData->points = temp; |
65 | pPlayerData->level = cfg.readNumEntry( "Level" ); | 66 | pPlayerData->level = cfg.readNumEntry( "Level" ); |
66 | 67 | ||
67 | playerData.push_back( pPlayerData ); | 68 | playerData.push_back( pPlayerData ); |
68 | 69 | ||
69 | if ( (temp < lowest) ) lowest = temp; | 70 | if ( (temp < lowest) ) lowest = temp; |
70 | rest++; | 71 | rest++; |
71 | } | 72 | } |
72 | } | 73 | } |
73 | 74 | ||
74 | //now I fill up the rest of the list | 75 | //now I fill up the rest of the list |
75 | if ( rest < 11 ) //only go in this loop if there are less than | 76 | if ( rest < 11 ) //only go in this loop if there are less than |
76 | //10 highscoreentries | 77 | //10 highscoreentries |
77 | { | 78 | { |
78 | lowest = 0; | 79 | lowest = 0; |
79 | for ( ; rest < 11 ; rest++ ) | 80 | for ( ; rest < 11 ; rest++ ) |
80 | { | 81 | { |
81 | t_playerData *pPlayerData = new t_playerData; | 82 | t_playerData *pPlayerData = new t_playerData; |
82 | pPlayerData->sName = tr( "empty"); | 83 | pPlayerData->sName = tr( "empty"); |
83 | pPlayerData->points = 0; | 84 | pPlayerData->points = 0; |
84 | pPlayerData->level = 0; | 85 | pPlayerData->level = 0; |
85 | 86 | ||
86 | playerData.push_back( pPlayerData ); | 87 | playerData.push_back( pPlayerData ); |
87 | } | 88 | } |
88 | } | 89 | } |
89 | 90 | ||
90 | } | 91 | } |
91 | 92 | ||
92 | void OHighscore::checkIfItIsANewhighscore( int points) | 93 | void OHighscore::checkIfItIsANewhighscore( int points) |
93 | { | 94 | { |
94 | if ( points > lowest ) | 95 | if ( points > lowest ) |
95 | isNewhighscore = true; | 96 | isNewhighscore = true; |
96 | else | 97 | else |
97 | isNewhighscore = false; | 98 | isNewhighscore = false; |
98 | } | 99 | } |
99 | 100 | ||
100 | void OHighscore::insertData( QString name , int punkte , int playerLevel ) | 101 | void OHighscore::insertData( QString name , int punkte , int playerLevel ) |
101 | { | 102 | { |
102 | Config cfg ( "tetrix" ); | 103 | Config cfg ( "tetrix" ); |
103 | int entryNumber = 1; | 104 | int entryNumber = 1; |
104 | std::list<t_playerData*>::iterator insertIterator = playerData.begin(); | 105 | std::list<t_playerData*>::iterator insertIterator = playerData.begin(); |
105 | while ( insertIterator != playerData.end() ) | 106 | while ( insertIterator != playerData.end() ) |
106 | { | 107 | { |
107 | if ( punkte > ( *insertIterator )->points ) | 108 | if ( punkte > ( *insertIterator )->points ) |
108 | { | 109 | { |
109 | t_playerData* temp = new t_playerData; | 110 | t_playerData* temp = new t_playerData; |
110 | temp->sName = name; | 111 | temp->sName = name; |
111 | temp->points = punkte; | 112 | temp->points = punkte; |
112 | temp->level = playerLevel; | 113 | temp->level = playerLevel; |
113 | playerData.insert( insertIterator , temp ); | 114 | playerData.insert( insertIterator , temp ); |
114 | 115 | ||
115 | //now we have to delete the last entry | 116 | //now we have to delete the last entry |
116 | insertIterator = playerData.end(); | 117 | insertIterator = playerData.end(); |
117 | insertIterator--; | 118 | insertIterator--; |
118 | //X delete *insertIterator; //memleak? | 119 | //X delete *insertIterator; //memleak? |
119 | playerData.erase( insertIterator ); | 120 | playerData.erase( insertIterator ); |
120 | 121 | ||
121 | ///////////////////////////////////////// | 122 | ///////////////////////////////////////// |
122 | //this block just rewrites the highscore | 123 | //this block just rewrites the highscore |
123 | insertIterator = playerData.begin(); | 124 | insertIterator = playerData.begin(); |
124 | while ( insertIterator != playerData.end() ) | 125 | while ( insertIterator != playerData.end() ) |
125 | { | 126 | { |
126 | cfg.setGroup( QString::number( entryNumber ) ); | 127 | cfg.setGroup( QString::number( entryNumber ) ); |
127 | cfg.writeEntry( "Name" , ( *insertIterator )->sName ); | 128 | cfg.writeEntry( "Name" , ( *insertIterator )->sName ); |
128 | cfg.writeEntry( "Points" , ( *insertIterator )->points ); | 129 | cfg.writeEntry( "Points" , ( *insertIterator )->points ); |
129 | cfg.writeEntry( "Level" , ( *insertIterator )->level ); | 130 | cfg.writeEntry( "Level" , ( *insertIterator )->level ); |
130 | entryNumber++; | 131 | entryNumber++; |
131 | insertIterator++; | 132 | insertIterator++; |
132 | } | 133 | } |
133 | //////////////////////////////////////// | 134 | //////////////////////////////////////// |
134 | 135 | ||
135 | return; | 136 | return; |
136 | } | 137 | } |
137 | insertIterator++; | 138 | insertIterator++; |
138 | } | 139 | } |
139 | } | 140 | } |
140 | 141 | ||
141 | QString OHighscore::getName() | 142 | QString OHighscore::getName() |
142 | { | 143 | { |
143 | QString name; | 144 | QString name; |
144 | QDialog *d = new QDialog ( this, 0, true ); | 145 | QDialog *d = new QDialog ( this, 0, true ); |
145 | d->setCaption( tr( "Enter your name!" )); | 146 | d->setCaption( tr( "Enter your name!" )); |
146 | QLineEdit *ed = new QLineEdit ( d ); | 147 | QLineEdit *ed = new QLineEdit ( d ); |
147 | ( new QVBoxLayout ( d, 3, 3 ))->addWidget ( ed ); | 148 | ( new QVBoxLayout ( d, 3, 3 ))->addWidget ( ed ); |
148 | ed->setFocus ( ); | 149 | ed->setFocus ( ); |
149 | 150 | ||
150 | if ( d->exec() == QDialog::Accepted ) { | 151 | if ( d->exec() == QDialog::Accepted ) { |
151 | name = ed->text(); | 152 | name = ed->text(); |
152 | } | 153 | } |
153 | //delete d; | 154 | //delete d; |
154 | return name; | 155 | return name; |
155 | } | 156 | } |
156 | 157 | ||
157 | OHighscoreDialog::OHighscoreDialog(OHighscore *highscore, QWidget *parent, const char *name, bool modal) : QDialog(parent, name, modal) | 158 | OHighscoreDialog::OHighscoreDialog(OHighscore *highscore, QWidget *parent, const char *name, bool modal) : QDialog(parent, name, modal) |
158 | { | 159 | { |
159 | hs_ = highscore; | 160 | hs_ = highscore; |
160 | setCaption( tr( "Highscores" ) ); | 161 | setCaption( tr( "Highscores" ) ); |
161 | vbox_layout = new QVBoxLayout( this, 4 , 4 ); | 162 | vbox_layout = new QVBoxLayout( this, 4 , 4 ); |
162 | list = new QListView( this ); | 163 | list = new QListView( this ); |
163 | list->setSorting( -1 ); | 164 | list->setSorting( -1 ); |
164 | list->addColumn( tr( "#" )); | 165 | list->addColumn( tr( "#" )); |
165 | list->addColumn( tr( "Name" )); | 166 | list->addColumn( tr( "Name" )); |
166 | list->addColumn( tr( "Points" )); | 167 | list->addColumn( tr( "Points" )); |
167 | list->addColumn( tr( "Level" )); | 168 | list->addColumn( tr( "Level" )); |
168 | 169 | ||
169 | createHighscoreListView(); | 170 | createHighscoreListView(); |
170 | 171 | ||
171 | vbox_layout->addWidget( list ); | 172 | vbox_layout->addWidget( list ); |
172 | showMaximized(); | 173 | QPEApplication::showDialog( this ); |
173 | } | 174 | } |
174 | 175 | ||
175 | void OHighscoreDialog::createHighscoreListView() | 176 | void OHighscoreDialog::createHighscoreListView() |
176 | { | 177 | { |
177 | int pos = 10; | 178 | int pos = 10; |
178 | int points_ = 0; | 179 | int points_ = 0; |
179 | int level_ = 0; | 180 | int level_ = 0; |
180 | 181 | ||
181 | std::list<t_playerData*>::reverse_iterator iListe = hs_->playerData.rbegin(); | 182 | std::list<t_playerData*>::reverse_iterator iListe = hs_->playerData.rbegin(); |
182 | 183 | ||
183 | for ( ; iListe != hs_->playerData.rend() ; ++iListe ) | 184 | for ( ; iListe != hs_->playerData.rend() ; ++iListe ) |
184 | { | 185 | { |
185 | QListViewItem *item = new QListViewItem( list ); | 186 | QListViewItem *item = new QListViewItem( list ); |
186 | item->setText( 0 , QString::number( pos ) ); //number | 187 | item->setText( 0 , QString::number( pos ) ); //number |
187 | item->setText( 1 , ( *iListe )->sName ); //name | 188 | item->setText( 1 , ( *iListe )->sName ); //name |
188 | if ( ( *iListe )->points == -1 ) | 189 | if ( ( *iListe )->points == -1 ) |
189 | points_ = 0; | 190 | points_ = 0; |
190 | else points_ = ( *iListe )->points; | 191 | else points_ = ( *iListe )->points; |
191 | if ( ( *iListe )->level == -1 ) | 192 | if ( ( *iListe )->level == -1 ) |
192 | level_ = 0; | 193 | level_ = 0; |
193 | else level_ = ( *iListe )->level; | 194 | else level_ = ( *iListe )->level; |
194 | item->setText( 2 , QString::number( points_ ) ); //points | 195 | item->setText( 2 , QString::number( points_ ) ); //points |
195 | item->setText( 3 , QString::number( level_ ) ); //level | 196 | item->setText( 3 , QString::number( level_ ) ); //level |
196 | pos--; | 197 | pos--; |
197 | } | 198 | } |
198 | } | 199 | } |
199 | 200 | ||
diff --git a/noncore/games/tictac/tictac.cpp b/noncore/games/tictac/tictac.cpp index 4954ba4..9de3b58 100644 --- a/noncore/games/tictac/tictac.cpp +++ b/noncore/games/tictac/tictac.cpp | |||
@@ -1,162 +1,162 @@ | |||
1 | /**************************************************************************** | 1 | /**************************************************************************** |
2 | ** tictac.cpp,v 1.3.8.1 2003/08/29 06:50:40 harlekin Exp | 2 | ** tictac.cpp,v 1.3.8.1 2003/08/29 06:50:40 harlekin Exp |
3 | ** | 3 | ** |
4 | ** Copyright (C) 1992-2000 Trolltech AS. All rights reserved. | 4 | ** Copyright (C) 1992-2000 Trolltech AS. All rights reserved. |
5 | ** | 5 | ** |
6 | ** This file is part of an example program for Qt. This example | 6 | ** This file is part of an example program for Qt. This example |
7 | ** program may be used, distributed and modified without limitation. | 7 | ** program may be used, distributed and modified without limitation. |
8 | ** | 8 | ** |
9 | *****************************************************************************/ | 9 | *****************************************************************************/ |
10 | 10 | ||
11 | #include "tictac.h" | 11 | #include "tictac.h" |
12 | #include <qpe/qpeapplication.h> | 12 | #include <qpe/qpeapplication.h> |
13 | #include <qpainter.h> | 13 | #include <qpainter.h> |
14 | #include <qdrawutil.h> | 14 | #include <qdrawutil.h> |
15 | #include <qcombobox.h> | 15 | #include <qcombobox.h> |
16 | #include <qcheckbox.h> | 16 | #include <qcheckbox.h> |
17 | #include <qlabel.h> | 17 | #include <qlabel.h> |
18 | #include <qlayout.h> | 18 | #include <qlayout.h> |
19 | #include <stdlib.h> // rand() function | 19 | #include <stdlib.h> // rand() function |
20 | #include <qdatetime.h> // seed for rand() | 20 | #include <qdatetime.h> // seed for rand() |
21 | #include <qstringlist.h> //needed for proper internationalization | 21 | #include <qstringlist.h> //needed for proper internationalization |
22 | 22 | ||
23 | 23 | ||
24 | //*************************************************************************** | 24 | //*************************************************************************** |
25 | //* TicTacButton member functions | 25 | //* TicTacButton member functions |
26 | //*************************************************************************** | 26 | //*************************************************************************** |
27 | 27 | ||
28 | // -------------------------------------------------------------------------- | 28 | // -------------------------------------------------------------------------- |
29 | // Creates a TicTacButton | 29 | // Creates a TicTacButton |
30 | // | 30 | // |
31 | 31 | ||
32 | TicTacButton::TicTacButton( QWidget *parent ) : QPushButton( parent ) | 32 | TicTacButton::TicTacButton( QWidget *parent ) : QPushButton( parent ) |
33 | { | 33 | { |
34 | t = Blank; // initial type | 34 | t = Blank; // initial type |
35 | } | 35 | } |
36 | 36 | ||
37 | // -------------------------------------------------------------------------- | 37 | // -------------------------------------------------------------------------- |
38 | // Paints TicTacButton | 38 | // Paints TicTacButton |
39 | // | 39 | // |
40 | 40 | ||
41 | void TicTacButton::drawButtonLabel( QPainter *p ) | 41 | void TicTacButton::drawButtonLabel( QPainter *p ) |
42 | { | 42 | { |
43 | QRect r = rect(); | 43 | QRect r = rect(); |
44 | p->setPen( QPen( white,2 ) ); // set fat pen | 44 | p->setPen( QPen( white,2 ) ); // set fat pen |
45 | if ( t == Circle ) { | 45 | if ( t == Circle ) { |
46 | p->drawEllipse( r.left()+4, r.top()+4, r.width()-8, r.height()-8 ); | 46 | p->drawEllipse( r.left()+4, r.top()+4, r.width()-8, r.height()-8 ); |
47 | } else if ( t == Cross ) { // draw cross | 47 | } else if ( t == Cross ) { // draw cross |
48 | p->drawLine( r.topLeft() +QPoint(4,4), r.bottomRight()-QPoint(4,4)); | 48 | p->drawLine( r.topLeft() +QPoint(4,4), r.bottomRight()-QPoint(4,4)); |
49 | p->drawLine( r.bottomLeft()+QPoint(4,-4),r.topRight() -QPoint(4,-4)); | 49 | p->drawLine( r.bottomLeft()+QPoint(4,-4),r.topRight() -QPoint(4,-4)); |
50 | } | 50 | } |
51 | } | 51 | } |
52 | 52 | ||
53 | 53 | ||
54 | //*************************************************************************** | 54 | //*************************************************************************** |
55 | //* TicTacGameBoard member functions | 55 | //* TicTacGameBoard member functions |
56 | //*************************************************************************** | 56 | //*************************************************************************** |
57 | 57 | ||
58 | // -------------------------------------------------------------------------- | 58 | // -------------------------------------------------------------------------- |
59 | // Creates a game board with N x N buttons and connects the "clicked()" | 59 | // Creates a game board with N x N buttons and connects the "clicked()" |
60 | // signal of all buttons to the "buttonClicked()" slot. | 60 | // signal of all buttons to the "buttonClicked()" slot. |
61 | // | 61 | // |
62 | 62 | ||
63 | TicTacGameBoard::TicTacGameBoard( int n, QWidget *parent, const char *name ) | 63 | TicTacGameBoard::TicTacGameBoard( int n, QWidget *parent, const char *name ) |
64 | : QWidget( parent, name ) | 64 | : QWidget( parent, name ) |
65 | { | 65 | { |
66 | showMaximized(); | 66 | QPEApplication::showWidget( this ); |
67 | st = Init; // initial state | 67 | st = Init; // initial state |
68 | nBoard = n; | 68 | nBoard = n; |
69 | n *= n; // make square | 69 | n *= n; // make square |
70 | comp_starts = FALSE; // human starts | 70 | comp_starts = FALSE; // human starts |
71 | buttons = new TicTacButtons(n); // create real buttons | 71 | buttons = new TicTacButtons(n); // create real buttons |
72 | btArray = new TicTacArray(n); // create button model | 72 | btArray = new TicTacArray(n); // create button model |
73 | QGridLayout * grid = new QGridLayout( this, 3, 3, 4 ); | 73 | QGridLayout * grid = new QGridLayout( this, 3, 3, 4 ); |
74 | QPalette p( blue ); | 74 | QPalette p( blue ); |
75 | for ( int i=0; i<n; i++ ) { // create and connect buttons | 75 | for ( int i=0; i<n; i++ ) { // create and connect buttons |
76 | TicTacButton *ttb = new TicTacButton( this ); | 76 | TicTacButton *ttb = new TicTacButton( this ); |
77 | ttb->setPalette( p ); | 77 | ttb->setPalette( p ); |
78 | ttb->setEnabled( FALSE ); | 78 | ttb->setEnabled( FALSE ); |
79 | connect( ttb, SIGNAL(clicked()), SLOT(buttonClicked()) ); | 79 | connect( ttb, SIGNAL(clicked()), SLOT(buttonClicked()) ); |
80 | grid->addWidget( ttb, i%3, i/3 ); | 80 | grid->addWidget( ttb, i%3, i/3 ); |
81 | buttons->insert( i, ttb ); | 81 | buttons->insert( i, ttb ); |
82 | btArray->at(i) = TicTacButton::Blank; // initial button type | 82 | btArray->at(i) = TicTacButton::Blank; // initial button type |
83 | } | 83 | } |
84 | QTime t = QTime::currentTime(); // set random seed | 84 | QTime t = QTime::currentTime(); // set random seed |
85 | srand( t.hour()*12+t.minute()*60+t.second()*60 ); | 85 | srand( t.hour()*12+t.minute()*60+t.second()*60 ); |
86 | } | 86 | } |
87 | 87 | ||
88 | TicTacGameBoard::~TicTacGameBoard() | 88 | TicTacGameBoard::~TicTacGameBoard() |
89 | { | 89 | { |
90 | delete buttons; | 90 | delete buttons; |
91 | delete btArray; | 91 | delete btArray; |
92 | } | 92 | } |
93 | 93 | ||
94 | 94 | ||
95 | // -------------------------------------------------------------------------- | 95 | // -------------------------------------------------------------------------- |
96 | // TicTacGameBoard::computerStarts( bool v ) | 96 | // TicTacGameBoard::computerStarts( bool v ) |
97 | // | 97 | // |
98 | // Computer starts if v=TRUE. The human starts by default. | 98 | // Computer starts if v=TRUE. The human starts by default. |
99 | // | 99 | // |
100 | 100 | ||
101 | void TicTacGameBoard::computerStarts( bool v ) | 101 | void TicTacGameBoard::computerStarts( bool v ) |
102 | { | 102 | { |
103 | comp_starts = v; | 103 | comp_starts = v; |
104 | } | 104 | } |
105 | 105 | ||
106 | 106 | ||
107 | // -------------------------------------------------------------------------- | 107 | // -------------------------------------------------------------------------- |
108 | // TicTacGameBoard::newGame() | 108 | // TicTacGameBoard::newGame() |
109 | // | 109 | // |
110 | // Clears the game board and prepares for a new game | 110 | // Clears the game board and prepares for a new game |
111 | // | 111 | // |
112 | 112 | ||
113 | void TicTacGameBoard::newGame() | 113 | void TicTacGameBoard::newGame() |
114 | { | 114 | { |
115 | st = HumansTurn; | 115 | st = HumansTurn; |
116 | for ( int i=0; i<nBoard*nBoard; i++ ) | 116 | for ( int i=0; i<nBoard*nBoard; i++ ) |
117 | btArray->at(i) = TicTacButton::Blank; | 117 | btArray->at(i) = TicTacButton::Blank; |
118 | if ( comp_starts ) | 118 | if ( comp_starts ) |
119 | computerMove(); | 119 | computerMove(); |
120 | else | 120 | else |
121 | updateButtons(); | 121 | updateButtons(); |
122 | } | 122 | } |
123 | 123 | ||
124 | 124 | ||
125 | // -------------------------------------------------------------------------- | 125 | // -------------------------------------------------------------------------- |
126 | // TicTacGameBoard::buttonClicked() - SLOT | 126 | // TicTacGameBoard::buttonClicked() - SLOT |
127 | // | 127 | // |
128 | // This slot is activated when a TicTacButton emits the signal "clicked()", | 128 | // This slot is activated when a TicTacButton emits the signal "clicked()", |
129 | // i.e. the user has clicked on a TicTacButton. | 129 | // i.e. the user has clicked on a TicTacButton. |
130 | // | 130 | // |
131 | 131 | ||
132 | void TicTacGameBoard::buttonClicked() | 132 | void TicTacGameBoard::buttonClicked() |
133 | { | 133 | { |
134 | if ( st != HumansTurn ) // not ready | 134 | if ( st != HumansTurn ) // not ready |
135 | return; | 135 | return; |
136 | int i = buttons->findRef( (TicTacButton*)sender() ); | 136 | int i = buttons->findRef( (TicTacButton*)sender() ); |
137 | TicTacButton *b = buttons->at(i); // get piece that was pressed | 137 | TicTacButton *b = buttons->at(i); // get piece that was pressed |
138 | if ( b->type() == TicTacButton::Blank ) { // empty piece? | 138 | if ( b->type() == TicTacButton::Blank ) { // empty piece? |
139 | btArray->at(i) = TicTacButton::Circle; | 139 | btArray->at(i) = TicTacButton::Circle; |
140 | updateButtons(); | 140 | updateButtons(); |
141 | if ( checkBoard( btArray ) == 0 ) // not a winning move? | 141 | if ( checkBoard( btArray ) == 0 ) // not a winning move? |
142 | computerMove(); | 142 | computerMove(); |
143 | int s = checkBoard( btArray ); | 143 | int s = checkBoard( btArray ); |
144 | if ( s ) { // any winners yet? | 144 | if ( s ) { // any winners yet? |
145 | st = s == TicTacButton::Circle ? HumanWon : ComputerWon; | 145 | st = s == TicTacButton::Circle ? HumanWon : ComputerWon; |
146 | emit finished(); | 146 | emit finished(); |
147 | } | 147 | } |
148 | } | 148 | } |
149 | } | 149 | } |
150 | 150 | ||
151 | 151 | ||
152 | // -------------------------------------------------------------------------- | 152 | // -------------------------------------------------------------------------- |
153 | // TicTacGameBoard::updateButtons() | 153 | // TicTacGameBoard::updateButtons() |
154 | // | 154 | // |
155 | // Updates all buttons that have changed state | 155 | // Updates all buttons that have changed state |
156 | // | 156 | // |
157 | 157 | ||
158 | void TicTacGameBoard::updateButtons() | 158 | void TicTacGameBoard::updateButtons() |
159 | { | 159 | { |
160 | for ( int i=0; i<nBoard*nBoard; i++ ) { | 160 | for ( int i=0; i<nBoard*nBoard; i++ ) { |
161 | if ( buttons->at(i)->type() != btArray->at(i) ) | 161 | if ( buttons->at(i)->type() != btArray->at(i) ) |
162 | buttons->at(i)->setType( (TicTacButton::Type)btArray->at(i) ); | 162 | buttons->at(i)->setType( (TicTacButton::Type)btArray->at(i) ); |
@@ -240,143 +240,143 @@ int TicTacGameBoard::checkBoard( TicTacArray *a ) | |||
240 | void TicTacGameBoard::computerMove() | 240 | void TicTacGameBoard::computerMove() |
241 | { | 241 | { |
242 | int numButtons = nBoard*nBoard; | 242 | int numButtons = nBoard*nBoard; |
243 | int *altv = new int[numButtons]; // buttons alternatives | 243 | int *altv = new int[numButtons]; // buttons alternatives |
244 | int altc = 0; | 244 | int altc = 0; |
245 | int stopHuman = -1; | 245 | int stopHuman = -1; |
246 | TicTacArray a = btArray->copy(); | 246 | TicTacArray a = btArray->copy(); |
247 | int i; | 247 | int i; |
248 | for ( i=0; i<numButtons; i++ ) { // try all positions | 248 | for ( i=0; i<numButtons; i++ ) { // try all positions |
249 | if ( a[i] != TicTacButton::Blank ) // already a piece there | 249 | if ( a[i] != TicTacButton::Blank ) // already a piece there |
250 | continue; | 250 | continue; |
251 | a[i] = TicTacButton::Cross; // test if computer wins | 251 | a[i] = TicTacButton::Cross; // test if computer wins |
252 | if ( checkBoard(&a) == a[i] ) { // computer will win | 252 | if ( checkBoard(&a) == a[i] ) { // computer will win |
253 | st = ComputerWon; | 253 | st = ComputerWon; |
254 | stopHuman = -1; | 254 | stopHuman = -1; |
255 | break; | 255 | break; |
256 | } | 256 | } |
257 | a[i] = TicTacButton::Circle; // test if human wins | 257 | a[i] = TicTacButton::Circle; // test if human wins |
258 | if ( checkBoard(&a) == a[i] ) { // oops... | 258 | if ( checkBoard(&a) == a[i] ) { // oops... |
259 | stopHuman = i; // remember position | 259 | stopHuman = i; // remember position |
260 | a[i] = TicTacButton::Blank; // restore button | 260 | a[i] = TicTacButton::Blank; // restore button |
261 | continue; // computer still might win | 261 | continue; // computer still might win |
262 | } | 262 | } |
263 | a[i] = TicTacButton::Blank; // restore button | 263 | a[i] = TicTacButton::Blank; // restore button |
264 | altv[altc++] = i; // remember alternative | 264 | altv[altc++] = i; // remember alternative |
265 | } | 265 | } |
266 | if ( stopHuman >= 0 ) // must stop human from winning | 266 | if ( stopHuman >= 0 ) // must stop human from winning |
267 | a[stopHuman] = TicTacButton::Cross; | 267 | a[stopHuman] = TicTacButton::Cross; |
268 | else if ( i == numButtons ) { // tried all alternatives | 268 | else if ( i == numButtons ) { // tried all alternatives |
269 | if ( altc > 0 ) // set random piece | 269 | if ( altc > 0 ) // set random piece |
270 | a[altv[rand()%(altc--)]] = TicTacButton::Cross; | 270 | a[altv[rand()%(altc--)]] = TicTacButton::Cross; |
271 | if ( altc == 0 ) { // no more blanks | 271 | if ( altc == 0 ) { // no more blanks |
272 | st = NobodyWon; | 272 | st = NobodyWon; |
273 | emit finished(); | 273 | emit finished(); |
274 | } | 274 | } |
275 | } | 275 | } |
276 | *btArray = a; // update model | 276 | *btArray = a; // update model |
277 | updateButtons(); // update buttons | 277 | updateButtons(); // update buttons |
278 | delete[] altv; | 278 | delete[] altv; |
279 | } | 279 | } |
280 | 280 | ||
281 | 281 | ||
282 | //*************************************************************************** | 282 | //*************************************************************************** |
283 | //* TicTacToe member functions | 283 | //* TicTacToe member functions |
284 | //*************************************************************************** | 284 | //*************************************************************************** |
285 | 285 | ||
286 | // -------------------------------------------------------------------------- | 286 | // -------------------------------------------------------------------------- |
287 | // Creates a game widget with a game board and two push buttons, and connects | 287 | // Creates a game widget with a game board and two push buttons, and connects |
288 | // signals of child widgets to slots. | 288 | // signals of child widgets to slots. |
289 | // | 289 | // |
290 | 290 | ||
291 | TicTacToe::TicTacToe( QWidget *parent, const char *name, WFlags fl ) | 291 | TicTacToe::TicTacToe( QWidget *parent, const char *name, WFlags fl ) |
292 | : QWidget( parent, name, fl ) | 292 | : QWidget( parent, name, fl ) |
293 | { | 293 | { |
294 | QVBoxLayout * l = new QVBoxLayout( this, 6 ); | 294 | QVBoxLayout * l = new QVBoxLayout( this, 6 ); |
295 | 295 | ||
296 | // Create a message label | 296 | // Create a message label |
297 | boardSize = 3; | 297 | boardSize = 3; |
298 | 298 | ||
299 | message = new QLabel( this ); | 299 | message = new QLabel( this ); |
300 | message->setFrameStyle( QFrame::WinPanel | QFrame::Sunken ); | 300 | message->setFrameStyle( QFrame::WinPanel | QFrame::Sunken ); |
301 | message->setAlignment( AlignCenter ); | 301 | message->setAlignment( AlignCenter ); |
302 | l->addWidget( message ); | 302 | l->addWidget( message ); |
303 | 303 | ||
304 | // Create the game board and connect the signal finished() to this | 304 | // Create the game board and connect the signal finished() to this |
305 | // gameOver() slot | 305 | // gameOver() slot |
306 | 306 | ||
307 | board = new TicTacGameBoard( boardSize, this ); | 307 | board = new TicTacGameBoard( boardSize, this ); |
308 | connect( board, SIGNAL(finished()), SLOT(gameOver()) ); | 308 | connect( board, SIGNAL(finished()), SLOT(gameOver()) ); |
309 | l->addWidget( board ); | 309 | l->addWidget( board ); |
310 | 310 | ||
311 | // Create a horizontal frame line | 311 | // Create a horizontal frame line |
312 | 312 | ||
313 | QFrame *line = new QFrame( this ); | 313 | QFrame *line = new QFrame( this ); |
314 | line->setFrameStyle( QFrame::HLine | QFrame::Sunken ); | 314 | line->setFrameStyle( QFrame::HLine | QFrame::Sunken ); |
315 | l->addWidget( line ); | 315 | l->addWidget( line ); |
316 | 316 | ||
317 | // Create the combo box for deciding who should start, and | 317 | // Create the combo box for deciding who should start, and |
318 | // connect its clicked() signals to the buttonClicked() slot | 318 | // connect its clicked() signals to the buttonClicked() slot |
319 | 319 | ||
320 | whoStarts = new QComboBox( this ); | 320 | whoStarts = new QComboBox( this ); |
321 | whoStarts->insertItem( tr( "Computer starts" ) ); | 321 | whoStarts->insertItem( tr( "Computer starts" ) ); |
322 | whoStarts->insertItem( tr( "Human starts" ) ); | 322 | whoStarts->insertItem( tr( "Human starts" ) ); |
323 | l->addWidget( whoStarts ); | 323 | l->addWidget( whoStarts ); |
324 | 324 | ||
325 | // Create the push buttons and connect their clicked() signals | 325 | // Create the push buttons and connect their clicked() signals |
326 | // to this right slots. | 326 | // to this right slots. |
327 | 327 | ||
328 | newGame = new QPushButton( tr( "Play!" ), this ); | 328 | newGame = new QPushButton( tr( "Play!" ), this ); |
329 | connect( newGame, SIGNAL(clicked()), SLOT(newGameClicked()) ); | 329 | connect( newGame, SIGNAL(clicked()), SLOT(newGameClicked()) ); |
330 | quit = new QPushButton( tr( "Quit" ), this ); | 330 | quit = new QPushButton( tr( "Quit" ), this ); |
331 | connect( quit, SIGNAL(clicked()), qApp, SLOT(quit()) ); | 331 | connect( quit, SIGNAL(clicked()), qApp, SLOT(quit()) ); |
332 | QHBoxLayout * b = new QHBoxLayout; | 332 | QHBoxLayout * b = new QHBoxLayout; |
333 | l->addLayout( b ); | 333 | l->addLayout( b ); |
334 | b->addWidget( newGame ); | 334 | b->addWidget( newGame ); |
335 | b->addWidget( quit ); | 335 | b->addWidget( quit ); |
336 | showMaximized(); | 336 | QPEApplication::showWidget( this ); |
337 | newState(); | 337 | newState(); |
338 | } | 338 | } |
339 | 339 | ||
340 | 340 | ||
341 | // -------------------------------------------------------------------------- | 341 | // -------------------------------------------------------------------------- |
342 | // TicTacToe::newGameClicked() - SLOT | 342 | // TicTacToe::newGameClicked() - SLOT |
343 | // | 343 | // |
344 | // This slot is activated when the new game button is clicked. | 344 | // This slot is activated when the new game button is clicked. |
345 | // | 345 | // |
346 | 346 | ||
347 | void TicTacToe::newGameClicked() | 347 | void TicTacToe::newGameClicked() |
348 | { | 348 | { |
349 | board->computerStarts( whoStarts->currentItem() == 0 ); | 349 | board->computerStarts( whoStarts->currentItem() == 0 ); |
350 | board->newGame(); | 350 | board->newGame(); |
351 | newState(); | 351 | newState(); |
352 | } | 352 | } |
353 | 353 | ||
354 | 354 | ||
355 | // -------------------------------------------------------------------------- | 355 | // -------------------------------------------------------------------------- |
356 | // TicTacToe::gameOver() - SLOT | 356 | // TicTacToe::gameOver() - SLOT |
357 | // | 357 | // |
358 | // This slot is activated when the TicTacGameBoard emits the signal | 358 | // This slot is activated when the TicTacGameBoard emits the signal |
359 | // "finished()", i.e. when a player has won or when it is a draw. | 359 | // "finished()", i.e. when a player has won or when it is a draw. |
360 | // | 360 | // |
361 | 361 | ||
362 | void TicTacToe::gameOver() | 362 | void TicTacToe::gameOver() |
363 | { | 363 | { |
364 | newState(); // update text box | 364 | newState(); // update text box |
365 | } | 365 | } |
366 | 366 | ||
367 | 367 | ||
368 | // -------------------------------------------------------------------------- | 368 | // -------------------------------------------------------------------------- |
369 | // Updates the message to reflect a new state. | 369 | // Updates the message to reflect a new state. |
370 | // | 370 | // |
371 | 371 | ||
372 | void TicTacToe::newState() | 372 | void TicTacToe::newState() |
373 | { | 373 | { |
374 | QStringList msg; | 374 | QStringList msg; |
375 | msg << tr( "Click Play to start") | 375 | msg << tr( "Click Play to start") |
376 | << tr("Make your move") | 376 | << tr("Make your move") |
377 | << tr("You won!") | 377 | << tr("You won!") |
378 | << tr("Computer won!") | 378 | << tr("Computer won!") |
379 | << tr("It's a draw"); | 379 | << tr("It's a draw"); |
380 | message->setText( msg[board->state()] ); | 380 | message->setText( msg[board->state()] ); |
381 | return; | 381 | return; |
382 | } | 382 | } |