Added support for hiding the main toolbar, keeping the status line and optionally layer bar. Made it the default behaviour of F10 / right-click 'hide', for testing and feedback. (IMO it's less unforgiving for new users, and we can provide alternative shortcut with old behaviour for veterans).

git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@1225 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
Yves Rizoud
2009-11-26 00:32:45 +00:00
parent 03cbcee632
commit 3538abadb9
9 changed files with 127 additions and 111 deletions

View File

@@ -333,23 +333,12 @@ void Button_Select_backcolor(void)
}
}
//---------------------- Cacher ou réafficher le menu ------------------------
void Pixel_in_hidden_toolbar(__attribute__((unused)) word x,__attribute__((unused)) word y,__attribute__((unused)) byte color)
{
// C'est fait exprès que ce soit vide...
// C'est parce que y'a rien du tout à afficher vu que la barre d'outil est
// cachée... C'est simple non?
}
void Button_Hide_menu(void)
{
Hide_cursor();
if (Menu_is_visible)
{
Menu_is_visible=0;
Pixel_in_menu=Pixel_in_hidden_toolbar;
Menu_Y=Screen_height;
if (Main_magnifier_mode)
@@ -393,7 +382,6 @@ void Button_Hide_menu(void)
{
byte current_menu;
Menu_is_visible=1;
Pixel_in_menu=Pixel_in_toolbar;
Menu_Y=Screen_height;
for (current_menu = 0; current_menu < MENUBAR_COUNT; current_menu++)
if (Menu_bars[current_menu].Visible)
@@ -412,15 +400,28 @@ void Button_Hide_menu(void)
Display_cursor();
}
void Button_Show_layerbar(void)
void Set_bar_visibility(word bar, byte visible)
{
Hide_cursor();
if (Menu_bars[MENUBAR_LAYERS].Visible)
int i;
int offset;
if (!visible && Menu_bars[bar].Visible)
{
// Hide it
Menu_bars[MENUBAR_LAYERS].Visible=0;
Menu_Y += Menu_bars[MENUBAR_LAYERS].Height * Menu_factor_Y;
Menu_height -= Menu_bars[MENUBAR_LAYERS].Height;
Menu_bars[bar].Visible=0;
// Recompute all offsets
offset=0;
for (i = MENUBAR_COUNT-1; i >=0; i--)
{
Menu_bars[i].Top = offset;
if(Menu_bars[i].Visible)
offset += Menu_bars[i].Height;
}
// Update global menu coordinates
Menu_Y += Menu_bars[bar].Height * Menu_factor_Y;
Menu_height -= Menu_bars[bar].Height;
if (Main_magnifier_mode)
{
@@ -460,12 +461,21 @@ void Button_Show_layerbar(void)
Display_menu();
Display_all_screen();
}
else
else if (visible && !Menu_bars[bar].Visible)
{
// Show it
Menu_bars[MENUBAR_LAYERS].Visible = 1;
Menu_Y -= Menu_bars[MENUBAR_LAYERS].Height * Menu_factor_Y;
Menu_height += Menu_bars[MENUBAR_LAYERS].Height;
Menu_bars[bar].Visible = 1;
// Recompute all offsets
offset=0;
for (i = MENUBAR_COUNT-1; i >=0; i--)
{
Menu_bars[i].Top = offset;
if(Menu_bars[i].Visible)
offset += Menu_bars[i].Height;
}
// Update global menu coordinates
Menu_Y -= Menu_bars[bar].Height * Menu_factor_Y;
Menu_height += Menu_bars[bar].Height;
Compute_magnifier_data();
if (Main_magnifier_mode)
@@ -476,10 +486,27 @@ void Button_Show_layerbar(void)
if (Main_magnifier_mode)
Display_all_screen();
}
}
void Button_Toggle_layerbar(void)
{
Hide_cursor();
Set_bar_visibility(MENUBAR_LAYERS, !Menu_bars[MENUBAR_LAYERS].Visible);
Unselect_button(BUTTON_HIDE);
Display_cursor();
}
void Button_Toggle_toolbox(void)
{
Hide_cursor();
Set_bar_visibility(MENUBAR_TOOLS, !Menu_bars[MENUBAR_TOOLS].Visible);
Unselect_button(BUTTON_HIDE);
Display_cursor();
}
//--------------------------- Quitter le programme ---------------------------
byte Button_Quit_local_function(void)