Finish tweaking layout of palette settings window.

This commit is contained in:
Adrien Destugues 2017-03-21 21:55:55 +01:00
parent f4bfaeca89
commit 092e092c18

View File

@ -113,6 +113,14 @@ static int Decode_component(int comp)
} }
/// Turns a RGB component from 0-255 to 0-(RGB_scale-1) and apply Gamma correction.
static int Encode_component(int comp)
{
float res = pow(comp/255.0,Gamma)*Color_max;
return ceil(res);
}
/// Compute the component at a given distance from the current one. /// Compute the component at a given distance from the current one.
/// Used by the add/remove and lighten/darken operations. /// Used by the add/remove and lighten/darken operations.
static int Add_encoded(int comp, int offset) static int Add_encoded(int comp, int offset)
@ -125,13 +133,6 @@ static int Add_encoded(int comp, int offset)
return new; return new;
} }
///
/// Turns a RGB component from 0-255 to 0-(RGB_scale-1) and apply Gamma correction.
static int Encode_component(int comp)
{
float res = pow(comp/255.0,Gamma)*Color_max;
return ceil(res);
}
// Définir les unités pour les graduations R G B ou H S V // Définir les unités pour les graduations R G B ou H S V
void Component_unit(int count) void Component_unit(int count)
@ -2881,19 +2882,23 @@ void Button_Secondary_palette(void)
float gamma; float gamma;
byte palette_needs_redraw=0; byte palette_needs_redraw=0;
Open_window(230,146,"Palettes"); static const int RGBScale_X = 161;
static const int RGBScale_Y = 85;
Open_window(218,146,"Palettes");
Window_set_normal_button(10,20,180,14,"Colors for best match",12,1,SDLK_b); // 1 Window_set_normal_button(10,20,180,14,"Colors for best match",12,1,SDLK_b); // 1
Window_set_normal_button(10,37,180,14,"User's color series" ,14,1,SDLK_s); // 2 Window_set_normal_button(10,37,180,14,"User's color series" ,14,1,SDLK_s); // 2
Window_set_normal_button(139,126,53,14,"OK" , 0,1,SDLK_RETURN); // 3 Window_set_normal_button(155,126,53,14,"OK" , 0,1,SDLK_RETURN); // 3
Window_set_normal_button( 80,126,53,14,"Cancel" , 0,1,KEY_ESC); // 4 Window_set_normal_button( 96,126,53,14,"Cancel" , 0,1,KEY_ESC); // 4
Window_display_frame(10,55,122,66); Window_display_frame(10,55,122,66);
Print_in_window(18,59,"Palette layout",MC_Dark,MC_Light); Print_in_window(18,59,"Palette layout",MC_Dark,MC_Light);
Print_in_window(35,77,"Cols",MC_Dark,MC_Light); Print_in_window(35,77,"Cols",MC_Dark,MC_Light);
Print_in_window(84,77,"Lines",MC_Dark,MC_Light); Print_in_window(84,77,"Lines",MC_Dark,MC_Light);
Print_in_window(157,58,"RGB",MC_Dark,MC_Light);
Print_in_window(152,68,"Scale",MC_Dark,MC_Light); Print_in_window(137,57,"RGB Scale",MC_Dark,MC_Light);
Print_in_window(188,58,"Gamma",MC_Dark,MC_Light); Print_in_window(137,99,"Gamma",MC_Dark,MC_Light);
columns_slider = Window_set_scroller_button(19,72,29,255,1,256-Config.Palette_cells_X);// 5 columns_slider = Window_set_scroller_button(19,72,29,255,1,256-Config.Palette_cells_X);// 5
Num2str(Config.Palette_cells_X,str,3); Num2str(Config.Palette_cells_X,str,3);
@ -2903,20 +2908,24 @@ void Button_Secondary_palette(void)
Num2str(Config.Palette_cells_Y,str,3); Num2str(Config.Palette_cells_Y,str,3);
Print_in_window(94,89,str,MC_Black,MC_Light); Print_in_window(94,89,str,MC_Black,MC_Light);
rgb_scale_slider = Window_set_scroller_button(137,58,60,255,1,256-RGB_scale);// 7 rgb_scale_slider = Window_set_horizontal_scroller_button(137,68,71,255,1,RGB_scale);// 7
Num2str(RGB_scale,str,3); Num2str(RGB_scale,str,3);
Print_in_window(157,78,str,MC_Black,MC_Light); Print_in_window(RGBScale_X,RGBScale_Y,str,MC_Black,MC_Light);
Window_set_normal_button(35,106,13,11,"",-1,1,SDLK_LAST); // 8 Window_set_normal_button(35,106,13,11,"",-1,1,SDLK_LAST); // 8
Print_in_window(38,108,(palette_vertical)?"X":" ",MC_Black,MC_Light); Print_in_window(38,108,(palette_vertical)?"X":" ",MC_Black,MC_Light);
Print_in_window(51,108,"Vertical",MC_Dark,MC_Light); Print_in_window(51,108,"Vertical",MC_Dark,MC_Light);
Window_set_normal_button(152,88,18,14,"x2" , 1,1,SDLK_x); // 9 Window_set_normal_button(190,82,18,14,"x2" , 1,1,SDLK_x); // 9
Window_set_normal_button(172,88,18,14,"÷2" , 0,1,SDLK_w); // 10 Window_set_normal_button(137,82,18,14,"÷2" , 0,1,SDLK_w); // 10
gamma_slider = Window_set_scroller_button(200,68,40,30, 1,Gamma*10);// 11 gamma_slider = Window_set_horizontal_scroller_button(137,110,71,30, 1,Gamma*10);// 11
Num2str(Gamma*10,str,3); Num2str(Gamma*10,str,2);
Print_in_window(190,112,str,MC_Black,MC_Light); Print_in_window(178,99,str,MC_Black,MC_Light);
// I'm too lazy to format the number with a comma...
Pixel_in_window(185,107,MC_Black);
Pixel_in_window(184,108,MC_Black);
Update_window_area(0,0,230,146); Update_window_area(0,0,230,146);
@ -2947,9 +2956,9 @@ void Button_Secondary_palette(void)
break; break;
case 7: case 7:
// RGB scale slider // RGB scale slider
Num2str(256-Window_attribute2,str,3); Num2str(Window_attribute2,str,3);
Hide_cursor(); Hide_cursor();
Print_in_window(157,78,str,MC_Black,MC_Light); Print_in_window(RGBScale_X,RGBScale_Y,str,MC_Black,MC_Light);
Display_cursor(); Display_cursor();
break; break;
case 8: case 8:
@ -2962,25 +2971,29 @@ void Button_Secondary_palette(void)
case 9: case 9:
// x2 RGB scale // x2 RGB scale
rgb_scale_slider->Position = rgb_scale_slider->Position>128?rgb_scale_slider->Position*2-256:0; rgb_scale_slider->Position = (rgb_scale_slider->Position < 128)
Num2str(256-rgb_scale_slider->Position,str,3); ? rgb_scale_slider->Position * 2
Print_in_window(157,78,str,MC_Black,MC_Light); : 256;
Num2str(rgb_scale_slider->Position,str,3);
Print_in_window(RGBScale_X,RGBScale_Y,str,MC_Black,MC_Light);
Window_draw_slider(rgb_scale_slider); Window_draw_slider(rgb_scale_slider);
break; break;
case 10: case 10:
// /2 RGB scale // /2 RGB scale
rgb_scale_slider->Position = rgb_scale_slider->Position>253?254:(rgb_scale_slider->Position)/2+128; rgb_scale_slider->Position = (rgb_scale_slider->Position <= 2)
Num2str(256-rgb_scale_slider->Position,str,3); ? 1
Print_in_window(157,78,str,MC_Black,MC_Light); : (rgb_scale_slider->Position)/2;
Num2str(rgb_scale_slider->Position,str,3);
Print_in_window(RGBScale_X,RGBScale_Y,str,MC_Black,MC_Light);
Window_draw_slider(rgb_scale_slider); Window_draw_slider(rgb_scale_slider);
break; break;
case 11: case 11:
// Gamma slider // Gamma slider
Num2str(Window_attribute2,str,3); Num2str(Window_attribute2,str,2);
Hide_cursor(); Hide_cursor();
Print_in_window(190,112,str,MC_Black,MC_Light); Print_in_window(178,99,str,MC_Black,MC_Light);
Display_cursor(); Display_cursor();
break; break;
} }
@ -2990,7 +3003,7 @@ void Button_Secondary_palette(void)
// We need to get the sliders positions before closing the window, because they will be freed. // We need to get the sliders positions before closing the window, because they will be freed.
palette_cols=256-columns_slider->Position; palette_cols=256-columns_slider->Position;
palette_lines=16-lines_slider->Position; palette_lines=16-lines_slider->Position;
rgb_scale=256-rgb_scale_slider->Position; rgb_scale=rgb_scale_slider->Position;
gamma=gamma_slider->Position/10.f; gamma=gamma_slider->Position/10.f;
Close_window(); Close_window();