Version 1 of Mac OS X colors

Updated 2018-11-30 01:12:29 by stevel

bll 2018-11-29 Here is some code to retrieve the Mac OS X colors. The code currently only supports 10.14 (Mojave). As the mac colors are dynamic, this program must be executed on demand (unless you want to create and save a particular color theme).

Build using the following

cc -c -O2 -m64 -o maccolors.o maccolors.m

cc -O2 -m64 -framework Cocoa -o maccolors maccolors.o

Code follows

#import "Foundation/NSObject.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <MacTypes.h>
#import <Cocoa/Cocoa.h>

int
main (int argc, const char * argv[])
{
  NSColor         *color;
  NSColorList     *collist;
  NSEnumerator    *e;
  NSString        *name;


  collist = [[NSColorList alloc] initWithName: @""];
  [collist setColor: [NSColor colorForControlTint: [NSColor currentControlTint]] forKey: @"currentControlTint"];
  [collist setColor: [NSColor labelColor] forKey: @"labelColor"];
  [collist setColor: [NSColor secondaryLabelColor] forKey: @"secondaryLabelColor"];
  [collist setColor: [NSColor tertiaryLabelColor] forKey: @"tertiaryLabelColor"];
  [collist setColor: [NSColor quaternaryLabelColor] forKey: @"quaternaryLabelColor"];
  [collist setColor: [NSColor textColor] forKey: @"textColor"];
  [collist setColor: [NSColor placeholderTextColor] forKey: @"placeholderTextColor"];
  [collist setColor: [NSColor selectedTextColor] forKey: @"selectedTextColor"];
  [collist setColor: [NSColor textBackgroundColor] forKey: @"textBackgroundColor"];
  [collist setColor: [NSColor selectedTextBackgroundColor] forKey: @"selectedTextBackgroundColor"];
  [collist setColor: [NSColor keyboardFocusIndicatorColor] forKey: @"keyboardFocusIndicatorColor"];
  [collist setColor: [NSColor unemphasizedSelectedTextColor] forKey: @"unemphasizedSelectedTextColor"];
  [collist setColor: [NSColor unemphasizedSelectedTextBackgroundColor] forKey: @"unemphasizedSelectedTextBackgroundColor"];
  [collist setColor: [NSColor linkColor] forKey: @"linkColor"];
  [collist setColor: [NSColor separatorColor] forKey: @"separatorColor"];
  [collist setColor: [NSColor selectedContentBackgroundColor] forKey: @"selectedContentBackgroundColor"];
  [collist setColor: [NSColor selectedMenuItemTextColor] forKey: @"selectedMenuItemTextColor"];
  [collist setColor: [NSColor gridColor] forKey: @"gridColor"];
  [collist setColor: [NSColor headerTextColor] forKey: @"headerTextColor"];
  [collist setColor: [NSColor controlAccentColor] forKey: @"controlAccentColor"];
  [collist setColor: [NSColor controlColor] forKey: @"controlColor"];
  [collist setColor: [NSColor controlBackgroundColor] forKey: @"controlBackgroundColor"];
  [collist setColor: [NSColor controlTextColor] forKey: @"controlTextColor"];
  [collist setColor: [NSColor disabledControlTextColor] forKey: @"disabledControlTextColor"];
  [collist setColor: [NSColor selectedControlColor] forKey: @"selectedControlColor"];
  [collist setColor: [NSColor selectedControlTextColor] forKey: @"selectedControlTextColor"];
  [collist setColor: [NSColor alternateSelectedControlTextColor] forKey: @"alternateSelectedControlTextColor"];
  [collist setColor: [NSColor scrubberTexturedBackgroundColor] forKey: @"scrubberTexturedBackgroundColor"];
  [collist setColor: [NSColor windowBackgroundColor] forKey: @"windowBackgroundColor"];
  [collist setColor: [NSColor windowFrameTextColor] forKey: @"windowFrameTextColor"];
  [collist setColor: [NSColor underPageBackgroundColor] forKey: @"underPageBackgroundColor"];
  [collist setColor: [NSColor findHighlightColor] forKey: @"findHighlightColor"];
  [collist setColor: [NSColor highlightColor] forKey: @"highlightColor"];
  [collist setColor: [NSColor shadowColor] forKey: @"shadowColor"];
  [collist setColor: [NSColor systemBlueColor] forKey: @"systemBlueColor"];
  [collist setColor: [NSColor systemBrownColor] forKey: @"systemBrownColor"];
  [collist setColor: [NSColor systemGrayColor] forKey: @"systemGrayColor"];
  [collist setColor: [NSColor systemGreenColor] forKey: @"systemGreenColor"];
  [collist setColor: [NSColor systemOrangeColor] forKey: @"systemOrangeColor"];
  [collist setColor: [NSColor systemPinkColor] forKey: @"systemPinkColor"];
  [collist setColor: [NSColor systemPurpleColor] forKey: @"systemPurpleColor"];
  [collist setColor: [NSColor systemRedColor] forKey: @"systemRedColor"];
  [collist setColor: [NSColor systemYellowColor] forKey: @"systemYellowColor"];
  [collist setColor: [NSColor clearColor] forKey: @"clearColor"];
  [collist setColor: [NSColor blackColor] forKey: @"blackColor"];
  [collist setColor: [NSColor blueColor] forKey: @"blueColor"];
  [collist setColor: [NSColor brownColor] forKey: @"brownColor"];
  [collist setColor: [NSColor cyanColor] forKey: @"cyanColor"];
  [collist setColor: [NSColor darkGrayColor] forKey: @"darkGrayColor"];
  [collist setColor: [NSColor grayColor] forKey: @"grayColor"];
  [collist setColor: [NSColor greenColor] forKey: @"greenColor"];
  [collist setColor: [NSColor lightGrayColor] forKey: @"lightGrayColor"];
  [collist setColor: [NSColor magentaColor] forKey: @"magentaColor"];
  [collist setColor: [NSColor orangeColor] forKey: @"orangeColor"];
  [collist setColor: [NSColor purpleColor] forKey: @"purpleColor"];
  [collist setColor: [NSColor redColor] forKey: @"redColor"];
  [collist setColor: [NSColor whiteColor] forKey: @"whiteColor"];
  [collist setColor: [NSColor yellowColor] forKey: @"yellowColor"];

  printf ("set macColors {\n");
  e = [[collist allKeys] objectEnumerator];
  while ((name = [e nextObject])) {
    color = [collist colorWithKey: name];
    const CGFloat *components = CGColorGetComponents(color.CGColor);
    printf ("  %s {rgb #%04x%04x%04x}\n", [name UTF8String],
        (unsigned int) (components[0] * 65535.0),
        (unsigned int) (components[1] * 65535.0),
        (unsigned int) (components[2] * 65535.0));
  }
  printf ("}\n");
}