From b0aa1dcbab898111b1f0ac73d5e2cf3fffcb0102 Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Thu, 29 Oct 2009 22:05:14 +0000 Subject: [PATCH] Added Ok and Cancel buttons in value requester. Don't do anything in palette screen if user enters strange value, not even a reduction to 256 as this drops unused colors. git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@1100 416bcca6-2ee7-4201-b75f-2eb2f807beb1 --- palette.c | 49 ++++++++++++++++++++++++++----------------------- windows.c | 8 +++++--- 2 files changed, 31 insertions(+), 26 deletions(-) diff --git a/palette.c b/palette.c index 38a33637..b308b918 100644 --- a/palette.c +++ b/palette.c @@ -1466,36 +1466,39 @@ void Button_Palette(void) reduce_colors_number = Requester_window("Enter the max. number of colors", reduce_colors_number); - if (reduce_colors_number < 2 || reduce_colors_number > 256) - reduce_colors_number = 256; + if (reduce_colors_number < 2 || reduce_colors_number >= 256) + reduce_colors_number = -1; break; } - if (!image_is_backed_up) - { - Backup(); - image_is_backed_up = 1; - } + if (reduce_colors_number > 0) + { + if (!image_is_backed_up) + { + Backup(); + image_is_backed_up = 1; + } - Reduce_palette(&used_colors, reduce_colors_number, working_palette, - color_usage); + Reduce_palette(&used_colors, reduce_colors_number, working_palette, + color_usage); - if ((Config.Safety_colors) && (used_colors<4)) - { - memcpy(temp_palette, Main_palette, sizeof(T_Palette)); - memcpy(Main_palette, working_palette, sizeof(T_Palette)); - Set_nice_menu_colors(color_usage, 0); - memcpy(working_palette, Main_palette, sizeof(T_Palette)); - memcpy(Main_palette, temp_palette, sizeof(T_Palette)); - } + if ((Config.Safety_colors) && (used_colors<4)) + { + memcpy(temp_palette, Main_palette, sizeof(T_Palette)); + memcpy(Main_palette, working_palette, sizeof(T_Palette)); + Set_nice_menu_colors(color_usage, 0); + memcpy(working_palette, Main_palette, sizeof(T_Palette)); + memcpy(Main_palette, temp_palette, sizeof(T_Palette)); + } - Set_palette(working_palette); // On définit la nouvelle palette - Draw_all_palette_sliders(red_slider, green_slider, blue_slider, - working_palette, block_start, block_end); - memcpy(temp_palette, working_palette, sizeof(T_Palette)); + Set_palette(working_palette); // On définit la nouvelle palette + Draw_all_palette_sliders(red_slider, green_slider, blue_slider, + working_palette, block_start, block_end); + memcpy(temp_palette, working_palette, sizeof(T_Palette)); - End_of_modification(); - need_to_remap = 1; + End_of_modification(); + need_to_remap = 1; + } break; case 12: // Undo diff --git a/windows.c b/windows.c index e6da7849..8f0f311d 100644 --- a/windows.c +++ b/windows.c @@ -856,8 +856,10 @@ int Requester_window(char* message, int initial_value) Print_in_window((window_width>>1)-(strlen(message)<<2), 20, message, MC_Black, MC_Light); sprintf(str, "%d", initial_value); - Window_set_input_button((window_width / 3) - 20, 37, 10); // 1 - Print_in_window((window_width / 3) - 18, 39, str, MC_Black, MC_Light); + Window_set_input_button(10, 37, 4); // 1 + Print_in_window(11, 39, str, MC_Black, MC_Light); + Window_set_normal_button(60 ,37,40,14,"OK",1,1,SDLK_y); // 2 + Window_set_normal_button(130,37,60,14,"Cancel" ,1,1,SDLK_n); // 3 Update_rect(Window_pos_X, Window_pos_Y, Menu_factor_X * window_width, Menu_factor_Y * 60); @@ -867,7 +869,7 @@ int Requester_window(char* message, int initial_value) { clicked_button = Window_clicked_button(); if (clicked_button == 1) - Readline((window_width / 3) - 18, 39, str, 10, 1); + Readline(11, 39, str, 4, 1); if (Key == SDLK_ESCAPE) clicked_button = 2; } while (clicked_button <= 0);