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:
Yves Rizoud 2009-05-10 17:18:12 +00:00
parent 402df48b7f
commit 8f9dd6a68e
5 changed files with 55 additions and 98 deletions

View File

@ -284,10 +284,7 @@ void Button_Select_forecolor(void)
else if (color!=-1)
{
Hide_cursor();
Frame_menu_color(Fore_color, MC_Black);
Fore_color=color;
Frame_menu_color(Fore_color, MC_White);
Display_foreback();
Set_fore_color(color);
Display_cursor();
}
}
@ -300,10 +297,7 @@ void Button_Select_backcolor(void)
if (color!=-1)
{
Hide_cursor();
Frame_menu_color(Back_color, MC_Black);
Back_color=color;
Frame_menu_color(Back_color, MC_Dark);
Display_foreback();
Set_back_color(color);
Display_cursor();
}
}
@ -2918,23 +2912,17 @@ void Button_Invert_foreback(void)
{
byte temp_color;
Hide_cursor();
Frame_menu_color(Fore_color, MC_Dark);
Frame_menu_color(Back_color, MC_White);
temp_color=Fore_color;
Fore_color =Back_color;
Back_color =temp_color;
Hide_cursor();
Frame_menu_color(Back_color);
Frame_menu_color(Fore_color);
Reposition_palette();
//Frame_menu_color(MC_Black);
Display_foreback();
Unselect_button(BUTTON_COLORPICKER);
Display_cursor();
Display_cursor();
}

View File

@ -1412,18 +1412,11 @@ void Colorpicker_12_0(void)
if (Mouse_K==LEFT_SIDE)
{
Frame_menu_color(Fore_color, MC_Black);
Fore_color=Colorpicker_color;
Reposition_palette();
Display_foreback();
Frame_menu_color(Fore_color, MC_White);
Set_fore_color(Colorpicker_color);
}
else
{
Frame_menu_color(Back_color, MC_Black);
Back_color=Colorpicker_color;
Display_foreback();
Frame_menu_color(Back_color, MC_Dark);
Set_back_color(Colorpicker_color);
}
Operation_push(Mouse_K);
}
@ -1456,11 +1449,7 @@ void Colorpicker_1_1(void)
if (Colorpicker_color!=Fore_color)
{
Frame_menu_color(Fore_color, MC_Black);
Fore_color=Colorpicker_color;
Reposition_palette();
Display_foreback();
Frame_menu_color(Fore_color, MC_White);
Set_fore_color(Colorpicker_color);
}
if (Menu_is_visible)
@ -1502,10 +1491,7 @@ void Colorpicker_2_1(void)
if (Colorpicker_color!=Back_color)
{
Frame_menu_color(Back_color, MC_Black);
Back_color=Colorpicker_color;
Display_foreback();
Frame_menu_color(Back_color, MC_Dark);
Set_back_color(Colorpicker_color);
}
if (Menu_is_visible)
@ -1535,18 +1521,11 @@ void Colorpicker_0_1(void)
Operation_pop(&click);
if (click==LEFT_SIDE)
{
Frame_menu_color(Fore_color, MC_Black);
Fore_color=Colorpicker_color;
Reposition_palette();
Display_foreback();
Frame_menu_color(Fore_color, MC_White);
Set_fore_color(Colorpicker_color);
}
else
{
Frame_menu_color(Back_color, MC_Black);
Back_color=Colorpicker_color;
Display_foreback();
Frame_menu_color(Back_color, MC_Dark);
Set_back_color(Colorpicker_color);
}
Unselect_button(BUTTON_COLORPICKER);
}

View File

@ -216,14 +216,7 @@ void Bigger_paintbrush(void)
void Special_next_forecolor(void)
{
Hide_cursor();
Frame_menu_color(Fore_color, MC_Black);
Fore_color++;
Reposition_palette();
Display_foreback();
Frame_menu_color(Fore_color, MC_White);
Set_fore_color(Fore_color+1);
Display_cursor();
}
@ -231,14 +224,7 @@ void Special_next_forecolor(void)
void Special_previous_forecolor(void)
{
Hide_cursor();
Frame_menu_color(Fore_color, MC_Black);
Fore_color--;
Reposition_palette();
Display_foreback();
Frame_menu_color(Fore_color, MC_White);
Set_fore_color(Fore_color-1);
Display_cursor();
}
@ -246,10 +232,7 @@ void Special_previous_forecolor(void)
void Special_next_backcolor(void)
{
Hide_cursor();
Frame_menu_color(Back_color, MC_Black);
Back_color++;
Frame_menu_color(Back_color, MC_Dark);
Display_foreback();
Set_back_color(Back_color+1);
Display_cursor();
}
@ -257,10 +240,7 @@ void Special_next_backcolor(void)
void Special_previous_backcolor(void)
{
Hide_cursor();
Frame_menu_color(Back_color, MC_Black);
Back_color--;
Frame_menu_color(Back_color, MC_Dark);
Display_foreback();
Set_back_color(Back_color-1);
Display_cursor();
}
@ -268,14 +248,7 @@ void Special_previous_backcolor(void)
void Special_next_user_forecolor(void)
{
Hide_cursor();
Frame_menu_color(Fore_color, MC_Black);
Fore_color=Shade_table_left[Fore_color];
Reposition_palette();
Display_foreback();
Frame_menu_color(Fore_color, MC_White);
Set_fore_color(Shade_table_left[Fore_color]);
Display_cursor();
}
@ -283,14 +256,7 @@ void Special_next_user_forecolor(void)
void Special_previous_user_forecolor(void)
{
Hide_cursor();
Frame_menu_color(Fore_color, MC_Black);
Fore_color=Shade_table_right[Fore_color];
Reposition_palette();
Display_foreback();
Frame_menu_color(Fore_color, MC_White);
Set_fore_color(Shade_table_right[Fore_color]);
Display_cursor();
}
@ -298,10 +264,7 @@ void Special_previous_user_forecolor(void)
void Special_next_user_backcolor(void)
{
Hide_cursor();
Frame_menu_color(Back_color, MC_Black);
Back_color=Shade_table_left[Back_color];
Display_foreback();
Frame_menu_color(Back_color, MC_Dark);
Set_back_color(Shade_table_left[Back_color]);
Display_cursor();
}
@ -309,10 +272,7 @@ void Special_next_user_backcolor(void)
void Special_previous_user_backcolor(void)
{
Hide_cursor();
Frame_menu_color(Back_color, MC_Black);
Back_color=Shade_table_right[Back_color];
Display_foreback();
Frame_menu_color(Back_color, MC_Dark);
Set_back_color(Shade_table_right[Back_color]);
Display_cursor();
}

View File

@ -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.
/// 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
void Frame_menu_color(byte id, byte color)
void Frame_menu_color(byte id)
{
word start_x,start_y,end_x,end_y;
word index;
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))
{
@ -282,8 +310,8 @@ void Display_menu_palette(void)
cell_height*Menu_factor_Y,
color);
Frame_menu_color(Fore_color, MC_White);
Frame_menu_color(Back_color, MC_Dark);
Frame_menu_color(Back_color);
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);
}
}

View File

@ -48,7 +48,9 @@ void Compute_paintbrush_coordinates(void);
void Pixel_in_toolbar(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(void);
void Reposition_palette(void);