boolean Dialog::post_for_aligned(Window* w, float x_align, float y_align) { TransientWindow* t = new TransientWindow(this); t->style(new Style(style())); t->transient_for(w); t->wm_delete(new DialogHandler(this)); t->place(w->left() + 0.5 * w->width(), w->bottom() + 0.5 * w->height()); t->align(x_align, y_align); t->map(); boolean b = run(); t->unmap(); t->display()->sync(); delete t; return b; }
boolean Dialog::post_at_aligned( Coord x, Coord y, float x_align, float y_align ) { TransientWindow* t = new TransientWindow(this); t->style(new Style(style())); t->wm_delete(new DialogHandler(this)); t->place(x, y); t->align(x_align, y_align); t->map(); boolean b = run(); t->unmap(); t->display()->sync(); delete t; return b; }