mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-06-01 13:51:55 +00:00
Initial implementation of NSColorList and NSColorWell.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@1971 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
2be9ffcd03
commit
37cb5135e1
7 changed files with 300 additions and 38 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
Thu Dec 5 06:58:51 1996 GNUstep Development <gnustep@net-community.com>
|
||||||
|
|
||||||
|
* Source/NSColorList.m: Fill out implementation.
|
||||||
|
* Source/NSColorWell.m: Initial implementation.
|
||||||
|
|
||||||
Thu Dec 05 09:56:25 1996 Scott Christley <scottc@net-community.com>
|
Thu Dec 05 09:56:25 1996 Scott Christley <scottc@net-community.com>
|
||||||
|
|
||||||
* Headers/gnustep/gui/NSMenu.h: Newer release of OpenStep
|
* Headers/gnustep/gui/NSMenu.h: Newer release of OpenStep
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
NSColorList.h
|
NSColorList.h
|
||||||
|
|
||||||
Description...
|
Manage named lists of NSColors.
|
||||||
|
|
||||||
Copyright (C) 1996 Free Software Foundation, Inc.
|
Copyright (C) 1996 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
@ -32,11 +32,19 @@
|
||||||
#include <AppKit/stdappkit.h>
|
#include <AppKit/stdappkit.h>
|
||||||
#include <AppKit/NSColor.h>
|
#include <AppKit/NSColor.h>
|
||||||
#include <Foundation/NSCoder.h>
|
#include <Foundation/NSCoder.h>
|
||||||
|
#include <Foundation/NSDictionary.h>
|
||||||
|
#include <Foundation/NSArray.h>
|
||||||
|
#include <Foundation/NSString.h>
|
||||||
|
|
||||||
@interface NSColorList : NSObject <NSCoding>
|
@interface NSColorList : NSObject <NSCoding>
|
||||||
|
|
||||||
{
|
{
|
||||||
// Attributes
|
// Attributes
|
||||||
|
NSString *list_name;
|
||||||
|
NSString *file_name;
|
||||||
|
NSMutableDictionary *color_list;
|
||||||
|
NSMutableArray *color_list_keys;
|
||||||
|
BOOL is_editable;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -64,7 +72,7 @@
|
||||||
- (NSColor *)colorWithKey:(NSString *)key;
|
- (NSColor *)colorWithKey:(NSString *)key;
|
||||||
- (void)insertColor:(NSColor *)color
|
- (void)insertColor:(NSColor *)color
|
||||||
key:(NSString *)key
|
key:(NSString *)key
|
||||||
atIndex:(unsigned)location;
|
atIndex:(unsigned)location;
|
||||||
- (void)removeColorWithKey:(NSString *)key;
|
- (void)removeColorWithKey:(NSString *)key;
|
||||||
- (void)setColor:(NSColor *)aColor
|
- (void)setColor:(NSColor *)aColor
|
||||||
forKey:(NSString *)key;
|
forKey:(NSString *)key;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
NSColorWell.h
|
NSColorWell.h
|
||||||
|
|
||||||
Description...
|
NSControl for selecting and display a single color value.
|
||||||
|
|
||||||
Copyright (C) 1996 Free Software Foundation, Inc.
|
Copyright (C) 1996 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
@ -37,6 +37,9 @@
|
||||||
|
|
||||||
{
|
{
|
||||||
// Attributes
|
// Attributes
|
||||||
|
NSColor *the_color;
|
||||||
|
BOOL is_active;
|
||||||
|
BOOL is_bordered;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
NSColorList.m
|
NSColorList.m
|
||||||
|
|
||||||
Description...
|
Manage named lists of NSColors.
|
||||||
|
|
||||||
Copyright (C) 1996 Free Software Foundation, Inc.
|
Copyright (C) 1996 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
@ -27,9 +27,27 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <gnustep/gui/NSColorList.h>
|
#include <gnustep/gui/NSColorList.h>
|
||||||
|
#include <Foundation/NSNotification.h>
|
||||||
|
#include <Foundation/NSLock.h>
|
||||||
|
#include <Foundation/NSArchiver.h>
|
||||||
|
#include <Foundation/NSException.h>
|
||||||
|
|
||||||
// NSColorList notifications
|
// NSColorList notifications
|
||||||
NSString *NSColorListChangedNotification;
|
NSString *NSColorListChangedNotification = @"NSColorListChange";
|
||||||
|
|
||||||
|
// NSColorList exceptions
|
||||||
|
NSString *NSColorListNotEditableException = @"NSColorListNotEditable";
|
||||||
|
|
||||||
|
// global variable
|
||||||
|
static NSMutableArray *gnustep_available_color_lists;
|
||||||
|
static NSLock *gnustep_color_list_lock;
|
||||||
|
|
||||||
|
@interface NSColorList (GNUstepPrivate)
|
||||||
|
|
||||||
|
- (void)setFileNameFromPath: (NSString *)path;
|
||||||
|
- (NSDictionary *)colorListDictionary;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
@implementation NSColorList
|
@implementation NSColorList
|
||||||
|
|
||||||
|
@ -42,6 +60,11 @@ NSString *NSColorListChangedNotification;
|
||||||
{
|
{
|
||||||
// Initial version
|
// Initial version
|
||||||
[self setVersion:1];
|
[self setVersion:1];
|
||||||
|
|
||||||
|
// Initialize the global array of color lists
|
||||||
|
gnustep_available_color_lists = [NSMutableArray array];
|
||||||
|
// And its access lock
|
||||||
|
gnustep_color_list_lock = [[NSLock alloc] init];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,7 +73,15 @@ NSString *NSColorListChangedNotification;
|
||||||
//
|
//
|
||||||
+ (NSArray *)availableColorLists
|
+ (NSArray *)availableColorLists
|
||||||
{
|
{
|
||||||
return nil;
|
NSArray *a;
|
||||||
|
|
||||||
|
// Serialize access to color list
|
||||||
|
[gnustep_color_list_lock lock];
|
||||||
|
a = [[[NSArray alloc] initWithArray: gnustep_available_color_lists]
|
||||||
|
autorelease];
|
||||||
|
[gnustep_color_list_lock unlock];
|
||||||
|
|
||||||
|
return a;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -58,7 +89,26 @@ NSString *NSColorListChangedNotification;
|
||||||
//
|
//
|
||||||
+ (NSColorList *)colorListNamed:(NSString *)name
|
+ (NSColorList *)colorListNamed:(NSString *)name
|
||||||
{
|
{
|
||||||
return nil;
|
id o, e;
|
||||||
|
BOOL found = NO;
|
||||||
|
|
||||||
|
// Serialize access to color list
|
||||||
|
[gnustep_color_list_lock lock];
|
||||||
|
e = [gnustep_available_color_lists objectEnumerator];
|
||||||
|
o = [e nextObject];
|
||||||
|
while ((o) && (!found))
|
||||||
|
{
|
||||||
|
if ([name compare: [o name]] == NSOrderedSame)
|
||||||
|
found = YES;
|
||||||
|
else
|
||||||
|
o = [e nextObject];
|
||||||
|
}
|
||||||
|
[gnustep_color_list_lock unlock];
|
||||||
|
|
||||||
|
if (found)
|
||||||
|
return o;
|
||||||
|
else
|
||||||
|
return nil;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -69,13 +119,64 @@ NSString *NSColorListChangedNotification;
|
||||||
//
|
//
|
||||||
- (id)initWithName:(NSString *)name
|
- (id)initWithName:(NSString *)name
|
||||||
{
|
{
|
||||||
return nil;
|
[super init];
|
||||||
|
|
||||||
|
// Initialize instance variables
|
||||||
|
list_name = name;
|
||||||
|
[list_name retain];
|
||||||
|
color_list = [NSMutableDictionary dictionary];
|
||||||
|
[color_list retain];
|
||||||
|
color_list_keys = [NSMutableArray array];
|
||||||
|
[color_list_keys retain];
|
||||||
|
is_editable = YES;
|
||||||
|
file_name = @"";
|
||||||
|
|
||||||
|
// Add to global list of colors
|
||||||
|
[gnustep_color_list_lock lock];
|
||||||
|
[gnustep_available_color_lists addObject: self];
|
||||||
|
[gnustep_color_list_lock unlock];
|
||||||
|
|
||||||
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (id)initWithName:(NSString *)name
|
- (id)initWithName:(NSString *)name
|
||||||
fromFile:(NSString *)path
|
fromFile:(NSString *)path
|
||||||
{
|
{
|
||||||
return nil;
|
id cl;
|
||||||
|
|
||||||
|
[super init];
|
||||||
|
|
||||||
|
// Initialize instance variables
|
||||||
|
list_name = name;
|
||||||
|
[list_name retain];
|
||||||
|
[self setFileNameFromPath: path];
|
||||||
|
|
||||||
|
// Unarchive the color list
|
||||||
|
cl = [NSUnarchiver unarchiveObjectWithFile: file_name];
|
||||||
|
|
||||||
|
// Copy the color list elements to self
|
||||||
|
is_editable = [cl isEditable];
|
||||||
|
color_list = [NSMutableDictionary alloc];
|
||||||
|
[color_list initWithDictionary: [cl colorListDictionary]];
|
||||||
|
color_list_keys = [NSMutableArray alloc];
|
||||||
|
[color_list_keys initWithArray: [cl allKeys]];
|
||||||
|
|
||||||
|
[cl release];
|
||||||
|
|
||||||
|
// Add to global list of colors
|
||||||
|
[gnustep_color_list_lock lock];
|
||||||
|
[gnustep_available_color_lists addObject: self];
|
||||||
|
[gnustep_color_list_lock unlock];
|
||||||
|
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)dealloc
|
||||||
|
{
|
||||||
|
[list_name release];
|
||||||
|
[color_list release];
|
||||||
|
[color_list_keys release];
|
||||||
|
[super dealloc];
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -83,7 +184,7 @@ NSString *NSColorListChangedNotification;
|
||||||
//
|
//
|
||||||
- (NSString *)name
|
- (NSString *)name
|
||||||
{
|
{
|
||||||
return nil;
|
return list_name;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -91,32 +192,77 @@ NSString *NSColorListChangedNotification;
|
||||||
//
|
//
|
||||||
- (NSArray *)allKeys
|
- (NSArray *)allKeys
|
||||||
{
|
{
|
||||||
return nil;
|
return [[[NSArray alloc] initWithArray: color_list_keys]
|
||||||
|
autorelease];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (NSColor *)colorWithKey:(NSString *)key
|
- (NSColor *)colorWithKey:(NSString *)key
|
||||||
{
|
{
|
||||||
return nil;
|
return [color_list objectForKey: key];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)insertColor:(NSColor *)color
|
- (void)insertColor:(NSColor *)color
|
||||||
key:(NSString *)key
|
key:(NSString *)key
|
||||||
atIndex:(unsigned)location
|
atIndex:(unsigned)location
|
||||||
{}
|
{
|
||||||
|
// Are we even editable?
|
||||||
|
if (!is_editable)
|
||||||
|
[NSException raise: NSColorListNotEditableException
|
||||||
|
format: @"Color list cannot be edited\n"];
|
||||||
|
|
||||||
|
// add color
|
||||||
|
[color_list setObject: color forKey: key];
|
||||||
|
[color_list_keys removeObject: key];
|
||||||
|
[color_list_keys insertObject: key atIndex: location];
|
||||||
|
|
||||||
|
// post notification
|
||||||
|
[[NSNotificationCenter defaultCenter]
|
||||||
|
postNotificationName: NSColorListChangedNotification
|
||||||
|
object: self];
|
||||||
|
}
|
||||||
|
|
||||||
- (void)removeColorWithKey:(NSString *)key
|
- (void)removeColorWithKey:(NSString *)key
|
||||||
{}
|
{
|
||||||
|
// Are we even editable?
|
||||||
|
if (!is_editable)
|
||||||
|
[NSException raise: NSColorListNotEditableException
|
||||||
|
format: @"Color list cannot be edited\n"];
|
||||||
|
|
||||||
|
[color_list removeObjectForKey: key];
|
||||||
|
[color_list_keys removeObject: key];
|
||||||
|
|
||||||
|
// post notification
|
||||||
|
[[NSNotificationCenter defaultCenter]
|
||||||
|
postNotificationName: NSColorListChangedNotification
|
||||||
|
object: self];
|
||||||
|
}
|
||||||
|
|
||||||
- (void)setColor:(NSColor *)aColor
|
- (void)setColor:(NSColor *)aColor
|
||||||
forKey:(NSString *)key
|
forKey:(NSString *)key
|
||||||
{}
|
{
|
||||||
|
// Are we even editable?
|
||||||
|
if (!is_editable)
|
||||||
|
[NSException raise: NSColorListNotEditableException
|
||||||
|
format: @"Color list cannot be edited\n"];
|
||||||
|
|
||||||
|
[color_list setObject: aColor forKey: key];
|
||||||
|
|
||||||
|
// Add to list if doesn't already exist
|
||||||
|
if (![color_list_keys containsObject: key])
|
||||||
|
[color_list_keys addObject: key];
|
||||||
|
|
||||||
|
// post notification
|
||||||
|
[[NSNotificationCenter defaultCenter]
|
||||||
|
postNotificationName: NSColorListChangedNotification
|
||||||
|
object: self];
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Editing
|
// Editing
|
||||||
//
|
//
|
||||||
- (BOOL)isEditable
|
- (BOOL)isEditable
|
||||||
{
|
{
|
||||||
return NO;
|
return is_editable;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -124,11 +270,21 @@ atIndex:(unsigned)location
|
||||||
//
|
//
|
||||||
- (BOOL)writeToFile:(NSString *)path
|
- (BOOL)writeToFile:(NSString *)path
|
||||||
{
|
{
|
||||||
return NO;
|
[self setFileNameFromPath: path];
|
||||||
|
|
||||||
|
// Archive to the file
|
||||||
|
return [NSArchiver archiveRootObject: self toFile: file_name];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)removeFile
|
- (void)removeFile
|
||||||
{}
|
{
|
||||||
|
// xxx Tell NSWorkspace to remove the file
|
||||||
|
|
||||||
|
// Remove from global list of colors
|
||||||
|
[gnustep_color_list_lock lock];
|
||||||
|
[gnustep_available_color_lists removeObject: self];
|
||||||
|
[gnustep_color_list_lock unlock];
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// NSCoding protocol
|
// NSCoding protocol
|
||||||
|
@ -136,13 +292,43 @@ atIndex:(unsigned)location
|
||||||
- (void)encodeWithCoder:aCoder
|
- (void)encodeWithCoder:aCoder
|
||||||
{
|
{
|
||||||
[super encodeWithCoder:aCoder];
|
[super encodeWithCoder:aCoder];
|
||||||
|
[aCoder encodeObject: list_name];
|
||||||
|
[aCoder encodeObject: color_list];
|
||||||
|
[aCoder encodeObject: color_list_keys];
|
||||||
|
[aCoder encodeValueOfObjCType:@encode(BOOL) at: &is_editable];
|
||||||
}
|
}
|
||||||
|
|
||||||
- initWithCoder:aDecoder
|
- initWithCoder:aDecoder
|
||||||
{
|
{
|
||||||
[super initWithCoder:aDecoder];
|
[super initWithCoder:aDecoder];
|
||||||
|
list_name = [aDecoder decodeObject];
|
||||||
|
color_list = [aDecoder decodeObject];
|
||||||
|
color_list_keys = [aDecoder decodeObject];
|
||||||
|
[aDecoder decodeValueOfObjCType:@encode(BOOL) at: &is_editable];
|
||||||
|
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
@implementation NSColorList (GNUstepPrivate)
|
||||||
|
|
||||||
|
- (void)setFileNameFromPath: (NSString *)path
|
||||||
|
{
|
||||||
|
NSMutableString *s = [NSMutableString stringWithCString: ""];
|
||||||
|
|
||||||
|
// Construct filename
|
||||||
|
// xxx Need to determine if path already contains filename
|
||||||
|
[s appendString: path];
|
||||||
|
[s appendString: @"/"];
|
||||||
|
[s appendString: list_name];
|
||||||
|
[s appendString: @".clr"];
|
||||||
|
file_name = s;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSDictionary *)colorListDictionary
|
||||||
|
{
|
||||||
|
return color_list;
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
NSColorWell.m
|
NSColorWell.m
|
||||||
|
|
||||||
Description...
|
NSControl for selecting and display a single color value.
|
||||||
|
|
||||||
Copyright (C) 1996 Free Software Foundation, Inc.
|
Copyright (C) 1996 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
@ -49,21 +49,33 @@
|
||||||
//
|
//
|
||||||
// Drawing
|
// Drawing
|
||||||
//
|
//
|
||||||
|
- (void)drawRect:(NSRect)rect
|
||||||
|
{
|
||||||
|
// xxx Draw border
|
||||||
|
|
||||||
|
[self drawWellInside: rect];
|
||||||
|
}
|
||||||
|
|
||||||
- (void)drawWellInside:(NSRect)insideRect
|
- (void)drawWellInside:(NSRect)insideRect
|
||||||
{}
|
{
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Activating
|
// Activating
|
||||||
//
|
//
|
||||||
- (void)activate:(BOOL)exclusive
|
- (void)activate:(BOOL)exclusive
|
||||||
{}
|
{
|
||||||
|
is_active = YES;
|
||||||
|
}
|
||||||
|
|
||||||
- (void)deactivate
|
- (void)deactivate
|
||||||
{}
|
{
|
||||||
|
is_active = NO;
|
||||||
|
}
|
||||||
|
|
||||||
- (BOOL)isActive
|
- (BOOL)isActive
|
||||||
{
|
{
|
||||||
return NO;
|
return is_active;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -71,25 +83,33 @@
|
||||||
//
|
//
|
||||||
- (NSColor *)color
|
- (NSColor *)color
|
||||||
{
|
{
|
||||||
return nil;
|
return the_color;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)setColor:(NSColor *)color
|
- (void)setColor:(NSColor *)color
|
||||||
{}
|
{
|
||||||
|
the_color = color;
|
||||||
|
}
|
||||||
|
|
||||||
- (void)takeColorFrom:(id)sender
|
- (void)takeColorFrom:(id)sender
|
||||||
{}
|
{
|
||||||
|
if ([sender respondsToSelector:@selector(color)])
|
||||||
|
the_color = [sender color];
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Managing Borders
|
// Managing Borders
|
||||||
//
|
//
|
||||||
- (BOOL)isBordered
|
- (BOOL)isBordered
|
||||||
{
|
{
|
||||||
return NO;
|
return is_bordered;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)setBordered:(BOOL)bordered
|
- (void)setBordered:(BOOL)bordered
|
||||||
{}
|
{
|
||||||
|
is_bordered = bordered;
|
||||||
|
[self display];
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// NSCoding protocol
|
// NSCoding protocol
|
||||||
|
@ -97,11 +117,17 @@
|
||||||
- (void)encodeWithCoder:aCoder
|
- (void)encodeWithCoder:aCoder
|
||||||
{
|
{
|
||||||
[super encodeWithCoder:aCoder];
|
[super encodeWithCoder:aCoder];
|
||||||
|
[aCoder encodeObject: the_color];
|
||||||
|
[aCoder encodeValueOfObjCType:@encode(BOOL) at: &is_active];
|
||||||
|
[aCoder encodeValueOfObjCType:@encode(BOOL) at: &is_bordered];
|
||||||
}
|
}
|
||||||
|
|
||||||
- initWithCoder:aDecoder
|
- initWithCoder:aDecoder
|
||||||
{
|
{
|
||||||
[super initWithCoder:aDecoder];
|
[super initWithCoder:aDecoder];
|
||||||
|
the_color = [aDecoder decodeObject];
|
||||||
|
[aDecoder decodeValueOfObjCType:@encode(BOOL) at: &is_active];
|
||||||
|
[aDecoder decodeValueOfObjCType:@encode(BOOL) at: &is_bordered];
|
||||||
|
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
|
@ -137,21 +137,44 @@
|
||||||
{
|
{
|
||||||
double val_range,value;
|
double val_range,value;
|
||||||
|
|
||||||
max_value = aDouble;
|
// Swap values if new max is less than min
|
||||||
|
if (aDouble < min_value)
|
||||||
|
{
|
||||||
|
max_value = min_value;
|
||||||
|
min_value = aDouble;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
max_value = aDouble;
|
||||||
|
|
||||||
val_range = max_value - min_value;
|
val_range = max_value - min_value;
|
||||||
if (val_range != 0)
|
if (val_range != 0)
|
||||||
//Lowest position assumed to be 0
|
{
|
||||||
scale_factor = scroll_size/val_range;
|
scale_factor = scroll_size/val_range;
|
||||||
|
if (scale_factor != 0)
|
||||||
|
page_value = knob_thickness * (1/scale_factor);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)setMinValue:(double)aDouble
|
- (void)setMinValue:(double)aDouble
|
||||||
{
|
{
|
||||||
double val_range,value;
|
double val_range,value;
|
||||||
|
|
||||||
min_value = aDouble;
|
// Swap values if new min is greater than max
|
||||||
|
if (aDouble > max_value)
|
||||||
|
{
|
||||||
|
min_value = max_value;
|
||||||
|
max_value = aDouble;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
min_value = aDouble;
|
||||||
|
|
||||||
val_range = max_value - min_value;
|
val_range = max_value - min_value;
|
||||||
if (val_range != 0)
|
if (val_range != 0)
|
||||||
scale_factor = scroll_size/val_range;
|
{
|
||||||
|
scale_factor = scroll_size/val_range;
|
||||||
|
if (scale_factor != 0)
|
||||||
|
page_value = knob_thickness * (1/scale_factor);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -174,7 +197,21 @@
|
||||||
|
|
||||||
- (void)setKnobThickness:(float)aFloat
|
- (void)setKnobThickness:(float)aFloat
|
||||||
{
|
{
|
||||||
|
int old_scroll = scroll_size;
|
||||||
|
double val_range;
|
||||||
|
|
||||||
|
// Recalculate the scroll size
|
||||||
|
scroll_size = old_scroll + knob_thickness;
|
||||||
knob_thickness = aFloat;
|
knob_thickness = aFloat;
|
||||||
|
scroll_size -= knob_thickness;
|
||||||
|
|
||||||
|
val_range = max_value - min_value;
|
||||||
|
if (val_range != 0)
|
||||||
|
{
|
||||||
|
scale_factor = scroll_size/val_range;
|
||||||
|
if (scale_factor != 0)
|
||||||
|
page_value = knob_thickness * (1/scale_factor);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)setTitle:(NSString *)aString
|
- (void)setTitle:(NSString *)aString
|
||||||
|
@ -269,8 +306,6 @@
|
||||||
[aCoder encodeValueOfObjCType: "i" at: &scroll_size];
|
[aCoder encodeValueOfObjCType: "i" at: &scroll_size];
|
||||||
[aCoder encodeValueOfObjCType: "i" at: &knob_thickness];
|
[aCoder encodeValueOfObjCType: "i" at: &knob_thickness];
|
||||||
[aCoder encodeValueOfObjCType: "d" at: &page_value];
|
[aCoder encodeValueOfObjCType: "d" at: &page_value];
|
||||||
// [aCoder encodeValuesOfObjCTypes: "dddiid", &max_value, &min_value,
|
|
||||||
// &scale_factor, &scroll_size, &knob_thickness, &page_value];
|
|
||||||
[aCoder encodeValueOfObjCType: @encode(BOOL) at: &is_vertical];
|
[aCoder encodeValueOfObjCType: @encode(BOOL) at: &is_vertical];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -284,8 +319,6 @@
|
||||||
[aDecoder decodeValueOfObjCType: "i" at: &scroll_size];
|
[aDecoder decodeValueOfObjCType: "i" at: &scroll_size];
|
||||||
[aDecoder decodeValueOfObjCType: "i" at: &knob_thickness];
|
[aDecoder decodeValueOfObjCType: "i" at: &knob_thickness];
|
||||||
[aDecoder decodeValueOfObjCType: "d" at: &page_value];
|
[aDecoder decodeValueOfObjCType: "d" at: &page_value];
|
||||||
// [aDecoder decodeValuesOfObjCTypes: "dddiid", &max_value, &min_value,
|
|
||||||
// &scale_factor, &scroll_size, &knob_thickness, &page_value];
|
|
||||||
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &is_vertical];
|
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &is_vertical];
|
||||||
|
|
||||||
return self;
|
return self;
|
||||||
|
|
|
@ -76,6 +76,7 @@
|
||||||
|
|
||||||
background_color = [NSColor whiteColor];
|
background_color = [NSColor whiteColor];
|
||||||
text_color = [NSColor blackColor];
|
text_color = [NSColor blackColor];
|
||||||
|
support = [NSFont systemFontOfSize:12];
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue