diff --git a/collects/mred/private/kernel.ss b/collects/mred/private/kernel.ss index 4a5744a43e..3b5938b9ef 100644 --- a/collects/mred/private/kernel.ss +++ b/collects/mred/private/kernel.ss @@ -520,6 +520,7 @@ on-toolbar-click on-menu-click on-menu-command + on-mdi-activate enforce-size on-close on-activate diff --git a/collects/mred/private/mrtop.ss b/collects/mred/private/mrtop.ss index f7287d9dbf..84d7412285 100644 --- a/collects/mred/private/mrtop.ss +++ b/collects/mred/private/mrtop.ss @@ -160,6 +160,7 @@ (lambda (e) (check-instance '(method frame% on-menu-char) wx:key-event% 'key-event% #f e) (send wx handle-menu-key e)))] + [on-mdi-activate (lambda (on?) (void))] [on-toolbar-button-click (lambda () (void))] [create-status-line (entry-point (lambda () (unless status-line? (send wx create-status-line) (set! status-line? #t))))] [set-status-text (lambda (s) (send wx set-status-text s))] diff --git a/collects/mred/private/wxtop.ss b/collects/mred/private/wxtop.ss index 80bcfcf12f..a310f2f76d 100644 --- a/collects/mred/private/wxtop.ss +++ b/collects/mred/private/wxtop.ss @@ -628,7 +628,14 @@ [on-toolbar-click (entry-point (lambda () - (as-exit (lambda () (send (wx->mred this) on-toolbar-button-click)))))]) + (as-exit (lambda () (send (wx->mred this) on-toolbar-button-click)))))] + [on-mdi-activate + (entry-point + (lambda (on?) + (let ([mr (wx->mred this)]) + (queue-window-callback + this + (lambda () (send mr on-mdi-activate on?))))))]) (public [handle-menu-key (lambda (event) diff --git a/src/mred/mred.cxx b/src/mred/mred.cxx index bdd48e5536..5b3077e57e 100644 --- a/src/mred/mred.cxx +++ b/src/mred/mred.cxx @@ -235,6 +235,7 @@ static int exit_val = 0; MrEdContext *mred_contexts; static MrEdContext *mred_main_context; static MrEdContext *mred_only_context; +static int only_context_just_once = 0; static MrEdContext *user_main_context; static MrEdContextFramesRef mred_frames; /* list of all frames (weak link to invisible ones) */ static wxTimer *mred_timers; @@ -417,9 +418,15 @@ MrEdContext *MrEdGetContext(wxObject *w) #endif } - if (mred_only_context) - return mred_only_context; - else + if (mred_only_context) { + if (only_context_just_once) { + MrEdContext *c = mred_only_context; + mred_only_context = NULL; + only_context_just_once = 0; + return c; + } else + return mred_only_context; + } else return (MrEdContext *)scheme_get_param(scheme_current_config(), mred_eventspace_param); } @@ -2179,6 +2186,7 @@ void MrEdQueueInEventspace(void *context, Scheme_Object *thunk) #if REDIRECT_STDIO || WINDOW_STDIO || WCONSOLE_STDIO static void MrEdSchemeMessages(char *, ...); +static Scheme_Object *stdin_pipe; #endif #if WINDOW_STDIO @@ -2376,8 +2384,6 @@ Bool IOMediaEdit::CanDelete(long start, long) return (start >= ioFrame->endpos); } -static Scheme_Object *stdin_pipe; - static Bool RecordInput(void *m, wxEvent *event, void *data) { char *s; @@ -2439,6 +2445,7 @@ static void MrEdSchemeMessages(char *msg, ...) else { /* Set eventspace ... */ mred_only_context = mred_main_context; + only_context_just_once = 1; ioFrame = new IOFrame; mred_only_context = NULL; } @@ -3812,10 +3819,12 @@ void wxDrop_Runtime(char **argv, int argc) void wxDrop_Quit() { +#if WINDOW_STDIO if (ioFrame) { if (ioFrame->OnClose()) ioFrame->Show(FALSE); } +#endif wxDo(wxs_app_quit_proc, 0, NULL); } diff --git a/src/mred/mredmsw.cxx b/src/mred/mredmsw.cxx index fe5f430b5a..92b5412c2a 100644 --- a/src/mred/mredmsw.cxx +++ b/src/mred/mredmsw.cxx @@ -551,6 +551,7 @@ int wx_start_win_event(const char *who, HWND hWnd, UINT message, WPARAM wParam, switch (message) { /* These shouldn't happen; reject them if they do! */ case WM_ACTIVATE: + case WM_NCACTIVATE: case WM_SETFOCUS: case WM_KILLFOCUS: case WM_SIZE: diff --git a/src/mred/wxs/wxs_fram.cxx b/src/mred/wxs/wxs_fram.cxx index c4c383d2b9..3564d7f6d3 100644 --- a/src/mred/wxs/wxs_fram.cxx +++ b/src/mred/wxs/wxs_fram.cxx @@ -187,6 +187,7 @@ static void DesignateRootFrame(wxFrame *f) + class os_wxFrame : public wxFrame { public: @@ -201,6 +202,7 @@ class os_wxFrame : public wxFrame { void OnToolbarButton(); void OnMenuClick(); void OnMenuCommand(ExactLong x0); + void OnMDIActivate(Bool x0); Bool OnClose(); void OnActivate(Bool x0); #ifdef MZ_PRECISE_GC @@ -559,6 +561,41 @@ void os_wxFrame::OnMenuCommand(ExactLong x0) } } +static Scheme_Object *os_wxFrameOnMDIActivate(int n, Scheme_Object *p[]); + +void os_wxFrame::OnMDIActivate(Bool x0) +{ + Scheme_Object *p[POFFSET+1] INIT_NULLED_ARRAY({ NULLED_OUT INA_comma NULLED_OUT }); + Scheme_Object *v; + Scheme_Object *method INIT_NULLED_OUT; +#ifdef MZ_PRECISE_GC + os_wxFrame *sElF = this; +#endif + static void *mcache = 0; + + SETUP_VAR_STACK(5); + VAR_STACK_PUSH(0, method); + VAR_STACK_PUSH(1, sElF); + VAR_STACK_PUSH_ARRAY(2, p, POFFSET+1); + SET_VAR_STACK(); + + method = objscheme_find_method((Scheme_Object *) ASSELF __gc_external, os_wxFrame_class, "on-mdi-activate", &mcache); + if (!method || OBJSCHEME_PRIM_METHOD(method, os_wxFrameOnMDIActivate)) { + SET_VAR_STACK(); + READY_TO_RETURN; ASSELF wxFrame::OnMDIActivate(x0); + } else { + + p[POFFSET+0] = (x0 ? scheme_true : scheme_false); + + p[0] = (Scheme_Object *) ASSELF __gc_external; + + v = WITH_VAR_STACK(scheme_apply(method, POFFSET+1, p)); + + + READY_TO_RETURN; + } +} + static Scheme_Object *os_wxFrameOnClose(int n, Scheme_Object *p[]); Bool os_wxFrame::OnClose() @@ -859,6 +896,31 @@ static Scheme_Object *os_wxFrameOnMenuCommand(int n, Scheme_Object *p[]) + READY_TO_RETURN; + return scheme_void; +} + +static Scheme_Object *os_wxFrameOnMDIActivate(int n, Scheme_Object *p[]) +{ + WXS_USE_ARGUMENT(n) WXS_USE_ARGUMENT(p) + REMEMBER_VAR_STACK(); + objscheme_check_valid(os_wxFrame_class, "on-mdi-activate in frame%", n, p); + Bool x0; + + SETUP_VAR_STACK_REMEMBERED(1); + VAR_STACK_PUSH(0, p); + + + x0 = WITH_VAR_STACK(objscheme_unbundle_bool(p[POFFSET+0], "on-mdi-activate in frame%")); + + + if (((Scheme_Class_Object *)p[0])->primflag) + WITH_VAR_STACK(((os_wxFrame *)((Scheme_Class_Object *)p[0])->primdata)->wxFrame::OnMDIActivate(x0)); + else + WITH_VAR_STACK(((wxFrame *)((Scheme_Class_Object *)p[0])->primdata)->OnMDIActivate(x0)); + + + READY_TO_RETURN; return scheme_void; } @@ -1321,7 +1383,7 @@ void objscheme_setup_wxFrame(Scheme_Env *env) wxREGGLOB(os_wxFrame_class); - os_wxFrame_class = WITH_VAR_STACK(objscheme_def_prim_class(env, "frame%", "window%", (Scheme_Method_Prim *)os_wxFrame_ConstructScheme, 25)); + os_wxFrame_class = WITH_VAR_STACK(objscheme_def_prim_class(env, "frame%", "window%", (Scheme_Method_Prim *)os_wxFrame_ConstructScheme, 26)); WITH_VAR_STACK(scheme_add_method_w_arity(os_wxFrame_class, "on-drop-file" " method", (Scheme_Method_Prim *)os_wxFrameOnDropFile, 1, 1)); WITH_VAR_STACK(scheme_add_method_w_arity(os_wxFrame_class, "pre-on-event" " method", (Scheme_Method_Prim *)os_wxFramePreOnEvent, 2, 2)); @@ -1332,6 +1394,7 @@ void objscheme_setup_wxFrame(Scheme_Env *env) WITH_VAR_STACK(scheme_add_method_w_arity(os_wxFrame_class, "on-toolbar-click" " method", (Scheme_Method_Prim *)os_wxFrameOnToolbarButton, 0, 0)); WITH_VAR_STACK(scheme_add_method_w_arity(os_wxFrame_class, "on-menu-click" " method", (Scheme_Method_Prim *)os_wxFrameOnMenuClick, 0, 0)); WITH_VAR_STACK(scheme_add_method_w_arity(os_wxFrame_class, "on-menu-command" " method", (Scheme_Method_Prim *)os_wxFrameOnMenuCommand, 1, 1)); + WITH_VAR_STACK(scheme_add_method_w_arity(os_wxFrame_class, "on-mdi-activate" " method", (Scheme_Method_Prim *)os_wxFrameOnMDIActivate, 1, 1)); WITH_VAR_STACK(scheme_add_method_w_arity(os_wxFrame_class, "enforce-size" " method", (Scheme_Method_Prim *)os_wxFrameEnforceSize, 6, 6)); WITH_VAR_STACK(scheme_add_method_w_arity(os_wxFrame_class, "on-close" " method", (Scheme_Method_Prim *)os_wxFrameOnClose, 0, 0)); WITH_VAR_STACK(scheme_add_method_w_arity(os_wxFrame_class, "on-activate" " method", (Scheme_Method_Prim *)os_wxFrameOnActivate, 1, 1)); diff --git a/src/mred/wxs/wxs_fram.xc b/src/mred/wxs/wxs_fram.xc index 1c3edb27d6..a3fc878762 100644 --- a/src/mred/wxs/wxs_fram.xc +++ b/src/mred/wxs/wxs_fram.xc @@ -104,6 +104,8 @@ static void DesignateRootFrame(wxFrame *f) @SETMARK f = d @INCLUDE wxs_fram.xci +@ v "on-mdi-activate" : void OnMDIActivate(bool) + @ v "on-menu-command" : void OnMenuCommand(ExactLong) @ v "on-menu-click" : void OnMenuClick() @ v "on-toolbar-click" : void OnToolbarButton() diff --git a/src/wxmac/include/mac/wx_frame.h b/src/wxmac/include/mac/wx_frame.h index 27438add5e..4d863bcaf8 100644 --- a/src/wxmac/include/mac/wx_frame.h +++ b/src/wxmac/include/mac/wx_frame.h @@ -142,6 +142,8 @@ class wxFrame: public wxbFrame virtual void OnEvent(wxMouseEvent *event); virtual void OnChar(wxKeyEvent *event); virtual void OnCommandEvent(wxCommandEvent *event) {}; + + virtual void OnMDIActivate(Bool flag); void DragFrame(Point startpt); diff --git a/src/wxmac/src/mac/wx_frame.cc b/src/wxmac/src/mac/wx_frame.cc index 41d870edc9..973ee2ab77 100644 --- a/src/wxmac/src/mac/wx_frame.cc +++ b/src/wxmac/src/mac/wx_frame.cc @@ -1466,3 +1466,7 @@ long wxFrame::GetWindowHandle() return (long)win; } + +void wxFrame::OnMDIActivate(Bool flag) +{ +} diff --git a/src/wxwindow/include/msw/wx_frame.h b/src/wxwindow/include/msw/wx_frame.h index 87609097a7..b2e2b64fee 100644 --- a/src/wxwindow/include/msw/wx_frame.h +++ b/src/wxwindow/include/msw/wx_frame.h @@ -73,6 +73,7 @@ class wxFrame: public wxbFrame void SetFrameModified(Bool mod); virtual void OnToolbarButton(void); + virtual void OnMDIActivate(Bool act); void DrawMenuBar(void); void SystemMenu(void); diff --git a/src/wxwindow/include/msw/wx_privt.h b/src/wxwindow/include/msw/wx_privt.h index 5140b1300c..78a703287e 100644 --- a/src/wxwindow/include/msw/wx_privt.h +++ b/src/wxwindow/include/msw/wx_privt.h @@ -104,6 +104,7 @@ public: virtual void OnChar(WORD wParam, LPARAM lParam, Bool isASCII = FALSE, Bool isRelease = FALSE); virtual BOOL OnActivate(BOOL flag, BOOL minimized, HWND activate); + virtual BOOL OnNCActivate(BOOL flag, HWND activate); virtual BOOL OnMDIActivate(BOOL flag, HWND activate, HWND deactivate); virtual LONG DefWindowProc(UINT nMsg, WPARAM wParam, LPARAM lParam); @@ -235,6 +236,7 @@ public: ~wxMDIChild(void); BOOL OnMDIActivate(BOOL bActivate, HWND, HWND); + BOOL OnNCActivate(BOOL bActivate, HWND); BOOL OnClose(void); void OnSize(int x, int y, UINT); BOOL OnCommand(WORD id, WORD cmd, HWND control); @@ -242,6 +244,7 @@ public: long Propagate(UINT nMsg, WPARAM wParam, LPARAM lParam); BOOL ProcessMessage(MSG *msg); void DestroyWindow(void); + virtual void OnChar(WORD wParam, LPARAM lParam, Bool isASCII = FALSE, Bool isRelease = FALSE); }; #define wxTYPE_XWND 1 diff --git a/src/wxwindow/src/msw/wx_frame.cxx b/src/wxwindow/src/msw/wx_frame.cxx index 4e26bdd2b8..bdce0c421f 100644 --- a/src/wxwindow/src/msw/wx_frame.cxx +++ b/src/wxwindow/src/msw/wx_frame.cxx @@ -364,7 +364,16 @@ Bool wxFrame::Show(Bool show) } tlw = wxTopLevelWindows(this); - tlw->Show(this, show); + if (frame_type != wxMDI_CHILD) { + tlw->Show(this, show); + } else { + wxWindow *p; + p = GetParent(); + if (p->IsShown()) { + tlw->Show(this, show); + } + } + if (window_parent) { wxChildList *cl; cl = window_parent->GetChildren(); @@ -395,11 +404,16 @@ Bool wxFrame::Show(Bool show) if (frame_type == wxMDI_CHILD) { wxMDIFrame *cparent; wxWindow *par; + WINDOWINFO winfo; + par = GetParent(); cparent = (wxMDIFrame *)par->handle; - if (cparent->current_child == (wxFrameWnd *)handle) { - if (cshow == SW_HIDE) { + if (cshow == SW_HIDE) { + if (cparent->current_child == (wxFrameWnd *)handle) { HMENU new_menu; + HWND next; + + cparent->current_child = NULL; cparent->parent_frame_active = TRUE; new_menu = ((wxFrame *)par)->GetWinMenu(); @@ -415,6 +429,65 @@ Bool wxFrame::Show(Bool show) (LPARAM)NULL); ::DrawMenuBar(cparent->handle); + + OnMDIActivate(FALSE); + + GetWindowInfo(cparent->handle, &winfo); + if (winfo.dwWindowStatus == WS_ACTIVECAPTION) + OnActivate(FALSE); + + next = GetNextWindow(GetHWND(), GW_HWNDNEXT); + while (next) { + wxWnd *nh; + nh = wxFindWinFromHandle(next); + if (nh && nh->wx_window + && wxSubType(nh->wx_window->__type, wxTYPE_FRAME) + && (((wxFrame *)nh->wx_window)->frame_type == wxMDI_CHILD)) { + ::SendMessage(cparent->client_hwnd, WM_MDIACTIVATE, + (WPARAM)next, + (LPARAM)NULL); + next = NULL; + } else + next = GetNextWindow(next, GW_HWNDNEXT); + } + } + } else if (cshow != SW_HIDE) { + HWND cur; + cur = (HWND)::SendMessage(cparent->client_hwnd, WM_MDIGETACTIVE, 0, 0); + if (cur == GetHWND()) { + HMENU new_menu; + cparent->current_child = (wxFrameWnd *)handle; + cparent->parent_frame_active = FALSE; + new_menu = GetWinMenu(); + if (new_menu) { + ::SendMessage(cparent->client_hwnd, WM_MDISETMENU, + (WPARAM)new_menu, + (LPARAM)NULL); + ::DrawMenuBar(cparent->handle); + } + OnMDIActivate(TRUE); + GetWindowInfo(cparent->handle, &winfo); + if (winfo.dwWindowStatus == WS_ACTIVECAPTION) + OnActivate(TRUE); + } + } + } + } + + if (frame_type == wxMDI_PARENT) { + /* Add/remove shown children in top-level-windows list */ + wxChildList *cl; + wxChildNode *cn; + cl = GetChildren(); + for (cn = cl->First(); cn; cn = cn->Next()) { + wxWindow *w; + w = (wxWindow *)cn->Data(); + if (wxSubType(w->__type, wxTYPE_FRAME)) { + wxFrame *cf; + cf = (wxFrame *)w; + if ((cf->frame_type == wxMDI_CHILD) + && cf->IsShown()) { + tlw->Show(cf, show); } } } @@ -513,6 +586,10 @@ void wxFrame::OnToolbarButton(void) { } +void wxFrame::OnMDIActivate(Bool WXUNUSED(act)) +{ +} + static wxBitmap *black_bg = NULL; void wxFrame::SetIcon(wxBitmap *icon, wxBitmap *bg, int kind) @@ -787,6 +864,8 @@ BOOL wxStatusWnd::OnPaint() ::SelectObject(cdc,penShadow) ; LineTo(cdc, wxTHICK_LINE_BORDER, wxTHICK_LINE_BORDER); LineTo(cdc, width-wxTHICK_LINE_BORDER, wxTHICK_LINE_BORDER); +#else + old_pen = NULL; #endif SetTextColor(cdc, GetSysColor(COLOR_BTNTEXT) ); @@ -805,10 +884,10 @@ BOOL wxStatusWnd::OnPaint() ::SelectClipRgn(cdc, NULL); if (old_pen) SelectObject(cdc, old_pen); - old_pen = NULL ; + old_pen = NULL; if (old_brush) SelectObject(cdc, old_brush); - old_brush = NULL ; + old_brush = NULL; EndPaint(handle, &ps); cdc = NULL; @@ -1338,12 +1417,17 @@ BOOL wxMDIChild::OnMDIActivate(BOOL bActivate, HWND WXUNUSED(one), HWND WXUNUSED cparent = (wxMDIFrame *)parent->handle; if (bActivate) { - active = TRUE; - cparent->current_child = this; - if (child) - child_menu = child->GetWinMenu(); - else + if (child->IsShown()) { + active = TRUE; + cparent->current_child = this; + if (child) + child_menu = child->GetWinMenu(); + else + child_menu = NULL; + } else { + cparent->current_child = NULL; child_menu = NULL; + } } else { if (cparent->current_child == this) cparent->current_child = NULL; @@ -1374,12 +1458,36 @@ BOOL wxMDIChild::OnMDIActivate(BOOL bActivate, HWND WXUNUSED(one), HWND WXUNUSED (LPARAM)NULL); ::DrawMenuBar(cparent->handle); - - wxFrameWnd::OnActivate(bActivate, 0, 0); + if (child->IsShown()) + child->OnMDIActivate(bActivate); + return 0; } +BOOL wxMDIChild::OnNCActivate(BOOL bActivate, HWND WXUNUSED(one)) +{ + if (wx_window->IsShown()) + return wxFrameWnd::OnActivate(bActivate, 0, 0); + else + return 1; +} + +void wxMDIChild::OnChar(WORD wParam, LPARAM lParam, Bool isASCII, Bool isRelease) +{ + if (!wx_window || wx_window->IsShown()) + wxFrameWnd::OnChar(wParam, lParam, isASCII, isRelease); + else { + wxFrame *parent; + wxMDIFrame *cparent; + + parent = (wxFrame *)wx_window->GetParent(); + cparent = (wxMDIFrame *)parent->handle; + + cparent->OnChar(wParam, lParam, isASCII, isRelease); + } +} + wxMDIChild::~wxMDIChild(void) { } diff --git a/src/wxwindow/src/msw/wx_main.cxx b/src/wxwindow/src/msw/wx_main.cxx index 6c71f1f799..c14048e9af 100644 --- a/src/wxwindow/src/msw/wx_main.cxx +++ b/src/wxwindow/src/msw/wx_main.cxx @@ -196,7 +196,7 @@ int wxWinMain(int wm_is_mred, #if defined(MZ_PRECISE_GC) mzscheme_stack_start = (void *)&__gc_var_stack__; - GC_init_type_tags(_scheme_last_type_, scheme_weak_box_type); + GC_init_type_tags(_scheme_last_type_, scheme_weak_box_type, scheme_ephemeron_type); #endif scheme_set_stack_base(mzscheme_stack_start, 1); diff --git a/src/wxwindow/src/msw/wx_win.cxx b/src/wxwindow/src/msw/wx_win.cxx index 4842d38d14..43e14a8d3a 100644 --- a/src/wxwindow/src/msw/wx_win.cxx +++ b/src/wxwindow/src/msw/wx_win.cxx @@ -865,6 +865,13 @@ static LONG WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam, in if (dialog) retval = 0; break; } + case WM_NCACTIVATE: + { + WORD state = LOWORD(wParam); + wnd->OnNCActivate(state, hWnd); + retval = wnd->DefWindowProc(message, wParam, lParam); + break; + } case WM_SETFOCUS: { HWND hwnd = (HWND)wParam; @@ -1549,17 +1556,6 @@ BOOL wxWnd::OnActivate(BOOL state, BOOL minimized, HWND WXUNUSED(activate)) wx_window->OnActivate(((state == WA_ACTIVE) || (state == WA_CLICKACTIVE))); - // If this window is an MDI parent, we must also send an OnActivate message - // to the current child. - if (wxSubType(wx_window->__type, wxTYPE_FRAME)) { - wxFrame *frame = (wxFrame *)wx_window; - if (frame->frame_type == wxMDI_PARENT) { - wxMDIFrame *mdiFrame = (wxMDIFrame *)this; - if (mdiFrame->current_child) { - mdiFrame->current_child->OnActivate(state, 0, 0); - } - } - } return 0; } else return TRUE; @@ -1668,6 +1664,11 @@ BOOL wxWnd::OnMDIActivate(BOOL WXUNUSED(flag), HWND WXUNUSED(activate), HWND WXU return 1; } +BOOL wxWnd::OnNCActivate(BOOL WXUNUSED(flag), HWND WXUNUSED(activate)) +{ + return 1; +} + void wxWnd::DetachWindowMenu(void) { if (hMenu) diff --git a/src/wxwindow/src/msw/wximgfil.cxx b/src/wxwindow/src/msw/wximgfil.cxx index 438172f643..b1c3ae81c1 100644 --- a/src/wxwindow/src/msw/wximgfil.cxx +++ b/src/wxwindow/src/msw/wximgfil.cxx @@ -295,7 +295,8 @@ ushort wxGIF::get_next_code() return(x); byte_buff[i] = x; } - } + } else + navail_bytes = 1; /* to avoid underflow */ } b1 = byte_buff[pbytes++]; nbits_left = 8; @@ -318,7 +319,8 @@ ushort wxGIF::get_next_code() return(x); byte_buff[i] = x; } - } + } else + navail_bytes = 1; /* to avoid underflow */ } b1 = byte_buff[pbytes++]; ret = ret | (b1 << nbits_left); @@ -486,6 +488,8 @@ ushort wxGIF::decoder(ushort linewidth) */ while (code >= newcodes) { + if (sp > MAX_CODES) + return BAD_CODE_SIZE; stack[sp++] = suffix[code]; code = prefix[code]; if (code >= slot) { @@ -501,6 +505,8 @@ ushort wxGIF::decoder(ushort linewidth) * suffix and prefix... I'm not certain if this is correct... * it might be more proper to overwrite the last code... */ + if (sp > MAX_CODES) + return BAD_CODE_SIZE; stack[sp++] = code; if (slot < top_slot) { diff --git a/src/wxxt/src/Windows/Frame.cc b/src/wxxt/src/Windows/Frame.cc index 1c97ae68c7..a92cf65c5d 100644 --- a/src/wxxt/src/Windows/Frame.cc +++ b/src/wxxt/src/Windows/Frame.cc @@ -828,3 +828,7 @@ void wxFrame::OnMenuClick() void wxFrame::OnToolbarButton() { } + +void wxFrame::OnMDIActivate(Bool WXUNUSED(flag)) +{ +} diff --git a/src/wxxt/src/Windows/Frame.h b/src/wxxt/src/Windows/Frame.h index 1c80cb8221..a72cc54161 100644 --- a/src/wxxt/src/Windows/Frame.h +++ b/src/wxxt/src/Windows/Frame.h @@ -76,6 +76,7 @@ public: virtual void OnMenuSelect(long id); virtual void OnMenuClick(); + virtual void OnMDIActivate(Bool flag); virtual void OnToolbarButton(); void SetFrameModified(Bool mod);