update features5.pdf, fix intl titlebars, add sams icons
[goodguy/history.git] / cinelerra-5.1 / guicast / bcwindowbase.h
index d06f062d8051d362b5f44ac959a47ffc96c53ff0..3029e16ea6440d068061ab96a4b273d55534be47 100644 (file)
@@ -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);
@@ -449,9 +450,8 @@ public:
        void set_background(VFrame *bitmap);
 // Change the window title.
        void put_title(const char *text);
-       void set_title(const char *text);
+       void set_title(const char *text, int utf8=1);
        const char *get_title();
-       void set_utf8title(const char *text);
 // Change the window title.  The title is translated internally.
        void start_video();
        void stop_video();
@@ -528,6 +528,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 +576,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 +599,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 +621,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 +770,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