osxuitoolkit.cpp
来自「这是VCF框架的代码」· C++ 代码 · 共 2,694 行 · 第 1/5 页
CPP
2,694 行
case kEventControlDispose : { result = new VCF::ComponentEvent( msg->control_, Component::COMPONENT_DESTROYED ); } break; case kEventControlSetFocusPart : { UInt32 attributes = 0; ControlRef ctrl = NULL; ControlRef startCtrl = NULL; ControlPartCode part = 0; OSStatus err = GetEventParameter( msg->osxEvent_, kEventParamDirectObject, typeControlRef, NULL, sizeof( ControlRef ), NULL, &ctrl ); err = GetEventParameter( msg->osxEvent_, kEventParamStartControl, typeControlRef, NULL, sizeof( ControlRef ), NULL, &startCtrl ); err = GetEventParameter( msg->osxEvent_, kEventParamControlPart, typeControlPartCode, NULL, sizeof( ControlPartCode ), NULL, &part ); } break; case kEventControlGetOptimalBounds : { } break; case kEventControlHit : { } break; case kEventControlHitTest : { ::Point mousePos; GetEventParameter( msg->osxEvent_, kEventParamMouseLocation, typeQDPoint, NULL, sizeof (mousePos), NULL, &mousePos); //LocalToGlobal( &mousePos ); VCF::Point pt( mousePos.h , mousePos.v ); //localizes the coords //msg->control_->translateFromScreenCoords( &pt ); Scrollable* scrollable = msg->control_->getScrollable(); if ( NULL != scrollable ) { pt.x_ += scrollable->getHorizontalPosition(); pt.y_ += scrollable->getVerticalPosition(); } result = new VCF::MouseEvent ( msg->control_, Control::MOUSE_MOVE, mbmLeftButton, OSXUIUtils::translateKeyMask( 0 ), &pt ); } break; case kEventControlGetFocusPart : { } break; case kEventControlActivate : { result = new VCF::FocusEvent ( msg->control_, Control::FOCUS_GAINED ); } break; case kEventControlDeactivate : { result = new VCF::FocusEvent ( msg->control_, Control::FOCUS_LOST ); } break; case kEventControlSetCursor : { } break; case kEventControlContextualMenuClick : { } break; case kEventControlClick : { } break; case kEventControlGetNextFocusCandidate : { } break; case kEventControlGetAutoToggleValue : { } break; case kEventControlInterceptSubviewClick : { } break; case kEventControlGetClickActivation : { } break; case kEventControlDragEnter : { } break; case kEventControlDragWithin : { } break; case kEventControlDragLeave : { } break; case kEventControlDragReceive : { } break; case kEventControlTrack : { ControlRef theControl; GetEventParameter( msg->osxEvent_, kEventParamDirectObject, typeControlRef, NULL, sizeof (theControl), NULL, &theControl); ::Point mousePos; GetEventParameter( msg->osxEvent_, kEventParamMouseLocation, typeQDPoint, NULL, sizeof (mousePos), NULL, &mousePos); //LocalToGlobal( &mousePos ); UInt32 keyboardModifier = 0; GetEventParameter( msg->osxEvent_, kEventParamKeyModifiers, typeUInt32, NULL, sizeof (keyboardModifier), NULL, &keyboardModifier); VCF::Point pt( mousePos.h , mousePos.v ); OSXControl* control = OSXControl::getControlFromControlRef( theControl ); //localizes the coords //control->translateFromScreenCoords( &pt ); Scrollable* scrollable = msg->control_->getScrollable(); if ( NULL != scrollable ) { pt.x_ += scrollable->getHorizontalPosition(); pt.y_ += scrollable->getVerticalPosition(); } result = new VCF::MouseEvent ( msg->control_, Control::MOUSE_DOWN, mbmLeftButton, OSXUIUtils::translateKeyMask( keyboardModifier ), &pt ); } break; case kEventControlGetScrollToHereStartPoint : { } break; case kEventControlGetIndicatorDragConstraint : { } break; case kEventControlIndicatorMoved : { } break; case kEventControlGhostingFinished : { } break; case kEventControlGetActionProcPart : { } break; case kEventControlGetPartRegion : { } break; case kEventControlGetPartBounds : { } break; case kEventControlSetData : { } break; case kEventControlGetData : { } break; case kEventControlGetSizeConstraints : { } break; case kEventControlValueFieldChanged : { } break; case kEventControlAddedSubControl : { } break; case kEventControlRemovingSubControl : { } break; case kEventControlBoundsChanged : { UInt32 attributes = 0; OSStatus err = GetEventParameter( msg->osxEvent_, kEventParamAttributes, typeUInt32, NULL, sizeof( UInt32 ), NULL, &attributes ); if ( err == noErr ) { ::Rect currentBounds; GetEventParameter( msg->osxEvent_, kEventParamCurrentBounds, typeQDRectangle, NULL, sizeof(currentBounds), NULL, ¤tBounds); if ( attributes & kControlBoundsChangeSizeChanged ) { VCF::Size sz( abs(currentBounds.right - currentBounds.left), abs(currentBounds.bottom - currentBounds.top) ); result = new ControlEvent( msg->control_, sz ); } else if ( attributes & kControlBoundsChangePositionChanged ) { VCF::Point pt( currentBounds.left , currentBounds.top ); result = new VCF::ControlEvent( msg->control_, pt ); } } } break; case kEventControlTitleChanged : { } break; case kEventControlOwningWindowChanged : { } break; case kEventControlHiliteChanged : { } break; case kEventControlEnabledStateChanged : { } break; case kEventControlArbitraryMessage : { } break; } } break; case kEventClassCommand : { switch ( whatHappened ) { case kEventProcessCommand : { HICommand command; GetEventParameter( msg->osxEvent_, kEventParamDirectObject, typeHICommand, NULL, sizeof( HICommand ), NULL, &command ); MenuItem* item = NULL; GetMenuCommandProperty( command.menu.menuRef, command.commandID, VCF_PROPERTY_CREATOR, OSXMenuItem::propertyTag, sizeof(item), NULL, &item ); if ( NULL != item ) { } } break; case kEventCommandUpdateStatus : { } break; } } break; case kEventClassTablet : { } break; case kEventClassVolume : { } break; case kEventClassAppearance : { switch ( whatHappened ) { case kEventParamNewScrollBarVariant : { } break; } } break; case kEventClassService : { switch ( whatHappened ) { case kEventServiceCopy : { } break; case kEventServicePaste : { } break; case kEventServiceGetTypes : { } break; case kEventServicePerform : { } break; } } break; case kEventClassToolbar : { switch ( whatHappened ) { case kEventParamToolbar : { } break; case kEventParamToolbarItem : { } break; case kEventParamToolbarItemIdentifier : { } break; case kEventParamToolbarItemConfigData : { } break; } } break; case kEventClassToolbarItem : { } break; case kEventClassAccessibility : { } break; } return result;}EventRef OSXUIToolkit::createUserCarbonEvent( UInt32 eventType ){ EventRef result = NULL; OSStatus err = CreateEvent( NULL, OSXUIToolkit::CustomEventClass, eventType, 0, kEventAttributeUserEvent, &result ); if ( err != noErr ) { printf( "OSXUIToolkit::createUserCarbonEvent CreateEvent failed!\n" ); } else { } return result;}VCF::Size OSXUIToolkit::internal_getDragDropDelta(){ Size result(5,5); return result;}void OSXUIToolkit::internal_displayHelpContents( const String& helpBookName, const String& helpDirectory ){}void OSXUIToolkit::internal_displayHelpIndex( const String& helpBookName, const String& helpDirectory ){}bool OSXUIToolkit::internal_displayContextHelpForControl( Control* control, const String& helpBookName, const String& helpDirectory ){ return false;}void OSXUIToolkit::internal_displayHelpSection( const String& helpBookName, const String& helpDirectory, const String& helpSection ){}void OSXUIToolkit::internal_systemSettingsChanged(){}/***CVS Log info*$Log$*Revision 1.7 2006/04/07 02:35:24 ddiego*initial checkin of merge from 0.6.9 dev branch.**Revision 1.6.2.7 2006/03/17 03:08:11 ddiego*updated osx code to latest changes.**Revision 1.6.2.6 2006/02/26 23:44:10 ddiego*minor updates to sync osx version with latest cvs. added xcode proj for Themes example.**Revision 1.6.2.5 2006/02/22 01:26:22 ddiego*mac osx updates.**Revision 1.6.2.4 2005/11/30 05:31:35 ddiego*further osx drag-drop updates.**Revision 1.6.2.3 2005/11/27 23:55:45 ddiego*more osx updates.**Revision 1.6.2.2 2005/11/21 04:00:51 ddiego*more osx updates.**Revision 1.6.2.1 2005/11/10 04:43:27 ddiego*updated the osx build so that it*compiles again on xcode 1.5. this applies to the foundationkit and graphicskit.**Revision 1.6 2005/07/10 00:20:40 ddiego*updated osx code from merge over of devmain-0-6-7.**Revision 1.5 2005/07/09 23:14:55 ddiego*merging in changes from devmain-0-6-7 branch.**Revision 1.4 2005/01/08 20:52:46 ddiego*fixed some glitches in osx impl.*Revision 1.3.2.7 2005/07/07 23:28:58 ddiego*last osx checkins before release - not complete :(**Revision 1.3.2.6 2005/06/23 01:26:55 ddiego*build updates**Revision 1.3.2.5 2005/06/23 00:35:36 ddiego*added osx classes**Revision 1.3.2.4 2005/06/22 03:59:30 ddiego*added osx stub classes for peers**Revision 1.3.2.3 2005/06/09 02:25:50 ddiego*updated osx build**Revision 1.3.2.2 2005/05/08 19:55:31 ddiego*osx updates, not yet functional.**Revision 1.3.2.1 2005/03/15 01:51:49 ddiego*added support for Format class to take the place of the*previously used var arg funtions in string utils and system. Also replaced*existing code in the framework that made use of the old style var arg*functions.**Revision 1.3 2004/12/01 04:31:37 ddiego*merged over devmain-0-6-6 code. Marcello did a kick ass job*of fixing a nasty bug (1074768VCF application slows down modal dialogs.)*that he found. Many, many thanks for this Marcello.**Revision 1.2.2.8 2004/11/15 05:41:28 ddiego*finished almost all the osx menu code except for custom drawing. This completes this releases osx effort.**Revision 1.2.2.7 2004/11/10 06:16:40 ddiego*started
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?