Merge pull request #22495 from cpoerschke:4.x-issue-22483

add explicit onChange callback in cocoa cvSetTrackbarPos
pull/22503/head
Alexander Smorkalov 2 years ago committed by GitHub
commit 8af4fe9ed3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 11
      modules/highgui/src/window_cocoa.mm

@ -451,6 +451,9 @@ CV_IMPL void cvSetTrackbarPos(const char* trackbar_name, const char* window_name
slider = [[window sliders] valueForKey:[NSString stringWithFormat:@"%s", trackbar_name]]; slider = [[window sliders] valueForKey:[NSString stringWithFormat:@"%s", trackbar_name]];
if(slider) { if(slider) {
[[slider slider] setIntValue:pos]; [[slider slider] setIntValue:pos];
if([slider respondsToSelector:@selector(handleSlider)]) {
[slider performSelector:@selector(handleSlider)];
}
} }
} }
[localpool5 drain]; [localpool5 drain];
@ -1187,7 +1190,7 @@ static NSSize constrainAspectRatio(NSSize base, NSSize constraint) {
[slider setMaxValue:100]; [slider setMaxValue:100];
[slider setContinuous:YES]; [slider setContinuous:YES];
[slider setTarget:self]; [slider setTarget:self];
[slider setAction:@selector(sliderChanged:)]; [slider setAction:@selector(handleSliderNotification:)];
[self addSubview:slider]; [self addSubview:slider];
[self setAutoresizingMask:NSViewWidthSizable]; [self setAutoresizingMask:NSViewWidthSizable];
@ -1197,8 +1200,12 @@ static NSSize constrainAspectRatio(NSSize base, NSSize constraint) {
return self; return self;
} }
- (void)sliderChanged:(NSNotification *)notification { - (void)handleSliderNotification:(NSNotification *)notification {
(void)notification; (void)notification;
[self handleSlider];
}
- (void)handleSlider {
int pos = [slider intValue]; int pos = [slider intValue];
NSString *temp = [self initialName]; NSString *temp = [self initialName];
NSString *text = [NSString stringWithFormat:@"%@ %d", temp, pos]; NSString *text = [NSString stringWithFormat:@"%@ %d", temp, pos];

Loading…
Cancel
Save