X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fguicast%2Fbcwindowbase.h;h=4ba5d8fc8f355c2673b6e9cf35c54dd897c6d857;hb=77815ec03df6a03ed75433e8cf8ae1e83fb76d6e;hp=aeaba388e952235288b83c02730fe6c286874093;hpb=fe4662624d711faab6b406490a64c2382661997e;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/guicast/bcwindowbase.h b/cinelerra-5.1/guicast/bcwindowbase.h index aeaba388..4ba5d8fc 100644 --- a/cinelerra-5.1/guicast/bcwindowbase.h +++ b/cinelerra-5.1/guicast/bcwindowbase.h @@ -65,6 +65,7 @@ #include "bctimer.inc" #include "bctitle.inc" #include "bctoggle.inc" +#include "bctrace.inc" #include "bctumble.inc" #include "bcwindow.inc" #include "bcwindowbase.inc" @@ -124,7 +125,7 @@ public: // Windows, subwindows, popupwindows inherit from this -class BC_WindowBase +class BC_WindowBase : public trace_info { public: BC_WindowBase(int opts=0); @@ -194,12 +195,14 @@ public: virtual int uses_text() { return 0; }; // Only if opengl is enabled virtual int expose_event() { return 0; }; + virtual int grab_event(XEvent *event) { return 0; }; virtual void create_objects() { return; }; int get_window_type() { return window_type; } // Wait until event loop is running void init_wait(); int is_running() { return window_running; } + int is_hidden() { return hidden; } // Check if a hardware accelerated colormodel is available and reserve it int accel_available(int color_model, int lock_it); void get_input_context(); @@ -279,6 +282,8 @@ public: // Get current position int get_abs_cursor_x(int lock_window); int get_abs_cursor_y(int lock_window); + int get_pop_cursor_x(int lock_window); + int get_pop_cursor_y(int lock_window); int get_relative_cursor_x(); int get_relative_cursor_y(); void get_root_coordinates(int x, int y, int *abs_x, int *abs_y); @@ -449,6 +454,9 @@ public: int get_id(); void set_done(int return_value); void close(int return_value); +// Reroute toplevel events + int grab(BC_WindowBase *window); + int ungrab(BC_WindowBase *window); // Get a bitmap to draw on the window with BC_Bitmap* new_bitmap(int w, int h, int color_model = -1); // Draw a bitmap on the window @@ -625,6 +633,8 @@ private: int light1, light2, medium, dark1, dark2, bg_color; // Type of window defined above int window_type; +// keypress/pointer active grab + BC_WindowBase* active_grab; // Pointer to the active menubar in the window. BC_MenuBar* active_menubar; // pointer to the active popup menu in the window