Settings: Added the missing mouse sensitivity; Fixed mouse droppings; Toggle settings in the other direction with right mouse button. Skins: Fixed small problem when changing skins, note taking color change into account immediately.
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@1465 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
parent
f36f4c9ddb
commit
c7d7938797
179
src/buttons.c
179
src/buttons.c
@ -751,6 +751,14 @@ const T_Lookup Lookup_MenuRatio[] = {
|
|||||||
{NULL,-1},
|
{NULL,-1},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const T_Lookup Lookup_MouseSpeed[] = {
|
||||||
|
{"Normal",1},
|
||||||
|
{"/2",2},
|
||||||
|
{"/3",3},
|
||||||
|
{"/4",4},
|
||||||
|
{NULL,-1},
|
||||||
|
};
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
const char* Label;
|
const char* Label;
|
||||||
byte Type; // 0: label, 1+: setting (size in bytes)
|
byte Type; // 0: label, 1+: setting (size in bytes)
|
||||||
@ -808,7 +816,8 @@ const char *Lookup_code(int code, const T_Lookup *lookup)
|
|||||||
return lookup[0].Label;
|
return lookup[0].Label;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Lookup_toggle(int code, const T_Lookup *lookup)
|
/// Increase an enum to next-higher value (wrapping).
|
||||||
|
int Lookup_next(int code, const T_Lookup *lookup)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
@ -824,11 +833,24 @@ int Lookup_toggle(int code, const T_Lookup *lookup)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Decrease an enum to previous value (wrapping).
|
||||||
|
int Lookup_previous(int code, const T_Lookup *lookup)
|
||||||
|
{
|
||||||
|
int count;
|
||||||
|
int current=-1;
|
||||||
|
|
||||||
|
for(count=0; lookup[count].Label!=NULL; count++)
|
||||||
|
{
|
||||||
|
if (lookup[count].Code == code)
|
||||||
|
current=count;
|
||||||
|
}
|
||||||
|
|
||||||
|
return lookup[(current + count - 1) % count].Code;
|
||||||
|
}
|
||||||
|
|
||||||
void Settings_display_config(T_Setting *setting, T_Config * conf, T_Special_button *panel)
|
void Settings_display_config(T_Setting *setting, T_Config * conf, T_Special_button *panel)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
Hide_cursor();
|
|
||||||
|
|
||||||
// A single button
|
// A single button
|
||||||
Print_in_window(155,166,(conf->Auto_save)?"YES":" NO",MC_Black,MC_Light);
|
Print_in_window(155,166,(conf->Auto_save)?"YES":" NO",MC_Black,MC_Light);
|
||||||
@ -837,7 +859,7 @@ void Settings_display_config(T_Setting *setting, T_Config * conf, T_Special_butt
|
|||||||
Window_rectangle(panel->Pos_X, panel->Pos_Y, panel->Width, panel->Height+1, MC_Light);
|
Window_rectangle(panel->Pos_X, panel->Pos_Y, panel->Width, panel->Height+1, MC_Light);
|
||||||
for (i=0; i<SETTING_PER_PAGE; i++)
|
for (i=0; i<SETTING_PER_PAGE; i++)
|
||||||
{
|
{
|
||||||
Print_in_window(panel->Pos_X+3, panel->Pos_Y+i*SETTING_HEIGHT+3, setting[i].Label, i==0?MC_White:MC_Dark, MC_Light);
|
Print_in_window(panel->Pos_X+3, panel->Pos_Y+i*SETTING_HEIGHT+(SETTING_HEIGHT-6)/2, setting[i].Label, i==0?MC_White:MC_Dark, MC_Light);
|
||||||
if(setting[i].Value)
|
if(setting[i].Value)
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -848,19 +870,17 @@ void Settings_display_config(T_Setting *setting, T_Config * conf, T_Special_butt
|
|||||||
// Use a lookup table to print a label
|
// Use a lookup table to print a label
|
||||||
const char *str;
|
const char *str;
|
||||||
str = Lookup_code(value,setting[i].Lookup);
|
str = Lookup_code(value,setting[i].Lookup);
|
||||||
Print_in_window(panel->Pos_X+3+176, panel->Pos_Y+i*SETTING_HEIGHT+3, str, MC_Black, MC_Light);
|
Print_in_window(panel->Pos_X+3+176, panel->Pos_Y+i*SETTING_HEIGHT+(SETTING_HEIGHT-6)/2, str, MC_Black, MC_Light);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Print a number
|
// Print a number
|
||||||
char str[10];
|
char str[10];
|
||||||
Num2str(value,str,setting[i].Digits);
|
Num2str(value,str,setting[i].Digits);
|
||||||
Print_in_window(panel->Pos_X+3+176, panel->Pos_Y+i*SETTING_HEIGHT+3, str, MC_Black, MC_Light);
|
Print_in_window(panel->Pos_X+3+176, panel->Pos_Y+i*SETTING_HEIGHT+(SETTING_HEIGHT-6)/2, str, MC_Black, MC_Light);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Display_cursor();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Settings_save_config(T_Config * conf)
|
void Settings_save_config(T_Config * conf)
|
||||||
@ -884,7 +904,7 @@ void Settings_load_config(T_Config * conf)
|
|||||||
void Button_Settings(void)
|
void Button_Settings(void)
|
||||||
{
|
{
|
||||||
short clicked_button;
|
short clicked_button;
|
||||||
T_Config Config_choisie;
|
T_Config config;
|
||||||
byte config_is_reloaded=0;
|
byte config_is_reloaded=0;
|
||||||
T_Special_button *panel;
|
T_Special_button *panel;
|
||||||
byte need_redraw=1;
|
byte need_redraw=1;
|
||||||
@ -898,56 +918,56 @@ void Button_Settings(void)
|
|||||||
|
|
||||||
{" --- GUI ---",0,NULL,0,0,0,NULL},
|
{" --- GUI ---",0,NULL,0,0,0,NULL},
|
||||||
{"",0,NULL,0,0,0,NULL},
|
{"",0,NULL,0,0,0,NULL},
|
||||||
{"Opening message:",1,&(Config_choisie.Opening_message),0,1,0,Lookup_YesNo},
|
{"Opening message:",1,&(config.Opening_message),0,1,0,Lookup_YesNo},
|
||||||
{"Menu ratio adapt:",1,&(Config_choisie.Ratio),0,1,0,Lookup_MenuRatio},
|
{"Menu ratio adapt:",1,&(config.Ratio),0,1,0,Lookup_MenuRatio},
|
||||||
{"Draw limits:",1,&(Config_choisie.Display_image_limits),0,1,0,Lookup_YesNo},
|
{"Draw limits:",1,&(config.Display_image_limits),0,1,0,Lookup_YesNo},
|
||||||
{"Coordinates:",1,&(Config_choisie.Coords_rel),0,1,0,Lookup_Coords},
|
{"Coordinates:",1,&(config.Coords_rel),0,1,0,Lookup_Coords},
|
||||||
{"Separate colors:",1,&(Config_choisie.Separate_colors),0,1,0,Lookup_YesNo},
|
{"Separate colors:",1,&(config.Separate_colors),0,1,0,Lookup_YesNo},
|
||||||
{"Safety colors:",1,&(Config_choisie.Safety_colors),0,1,0,Lookup_YesNo},
|
{"Safety colors:",1,&(config.Safety_colors),0,1,0,Lookup_YesNo},
|
||||||
{"Grid XOR color:",1,&(Config_choisie.Grid_XOR_color),0,255,3,NULL},
|
{"Grid XOR color:",1,&(config.Grid_XOR_color),0,255,3,NULL},
|
||||||
{"",0,NULL,0,0,0,NULL},
|
{"",0,NULL,0,0,0,NULL},
|
||||||
{"",0,NULL,0,0,0,NULL},
|
{"",0,NULL,0,0,0,NULL},
|
||||||
|
|
||||||
{" --- Input ---",0,NULL,0,0,0,NULL},
|
{" --- Input ---",0,NULL,0,0,0,NULL},
|
||||||
{"",0,NULL,0,0,0,NULL},
|
{"",0,NULL,0,0,0,NULL},
|
||||||
{"Scrollbar speed",0,NULL,0,0,0,NULL},
|
{"Scrollbar speed",0,NULL,0,0,0,NULL},
|
||||||
{" on left click:",1,&(Config_choisie.Delay_left_click_on_slider),1,255,4,NULL},
|
{" on left click:",1,&(config.Delay_left_click_on_slider),1,255,4,NULL},
|
||||||
{" on right click:",1,&(Config_choisie.Delay_right_click_on_slider),1,255,4,NULL},
|
{" on right click:",1,&(config.Delay_right_click_on_slider),1,255,4,NULL},
|
||||||
{"Merge movement:",1,&(Config_choisie.Mouse_merge_movement),0,100,4,NULL},
|
{"Merge movement:",1,&(config.Mouse_merge_movement),0,100,4,NULL},
|
||||||
{"Double click speed:",2,&(Config_choisie.Double_click_speed),1,1999,4,NULL},
|
{"Double click speed:",2,&(config.Double_click_speed),1,1999,4,NULL},
|
||||||
{"Double key speed:",2,&(Config_choisie.Double_key_speed),1,1999,4,NULL},
|
{"Double key speed:",2,&(config.Double_key_speed),1,1999,4,NULL},
|
||||||
{"",0,NULL,0,0,0,NULL},
|
{"Mouse speed (fullscreen)",0,NULL,0,0,0,NULL},
|
||||||
{"",0,NULL,0,0,0,NULL},
|
{" horizontally:",1,&(config.Mouse_sensitivity_index_x),1,4,0,Lookup_MouseSpeed},
|
||||||
{"",0,NULL,0,0,0,NULL},
|
{" vertically:",1,&(config.Mouse_sensitivity_index_y),1,4,0,Lookup_MouseSpeed},
|
||||||
|
|
||||||
{" --- Editing ---",0,NULL,0,0,0,NULL},
|
{" --- Editing ---",0,NULL,0,0,0,NULL},
|
||||||
{"",0,NULL,0,0,0,NULL},
|
{"",0,NULL,0,0,0,NULL},
|
||||||
{"Adjust brush pick:",1,&(Config_choisie.Adjust_brush_pick),0,1,0,Lookup_YesNo},
|
{"Adjust brush pick:",1,&(config.Adjust_brush_pick),0,1,0,Lookup_YesNo},
|
||||||
{"Undo pages:",1,&(Config_choisie.Max_undo_pages),1,99,5,NULL},
|
{"Undo pages:",1,&(config.Max_undo_pages),1,99,5,NULL},
|
||||||
{"Vertices per polygon:",4,&(Config_choisie.Nb_max_vertices_per_polygon),2,16384,5,NULL},
|
{"Vertices per polygon:",4,&(config.Nb_max_vertices_per_polygon),2,16384,5,NULL},
|
||||||
{"Fast zoom:",1,&(Config_choisie.Fast_zoom),0,1,0,Lookup_YesNo},
|
{"Fast zoom:",1,&(config.Fast_zoom),0,1,0,Lookup_YesNo},
|
||||||
{"Clear with stencil:",1,&(Config_choisie.Clear_with_stencil),0,1,0,Lookup_YesNo},
|
{"Clear with stencil:",1,&(config.Clear_with_stencil),0,1,0,Lookup_YesNo},
|
||||||
{"Auto discontinuous:",1,&(Config_choisie.Auto_discontinuous),0,1,0,Lookup_YesNo},
|
{"Auto discontinuous:",1,&(config.Auto_discontinuous),0,1,0,Lookup_YesNo},
|
||||||
{"Auto count colors:",1,&(Config_choisie.Auto_nb_used),0,1,0,Lookup_YesNo},
|
{"Auto count colors:",1,&(config.Auto_nb_used),0,1,0,Lookup_YesNo},
|
||||||
{"",0,NULL,0,0,0,NULL},
|
{"",0,NULL,0,0,0,NULL},
|
||||||
{"",0,NULL,0,0,0,NULL},
|
{"",0,NULL,0,0,0,NULL},
|
||||||
|
|
||||||
{" --- File selector ---",0,NULL,0,0,0,NULL},
|
{" --- File selector ---",0,NULL,0,0,0,NULL},
|
||||||
{"",0,NULL,0,0,0,NULL},
|
{"",0,NULL,0,0,0,NULL},
|
||||||
{"Show in fileselector",0,NULL,0,0,0,NULL},
|
{"Show in fileselector",0,NULL,0,0,0,NULL},
|
||||||
{" Hidden files:",4,&(Config_choisie.Show_hidden_files),0,1,0,Lookup_YesNo},
|
{" Hidden files:",4,&(config.Show_hidden_files),0,1,0,Lookup_YesNo},
|
||||||
{" Hidden dirs:",4,&(Config_choisie.Show_hidden_directories),0,1,0,Lookup_YesNo},
|
{" Hidden dirs:",4,&(config.Show_hidden_directories),0,1,0,Lookup_YesNo},
|
||||||
{"Preview delay:",4,&(Config_choisie.Timer_delay), 1,256,3,NULL},
|
{"Preview delay:",4,&(config.Timer_delay), 1,256,3,NULL},
|
||||||
{"Maximize preview:",1,&(Config_choisie.Maximize_preview), 0,1,0,Lookup_YesNo},
|
{"Maximize preview:",1,&(config.Maximize_preview), 0,1,0,Lookup_YesNo},
|
||||||
{"Find file fast:",1,&(Config_choisie.Find_file_fast), 0,2,0,Lookup_FFF},
|
{"Find file fast:",1,&(config.Find_file_fast), 0,2,0,Lookup_FFF},
|
||||||
{"Auto set resolution:",1,&(Config_choisie.Auto_set_res), 0,1,0,Lookup_YesNo},
|
{"Auto set resolution:",1,&(config.Auto_set_res), 0,1,0,Lookup_YesNo},
|
||||||
{" According to:",1,&(Config_choisie.Set_resolution_according_to), 1,2,0,Lookup_AutoRes},
|
{" According to:",1,&(config.Set_resolution_according_to), 1,2,0,Lookup_AutoRes},
|
||||||
{"Backup:",1,&(Config_choisie.Backup), 0,1,0,Lookup_YesNo},
|
{"Backup:",1,&(config.Backup), 0,1,0,Lookup_YesNo},
|
||||||
|
|
||||||
{" --- Format options ---",0,NULL,0,0,0,NULL},
|
{" --- Format options ---",0,NULL,0,0,0,NULL},
|
||||||
{"",0,NULL,0,0,0,NULL},
|
{"",0,NULL,0,0,0,NULL},
|
||||||
{"Screen size in GIF:",1,&(Config_choisie.Screen_size_in_GIF),0,1,0,Lookup_YesNo},
|
{"Screen size in GIF:",1,&(config.Screen_size_in_GIF),0,1,0,Lookup_YesNo},
|
||||||
{"Clear palette:",1,&(Config_choisie.Clear_palette),0,1,0,Lookup_YesNo},
|
{"Clear palette:",1,&(config.Clear_palette),0,1,0,Lookup_YesNo},
|
||||||
{"",0,NULL,0,0,0,NULL},
|
{"",0,NULL,0,0,0,NULL},
|
||||||
{"",0,NULL,0,0,0,NULL},
|
{"",0,NULL,0,0,0,NULL},
|
||||||
{"",0,NULL,0,0,0,NULL},
|
{"",0,NULL,0,0,0,NULL},
|
||||||
@ -967,7 +987,7 @@ void Button_Settings(void)
|
|||||||
"FILE FORMAT OPTIONS",
|
"FILE FORMAT OPTIONS",
|
||||||
};
|
};
|
||||||
|
|
||||||
Config_choisie=Config;
|
config=Config;
|
||||||
|
|
||||||
Open_window(307,182,"Settings");
|
Open_window(307,182,"Settings");
|
||||||
|
|
||||||
@ -991,7 +1011,7 @@ void Button_Settings(void)
|
|||||||
if (need_redraw)
|
if (need_redraw)
|
||||||
{
|
{
|
||||||
Hide_cursor();
|
Hide_cursor();
|
||||||
Settings_display_config(setting+current_page*SETTING_PER_PAGE, &Config_choisie, panel);
|
Settings_display_config(setting+current_page*SETTING_PER_PAGE, &config, panel);
|
||||||
if (need_redraw & 2)
|
if (need_redraw & 2)
|
||||||
{
|
{
|
||||||
// Including slider position
|
// Including slider position
|
||||||
@ -1010,16 +1030,16 @@ void Button_Settings(void)
|
|||||||
{
|
{
|
||||||
|
|
||||||
case 1 : // Reload
|
case 1 : // Reload
|
||||||
Settings_load_config(&Config_choisie);
|
Settings_load_config(&config);
|
||||||
config_is_reloaded=1;
|
config_is_reloaded=1;
|
||||||
need_redraw=1;
|
need_redraw=1;
|
||||||
break;
|
break;
|
||||||
case 2 : // Auto-save
|
case 2 : // Auto-save
|
||||||
Config_choisie.Auto_save=!Config_choisie.Auto_save;
|
config.Auto_save=!config.Auto_save;
|
||||||
need_redraw=1;
|
need_redraw=1;
|
||||||
break;
|
break;
|
||||||
case 3 : // Save
|
case 3 : // Save
|
||||||
Settings_save_config(&Config_choisie);
|
Settings_save_config(&config);
|
||||||
break;
|
break;
|
||||||
// case 4: // Close
|
// case 4: // Close
|
||||||
|
|
||||||
@ -1036,14 +1056,17 @@ void Button_Settings(void)
|
|||||||
// Remember which button is clicked
|
// Remember which button is clicked
|
||||||
byte old_mouse_k = Mouse_K;
|
byte old_mouse_k = Mouse_K;
|
||||||
|
|
||||||
if (Window_normal_button_onclick(panel->Pos_X, panel->Pos_Y+num*SETTING_HEIGHT+1, panel->Width, SETTING_HEIGHT, 5))
|
if (Window_normal_button_onclick(panel->Pos_X, panel->Pos_Y+num*SETTING_HEIGHT, panel->Width, SETTING_HEIGHT+1, 5))
|
||||||
{
|
{
|
||||||
int value = Get_setting_value(&item);
|
int value = Get_setting_value(&item);
|
||||||
|
|
||||||
if (item.Lookup)
|
if (item.Lookup)
|
||||||
{
|
{
|
||||||
// Enum: toggle it
|
// Enum: toggle it
|
||||||
value = Lookup_toggle(value, item.Lookup);
|
if (old_mouse_k & LEFT_SIDE)
|
||||||
|
value = Lookup_next(value, item.Lookup);
|
||||||
|
else
|
||||||
|
value = Lookup_previous(value, item.Lookup);
|
||||||
Set_setting_value(&item, value);
|
Set_setting_value(&item, value);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1053,7 +1076,7 @@ void Button_Settings(void)
|
|||||||
str[0]='\0';
|
str[0]='\0';
|
||||||
if (! (old_mouse_k & RIGHT_SIDE))
|
if (! (old_mouse_k & RIGHT_SIDE))
|
||||||
Num2str(value,str,item.Digits+1);
|
Num2str(value,str,item.Digits+1);
|
||||||
if (Readline(panel->Pos_X+3+176, panel->Pos_Y+num*SETTING_HEIGHT+3,str,item.Digits+1,1))
|
if (Readline(panel->Pos_X+3+176, panel->Pos_Y+num*SETTING_HEIGHT+(SETTING_HEIGHT-6)/2,str,item.Digits+1,1))
|
||||||
{
|
{
|
||||||
value=atoi(str);
|
value=atoi(str);
|
||||||
if (value<item.Min_value)
|
if (value<item.Min_value)
|
||||||
@ -1077,16 +1100,6 @@ void Button_Settings(void)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
/* Keep in reserve:
|
|
||||||
Piece of code to reset fileselector offsets
|
|
||||||
if the visibility settings changed.
|
|
||||||
if ((clicked_button>=3) && (clicked_button<=4))
|
|
||||||
{
|
|
||||||
Main_fileselector_position=0;
|
|
||||||
Main_fileselector_offset=0;
|
|
||||||
Spare_fileselector_position=0;
|
|
||||||
Spare_fileselector_offset=0;
|
|
||||||
}*/
|
|
||||||
|
|
||||||
if (Key == KEY_MOUSEWHEELDOWN)
|
if (Key == KEY_MOUSEWHEELDOWN)
|
||||||
{
|
{
|
||||||
@ -1111,7 +1124,19 @@ void Button_Settings(void)
|
|||||||
}
|
}
|
||||||
while ( (clicked_button!=4) && (Key!=SDLK_RETURN) );
|
while ( (clicked_button!=4) && (Key!=SDLK_RETURN) );
|
||||||
|
|
||||||
Config=Config_choisie;
|
// Checks on change
|
||||||
|
if (Config.Show_hidden_directories!=config.Show_hidden_directories
|
||||||
|
||Config.Show_hidden_files!=config.Show_hidden_files)
|
||||||
|
{
|
||||||
|
// Reset fileselector offsets
|
||||||
|
// since different files are shown now
|
||||||
|
Main_fileselector_position=0;
|
||||||
|
Main_fileselector_offset=0;
|
||||||
|
Spare_fileselector_position=0;
|
||||||
|
Spare_fileselector_offset=0;
|
||||||
|
}
|
||||||
|
// Copy all
|
||||||
|
Config=config;
|
||||||
|
|
||||||
if (config_is_reloaded)
|
if (config_is_reloaded)
|
||||||
Compute_optimal_menu_colors(Main_palette);
|
Compute_optimal_menu_colors(Main_palette);
|
||||||
@ -1237,10 +1262,6 @@ void Button_Skins(void)
|
|||||||
|
|
||||||
#define FILESEL_Y 34
|
#define FILESEL_Y 34
|
||||||
|
|
||||||
// Show preferred colors
|
|
||||||
Set_color(MC_Dark, Config.Fav_menu_colors[1].R, Config.Fav_menu_colors[1].G, Config.Fav_menu_colors[1].B);
|
|
||||||
Set_color(MC_Light, Config.Fav_menu_colors[2].R, Config.Fav_menu_colors[2].G, Config.Fav_menu_colors[2].B);
|
|
||||||
|
|
||||||
// --- Read the contents of skins/ directory ------------------
|
// --- Read the contents of skins/ directory ------------------
|
||||||
|
|
||||||
// Here we use the same data container as the fileselectors.
|
// Here we use the same data container as the fileselectors.
|
||||||
@ -1353,27 +1374,37 @@ void Button_Skins(void)
|
|||||||
for (y = 14, offs_y = 0; offs_y < 16; offs_y++, y++)
|
for (y = 14, offs_y = 0; offs_y < 16; offs_y++, y++)
|
||||||
for (x = 6, x_pos = 0; x_pos<173; x_pos++, x++)
|
for (x = 6, x_pos = 0; x_pos<173; x_pos++, x++)
|
||||||
{
|
{
|
||||||
if (gfx->Preview[offs_y][x_pos] == gfx->Color_black)
|
if (gfx->Preview[offs_y][x_pos] == gfx->Color[0])
|
||||||
Pixel_in_window(x, y, MC_Black);
|
Pixel_in_window(x, y, MC_Black);
|
||||||
else if (gfx->Preview[offs_y][x_pos] == gfx->Color_dark)
|
else if (gfx->Preview[offs_y][x_pos] == gfx->Color[1])
|
||||||
Pixel_in_window(x, y, MC_Dark);
|
Pixel_in_window(x, y, MC_Dark);
|
||||||
else if (gfx->Preview[offs_y][x_pos] == gfx->Color_white)
|
else if (gfx->Preview[offs_y][x_pos] == gfx->Color[3])
|
||||||
Pixel_in_window(x, y, MC_White);
|
Pixel_in_window(x, y, MC_White);
|
||||||
else if (gfx->Preview[offs_y][x_pos] == gfx->Color_light)
|
else if (gfx->Preview[offs_y][x_pos] == gfx->Color[2])
|
||||||
Pixel_in_window(x, y, MC_Light);
|
Pixel_in_window(x, y, MC_Light);
|
||||||
}
|
}
|
||||||
// Actualize current screen according to preferred GUI colors
|
// Actualize current screen according to preferred GUI colors
|
||||||
// Note this only updates onscreen colors
|
// Note this only updates onscreen colors
|
||||||
|
Set_color(
|
||||||
|
MC_Black,
|
||||||
|
gfx->Default_palette[gfx->Color[0]].R,
|
||||||
|
gfx->Default_palette[gfx->Color[0]].G,
|
||||||
|
gfx->Default_palette[gfx->Color[0]].B);
|
||||||
Set_color(
|
Set_color(
|
||||||
MC_Dark,
|
MC_Dark,
|
||||||
gfx->Default_palette[gfx->Color_dark].R,
|
gfx->Default_palette[gfx->Color[1]].R,
|
||||||
gfx->Default_palette[gfx->Color_dark].G,
|
gfx->Default_palette[gfx->Color[1]].G,
|
||||||
gfx->Default_palette[gfx->Color_dark].B);
|
gfx->Default_palette[gfx->Color[1]].B);
|
||||||
Set_color(
|
Set_color(
|
||||||
MC_Light,
|
MC_Light,
|
||||||
gfx->Default_palette[gfx->Color_light].R,
|
gfx->Default_palette[gfx->Color[2]].R,
|
||||||
gfx->Default_palette[gfx->Color_light].G,
|
gfx->Default_palette[gfx->Color[2]].G,
|
||||||
gfx->Default_palette[gfx->Color_light].B);
|
gfx->Default_palette[gfx->Color[2]].B);
|
||||||
|
Set_color(
|
||||||
|
MC_White,
|
||||||
|
gfx->Default_palette[gfx->Color[3]].R,
|
||||||
|
gfx->Default_palette[gfx->Color[3]].G,
|
||||||
|
gfx->Default_palette[gfx->Color[3]].B);
|
||||||
}
|
}
|
||||||
Update_window_area(6, 14, 173, 16);
|
Update_window_area(6, 14, 173, 16);
|
||||||
|
|
||||||
|
|||||||
48
src/init.c
48
src/init.c
@ -134,7 +134,7 @@ byte Read_GUI_block(T_Gui_skin *gfx, SDL_Surface *gui, int start_x, int start_y,
|
|||||||
{
|
{
|
||||||
// type: 0 = normal GUI element, only 4 colors allowed
|
// type: 0 = normal GUI element, only 4 colors allowed
|
||||||
// type: 1 = mouse cursor, 4 colors allowed + transparent
|
// type: 1 = mouse cursor, 4 colors allowed + transparent
|
||||||
// type: 2 = brush icon or sieve pattern (only gui->Color_white and gui->Color_trans)
|
// type: 2 = brush icon or sieve pattern (only gui->Color[3] and gui->Color_trans)
|
||||||
// type: 3 = raw bitmap (splash screen)
|
// type: 3 = raw bitmap (splash screen)
|
||||||
|
|
||||||
byte * dest_ptr=dest;
|
byte * dest_ptr=dest;
|
||||||
@ -154,24 +154,24 @@ byte Read_GUI_block(T_Gui_skin *gfx, SDL_Surface *gui, int start_x, int start_y,
|
|||||||
for (x=start_x; x<start_x+width; x++)
|
for (x=start_x; x<start_x+width; x++)
|
||||||
{
|
{
|
||||||
color=Get_SDL_pixel_8(gui,x,y);
|
color=Get_SDL_pixel_8(gui,x,y);
|
||||||
if (type==0 && (color != gfx->Color_black && color != gfx->Color_dark && color != gfx->Color_light && color != gfx->Color_white))
|
if (type==0 && (color != gfx->Color[0] && color != gfx->Color[1] && color != gfx->Color[2] && color != gfx->Color[3]))
|
||||||
{
|
{
|
||||||
sprintf(Gui_loading_error_message, "Error in skin file: Was looking at %d,%d for a %d*%d object (%s) but at %d,%d a pixel was found with color %d which isn't one of the GUI colors (which were detected as %d,%d,%d,%d.\n",
|
sprintf(Gui_loading_error_message, "Error in skin file: Was looking at %d,%d for a %d*%d object (%s) but at %d,%d a pixel was found with color %d which isn't one of the GUI colors (which were detected as %d,%d,%d,%d.\n",
|
||||||
start_x, start_y, height, width, section, x, y, color, gfx->Color_black, gfx->Color_dark, gfx->Color_light, gfx->Color_white);
|
start_x, start_y, height, width, section, x, y, color, gfx->Color[0], gfx->Color[1], gfx->Color[2], gfx->Color[3]);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if (type==1 && (color != gfx->Color_black && color != gfx->Color_dark && color != gfx->Color_light && color != gfx->Color_white && color != gfx->Color_trans))
|
if (type==1 && (color != gfx->Color[0] && color != gfx->Color[1] && color != gfx->Color[2] && color != gfx->Color[3] && color != gfx->Color_trans))
|
||||||
{
|
{
|
||||||
sprintf(Gui_loading_error_message, "Error in skin file: Was looking at %d,%d for a %d*%d object (%s) but at %d,%d a pixel was found with color %d which isn't one of the mouse colors (which were detected as %d,%d,%d,%d,%d.\n",
|
sprintf(Gui_loading_error_message, "Error in skin file: Was looking at %d,%d for a %d*%d object (%s) but at %d,%d a pixel was found with color %d which isn't one of the mouse colors (which were detected as %d,%d,%d,%d,%d.\n",
|
||||||
start_x, start_y, height, width, section, x, y, color, gfx->Color_black, gfx->Color_dark, gfx->Color_light, gfx->Color_white, gfx->Color_trans);
|
start_x, start_y, height, width, section, x, y, color, gfx->Color[0], gfx->Color[1], gfx->Color[2], gfx->Color[3], gfx->Color_trans);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if (type==2)
|
if (type==2)
|
||||||
{
|
{
|
||||||
if (color != gfx->Color_white && color != gfx->Color_trans)
|
if (color != gfx->Color[3] && color != gfx->Color_trans)
|
||||||
{
|
{
|
||||||
sprintf(Gui_loading_error_message, "Error in skin file: Was looking at %d,%d for a %d*%d object (%s) but at %d,%d a pixel was found with color %d which isn't one of the brush colors (which were detected as %d on %d.\n",
|
sprintf(Gui_loading_error_message, "Error in skin file: Was looking at %d,%d for a %d*%d object (%s) but at %d,%d a pixel was found with color %d which isn't one of the brush colors (which were detected as %d on %d.\n",
|
||||||
start_x, start_y, height, width, section, x, y, color, gfx->Color_white, gfx->Color_trans);
|
start_x, start_y, height, width, section, x, y, color, gfx->Color[3], gfx->Color_trans);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
// Conversion en 0/1 pour les brosses monochromes internes
|
// Conversion en 0/1 pour les brosses monochromes internes
|
||||||
@ -278,7 +278,7 @@ byte Parse_skin(SDL_Surface * gui, T_Gui_skin *gfx)
|
|||||||
Get_SDL_Palette(SDLPal, gfx->Default_palette);
|
Get_SDL_Palette(SDLPal, gfx->Default_palette);
|
||||||
|
|
||||||
// Carré "noir"
|
// Carré "noir"
|
||||||
gfx->Color_black = Get_SDL_pixel_8(gui,cursor_x,cursor_y);
|
gfx->Color[0] = Get_SDL_pixel_8(gui,cursor_x,cursor_y);
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
if (++cursor_x>=gui->w)
|
if (++cursor_x>=gui->w)
|
||||||
@ -287,9 +287,9 @@ byte Parse_skin(SDL_Surface * gui, T_Gui_skin *gfx)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
color=Get_SDL_pixel_8(gui,cursor_x,cursor_y);
|
color=Get_SDL_pixel_8(gui,cursor_x,cursor_y);
|
||||||
} while(color==gfx->Color_black);
|
} while(color==gfx->Color[0]);
|
||||||
// Carré "foncé"
|
// Carré "foncé"
|
||||||
gfx->Color_dark = color;
|
gfx->Color[1] = color;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
if (++cursor_x>=gui->w)
|
if (++cursor_x>=gui->w)
|
||||||
@ -298,9 +298,9 @@ byte Parse_skin(SDL_Surface * gui, T_Gui_skin *gfx)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
color=Get_SDL_pixel_8(gui,cursor_x,cursor_y);
|
color=Get_SDL_pixel_8(gui,cursor_x,cursor_y);
|
||||||
} while(color==gfx->Color_dark);
|
} while(color==gfx->Color[1]);
|
||||||
// Carré "clair"
|
// Carré "clair"
|
||||||
gfx->Color_light = color;
|
gfx->Color[2] = color;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
if (++cursor_x>gui->w)
|
if (++cursor_x>gui->w)
|
||||||
@ -309,9 +309,9 @@ byte Parse_skin(SDL_Surface * gui, T_Gui_skin *gfx)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
color=Get_SDL_pixel_8(gui,cursor_x,cursor_y);
|
color=Get_SDL_pixel_8(gui,cursor_x,cursor_y);
|
||||||
} while(color==gfx->Color_light);
|
} while(color==gfx->Color[2]);
|
||||||
// Carré "blanc"
|
// Carré "blanc"
|
||||||
gfx->Color_white = color;
|
gfx->Color[3] = color;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
if (++cursor_x>=gui->w)
|
if (++cursor_x>=gui->w)
|
||||||
@ -320,7 +320,7 @@ byte Parse_skin(SDL_Surface * gui, T_Gui_skin *gfx)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
color=Get_SDL_pixel_8(gui,cursor_x,cursor_y);
|
color=Get_SDL_pixel_8(gui,cursor_x,cursor_y);
|
||||||
} while(color==gfx->Color_white);
|
} while(color==gfx->Color[3]);
|
||||||
// Carré "transparent"
|
// Carré "transparent"
|
||||||
gfx->Color_trans=color;
|
gfx->Color_trans=color;
|
||||||
do
|
do
|
||||||
@ -338,7 +338,7 @@ byte Parse_skin(SDL_Surface * gui, T_Gui_skin *gfx)
|
|||||||
|
|
||||||
cursor_x=0;
|
cursor_x=0;
|
||||||
cursor_y=1;
|
cursor_y=1;
|
||||||
while ((color=Get_SDL_pixel_8(gui,cursor_x,cursor_y))==gfx->Color_black)
|
while ((color=Get_SDL_pixel_8(gui,cursor_x,cursor_y))==gfx->Color[0])
|
||||||
{
|
{
|
||||||
cursor_y++;
|
cursor_y++;
|
||||||
if (cursor_y>=gui->h)
|
if (cursor_y>=gui->h)
|
||||||
@ -2644,16 +2644,16 @@ void Set_current_skin(const char *skinfile, T_Gui_skin *gfx)
|
|||||||
Config.Skin_file = strdup(skinfile);
|
Config.Skin_file = strdup(skinfile);
|
||||||
}
|
}
|
||||||
|
|
||||||
Config.Fav_menu_colors[0] = gfx->Default_palette[gfx->Color_black];
|
//Config.Fav_menu_colors[0] = gfx->Default_palette[gfx->Color[0]];
|
||||||
Config.Fav_menu_colors[1] = gfx->Default_palette[gfx->Color_dark];
|
//Config.Fav_menu_colors[1] = gfx->Default_palette[gfx->Color[1]];
|
||||||
Config.Fav_menu_colors[2] = gfx->Default_palette[gfx->Color_light];
|
//Config.Fav_menu_colors[2] = gfx->Default_palette[gfx->Color[2]];
|
||||||
Config.Fav_menu_colors[3] = gfx->Default_palette[gfx->Color_white];
|
//Config.Fav_menu_colors[3] = gfx->Default_palette[gfx->Color[3]];
|
||||||
|
|
||||||
// Reassign GUI color indices
|
// Reassign GUI color indices
|
||||||
MC_Black = gfx->Color_black;
|
MC_Black = gfx->Color[0];
|
||||||
MC_Dark = gfx->Color_dark;
|
MC_Dark = gfx->Color[1];
|
||||||
MC_Light = gfx->Color_light;
|
MC_Light = gfx->Color[2];
|
||||||
MC_White = gfx->Color_white;
|
MC_White = gfx->Color[3];
|
||||||
MC_Trans = gfx->Color_trans;
|
MC_Trans = gfx->Color_trans;
|
||||||
|
|
||||||
// Set menubars to point to the new data
|
// Set menubars to point to the new data
|
||||||
|
|||||||
@ -674,10 +674,10 @@ int Init_program(int argc,char * argv[])
|
|||||||
}
|
}
|
||||||
Set_current_skin(Config.Skin_file, gfx);
|
Set_current_skin(Config.Skin_file, gfx);
|
||||||
// Override colors
|
// Override colors
|
||||||
// Gfx->Default_palette[MC_Black]=Fav_menu_colors[0]=Config.Fav_menu_colors[0];
|
// Gfx->Default_palette[MC_Black]=Config.Fav_menu_colors[0];
|
||||||
// Gfx->Default_palette[MC_Dark] =Fav_menu_colors[1]=Config.Fav_menu_colors[1];
|
// Gfx->Default_palette[MC_Dark] =Config.Fav_menu_colors[1];
|
||||||
// Gfx->Default_palette[MC_Light]=Fav_menu_colors[2]=Config.Fav_menu_colors[2];
|
// Gfx->Default_palette[MC_Light]=Config.Fav_menu_colors[2];
|
||||||
// Gfx->Default_palette[MC_White]=Fav_menu_colors[3]=Config.Fav_menu_colors[3];
|
// Gfx->Default_palette[MC_White]=Config.Fav_menu_colors[3];
|
||||||
// Compute_optimal_menu_colors(Gfx->Default_palette);
|
// Compute_optimal_menu_colors(Gfx->Default_palette);
|
||||||
|
|
||||||
// Infos sur les trames (Sieve)
|
// Infos sur les trames (Sieve)
|
||||||
|
|||||||
@ -453,9 +453,10 @@ void Set_nice_menu_colors(dword * color_usage,int not_picture)
|
|||||||
rgb[index].R=Main_palette[color].R;
|
rgb[index].R=Main_palette[color].R;
|
||||||
rgb[index].G=Main_palette[color].G;
|
rgb[index].G=Main_palette[color].G;
|
||||||
rgb[index].B=Main_palette[color].B;
|
rgb[index].B=Main_palette[color].B;
|
||||||
Main_palette[color].R=Config.Fav_menu_colors[index].R;
|
// Should be Config.Fav_menu_colors[index] if using user colors
|
||||||
Main_palette[color].G=Config.Fav_menu_colors[index].G;
|
Main_palette[color].R=Gfx->Default_palette[Gfx->Color[index]].R;
|
||||||
Main_palette[color].B=Config.Fav_menu_colors[index].B;
|
Main_palette[color].G=Gfx->Default_palette[Gfx->Color[index]].G;
|
||||||
|
Main_palette[color].B=Gfx->Default_palette[Gfx->Color[index]].B;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Maintenant qu'on a placé notre nouvelle palette, on va chercher quelles
|
// Maintenant qu'on a placé notre nouvelle palette, on va chercher quelles
|
||||||
|
|||||||
10
src/struct.h
10
src/struct.h
@ -453,14 +453,8 @@ typedef struct
|
|||||||
/// Preview for displaying in the skin dialog
|
/// Preview for displaying in the skin dialog
|
||||||
byte Preview[16][173];
|
byte Preview[16][173];
|
||||||
|
|
||||||
/// Black GUI color index in skin palette
|
/// GUI color indices in skin palette: black, dark, light, white.
|
||||||
byte Color_black;
|
byte Color[4];
|
||||||
/// Dark GUI color index in skin palette
|
|
||||||
byte Color_dark;
|
|
||||||
/// Light GUI color index in skin palette
|
|
||||||
byte Color_light;
|
|
||||||
/// White GUI color index in skin palette
|
|
||||||
byte Color_white;
|
|
||||||
/// Transparent GUI color index in skin file
|
/// Transparent GUI color index in skin file
|
||||||
byte Color_trans;
|
byte Color_trans;
|
||||||
|
|
||||||
|
|||||||
@ -2849,12 +2849,12 @@ void Compute_optimal_menu_colors(T_Components * palette)
|
|||||||
|
|
||||||
// Recherche du noir
|
// Recherche du noir
|
||||||
Compute_4_best_colors_for_1_menu_color
|
Compute_4_best_colors_for_1_menu_color
|
||||||
(Config.Fav_menu_colors[0].R, Config.Fav_menu_colors[0].G, Config.Fav_menu_colors[0].B,palette,table);
|
(Gfx->Default_palette[Gfx->Color[0]].R, Gfx->Default_palette[Gfx->Color[0]].G, Gfx->Default_palette[Gfx->Color[0]].B,palette,table);
|
||||||
MC_Black=table[0];
|
MC_Black=table[0];
|
||||||
|
|
||||||
// Recherche du blanc
|
// Recherche du blanc
|
||||||
Compute_4_best_colors_for_1_menu_color
|
Compute_4_best_colors_for_1_menu_color
|
||||||
(Config.Fav_menu_colors[3].R, Config.Fav_menu_colors[3].G, Config.Fav_menu_colors[3].B,palette,table);
|
(Gfx->Default_palette[Gfx->Color[3]].R, Gfx->Default_palette[Gfx->Color[3]].G, Gfx->Default_palette[Gfx->Color[3]].B,palette,table);
|
||||||
if (MC_Black!=table[0])
|
if (MC_Black!=table[0])
|
||||||
MC_White=table[0];
|
MC_White=table[0];
|
||||||
else
|
else
|
||||||
@ -2862,7 +2862,7 @@ void Compute_optimal_menu_colors(T_Components * palette)
|
|||||||
|
|
||||||
// Recherche du gris clair
|
// Recherche du gris clair
|
||||||
Compute_4_best_colors_for_1_menu_color
|
Compute_4_best_colors_for_1_menu_color
|
||||||
(Config.Fav_menu_colors[2].R, Config.Fav_menu_colors[2].G, Config.Fav_menu_colors[2].B,palette,table);
|
(Gfx->Default_palette[Gfx->Color[2]].R, Gfx->Default_palette[Gfx->Color[2]].G, Gfx->Default_palette[Gfx->Color[2]].B,palette,table);
|
||||||
if ( (MC_Black!=table[0]) && (MC_White!=table[0]) )
|
if ( (MC_Black!=table[0]) && (MC_White!=table[0]) )
|
||||||
MC_Light=table[0];
|
MC_Light=table[0];
|
||||||
else
|
else
|
||||||
@ -2875,7 +2875,7 @@ void Compute_optimal_menu_colors(T_Components * palette)
|
|||||||
|
|
||||||
// Recherche du gris foncé
|
// Recherche du gris foncé
|
||||||
Compute_4_best_colors_for_1_menu_color
|
Compute_4_best_colors_for_1_menu_color
|
||||||
(Config.Fav_menu_colors[1].R, Config.Fav_menu_colors[1].G, Config.Fav_menu_colors[1].B,palette,table);
|
(Gfx->Default_palette[Gfx->Color[1]].R, Gfx->Default_palette[Gfx->Color[1]].G, Gfx->Default_palette[Gfx->Color[1]].B,palette,table);
|
||||||
if ( (MC_Black!=table[0]) && (MC_White!=table[0]) && (MC_Light!=table[0]) )
|
if ( (MC_Black!=table[0]) && (MC_White!=table[0]) && (MC_Light!=table[0]) )
|
||||||
MC_Dark=table[0];
|
MC_Dark=table[0];
|
||||||
else
|
else
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user