Matt Gemmell

TOLL is available now!

An action-thriller novel — book 2 in the KESTREL series.

★★★★★ — Amazon


source 1 min read

I've been working on a new Cocoa control (NSControl/NSActionCell subclass pair), which I've 
provisionally named iCalendar, for obvious reasons:

Currently, it supports customising the colours for the background, month header, day headers, day numbers, 
"today" background colour, "selected" background colour, "today" number colour, "selected" number colour, 
week background colour and week border colour. You can also tell it whether to draw the week 
backgrounds and/or borders (i.e. to fill and/or stroke the round-ended bars behind each week), whether to 
highlight today, whether to highlight the selected cell, and whether to draw the overall background. Oh, 
and you can set a background image for the calendar too, which will be sized and positioned appropriately.


I defy anyone (except Apple folk with access to the iCal source, obviously) to create a control which more 
precisely mimics the appearance and behaviour of the mini-month calendar in iCal. I have lots of work still 
to do on the control (including several very cool things which iCal's version <em>doesn't</em> do), but it's 
coming along nicely - I've only been working on it since yesterday (god bless NSCalendarDate and NSBezierPath).

What else can I say about it? Um... well, it automatically uses localised names of the days of the week to draw 
the day headers, and it's even (gasp!) <a href="">resizable too</a>. 
Why does no-one create calendar widgets that are resizable? Well, this one is.


I'm toying with the idea of actually selling this control, for some small (shareware-like) fee. Not sure if that would 
work or not; I've certainly never before tried to earn money from my <a href="">Cocoa source code</a>. 
Anyone have any thoughts as to whether or not fellow Cocoa developers would be willing to pay a small fee to get hold 
of a full-featured, well-documented, and rather pretty calendar widget?

Anyway, more info (and screenshots of customised iCalendars) soon.