| 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 | } |