if( application )
{
[application terminate:nil];
+ application = 0;
[pool release];
}
}
windows = [[NSMutableDictionary alloc] init];
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
+
+#ifndef NSAppKitVersionNumber10_5
+#define NSAppKitVersionNumber10_5 949
+#endif
if( floor(NSAppKitVersionNumber) > NSAppKitVersionNumber10_5 )
[application setActivationPolicy:0/*NSApplicationActivationPolicyRegular*/];
#endif
CV_IMPL void cvShowImage( const char* name, const CvArr* arr)
{
CVWindow *window = cvGetWindow(name);
- if(window) {
+ if(!window)
+ {
+ cvNamedWindow(name, CV_WINDOW_AUTOSIZE);
+ window = cvGetWindow(name);
+ }
+
+ if(window)
+ {
bool empty = [[window contentView] image] == nil;
+ NSRect rect = [window frame];
+ NSRect vrectOld = [[window contentView] frame];
+
[[window contentView] setImageData:(CvArr *)arr];
- if([window autosize] || empty) {
- NSRect rect = [window frame];
- rect.size = [[[window contentView] image] size];
+ if([window autosize] || empty)
+ {
+ NSRect vrectNew = vrectOld;
+ vrectNew.size = [[[window contentView] image] size];
+ rect.size.width += vrectNew.size.width - vrectOld.size.width;
+ rect.size.height += vrectNew.size.height - vrectOld.size.height;
[window setFrame:rect display:YES];
- } else {
- [window display];
}
+ else
+ [window display];
}
-
}
CV_IMPL void cvResizeWindow( const char* name, int width, int height)
if( !wasInitialized )
cvInitSystem(0, 0);
- CVWindow *window = [[CVWindow alloc] initWithContentRect:NSMakeRect(0,0,200,200)
+ CVWindow *window = cvGetWindow(name);
+ if( window )
+ {
+ [window setAutosize:(flags == CV_WINDOW_AUTOSIZE)];
+ return 0;
+ }
+
+ window = [[CVWindow alloc] initWithContentRect:NSMakeRect(0,0,200,200)
styleMask:NSTitledWindowMask|NSClosableWindowMask|NSMiniaturizableWindowMask|
(!(flags & CV_WND_PROP_AUTOSIZE) ? NSResizableWindowMask : 0)
backing:NSBackingStoreBuffered