pcsxr-1.9.92
[pcsx_rearmed.git] / plugins / peopsxgl / gpucfg / interface.c
CommitLineData
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
23GtkWidget*
24create_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
817GtkWidget*
818create_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}