summaryrefslogtreecommitdiff
path: root/src/drivers/X11/Fl_X11_Screen_Driver.H
diff options
context:
space:
mode:
authorManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2022-06-19 10:23:24 +0200
committerManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2022-06-19 10:23:24 +0200
commit02870242eea8b729b3dbd6d23eb77372f61c6318 (patch)
tree1c754a9b01c71b3e68aa795469c30b6c32074e17 /src/drivers/X11/Fl_X11_Screen_Driver.H
parent232743c3a5d903be813f6c4445f3f96bab25cae0 (diff)
Move input method support to Fl_Screen_Driver from Fl_Graphics_Driver
Diffstat (limited to 'src/drivers/X11/Fl_X11_Screen_Driver.H')
-rw-r--r--src/drivers/X11/Fl_X11_Screen_Driver.H21
1 files changed, 19 insertions, 2 deletions
diff --git a/src/drivers/X11/Fl_X11_Screen_Driver.H b/src/drivers/X11/Fl_X11_Screen_Driver.H
index 4b877c937..ead653078 100644
--- a/src/drivers/X11/Fl_X11_Screen_Driver.H
+++ b/src/drivers/X11/Fl_X11_Screen_Driver.H
@@ -25,6 +25,7 @@
#include <config.h>
#include "../../Fl_Screen_Driver.H"
+#include <X11/Xlib.h>
class Fl_Window;
@@ -87,8 +88,7 @@ public:
virtual int text_display_can_leak() const;
virtual 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);
virtual int get_mouse(int &x, int &y);
- virtual void enable_im();
- virtual void disable_im();
+
virtual void open_display_platform();
virtual void close_display();
// --- compute dimensions of an Fl_Offscreen
@@ -102,6 +102,23 @@ public:
virtual int clipboard_contains(const char *type);
// this one is in Fl_x.cxx
virtual void clipboard_notify_change();
+ // for support of input methods
+ static char fl_is_over_the_spot;
+ static XRectangle fl_spot;
+ static int fl_spotf;
+ static int fl_spots;
+ static XIM xim_im;
+ static XIC xim_ic;
+ static Window xim_win;
+ static void new_ic();
+ static void xim_activate(Window xid);
+ static void xim_deactivate(void);
+ static void init_xim();
+ virtual void enable_im();
+ virtual void disable_im();
+ virtual void set_spot(int font, int size, int X, int Y, int W, int H, Fl_Window *win);
+ virtual void reset_spot();
+ virtual void set_status(int X, int Y, int W, int H);
};