This is TonePanelCtrl.m in view mode; [Download] [Up]
#import "TonePanelCtrl.h" #import <appkit/Control.h> #import <appkit/Matrix.h> #import <stdio.h> #import "../common.h" #import "../ImageOpCtr.h" #import "../ImageOpr.h" @implementation TonePanelCtrl - init { return [self reset:nil]; } - reset: sender { int i; if (sender && [sender selectedTag] != 0) [mainSlider setFloatValue: 1.0]; for (i = 0; i < N_Colors; i++) ratios[i] = 1.0; return [self changeMainValue: self]; } /* Local Method */ - setFormatFloat:(float)value to:target { char buf[16]; sprintf(buf, "%4.2f", (int)(value * 20.0) / 20.0); return [target setStringValue: buf]; } - changeMainValue: sender { int i; float v, cv; v = [mainSlider floatValue]; [self setFormatFloat:v to:mainIndicator]; for (i = 0; i < N_Colors; i++) { cv = v * ratios[i]; if (cv > Colors_MAXVAL) cv = Colors_MAXVAL; [[colorSliders cellAt:i :0] setFloatValue: cv]; [self setFormatFloat:cv to:[colorIndicators cellAt:i :0]]; } return self; } - changeColorValue: sender { id cell; int tag; float v, mv; cell = [sender selectedCell]; tag = [cell tag]; v = [cell floatValue]; mv = [mainSlider floatValue]; ratios[tag] = (mv > 0.01) ? (v / mv) : 1.0; [self setFormatFloat:v to:[colorIndicators cellAt:tag :0]]; return self; } - colorTone: sender { int i; float values[N_Colors]; for (i = 0; i < N_Colors; i++) values[i] = [[colorIndicators cellAt:i :0] floatValue]; [imageOpCtr colorToneEnhance: values]; /* This message will be delegated to ImageOpr */ return self; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.