void cvSetModeWindow_W32(const char* name, double prop_value);
void cvSetModeWindow_GTK(const char* name, double prop_value);
void cvSetModeWindow_CARBON(const char* name, double prop_value);
+void cvSetModeWindow_COCOA(const char* name, double prop_value);
double cvGetModeWindow_W32(const char* name);
double cvGetModeWindow_GTK(const char* name);
double cvGetModeWindow_CARBON(const char* name);
+double cvGetModeWindow_COCOA(const char* name);
double cvGetPropWindowAutoSize_W32(const char* name);
double cvGetPropWindowAutoSize_GTK(const char* name);
cvSetModeWindow_GTK(name,prop_value);
#elif defined (HAVE_CARBON)
cvSetModeWindow_CARBON(name,prop_value);
+ #elif defined (HAVE_COCOA)
+ cvSetModeWindow_COCOA(name,prop_value);
#endif
break;
return cvGetModeWindow_GTK(name);
#elif defined (HAVE_CARBON)
return cvGetModeWindow_CARBON(name);
+ #elif defined (HAVE_COCOA)
+ return cvGetModeWindow_COCOA(name);
#else
return -1;
#endif
CvMouseCallback mouseCallback;
void *mouseParam;
BOOL autosize;
- BOOL firstContent;
+ BOOL firstContent;
+ int status;
}
@property(assign) CvMouseCallback mouseCallback;
@property(assign) void *mouseParam;
@property(assign) BOOL autosize;
@property(assign) BOOL firstContent;
@property(retain) NSMutableDictionary *sliders;
+@property(readwrite) int status;
- (CVView *)contentView;
- (void)cvSendMouseEvent:(NSEvent *)event type:(int)type flags:(int)flags;
- (void)cvMouseEvent:(NSEvent *)event;
return returnCode;
}
+double cvGetModeWindow_COCOA( const char* name )
+{
+ double result = -1;
+ CVWindow *window = nil;
+
+ CV_FUNCNAME( "cvGetModeWindow_COCOA" );
+
+ __BEGIN__;
+ if( name == NULL )
+ {
+ CV_ERROR( CV_StsNullPtr, "NULL name string" );
+ }
+
+ window = cvGetWindow( name );
+ if ( window == NULL )
+ {
+ CV_ERROR( CV_StsNullPtr, "NULL window" );
+ }
+
+ result = window.status;
+
+ __END__;
+ return result;
+}
+
+void cvSetModeWindow_COCOA( const char* name, double prop_value )
+{
+ CVWindow *window = nil;
+ NSDictionary *fullscreenOptions = nil;
+ NSAutoreleasePool* localpool = nil;
+
+ CV_FUNCNAME( "cvSetModeWindow_COCOA" );
+
+ __BEGIN__;
+ if( name == NULL )
+ {
+ CV_ERROR( CV_StsNullPtr, "NULL name string" );
+ }
+
+ window = cvGetWindow(name);
+ if ( window == NULL )
+ {
+ CV_ERROR( CV_StsNullPtr, "NULL window" );
+ }
+
+ if ( [window autosize] )
+ {
+ return;
+ }
+
+ localpool = [[NSAutoreleasePool alloc] init];
+
+ fullscreenOptions = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES] forKey:NSFullScreenModeSetting];
+ if ( [[window contentView] isInFullScreenMode] && prop_value==CV_WINDOW_NORMAL )
+ {
+ [[window contentView] exitFullScreenModeWithOptions:fullscreenOptions];
+ window.status=CV_WINDOW_NORMAL;
+ }
+ else if( ![[window contentView] isInFullScreenMode] && prop_value==CV_WINDOW_FULLSCREEN )
+ {
+ [[window contentView] enterFullScreenMode:[NSScreen mainScreen] withOptions:fullscreenOptions];
+ window.status=CV_WINDOW_FULLSCREEN;
+ }
+
+ [localpool drain];
+
+ __END__;
+}
+
@implementation CVWindow
@synthesize mouseCallback;
@synthesize autosize;
@synthesize firstContent;
@synthesize sliders;
+@synthesize status;
- (void)cvSendMouseEvent:(NSEvent *)event type:(int)type flags:(int)flags {
//cout << "cvSendMouseEvent" << endl;
NSAutoreleasePool* localpool = [[NSAutoreleasePool alloc] init];
CVWindow *cvwindow = (CVWindow *)[self window];
int height = 0;
- for(NSString *key in [cvwindow sliders]) {
- height += [[[cvwindow sliders] valueForKey:key] frame].size.height;
- }
+ if ([cvwindow respondsToSelector:@selector(sliders)]) {
+ for(NSString *key in [cvwindow sliders]) {
+ height += [[[cvwindow sliders] valueForKey:key] frame].size.height;
+ }
+ }
NSRect imageRect = {{0,0}, {[image size].width, [image size].height}};