X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/63d1f74fe900809cd10f6021103875c23a1e8f87..c1d6d0f9e831c2e63e58cfd4c2cad3259ee4c8e3:/src/mac/control.cpp diff --git a/src/mac/control.cpp b/src/mac/control.cpp index e12f3f63da..84e0822c54 100644 --- a/src/mac/control.cpp +++ b/src/mac/control.cpp @@ -78,7 +78,7 @@ pascal void wxMacLiveScrollbarActionProc( ControlHandle control , ControlPartCod wxControl* wx = (wxControl*) GetControlReference( control ) ; if ( wx ) { - wx->MacHandleControlClick( control , partCode ) ; + wx->MacHandleControlClick( control , partCode , true /* stillDown */ ) ; } } } @@ -147,9 +147,6 @@ wxControl::wxControl() m_macVerticalBorder = 0 ; m_backgroundColour = *wxWHITE; m_foregroundColour = *wxBLACK; -#if WXWIN_COMPATIBILITY - m_callback = 0; -#endif // WXWIN_COMPATIBILITY if ( wxMacLiveScrollbarActionUPP == NULL ) { @@ -208,23 +205,9 @@ void wxControl::SetLabel(const wxString& title) { m_label = wxStripMenuCodes(title) ; - if ( (ControlHandle) m_macControl ) + if ( m_macControl ) { - Str255 maclabel ; - wxString label ; - - if( wxApp::s_macDefaultEncodingIsPC ) - label = wxMacMakeMacStringFromPC( m_label ) ; - else - label = m_label ; - -#if TARGET_CARBON - c2pstrcpy( (StringPtr) maclabel , label ) ; -#else - strcpy( (char *) maclabel , label ) ; - c2pstr( (char *) maclabel ) ; -#endif - ::SetControlTitle( (ControlHandle) m_macControl , maclabel ) ; + UMASetControlTitle( (ControlHandle) m_macControl , m_label ) ; } Refresh() ; } @@ -279,22 +262,10 @@ wxSize wxControl::DoGetBestSize() const bool wxControl::ProcessCommand (wxCommandEvent & event) { - // Tries: - // 1) A callback function (to become obsolete) - // 2) OnCommand, starting at this window and working up parent hierarchy - // 3) OnCommand then calls ProcessEvent to search the event tables. -#if WXWIN_COMPATIBILITY - if ( m_callback ) - { - (void)(*m_callback)(this, event); - - return TRUE; - } - else -#endif // WXWIN_COMPATIBILITY - { - return GetEventHandler()->ProcessEvent(event); - } + // Tries: + // 1) OnCommand, starting at this window and working up parent hierarchy + // 2) OnCommand then calls ProcessEvent to search the event tables. + return GetEventHandler()->ProcessEvent(event); } // ------------------------ @@ -311,7 +282,7 @@ void wxAssociateControlWithMacControl(ControlHandle inControl, wxControl *contro { // adding NULL WindowRef is (first) surely a result of an error and // (secondly) breaks menu command processing - wxCHECK_RET( inControl != (ControlHandle) NULL, "attempt to add a NULL WindowRef to window list" ); + wxCHECK_RET( inControl != (ControlHandle) NULL, wxT("attempt to add a NULL WindowRef to window list") ); if ( !wxWinMacControlList->Find((long)inControl) ) wxWinMacControlList->Append((long)inControl, control); @@ -329,23 +300,8 @@ void wxControl::MacPreControlCreate( wxWindow *parent, wxWindowID id, wxString l const wxString& name , WXRECTPTR outBounds , unsigned char* maclabel ) { m_label = label ; - SetName(name); - if ( &validator ) - SetValidator(validator); - - m_windowStyle = style; - parent->AddChild(this); - - m_backgroundColour = parent->GetBackgroundColour() ; - m_foregroundColour = parent->GetForegroundColour() ; - - if (id == -1) - m_windowId = NewControlId(); - else - m_windowId = id; - - // These sizes will be adjusted in MacPostControlCreate + // These sizes will be adjusted in MacPostControlCreate m_width = size.x ; m_height = size.y ; m_x = pos.x ; @@ -361,7 +317,7 @@ void wxControl::MacPreControlCreate( wxWindow *parent, wxWindowID id, wxString l void wxControl::MacPostControlCreate() { - wxASSERT_MSG( (ControlHandle) m_macControl != NULL , "No valid mac control" ) ; + wxASSERT_MSG( (ControlHandle) m_macControl != NULL , wxT("No valid mac control") ) ; if ( IsKindOf( CLASSINFO( wxScrollBar ) ) ) { @@ -379,7 +335,11 @@ void wxControl::MacPostControlCreate() { ControlFontStyleRec controlstyle ; controlstyle.flags = kControlUseFontMask ; - controlstyle.font = kControlFontSmallSystemFont ; + + if (IsKindOf( CLASSINFO( wxButton ) ) ) + controlstyle.font = kControlFontSmallSystemFont ; // eventually kControlFontBigSystemFont ; + else + controlstyle.font = kControlFontSmallSystemFont ; ::SetControlFontStyle( (ControlHandle) m_macControl , &controlstyle ) ; } @@ -438,6 +398,10 @@ void wxControl::MacPostControlCreate() SetSize(pos.x, pos.y, new_size.x, new_size.y); +#if wxUSE_UNICODE + UMASetControlTitle( (ControlHandle) m_macControl , wxStripMenuCodes(m_label) ) ; +#endif + UMAShowControl( (ControlHandle) m_macControl ) ; SetCursor( *wxSTANDARD_CURSOR ) ; @@ -881,11 +845,9 @@ void wxControl::OnMouseEvent( wxMouseEvent &event ) { controlpart = ::HandleControlClick( control , localwhere , modifiers , (ControlActionUPP) -1 ) ; wxTheApp->s_lastMouseDown = 0 ; - if ( control && controlpart != kControlNoPart && - ! IsKindOf( CLASSINFO( wxScrollBar ) ) - ) // otherwise we will get the event twice for scrollbar + if ( control && controlpart != kControlNoPart ) { - MacHandleControlClick( control , controlpart ) ; + MacHandleControlClick( control , controlpart , false /* mouse not down anymore */ ) ; } } } @@ -905,8 +867,8 @@ bool wxControl::MacCanFocus() const return false ; } -void wxControl::MacHandleControlClick( WXWidget control , wxInt16 controlpart ) +void wxControl::MacHandleControlClick( WXWidget control , wxInt16 controlpart , bool WXUNUSED( mouseStillDown ) ) { - wxASSERT_MSG( (ControlHandle) m_macControl != NULL , "No valid mac control" ) ; + wxASSERT_MSG( (ControlHandle) m_macControl != NULL , wxT("No valid mac control") ) ; }