clean up bclistbox, listbox shift drag fix, plugin info
[goodguy/history.git] / cinelerra-5.1 / guicast / bcwindowbase.h
index 5532ae49a5454803f0061c5527232e76a9460ab8..c765b2822207d88d34f606136d64501c63afbe65 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; };
@@ -281,13 +282,13 @@ public:
        int get_screen_x(int lock_display, int screen);
        int get_screen_y(int lock_display, int screen);
 // Get current position
-       void get_abs_cursor_xy(int &abs_x, int &abs_y, int lock_window=0);
+       void get_abs_cursor(int &abs_x, int &abs_y, int lock_window=0);
        int get_abs_cursor_x(int lock_window=0);
        int get_abs_cursor_y(int lock_window=0);
-       void get_pop_cursor_xy(int &px, int &py, int lock_window=0);
+       void get_pop_cursor(int &px, int &py, int lock_window=0);
        int get_pop_cursor_x(int lock_window=0);
        int get_pop_cursor_y(int lock_window=0);
-       void get_relative_cursor_xy(int &x, int &y, int lock_window=0);
+       void get_relative_cursor(int &x, int &y, int lock_window=0);
        int get_relative_cursor_x(int lock_window=0);
        int get_relative_cursor_y(int lock_window=0);
        void get_root_coordinates(int x, int y, int *abs_x, int *abs_y);
@@ -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];
@@ -596,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);
@@ -616,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);
@@ -668,6 +674,8 @@ private:
        int video_on;
 // Event handler completion
        int done, done_set, window_running;
+// Enter/Leave notify state
+       int cursor_entered;
 // Return value of event handler
        int return_value;
 // Motion event compression
@@ -735,19 +743,17 @@ private:
 
 
 // Font sets
-    XFontSet smallfontset, mediumfontset, largefontset, bigfontset, curr_fontset;
-
+       XFontSet smallfontset, mediumfontset, largefontset, bigfontset, clockfontset;
+       XFontSet curr_fontset;
 // Fonts
        int current_font;
-       XFontStruct *smallfont, *mediumfont, *largefont, *bigfont;
-
+       XFontStruct *smallfont, *mediumfont, *largefont, *bigfont, *clockfont;
 // Must be void so users don't need to include the wrong libpng version.
-       void *smallfont_xft, *mediumfont_xft, *largefont_xft, *bigfont_xft;
-
+       void *smallfont_xft, *mediumfont_xft, *largefont_xft, *bigfont_xft, *clockfont_xft;
+       void *bold_smallfont_xft, *bold_mediumfont_xft, *bold_largefont_xft;
 
        int line_width;
        int line_dashes;
-       void *bold_largefont_xft, *bold_mediumfont_xft, *bold_smallfont_xft;
        int64_t current_color;
 // Coordinate of drag start
        int drag_x, drag_y;
@@ -764,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