Add a quick-preview when hovering the layer buttons.
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@1884 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
parent
9acd46841d
commit
1b805666e7
39
src/engine.c
39
src/engine.c
@ -1439,7 +1439,44 @@ void Main_handler(void)
|
||||
/*if (Gfx->Hover_effect && prev_button_number > -1 && !Buttons_Pool[prev_button_number].Pressed)
|
||||
Draw_menu_button(prev_button_number, BUTTON_RELEASED);
|
||||
*/
|
||||
|
||||
|
||||
if (button_index == BUTTON_LAYER_SELECT)
|
||||
{
|
||||
int x,y;
|
||||
short layer, prev_layer;
|
||||
Open_popup((Buttons_Pool[BUTTON_LAYER_SELECT].X_offset + 2)*Menu_factor_X,
|
||||
Menu_Y,Buttons_Pool[BUTTON_LAYER_SELECT].Width / Main_backups->Pages->Nb_layers,
|
||||
Menu_bars[MENUBAR_COUNT - 1].Height);
|
||||
|
||||
prev_layer = -1;
|
||||
|
||||
// Make the system think the menu is visible (Open_popup hides it)
|
||||
// so Button_under_mouse still works
|
||||
Menu_is_visible=Menu_is_visible_before_window;
|
||||
Menu_Y=Menu_Y_before_window;
|
||||
while(Button_under_mouse() == BUTTON_LAYER_SELECT)
|
||||
{
|
||||
layer = Layer_under_mouse();
|
||||
if (layer != prev_layer)
|
||||
{
|
||||
for (x = 0; x < Window_width; x++)
|
||||
for (y = 0; y < Window_height; y++)
|
||||
{
|
||||
int imgx = x * Main_image_width / Window_width;
|
||||
int imgy = y * Main_image_height / Window_height;
|
||||
Pixel_in_window(x, y, *(Main_backups->Pages->Image[layer].Pixels
|
||||
+ imgx + imgy * Main_image_width));
|
||||
}
|
||||
|
||||
Update_window_area(0,0,Window_width, Window_height);
|
||||
prev_layer = layer;
|
||||
}
|
||||
Get_input(20);
|
||||
};
|
||||
|
||||
Close_popup();
|
||||
}
|
||||
|
||||
Print_in_menu(Menu_tooltip[button_index],0);
|
||||
|
||||
/*if (Gfx->Hover_effect && !Buttons_Pool[button_index].Pressed)
|
||||
|
||||
@ -147,7 +147,7 @@ void Button_Layer_remove(void)
|
||||
Display_cursor();
|
||||
}
|
||||
|
||||
void Button_Layer_select(void)
|
||||
short Layer_under_mouse(void)
|
||||
{
|
||||
short layer;
|
||||
// Determine which button is clicked according to mouse position
|
||||
@ -160,6 +160,12 @@ void Button_Layer_select(void)
|
||||
else if (layer > Main_backups->Pages->Nb_layers-1)
|
||||
layer=Main_backups->Pages->Nb_layers-1;
|
||||
|
||||
return layer;
|
||||
}
|
||||
|
||||
void Button_Layer_select(void)
|
||||
{
|
||||
short layer = Layer_under_mouse;
|
||||
Layer_activate(layer, LEFT_SIDE);
|
||||
}
|
||||
|
||||
|
||||
@ -39,3 +39,5 @@ void Button_Anim_last_frame(void);
|
||||
void Button_Anim_play(void);
|
||||
void Button_Anim_continuous_prev(void);
|
||||
void Button_Anim_continuous_next(void);
|
||||
|
||||
short Layer_under_mouse(void);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user