X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fguicast%2Fbcwindowdraw.C;h=c81c36963223fa2b91e6ef3faeaaeff3ba71386e;hb=3b781cd7b4b9c477e637adb876a229d2781ee33b;hp=5f0bb48cb1a5e2b45ff1da0a40712dd861a05551;hpb=6853a2c0b04cc5ff4e87a2022c914227f925cb7f;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/guicast/bcwindowdraw.C b/cinelerra-5.1/guicast/bcwindowdraw.C index 5f0bb48c..c81c3696 100644 --- a/cinelerra-5.1/guicast/bcwindowdraw.C +++ b/cinelerra-5.1/guicast/bcwindowdraw.C @@ -29,6 +29,7 @@ #include "bcwindowbase.h" #include "clip.h" #include "bccolors.h" +#include "bctrace.h" #include "cursors.h" #include "fonts.h" #include "vframe.h" @@ -38,7 +39,7 @@ #include "workarounds.h" void BC_WindowBase::copy_area(int x1, int y1, int x2, int y2, int w, int h, BC_Pixmap *pixmap) -{ +{ BT XCopyArea(top_level->display, pixmap ? pixmap->opaque_pixmap : this->pixmap->opaque_pixmap, pixmap ? pixmap->opaque_pixmap : this->pixmap->opaque_pixmap, @@ -47,7 +48,7 @@ void BC_WindowBase::copy_area(int x1, int y1, int x2, int y2, int w, int h, BC_P void BC_WindowBase::draw_box(int x, int y, int w, int h, BC_Pixmap *pixmap) -{ +{ BT //if(x == 0) printf("BC_WindowBase::draw_box %d %d %d %d\n", x, y, w, h); XFillRectangle(top_level->display, pixmap ? pixmap->opaque_pixmap : this->pixmap->opaque_pixmap, @@ -56,7 +57,7 @@ void BC_WindowBase::draw_box(int x, int y, int w, int h, BC_Pixmap *pixmap) void BC_WindowBase::draw_circle(int x, int y, int w, int h, BC_Pixmap *pixmap) -{ +{ BT XDrawArc(top_level->display, pixmap ? pixmap->opaque_pixmap : this->pixmap->opaque_pixmap, top_level->gc, x, y, (w - 1), (h - 2), 0 * 64, 360 * 64); @@ -64,7 +65,7 @@ void BC_WindowBase::draw_circle(int x, int y, int w, int h, BC_Pixmap *pixmap) void BC_WindowBase::draw_arc(int x, int y, int w, int h, int start_angle, int angle_length, BC_Pixmap *pixmap) -{ +{ BT XDrawArc(top_level->display, pixmap ? pixmap->opaque_pixmap : this->pixmap->opaque_pixmap, top_level->gc, x, y, (w - 1), (h - 2), start_angle * 64, @@ -72,14 +73,14 @@ void BC_WindowBase::draw_arc(int x, int y, int w, int h, } void BC_WindowBase::draw_disc(int x, int y, int w, int h, BC_Pixmap *pixmap) -{ +{ BT XFillArc(top_level->display, pixmap ? pixmap->opaque_pixmap : this->pixmap->opaque_pixmap, top_level->gc, x, y, (w - 1), (h - 2), 0 * 64, 360 * 64); } void BC_WindowBase::clear_box(int x, int y, int w, int h, BC_Pixmap *pixmap) -{ +{ BT set_color(bg_color); Pixmap xpixmap = pixmap ? pixmap->opaque_pixmap : this->pixmap->opaque_pixmap; XFillRectangle(top_level->display, xpixmap, top_level->gc, x, y, w, h); @@ -94,6 +95,7 @@ void BC_WindowBase::draw_text_line(int x, int y, const char *text, int len, return; } #endif + BT Pixmap xpixmap = pixmap ? pixmap->opaque_pixmap : this->pixmap->opaque_pixmap; if( get_resources()->use_fontset ) { XFontSet fontset = top_level->get_curr_fontset(); @@ -147,7 +149,7 @@ void BC_WindowBase::draw_text(int x, int y, const char *text, int length, draw_xft_text(x, y, text, length, pixmap); return; } - + BT for(int i = 0, j = 0; i <= length; i++) { if(text[i] == '\n' || text[i] == 0) { if(get_resources()->use_fontset && top_level->get_curr_fontset()) { @@ -184,7 +186,7 @@ void BC_WindowBase::draw_utf8_text(int x, int y, 1); return; } - + BT for(int i = 0, j = 0; i <= length; i++) { if(text[i] == '\n' || text[i] == 0) @@ -250,7 +252,7 @@ void BC_WindowBase::draw_xft_text(int x, int y, void BC_WindowBase::xft_draw_string(XftColor *xft_color, XftFont *xft_font, int x, int y, const FcChar32 *fc, int len, BC_Pixmap *pixmap) -{ +{ BT Pixmap draw_pixmap = 0; XftDraw *xft_draw = (XftDraw *) (pixmap ? pixmap->opaque_xft_draw : this->pixmap->opaque_xft_draw); @@ -295,6 +297,7 @@ int BC_WindowBase::draw_single_text(int draw, int font, if( !length ) return 0; if( !get_resources()->use_xft ) { + BT if( !get_font_struct(font) ) return 0; XChar2b xtext[length], *xp = xtext; for( int i=0; i *x, ArrayList *y, BC_Pixmap *pixmap) -{ +{ BT int npoints = MIN(x->total, y->total); XPoint *points = new XPoint[npoints]; @@ -477,7 +480,7 @@ void BC_WindowBase::draw_polygon(ArrayList *x, ArrayList *y, BC_Pixmap } void BC_WindowBase::fill_polygon(ArrayList *x, ArrayList *y, BC_Pixmap *pixmap) -{ +{ BT int npoints = MIN(x->total, y->total); XPoint *points = new XPoint[npoints]; @@ -500,7 +503,7 @@ void BC_WindowBase::fill_polygon(ArrayList *x, ArrayList *y, BC_Pixmap void BC_WindowBase::draw_rectangle(int x, int y, int w, int h) -{ +{ BT XDrawRectangle(top_level->display, pixmap->opaque_pixmap, top_level->gc, @@ -668,7 +671,7 @@ void BC_WindowBase::draw_border(char *text, int x, int y, int w, int h) } void BC_WindowBase::draw_triangle_down_flat(int x, int y, int w, int h) -{ +{ BT int x1, y1, x2, y2, x3; XPoint point[3]; @@ -689,7 +692,7 @@ void BC_WindowBase::draw_triangle_down_flat(int x, int y, int w, int h) void BC_WindowBase::draw_triangle_up(int x, int y, int w, int h, int light1, int light2, int middle, int shadow1, int shadow2) -{ +{ BT int x1, y1, x2, y2, x3; XPoint point[3]; @@ -762,7 +765,7 @@ void BC_WindowBase::draw_triangle_down(int x, int y, int w, int h, void BC_WindowBase::draw_triangle_left(int x, int y, int w, int h, int light1, int light2, int middle, int shadow1, int shadow2) -{ +{ BT int x1, y1, x2, y2, y3; XPoint point[3]; @@ -799,7 +802,7 @@ void BC_WindowBase::draw_triangle_left(int x, int y, int w, int h, void BC_WindowBase::draw_triangle_right(int x, int y, int w, int h, int light1, int light2, int middle, int shadow1, int shadow2) -{ +{ BT int x1, y1, x2, y2, y3; XPoint point[3]; @@ -847,7 +850,7 @@ void BC_WindowBase::draw_check(int x, int y) } void BC_WindowBase::draw_tiles(BC_Pixmap *tile, int origin_x, int origin_y, int x, int y, int w, int h) -{ +{ BT if(!tile) { set_color(bg_color); @@ -865,7 +868,7 @@ void BC_WindowBase::draw_tiles(BC_Pixmap *tile, int origin_x, int origin_y, int } void BC_WindowBase::draw_top_tiles(BC_WindowBase *parent_window, int x, int y, int w, int h) -{ +{ BT Window tempwin; int origin_x, origin_y; XTranslateCoordinates(top_level->display, @@ -892,7 +895,7 @@ void BC_WindowBase::draw_top_background(BC_WindowBase *parent_window, int w, int h, BC_Pixmap *pixmap) -{ +{ BT Window tempwin; int top_x, top_y; XLockDisplay(top_level->display); @@ -943,8 +946,7 @@ void BC_WindowBase::draw_bitmap(BC_Bitmap *bitmap, int src_w, int src_h, BC_Pixmap *pixmap) -{ - +{ BT // Hide cursor if video enabled update_video_cursor(); @@ -1002,7 +1004,7 @@ void BC_WindowBase::draw_bitmap(BC_Bitmap *bitmap, void BC_WindowBase::draw_pixel(int x, int y, BC_Pixmap *pixmap) -{ +{ BT XDrawPoint(top_level->display, pixmap ? pixmap->opaque_pixmap : this->pixmap->opaque_pixmap, top_level->gc, @@ -1019,7 +1021,7 @@ void BC_WindowBase::draw_pixmap(BC_Pixmap *pixmap, int src_x, int src_y, BC_Pixmap *dst) -{ +{ BT pixmap->write_drawable(dst ? dst->opaque_pixmap : this->pixmap->opaque_pixmap, dest_x, dest_y, @@ -1102,7 +1104,7 @@ void BC_WindowBase::draw_tooltip(const char *text) } void BC_WindowBase::slide_left(int distance) -{ +{ BT if(distance < w) { XCopyArea(top_level->display, @@ -1119,7 +1121,7 @@ void BC_WindowBase::slide_left(int distance) } void BC_WindowBase::slide_right(int distance) -{ +{ BT if(distance < w) { XCopyArea(top_level->display, @@ -1136,7 +1138,7 @@ void BC_WindowBase::slide_right(int distance) } void BC_WindowBase::slide_up(int distance) -{ +{ BT if(distance < h) { XCopyArea(top_level->display, @@ -1161,7 +1163,7 @@ void BC_WindowBase::slide_up(int distance) } void BC_WindowBase::slide_down(int distance) -{ +{ BT if(distance < h) { XCopyArea(top_level->display,