1 #include <../../nrnconf.h>
5 #include <IV-Win/MWlib.h>
8 #include <InterViews/style.h>
9 #include <InterViews/action.h>
11 #include <IV-Win/event.h>
12 #include <IV-Win/window.h>
14 #include <IV-X11/xevent.h>
15 #include <IV-X11/xwindow.h>
17 #include <InterViews/event.h>
18 #include <InterViews/handler.h>
19 #include <IV-look/kit.h>
20 #include <InterViews/background.h>
21 #include <InterViews/layout.h>
22 #include <InterViews/box.h>
23 #include <InterViews/session.h>
24 #include <OS/string.h>
41 extern int iv_mere_dismiss;
45 class DBAction:
public Action {
50 virtual void execute();
60 DBAction::~DBAction() {
64 void DBAction::execute() {
98 Session::instance()->quit();
126 void ivoc_dismiss_defer() {
168 Style* style = Session::instance()->style();
170 if ((style->find_attribute(
"dismiss_button", str) && str !=
"off") || force_menubar) {
172 style->find_attribute(
"pwm_dismiss_button", str);
176 menubar_ = WidgetKit::instance()->menubar();
184 if (style->find_attribute(
"use_transient_windows", str) && str ==
"yes") {
201 mi = WidgetKit::instance()->menubar_item(LayoutKit::instance()->r_margin(
202 WidgetKit::instance()->fancy_label(
name), 0.0,
fil, 0.0));
217 if (!style()->find_attribute(
"name",
v)) {
218 v = Session::instance()->name();
224 static const char* s_;
225 static void setwindowtext(
void*
v) {
227 SetWindowText(hw, s_);
233 HWND hw = Window::rep()->msWindow();
236 if (!nrn_is_gui_thread()) {
238 nrn_gui_exec(setwindowtext, hw);
242 SetWindowText(hw,
s);
244 }
else if (style()) {
248 style()->attribute(
"name",
s);
254 style(
new Style(Session::instance()->style()));
255 style()->attribute(
"name",
s);
271 TransientWindow::configure();
273 TopLevelWindow::configure();
278 TransientWindow::set_attributes();
280 TopLevelWindow::set_attributes();
291 intercept_->box_append(g);
316 return Window::left();
319 return Window::bottom();
322 return Window::width();
325 return Window::height();
329 ((
Window*)
this)->rep()->request_on_resize_ = b;
336 style()->find_attribute(
"pwm_win_left_decor", decor);
338 return Window::left() - decor;
348 style()->find_attribute(
"pwm_win_top_decor", decor);
350 return Window::bottom() + decor;
392 void virtual_window_top();
393 bool iv_user_keydown(
long w) {
395 virtual_window_top();
401 if (e.rep()->messageOf() == WM_WINDOWPOSCHANGED) {
405 return DismissableWindow::receive(e);
409 DismissableWindow::receive(e);
410 if (e.type() == Event::other_event) {
411 XEvent& xe = e.rep()->xevent_;
414 case ConfigureNotify:
455 return type_.c_str();
516 session_priority_ = 1;
531 printf(
"OcGlyph::save (not implemented for relevant class)\n");
virtual Glyph * glyph() const
DismissableWindow(Glyph *, bool force_menubar=false)
static bool is_transient_
virtual const char * name() const
MenuItem * append_menubar(const char *)
virtual ~DismissableWindow()
virtual void set_attributes()
static bool is_transient()
virtual void replace_dismiss_action(WinDismiss *)
virtual void save(std::ostream &)
virtual PrintableWindow * make_window(Coord left=-1, Coord bottom=-1, Coord width=-1, Coord height=-1)
virtual PrintableWindow * window()
OcGlyph(Glyph *body=NULL)
virtual bool has_window()
virtual void no_parents()
virtual void def_size(Coord &w, Coord &h) const
static void help(const char *)
virtual Coord width_pw() const
virtual void reconfigured()
void xmove(int left, int top)
static OcGlyphContainer * intercept(OcGlyphContainer *)
static PrintableWindow * leader_
virtual bool receive(const Event &)
static PrintableWindow * leader()
virtual Coord save_left() const
static OcGlyphContainer * intercept_
virtual Coord save_bottom() const
const char * type() const
PrintableWindow(OcGlyph *)
void xplace(int left, int top)
virtual void unmap_notify()
void request_on_resize(bool)
virtual Coord height_pw() const
virtual ~PrintableWindow()
virtual void map_notify()
virtual Coord bottom_pw() const
virtual Glyph * print_glyph()
virtual Coord left_pw() const
static PrintableWindowManager * current()
void append(PrintableWindow *)
void remove(PrintableWindow *)
virtual void unref() const
StandardWindow(Glyph *main, Glyph *info=NULL, Menu *m=NULL, Glyph *l=NULL, Glyph *r=NULL)
virtual ~StandardWindow()
virtual bool event(Event &)
static void dismiss_defer()
static DismissableWindow * win_defer_
WinDismiss(DismissableWindow *)
static DismissableWindow * win_defer_longer_
int main(int argc, char **argv)
static double map(void *v)
static double unmap(void *v)