Open_popup(): fix dropdown outside of the screen (again)
in commit 6e6f8ca3f404d0868abd32ba2a154f3f3f18a839 I forgot about Menu_factor_Y ! I'm also improving Doxygen here.
This commit is contained in:
parent
0a30051d91
commit
5e4d2f5700
34
src/engine.c
34
src/engine.c
@ -2327,22 +2327,32 @@ void Window_redraw_list(T_List_button * list)
|
|||||||
|
|
||||||
//----------------------- Ouverture d'un pop-up -----------------------
|
//----------------------- Ouverture d'un pop-up -----------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Open a popup window
|
||||||
|
*
|
||||||
|
* @param x_pos left position
|
||||||
|
* @param y_pos top position
|
||||||
|
* @param width width of the popup (max 320)
|
||||||
|
* @param height height of the popup (max 200)
|
||||||
|
*
|
||||||
|
* The mouse cursor must be shown when calling this function. When the
|
||||||
|
* function returns it is hidden.
|
||||||
|
*
|
||||||
|
* Popup windows are managed as sub-windows. They have their own
|
||||||
|
* event loop, widget can be added inside, etc.
|
||||||
|
* The differences with plain windows are almost only graphical :
|
||||||
|
* - Possibility of fixing position (x_pos, y_pos)
|
||||||
|
* - No title
|
||||||
|
* - No 3D border, but a flat white border.
|
||||||
|
*/
|
||||||
void Open_popup(word x_pos, word y_pos, word width,word height)
|
void Open_popup(word x_pos, word y_pos, word width,word height)
|
||||||
// Lors de l'appel à cette procédure, la souris doit être affichée.
|
|
||||||
// En sortie de cette procedure, la souris est effacée.
|
|
||||||
|
|
||||||
// Note : les pop-ups sont gérés comme s'ils étaient des sous-fenêtres, ils ont donc leur propre boucle d'évènements et tout, on peut ajouter des widgets dedans, ...
|
|
||||||
// Les différences sont surtout graphiques :
|
|
||||||
// -Possibilité de préciser la position XY
|
|
||||||
// -Pas de titre
|
|
||||||
// -Pas de cadre en relief mais seulement un plat, et il est blanc au lieu de noir.
|
|
||||||
{
|
{
|
||||||
Windows_open++;
|
Windows_open++;
|
||||||
|
|
||||||
if (height > Screen_height)
|
if (height*Menu_factor_Y > Screen_height)
|
||||||
height = Screen_height;
|
height = Screen_height/Menu_factor_Y;
|
||||||
if (y_pos + height > Screen_height) // fix dropdown that would get bellow the screen
|
if ((y_pos + height)*Menu_factor_Y > Screen_height) // fix dropdown that would get bellow the screen
|
||||||
y_pos = Screen_height - height;
|
y_pos = Screen_height/Menu_factor_Y - height;
|
||||||
|
|
||||||
Window_width=width;
|
Window_width=width;
|
||||||
Window_height=height;
|
Window_height=height;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user