X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fguicast%2Fbcwindowbase.h;h=8272f4ff14bbfb0e844063b2e0a27f17d45e8481;hb=2f1bbd12877daf745e1d18b62b731f04cece827e;hp=d06f062d8051d362b5f44ac959a47ffc96c53ff0;hpb=20dab381c3f5c0c0bd48cd7014ab67857eb80155;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/guicast/bcwindowbase.h b/cinelerra-5.1/guicast/bcwindowbase.h index d06f062d..8272f4ff 100644 --- a/cinelerra-5.1/guicast/bcwindowbase.h +++ b/cinelerra-5.1/guicast/bcwindowbase.h @@ -194,6 +194,7 @@ public: virtual int drag_motion_event() { return 0; }; virtual int drag_stop_event() { return 0; }; virtual int uses_text() { return 0; }; + virtual int selection_clear_event() { return 0; } // Only if opengl is enabled virtual int expose_event() { return 0; }; virtual int grab_event(XEvent *event) { return 0; }; @@ -397,8 +398,8 @@ public: BC_Pixmap *pixmap = 0, int is_utf8 = 0); void draw_xft_text(int x, int y, const wchar_t *text, int length, BC_Pixmap *pixmap); - void draw_wtext(int x, int y, const wchar_t *text, int length = -1, - BC_Pixmap *pixmap = 0, int *charpos = 0); + int draw_single_text(int draw, int font, + int x, int y, const wchar_t *text, int length = -1, BC_Pixmap *pixmap = 0); // truncate the text to a ... version that fits in the width, using the current_font void truncate_text(char *result, const char *text, int w); void draw_center_text(int x, int y, const char *text, int length = -1); @@ -528,6 +529,9 @@ public: void restore_vm(); #endif + Atom to_clipboard(const char *data, long len, int clipboard_num); + long from_clipboard(char *data, long maxlen, int clipboard_num); + long clipboard_len(int clipboard_num); int test_keypress; char keys_return[KEYPRESSLEN]; @@ -573,7 +577,6 @@ private: int64_t get_color_bgr24(int color); XFontStruct* get_font_struct(int font); XftFont* get_xft_struct(int font); - int wcharpos(const wchar_t *text, XftFont *font, int length, int *charpos); Cursor get_cursor_struct(int cursor); XFontSet get_fontset(int font); XFontSet get_curr_fontset(void); @@ -597,6 +600,8 @@ private: void put_event(XEvent *event); // remove events queued for win void dequeue_events(Window win); +// clear selection + int do_selection_clear(Atom selection); // Recursive event dispatchers int dispatch_resize_event(int w, int h); @@ -617,6 +622,7 @@ private: int dispatch_drag_motion(); int dispatch_drag_stop(); int dispatch_expose_event(); + int dispatch_selection_clear(); // Get the port ID for a color model or return -1 for failure int grab_port_id(int color_model); @@ -765,6 +771,8 @@ private: Window rootwin; // windows previous events happened in Window event_win, drag_win; +// selection clear + Atom event_selection; Visual *vis; Colormap cmap; // Name of display