Changeset 79

Show
Ignore:
Timestamp:
06/28/07 20:23:51 (2 years ago)
Author:
gbooker
Message:

Much better icon handling, and a nicer, more expandable theme interface.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/SapphireApplianceController.m

    r62 r79  
    5151        [settings setListTitle:                                 @"Settings"] ; 
    5252         
    53         [settings setListIcon:[[SapphireTheme sharedTheme] gearGemForScene:[self scene]]] ; 
    54         [playBrowser setListIcon:[[SapphireTheme sharedTheme] redGemForScene:[self scene]]] ; 
    55         [topShowsBrowser setListIcon:[[SapphireTheme sharedTheme] greenGemForScene:[self scene]]] ; 
    56         [favoriteShowsBrowser setListIcon:[[SapphireTheme sharedTheme] yellowGemForScene:[self scene]]] ; 
    57         [unwatchedBrowser setListIcon:[[SapphireTheme sharedTheme] blueGemForScene:[self scene]]] ; 
     53        SapphireTheme *theme = [SapphireTheme sharedTheme]; 
     54        [theme setScene:[self scene]]; 
     55        [settings setListIcon:[theme gem:GEAR_GEM_KEY]]; 
     56        [playBrowser setListIcon:[theme gem:RED_GEM_KEY]]; 
     57        [topShowsBrowser setListIcon:[theme gem:GREEN_GEM_KEY]]; 
     58        [favoriteShowsBrowser setListIcon:[theme gem:YELLOW_GEM_KEY]]; 
     59        [unwatchedBrowser setListIcon:[theme gem:BLUE_GEM_KEY]]; 
    5860        masterControllers = [[NSArray alloc] initWithObjects:unwatchedBrowser,favoriteShowsBrowser,topShowsBrowser,playBrowser,settings,nil]; 
    5961        [unwatchedBrowser release]; 
     
    194196        result = [BRAdornedMenuItemLayer adornedFolderMenuItemWithScene: [self scene]] ; 
    195197         
    196          
    197         if([name isEqual: @"   Unwatched"]) [result setLeftIcon:[[SapphireTheme sharedTheme] blueGemForScene:[self scene]]]; 
    198         if([name isEqual: @"   Favorite Shows"])  [result setLeftIcon:[[SapphireTheme sharedTheme] yellowGemForScene:[self scene]]]; 
    199         if([name isEqual: @"   Top Shows"])  [result setLeftIcon:[[SapphireTheme sharedTheme] greenGemForScene:[self scene]]]; 
    200         if([name isEqual: @"   Browse Shows"])  [result setLeftIcon:[[SapphireTheme sharedTheme] redGemForScene:[self scene]]]; 
    201         if( [name isEqual: @"   Settings"]) [result setLeftIcon:[[SapphireTheme sharedTheme] gearGemForScene:[self scene]]]
    202         if( [name isEqual: @"   Reset the thing already"]) [result setLeftIcon:[[SapphireTheme sharedTheme] coneGemForScene:[self scene]]]
     198        SapphireTheme *theme = [SapphireTheme sharedTheme]; 
     199        if([name isEqual: @"   Unwatched"]) [result setLeftIcon:[theme gem:BLUE_GEM_KEY]]; 
     200        if([name isEqual: @"   Favorite Shows"])  [result setLeftIcon:[theme gem:YELLOW_GEM_KEY]]; 
     201        if([name isEqual: @"   Top Shows"])  [result setLeftIcon:[theme gem:GREEN_GEM_KEY]]; 
     202        if([name isEqual: @"   Browse Shows"])  [result setLeftIcon:[theme gem:RED_GEM_KEY]]; 
     203        if( [name isEqual: @"   Settings"]) [result setLeftIcon:[theme gem:GEAR_GEM_KEY]]
     204        if( [name isEqual: @"   Reset the thing already"]) [result setLeftIcon:[theme gem:CONE_GEM_KEY]]
    203205 
    204206                         
  • trunk/SapphireBrowser.m

    r78 r79  
    339339        } 
    340340        SapphireTheme *theme = [SapphireTheme sharedTheme]; 
    341         if(gear) [result setLeftIcon:[theme gearGemForScene:scene]]; 
    342         else if(!watched) [result setLeftIcon:[theme blueGemForScene:scene]]; 
    343         else if(favorite)[result setLeftIcon:[theme yellowGemForScene:scene]]; 
    344         else [result setLeftIcon:[theme redGemForScene:scene]]; 
     341        if(gear) [result setLeftIcon:[theme gem:GEAR_GEM_KEY]]; 
     342        else if(!watched) [result setLeftIcon:[theme gem:BLUE_GEM_KEY]]; 
     343        else if(favorite)[result setLeftIcon:[theme gem:YELLOW_GEM_KEY]]; 
     344        else [result setLeftIcon:[theme gem:RED_GEM_KEY]]; 
    345345                         
    346346        // add text 
  • trunk/SapphireSettings.m

    r77 r79  
    232232        result = [BRAdornedMenuItemLayer adornedMenuItemWithScene: [self scene]] ; 
    233233 
    234         if(row==0) [result setRightIcon:[[SapphireTheme sharedTheme] iGemForScene:[self scene]]]; 
     234        if(row==0) [result setRightIcon:[[SapphireTheme sharedTheme] gem:EYE_GEM_KEY]]; 
    235235        else if( row > 0 && [self boolForKey:[keys objectAtIndex:row]]) 
    236236        { 
    237237                [result setLeftIcon:[[BRThemeInfo sharedTheme] selectedSettingImageForScene:[self scene]]]; 
    238238        } 
    239         if(row==1)[result setRightIcon:[[SapphireTheme sharedTheme] yellowGemForScene:[self scene]]]; 
    240 /*      if(row==2)[result setRightIcon:[[SapphireTheme sharedTheme] greenGemForScene:[self scene]]];*/ 
    241         if(row==2)[result setRightIcon:[[SapphireTheme sharedTheme] blueGemForScene:[self scene]]]; 
    242 /*      if(row==3)[result setRightIcon:[[SapphireTheme sharedTheme] redGemForScene:[self scene]]];*/ 
    243         if(row>2)[result setRightIcon:[[SapphireTheme sharedTheme] coneGemForScene:[self scene]]]; 
    244 //      if(row==5)[result setRightIcon:[[SapphireTheme sharedTheme] coneGemForScene:[self scene]]]; 
    245  
     239        if(row==1)[result setRightIcon:[[SapphireTheme sharedTheme] gem:YELLOW_GEM_KEY]]; 
     240/*      if(row==2)[result setRightIcon:[[SapphireTheme sharedTheme] gem:GREEN_GEM_KEY]];*/ 
     241        if(row==2)[result setRightIcon:[[SapphireTheme sharedTheme] gem:BLUE_GEM_KEY]]; 
     242/*      if(row==3)[result setRightIcon:[[SapphireTheme sharedTheme] gem:RED_GEM_KEY]];*/ 
     243        if(row>2)[result setRightIcon:[[SapphireTheme sharedTheme] gem:CONE_GEM_KEY]]; 
     244//      if(row==5)[result setRightIcon:[[SapphireTheme sharedTheme] gem:CONE_GEM_KEY]]; 
    246245 
    247246        // add text 
  • trunk/SapphireTheme.h

    r63 r79  
    99#import <Cocoa/Cocoa.h> 
    1010 
     11#define RED_GEM_KEY @"RedGem" 
     12#define BLUE_GEM_KEY @"BlueGem" 
     13#define GREEN_GEM_KEY @"greenGem" 
     14#define YELLOW_GEM_KEY @"YellowGem" 
     15#define GEAR_GEM_KEY @"GearGem" 
     16#define CONE_GEM_KEY @"ConeGem" 
     17#define EYE_GEM_KEY @"EyeGem" 
     18 
    1119@class BRTexture, BRRenderScene; 
    1220 
    1321@interface SapphireTheme : NSObject { 
    14         CGImageRef              redGem; 
    15         CGImageRef              blueGem; 
    16         CGImageRef              greenGem; 
    17         CGImageRef              yellowGem; 
    18         CGImageRef              gearGem; 
    19         CGImageRef              coneGem; 
    20         CGImageRef              iGem; 
     22        NSMutableDictionary             *gemDict; 
     23        BRRenderScene                   *scene; 
     24        NSDictionary                    *gemFiles; 
    2125} 
    2226+ (id)sharedTheme; 
    2327 
    24 - (BRTexture *)redGemForScene:(BRRenderScene *)scene; 
    25 - (BRTexture *)blueGemForScene:(BRRenderScene *)scene; 
    26 - (BRTexture *)greenGemForScene:(BRRenderScene *)scene; 
    27 - (BRTexture *)yellowGemForScene:(BRRenderScene *)scene; 
    28 - (BRTexture *)gearGemForScene:(BRRenderScene *)scene; 
    29 - (BRTexture *)coneGemForScene:(BRRenderScene *)scene ; 
    30 - (BRTexture *)iGemForScene:(BRRenderScene *)scene ; 
     28- (void)setScene:(BRRenderScene *)scene; 
     29- (BRTexture *)gem:(NSString *)type; 
    3130@end 
  • trunk/SapphireTheme.m

    r63 r79  
    2121} 
    2222 
     23- (id)init 
     24{ 
     25        self = [super init]; 
     26        if(!self) 
     27                return nil; 
     28         
     29        gemDict = [NSMutableDictionary new]; 
     30        gemFiles = [[NSDictionary alloc] initWithObjectsAndKeys: 
     31                @"Contents/Resources/Orange_Red.png", RED_GEM_KEY, 
     32                @"Contents/Resources/Blue.png", BLUE_GEM_KEY, 
     33                @"Contents/Resources/Green.png", GREEN_GEM_KEY, 
     34                @"Contents/Resources/Yellow.png", YELLOW_GEM_KEY, 
     35                @"Contents/Resources/Gear.png", GEAR_GEM_KEY, 
     36                @"Contents/Resources/Cone.png", CONE_GEM_KEY, 
     37                @"Contents/Resources/Eye.png", EYE_GEM_KEY, 
     38                nil]; 
     39         
     40        return self; 
     41} 
     42 
     43- (void)dealloc 
     44{ 
     45        [gemDict release]; 
     46        [scene release]; 
     47        [gemFiles release]; 
     48        [super dealloc]; 
     49} 
     50 
     51- (void)setScene:(BRRenderScene *)theScene 
     52{ 
     53        [gemDict removeAllObjects]; 
     54        scene = [theScene retain]; 
     55} 
     56 
    2357- (CGImageRef)loadImage:(NSString *)path 
    2458{ 
     
    3569} 
    3670 
    37 - (BRTexture *)redGemForScene:(BRRenderScene *)scene; 
     71- (BRTexture *)gem:(NSString *)type 
    3872{ 
    39         if(redGem == NULL) 
     73        BRTexture *ret = [gemDict objectForKey:type]; 
     74        if(ret != nil) 
     75                return ret; 
     76         
     77        CGImageRef image = [self loadImage:[gemFiles objectForKey:type]]; 
     78        if(image != NULL) 
    4079        { 
    41                 redGem = [self loadImage:@"Contents/Resources/Orange_Red.png"]; 
    42                 if(redGem == NULL) 
    43                         return nil; 
    44                  
     80                ret = [BRBitmapTexture textureWithImage:image context:[scene resourceContext] mipmap:YES]; 
     81                CFRelease(image); 
    4582        } 
    46         return [BRBitmapTexture textureWithImage:redGem context:[scene resourceContext] mipmap:YES]; 
    47 
    48  
    49 - (BRTexture *)blueGemForScene:(BRRenderScene *)scene 
    50 
    51         if(blueGem == NULL) 
    52         { 
    53                 blueGem = [self loadImage:@"Contents/Resources/Blue.png"]; 
    54                 if(blueGem == NULL) 
    55                         return nil; 
    56                  
    57         } 
    58         return [BRBitmapTexture textureWithImage:blueGem context:[scene resourceContext] mipmap:YES]; 
    59 
    60  
    61 - (BRTexture *)greenGemForScene:(BRRenderScene *)scene 
    62 
    63         if(greenGem == NULL) 
    64         { 
    65                 greenGem = [self loadImage:@"Contents/Resources/Green.png"]; 
    66                 if(greenGem == NULL) 
    67                         return nil; 
    68                  
    69         } 
    70         return [BRBitmapTexture textureWithImage:greenGem context:[scene resourceContext] mipmap:YES]; 
    71 
    72  
    73 - (BRTexture *)yellowGemForScene:(BRRenderScene *)scene 
    74 
    75         if(yellowGem == NULL) 
    76         { 
    77                 yellowGem = [self loadImage:@"Contents/Resources/Yellow.png"]; 
    78                 if(yellowGem == NULL) 
    79                         return nil; 
    80                  
    81         } 
    82         return [BRBitmapTexture textureWithImage:yellowGem context:[scene resourceContext] mipmap:YES]; 
    83 
    84  
    85 - (BRTexture *)gearGemForScene:(BRRenderScene *)scene 
    86 
    87         if(gearGem == NULL) 
    88         { 
    89                 gearGem = [self loadImage:@"Contents/Resources/Gear.png"]; 
    90                 if(gearGem == NULL) 
    91                         return nil; 
    92                  
    93         } 
    94         return [BRBitmapTexture textureWithImage:gearGem context:[scene resourceContext] mipmap:YES]; 
    95 
    96  
    97 - (BRTexture *)coneGemForScene:(BRRenderScene *)scene 
    98 
    99         if(coneGem == NULL) 
    100         { 
    101                 coneGem = [self loadImage:@"Contents/Resources/Cone.png"]; 
    102                 if(coneGem == NULL) 
    103                         return nil; 
    104                  
    105         } 
    106         return [BRBitmapTexture textureWithImage:coneGem context:[scene resourceContext] mipmap:YES]; 
    107 
    108  
    109 - (BRTexture *)iGemForScene:(BRRenderScene *)scene 
    110 
    111         if(iGem == NULL) 
    112         { 
    113                 iGem = [self loadImage:@"Contents/Resources/Eye.png"]; 
    114                 if(iGem == NULL) 
    115                         return nil; 
    116                  
    117         } 
    118         return [BRBitmapTexture textureWithImage:iGem context:[scene resourceContext] mipmap:YES]; 
     83        if(ret != nil) 
     84                [gemDict setObject:ret forKey:type]; 
     85        return ret; 
    11986} 
    12087