Frame around BGcolor in menu palette: Now handles the case where the same color is FG and BG color
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@797 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
		
							parent
							
								
									402df48b7f
								
							
						
					
					
						commit
						8f9dd6a68e
					
				
							
								
								
									
										24
									
								
								buttons.c
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								buttons.c
									
									
									
									
									
								
							@ -284,10 +284,7 @@ void Button_Select_forecolor(void)
 | 
				
			|||||||
  else if (color!=-1)
 | 
					  else if (color!=-1)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    Hide_cursor();
 | 
					    Hide_cursor();
 | 
				
			||||||
    Frame_menu_color(Fore_color, MC_Black);
 | 
					    Set_fore_color(color);
 | 
				
			||||||
    Fore_color=color;
 | 
					 | 
				
			||||||
    Frame_menu_color(Fore_color, MC_White);
 | 
					 | 
				
			||||||
    Display_foreback();
 | 
					 | 
				
			||||||
    Display_cursor();
 | 
					    Display_cursor();
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -300,10 +297,7 @@ void Button_Select_backcolor(void)
 | 
				
			|||||||
  if (color!=-1)
 | 
					  if (color!=-1)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    Hide_cursor();
 | 
					    Hide_cursor();
 | 
				
			||||||
    Frame_menu_color(Back_color, MC_Black);
 | 
					    Set_back_color(color);
 | 
				
			||||||
    Back_color=color;
 | 
					 | 
				
			||||||
    Frame_menu_color(Back_color, MC_Dark);
 | 
					 | 
				
			||||||
    Display_foreback();
 | 
					 | 
				
			||||||
    Display_cursor();
 | 
					    Display_cursor();
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -2918,23 +2912,17 @@ void Button_Invert_foreback(void)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  byte temp_color;
 | 
					  byte temp_color;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Hide_cursor();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  Frame_menu_color(Fore_color, MC_Dark);
 | 
					 | 
				
			||||||
  Frame_menu_color(Back_color, MC_White);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  temp_color=Fore_color;
 | 
					  temp_color=Fore_color;
 | 
				
			||||||
  Fore_color        =Back_color;
 | 
					  Fore_color        =Back_color;
 | 
				
			||||||
  Back_color        =temp_color;
 | 
					  Back_color        =temp_color;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Hide_cursor();
 | 
				
			||||||
 | 
					  Frame_menu_color(Back_color);
 | 
				
			||||||
 | 
					  Frame_menu_color(Fore_color);
 | 
				
			||||||
  Reposition_palette();
 | 
					  Reposition_palette();
 | 
				
			||||||
 | 
					 | 
				
			||||||
  //Frame_menu_color(MC_Black);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  Display_foreback();
 | 
					  Display_foreback();
 | 
				
			||||||
  Unselect_button(BUTTON_COLORPICKER);
 | 
					  Unselect_button(BUTTON_COLORPICKER);
 | 
				
			||||||
 | 
					  Display_cursor();  
 | 
				
			||||||
  Display_cursor();
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										33
									
								
								operatio.c
									
									
									
									
									
								
							
							
						
						
									
										33
									
								
								operatio.c
									
									
									
									
									
								
							@ -1412,18 +1412,11 @@ void Colorpicker_12_0(void)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  if (Mouse_K==LEFT_SIDE)
 | 
					  if (Mouse_K==LEFT_SIDE)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    Frame_menu_color(Fore_color, MC_Black);
 | 
					    Set_fore_color(Colorpicker_color);
 | 
				
			||||||
    Fore_color=Colorpicker_color;
 | 
					 | 
				
			||||||
    Reposition_palette();
 | 
					 | 
				
			||||||
    Display_foreback();
 | 
					 | 
				
			||||||
    Frame_menu_color(Fore_color, MC_White);
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  else
 | 
					  else
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    Frame_menu_color(Back_color, MC_Black);
 | 
					    Set_back_color(Colorpicker_color);
 | 
				
			||||||
    Back_color=Colorpicker_color;
 | 
					 | 
				
			||||||
    Display_foreback();
 | 
					 | 
				
			||||||
    Frame_menu_color(Back_color, MC_Dark);
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  Operation_push(Mouse_K);
 | 
					  Operation_push(Mouse_K);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -1456,11 +1449,7 @@ void Colorpicker_1_1(void)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    if (Colorpicker_color!=Fore_color)
 | 
					    if (Colorpicker_color!=Fore_color)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      Frame_menu_color(Fore_color, MC_Black);
 | 
					      Set_fore_color(Colorpicker_color);
 | 
				
			||||||
      Fore_color=Colorpicker_color;
 | 
					 | 
				
			||||||
      Reposition_palette();
 | 
					 | 
				
			||||||
      Display_foreback();
 | 
					 | 
				
			||||||
      Frame_menu_color(Fore_color, MC_White);
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (Menu_is_visible)
 | 
					    if (Menu_is_visible)
 | 
				
			||||||
@ -1502,10 +1491,7 @@ void Colorpicker_2_1(void)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    if (Colorpicker_color!=Back_color)
 | 
					    if (Colorpicker_color!=Back_color)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      Frame_menu_color(Back_color, MC_Black);
 | 
					      Set_back_color(Colorpicker_color);
 | 
				
			||||||
      Back_color=Colorpicker_color;
 | 
					 | 
				
			||||||
      Display_foreback();
 | 
					 | 
				
			||||||
      Frame_menu_color(Back_color, MC_Dark);
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (Menu_is_visible)
 | 
					    if (Menu_is_visible)
 | 
				
			||||||
@ -1535,18 +1521,11 @@ void Colorpicker_0_1(void)
 | 
				
			|||||||
  Operation_pop(&click);
 | 
					  Operation_pop(&click);
 | 
				
			||||||
  if (click==LEFT_SIDE)
 | 
					  if (click==LEFT_SIDE)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    Frame_menu_color(Fore_color, MC_Black);
 | 
					    Set_fore_color(Colorpicker_color);
 | 
				
			||||||
    Fore_color=Colorpicker_color;
 | 
					 | 
				
			||||||
    Reposition_palette();
 | 
					 | 
				
			||||||
    Display_foreback();
 | 
					 | 
				
			||||||
    Frame_menu_color(Fore_color, MC_White);
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  else
 | 
					  else
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    Frame_menu_color(Back_color, MC_Black);
 | 
					    Set_back_color(Colorpicker_color);
 | 
				
			||||||
    Back_color=Colorpicker_color;
 | 
					 | 
				
			||||||
    Display_foreback();
 | 
					 | 
				
			||||||
    Frame_menu_color(Back_color, MC_Dark);
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  Unselect_button(BUTTON_COLORPICKER);
 | 
					  Unselect_button(BUTTON_COLORPICKER);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										56
									
								
								special.c
									
									
									
									
									
								
							
							
						
						
									
										56
									
								
								special.c
									
									
									
									
									
								
							@ -216,14 +216,7 @@ void Bigger_paintbrush(void)
 | 
				
			|||||||
void Special_next_forecolor(void)
 | 
					void Special_next_forecolor(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  Hide_cursor();
 | 
					  Hide_cursor();
 | 
				
			||||||
  Frame_menu_color(Fore_color, MC_Black);
 | 
					  Set_fore_color(Fore_color+1);
 | 
				
			||||||
 | 
					 | 
				
			||||||
  Fore_color++;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  Reposition_palette();
 | 
					 | 
				
			||||||
  Display_foreback();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  Frame_menu_color(Fore_color, MC_White);
 | 
					 | 
				
			||||||
  Display_cursor();
 | 
					  Display_cursor();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -231,14 +224,7 @@ void Special_next_forecolor(void)
 | 
				
			|||||||
void Special_previous_forecolor(void)
 | 
					void Special_previous_forecolor(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  Hide_cursor();
 | 
					  Hide_cursor();
 | 
				
			||||||
  Frame_menu_color(Fore_color, MC_Black);
 | 
					  Set_fore_color(Fore_color-1);
 | 
				
			||||||
 | 
					 | 
				
			||||||
  Fore_color--;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  Reposition_palette();
 | 
					 | 
				
			||||||
  Display_foreback();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  Frame_menu_color(Fore_color, MC_White);
 | 
					 | 
				
			||||||
  Display_cursor();
 | 
					  Display_cursor();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -246,10 +232,7 @@ void Special_previous_forecolor(void)
 | 
				
			|||||||
void Special_next_backcolor(void)
 | 
					void Special_next_backcolor(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  Hide_cursor();
 | 
					  Hide_cursor();
 | 
				
			||||||
  Frame_menu_color(Back_color, MC_Black);
 | 
					  Set_back_color(Back_color+1);
 | 
				
			||||||
  Back_color++;
 | 
					 | 
				
			||||||
  Frame_menu_color(Back_color, MC_Dark);
 | 
					 | 
				
			||||||
  Display_foreback();
 | 
					 | 
				
			||||||
  Display_cursor();
 | 
					  Display_cursor();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -257,10 +240,7 @@ void Special_next_backcolor(void)
 | 
				
			|||||||
void Special_previous_backcolor(void)
 | 
					void Special_previous_backcolor(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  Hide_cursor();
 | 
					  Hide_cursor();
 | 
				
			||||||
  Frame_menu_color(Back_color, MC_Black);
 | 
					  Set_back_color(Back_color-1);
 | 
				
			||||||
  Back_color--;
 | 
					 | 
				
			||||||
  Frame_menu_color(Back_color, MC_Dark);
 | 
					 | 
				
			||||||
  Display_foreback();
 | 
					 | 
				
			||||||
  Display_cursor();
 | 
					  Display_cursor();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -268,14 +248,7 @@ void Special_previous_backcolor(void)
 | 
				
			|||||||
void Special_next_user_forecolor(void)
 | 
					void Special_next_user_forecolor(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  Hide_cursor();
 | 
					  Hide_cursor();
 | 
				
			||||||
  Frame_menu_color(Fore_color, MC_Black);
 | 
					  Set_fore_color(Shade_table_left[Fore_color]);
 | 
				
			||||||
 | 
					 | 
				
			||||||
  Fore_color=Shade_table_left[Fore_color];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  Reposition_palette();
 | 
					 | 
				
			||||||
  Display_foreback();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  Frame_menu_color(Fore_color, MC_White);
 | 
					 | 
				
			||||||
  Display_cursor();
 | 
					  Display_cursor();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -283,14 +256,7 @@ void Special_next_user_forecolor(void)
 | 
				
			|||||||
void Special_previous_user_forecolor(void)
 | 
					void Special_previous_user_forecolor(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  Hide_cursor();
 | 
					  Hide_cursor();
 | 
				
			||||||
  Frame_menu_color(Fore_color, MC_Black);
 | 
					  Set_fore_color(Shade_table_right[Fore_color]);
 | 
				
			||||||
 | 
					 | 
				
			||||||
  Fore_color=Shade_table_right[Fore_color];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  Reposition_palette();
 | 
					 | 
				
			||||||
  Display_foreback();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  Frame_menu_color(Fore_color, MC_White);
 | 
					 | 
				
			||||||
  Display_cursor();
 | 
					  Display_cursor();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -298,10 +264,7 @@ void Special_previous_user_forecolor(void)
 | 
				
			|||||||
void Special_next_user_backcolor(void)
 | 
					void Special_next_user_backcolor(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  Hide_cursor();
 | 
					  Hide_cursor();
 | 
				
			||||||
  Frame_menu_color(Back_color, MC_Black);
 | 
					  Set_back_color(Shade_table_left[Back_color]);
 | 
				
			||||||
  Back_color=Shade_table_left[Back_color];
 | 
					 | 
				
			||||||
  Display_foreback();
 | 
					 | 
				
			||||||
  Frame_menu_color(Back_color, MC_Dark);
 | 
					 | 
				
			||||||
  Display_cursor();
 | 
					  Display_cursor();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -309,10 +272,7 @@ void Special_next_user_backcolor(void)
 | 
				
			|||||||
void Special_previous_user_backcolor(void)
 | 
					void Special_previous_user_backcolor(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  Hide_cursor();
 | 
					  Hide_cursor();
 | 
				
			||||||
  Frame_menu_color(Back_color, MC_Black);
 | 
					  Set_back_color(Shade_table_right[Back_color]);
 | 
				
			||||||
  Back_color=Shade_table_right[Back_color];
 | 
					 | 
				
			||||||
  Display_foreback();
 | 
					 | 
				
			||||||
  Frame_menu_color(Back_color, MC_Dark);
 | 
					 | 
				
			||||||
  Display_cursor();
 | 
					  Display_cursor();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										36
									
								
								windows.c
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								windows.c
									
									
									
									
									
								
							@ -185,16 +185,44 @@ word Palette_cell_Y(byte index)
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Set_fore_color(byte color)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  byte old_fore_color = Fore_color;
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  Fore_color=color;
 | 
				
			||||||
 | 
					  Reposition_palette();
 | 
				
			||||||
 | 
					  Display_foreback();
 | 
				
			||||||
 | 
					  Frame_menu_color(old_fore_color);
 | 
				
			||||||
 | 
					  Frame_menu_color(Fore_color);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Set_back_color(byte color)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  byte old_back_color = Back_color;
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  Back_color=color;
 | 
				
			||||||
 | 
					  Display_foreback();
 | 
				
			||||||
 | 
					  Frame_menu_color(old_back_color);
 | 
				
			||||||
 | 
					  Frame_menu_color(Back_color);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
///
 | 
					///
 | 
				
			||||||
/// Redraw the cell in the menu palette for ::Fore_color.
 | 
					/// Redraw the cell in the menu palette for ::Fore_color.
 | 
				
			||||||
/// This function checks bounds, it won't draw anything if Fore_color is not visible.
 | 
					/// This function checks bounds, it won't draw anything if Fore_color is not visible.
 | 
				
			||||||
/// @param color: Pass MC_White to mark the color with a frame, MC_Black to unmark it.
 | 
					 | 
				
			||||||
/// @param id:Color number to frame
 | 
					/// @param id:Color number to frame
 | 
				
			||||||
void Frame_menu_color(byte id, byte color)
 | 
					void Frame_menu_color(byte id)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  word start_x,start_y,end_x,end_y;
 | 
					  word start_x,start_y,end_x,end_y;
 | 
				
			||||||
  word index;
 | 
					  word index;
 | 
				
			||||||
  word cell_height=32/Menu_cells_Y;
 | 
					  word cell_height=32/Menu_cells_Y;
 | 
				
			||||||
 | 
					  byte color;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (id==Fore_color)
 | 
				
			||||||
 | 
					    color = MC_White;
 | 
				
			||||||
 | 
					  else if (id==Back_color)
 | 
				
			||||||
 | 
					    color = MC_Dark;
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    color = MC_Black;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if ((id>=First_color_in_palette) && (id<First_color_in_palette+Menu_cells_X*Menu_cells_Y) && (Menu_is_visible))
 | 
					  if ((id>=First_color_in_palette) && (id<First_color_in_palette+Menu_cells_X*Menu_cells_Y) && (Menu_is_visible))
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
@ -282,8 +310,8 @@ void Display_menu_palette(void)
 | 
				
			|||||||
              cell_height*Menu_factor_Y,
 | 
					              cell_height*Menu_factor_Y,
 | 
				
			||||||
              color);
 | 
					              color);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Frame_menu_color(Fore_color, MC_White);
 | 
					    Frame_menu_color(Back_color);
 | 
				
			||||||
    Frame_menu_color(Back_color, MC_Dark);
 | 
					    Frame_menu_color(Fore_color);
 | 
				
			||||||
    Update_rect(MENU_WIDTH*Menu_factor_X,Menu_Y,Screen_width-(MENU_WIDTH*Menu_factor_X),(MENU_HEIGHT-9)*Menu_factor_Y);
 | 
					    Update_rect(MENU_WIDTH*Menu_factor_X,Menu_Y,Screen_width-(MENU_WIDTH*Menu_factor_X),(MENU_HEIGHT-9)*Menu_factor_Y);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -48,7 +48,9 @@ void Compute_paintbrush_coordinates(void);
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void Pixel_in_toolbar(word x,word y,byte color);
 | 
					void Pixel_in_toolbar(word x,word y,byte color);
 | 
				
			||||||
void Pixel_in_window(word x,word y,byte color);
 | 
					void Pixel_in_window(word x,word y,byte color);
 | 
				
			||||||
void Frame_menu_color(byte id, byte color);
 | 
					void Set_fore_color(byte color);
 | 
				
			||||||
 | 
					void Set_back_color(byte color);
 | 
				
			||||||
 | 
					void Frame_menu_color(byte id);
 | 
				
			||||||
void Display_menu_palette(void);
 | 
					void Display_menu_palette(void);
 | 
				
			||||||
void Display_menu(void);
 | 
					void Display_menu(void);
 | 
				
			||||||
void Reposition_palette(void);
 | 
					void Reposition_palette(void);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user