objective c - Hot to create custom NSSlider like "Start screen saver:" slider in System Preferences -


how create custom nsslider working slider in system preferences -> desktop & screen saver -> screen saver -> start screen saver: ?

i tried subclass nsslidercell overridden continuetracking: don't work expected.

i played around bit , @ least got off pretty start nsslidercell subclass.

mdslidercell.h:

#import <cocoa/cocoa.h>  @interface mdslidercell : nsslidercell {     bool    tracking; }  @end 

mdslidercell.m:

#import "mdslidercell.h"  @implementation mdslidercell  - (bool)starttrackingat:(nspoint)startpoint inview:(nsview *)controlview {     if ([self numberoftickmarks] > 0) tracking = yes;     return [super starttrackingat:startpoint inview:controlview]; }  #define md_snapping 10.0  - (bool)continuetracking:(nspoint)lastpoint at:(nspoint)currentpoint     inview:(nsview *)controlview {    if (tracking) {       nsuinteger count = [self numberoftickmarks];       (nsuinteger = 0; < count; i++) {           nsrect tickmarkrect = [self rectoftickmarkatindex:i];           if (abs(tickmarkrect.origin.x - currentpoint.x) <= md_snapping) {              [self setallowstickmarkvaluesonly:yes];           } else if (abs(tickmarkrect.origin.x - currentpoint.x) >= md_snapping &&              abs(tickmarkrect.origin.x - currentpoint.x) <= md_snapping *2) {              [self setallowstickmarkvaluesonly:no];           }       }    }   return [super continuetracking:lastpoint at:currentpoint inview:controlview]; }  - (void)stoptracking:(nspoint)lastpoint at:(nspoint)stoppoint        inview:(nsview *)controlview mouseisup:(bool)flag {     [super stoptracking:lastpoint at:stoppoint inview:controlview mouseisup:flag]; }  @end 

basically, during -continuetracking:at:inview:, checks see how close tick mark, , if it's close enough, turns on option allow tick mark values. causes snap tick mark, once far enough away, turn "tick mark-only" option off until close enough tick mark.


Comments

Popular posts from this blog

objective c - Change font of selected text in UITextView -

php - Accessing POST data in Facebook cavas app -

c# - Getting control value when switching a view as part of a multiview -