From d7fa5898267f80ed5e0adf20685bdfadb2c5e4d5 Mon Sep 17 00:00:00 2001 From: ansstuff Date: Thu, 6 Sep 2012 18:34:46 +0000 Subject: [PATCH] Added "Use Custom Palette" checkbox to Palette config --- src/drivers/win/palette.cpp | 27 ++++++++++++++++++--------- src/drivers/win/res.rc | 7 +++---- src/drivers/win/resource.h | 3 ++- 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/src/drivers/win/palette.cpp b/src/drivers/win/palette.cpp index 7ee7e4dc..0917f134 100644 --- a/src/drivers/win/palette.cpp +++ b/src/drivers/win/palette.cpp @@ -4,7 +4,7 @@ #include "window.h" #include "gui.h" -uint8 cpalette[192]; +uint8 cpalette[192] = {0}; bool SetPalette(const char* nameo) { @@ -80,7 +80,8 @@ BOOL CALLBACK PaletteConCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa if(force_grayscale) CheckDlgButton(hwndDlg, CHECK_PALETTE_GRAYSCALE, BST_CHECKED); - EnableWindow(GetDlgItem(hwndDlg, BTN_PALETTE_RESET), (eoptions & EO_CPALETTE) ? 1 : 0); + if (eoptions & EO_CPALETTE) + CheckDlgButton(hwndDlg, CHECK_PALETTE_CUSTOM, BST_CHECKED); CenterWindowOnScreen(hwndDlg); @@ -113,16 +114,24 @@ BOOL CALLBACK PaletteConCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa case BTN_PALETTE_LOAD: if(LoadPaletteFile()) - { - EnableWindow(GetDlgItem(hwndDlg, BTN_PALETTE_RESET), 1); - } + CheckDlgButton(hwndDlg, CHECK_PALETTE_CUSTOM, BST_CHECKED); break; - case BTN_PALETTE_RESET: - FCEUI_SetPaletteArray(0); - eoptions &= ~EO_CPALETTE; - EnableWindow(GetDlgItem(hwndDlg, BTN_PALETTE_RESET), 0); + case CHECK_PALETTE_CUSTOM: + { + if (eoptions & EO_CPALETTE) + { + // switch back to default palette + FCEUI_SetPaletteArray(0); + eoptions &= ~EO_CPALETTE; + } else + { + // switch to custom, even if it isn't loaded yet + FCEUI_SetPaletteArray(cpalette); + eoptions |= EO_CPALETTE; + } break; + } case BUTTON_CLOSE: gornk: diff --git a/src/drivers/win/res.rc b/src/drivers/win/res.rc index 8b876282..3ee6742b 100644 --- a/src/drivers/win/res.rc +++ b/src/drivers/win/res.rc @@ -850,15 +850,15 @@ FONT 8, "MS Sans Serif", 0, 0, 0x0 BEGIN DEFPUSHBUTTON "Close",BUTTON_CLOSE,162,94,56,14 GROUPBOX "NES Palette",302,10,8,102,81,WS_GROUP - DEFPUSHBUTTON "&Load Palette...",BTN_PALETTE_LOAD,18,26,58,14 - DEFPUSHBUTTON "&Reset to Default Palette",BTN_PALETTE_RESET,18,46,85,14 + DEFPUSHBUTTON "&Load Palette...",BTN_PALETTE_LOAD,18,40,58,14 CONTROL "Enabled",CHECK_PALETTE_ENABLED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,122,22,87,12 CONTROL "Tint",CTL_TINT_TRACKBAR,"msctls_trackbar32",WS_TABSTOP,121,44,91,11 GROUPBOX "NTSC Color Emulation",101,115,8,103,81,WS_GROUP CONTROL "Hue",CTL_HUE_TRACKBAR,"msctls_trackbar32",WS_TABSTOP,121,69,91,11 CTEXT "Hue",64395,124,59,85,8 CTEXT "Tint",65463,123,34,85,8 - CONTROL "Force Grayscale",CHECK_PALETTE_GRAYSCALE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,68,87,12 + CONTROL "Force Grayscale",CHECK_PALETTE_GRAYSCALE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,67,85,12 + CONTROL "Use Custom Palette",CHECK_PALETTE_CUSTOM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,22,85,12 END POWERPADDIALOG DIALOG 30, 123, 131, 119 @@ -1981,7 +1981,6 @@ BEGIN "TRACER", DIALOG BEGIN - RIGHTMARGIN, 383 END "ADDBP", DIALOG diff --git a/src/drivers/win/resource.h b/src/drivers/win/resource.h index c6543d8e..7714eaa9 100644 --- a/src/drivers/win/resource.h +++ b/src/drivers/win/resource.h @@ -49,7 +49,6 @@ #define IDC_ROMPATCHER_OFFSET 102 #define IDC_NTVIEW_SCANLINE 102 #define IDC_ASSEMBLER_PATCH_DISASM 102 -#define CHECK_PALETTE_ENABLED2 102 #define CHECK_PALETTE_GRAYSCALE 102 #define BTN_CDLOGGER_RESET 103 #define LBL_PPUVIEW_TILE1 103 @@ -73,6 +72,8 @@ #define IDC_ADDBP_MODE_X 104 #define IDC_ROMPATCHER_CURRENT_DATA_BOX 104 #define IDC_NTVIEW_PROPERTIES_LINE_2 104 +#define CHECK_PALETTE_GRAYSCALE2 104 +#define CHECK_PALETTE_CUSTOM 104 #define COMBO_PAD2 105 #define CB_SET_HIGH_PRIORITY 105 #define BTN_CDLOGGER_START_PAUSE 105