222
227
GetWindowPortBounds(window->window, &portrect);
224
if( window->flags & CV_WINDOW_AUTOSIZE )
229
if(!( window->flags & CV_WINDOW_AUTOSIZE) ) //YV
226
231
CGPoint origin = {0,0};
227
232
CGSize size = {portrect.right-portrect.left, portrect.bottom-portrect.top-window->trackbarheight};
474
481
trackbar->notify(pos);
475
482
else if ( trackbar->notify2 )
476
483
trackbar->notify2(pos, trackbar->userdata);
485
//--------YV---------------------------
486
CFStringEncoding encoding = kCFStringEncodingASCII;
487
CFAllocatorRef alloc_default = kCFAllocatorDefault; // = NULL;
489
char valueinchar[20];
490
sprintf(valueinchar, " (%d)", *trackbar->data);
492
// create an empty CFMutableString
493
CFIndex maxLength = 256;
494
CFMutableStringRef cfstring = CFStringCreateMutable(alloc_default,maxLength);
496
// append some c strings into it.
497
CFStringAppendCString(cfstring,trackbar->name,encoding);
498
CFStringAppendCString(cfstring,valueinchar,encoding);
500
SetControlData(trackbar->label, kControlEntireControl,kControlStaticTextCFStringTag, sizeof(cfstring), &cfstring);
501
DrawControls(trackbar->parent->window);
502
//-----------------------------------------
535
561
trackbar->maxval = count;
563
//----------- YV ----------------------
566
while((count/=10)>10){
570
//pad size maxvalue in pixel
572
char valueinchar[strlen(trackbar_name)+1 +1 +1+nbDigit+1];//lenght+\n +space +(+nbDigit+)
573
sprintf(valueinchar, "%s (%d)",trackbar_name, trackbar->maxval);
575
CFStringRef text = CFStringCreateWithCString(NULL,valueinchar,kCFStringEncodingASCII);
576
GetThemeTextDimensions( text, kThemeCurrentPortFont, kThemeStateActive, false, &qdSize, &baseline );
577
trackbar->labelSize = qdSize.h;
578
//--------------------------------------
537
580
int c = icvCountTrackbarInWindow(window);
539
582
GetWindowBounds(window->window,kWindowContentRgn,&bounds);
544
587
stboundsRect.right = stboundsRect.left+LABELWIDTH;
546
589
//fprintf(stdout,"create trackabar bounds (%d %d %d %d)\n",stboundsRect.top,stboundsRect.left,stboundsRect.bottom,stboundsRect.right);
547
CreateStaticTextControl (window->window,&stboundsRect,CFStringCreateWithCString(NULL,trackbar_name,kCFStringEncodingASCII),NULL,&stoutControl);
590
//----------- YV ----------------------
591
sprintf(valueinchar, "%s (%d)",trackbar_name, trackbar->pos);
592
CreateStaticTextControl (window->window,&stboundsRect,CFStringCreateWithCString(NULL,valueinchar,kCFStringEncodingASCII),NULL,&stoutControl);
593
//--------------------------------------
549
595
stboundsRect.top = (INTERWIDGETSPACE +WIDGETHEIGHT)* (c-1)+INTERWIDGETSPACE;
550
596
stboundsRect.left = INTERWIDGETSPACE*2+LABELWIDTH;
551
597
stboundsRect.bottom = stboundsRect.top + WIDGETHEIGHT;
711
757
return window_name;
760
double cvGetMode_QT(const char* name)//YV
764
CV_FUNCNAME( "cvGetMode_QT" );
771
CV_ERROR( CV_StsNullPtr, "NULL name string" );
773
window = icvFindWindowByName( name );
775
CV_ERROR( CV_StsNullPtr, "NULL window" );
777
result = window->status;
783
void cvChangeMode_QT( const char* name, double prop_value)//Yannick Verdie
785
OSStatus err = noErr;
788
CV_FUNCNAME( "cvChangeMode_QT" );
795
CV_ERROR( CV_StsNullPtr, "NULL name string" );
797
window = icvFindWindowByName( name );
799
CV_ERROR( CV_StsNullPtr, "NULL window" );
801
if(window->flags & CV_WINDOW_AUTOSIZE)//if the flag CV_WINDOW_AUTOSIZE is set
804
if (window->status==CV_WINDOW_FULLSCREEN && prop_value==CV_WINDOW_NORMAL)
806
err = EndFullScreen(window->restoreState,0);
808
fprintf(stdout,"Error EndFullScreen\n");
809
window->window = window->oldwindow;
810
ShowWindow( window->window );
812
window->status=CV_WINDOW_NORMAL;
816
if (window->status==CV_WINDOW_NORMAL && prop_value==CV_WINDOW_FULLSCREEN)
819
err = GetWindowGreatestAreaDevice(window->window, kWindowTitleBarRgn, &device, NULL);
821
fprintf(stdout,"Error GetWindowGreatestAreaDevice\n");
823
HideWindow(window->window);
824
window->oldwindow = window->window;
825
err = BeginFullScreen(&(window->restoreState), device, 0, 0, &window->window, 0, fullScreenAllowEvents | fullScreenDontSwitchMonitorResolution);
827
fprintf(stdout,"Error BeginFullScreen\n");
829
window->status=CV_WINDOW_FULLSCREEN;
715
836
CV_IMPL int cvNamedWindow( const char* name, int flags )
772
893
window->name = (char*)(window + 1);
773
894
memcpy( window->name, name, len + 1 );
774
895
window->flags = flags;
896
window->status = CV_WINDOW_NORMAL;//YV
775
897
window->signature = CV_WINDOW_MAGIC_VAL;
776
898
window->image = 0;
777
899
window->last_key = 0;
785
907
hg_windows = window;
786
908
wAttributes = kWindowStandardDocumentAttributes | kWindowStandardHandlerAttribute | kWindowLiveResizeAttribute;
911
if (window->flags & CV_WINDOW_AUTOSIZE)//Yannick verdie, remove the handler at the bottom-right position of the window in AUTORESIZE mode
914
wAttributes = kWindowCloseBoxAttribute | kWindowFullZoomAttribute | kWindowCollapseBoxAttribute | kWindowStandardHandlerAttribute | kWindowLiveResizeAttribute;
788
917
err = CreateNewWindow ( kDocumentWindowClass,wAttributes,&contentBounds,&outWindow);
789
918
if (err != noErr)
790
919
fprintf(stderr,"Error while creating the window\n");
794
923
fprintf(stdout,"Error SetWindowTitleWithCFString\n");
796
925
window->window = outWindow;
926
window->oldwindow = 0;//YV
798
928
err = InstallWindowEventHandler(outWindow, NewEventHandlerUPP(windowEventHandler), GetEventTypeCount(genericWindowEventHandler), genericWindowEventHandler, outWindow, NULL);
800
930
ShowWindow( outWindow );