diff options
Diffstat (limited to 'src/drivers/Wayland/Fl_Wayland_Screen_Driver.H')
| -rw-r--r-- | src/drivers/Wayland/Fl_Wayland_Screen_Driver.H | 193 |
1 files changed, 0 insertions, 193 deletions
diff --git a/src/drivers/Wayland/Fl_Wayland_Screen_Driver.H b/src/drivers/Wayland/Fl_Wayland_Screen_Driver.H deleted file mode 100644 index 83efd79a3..000000000 --- a/src/drivers/Wayland/Fl_Wayland_Screen_Driver.H +++ /dev/null @@ -1,193 +0,0 @@ -// -// Definition of the Wayland Screen interface -// for the Fast Light Tool Kit (FLTK). -// -// Copyright 2010-2026 by Bill Spitzak and others. -// -// This library is free software. Distribution and use rights are outlined in -// the file "COPYING" which should have been included with this file. If this -// file is missing or damaged, see the license at: -// -// https://www.fltk.org/COPYING.php -// -// Please see the following page on how to report bugs and issues: -// -// https://www.fltk.org/bugs.php -// - -/** - \file Fl_Wayland_Screen_Driver.H - \brief Definition of Wayland Screen interface - */ - -#ifndef FL_WAYLAND_SCREEN_DRIVER_H -#define FL_WAYLAND_SCREEN_DRIVER_H - -#include <config.h> -#include "../Unix/Fl_Unix_Screen_Driver.H" -#include <wayland-client.h> - -class Fl_Window; - -class Fl_Wayland_Screen_Driver : public Fl_Unix_Screen_Driver -{ -private: - static int insertion_point_x; - static int insertion_point_y; - static int insertion_point_width; - static int insertion_point_height; - static bool insertion_point_location_is_valid; -public: -// type definitions - typedef enum {unspecified, MUTTER, WESTON, KWIN, OWL, WAYFIRE} compositor_name; - struct seat { - struct wl_seat *wl_seat; - struct wl_pointer *wl_pointer; - struct wl_keyboard *wl_keyboard; - uint32_t keyboard_enter_serial; - struct wl_surface *keyboard_surface; - struct wl_list pointer_outputs; - struct wl_cursor_theme *cursor_theme; - struct wl_cursor *default_cursor; - struct wl_surface *cursor_surface; - struct wl_surface *pointer_focus; - int pointer_scale; - uint32_t serial; - uint32_t pointer_enter_serial; - struct wl_data_device_manager *data_device_manager; - struct wl_data_device *data_device; - struct wl_data_source *data_source; - struct xkb_state *xkb_state; - struct xkb_context *xkb_context; - struct xkb_keymap *xkb_keymap; - struct xkb_compose_state *xkb_compose_state; - char *name; - struct zwp_text_input_v3 *text_input; - struct gtk_shell1 *gtk_shell; - }; - struct output { // one record for each screen - uint32_t id; - int x, y; // logical position of screen - int pixel_width; // in pixels - int pixel_height; // in pixels - int width; // in pixels, account for fractional scaling - int height; // in pixels, account for fractional scaling - float dpi; - struct wl_output *wl_output; - int wld_scale; // Wayland scale factor - float gui_scale; // FLTK scale factor - bool done; - struct wl_list link; - }; - enum cursor_shapes {arrow = 0, wait, insert, hand, help, cross, move, - north, south, west, east, north_south, west_east, south_west, south_east, north_east, north_west, nesw, nwse}; - static const int cursor_count = nwse + 1; // nber of elements of 'enum cursor_shapes' - -// static member variables - static FL_EXPORT struct wl_display *wl_display; - static const struct wl_data_device_listener *p_data_device_listener; - // next length of marked text after current marked text will have been replaced - static int next_marked_length; - static compositor_name compositor; // identifies the used Wayland compositor - -// static member functions - static void insertion_point_location(int x, int y, int height); - static bool insertion_point_location(int *px, int *py, int *pwidth, int *pheight); - static bool own_output(struct wl_output *output); - static void do_set_cursor(struct Fl_Wayland_Screen_Driver::seat *, - struct wl_cursor *wl_cursor = NULL, Fl_Cursor c = FL_CURSOR_NONE); -// member variables - struct wl_cursor *xc_cursor[cursor_count]; // one for each element of enum cursor_shapes - struct wl_registry *wl_registry; - struct wl_compositor *wl_compositor; - struct wl_subcompositor *wl_subcompositor; - struct wl_shm *wl_shm; - struct seat *seat; - struct wl_list outputs; // linked list of struct output records for all screens in system - struct libdecor *libdecor_context; - struct xdg_wm_base *xdg_wm_base; - struct zwp_text_input_manager_v3 *text_input_base; -#if HAVE_XDG_DIALOG - struct xdg_wm_dialog_v1 *xdg_wm_dialog; -#endif -#if HAVE_CURSOR_SHAPE - struct wp_cursor_shape_manager_v1 *wp_cursor_shape_manager; - struct wp_cursor_shape_device_v1 *wp_cursor_shape_device; -#endif - -// constructor - Fl_Wayland_Screen_Driver(); - -// overridden functions from parent class Fl_Screen_Driver - APP_SCALING_CAPABILITY rescalable() FL_OVERRIDE { return PER_SCREEN_APP_SCALING; } - float scale(int n) FL_OVERRIDE; - void scale(int n, float f) FL_OVERRIDE; - // --- screen configuration - void init() FL_OVERRIDE; - int x() FL_OVERRIDE; - int y() FL_OVERRIDE; - int w() FL_OVERRIDE; - int h() FL_OVERRIDE; - void screen_xywh(int &X, int &Y, int &W, int &H, int n) FL_OVERRIDE; - void screen_dpi(float &h, float &v, int n=0) FL_OVERRIDE; - void screen_work_area(int &X, int &Y, int &W, int &H, int n) FL_OVERRIDE; - // --- audible output - void beep(int type) FL_OVERRIDE; - // --- global events - void flush() FL_OVERRIDE; - void grab(Fl_Window* win) FL_OVERRIDE; - // --- global colors - void get_system_colors() FL_OVERRIDE; - // this one is in fl_wayland_clipboard_dnd.cxx - int dnd(int unused) FL_OVERRIDE; - int compose(int &del) FL_OVERRIDE; - void compose_reset() FL_OVERRIDE; - Fl_RGB_Image *read_win_rectangle(int X, int Y, int w, int h, Fl_Window *win, - bool may_capture_subwins, bool *did_capture_subwins) FL_OVERRIDE; - int get_mouse(int &x, int &y) FL_OVERRIDE; - void open_display_platform() FL_OVERRIDE; - void close_display() FL_OVERRIDE; - void display(const char *d) FL_OVERRIDE; - // --- compute dimensions of an Fl_Offscreen - void offscreen_size(Fl_Offscreen o, int &width, int &height) FL_OVERRIDE; - int has_marked_text() const FL_OVERRIDE; - // --- clipboard operations - // this one is in fl_wayland_clipboard_dnd.cxx - void copy(const char *stuff, int len, int clipboard, const char *type) FL_OVERRIDE; - // this one is in fl_wayland_clipboard_dnd.cxx - void paste(Fl_Widget &receiver, int clipboard, const char *type) FL_OVERRIDE; - // this one is in fl_wayland_clipboard_dnd.cxx - int clipboard_contains(const char *type) FL_OVERRIDE; - void set_spot(int font, int height, int x, int y, int w, int h, Fl_Window *win) FL_OVERRIDE; - void reset_spot() FL_OVERRIDE; - void *control_maximize_button(void *data) FL_OVERRIDE; - int event_key(int k) FL_OVERRIDE; - int get_key(int k) FL_OVERRIDE; - void enable_im() FL_OVERRIDE; - void disable_im() FL_OVERRIDE; - bool screen_boundaries_known() FL_OVERRIDE { return false; } - float base_scale(int numscreen) FL_OVERRIDE; - - // overridden functions from parent class Fl_Unix_Screen_Driver - int poll_or_select_with_delay(double time_to_wait) FL_OVERRIDE; - int poll_or_select() FL_OVERRIDE; - -// Wayland-specific member functions - void screen_count_set(int count) {num_screens = count;} - int screen_count_get() {return num_screens;} - void reset_cursor(); - // this one is in fl_wayland_clipboard_dnd.cxx - void copy_image(const unsigned char* data, int W, int H); - void init_workarea(); - void set_cursor(); - struct wl_cursor *default_cursor(); - void default_cursor(struct wl_cursor *cursor); - struct wl_cursor *cache_cursor(const char *cursor_name); - uint32_t get_serial(); - struct wl_seat *get_wl_seat(); - char *get_seat_name(); - struct xkb_keymap *get_xkb_keymap(); -}; - - -#endif // FL_WAYLAND_SCREEN_DRIVER_H |
