fennec
Loading...
Searching...
No Matches
libdecor.h
Go to the documentation of this file.
1// =====================================================================================================================
2// fennec, a free and open source game engine
3// Copyright © 2025 Medusa Slockbower
4//
5// This program is free software: you can redistribute it and/or modify
6// it under the terms of the GNU General Public License as published by
7// the Free Software Foundation, either version 3 of the License, or
8// (at your option) any later version.
9//
10// This program is distributed in the hope that it will be useful,
11// but WITHOUT ANY WARRANTY; without even the implied warranty of
12// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13// GNU General Public License for more details.
14//
15// You should have received a copy of the GNU General Public License
16// along with this program. If not, see <https://www.gnu.org/licenses/>.
17// =====================================================================================================================
18
30
31
32#ifndef FENNEC_PLATFORM_LINUX_WAYLAND_LIBDECOR_H
33#define FENNEC_PLATFORM_LINUX_WAYLAND_LIBDECOR_H
34
35#include <fennec/platform/linux/wayland/lib/wayland.h>
36#include <libdecor.h>
37
38#define FENNEC_LIB(name) extern "C" bool FENNEC_HAS_LIB_##name;
39#define FENNEC_SYMBOL(ret, fn, ...) using LIBDECOR_sym_##fn = ret(*)(__VA_ARGS__); \
40 extern "C" LIBDECOR_sym_##fn LIBDECOR_##fn;
41#define FENNEC_GLOBAL(type, name) extern "C" type* LIBDECOR_##name;
42#include <fennec/platform/linux/wayland/libdecor/sym.h>
43
44#define libdecor_unref LIBDECOR_libdecor_unref
45#define libdecor_new LIBDECOR_libdecor_new
46#define libdecor_decorate LIBDECOR_libdecor_decorate
47#define libdecor_frame_unref LIBDECOR_libdecor_frame_unref
48#define libdecor_frame_set_title LIBDECOR_libdecor_frame_set_title
49#define libdecor_frame_set_app_id LIBDECOR_libdecor_frame_set_app_id
50#define libdecor_frame_set_max_content_size LIBDECOR_libdecor_frame_set_max_content_size
51#define libdecor_frame_get_max_content_size LIBDECOR_libdecor_frame_get_max_content_size
52#define libdecor_frame_set_min_content_size LIBDECOR_libdecor_frame_set_min_content_size
53#define libdecor_frame_get_min_content_size LIBDECOR_libdecor_frame_get_min_content_size
54#define libdecor_frame_resize LIBDECOR_libdecor_frame_resize
55#define libdecor_frame_move LIBDECOR_libdecor_frame_move
56#define libdecor_frame_commit LIBDECOR_libdecor_frame_commit
57#define libdecor_frame_set_minimized LIBDECOR_libdecor_frame_set_minimized
58#define libdecor_frame_set_maximized LIBDECOR_libdecor_frame_set_maximized
59#define libdecor_frame_unset_maximized LIBDECOR_libdecor_frame_unset_maximized
60#define libdecor_frame_set_fullscreen LIBDECOR_libdecor_frame_set_fullscreen
61#define libdecor_frame_unset_fullscreen LIBDECOR_libdecor_frame_unset_fullscreen
62#define libdecor_frame_set_capabilities LIBDECOR_libdecor_frame_set_capabilities
63#define libdecor_frame_unset_capabilities LIBDECOR_libdecor_frame_unset_capabilities
64#define libdecor_frame_has_capability LIBDECOR_libdecor_frame_has_capability
65#define libdecor_frame_set_visibility LIBDECOR_libdecor_frame_set_visibility
66#define libdecor_frame_is_visible LIBDECOR_libdecor_frame_is_visible
67#define libdecor_frame_is_floating LIBDECOR_libdecor_frame_is_floating
68#define libdecor_frame_set_parent LIBDECOR_libdecor_frame_set_parent
69#define libdecor_frame_show_window_menu LIBDECOR_libdecor_frame_show_window_menu
70#define libdecor_frame_get_xdg_surface LIBDECOR_libdecor_frame_get_xdg_surface
71#define libdecor_frame_get_xdg_toplevel LIBDECOR_libdecor_frame_get_xdg_toplevel
72#define libdecor_frame_translate_coordinate LIBDECOR_libdecor_frame_translate_coordinate
73#define libdecor_frame_map LIBDECOR_libdecor_frame_map
74#define libdecor_state_new LIBDECOR_libdecor_state_new
75#define libdecor_state_free LIBDECOR_libdecor_state_free
76#define libdecor_configuration_get_content_size LIBDECOR_libdecor_configuration_get_content_size
77#define libdecor_configuration_get_window_state LIBDECOR_libdecor_configuration_get_window_state
78#define libdecor_dispatch LIBDECOR_libdecor_dispatch
79
80#endif // FENNEC_PLATFORM_LINUX_WAYLAND_LIBDECOR_H