X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;ds=sidebyside;f=cinelerra-5.1%2Fguicast%2Fbcwindowbase.C;h=b6d54fe0e9fc822526bfa64447f975678c86facd;hb=93d60cc0fdf746cc03b4d7a9e45744c2c424439b;hp=06a8bf10ad40dbbcac5d679a25f75ce5e6efba19;hpb=5249bc8407920effc00e13940d3d4ccea0dd5d9f;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/guicast/bcwindowbase.C b/cinelerra-5.1/guicast/bcwindowbase.C index 06a8bf10..b6d54fe0 100644 --- a/cinelerra-5.1/guicast/bcwindowbase.C +++ b/cinelerra-5.1/guicast/bcwindowbase.C @@ -53,6 +53,7 @@ #include #include #include +#include #include #include @@ -634,9 +635,6 @@ int BC_WindowBase::create_window(BC_WindowBase *parent_window, } - - - draw_background(0, 0, this->w, this->h); flash(-1, -1, -1, -1, 0); @@ -1367,7 +1365,6 @@ int BC_WindowBase::dispatch_resize_event(int w, int h) delete pixmap; pixmap = new BC_Pixmap(this, w, h); - clear_box(0, 0, w, h); } @@ -1383,6 +1380,7 @@ int BC_WindowBase::dispatch_resize_event(int w, int h) this->w = w; this->h = h; dispatch_flash(); + flush(); } return 0; } @@ -1392,7 +1390,7 @@ int BC_WindowBase::dispatch_flash() flash_enabled = 1; for(int i = 0; i < subwindows->total; i++) subwindows->values[i]->dispatch_flash(); - return flash(); + return flash(0); } int BC_WindowBase::dispatch_translation_event() @@ -3759,13 +3757,15 @@ int BC_WindowBase::get_cursor_y() int BC_WindowBase::dump_windows() { - printf("\tBC_WindowBase::dump_windows window=%p win=%p\n", - this, (void*)this->win); + printf("\tBC_WindowBase::dump_windows window=%p win=%p '%s', %dx%d+%d+%d %s\n", + this, (void*)this->win, title, w,h,x,y, typeid(*this).name()); for(int i = 0; i < subwindows->size(); i++) subwindows->get(i)->dump_windows(); - for(int i = 0; i < popups.size(); i++) - printf("\tBC_WindowBase::dump_windows popup=%p win=%p\n", - popups.get(i), (void*)popups.get(i)->win); + for(int i = 0; i < popups.size(); i++) { + BC_WindowBase *p = popups[i]; + printf("\tBC_WindowBase::dump_windows popup=%p win=%p '%s', %dx%d+%d+%d %s\n", + p, (void*)p->win, p->title, p->w,p->h,p->x,p->y, typeid(*p).name()); + } return 0; } @@ -3950,6 +3950,7 @@ int BC_WindowBase::reposition_window(int x, int y, int w, int h) { delete pixmap; pixmap = new BC_Pixmap(this, this->w, this->h); + clear_box(0,0, this->w, this->h); // Propagate to menubar for(int i = 0; i < subwindows->total; i++) { @@ -4000,9 +4001,7 @@ void BC_WindowBase::set_background(VFrame *bitmap) { if(bg_pixmap && !shared_bg_pixmap) delete bg_pixmap; - bg_pixmap = new BC_Pixmap(this, - bitmap, - PIXMAP_OPAQUE); + bg_pixmap = new BC_Pixmap(this, bitmap, PIXMAP_OPAQUE); shared_bg_pixmap = 0; draw_background(0, 0, w, h); } @@ -4069,10 +4068,7 @@ int BC_WindowBase::get_toggle_drag() int BC_WindowBase::set_icon(VFrame *data) { if(icon_pixmap) delete icon_pixmap; - icon_pixmap = new BC_Pixmap(top_level, - data, - PIXMAP_ALPHA, - 1); + icon_pixmap = new BC_Pixmap(top_level, data, PIXMAP_ALPHA, 1); if(icon_window) delete icon_window; icon_window = new BC_Popup(this, @@ -4363,3 +4359,15 @@ BC_Pixmap *BC_WindowBase::create_pixmap(VFrame *vframe) } +void BC_WindowBase::flicker(int n, int ms) +{ + int color = get_bg_color(); + for( int i=2*n; --i>=0; ) { + set_inverse(); set_bg_color(WHITE); + clear_box(0,0, w,h); flash(1); + sync_display(); Timer::delay(ms); + } + set_bg_color(color); + set_opaque(); +} +