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>
15 #include <IV-Mac/event.h>
16 #include <IV-Mac/window.h>
18 #include <IV-X11/xevent.h>
19 #include <IV-X11/xwindow.h>
22 #include <InterViews/event.h>
23 #include <InterViews/handler.h>
24 #include <IV-look/kit.h>
25 #include <InterViews/background.h>
26 #include <InterViews/layout.h>
27 #include <InterViews/box.h>
28 #include <InterViews/session.h>
46 extern int iv_mere_dismiss;
50 extern void ivoc_dismiss_defer();
54 class DBAction:
public Action {
69 DBAction::~DBAction() {
109 Session::instance()->quit();
138 void ivoc_dismiss_defer() {
180 Style* style = Session::instance()->style();
185 if ((style->find_attribute(
"dismiss_button", str) && str !=
"off") || force_menubar) {
188 style->find_attribute(
"pwm_dismiss_button", str);
192 menubar_ = WidgetKit::instance()->menubar();
200 if (style->find_attribute(
"use_transient_windows", str) && str ==
"yes") {
217 mi = WidgetKit::instance()->menubar_item(LayoutKit::instance()->r_margin(
218 WidgetKit::instance()->fancy_label(
name), 0.0,
fil, 0.0));
233 if (!style()->find_attribute(
"name",
v)) {
234 v = Session::instance()->name();
240 static const char* s_;
241 static void setwindowtext(
void*
v) {
243 SetWindowText(hw, s_);
249 HWND hw = Window::rep()->msWindow();
252 if (!nrn_is_gui_thread()) {
254 nrn_gui_exec(setwindowtext, hw);
258 SetWindowText(hw, s);
264 strncpy(&st[1], s, 254);
266 WindowPtr theWin = Window::rep()->macWindow();
268 SetWTitle(theWin, st);
272 style()->attribute(
"name", s);
278 style(
new Style(Session::instance()->style()));
279 style()->attribute(
"name", s);
295 TransientWindow::configure();
297 TopLevelWindow::configure();
302 TransientWindow::set_attributes();
304 TopLevelWindow::set_attributes();
315 intercept_->box_append(
g);
343 return Window::bottom();
346 return Window::width();
349 return Window::height();
353 ((
Window*)
this)->rep()->request_on_resize_ = b;
360 style()->find_attribute(
"pwm_win_left_decor", decor);
372 style()->find_attribute(
"pwm_win_top_decor", decor);
374 return Window::bottom() + decor;
389 static EventTypeSpec myCollapseTypeSpec[] = {{kEventClassWindow, kEventWindowClickCollapseRgn}};
390 static OSStatus MyHandleCollapse(EventHandlerCallRef, EventRef,
void*);
391 static OSStatus MyHandleCollapse(EventHandlerCallRef, EventRef,
void*
v) {
396 return eventNotHandledErr;
413 EventHandlerUPP myHandleCollapse = NewEventHandlerUPP(
414 (EventHandlerProcPtr) MyHandleCollapse);
415 InstallWindowEventHandler(Window::rep()->macWindow(),
452 void virtual_window_top();
453 bool iv_user_keydown(
long w) {
455 virtual_window_top();
461 if (
e.rep()->messageOf() == WM_WINDOWPOSCHANGED) {
465 return DismissableWindow::receive(
e);
476 DismissableWindow::receive(
e);
477 if (
e.type() == Event::other_event) {
478 XEvent& xe =
e.rep()->xevent_;
480 case ConfigureNotify:
582 session_priority_ = 1;
597 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()
const char * string() const
virtual bool event(Event &)
static void dismiss_defer()
static DismissableWindow * win_defer_
WinDismiss(DismissableWindow *)
static DismissableWindow * win_defer_longer_
static double map(void *v)
static double unmap(void *v)