4 窗口初始位置(harib22d)
在编写color.hrb的时候笔者注意到一个小问题,color的窗口一开始出现的位置好像有点别扭(注:使用VESA的人画面尺寸非常大,可能并不觉得有什么别扭的)。
harib22c运行的时候窗口跑到画面外面去了
因此我们希望让窗口总是显示在画面的中央,而且显示窗口时的图层高度也不能总是固定为3,而是要判断当前画面中窗口的数量并自动显示在最上面。虽说现在窗口也是显示在最上面,不过如果再多打开几个的话,情况就不一样了。
本次的console.c节选
int *hrb_api(int edi, int esi, int ebp, int esp, int ebx, int edx, int ecx, int eax)
{
(中略)
} else if (edx == 5) {
(中略)
sheet_slide(sht, (shtctl->xsize - esi) / 2, (shtctl->ysize - edi) / 2);
sheet_updown(sht, shtctl->top); /*将窗口图层高度指定为当前鼠标所在图层的高度,鼠标移到上层*/
(中略)
} else if (edx == 6) {
(中略)
}
好,完工了,这下窗口应该显示在画面中央了,我们来试试看吧。“make run”,成功了!
这次显示在画面中央了