This is MyObject.m in view mode; [Download] [Up]
/* Generated by Interface Builder */ #import "MyObject.h" #import "Julian.h" #import <appkit/Slider.h> #import <appkit/Button.h> #import <appkit/TextField.h> #import <dpsclient/wraps.h> #import <stdio.h> #import <stdlib.h> #define MONTH 0 #define DAY 1 #define YEAR 2 #define HOUR 3 #define MIN 4 #define SEC 5 char *dowStr[] = {"","Sun","Mon","Tues","Wed","Thur","Fri","Sat"}; @implementation MyObject - init { char *aStr; [super init]; aStr = (char*) malloc(15); currentDay = 1; currentMonth = 1; currentYear = 1991; currentHour = 0; currentMin = 0; currentSec = 0; sprintf(aStr,"%li",[Julian julianDay:currentDay: currentMonth: currentYear]); [julianField setStringValue:aStr]; return self; } - sliderControl:sender { int i; long julianDate; double julianDay; int operator; char julianStr[37]; char iStr[5]; BOOL state; int calDay,calMonth,calYear; operator = [sender selectedTag]; i = [sender intValue]; sprintf(iStr,"%i",i); switch(operator){ case MONTH: currentMonth = i; [monthField setStringValue:iStr]; break; case DAY: currentDay = i; [dayField setStringValue:iStr]; break; case YEAR: currentYear = i; [yearField setStringValue:iStr]; break; case HOUR: currentHour = i; [hourField setStringValue:iStr]; break; case MIN: currentMin = i; [minField setStringValue:iStr]; break; case SEC: currentSec = i; [secField setStringValue:iStr]; break; } julianDate = [Julian julianDay:currentDay:currentMonth:currentYear]; julianDay = [Julian julianDay : currentDay : currentMonth : currentYear : currentHour : currentMin : currentSec ]; sprintf(julianStr,"%li",julianDate); [julianField setStringValue:julianStr]; sprintf(julianStr,"%f",julianDay); [julianDayField setStringValue:julianStr]; [dowField setStringValue:dowStr[ [Julian dow:julianDate]]]; sprintf(julianStr,"%03i",[Julian doy:currentDay :currentMonth :currentYear]); [doyField setStringValue:julianStr]; sprintf(julianStr,"%03i",(int) ([Julian wkd:currentDay :currentMonth :currentYear] - [Julian wkd:1 :1 :currentYear])); [wkdField setStringValue:julianStr]; state = [Julian validDay:currentDay:currentMonth:currentYear]; if( state == 0 ) { [validField setStringValue:"INVALID"]; } else { [validField setStringValue:"OK"]; } // now reconvert to jday [Julian calendarDay:julianDate:&calDay:&calMonth:&calYear]; sprintf(julianStr,"%i",calDay); [resultDayField setStringValue:julianStr]; sprintf(julianStr,"%i",calMonth); [resultMonthField setStringValue:julianStr]; sprintf(julianStr,"%i",calYear); [resultYearField setStringValue:julianStr]; return self; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.