cc68a136 |
1 | NAME PCDR\r |
2 | \r |
3 | #include <eikon.rh>\r |
4 | #include <eikon.rsg>\r |
5 | #include <qikon.rh>\r |
6 | #include <QikCommand.rh>\r |
7 | #include "picodrive.hrh"\r |
8 | \r |
9 | \r |
10 | RESOURCE RSS_SIGNATURE { }\r |
11 | \r |
12 | // Defines the name of the default file the application framework creates.\r |
13 | // This resource must always be the second resource in the resource file.\r |
14 | RESOURCE TBUF { buf = "PicoDrive"; }\r |
15 | \r |
16 | RESOURCE EIK_APP_INFO { }\r |
17 | \r |
18 | \r |
19 | // A view shall use the QIK_VIEW_CONFIGURATIONS resource struct to define which \r |
20 | // UI configurations it supports. Can also use QIK_VIEW_CONFIGURATIONS to setup \r |
21 | // the view to switch layout and command list automatically when changes of UI \r |
22 | // configuration occur. This is done with the view and command_list members of \r |
23 | // the QIK_VIEW_CONFIGURATIONS.\r |
24 | // The application supports the reference UI Configurations that are supported\r |
25 | // in the UIQ 3 SDK. Use the UiqEnv tool, to change the UI Configuration in the\r |
26 | // emulator in order to develop and test the application with varying phone styles.\r |
27 | RESOURCE QIK_VIEW_CONFIGURATIONS r_app_ui_configurations\r |
28 | {\r |
29 | configurations = \r |
30 | {\r |
31 | QIK_VIEW_CONFIGURATION\r |
32 | {\r |
33 | ui_config_mode = KQikPenStyleTouchPortrait;\r |
34 | command_list = r_app_commands;\r |
35 | view = r_app_layout;\r |
36 | },\r |
37 | QIK_VIEW_CONFIGURATION\r |
38 | {\r |
39 | ui_config_mode = KQikPenStyleTouchLandscape;\r |
40 | command_list = r_app_commands;\r |
41 | view = r_app_layout;\r |
42 | },\r |
43 | QIK_VIEW_CONFIGURATION\r |
44 | {\r |
45 | ui_config_mode = KQikSoftkeyStyleTouchPortrait;\r |
46 | command_list = r_app_commands;\r |
47 | view = r_app_layout;\r |
48 | },\r |
49 | QIK_VIEW_CONFIGURATION\r |
50 | {\r |
51 | ui_config_mode = KQikSoftkeyStylePortrait;\r |
52 | command_list = r_app_commands;\r |
53 | view = r_app_layout;\r |
54 | },\r |
55 | QIK_VIEW_CONFIGURATION\r |
56 | {\r |
57 | ui_config_mode = KQikSoftkeyStyleSmallPortrait;\r |
58 | command_list = r_app_commands;\r |
59 | view = r_app_layout;\r |
60 | }\r |
61 | };\r |
62 | }\r |
63 | \r |
64 | // Commands are defined with the QIK_COMMAND_LIST struct, \r |
65 | // commands can also be created in code by instantiating CQikCommand.\r |
66 | // The control command id for debug command is a reserved id from uikon.hrh.\r |
67 | // The id for each command is defined in the .hrh file.\r |
68 | RESOURCE QIK_COMMAND_LIST r_app_commands\r |
69 | {\r |
70 | items = \r |
71 | {\r |
72 | // QIK_COMMAND { id=EEikCmdPicoMain; text="Main"; type=EQikCommandTypeDone; namedGroupLinkId=EEikCmdPicoMain; },\r |
73 | // QIK_COMMAND { id=EEikCmdPicoDebugInfo; text="Debug info"; type=EQikCommandTypeScreen; stateFlags=EQikCmdFlagDebugOnly; },\r |
74 | QIK_COMMAND { id=EEikCmdPicoFrameskip; text="Frameskip"; type=EQikCommandTypeScreen; namedGroupLinkId=EEikCmdPicoFrameskip; },\r |
75 | QIK_COMMAND { id=EEikCmdPicoFrameskipAuto; text="Auto"; type=EQikCommandTypeScreen; namedGroupId=EEikCmdPicoFrameskip;\r |
76 | groupId=EEikCmdPicoFrameskip; stateFlags=EQikCmdFlagRadioStart; },\r |
77 | QIK_COMMAND { id=EEikCmdPicoFrameskip0; text="0"; type=EQikCommandTypeScreen; namedGroupId=EEikCmdPicoFrameskip;\r |
78 | groupId=EEikCmdPicoFrameskip0; stateFlags=EQikCmdFlagRadioMiddle; },\r |
79 | QIK_COMMAND { id=EEikCmdPicoFrameskip1; text="1"; type=EQikCommandTypeScreen; namedGroupId=EEikCmdPicoFrameskip;\r |
80 | groupId=EEikCmdPicoFrameskip0; stateFlags=EQikCmdFlagRadioMiddle; },\r |
81 | QIK_COMMAND { id=EEikCmdPicoFrameskip2; text="2"; type=EQikCommandTypeScreen; namedGroupId=EEikCmdPicoFrameskip;\r |
82 | groupId=EEikCmdPicoFrameskip0; stateFlags=EQikCmdFlagRadioMiddle; },\r |
83 | QIK_COMMAND { id=EEikCmdPicoFrameskip4; text="4"; type=EQikCommandTypeScreen; namedGroupId=EEikCmdPicoFrameskip;\r |
84 | groupId=EEikCmdPicoFrameskip0; stateFlags=EQikCmdFlagRadioMiddle; },\r |
85 | QIK_COMMAND { id=EEikCmdPicoFrameskip8; text="8"; type=EQikCommandTypeScreen; namedGroupId=EEikCmdPicoFrameskip;\r |
86 | groupId=EEikCmdPicoFrameskip0; stateFlags=EQikCmdFlagRadioEnd; },\r |
87 | QIK_COMMAND { id=EEikCmdPicoConfig; text="Configure"; type=EQikCommandTypeScreen; namedGroupLinkId=EEikCmdPicoConfig; },\r |
88 | QIK_COMMAND { id=EEikCmdPicoKeys; text="Keys"; type=EQikCommandTypeScreen; namedGroupId=EEikCmdPicoConfig; },\r |
89 | QIK_COMMAND { id=EEikCmdPicoSettings; text="Settings"; type=EQikCommandTypeScreen; namedGroupId=EEikCmdPicoConfig; },\r |
90 | QIK_COMMAND { id=EEikCmdHelpAbout; text="About"; type=EQikCommandTypeScreen; namedGroupId=EEikCmdPicoConfig; },\r |
91 | \r |
92 | QIK_COMMAND { id=EEikCmdPicoLoadROM; text="Load new ROM"; type=EQikCommandTypeScreen; groupId=EEikCmdPicoResume; },\r |
93 | QIK_COMMAND { id=EEikCmdPicoReset; text="Reset game"; type=EQikCommandTypeScreen; groupId=EEikCmdPicoResume; },\r |
94 | QIK_COMMAND { id=EEikCmdPicoLoadState; text="Load state"; type=EQikCommandTypeScreen; groupId=EEikCmdPicoResume; },\r |
95 | QIK_COMMAND { id=EEikCmdPicoSaveState; text="Save state"; type=EQikCommandTypeScreen; groupId=EEikCmdPicoResume; },\r |
96 | QIK_COMMAND { id=EEikCmdPicoResume; text="Resume game"; type=EQikCommandTypeScreen; groupId=EEikCmdPicoResume; cpfFlags=EQikCpfFlagIsDefault; },\r |
97 | \r |
98 | QIK_COMMAND { id=EEikCmdExit; text="Exit"; type=EQikCommandTypeScreen; groupId=EEikCmdExit; }\r |
99 | };\r |
100 | }\r |
101 | \r |
102 | \r |
103 | // Defines the view by linking to the pages.\r |
104 | RESOURCE QIK_VIEW r_app_layout\r |
105 | {\r |
106 | pages = {};\r |
107 | }\r |
108 | \r |
109 | \r |
110 | /**************************************\r |
111 | *\r |
112 | * config dialog\r |
113 | *\r |
114 | **************************************/\r |
115 | \r |
116 | RESOURCE DIALOG r_pico_config\r |
117 | {\r |
118 | title = "Settings";\r |
119 | buttons = R_EIK_BUTTONS_CANCEL_OK;\r |
120 | flags = EEikDialogFlagWait;\r |
121 | pages = r_pico_config_pages;\r |
122 | }\r |
123 | \r |
124 | RESOURCE ARRAY r_pico_config_pages\r |
125 | {\r |
126 | items = {\r |
127 | PAGE\r |
128 | {\r |
129 | id = ECtlOptPageMain;\r |
130 | text = "Main";\r |
131 | lines = r_pico_config_page_main;\r |
132 | },\r |
133 | PAGE\r |
134 | {\r |
135 | id = ECtlOptPageSound;\r |
136 | text = "Sound";\r |
137 | lines = r_pico_config_page_sound;\r |
138 | },\r |
139 | PAGE\r |
140 | {\r |
141 | id = ECtlOptPageMisc;\r |
142 | text = "Misc";\r |
143 | lines = r_pico_config_page_misc;\r |
144 | }\r |
145 | };\r |
146 | }\r |
147 | \r |
148 | \r |
149 | RESOURCE ARRAY r_pico_config_page_main\r |
150 | {\r |
151 | items = {\r |
152 | DLG_LINE\r |
153 | {\r |
154 | id = ECtlOptRotationLabel;\r |
155 | type = EEikCtLabel;\r |
156 | prompt = "Screen Rotation";\r |
157 | control = LABEL { horiz_align = EEikLabelAlignHLeft; };\r |
158 | },\r |
159 | DLG_LINE\r |
160 | {\r |
161 | id = ECtlOptRotation;\r |
162 | type = EEikCtHorOptionButList;\r |
163 | control = HOROPBUT\r |
164 | {\r |
165 | array_id = r_pico_config_rotation_buttons;\r |
166 | };\r |
167 | },\r |
168 | DLG_LINE\r |
169 | {\r |
170 | id = ECtlOptScreenModeLabel;\r |
171 | type = EEikCtLabel;\r |
172 | prompt = "Screen Mode";\r |
173 | control = LABEL { horiz_align = EEikLabelAlignHLeft; };\r |
174 | },\r |
175 | DLG_LINE\r |
176 | {\r |
177 | id = ECtlOptScreenMode;\r |
178 | type = EEikCtHorOptionButList;\r |
179 | control = HOROPBUT\r |
180 | {\r |
181 | array_id = r_pico_config_screenmode_buttons;\r |
182 | };\r |
183 | },\r |
184 | DLG_LINE\r |
185 | {\r |
186 | id = ECtlOptUseAltRend;\r |
187 | type = EEikCtCheckBox;\r |
188 | prompt = "Fast renderer (inaccurate)";\r |
189 | },\r |
190 | DLG_LINE\r |
191 | {\r |
192 | id = ECtlOptUseAccTiming;\r |
193 | type = EEikCtCheckBox;\r |
194 | prompt = "Accurate timing (slower)";\r |
195 | },\r |
196 | DLG_LINE\r |
197 | {\r |
198 | id = ECtlOptUseAccSprites;\r |
199 | type = EEikCtCheckBox;\r |
200 | prompt = "Accurate sprites (slower)";\r |
201 | },\r |
202 | DLG_LINE\r |
203 | {\r |
204 | id = ECtlOptShowFPS;\r |
205 | type = EEikCtCheckBox;\r |
206 | prompt = "Show FPS";\r |
207 | }\r |
208 | };\r |
209 | }\r |
210 | \r |
211 | \r |
212 | RESOURCE ARRAY r_pico_config_page_sound\r |
213 | {\r |
214 | items = {\r |
215 | DLG_LINE\r |
216 | {\r |
217 | id = ECtlOptEnableSound;\r |
218 | type = EEikCtCheckBox;\r |
219 | prompt = "Enable sound";\r |
220 | },\r |
221 | DLG_LINE\r |
222 | {\r |
223 | id = ECtlOptChipSelLabel;\r |
224 | type = EEikCtLabel;\r |
225 | prompt = "Emulate these sound chips:";\r |
226 | control = LABEL { horiz_align = EEikLabelAlignHLeft; };\r |
227 | },\r |
228 | DLG_LINE\r |
229 | {\r |
230 | id = ECtlOptEmulateZ80;\r |
231 | type = EEikCtCheckBox;\r |
232 | prompt = "Z80";\r |
233 | },\r |
234 | DLG_LINE\r |
235 | {\r |
236 | id = ECtlOptEmulateYM2612;\r |
237 | type = EEikCtCheckBox;\r |
238 | prompt = "YM2612";\r |
239 | },\r |
240 | DLG_LINE\r |
241 | {\r |
242 | id = ECtlOptEmulateSN76496;\r |
243 | type = EEikCtCheckBox;\r |
244 | prompt = "SN76496 (PSG)";\r |
245 | },\r |
246 | DLG_LINE\r |
247 | {\r |
248 | id = ECtlOptSndQLabel;\r |
249 | type = EEikCtLabel;\r |
250 | prompt = "Quality (lowest is fastest)";\r |
251 | control = LABEL { horiz_align = EEikLabelAlignHLeft; };\r |
252 | },\r |
253 | DLG_LINE\r |
254 | {\r |
255 | id = ECtlOptSndQuality;\r |
256 | type = EEikCtChoiceList;\r |
257 | prompt = "";\r |
258 | control = CHOICELIST { array_id = r_pico_config_snd_quality; };\r |
259 | itemflags = EEikDlgItemNonFocusing;\r |
260 | }\r |
261 | };\r |
262 | }\r |
263 | \r |
264 | \r |
265 | RESOURCE ARRAY r_pico_config_page_misc\r |
266 | {\r |
267 | items = {\r |
268 | DLG_LINE\r |
269 | {\r |
270 | id = ECtlOpt6ButtonPad;\r |
271 | type = EEikCtCheckBox;\r |
272 | prompt = "6 button pad";\r |
273 | },\r |
274 | DLG_LINE\r |
275 | {\r |
276 | id = ECtlOptGzipStates;\r |
277 | type = EEikCtCheckBox;\r |
278 | prompt = "gzip save states";\r |
279 | },\r |
280 | DLG_LINE\r |
281 | {\r |
282 | id = ECtlOptUseSRAM;\r |
283 | type = EEikCtCheckBox;\r |
284 | prompt = "Use SRAM saves (.srm)";\r |
285 | },\r |
286 | DLG_LINE\r |
287 | {\r |
288 | id = ECtlOptRegion;\r |
289 | type = EEikCtChoiceList;\r |
290 | prompt = "Region:";\r |
291 | control = CHOICELIST { array_id = r_pico_config_region; };\r |
292 | itemflags = EEikDlgItemNonFocusing;\r |
293 | }\r |
294 | };\r |
295 | }\r |
296 | \r |
297 | \r |
298 | RESOURCE ARRAY r_pico_config_rotation_buttons\r |
299 | {\r |
300 | items = {\r |
301 |