Commit | Line | Data |
---|---|---|
ef79bbde P |
1 | #include "config.h" |
2 | ||
3 | #include <sys/types.h> | |
4 | #include <sys/stat.h> | |
5 | #include <unistd.h> | |
6 | #include <string.h> | |
7 | ||
8 | #include <gdk/gdkkeysyms.h> | |
9 | #include <gtk/gtk.h> | |
10 | ||
11 | #include "callbacks.h" | |
12 | #include "interface.h" | |
13 | #include "support.h" | |
14 | ||
15 | #ifdef ENABLE_NLS | |
16 | #include <libintl.h> | |
17 | #include <locale.h> | |
18 | #define _(x) gettext(x) | |
19 | #else | |
20 | #define _(x) (x) | |
21 | #endif | |
22 | ||
23 | GtkWidget* | |
24 | create_CfgWnd (void) | |
25 | { | |
26 | GtkWidget *CfgWnd; | |
27 | GtkWidget *fixed1; | |
28 | GtkWidget *btnSave; | |
29 | GtkWidget *frmTextures; | |
30 | GtkWidget *fixed3; | |
31 | GtkWidget *edtMaxTex; | |
32 | GtkWidget *label5; | |
33 | GtkWidget *cmbQuality; | |
34 | GList *cmbQuality_items = NULL; | |
35 | GtkWidget *combo_entry2; | |
36 | GtkWidget *label7; | |
37 | GtkWidget *cmbFilter; | |
38 | GList *cmbFilter_items = NULL; | |
39 | GtkWidget *combo_entry3; | |
40 | GtkWidget *label6; | |
41 | GtkWidget *label23; | |
42 | GtkWidget *cmbHiresTex; | |
43 | GList *cmbHiresTex_items = NULL; | |
44 | GtkWidget *combo_entry7; | |
45 | GtkWidget *frmWindow; | |
46 | GtkWidget *fixed2; | |
47 | GtkWidget *edtXSize; | |
48 | GtkWidget *edtYSize; | |
49 | GtkWidget *label2; | |
50 | GtkWidget *label3; | |
51 | GtkWidget *chkKeepRatio; | |
52 | GtkWidget *chkFullScreen; | |
53 | GtkWidget *chkDither; | |
54 | GtkWidget *btnCancel; | |
55 | GtkWidget *frmFPS; | |
56 | GtkWidget *fixed4; | |
57 | GtkWidget *edtFPSlim; | |
58 | GtkWidget *label8; | |
59 | GSList *fixed4_group = NULL; | |
60 | GtkWidget *rdbLimMan; | |
61 | GtkWidget *chkShowFPS; | |
62 | GtkWidget *chkFPSLimit; | |
63 | GtkWidget *rdbLimAuto; | |
64 | GtkWidget *chkFPSSkip; | |
65 | GtkWidget *frmCompat; | |
66 | GtkWidget *fixed5; | |
67 | GtkWidget *chkABlend; | |
68 | GtkWidget *label10; | |
69 | GtkWidget *label9; | |
70 | GtkWidget *label22; | |
71 | GtkWidget *chkOpaque; | |
72 | GtkWidget *chkMaskBit; | |
73 | GtkWidget *cmbOffscreen; | |
74 | GList *cmbOffscreen_items = NULL; | |
75 | GtkWidget *combo_entry4; | |
76 | GtkWidget *cmbFrameTex; | |
77 | GList *cmbFrameTex_items = NULL; | |
78 | GtkWidget *combo_entry5; | |
79 | GtkWidget *cmbFrameAcc; | |
80 | GList *cmbFrameAcc_items = NULL; | |
81 | GtkWidget *combo_entry6; | |
82 | GtkWidget *frmFixes; | |
83 | GtkWidget *fixed7; | |
84 | GtkWidget *chkFix3; | |
85 | GtkWidget *chkFix4; | |
86 | GtkWidget *chkFix5; | |
87 | GtkWidget *chkGameFixes; | |
88 | GtkWidget *chkFix2; | |
89 | GtkWidget *chkFix1; | |
90 | GtkWidget *chkFix7; | |
91 | GtkWidget *chkFix0; | |
92 | GtkWidget *chkFix6; | |
93 | GtkWidget *chkFix8; | |
94 | GtkWidget *chkFix9; | |
95 | GtkWidget *chkFix10; | |
96 | GtkWidget *chkFix11; | |
97 | GtkWidget *chkFix12; | |
98 | GtkWidget *chkFix13; | |
99 | GtkWidget *chkFix14; | |
100 | GtkWidget *chkFix15; | |
101 | GtkWidget *chkFix17; | |
102 | GtkWidget *chkFix16; | |
103 | GtkWidget *frmMisc; | |
104 | GtkWidget *fixed6; | |
105 | GtkWidget *edtScanBlend; | |
106 | GtkWidget *chkScanlines; | |
107 | GtkWidget *label11; | |
108 | GtkWidget *chkBlur; | |
109 | GtkWidget *chkExtensions; | |
110 | GtkWidget *chkAntiA; | |
111 | GtkWidget *chkLinemode; | |
112 | GtkWidget *chkFastMdec; | |
113 | GtkWidget *chk15bitMdec; | |
114 | ||
115 | CfgWnd = gtk_window_new (GTK_WINDOW_TOPLEVEL); | |
116 | gtk_object_set_data (GTK_OBJECT (CfgWnd), "CfgWnd", CfgWnd); | |
117 | gtk_container_set_border_width (GTK_CONTAINER (CfgWnd), 8); | |
118 | gtk_window_set_title (GTK_WINDOW (CfgWnd), _("OpenGL Driver configuration")); | |
119 | gtk_window_set_position (GTK_WINDOW (CfgWnd), GTK_WIN_POS_CENTER); | |
120 | gtk_window_set_modal (GTK_WINDOW (CfgWnd), TRUE); | |
121 | gtk_window_set_policy (GTK_WINDOW (CfgWnd), FALSE, FALSE, FALSE); | |
122 | ||
123 | fixed1 = gtk_fixed_new (); | |
124 | gtk_widget_ref (fixed1); | |
125 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "fixed1", fixed1, | |
126 | (GtkDestroyNotify) gtk_widget_unref); | |
127 | gtk_widget_show (fixed1); | |
128 | gtk_container_add (GTK_CONTAINER (CfgWnd), fixed1); | |
129 | ||
130 | btnSave = gtk_button_new_with_label (_("OK")); | |
131 | gtk_widget_ref (btnSave); | |
132 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "btnSave", btnSave, | |
133 | (GtkDestroyNotify) gtk_widget_unref); | |
134 | gtk_widget_show (btnSave); | |
135 | gtk_fixed_put (GTK_FIXED (fixed1), btnSave, 134, 552); | |
136 | gtk_widget_set_usize (btnSave, 160, 24); | |
137 | ||
138 | frmTextures = gtk_frame_new (_("Textures")); | |
139 | gtk_widget_ref (frmTextures); | |
140 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "frmTextures", frmTextures, | |
141 | (GtkDestroyNotify) gtk_widget_unref); | |
142 | gtk_widget_show (frmTextures); | |
143 | gtk_fixed_put (GTK_FIXED (fixed1), frmTextures, 372, 0); | |
144 | gtk_widget_set_usize (frmTextures, 364, 136); | |
145 | ||
146 | fixed3 = gtk_fixed_new (); | |
147 | gtk_widget_ref (fixed3); | |
148 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "fixed3", fixed3, | |
149 | (GtkDestroyNotify) gtk_widget_unref); | |
150 | gtk_widget_show (fixed3); | |
151 | gtk_container_add (GTK_CONTAINER (frmTextures), fixed3); | |
152 | ||
153 | edtMaxTex = gtk_entry_new (); | |
154 | gtk_widget_ref (edtMaxTex); | |
155 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "edtMaxTex", edtMaxTex, | |
156 | (GtkDestroyNotify) gtk_widget_unref); | |
157 | gtk_widget_show (edtMaxTex); | |
158 | gtk_fixed_put (GTK_FIXED (fixed3), edtMaxTex, 278, 80); | |
159 | gtk_widget_set_usize (edtMaxTex, 66, 24); | |
160 | ||
161 | label5 = gtk_label_new (_("Quality:")); | |
162 | gtk_widget_ref (label5); | |
163 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "label5", label5, | |
164 | (GtkDestroyNotify) gtk_widget_unref); | |
165 | gtk_widget_show (label5); | |
166 | gtk_fixed_put (GTK_FIXED (fixed3), label5, 8, 0); | |
167 | gtk_widget_set_usize (label5, 64, 24); | |
168 | ||
169 | cmbQuality = gtk_combo_new (); | |
170 | gtk_widget_ref (cmbQuality); | |
171 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "cmbQuality", cmbQuality, | |
172 | (GtkDestroyNotify) gtk_widget_unref); | |
173 | gtk_widget_show (cmbQuality); | |
174 | gtk_fixed_put (GTK_FIXED (fixed3), cmbQuality, 80, 0); | |
175 | gtk_widget_set_usize (cmbQuality, 264, 24); | |
176 | gtk_combo_set_value_in_list (GTK_COMBO (cmbQuality), TRUE, FALSE); | |
177 | gtk_combo_set_use_arrows_always (GTK_COMBO (cmbQuality), TRUE); | |
178 | cmbQuality_items = g_list_append (cmbQuality_items, (gpointer) _("0: don't care - Use driver's default textures")); | |
179 | cmbQuality_items = g_list_append (cmbQuality_items, (gpointer) _("1: 4444 - Fast, but less colorful")); | |
180 | cmbQuality_items = g_list_append (cmbQuality_items, (gpointer) _("2: 5551 - Nice colors, bad transparency")); | |
181 | cmbQuality_items = g_list_append (cmbQuality_items, (gpointer) _("3: 8888 - Best colors, more ram needed")); | |
182 | cmbQuality_items = g_list_append (cmbQuality_items, (gpointer) _("4: BGR8888 - Faster on some cards")); | |
183 | gtk_combo_set_popdown_strings (GTK_COMBO (cmbQuality), cmbQuality_items); | |
184 | g_list_free (cmbQuality_items); | |
185 | ||
186 | combo_entry2 = GTK_COMBO (cmbQuality)->entry; | |
187 | gtk_widget_ref (combo_entry2); | |
188 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "combo_entry2", combo_entry2, | |
189 | (GtkDestroyNotify) gtk_widget_unref); | |
190 | gtk_widget_show (combo_entry2); | |
191 | gtk_entry_set_text (GTK_ENTRY (combo_entry2), _("0: don't care - Use driver's default textures")); | |
192 | ||
193 | label7 = gtk_label_new (_("VRam size in MBytes (0..1024, 0=auto):")); | |
194 | gtk_widget_ref (label7); | |
195 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "label7", label7, | |
196 | (GtkDestroyNotify) gtk_widget_unref); | |
197 | gtk_widget_show (label7); | |
198 | gtk_fixed_put (GTK_FIXED (fixed3), label7, 8, 80); | |
199 | gtk_widget_set_usize (label7, 260, 24); | |
200 | ||
201 | cmbFilter = gtk_combo_new (); | |
202 | gtk_widget_ref (cmbFilter); | |
203 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "cmbFilter", cmbFilter, | |
204 | (GtkDestroyNotify) gtk_widget_unref); | |
205 | gtk_widget_show (cmbFilter); | |
206 | gtk_fixed_put (GTK_FIXED (fixed3), cmbFilter, 80, 24); | |
207 | gtk_widget_set_usize (cmbFilter, 264, 24); | |
208 | gtk_combo_set_value_in_list (GTK_COMBO (cmbFilter), TRUE, FALSE); | |
209 | gtk_combo_set_use_arrows_always (GTK_COMBO (cmbFilter), TRUE); | |
210 | cmbFilter_items = g_list_append (cmbFilter_items, (gpointer) _("0: None")); | |
211 | cmbFilter_items = g_list_append (cmbFilter_items, (gpointer) _("1: Standard - Glitches will happen")); | |
212 | cmbFilter_items = g_list_append (cmbFilter_items, (gpointer) _("2: Extended - No black borders")); | |
213 | cmbFilter_items = g_list_append (cmbFilter_items, (gpointer) _("3: Standard without sprites - unfiltered 2D")); | |
214 | cmbFilter_items = g_list_append (cmbFilter_items, (gpointer) _("4: Extended without sprites - unfiltered 2D")); | |
215 | cmbFilter_items = g_list_append (cmbFilter_items, (gpointer) _("5: Standard + smoothed sprites")); | |
216 | cmbFilter_items = g_list_append (cmbFilter_items, (gpointer) _("6: Extended + smoothed sprites")); | |
217 | gtk_combo_set_popdown_strings (GTK_COMBO (cmbFilter), cmbFilter_items); | |
218 | g_list_free (cmbFilter_items); | |
219 | ||
220 | combo_entry3 = GTK_COMBO (cmbFilter)->entry; | |
221 | gtk_widget_ref (combo_entry3); | |
222 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "combo_entry3", combo_entry3, | |
223 | (GtkDestroyNotify) gtk_widget_unref); | |
224 | gtk_widget_show (combo_entry3); | |
225 | gtk_entry_set_text (GTK_ENTRY (combo_entry3), _("0: None")); | |
226 | ||
227 | label6 = gtk_label_new (_("Filtering:")); | |
228 | gtk_widget_ref (label6); | |
229 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "label6", label6, | |
230 | (GtkDestroyNotify) gtk_widget_unref); | |
231 | gtk_widget_show (label6); | |
232 | gtk_fixed_put (GTK_FIXED (fixed3), label6, 8, 24); | |
233 | gtk_widget_set_usize (label6, 64, 24); | |
234 | ||
235 | label23 = gtk_label_new (_("HiRes Tex:")); | |
236 | gtk_widget_ref (label23); | |
237 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "label23", label23, | |
238 | (GtkDestroyNotify) gtk_widget_unref); | |
239 | gtk_widget_show (label23); | |
240 | gtk_fixed_put (GTK_FIXED (fixed3), label23, 8, 48); | |
241 | gtk_widget_set_usize (label23, 64, 24); | |
242 | ||
243 | cmbHiresTex = gtk_combo_new (); | |
244 | gtk_widget_ref (cmbHiresTex); | |
245 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "cmbHiresTex", cmbHiresTex, | |
246 | (GtkDestroyNotify) gtk_widget_unref); | |
247 | gtk_widget_show (cmbHiresTex); | |
248 | gtk_fixed_put (GTK_FIXED (fixed3), cmbHiresTex, 80, 48); | |
249 | gtk_widget_set_usize (cmbHiresTex, 264, 22); | |
250 | gtk_combo_set_value_in_list (GTK_COMBO (cmbHiresTex), TRUE, FALSE); | |
251 | gtk_combo_set_use_arrows_always (GTK_COMBO (cmbHiresTex), TRUE); | |
252 | cmbHiresTex_items = g_list_append (cmbHiresTex_items, (gpointer) _("0: None (standard)")); | |
253 | cmbHiresTex_items = g_list_append (cmbHiresTex_items, (gpointer) _("1: 2xSaI (much vram needed)")); | |
254 | cmbHiresTex_items = g_list_append (cmbHiresTex_items, (gpointer) _("2: Scaled (needs tex filtering)")); | |
255 | gtk_combo_set_popdown_strings (GTK_COMBO (cmbHiresTex), cmbHiresTex_items); | |
256 | g_list_free (cmbHiresTex_items); | |
257 | ||
258 | combo_entry7 = GTK_COMBO (cmbHiresTex)->entry; | |
259 | gtk_widget_ref (combo_entry7); | |
260 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "combo_entry7", combo_entry7, | |
261 | (GtkDestroyNotify) gtk_widget_unref); | |
262 | gtk_widget_show (combo_entry7); | |
263 | gtk_entry_set_text (GTK_ENTRY (combo_entry7), _("0: None (standard)")); | |
264 | ||
265 | frmWindow = gtk_frame_new (_("Window options")); | |
266 | gtk_widget_ref (frmWindow); | |
267 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "frmWindow", frmWindow, | |
268 | (GtkDestroyNotify) gtk_widget_unref); | |
269 | gtk_widget_show (frmWindow); | |
270 | gtk_fixed_put (GTK_FIXED (fixed1), frmWindow, 0, 0); | |
271 | gtk_widget_set_usize (frmWindow, 364, 136); | |
272 | ||
273 | fixed2 = gtk_fixed_new (); | |
274 | gtk_widget_ref (fixed2); | |
275 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "fixed2", fixed2, | |
276 | (GtkDestroyNotify) gtk_widget_unref); | |
277 | gtk_widget_show (fixed2); | |
278 | gtk_container_add (GTK_CONTAINER (frmWindow), fixed2); | |
279 | ||
280 | edtXSize = gtk_entry_new_with_max_length (5); | |
281 | gtk_widget_ref (edtXSize); | |
282 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "edtXSize", edtXSize, | |
283 | (GtkDestroyNotify) gtk_widget_unref); | |
284 | gtk_widget_show (edtXSize); | |
285 | gtk_fixed_put (GTK_FIXED (fixed2), edtXSize, 56, 0); | |
286 | gtk_widget_set_usize (edtXSize, 72, 24); | |
287 | ||
288 | edtYSize = gtk_entry_new (); | |
289 | gtk_widget_ref (edtYSize); | |
290 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "edtYSize", edtYSize, | |
291 | (GtkDestroyNotify) gtk_widget_unref); | |
292 | gtk_widget_show (edtYSize); | |
293 | gtk_fixed_put (GTK_FIXED (fixed2), edtYSize, 56, 32); | |
294 | gtk_widget_set_usize (edtYSize, 72, 24); | |
295 | ||
296 | label2 = gtk_label_new (_("Width:")); | |
297 | gtk_widget_ref (label2); | |
298 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "label2", label2, | |
299 | (GtkDestroyNotify) gtk_widget_unref); | |
300 | gtk_widget_show (label2); | |
301 | gtk_fixed_put (GTK_FIXED (fixed2), label2, 8, 0); | |
302 | gtk_widget_set_usize (label2, 48, 24); | |
303 | gtk_label_set_justify (GTK_LABEL (label2), GTK_JUSTIFY_RIGHT); | |
304 | ||
305 | label3 = gtk_label_new (_("Height:")); | |
306 | gtk_widget_ref (label3); | |
307 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "label3", label3, | |
308 | (GtkDestroyNotify) gtk_widget_unref); | |
309 | gtk_widget_show (label3); | |
310 | gtk_fixed_put (GTK_FIXED (fixed2), label3, 8, 32); | |
311 | gtk_widget_set_usize (label3, 48, 24); | |
312 | gtk_label_set_justify (GTK_LABEL (label3), GTK_JUSTIFY_RIGHT); | |
313 | ||
314 | chkKeepRatio = gtk_check_button_new_with_label (_("Keep psx aspect ratio")); | |
315 | gtk_widget_ref (chkKeepRatio); | |
316 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkKeepRatio", chkKeepRatio, | |
317 | (GtkDestroyNotify) gtk_widget_unref); | |
318 | gtk_widget_show (chkKeepRatio); | |
319 | gtk_fixed_put (GTK_FIXED (fixed2), chkKeepRatio, 8, 88); | |
320 | gtk_widget_set_usize (chkKeepRatio, 280, 24); | |
321 | ||
322 | chkFullScreen = gtk_check_button_new_with_label (_("Fullscreen")); | |
323 | gtk_widget_ref (chkFullScreen); | |
324 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFullScreen", chkFullScreen, | |
325 | (GtkDestroyNotify) gtk_widget_unref); | |
326 | gtk_widget_show (chkFullScreen); | |
327 | gtk_fixed_put (GTK_FIXED (fixed2), chkFullScreen, 196, 0); | |
328 | gtk_widget_set_usize (chkFullScreen, 125, 24); | |
329 | ||
330 | chkDither = gtk_check_button_new_with_label (_("Dithering")); | |
331 | gtk_widget_ref (chkDither); | |
332 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkDither", chkDither, | |
333 | (GtkDestroyNotify) gtk_widget_unref); | |
334 | gtk_widget_show (chkDither); | |
335 | gtk_fixed_put (GTK_FIXED (fixed2), chkDither, 8, 64); | |
336 | gtk_widget_set_usize (chkDither, 280, 24); | |
337 | ||
338 | btnCancel = gtk_button_new_with_label (_("Cancel")); | |
339 | gtk_widget_ref (btnCancel); | |
340 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "btnCancel", btnCancel, | |
341 | (GtkDestroyNotify) gtk_widget_unref); | |
342 | gtk_widget_show (btnCancel); | |
343 | gtk_fixed_put (GTK_FIXED (fixed1), btnCancel, 430, 552); | |
344 | gtk_widget_set_usize (btnCancel, 160, 24); | |
345 | ||
346 | frmFPS = gtk_frame_new (_("Framerate")); | |
347 | gtk_widget_ref (frmFPS); | |
348 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "frmFPS", frmFPS, | |
349 | (GtkDestroyNotify) gtk_widget_unref); | |
350 | gtk_widget_show (frmFPS); | |
351 | gtk_fixed_put (GTK_FIXED (fixed1), frmFPS, 0, 136); | |
352 | gtk_widget_set_usize (frmFPS, 364, 176); | |
353 | ||
354 | fixed4 = gtk_fixed_new (); | |
355 | gtk_widget_ref (fixed4); | |
356 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "fixed4", fixed4, | |
357 | (GtkDestroyNotify) gtk_widget_unref); | |
358 | gtk_widget_show (fixed4); | |
359 | gtk_container_add (GTK_CONTAINER (frmFPS), fixed4); | |
360 | ||
361 | edtFPSlim = gtk_entry_new (); | |
362 | gtk_widget_ref (edtFPSlim); | |
363 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "edtFPSlim", edtFPSlim, | |
364 | (GtkDestroyNotify) gtk_widget_unref); | |
365 | gtk_widget_show (edtFPSlim); | |
366 | gtk_fixed_put (GTK_FIXED (fixed4), edtFPSlim, 175, 104); | |
367 | gtk_widget_set_usize (edtFPSlim, 72, 24); | |
368 | ||
369 | label8 = gtk_label_new (_("FPS")); | |
370 | gtk_widget_ref (label8); | |
371 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "label8", label8, | |
372 | (GtkDestroyNotify) gtk_widget_unref); | |
373 | gtk_widget_show (label8); | |
374 | gtk_fixed_put (GTK_FIXED (fixed4), label8, 250, 104); | |
375 | gtk_widget_set_usize (label8, 40, 24); | |
376 | ||
377 | rdbLimMan = gtk_radio_button_new_with_label (fixed4_group, _("FPS limit manual")); | |
378 | fixed4_group = gtk_radio_button_group (GTK_RADIO_BUTTON (rdbLimMan)); | |
379 | gtk_widget_ref (rdbLimMan); | |
380 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "rdbLimMan", rdbLimMan, | |
381 | (GtkDestroyNotify) gtk_widget_unref); | |
382 | gtk_widget_show (rdbLimMan); | |
383 | gtk_fixed_put (GTK_FIXED (fixed4), rdbLimMan, 32, 104); | |
384 | gtk_widget_set_usize (rdbLimMan, 140, 24); | |
385 | ||
386 | chkShowFPS = gtk_check_button_new_with_label (_("Show FPS display on startup")); | |
387 | gtk_widget_ref (chkShowFPS); | |
388 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkShowFPS", chkShowFPS, | |
389 | (GtkDestroyNotify) gtk_widget_unref); | |
390 | gtk_widget_show (chkShowFPS); | |
391 | gtk_fixed_put (GTK_FIXED (fixed4), chkShowFPS, 8, 0); | |
392 | gtk_widget_set_usize (chkShowFPS, 280, 24); | |
393 | ||
394 | chkFPSLimit = gtk_check_button_new_with_label (_("Use FPS limit")); | |
395 | gtk_widget_ref (chkFPSLimit); | |
396 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFPSLimit", chkFPSLimit, | |
397 | (GtkDestroyNotify) gtk_widget_unref); | |
398 | gtk_widget_show (chkFPSLimit); | |
399 | gtk_fixed_put (GTK_FIXED (fixed4), chkFPSLimit, 8, 24); | |
400 | gtk_widget_set_usize (chkFPSLimit, 280, 24); | |
401 | ||
402 | rdbLimAuto = gtk_radio_button_new_with_label (fixed4_group, _("FPS limit auto-detection")); | |
403 | fixed4_group = gtk_radio_button_group (GTK_RADIO_BUTTON (rdbLimAuto)); | |
404 | gtk_widget_ref (rdbLimAuto); | |
405 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "rdbLimAuto", rdbLimAuto, | |
406 | (GtkDestroyNotify) gtk_widget_unref); | |
407 | gtk_widget_show (rdbLimAuto); | |
408 | gtk_fixed_put (GTK_FIXED (fixed4), rdbLimAuto, 32, 80); | |
409 | gtk_widget_set_usize (rdbLimAuto, 200, 24); | |
410 | ||
411 | chkFPSSkip = gtk_check_button_new_with_label (_("Use Frame skipping")); | |
412 | gtk_widget_ref (chkFPSSkip); | |
413 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFPSSkip", chkFPSSkip, | |
414 | (GtkDestroyNotify) gtk_widget_unref); | |
415 | gtk_widget_show (chkFPSSkip); | |
416 | gtk_fixed_put (GTK_FIXED (fixed4), chkFPSSkip, 8, 48); | |
417 | gtk_widget_set_usize (chkFPSSkip, 280, 24); | |
418 | ||
419 | frmCompat = gtk_frame_new (_("Compatibility")); | |
420 | gtk_widget_ref (frmCompat); | |
421 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "frmCompat", frmCompat, | |
422 | (GtkDestroyNotify) gtk_widget_unref); | |
423 | gtk_widget_show (frmCompat); | |
424 | gtk_fixed_put (GTK_FIXED (fixed1), frmCompat, 372, 136); | |
425 | gtk_widget_set_usize (frmCompat, 364, 176); | |
426 | ||
427 | fixed5 = gtk_fixed_new (); | |
428 | gtk_widget_ref (fixed5); | |
429 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "fixed5", fixed5, | |
430 | (GtkDestroyNotify) gtk_widget_unref); | |
431 | gtk_widget_show (fixed5); | |
432 | gtk_container_add (GTK_CONTAINER (frmCompat), fixed5); | |
433 | ||
434 | chkABlend = gtk_check_button_new_with_label (_("Advanced blending (Accurate psx color emulation)")); | |
435 | gtk_widget_ref (chkABlend); | |
436 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkABlend", chkABlend, | |
437 | (GtkDestroyNotify) gtk_widget_unref); | |
438 | gtk_widget_show (chkABlend); | |
439 | gtk_fixed_put (GTK_FIXED (fixed5), chkABlend, 8, 128); | |
440 | gtk_widget_set_usize (chkABlend, 366, 24); | |
441 | ||
442 | label10 = gtk_label_new (_("Framebuffer textures:")); | |
443 | gtk_widget_ref (label10); | |
444 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "label10", label10, | |
445 | (GtkDestroyNotify) gtk_widget_unref); | |
446 | gtk_widget_show (label10); | |
447 | gtk_fixed_put (GTK_FIXED (fixed5), label10, 0, 24); | |
448 | gtk_widget_set_usize (label10, 136, 24); | |
449 | ||
450 | label9 = gtk_label_new (_("Offscreen Drawing:")); | |
451 | gtk_widget_ref (label9); | |
452 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "label9", label9, | |
453 | (GtkDestroyNotify) gtk_widget_unref); | |
454 | gtk_widget_show (label9); | |
455 | gtk_fixed_put (GTK_FIXED (fixed5), label9, 0, 0); | |
456 | gtk_widget_set_usize (label9, 136, 24); | |
457 | ||
458 | label22 = gtk_label_new (_("Framebuffer access:")); | |
459 | gtk_widget_ref (label22); | |
460 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "label22", label22, | |
461 | (GtkDestroyNotify) gtk_widget_unref); | |
462 | gtk_widget_show (label22); | |
463 | gtk_fixed_put (GTK_FIXED (fixed5), label22, 0, 48); | |
464 | gtk_widget_set_usize (label22, 136, 24); | |
465 | ||
466 | chkOpaque = gtk_check_button_new_with_label (_("Alpha Multipass (correct opaque texture areas)")); | |
467 | gtk_widget_ref (chkOpaque); | |
468 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkOpaque", chkOpaque, | |
469 | (GtkDestroyNotify) gtk_widget_unref); | |
470 | gtk_widget_show (chkOpaque); | |
471 | gtk_fixed_put (GTK_FIXED (fixed5), chkOpaque, 8, 104); | |
472 | gtk_widget_set_usize (chkOpaque, 366, 24); | |
473 | ||
474 | chkMaskBit = gtk_check_button_new_with_label (_("Mask bit detection (needed by a few games, zbuffer)")); | |
475 | gtk_widget_ref (chkMaskBit); | |
476 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkMaskBit", chkMaskBit, | |
477 | (GtkDestroyNotify) gtk_widget_unref); | |
478 | gtk_widget_show (chkMaskBit); | |
479 | gtk_fixed_put (GTK_FIXED (fixed5), chkMaskBit, 8, 80); | |
480 | gtk_widget_set_usize (chkMaskBit, 366, 24); | |
481 | ||
482 | cmbOffscreen = gtk_combo_new (); | |
483 | gtk_widget_ref (cmbOffscreen); | |
484 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "cmbOffscreen", cmbOffscreen, | |
485 | (GtkDestroyNotify) gtk_widget_unref); | |
486 | gtk_widget_show (cmbOffscreen); | |
487 | gtk_fixed_put (GTK_FIXED (fixed5), cmbOffscreen, 136, 0); | |
488 | gtk_widget_set_usize (cmbOffscreen, 208, 24); | |
489 | gtk_combo_set_value_in_list (GTK_COMBO (cmbOffscreen), TRUE, FALSE); | |
490 | gtk_combo_set_use_arrows_always (GTK_COMBO (cmbOffscreen), TRUE); | |
491 | cmbOffscreen_items = g_list_append (cmbOffscreen_items, (gpointer) _("0: None - Fastest, most glitches")); | |
492 | cmbOffscreen_items = g_list_append (cmbOffscreen_items, (gpointer) _("1: Minimum - Missing screens")); | |
493 | cmbOffscreen_items = g_list_append (cmbOffscreen_items, (gpointer) _("2: Standard - OK for most games")); | |
494 | cmbOffscreen_items = g_list_append (cmbOffscreen_items, (gpointer) _("3: Enhanced - Shows more stuff")); | |
495 | cmbOffscreen_items = g_list_append (cmbOffscreen_items, (gpointer) _("4: Extended - Causing garbage")); | |
496 | gtk_combo_set_popdown_strings (GTK_COMBO (cmbOffscreen), cmbOffscreen_items); | |
497 | g_list_free (cmbOffscreen_items); | |
498 | ||
499 | combo_entry4 = GTK_COMBO (cmbOffscreen)->entry; | |
500 | gtk_widget_ref (combo_entry4); | |
501 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "combo_entry4", combo_entry4, | |
502 | (GtkDestroyNotify) gtk_widget_unref); | |
503 | gtk_widget_show (combo_entry4); | |
504 | gtk_entry_set_text (GTK_ENTRY (combo_entry4), _("0: None - Fastest, most glitches")); | |
505 | ||
506 | cmbFrameTex = gtk_combo_new (); | |
507 | gtk_widget_ref (cmbFrameTex); | |
508 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "cmbFrameTex", cmbFrameTex, | |
509 | (GtkDestroyNotify) gtk_widget_unref); | |
510 | gtk_widget_show (cmbFrameTex); | |
511 | gtk_fixed_put (GTK_FIXED (fixed5), cmbFrameTex, 136, 24); | |
512 | gtk_widget_set_usize (cmbFrameTex, 208, 24); | |
513 | gtk_combo_set_value_in_list (GTK_COMBO (cmbFrameTex), TRUE, FALSE); | |
514 | gtk_combo_set_use_arrows_always (GTK_COMBO (cmbFrameTex), TRUE); | |
515 | cmbFrameTex_items = g_list_append (cmbFrameTex_items, (gpointer) _("0: Emulated vram - Needs FVP")); | |
516 | cmbFrameTex_items = g_list_append (cmbFrameTex_items, (gpointer) _("1: Black - Fast, no effects")); | |
517 | cmbFrameTex_items = g_list_append (cmbFrameTex_items, (gpointer) _("2: Gfx card buffer - Can be slow")); | |
518 | cmbFrameTex_items = g_list_append (cmbFrameTex_items, (gpointer) _("3: Gfx card & soft - slow")); | |
519 | gtk_combo_set_popdown_strings (GTK_COMBO (cmbFrameTex), cmbFrameTex_items); | |
520 | g_list_free (cmbFrameTex_items); | |
521 | ||
522 | combo_entry5 = GTK_COMBO (cmbFrameTex)->entry; | |
523 | gtk_widget_ref (combo_entry5); | |
524 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "combo_entry5", combo_entry5, | |
525 | (GtkDestroyNotify) gtk_widget_unref); | |
526 | gtk_widget_show (combo_entry5); | |
527 | gtk_entry_set_text (GTK_ENTRY (combo_entry5), _("0: Emulated vram - Needs FVP")); | |
528 | ||
529 | cmbFrameAcc = gtk_combo_new (); | |
530 | gtk_widget_ref (cmbFrameAcc); | |
531 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "cmbFrameAcc", cmbFrameAcc, | |
532 | (GtkDestroyNotify) gtk_widget_unref); | |
533 | gtk_widget_show (cmbFrameAcc); | |
534 | gtk_fixed_put (GTK_FIXED (fixed5), cmbFrameAcc, 136, 48); | |
535 | gtk_widget_set_usize (cmbFrameAcc, 208, 22); | |
536 | gtk_combo_set_value_in_list (GTK_COMBO (cmbFrameAcc), TRUE, FALSE); | |
537 | gtk_combo_set_use_arrows_always (GTK_COMBO (cmbFrameAcc), TRUE); | |
538 | cmbFrameAcc_items = g_list_append (cmbFrameAcc_items, (gpointer) _("0: Emulated vram - ok most times")); | |
539 | cmbFrameAcc_items = g_list_append (cmbFrameAcc_items, (gpointer) _("1: Gfx card buffer reads")); | |
540 | cmbFrameAcc_items = g_list_append (cmbFrameAcc_items, (gpointer) _("2: Gfx card buffer moves")); | |
541 | cmbFrameAcc_items = g_list_append (cmbFrameAcc_items, (gpointer) _("3: Gfx buffer reads & moves")); | |
542 | cmbFrameAcc_items = g_list_append (cmbFrameAcc_items, (gpointer) _("4: Full Software (FVP)")); | |
543 | gtk_combo_set_popdown_strings (GTK_COMBO (cmbFrameAcc), cmbFrameAcc_items); | |
544 | g_list_free (cmbFrameAcc_items); | |
545 | ||
546 | combo_entry6 = GTK_COMBO (cmbFrameAcc)->entry; | |
547 | gtk_widget_ref (combo_entry6); | |
548 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "combo_entry6", combo_entry6, | |
549 | (GtkDestroyNotify) gtk_widget_unref); | |
550 | gtk_widget_show (combo_entry6); | |
551 | gtk_entry_set_text (GTK_ENTRY (combo_entry6), _("0: Emulated vram - ok most times")); | |
552 | ||
553 | frmFixes = gtk_frame_new (_("Special game fixes")); | |
554 | gtk_widget_ref (frmFixes); | |
555 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "frmFixes", frmFixes, | |
556 | (GtkDestroyNotify) gtk_widget_unref); | |
557 | gtk_widget_show (frmFixes); | |
558 | gtk_fixed_put (GTK_FIXED (fixed1), frmFixes, 372, 312); | |
559 | gtk_widget_set_usize (frmFixes, 364, 232); | |
560 | ||
561 | fixed7 = gtk_fixed_new (); | |
562 | gtk_widget_ref (fixed7); | |
563 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "fixed7", fixed7, | |
564 | (GtkDestroyNotify) gtk_widget_unref); | |
565 | gtk_widget_show (fixed7); | |
566 | gtk_container_add (GTK_CONTAINER (frmFixes), fixed7); | |
567 | ||
568 | chkGameFixes = gtk_check_button_new_with_label (_("Use game fixes")); | |
569 | gtk_widget_ref (chkGameFixes); | |
570 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkGameFixes", chkGameFixes, | |
571 | (GtkDestroyNotify) gtk_widget_unref); | |
572 | gtk_widget_show (chkGameFixes); | |
573 | gtk_fixed_put (GTK_FIXED (fixed7), chkGameFixes, 8, 0); | |
574 | gtk_widget_set_usize (chkGameFixes, 336, 24); | |
575 | ||
576 | chkFix0 = gtk_check_button_new_with_label (_("Battle cursor (FF7)")); | |
577 | gtk_widget_ref (chkFix0); | |
578 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFix0", chkFix0, | |
579 | (GtkDestroyNotify) gtk_widget_unref); | |
580 | gtk_widget_show (chkFix0); | |
581 | gtk_fixed_put (GTK_FIXED (fixed7), chkFix0, 8, 24); | |
582 | gtk_widget_set_usize (chkFix0, 196, 20); | |
583 | ||
584 | chkFix1 = gtk_check_button_new_with_label (_("Direct FB updates")); | |
585 | gtk_widget_ref (chkFix1); | |
586 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFix1", chkFix1, | |
587 | (GtkDestroyNotify) gtk_widget_unref); | |
588 | gtk_widget_show (chkFix1); | |
589 | gtk_fixed_put (GTK_FIXED (fixed7), chkFix1, 8, 44); | |
590 | gtk_widget_set_usize (chkFix1, 196, 20); | |
591 | ||
592 | chkFix2 = gtk_check_button_new_with_label (_("Black brightness (Lunar)")); | |
593 | gtk_widget_ref (chkFix2); | |
594 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFix2", chkFix2, | |
595 | (GtkDestroyNotify) gtk_widget_unref); | |
596 | gtk_widget_show (chkFix2); | |
597 | gtk_fixed_put (GTK_FIXED (fixed7), chkFix2, 8, 64); | |
598 | gtk_widget_set_usize (chkFix2, 196, 20); | |
599 | ||
600 | chkFix3 = gtk_check_button_new_with_label (_("Swap front detection")); | |
601 | gtk_widget_ref (chkFix3); | |
602 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFix3", chkFix3, | |
603 | (GtkDestroyNotify) gtk_widget_unref); | |
604 | gtk_widget_show (chkFix3); | |
605 | gtk_fixed_put (GTK_FIXED (fixed7), chkFix3, 8, 84); | |
606 | gtk_widget_set_usize (chkFix3, 196, 20); | |
607 | ||
608 | chkFix4 = gtk_check_button_new_with_label (_("Disable coord check")); | |
609 | gtk_widget_ref (chkFix4); | |
610 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFix4", chkFix4, | |
611 | (GtkDestroyNotify) gtk_widget_unref); | |
612 | gtk_widget_show (chkFix4); | |
613 | gtk_fixed_put (GTK_FIXED (fixed7), chkFix4, 8, 104); | |
614 | gtk_widget_set_usize (chkFix4, 196, 20); | |
615 | ||
616 | chkFix5 = gtk_check_button_new_with_label (_("No blue glitches (LoD)")); | |
617 | gtk_widget_ref (chkFix5); | |
618 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFix5", chkFix5, | |
619 | (GtkDestroyNotify) gtk_widget_unref); | |
620 | gtk_widget_show (chkFix5); | |
621 | gtk_fixed_put (GTK_FIXED (fixed7), chkFix5, 8, 124); | |
622 | gtk_widget_set_usize (chkFix5, 196, 20); | |
623 | ||
624 | chkFix6 = gtk_check_button_new_with_label (_("Soft FB access")); | |
625 | gtk_widget_ref (chkFix6); | |
626 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFix6", chkFix6, | |
627 | (GtkDestroyNotify) gtk_widget_unref); | |
628 | gtk_widget_show (chkFix6); | |
629 | gtk_fixed_put (GTK_FIXED (fixed7), chkFix6, 8, 144); | |
630 | gtk_widget_set_usize (chkFix6, 196, 20); | |
631 | ||
632 | chkFix7 = gtk_check_button_new_with_label (_("PC fps calculation")); | |
633 | gtk_widget_ref (chkFix7); | |
634 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFix7", chkFix7, | |
635 | (GtkDestroyNotify) gtk_widget_unref); | |
636 | gtk_widget_show (chkFix7); | |
637 | gtk_fixed_put (GTK_FIXED (fixed7), chkFix7, 8, 164); | |
638 | gtk_widget_set_usize (chkFix7, 196, 20); | |
639 | ||
640 | chkFix8 = gtk_check_button_new_with_label (_("Old frame skipping")); | |
641 | gtk_widget_ref (chkFix8); | |
642 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFix8", chkFix8, | |
643 | (GtkDestroyNotify) gtk_widget_unref); | |
644 | gtk_widget_show (chkFix8); | |
645 | gtk_fixed_put (GTK_FIXED (fixed7), chkFix8, 8, 184); | |
646 | gtk_widget_set_usize (chkFix8, 196, 20); | |
647 | ||
648 | chkFix9 = gtk_check_button_new_with_label (_("Yellow rect (FF9)")); | |
649 | gtk_widget_ref (chkFix9); | |
650 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFix9", chkFix9, | |
651 | (GtkDestroyNotify) gtk_widget_unref); | |
652 | gtk_widget_show (chkFix9); | |
653 | gtk_fixed_put (GTK_FIXED (fixed7), chkFix9, 194, 24); | |
654 | gtk_widget_set_usize (chkFix9, 196, 20); | |
655 | ||
656 | chkFix10 = gtk_check_button_new_with_label (_("No subtr. blending")); | |
657 | gtk_widget_ref (chkFix10); | |
658 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFix10", chkFix10, | |
659 | (GtkDestroyNotify) gtk_widget_unref); | |
660 | gtk_widget_show (chkFix10); | |
661 | gtk_fixed_put (GTK_FIXED (fixed7), chkFix10, 194, 44); | |
662 | gtk_widget_set_usize (chkFix10, 196, 20); | |
663 | ||
664 | chkFix11 = gtk_check_button_new_with_label (_("Lazy upload (DW7)")); | |
665 | gtk_widget_ref (chkFix11); | |
666 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFix11", chkFix11, | |
667 | (GtkDestroyNotify) gtk_widget_unref); | |
668 | gtk_widget_show (chkFix11); | |
669 | gtk_fixed_put (GTK_FIXED (fixed7), chkFix11, 194, 64); | |
670 | gtk_widget_set_usize (chkFix11, 196, 20); | |
671 | ||
672 | chkFix12 = gtk_check_button_new_with_label (_("Odd/even hack")); | |
673 | gtk_widget_ref (chkFix12); | |
674 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFix12", chkFix12, | |
675 | (GtkDestroyNotify) gtk_widget_unref); | |
676 | gtk_widget_show (chkFix12); | |
677 | gtk_fixed_put (GTK_FIXED (fixed7), chkFix12, 194, 84); | |
678 | gtk_widget_set_usize (chkFix12, 196, 20); | |
679 | ||
680 | chkFix13 = gtk_check_button_new_with_label (_("Adjust screen width")); | |
681 | gtk_widget_ref (chkFix13); | |
682 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFix13", chkFix13, | |
683 | (GtkDestroyNotify) gtk_widget_unref); | |
684 | gtk_widget_show (chkFix13); | |
685 | gtk_fixed_put (GTK_FIXED (fixed7), chkFix13, 194, 104); | |
686 | gtk_widget_set_usize (chkFix13, 196, 20); | |
687 | ||
688 | chkFix14 = gtk_check_button_new_with_label (_("Old texture filtering")); | |
689 | gtk_widget_ref (chkFix14); | |
690 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFix14", chkFix14, | |
691 | (GtkDestroyNotify) gtk_widget_unref); | |
692 | gtk_widget_show (chkFix14); | |
693 | gtk_fixed_put (GTK_FIXED (fixed7), chkFix14, 194, 124); | |
694 | gtk_widget_set_usize (chkFix14, 196, 20); | |
695 | ||
696 | chkFix15 = gtk_check_button_new_with_label (_("Additional uploads")); | |
697 | gtk_widget_ref (chkFix15); | |
698 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFix15", chkFix15, | |
699 | (GtkDestroyNotify) gtk_widget_unref); | |
700 | gtk_widget_show (chkFix15); | |
701 | gtk_fixed_put (GTK_FIXED (fixed7), chkFix15, 194, 144); | |
702 | gtk_widget_set_usize (chkFix15, 196, 20); | |
703 | ||
704 | chkFix16 = gtk_check_button_new_with_label (_("unused")); | |
705 | gtk_widget_ref (chkFix16); | |
706 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFix16", chkFix16, | |
707 | (GtkDestroyNotify) gtk_widget_unref); | |
708 | gtk_widget_show (chkFix16); | |
709 | gtk_fixed_put (GTK_FIXED (fixed7), chkFix16, 194, 164); | |
710 | gtk_widget_set_usize (chkFix16, 196, 20); | |
711 | ||
712 | chkFix17 = gtk_check_button_new_with_label (_("Fake 'gpu busy'")); | |
713 | gtk_widget_ref (chkFix17); | |
714 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFix17", chkFix17, | |
715 | (GtkDestroyNotify) gtk_widget_unref); | |
716 | gtk_widget_show (chkFix17); | |
717 | gtk_fixed_put (GTK_FIXED (fixed7), chkFix17, 194, 184); | |
718 | gtk_widget_set_usize (chkFix17, 196, 20); | |
719 | ||
720 | frmMisc = gtk_frame_new (_("Misc")); | |
721 | gtk_widget_ref (frmMisc); | |
722 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "frmMisc", frmMisc, | |
723 | (GtkDestroyNotify) gtk_widget_unref); | |
724 | gtk_widget_show (frmMisc); | |
725 | gtk_fixed_put (GTK_FIXED (fixed1), frmMisc, 0, 312); | |
726 | gtk_widget_set_usize (frmMisc, 364, 232); | |
727 | ||
728 | fixed6 = gtk_fixed_new (); | |
729 | gtk_widget_ref (fixed6); | |
730 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "fixed6", fixed6, | |
731 | (GtkDestroyNotify) gtk_widget_unref); | |
732 | gtk_widget_show (fixed6); | |
733 | gtk_container_add (GTK_CONTAINER (frmMisc), fixed6); | |
734 | ||
735 | edtScanBlend = gtk_entry_new (); | |
736 | gtk_widget_ref (edtScanBlend); | |
737 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "edtScanBlend", edtScanBlend, | |
738 | (GtkDestroyNotify) gtk_widget_unref); | |
739 | gtk_widget_show (edtScanBlend); | |
740 | gtk_fixed_put (GTK_FIXED (fixed6), edtScanBlend, 285, 0); | |
741 | gtk_widget_set_usize (edtScanBlend, 54, 22); | |
742 | ||
743 | chkScanlines = gtk_check_button_new_with_label (_("Scanlines")); | |
744 | gtk_widget_ref (chkScanlines); | |
745 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkScanlines", chkScanlines, | |
746 | (GtkDestroyNotify) gtk_widget_unref); | |
747 | gtk_widget_show (chkScanlines); | |
748 | gtk_fixed_put (GTK_FIXED (fixed6), chkScanlines, 8, 0); | |
749 | gtk_widget_set_usize (chkScanlines, 100, 24); | |
750 | ||
751 | label11 = gtk_label_new (_("Blending (0..255, -1=dot):")); | |
752 | gtk_widget_ref (label11); | |
753 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "label11", label11, | |
754 | (GtkDestroyNotify) gtk_widget_unref); | |
755 | gtk_widget_show (label11); | |
756 | gtk_fixed_put (GTK_FIXED (fixed6), label11, 108, 0); | |
757 | gtk_widget_set_usize (label11, 164, 24); | |
758 | ||
759 | chkBlur = gtk_check_button_new_with_label (_("Screen smoothing (can be slow or unsupported)")); | |
760 | gtk_widget_ref (chkBlur); | |
761 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkBlur", chkBlur, | |
762 | (GtkDestroyNotify) gtk_widget_unref); | |
763 | gtk_widget_show (chkBlur); | |
764 | gtk_fixed_put (GTK_FIXED (fixed6), chkBlur, 8, 132); | |
765 | gtk_widget_set_usize (chkBlur, 350, 20); | |
766 | ||
767 | chkExtensions = gtk_check_button_new_with_label (_("Use OpenGL extensions (recommended)")); | |
768 | gtk_widget_ref (chkExtensions); | |
769 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkExtensions", chkExtensions, | |
770 | (GtkDestroyNotify) gtk_widget_unref); | |
771 | gtk_widget_show (chkExtensions); | |
772 | gtk_fixed_put (GTK_FIXED (fixed6), chkExtensions, 8, 112); | |
773 | gtk_widget_set_usize (chkExtensions, 350, 20); | |
774 | ||
775 | chkAntiA = gtk_check_button_new_with_label (_("Polygon anti-aliasing (slow with most cards)")); | |
776 | gtk_widget_ref (chkAntiA); | |
777 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkAntiA", chkAntiA, | |
778 | (GtkDestroyNotify) gtk_widget_unref); | |
779 | gtk_widget_show (chkAntiA); | |
780 | gtk_fixed_put (GTK_FIXED (fixed6), chkAntiA, 8, 92); | |
781 | gtk_widget_set_usize (chkAntiA, 350, 20); | |
782 | ||
783 | chkLinemode = gtk_check_button_new_with_label (_("Line mode (polygons will not get filled)")); | |
784 | gtk_widget_ref (chkLinemode); | |
785 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkLinemode", chkLinemode, | |
786 | (GtkDestroyNotify) gtk_widget_unref); | |
787 | gtk_widget_show (chkLinemode); | |
788 | gtk_fixed_put (GTK_FIXED (fixed6), chkLinemode, 8, 72); | |
789 | gtk_widget_set_usize (chkLinemode, 350, 20); | |
790 | ||
791 | chk15bitMdec = gtk_check_button_new_with_label (_("Force 15 bit framebuffer updates (faster movies)")); | |
792 | gtk_widget_ref (chk15bitMdec); | |
793 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chk15bitMdec", chk15bitMdec, | |
794 | (GtkDestroyNotify) gtk_widget_unref); | |
795 | gtk_widget_show (chk15bitMdec); | |
796 | gtk_fixed_put (GTK_FIXED (fixed6), chk15bitMdec, 8, 52); | |
797 | gtk_widget_set_usize (chk15bitMdec, 350, 20); | |
798 | ||
799 | chkFastMdec = gtk_check_button_new_with_label (_("Unfiltered MDECs (small movie speedup)")); | |
800 | gtk_widget_ref (chkFastMdec); | |
801 | gtk_object_set_data_full (GTK_OBJECT (CfgWnd), "chkFastMdec", chkFastMdec, | |
802 | (GtkDestroyNotify) gtk_widget_unref); | |
803 | gtk_widget_show (chkFastMdec); | |
804 | gtk_fixed_put (GTK_FIXED (fixed6), chkFastMdec, 8, 32); | |
805 | gtk_widget_set_usize (chkFastMdec, 350, 20); | |
806 | ||
807 | gtk_signal_connect (GTK_OBJECT (CfgWnd), "destroy", | |
808 | GTK_SIGNAL_FUNC (on_CfgWnd_destroy), NULL); | |
809 | gtk_signal_connect (GTK_OBJECT (btnSave), "clicked", | |
810 | GTK_SIGNAL_FUNC (on_btnSave_clicked), NULL); | |
811 | gtk_signal_connect (GTK_OBJECT (btnCancel), "clicked", | |
812 | GTK_SIGNAL_FUNC (on_btnCancel_clicked), NULL); | |
813 | ||
814 | return CfgWnd; | |
815 | } | |
816 | ||
817 | GtkWidget* | |
818 | create_AboutWnd (void) | |
819 | { | |
820 | GtkWidget *AboutWnd; | |
821 | GtkWidget *fixed8; | |
822 | GtkWidget *bntAClose; | |
823 | GtkWidget *label13; | |
824 | GtkWidget *label15; | |
825 | GtkWidget *label21; | |
826 | GtkWidget *label19; | |
827 | ||
828 | AboutWnd = gtk_window_new (GTK_WINDOW_TOPLEVEL); | |
829 | gtk_object_set_data (GTK_OBJECT (AboutWnd), "AboutWnd", AboutWnd); | |
830 | gtk_container_set_border_width (GTK_CONTAINER (AboutWnd), 12); | |
831 | gtk_window_set_title (GTK_WINDOW (AboutWnd), _("About")); | |
832 | gtk_window_set_position (GTK_WINDOW (AboutWnd), GTK_WIN_POS_CENTER); | |
833 | gtk_window_set_modal (GTK_WINDOW (AboutWnd), TRUE); | |
834 | gtk_window_set_policy (GTK_WINDOW (AboutWnd), FALSE, FALSE, FALSE); | |
835 | ||
836 | fixed8 = gtk_fixed_new (); | |
837 | gtk_widget_ref (fixed8); | |
838 | gtk_object_set_data_full (GTK_OBJECT (AboutWnd), "fixed8", fixed8, | |
839 | (GtkDestroyNotify) gtk_widget_unref); | |
840 | gtk_widget_show (fixed8); | |
841 | gtk_container_add (GTK_CONTAINER (AboutWnd), fixed8); | |
842 | ||
843 | bntAClose = gtk_button_new_with_label (_("OK")); | |
844 | gtk_widget_ref (bntAClose); | |
845 | gtk_object_set_data_full (GTK_OBJECT (AboutWnd), "bntAClose", bntAClose, | |
846 | (GtkDestroyNotify) gtk_widget_unref); | |
847 | gtk_widget_show (bntAClose); | |
848 | gtk_fixed_put (GTK_FIXED (fixed8), bntAClose, 136, 184); | |
849 | gtk_widget_set_uposition (bntAClose, 136, 184); | |
850 | gtk_widget_set_usize (bntAClose, 88, 24); | |
851 | ||
852 | label13 = gtk_label_new (_("Adapted from P.E.Op.S OpenGL GPU by Pete Bernert")); | |
853 | gtk_widget_ref (label13); | |
854 | gtk_object_set_data_full (GTK_OBJECT (AboutWnd), "label13", label13, | |
855 | (GtkDestroyNotify) gtk_widget_unref); | |
856 | gtk_widget_show (label13); | |
857 | gtk_fixed_put (GTK_FIXED (fixed8), label13, 0, 8); | |
858 | gtk_widget_set_uposition (label13, 0, 8); | |
859 | gtk_widget_set_usize (label13, 360, 16); | |
860 | ||
861 | label15 = gtk_label_new (_("Homepage: http://www.pbernert.com")); | |
862 | gtk_widget_ref (label15); | |
863 | gtk_object_set_data_full (GTK_OBJECT (AboutWnd), "label15", label15, | |
864 | (GtkDestroyNotify) gtk_widget_unref); | |
865 | gtk_widget_show (label15); | |
866 | gtk_fixed_put (GTK_FIXED (fixed8), label15, 0, 40); | |
867 | gtk_widget_set_uposition (label15, 0, 40); | |
868 | gtk_widget_set_usize (label15, 360, 16); | |
869 | ||
870 | label21 = gtk_label_new ("Compile date: " __DATE__); | |
871 | gtk_widget_ref (label21); | |
872 | gtk_object_set_data_full (GTK_OBJECT (AboutWnd), "label21", label21, | |
873 | (GtkDestroyNotify) gtk_widget_unref); | |
874 | gtk_widget_show (label21); | |
875 | gtk_fixed_put (GTK_FIXED (fixed8), label21, 0, 136); | |
876 | gtk_widget_set_uposition (label21, 0, 136); | |
877 | gtk_widget_set_usize (label21, 360, 16); | |
878 | ||
879 | label19 = gtk_label_new (_("Version: 1.78")); | |
880 | gtk_widget_ref (label19); | |
881 | gtk_object_set_data_full (GTK_OBJECT (AboutWnd), "label19", label19, | |
882 | (GtkDestroyNotify) gtk_widget_unref); | |
883 | gtk_widget_show (label19); | |
884 | gtk_fixed_put (GTK_FIXED (fixed8), label19, 0, 104); | |
885 | gtk_widget_set_uposition (label19, 0, 104); | |
886 | gtk_widget_set_usize (label19, 360, 16); | |
887 | ||
888 | gtk_signal_connect (GTK_OBJECT (AboutWnd), "destroy", | |
889 | GTK_SIGNAL_FUNC (on_AboutWnd_destroy), | |
890 | NULL); | |
891 | gtk_signal_connect (GTK_OBJECT (bntAClose), "clicked", | |
892 | GTK_SIGNAL_FUNC (on_bntAClose_clicked), | |
893 | NULL); | |
894 | ||
895 | return AboutWnd; | |
896 | } |