X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fguicast%2Fbcwindowbase.h;h=a38437bd77c87edc59460826182a108d8c46f12e;hb=d17640d4122d028eee849d9fedf8ba35f7f0f6e0;hp=b512820d92fe93763fb35ce72ca0f3ff551a6a18;hpb=2a56d102d9db53017b306f2a61a2382f29a75783;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/guicast/bcwindowbase.h b/cinelerra-5.1/guicast/bcwindowbase.h index b512820d..a38437bd 100644 --- a/cinelerra-5.1/guicast/bcwindowbase.h +++ b/cinelerra-5.1/guicast/bcwindowbase.h @@ -97,7 +97,9 @@ #include #endif - +// scaled x,y unit +#define xS(v) (BC_WindowBase::get_resources()->x_scale*(v)) +#define yS(v) (BC_WindowBase::get_resources()->y_scale*(v)) #ifdef HAVE_GL //typedef void* GLXContext; @@ -201,6 +203,8 @@ public: virtual int grab_event(XEvent *event) { return 0; }; virtual void create_objects() { return; }; + static void init_resources(float scale); + static void finit_resources(); int get_window_type() { return window_type; } // Wait until event loop is running void init_wait(); @@ -237,10 +241,9 @@ public: void disable_opengl(); void flip_opengl(); -// Calls the BC_Synchronous version of the function with the window_id. -// Not run in OpenGL thread because it has its own lock. - unsigned int get_shader(char *title, int *got_it); - void put_shader(unsigned int handle, char *title); +// Calls the BC_Synchronous version of the function + int get_shader(unsigned int *handle, const char *vert, const char *frag); + void put_shader(unsigned int handle, const char *vert, const char *frag); int get_opengl_server_version(); int flash(int x, int y, int w, int h, int flush = 1); @@ -251,6 +254,7 @@ public: int lock_window(const char *location = 0); int unlock_window(); int get_window_lock(); + int break_lock(); BC_MenuBar* add_menubar(BC_MenuBar *menu_bar); BC_WindowBase* add_subwindow(BC_WindowBase *subwindow); @@ -338,6 +342,8 @@ public: int get_text_height(int font, const char *text = 0); int get_text_width(int font, const char *text, int length = -1); int get_text_width(int font, const wchar_t *text, int length = -1); +// truncate the text with ... & return a new string + char *get_truncated_text(int font, const char *text, int max_w); BC_Clipboard* get_clipboard(); void set_dragging(int value); int set_w(int w); @@ -403,8 +409,6 @@ public: int length, BC_Pixmap *pixmap); 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); void draw_line(int x1, int y1, int x2, int y2, BC_Pixmap *pixmap = 0); void draw_polygon(ArrayList *x, ArrayList *y, BC_Pixmap *pixmap = 0); @@ -523,6 +527,7 @@ public: int show_tooltip(int w=-1, int h=-1) { return show_tooltip(0, -1, -1, w, h); } int hide_tooltip(); int set_icon(VFrame *data); + void set_net_icon(VFrame *data); int load_defaults(BC_Hash *defaults); int save_defaults(BC_Hash *defaults); @@ -572,6 +577,7 @@ private: int allocate_color_table(); int init_gc(); int init_fonts(); + void init_glyphs(); void init_xft(); void init_im(); void finit_im(); @@ -585,7 +591,7 @@ private: XFontSet get_fontset(int font); XFontSet get_curr_fontset(void); void set_fontset(int font); - int dispatch_event(XEvent *event); + int dispatch_event(); int get_key_masks(unsigned int key_state); @@ -727,7 +733,7 @@ private: // Whether the window has the focus int has_focus; - static BC_Resources resources; + static BC_Resources *resources; #ifndef SINGLE_THREAD // Array of repeaters for multiple repeating objects.