mirror of
https://github.com/Fennix-Project/Kernel.git
synced 2025-07-06 21:09:22 +00:00
Implemented simple GUI
This commit is contained in:
@ -3,248 +3,18 @@
|
||||
#include <task.hpp>
|
||||
#include <debug.h>
|
||||
|
||||
#include "icons.hpp"
|
||||
#include "../kernel.h"
|
||||
#include "../DAPI.hpp"
|
||||
#include "../Fex.hpp"
|
||||
|
||||
extern uintptr_t _binary_Files_tamsyn_font_1_11_Tamsyn7x14r_psf_start;
|
||||
extern uintptr_t _binary_Files_tamsyn_font_1_11_Tamsyn7x14r_psf_end;
|
||||
extern uintptr_t _binary_Files_tamsyn_font_1_11_Tamsyn7x14r_psf_size;
|
||||
|
||||
namespace GraphicalUserInterface
|
||||
{
|
||||
char CursorArrow[] = {
|
||||
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 12x19
|
||||
1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
1, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
1, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, //
|
||||
1, 2, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0, //
|
||||
1, 2, 2, 2, 2, 2, 1, 0, 0, 0, 0, 0, //
|
||||
1, 2, 2, 2, 2, 2, 2, 1, 0, 0, 0, 0, //
|
||||
1, 2, 2, 2, 2, 2, 2, 2, 1, 0, 0, 0, //
|
||||
1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0, 0, //
|
||||
1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0, //
|
||||
1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, //
|
||||
1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, //
|
||||
1, 2, 2, 2, 1, 2, 2, 1, 0, 0, 0, 0, //
|
||||
1, 2, 2, 1, 0, 1, 2, 2, 1, 0, 0, 0, //
|
||||
1, 2, 1, 0, 0, 1, 2, 2, 1, 0, 0, 0, //
|
||||
1, 1, 0, 0, 0, 0, 1, 2, 2, 1, 0, 0, //
|
||||
1, 0, 0, 0, 0, 0, 1, 2, 2, 1, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, //
|
||||
};
|
||||
|
||||
char CursorHand[] = {
|
||||
0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 17x24
|
||||
0, 0, 0, 0, 1, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 1, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 1, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 1, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 1, 2, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 1, 2, 2, 1, 2, 2, 1, 1, 1, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 0, 0, //
|
||||
0, 0, 0, 0, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 0, //
|
||||
0, 0, 0, 0, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, //
|
||||
1, 1, 1, 0, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, //
|
||||
1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, //
|
||||
1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, //
|
||||
0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, //
|
||||
0, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, //
|
||||
0, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, //
|
||||
0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, //
|
||||
0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0, //
|
||||
0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0, //
|
||||
0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0, //
|
||||
0, 0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0, 0, //
|
||||
0, 0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0, 0, //
|
||||
0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
};
|
||||
|
||||
char CursorWait[] = {
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 13x22
|
||||
1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, //
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, //
|
||||
0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0, //
|
||||
0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0, //
|
||||
0, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 0, //
|
||||
0, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 0, //
|
||||
0, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 0, //
|
||||
0, 0, 1, 1, 2, 2, 2, 2, 2, 1, 1, 0, 0, //
|
||||
0, 0, 0, 1, 1, 2, 1, 2, 1, 1, 0, 0, 0, //
|
||||
0, 0, 0, 0, 1, 1, 2, 1, 1, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 1, 1, 2, 1, 1, 0, 0, 0, 0, //
|
||||
0, 0, 0, 1, 1, 2, 2, 2, 1, 1, 0, 0, 0, //
|
||||
0, 0, 1, 1, 2, 2, 1, 2, 2, 1, 1, 0, 0, //
|
||||
0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 0, //
|
||||
0, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 0, //
|
||||
0, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 0, //
|
||||
0, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 0, //
|
||||
0, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 0, //
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, //
|
||||
1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, //
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, //
|
||||
};
|
||||
|
||||
char CursorIBeam[] = {
|
||||
1, 1, 1, 0, 1, 1, 1, // 7x17
|
||||
0, 0, 0, 1, 0, 0, 0, //
|
||||
0, 0, 0, 1, 0, 0, 0, //
|
||||
0, 0, 0, 1, 0, 0, 0, //
|
||||
0, 0, 0, 1, 0, 0, 0, //
|
||||
0, 0, 0, 1, 0, 0, 0, //
|
||||
0, 0, 0, 1, 0, 0, 0, //
|
||||
0, 0, 0, 1, 0, 0, 0, //
|
||||
0, 0, 0, 1, 0, 0, 0, //
|
||||
0, 0, 0, 1, 0, 0, 0, //
|
||||
0, 0, 0, 1, 0, 0, 0, //
|
||||
0, 0, 0, 1, 0, 0, 0, //
|
||||
0, 0, 0, 1, 0, 0, 0, //
|
||||
0, 0, 0, 1, 0, 0, 0, //
|
||||
0, 0, 0, 1, 0, 0, 0, //
|
||||
0, 0, 0, 1, 0, 0, 0, //
|
||||
1, 1, 1, 0, 1, 1, 1, //
|
||||
};
|
||||
|
||||
char CursorResizeAll[] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 23x23
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, //
|
||||
0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, //
|
||||
0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, //
|
||||
0, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 0, //
|
||||
1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, //
|
||||
0, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 0, //
|
||||
0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, //
|
||||
0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, //
|
||||
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
};
|
||||
|
||||
char CloseButton[] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
};
|
||||
|
||||
char MinimizeButton[] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
};
|
||||
|
||||
char MaximizeButtonNormal[] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
};
|
||||
|
||||
char MaximizeButtonMaximized[] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
};
|
||||
|
||||
char ResizeHint[] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //
|
||||
};
|
||||
|
||||
O1 void GUI::FetchInputs()
|
||||
void GUI::FetchInputs()
|
||||
{
|
||||
KernelCallback callback;
|
||||
MouseData Mouse;
|
||||
@ -318,8 +88,11 @@ namespace GraphicalUserInterface
|
||||
wnd->OnMouseUp(&eTemplate);
|
||||
}
|
||||
|
||||
static int Idle = 0;
|
||||
|
||||
if (likely(Mouse.X != MouseArray[1].X || Mouse.Y != MouseArray[1].Y))
|
||||
{
|
||||
Idle = 0;
|
||||
Rect TopBarPos = wnd->GetPosition();
|
||||
TopBarPos.Top -= 20;
|
||||
TopBarPos.Height = 20;
|
||||
@ -406,10 +179,19 @@ namespace GraphicalUserInterface
|
||||
eTemplate.MouseMove.Middle = Mouse.Middle;
|
||||
wnd->OnMouseMove(&eTemplate);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (unlikely(Idle > 1000))
|
||||
CPU::Halt();
|
||||
else
|
||||
Idle++;
|
||||
}
|
||||
}
|
||||
|
||||
foreach (auto wdg in this->Widgets)
|
||||
{
|
||||
// TODO: Implement mouse events for widgets
|
||||
UNUSED(wdg);
|
||||
}
|
||||
|
||||
memmove(MouseArray + 1, MouseArray, sizeof(MouseArray) - sizeof(MouseArray[1]));
|
||||
@ -418,7 +200,7 @@ namespace GraphicalUserInterface
|
||||
LastCursor = Cursor;
|
||||
}
|
||||
|
||||
Ofast void GUI::PaintDesktop()
|
||||
void GUI::PaintDesktop()
|
||||
{
|
||||
if (DesktopBufferRepaint)
|
||||
{
|
||||
@ -429,7 +211,7 @@ namespace GraphicalUserInterface
|
||||
memcpy(this->BackBuffer->Data, this->DesktopBuffer->Data, this->DesktopBuffer->Size);
|
||||
}
|
||||
|
||||
Ofast void GUI::PaintWidgets()
|
||||
void GUI::PaintWidgets()
|
||||
{
|
||||
Event eTemplate;
|
||||
memset(&eTemplate, 0, sizeof(Event));
|
||||
@ -437,7 +219,7 @@ namespace GraphicalUserInterface
|
||||
wdg->OnPaint(nullptr);
|
||||
}
|
||||
|
||||
O0 void GUI::PaintWindows()
|
||||
void GUI::PaintWindows()
|
||||
{
|
||||
foreach (auto wnd in this->Windows)
|
||||
{
|
||||
@ -514,7 +296,7 @@ namespace GraphicalUserInterface
|
||||
MouseArray[0].Y >= CloseButtonPos.Top &&
|
||||
MouseArray[0].Y <= CloseButtonPos.Top + CloseButtonPos.Height)
|
||||
{
|
||||
PutRect(this->OverlayBuffer, CloseButtonPos, 0xFF0000);
|
||||
PutRect(this->OverlayBuffer, CloseButtonPos, MouseArray[0].Left ? 0xFF5500 : 0xFF0000);
|
||||
RepaintNeeded = true;
|
||||
}
|
||||
else
|
||||
@ -527,7 +309,7 @@ namespace GraphicalUserInterface
|
||||
MouseArray[0].Y >= MaximizeButtonPos.Top &&
|
||||
MouseArray[0].Y <= MaximizeButtonPos.Top + MaximizeButtonPos.Height)
|
||||
{
|
||||
PutRect(this->OverlayBuffer, MaximizeButtonPos, 0x404040);
|
||||
PutRect(this->OverlayBuffer, MaximizeButtonPos, MouseArray[0].Left ? 0x454545 : 0x404040);
|
||||
RepaintNeeded = true;
|
||||
}
|
||||
else
|
||||
@ -540,7 +322,7 @@ namespace GraphicalUserInterface
|
||||
MouseArray[0].Y >= MinimizeButtonPos.Top &&
|
||||
MouseArray[0].Y <= MinimizeButtonPos.Top + MinimizeButtonPos.Height)
|
||||
{
|
||||
PutRect(this->OverlayBuffer, MinimizeButtonPos, 0x404040);
|
||||
PutRect(this->OverlayBuffer, MinimizeButtonPos, MouseArray[0].Left ? 0x454545 : 0x404040);
|
||||
RepaintNeeded = true;
|
||||
}
|
||||
else
|
||||
@ -592,11 +374,14 @@ namespace GraphicalUserInterface
|
||||
PutBorder(this->OverlayBuffer, wndPos, 0xFF000000);
|
||||
|
||||
Rect TopBarTextPos = TopBarPos;
|
||||
TopBarTextPos.Left += 5;
|
||||
TopBarTextPos.Top += 5;
|
||||
TopBarTextPos.Left += 4;
|
||||
TopBarTextPos.Top += 4;
|
||||
|
||||
// Title bar text
|
||||
DrawString(this->OverlayBuffer, TopBarTextPos, wnd->GetTitle(), 0xFFFFFFFF);
|
||||
long CharCursorX = TopBarTextPos.Left;
|
||||
long CharCursorY = TopBarTextPos.Top;
|
||||
for (uint64_t i = 0; i < strlen(wnd->GetTitle()); i++)
|
||||
PaintChar(this->CurrentFont, this->OverlayBuffer, wnd->GetTitle()[i], 0xFFFFFF, &CharCursorX, &CharCursorY);
|
||||
|
||||
if (!RepaintNeeded)
|
||||
{
|
||||
@ -615,7 +400,7 @@ namespace GraphicalUserInterface
|
||||
*/
|
||||
#define ICON_SIZE
|
||||
|
||||
Ofast void GUI::PaintCursor()
|
||||
void GUI::PaintCursor()
|
||||
{
|
||||
uint32_t CursorColorInner = 0xFFFFFFFF;
|
||||
uint32_t CursorColorOuter = 0xFF000000;
|
||||
@ -745,7 +530,7 @@ namespace GraphicalUserInterface
|
||||
DrawOverBitmap(this->BackBuffer, this->CursorBuffer, MouseArray[0].Y, MouseArray[0].X);
|
||||
}
|
||||
|
||||
Ofast void GUI::Loop()
|
||||
void GUI::Loop()
|
||||
{
|
||||
/*
|
||||
Because we do not use a gpu to do the rendering, we need to do it manually.
|
||||
@ -776,6 +561,7 @@ namespace GraphicalUserInterface
|
||||
GUI::GUI()
|
||||
{
|
||||
Display->CreateBuffer(0, 0, 200);
|
||||
this->CurrentFont = new Video::Font(&_binary_Files_tamsyn_font_1_11_Tamsyn7x14r_psf_start, &_binary_Files_tamsyn_font_1_11_Tamsyn7x14r_psf_end, Video::FontType::PCScreenFont2);
|
||||
this->mem = new Memory::MemMgr;
|
||||
this->Desktop.Top = 0;
|
||||
this->Desktop.Left = 0;
|
||||
|
Reference in New Issue
Block a user