EVT_INIT_DIALOG(wxWindowMac::OnInitDialog)
EVT_IDLE(wxWindowMac::OnIdle)
EVT_SET_FOCUS(wxWindowMac::OnSetFocus)
+ EVT_MOUSE_EVENTS(wxWindowMac::OnMouseEvent)
END_EVENT_TABLE()
#endif
if ( m_parent )
m_parent->RemoveChild(this);
- wxWindowDestroyEvent event((wxWindow *)this);
- (void)GetEventHandler()->ProcessEvent(event);
-
// delete our drop target if we've got one
#if wxUSE_DRAG_AND_DROP
if ( m_dropTarget != NULL )
menu->UpdateUI();
ClientToScreen( &x , &y ) ;
- ::InsertMenu( (MenuHandle) menu->GetHMenu() , -1 ) ;
+ menu->MacBeforeDisplay( true ) ;
long menuResult = ::PopUpMenuSelect((MenuHandle) menu->GetHMenu() ,y,x, 0) ;
if ( HiWord(menuResult) != 0 )
{
MenuCommand id ;
GetMenuItemCommandID( GetMenuHandle(HiWord(menuResult)) , LoWord(menuResult) , &id ) ;
-
- wxCommandEvent event(wxEVT_COMMAND_MENU_SELECTED, id );
- event.m_timeStamp = TickCount() ;
- event.SetEventObject(this->GetEventHandler());
- event.SetInt( id );
- GetEventHandler()->ProcessEvent(event);
+ wxMenuItem* item = NULL ;
+ wxMenu* realmenu ;
+ item = menu->FindItem(id, &realmenu) ;
+ if (item->IsCheckable())
+ {
+ item->Check( !item->IsChecked() ) ;
+ }
+ menu->SendEvent( id , item->IsCheckable() ? item->IsChecked() : -1 ) ;
}
- ::DeleteMenu( menu->MacGetMenuId() ) ;
+ menu->MacAfterDisplay( true ) ;
+
menu->SetInvokingWindow(NULL);
return TRUE;
{
return m_tooltip->GetTip() ;
}
- return "" ;
+ return wxEmptyString ;
}
void wxWindowMac::Update()
iter = iter->GetParent() ;
}
- wxASSERT_MSG( 1 , "No valid mac root window" ) ;
+ wxASSERT_MSG( 1 , wxT("No valid mac root window") ) ;
return NULL ;
}
void wxWindowMac::MacCreateScrollBars( long style )
{
- wxASSERT_MSG( m_vScrollBar == NULL && m_hScrollBar == NULL , "attempt to create window twice" ) ;
+ wxASSERT_MSG( m_vScrollBar == NULL && m_hScrollBar == NULL , wxT("attempt to create window twice") ) ;
bool hasBoth = ( style & wxVSCROLL ) && ( style & wxHSCROLL ) ;
int adjust = hasBoth ? MAC_SCROLLBAR_SIZE - 1: 0 ;
return wxPoint(x, y);
}
+void wxWindowMac::OnMouseEvent( wxMouseEvent &event )
+{
+ if ( event.GetEventType() == wxEVT_RIGHT_DOWN )
+ {
+ // copied from wxGTK : CS
+ // generate a "context menu" event: this is similar to wxEVT_RIGHT_UP
+ // except that:
+ //
+ // (a) it's a command event and so is propagated to the parent
+ // (b) under MSW it can be generated from kbd too
+ // (c) it uses screen coords (because of (a))
+ wxContextMenuEvent evtCtx(wxEVT_CONTEXT_MENU,
+ this->GetId(),
+ this->ClientToScreen(event.GetPosition()));
+ this->GetEventHandler()->ProcessEvent(evtCtx);
+ }
+ else
+ {
+ event.Skip() ;
+ }
+}
+