-Introduce new Requester_window to ask the user to enter a single value
-Reduce colors in the palette screen is now a dropdown for easy access to usual values. "Other" option opens a requester to enter a custom one if needed -Some cleanup to make things a little more readable -Build fixes after versionning system revert git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@1090 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
		
							parent
							
								
									19decb6d4c
								
							
						
					
					
						commit
						111fbbcf33
					
				
							
								
								
									
										12
									
								
								buttons.c
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								buttons.c
									
									
									
									
									
								
							@ -70,7 +70,7 @@
 | 
			
		||||
    #define isHidden(x) ((x)->d_name[0]=='.')
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//extern char Program_version[]; // generated in pversion.c
 | 
			
		||||
extern char Program_version[]; // generated in pversion.c
 | 
			
		||||
 | 
			
		||||
extern short Old_MX;
 | 
			
		||||
extern short Old_MY;
 | 
			
		||||
@ -793,15 +793,6 @@ void Button_Settings(void)
 | 
			
		||||
  Window_display_frame(163, 16,139,48); // Show in filelist
 | 
			
		||||
  Window_display_frame(253, 77, 49,82); // Mouse sens.
 | 
			
		||||
  Window_display_frame(  5, 65,247,96); // |_ Misc.
 | 
			
		||||
/*  Window_display_frame(  5, 65,157,14); // |
 | 
			
		||||
  // On découpe le Frame bizarre des "Miscellaneous"
 | 
			
		||||
  Pixel_in_window(6,77,MC_White);
 | 
			
		||||
  Pixel_in_window(5,78,MC_Dark);
 | 
			
		||||
  Block(Window_pos_X+(7*Menu_factor_X),Window_pos_Y+(77*Menu_factor_Y),
 | 
			
		||||
        Menu_factor_X*154,Menu_factor_Y<<1,MC_Light);
 | 
			
		||||
  Pixel_in_window(161,77,MC_Light);
 | 
			
		||||
  Pixel_in_window(160,77,MC_Dark);
 | 
			
		||||
*/
 | 
			
		||||
  // On affiche maintenant tout le blabla
 | 
			
		||||
  Print_in_window(169, 19,"Show in filelist",MC_Dark,MC_Light);
 | 
			
		||||
  Print_in_window(  9, 52,"Nb of UNDO pages",MC_Dark,MC_Light);
 | 
			
		||||
@ -815,7 +806,6 @@ void Button_Settings(void)
 | 
			
		||||
  // Button Show/Hide dans le fileselect
 | 
			
		||||
  Window_set_normal_button(167, 28,131,14,"Hidden files:   ",0,1,SDLK_LAST); // 1
 | 
			
		||||
  Window_set_normal_button(167, 43,131,14,"Hidden dir. :   ",0,1,SDLK_LAST); // 2
 | 
			
		||||
//  Window_set_normal_button(167, 58,131,14,"System dir. :   ",0,1,SDLK_LAST);
 | 
			
		||||
 | 
			
		||||
  // Button Show/Hide Picture limits
 | 
			
		||||
  Window_set_normal_button(  9, 81,107,14,"Limits   :   ",0,1,SDLK_LAST); // 3
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										20
									
								
								engine.h
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								engine.h
									
									
									
									
									
								
							@ -52,12 +52,11 @@ void Window_clear_input_button(T_Special_button * button);
 | 
			
		||||
void Window_draw_input_bouton(word x_pos, word y_pos, word width_in_characters);
 | 
			
		||||
 | 
			
		||||
T_Normal_button * Window_set_normal_button(word x_pos, word y_pos,
 | 
			
		||||
                                   word width, word height,
 | 
			
		||||
                                   char * title,byte undersc_letter,
 | 
			
		||||
	word width, word height, char * title, byte undersc_letter,
 | 
			
		||||
	byte clickable, word shortcut);
 | 
			
		||||
 | 
			
		||||
T_Normal_button * Window_set_repeatable_button(word x_pos, word y_pos,
 | 
			
		||||
                                   word width, word height,
 | 
			
		||||
                                   char * title,byte undersc_letter,
 | 
			
		||||
	word width, word height, char * title, byte undersc_letter,
 | 
			
		||||
	byte clickable, word shortcut);
 | 
			
		||||
 | 
			
		||||
T_Palette_button * Window_set_palette_button(word x_pos, word y_pos);
 | 
			
		||||
@ -67,15 +66,22 @@ void Tag_color_range(byte start,byte end);
 | 
			
		||||
T_Scroller_button * Window_set_scroller_button(word x_pos, word y_pos,
 | 
			
		||||
	word height, word nb_elements, word nb_elements_visible,
 | 
			
		||||
	word initial_position);
 | 
			
		||||
 | 
			
		||||
T_Special_button * Window_set_special_button(word x_pos, word y_pos, word width,
 | 
			
		||||
	word height);
 | 
			
		||||
 | 
			
		||||
T_Special_button * Window_set_input_button(word x_pos, word y_pos,
 | 
			
		||||
	word width_in_characters);
 | 
			
		||||
T_Dropdown_button * Window_set_dropdown_button(word x_pos,word y_pos,word width,
 | 
			
		||||
	word height,word dropdown_width,const char *label,byte display_choice,
 | 
			
		||||
	byte display_centered,byte display_arrow,byte active_button);
 | 
			
		||||
 | 
			
		||||
T_Dropdown_button * Window_set_dropdown_button(word x_pos, word y_pos,
 | 
			
		||||
	word width,	word height, word dropdown_width, const char *label,
 | 
			
		||||
	byte display_choice, byte display_centered, byte display_arrow,
 | 
			
		||||
	byte active_button);
 | 
			
		||||
 | 
			
		||||
/// Adds an item to a dropdown menu
 | 
			
		||||
void Window_dropdown_add_item(T_Dropdown_button * dropdown, word btn_number,
 | 
			
		||||
	const char *label);
 | 
			
		||||
 | 
			
		||||
void Window_dropdown_clear_items(T_Dropdown_button * dropdown);
 | 
			
		||||
T_List_button * Window_set_list_button(T_Special_button * entry_button,
 | 
			
		||||
	T_Scroller_button * scroller, Func_draw_list_item draw_list_item);
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										3
									
								
								help.c
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								help.c
									
									
									
									
									
								
							@ -46,6 +46,9 @@
 | 
			
		||||
#include "hotkeys.h"
 | 
			
		||||
#include "errors.h"
 | 
			
		||||
 | 
			
		||||
extern char Program_version[]; // generated in pversion.c
 | 
			
		||||
extern char SVN_revision[]; // generated in pversion.c
 | 
			
		||||
 | 
			
		||||
// Recherche un raccourci clavier:
 | 
			
		||||
word * Shortcut(word shortcut_number)
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								main.c
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								main.c
									
									
									
									
									
								
							@ -1,4 +1,4 @@
 | 
			
		||||
/*  Grafx2 - The Ultimate 256-color bitmap paint program
 | 
			
		||||
/*  Grafx1 - The Ultimate 256-color bitmap paint program
 | 
			
		||||
 | 
			
		||||
    Copyright 2008 Peter Gordon
 | 
			
		||||
    Copyright 2008 Franck Charlet
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										165
									
								
								palette.c
									
									
									
									
									
								
							
							
						
						
									
										165
									
								
								palette.c
									
									
									
									
									
								
							@ -752,7 +752,6 @@ void Draw_all_palette_sliders(T_Scroller_button * red_slider,
 | 
			
		||||
 | 
			
		||||
void Button_Palette(void)
 | 
			
		||||
{
 | 
			
		||||
  static short reducer_index=0;
 | 
			
		||||
  static short reduce_colors_number = 256;
 | 
			
		||||
  short temp_color; // Variable pouvant reservir pour différents calculs intermédiaires
 | 
			
		||||
  dword temp;
 | 
			
		||||
@ -767,12 +766,11 @@ void Button_Palette(void)
 | 
			
		||||
  byte  last_color;
 | 
			
		||||
  char  str[10];
 | 
			
		||||
  word  i;
 | 
			
		||||
  //short  x_pos,y_pos;
 | 
			
		||||
  T_Normal_button   * button_used;
 | 
			
		||||
  T_Scroller_button * red_slider;
 | 
			
		||||
  T_Scroller_button * green_slider;
 | 
			
		||||
  T_Scroller_button * blue_slider;
 | 
			
		||||
  T_Scroller_button * reduce_slider;
 | 
			
		||||
  T_Dropdown_button * reduce_dropdown;
 | 
			
		||||
  byte   image_is_backed_up = 0;
 | 
			
		||||
  byte   need_to_remap = 0;
 | 
			
		||||
 | 
			
		||||
@ -800,20 +798,35 @@ void Button_Palette(void)
 | 
			
		||||
 | 
			
		||||
  Window_display_frame (173, 67, 121, 116);
 | 
			
		||||
  Window_display_frame (128, 16, 91, 39);
 | 
			
		||||
  Window_display_frame      (221, 16, 73, 39);
 | 
			
		||||
  // Frame creux destiné à l'affichage de la(les) couleur(s) sélectionnée(s)
 | 
			
		||||
  Window_display_frame_in(259, 88, 26, 74);
 | 
			
		||||
 | 
			
		||||
  // Graduation des jauges de couleur
 | 
			
		||||
  Block(Window_pos_X+(Menu_factor_X*179),Window_pos_Y+(Menu_factor_Y*109),Menu_factor_X*17,Menu_factor_Y,MC_Dark);
 | 
			
		||||
  Block(Window_pos_X+(Menu_factor_X*206),Window_pos_Y+(Menu_factor_Y*109),Menu_factor_X*17,Menu_factor_Y,MC_Dark);
 | 
			
		||||
  Block(Window_pos_X+(Menu_factor_X*233),Window_pos_Y+(Menu_factor_Y*109),Menu_factor_X*17,Menu_factor_Y,MC_Dark);
 | 
			
		||||
  Block(Window_pos_X+(Menu_factor_X*179),Window_pos_Y+(Menu_factor_Y*125),Menu_factor_X*17,Menu_factor_Y,MC_Dark);
 | 
			
		||||
  Block(Window_pos_X+(Menu_factor_X*206),Window_pos_Y+(Menu_factor_Y*125),Menu_factor_X*17,Menu_factor_Y,MC_Dark);
 | 
			
		||||
  Block(Window_pos_X+(Menu_factor_X*233),Window_pos_Y+(Menu_factor_Y*125),Menu_factor_X*17,Menu_factor_Y,MC_Dark);
 | 
			
		||||
  Block(Window_pos_X+(Menu_factor_X*179),Window_pos_Y+(Menu_factor_Y*141),Menu_factor_X*17,Menu_factor_Y,MC_Dark);
 | 
			
		||||
  Block(Window_pos_X+(Menu_factor_X*206),Window_pos_Y+(Menu_factor_Y*141),Menu_factor_X*17,Menu_factor_Y,MC_Dark);
 | 
			
		||||
  Block(Window_pos_X+(Menu_factor_X*233),Window_pos_Y+(Menu_factor_Y*141),Menu_factor_X*17,Menu_factor_Y,MC_Dark);
 | 
			
		||||
  Block(Window_pos_X + (Menu_factor_X * 179),
 | 
			
		||||
	Window_pos_Y + (Menu_factor_Y * 109), Menu_factor_X * 17, Menu_factor_Y,
 | 
			
		||||
	MC_Dark);
 | 
			
		||||
  Block(Window_pos_X + (Menu_factor_X * 206),
 | 
			
		||||
	Window_pos_Y + (Menu_factor_Y * 109), Menu_factor_X * 17, Menu_factor_Y,
 | 
			
		||||
	MC_Dark);
 | 
			
		||||
  Block(Window_pos_X + (Menu_factor_X * 233),
 | 
			
		||||
	Window_pos_Y + (Menu_factor_Y * 109), Menu_factor_X * 17, Menu_factor_Y,
 | 
			
		||||
	MC_Dark);
 | 
			
		||||
  Block(Window_pos_X + (Menu_factor_X * 179),
 | 
			
		||||
	Window_pos_Y + (Menu_factor_Y * 125), Menu_factor_X * 17, Menu_factor_Y,
 | 
			
		||||
	MC_Dark);
 | 
			
		||||
  Block(Window_pos_X + (Menu_factor_X * 206),
 | 
			
		||||
	Window_pos_Y + (Menu_factor_Y * 125), Menu_factor_X * 17, Menu_factor_Y,
 | 
			
		||||
	MC_Dark);
 | 
			
		||||
  Block(Window_pos_X + (Menu_factor_X * 233),
 | 
			
		||||
	Window_pos_Y + (Menu_factor_Y * 125), Menu_factor_X * 17, Menu_factor_Y,
 | 
			
		||||
	MC_Dark);
 | 
			
		||||
  Block(Window_pos_X + (Menu_factor_X * 179),
 | 
			
		||||
	Window_pos_Y + (Menu_factor_Y * 141), Menu_factor_X * 17, Menu_factor_Y,
 | 
			
		||||
	MC_Dark);
 | 
			
		||||
  Block(Window_pos_X + (Menu_factor_X * 206),
 | 
			
		||||
	Window_pos_Y + (Menu_factor_Y * 141), Menu_factor_X * 17, Menu_factor_Y,
 | 
			
		||||
	MC_Dark);
 | 
			
		||||
  Block(Window_pos_X + (Menu_factor_X * 233),
 | 
			
		||||
	Window_pos_Y + (Menu_factor_Y * 141), Menu_factor_X * 17, Menu_factor_Y,
 | 
			
		||||
	MC_Dark);
 | 
			
		||||
  // Jauges de couleur
 | 
			
		||||
  red_slider = Window_set_scroller_button(182, 81, 88,Color_count,1,Color_max-working_palette[Fore_color].R*Color_max/255);// 2
 | 
			
		||||
  green_slider = Window_set_scroller_button(209, 81, 88,Color_count,1,Color_max-working_palette[Fore_color].G*Color_max/255);// 3
 | 
			
		||||
@ -853,8 +866,16 @@ void Button_Palette(void)
 | 
			
		||||
  Window_set_normal_button(66,32,29,14,"Cpy"    ,1,1,SDLK_c);   // 9
 | 
			
		||||
  Window_set_normal_button( 6,32,59,14,"Spread" ,4,1,SDLK_e);   // 10
 | 
			
		||||
 | 
			
		||||
  Window_set_normal_button(239,20,51,14,"Reduce" ,1,1,SDLK_r);  // 11
 | 
			
		||||
  Print_in_window(241,41,"to",MC_Dark,MC_Light);
 | 
			
		||||
  reduce_dropdown = Window_set_dropdown_button(222, 18, 60, 14, 60, "Reduce", 0,
 | 
			
		||||
	0, 1, 1); // 11
 | 
			
		||||
  Window_dropdown_add_item(reduce_dropdown, 0, "to 128");
 | 
			
		||||
  Window_dropdown_add_item(reduce_dropdown, 1, "to 64");
 | 
			
		||||
  Window_dropdown_add_item(reduce_dropdown, 2, "to 32");
 | 
			
		||||
  Window_dropdown_add_item(reduce_dropdown, 3, "to 16");
 | 
			
		||||
  Window_dropdown_add_item(reduce_dropdown, 4, "to 8");
 | 
			
		||||
  Window_dropdown_add_item(reduce_dropdown, 5, "to 4");
 | 
			
		||||
  Window_dropdown_add_item(reduce_dropdown, 6, "to 2");
 | 
			
		||||
  Window_dropdown_add_item(reduce_dropdown, 7, "Other");
 | 
			
		||||
 | 
			
		||||
  Window_set_normal_button(  6,168,35,14,"Undo"  ,1,1,SDLK_u);  // 12
 | 
			
		||||
  Window_set_normal_button( 62,168,51,14,"Cancel",0,1,KEY_ESC);  // 13
 | 
			
		||||
@ -863,23 +884,15 @@ void Button_Palette(void)
 | 
			
		||||
  button_used = Window_set_normal_button(132,20,83,14,"Used: ???",4,1,SDLK_d);// 15
 | 
			
		||||
  Window_set_normal_button(132,37,83,14,"Zap unused",0,1,SDLK_DELETE);//16
 | 
			
		||||
 | 
			
		||||
  // Jauge de réduction de palette
 | 
			
		||||
  reduce_slider = Window_set_scroller_button(225,20,31,7,1,reducer_index);// 17
 | 
			
		||||
  Window_set_repeatable_button(266, 74,12,11,"+",0,1,SDLK_KP_PLUS);       // 17
 | 
			
		||||
  Window_set_repeatable_button(266,165,12,11,"-",0,1,SDLK_KP_MINUS);       // 18
 | 
			
		||||
 | 
			
		||||
  Window_set_repeatable_button(266, 74,12,11,"+",0,1,SDLK_KP_PLUS);       // 18
 | 
			
		||||
  Window_set_repeatable_button(266,165,12,11,"-",0,1,SDLK_KP_MINUS);       // 19
 | 
			
		||||
  Window_set_normal_button(96,17,29,14,"Neg"    ,1,1,SDLK_n);   // 19
 | 
			
		||||
  Window_set_normal_button(66,62,29,14,"Inv"    ,1,1,SDLK_i);   // 20
 | 
			
		||||
  Window_set_normal_button( 6,62,59,14,"X-Inv." ,5,1,SDLK_v);   // 21
 | 
			
		||||
 | 
			
		||||
  Window_set_normal_button(96,17,29,14,"Neg"    ,1,1,SDLK_n);   // 20
 | 
			
		||||
  Window_set_normal_button(66,62,29,14,"Inv"    ,1,1,SDLK_i);   // 21
 | 
			
		||||
  Window_set_normal_button( 6,62,59,14,"X-Inv." ,5,1,SDLK_v);   // 22
 | 
			
		||||
 | 
			
		||||
  Window_set_input_button(263,39,3);                           // 23
 | 
			
		||||
 | 
			
		||||
  Window_set_normal_button(96,32,29,14,"HSL"    ,1,1,SDLK_h);   // 24
 | 
			
		||||
  Window_set_normal_button(96,47,29,14,"Srt"    ,1,1,SDLK_s);   // 25
 | 
			
		||||
  // Affichage du facteur de réduction de la palette
 | 
			
		||||
  Num2str(reduce_colors_number,str,3);
 | 
			
		||||
  Print_in_window(265,41,str,MC_Black,MC_Light);
 | 
			
		||||
  Window_set_normal_button(96,32,29,14,"HSL"    ,1,1,SDLK_h);   // 22
 | 
			
		||||
  Window_set_normal_button(96,47,29,14,"Srt"    ,1,1,SDLK_s);   // 23
 | 
			
		||||
 | 
			
		||||
  // Dessin des petits effets spéciaux pour les boutons [+] et [-]
 | 
			
		||||
  Draw_thingumajig(263, 74,MC_White,-1);
 | 
			
		||||
@ -1401,12 +1414,46 @@ void Button_Palette(void)
 | 
			
		||||
 | 
			
		||||
      case 11: // Reduce
 | 
			
		||||
        memcpy(backup_palette, working_palette, sizeof(T_Palette));
 | 
			
		||||
		switch(Window_attribute2) // Get the dropdown value
 | 
			
		||||
		{
 | 
			
		||||
			case 0: // 128
 | 
			
		||||
				reduce_colors_number = 128;
 | 
			
		||||
				break;
 | 
			
		||||
			case 1: // 64
 | 
			
		||||
				reduce_colors_number = 64;
 | 
			
		||||
				break;
 | 
			
		||||
			case 2: // 32
 | 
			
		||||
				reduce_colors_number = 32;
 | 
			
		||||
				break;
 | 
			
		||||
			case 3: // 16
 | 
			
		||||
				reduce_colors_number = 16;
 | 
			
		||||
				break;
 | 
			
		||||
			case 4: // 8
 | 
			
		||||
				reduce_colors_number = 8;
 | 
			
		||||
				break;
 | 
			
		||||
			case 5: // 4
 | 
			
		||||
				reduce_colors_number = 4;
 | 
			
		||||
				break;
 | 
			
		||||
			case 6: // 2
 | 
			
		||||
				reduce_colors_number = 2;
 | 
			
		||||
				break;
 | 
			
		||||
			case 7: // other
 | 
			
		||||
				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;
 | 
			
		||||
				break;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
        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))
 | 
			
		||||
        {
 | 
			
		||||
@ -1418,7 +1465,8 @@ void Button_Palette(void)
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        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);
 | 
			
		||||
        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();
 | 
			
		||||
@ -1470,19 +1518,7 @@ void Button_Palette(void)
 | 
			
		||||
        need_to_remap=1;
 | 
			
		||||
        break;
 | 
			
		||||
 | 
			
		||||
      case 17 : // Jauge de réduction de palette
 | 
			
		||||
        if (reducer_index!=reduce_slider->Position)
 | 
			
		||||
        {
 | 
			
		||||
          reducer_index=reduce_slider->Position;
 | 
			
		||||
          // Affichage du facteur de réduction de la palette
 | 
			
		||||
          Hide_cursor();
 | 
			
		||||
          Print_in_window(265,41,Palette_reduce_label[reducer_index],MC_Black,MC_Light);
 | 
			
		||||
          Display_cursor();
 | 
			
		||||
          reduce_colors_number=atoi(Palette_reduce_label[reducer_index]);
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
 | 
			
		||||
      case 18 : // [+]
 | 
			
		||||
      case 17 : // [+]
 | 
			
		||||
       if (!Palette_view_is_RGB)
 | 
			
		||||
          break;
 | 
			
		||||
        Hide_cursor();
 | 
			
		||||
@ -1607,7 +1643,7 @@ void Button_Palette(void)
 | 
			
		||||
        Set_palette(working_palette);
 | 
			
		||||
        break;
 | 
			
		||||
 | 
			
		||||
      case 19 : // [-]
 | 
			
		||||
      case 18 : // [-]
 | 
			
		||||
        if (!Palette_view_is_RGB)
 | 
			
		||||
          break;
 | 
			
		||||
        Hide_cursor();
 | 
			
		||||
@ -1732,7 +1768,7 @@ void Button_Palette(void)
 | 
			
		||||
        Set_palette(working_palette);
 | 
			
		||||
        break;
 | 
			
		||||
 | 
			
		||||
      case 20 : // Negative
 | 
			
		||||
      case 19 : // Negative
 | 
			
		||||
        // Backup
 | 
			
		||||
        memcpy(backup_palette,working_palette,sizeof(T_Palette));
 | 
			
		||||
        // Negative
 | 
			
		||||
@ -1750,8 +1786,8 @@ void Button_Palette(void)
 | 
			
		||||
        need_to_remap=1;
 | 
			
		||||
        break;
 | 
			
		||||
 | 
			
		||||
      case 21 : // Inversion
 | 
			
		||||
      case 22 : // X-Inversion
 | 
			
		||||
      case 20 : // Inversion
 | 
			
		||||
      case 21 : // X-Inversion
 | 
			
		||||
        // Backup
 | 
			
		||||
        memcpy(backup_palette,working_palette,sizeof(T_Palette));
 | 
			
		||||
        //   On initialise la table de conversion
 | 
			
		||||
@ -1795,30 +1831,7 @@ void Button_Palette(void)
 | 
			
		||||
        need_to_remap=1;
 | 
			
		||||
        break;
 | 
			
		||||
 | 
			
		||||
      case 23 : // Saisie du nombre de couleurs pour la réduction de palette
 | 
			
		||||
        Num2str(reduce_colors_number,str,3);
 | 
			
		||||
 | 
			
		||||
        if (Readline(265,41,str,3,1))
 | 
			
		||||
        {
 | 
			
		||||
          temp_color=atoi(str);
 | 
			
		||||
          // Correction de la valeur lue
 | 
			
		||||
          if ( (temp_color>256) || (temp_color<2) )
 | 
			
		||||
          {
 | 
			
		||||
            if (temp_color>256)
 | 
			
		||||
              temp_color=256;
 | 
			
		||||
            else
 | 
			
		||||
              temp_color=2;
 | 
			
		||||
 | 
			
		||||
            Num2str(temp_color,str,3);
 | 
			
		||||
            Window_input_content(Window_special_button_list,str);
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          reduce_colors_number=temp_color;
 | 
			
		||||
        }
 | 
			
		||||
        Display_cursor();
 | 
			
		||||
        break;
 | 
			
		||||
 | 
			
		||||
      case 24 : // HSL <> RGB
 | 
			
		||||
      case 22 : // HSL <> RGB
 | 
			
		||||
        
 | 
			
		||||
        // Acte les changements en cours sur une ou plusieurs couleurs
 | 
			
		||||
        memcpy(temp_palette,working_palette,sizeof(T_Palette));
 | 
			
		||||
@ -1854,7 +1867,7 @@ void Button_Palette(void)
 | 
			
		||||
        Update_window_area(265,73,14,103);
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
      case 25 : // Sort palette
 | 
			
		||||
      case 23 : // Sort palette
 | 
			
		||||
      {
 | 
			
		||||
        byte h = 0, l = 0, s=0;
 | 
			
		||||
        byte oh=0,ol=0,os=0; // Valeur pour la couleur précédente
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										51
									
								
								windows.c
									
									
									
									
									
								
							
							
						
						
									
										51
									
								
								windows.c
									
									
									
									
									
								
							@ -26,13 +26,15 @@
 | 
			
		||||
#include <string.h> // strncpy() strlen()
 | 
			
		||||
 | 
			
		||||
#include "windows.h"
 | 
			
		||||
 | 
			
		||||
#include "engine.h"
 | 
			
		||||
#include "errors.h"
 | 
			
		||||
#include "global.h"
 | 
			
		||||
#include "graph.h"
 | 
			
		||||
#include "engine.h"
 | 
			
		||||
#include "misc.h"
 | 
			
		||||
#include "sdlscreen.h"
 | 
			
		||||
#include "errors.h"
 | 
			
		||||
#include "input.h"
 | 
			
		||||
#include "misc.h"
 | 
			
		||||
#include "readline.h"
 | 
			
		||||
#include "sdlscreen.h"
 | 
			
		||||
 | 
			
		||||
// L'encapsulation tente une percée...ou un dernier combat.
 | 
			
		||||
 | 
			
		||||
@ -836,6 +838,47 @@ byte Confirmation_box(char * message)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/// Window that allows you to enter a single value
 | 
			
		||||
int Requester_window(char* message, int initial_value)
 | 
			
		||||
{
 | 
			
		||||
	short clicked_button = 0;
 | 
			
		||||
	word window_width;
 | 
			
		||||
	char str[10];
 | 
			
		||||
 | 
			
		||||
	window_width=(strlen(message)<<3)+20;
 | 
			
		||||
 | 
			
		||||
	if (window_width<120)
 | 
			
		||||
		window_width = 120;
 | 
			
		||||
 | 
			
		||||
	Open_window(window_width, 60, "Request");
 | 
			
		||||
 | 
			
		||||
	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);
 | 
			
		||||
 | 
			
		||||
	Update_rect(Window_pos_X, Window_pos_Y, Menu_factor_X * window_width,
 | 
			
		||||
		Menu_factor_Y * 60);
 | 
			
		||||
	Display_cursor();
 | 
			
		||||
 | 
			
		||||
	do
 | 
			
		||||
	{
 | 
			
		||||
		clicked_button = Window_clicked_button();
 | 
			
		||||
		if (clicked_button == 1)
 | 
			
		||||
			Readline((window_width / 3) - 18, 39, str, 10, 1);
 | 
			
		||||
		if (Key == SDLK_ESCAPE) clicked_button = 2;
 | 
			
		||||
	}
 | 
			
		||||
	while (clicked_button <= 0);
 | 
			
		||||
 | 
			
		||||
	Key = 0;
 | 
			
		||||
 | 
			
		||||
	Close_window();
 | 
			
		||||
	Display_cursor();
 | 
			
		||||
 | 
			
		||||
	return clicked_button==2?-1:atoi(str);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/// Window that show a warning message and wait for a click on the OK button
 | 
			
		||||
void Warning_message(char * message)
 | 
			
		||||
 | 
			
		||||
@ -71,6 +71,7 @@ void Print_counter(short x,short y,const char * str,byte text_color,byte backgro
 | 
			
		||||
byte Confirmation_box(char * message);
 | 
			
		||||
void Warning_message(char * message);
 | 
			
		||||
void Verbose_error_message(char * message);
 | 
			
		||||
int Requester_window(char* message, int initial_value);
 | 
			
		||||
 | 
			
		||||
void Display_image_limits(void);
 | 
			
		||||
void Display_all_screen(void);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user