Luna/gui/wind/Window.h
apio fb3333a086
All checks were successful
Build and test / build (push) Successful in 1m38s
wind: Remove special window attributes and add different window layers.
Two layers are accessible to all apps: global and global_top (for popups and similar windows).
Three other layers are accessible to privileged clients (background, system and lock), for things that need to be on a different level than user apps, like the taskbar, system popups, menus and the lock screen.
2024-12-13 21:53:12 +01:00

31 lines
533 B
C

#pragma once
#include <luna/LinkedList.h>
#include <luna/RefString.h>
#include <ui/Canvas.h>
#include <ui/Color.h>
#include <ui/Rect.h>
#include <ui/ipc/Server.h>
struct Client;
struct Layer;
struct Window : public LinkedListNode<Window>
{
ui::Rect surface;
ui::Rect titlebar;
u32* pixels;
RefString name;
RefString shm_path;
bool dirty { false };
Client* client;
Layer* layer;
int id;
Window(ui::Rect, RefString&&);
~Window();
void focus();
void draw(ui::Canvas& screen);
};