diff -Nru --unified=1 iCal.wdgt.orig.wdgt/Calendar.css wwCal.wdgt/Calendar.css
--- iCal.wdgt.orig.wdgt/Calendar.css 2009-02-02 13:32:00.000000000 -0700
+++ wwCal.wdgt/Calendar.css 2010-11-07 00:09:50.000000000 -0600
@@ -204,12 +204,23 @@
top: 20px;
padding-left: 9px;
padding-top: 6px;
- width: 163px;
+ width: 193px;
font: 13px "Helvetica Neue";
font-weight: bold;
line-height: 17px;
}
+.calendar-narrowWorkWeekTitle {
+ float: left;
+ position: relative;
+ left: 3px;
+ width: 22px;
+ border-right: 7px solid transparent;
+ margin-top: 0px;
+ text-align: right;
+ color: rgb(153,153,153);
+}
+
.calendar-narrowDayOfWeekTitle {
float: left;
position: relative;
@@ -221,6 +232,48 @@
color: rgb(153,153,153);
}
+.calendar-workWeekNumberOuter {
+ background-color: #000000;
+ float: left;
+ position: relative;
+ left: 3px;
+ width: 22px;
+ height: 16px;
+ top: 1px;
+ border-right: 7px solid transparent;
+ margin-top: 0px;
+ text-align: right;
+ color: white;
+}
+
+.calendar-workWeekNumberInner {
+ background-color: #5050f0;
+ float: left;
+ position: relative;
+ left: 1px;
+ width: 20px;
+ top: -1px;
+ height: 16px;
+ border-right: 7px solid transparent;
+ margin-top: 0px;
+ padding-bottom: 0px;
+ padding-top: 0px;
+ text-align: right;
+ color: white;
+}
+
+.calendar-workWeekNumberNormal {
+ background-color: #6263ff;
+ float: left;
+ position: relative;
+ left: 3px;
+ width: 22px;
+ border-right: 7px solid transparent;
+ margin-top: 0px;
+ text-align: right;
+ color: white;
+}
+
.calendar-dayOfMonthNumberNormal {
float: left;
position: relative;
@@ -269,7 +322,7 @@
#Button-Right {
position: absolute;
- left: 126px;
+ left: 156px;
top: 7px;
padding-left: 20px;
padding-right: 15px;
diff -Nru --unified=1 iCal.wdgt.orig.wdgt/Calendar.html wwCal.wdgt/Calendar.html
--- iCal.wdgt.orig.wdgt/Calendar.html 2009-02-02 13:32:00.000000000 -0700
+++ wwCal.wdgt/Calendar.html 2010-11-06 16:59:47.000000000 -0600
@@ -37,6 +37,7 @@
+
diff -Nru --unified=1 iCal.wdgt.orig.wdgt/Calendar.js wwCal.wdgt/Calendar.js
--- iCal.wdgt.orig.wdgt/Calendar.js 2009-04-28 09:23:57.000000000 -0600
+++ wwCal.wdgt/Calendar.js 2011-04-07 13:05:56.000000000 -0600
@@ -24,8 +24,8 @@
var kWidgetDayViewWidth = 167;
-var kWidgetDayMonthViewWidth = 333;
-var kWidgetDayMonthEventViewWidth = 485;
+var kWidgetDayMonthViewWidth = 363;
+var kWidgetDayMonthEventViewWidth = 515;
var kWidgetHeight = 163;
var kEventViewContentHeight = 129;
@@ -33,12 +33,12 @@
var kDayViewMiddleFillWidth = 142;
var kDayViewRightContentLeftPosition = 178;
-var kDayMonthViewMiddleContainerWidth = 324;
-var kDayMonthViewMiddleFillWidth = 311;
+var kDayMonthViewMiddleContainerWidth = 354;
+var kDayMonthViewMiddleFillWidth = 341;
var kDayMonthViewRightContentLeftPosition = 151;
-var kDayMonthEventViewMiddleContainerWidth = 474;
-var kDayMonthEventViewMiddleFillWidth = 461;
+var kDayMonthEventViewMiddleContainerWidth = 504;
+var kDayMonthEventViewMiddleFillWidth = 491;
var kDayMonthEventViewRightContentLeftPosition = 152;
var kDayView = "kDayView";
@@ -333,7 +333,7 @@
} else if (gCurrentView == kDayMonthView) {
// Expand month view.
- gResizeAnimation.elementMonthContent.style.left = (gResizeAnimation.positionNow - 173) + "px";
+ gResizeAnimation.elementMonthContent.style.left = (gResizeAnimation.positionNow - 203) + "px";
rightContentClippingOnItsLeft = kDayMonthViewMiddleContainerWidth - gResizeAnimation.positionNow;
gResizeAnimation.elementMonthContent.style.clip = "rect(0,999,999," + rightContentClippingOnItsLeft + ")";
} else if (gCurrentView == kDayMonthEventView) {
@@ -388,6 +388,7 @@
// Get localized names of the narrow days of the week from the plugin and populate the Expanded View's calendar-grid's header:
//
{
+ document.getElementById("WorkWeekHeading").innerText = "WW";
for (var i = 0; i <= 6; i++)
{
document.getElementById ("DayOfWeek-" + i).innerText = fetchIPrefNarrowDayOfWeekName (i);
@@ -460,6 +461,41 @@
}
+/**
+ * Returns the week number for this date. dowOffset is the day of week the week
+ * "starts" on for your locale - it can be from 0 to 6. If dowOffset is 1 (Monday),
+ * the week returned is the ISO 8601 week number.
+ * @param int dowOffset
+ * @return int
+ */
+Date.prototype.getWeek = function (dowOffset) {
+/*getWeek() was developed by Nick Baicoianu at MeanFreePath: http://www.meanfreepath.com */
+
+ dowOffset = typeof(dowOffset) == 'int' ? dowOffset : 0; //default dowOffset to zero
+ var newYear = new Date(this.getFullYear(),0,1);
+ var day = newYear.getDay() - dowOffset; //the day of week the year begins on
+ day = (day >= 0 ? day : day + 7);
+ var daynum = Math.floor((this.getTime() - newYear.getTime() -
+ (this.getTimezoneOffset()-newYear.getTimezoneOffset())*60000)/86400000) + 1;
+ var weeknum;
+ //if the year starts before the middle of a week
+ //// no, count the week if *any* day, i.e. Saturday, is in the new year. so 7 instead of 4.
+ if(day < 7) {
+ weeknum = Math.floor((daynum+day-1)/7) + 1;
+ if(weeknum > 52) {
+ nYear = new Date(this.getFullYear() + 1,0,1);
+ nday = nYear.getDay() - dowOffset;
+ nday = nday >= 0 ? nday : nday + 7;
+ /*if the next year starts before the middle of
+ the week, it is week #1 of that year*/
+ weeknum = nday < 7 ? 1 : 53;
+ }
+ }
+ else {
+ weeknum = Math.floor((daynum+day-1)/7);
+ }
+ return weeknum;
+};
function drawGrid (inJSDate)
//
@@ -493,8 +529,21 @@
var numberOfDaysInPreviousMonth = calculateNumberOfDaysInPreviousMonth (inJSDate);
var workingDate = new Date(Calendar.addDeltaForUnitToDate(-zeroBasedFirstDayOfWeekInOurMonth, kCFCalendarUnitDay, dateForOurMonth.getTime()));
var ourMonth = Calendar.getUnitForDate(kCFCalendarUnitMonth, dateForOurMonth.getTime())-1;
+
for (i = 0; i < 42; i++)
{
+ if (!(i%7)) {
+ var workWeekSpan = document.createElement ("span");
+ var week = workingDate.getWeek();
+ workWeekSpan.innerHTML = ((week<10)?"0":"") + week;
+ //workWeekSpan.setAttribute ("class", "calendar-workWeekNumberNormal");
+ //monthDiv.appendChild(workWeekSpan);
+ workWeekSpan.setAttribute ("class", "calendar-workWeekNumberInner");
+ var outer = document.createElement("span");
+ outer.setAttribute ("class", "calendar-workWeekNumberOuter");
+ outer.appendChild(workWeekSpan);
+ monthDiv.appendChild(outer);
+ }
var dateSpan = document.createElement ("span");
var date = Calendar.getUnitForDate(kCFCalendarUnitDay, workingDate.getTime());
@@ -970,7 +1019,7 @@
/* starting font size: */ 12,
/* starting left position: */ 23,
/* starting top position: */ 9,
- /* max width: */ 120,
+ /* max width: */ 150,
/* max height: */ 25);
}
Binary files iCal.wdgt.orig.wdgt/Images/monthcard.png and wwCal.wdgt/Images/monthcard.png differ
Binary files iCal.wdgt.orig.wdgt/Images/monthcard.png.orig and wwCal.wdgt/Images/monthcard.png.orig differ
diff -Nru --unified=1 iCal.wdgt.orig.wdgt/Info.plist wwCal.wdgt/Info.plist
--- iCal.wdgt.orig.wdgt/Info.plist 2009-05-01 12:24:38.000000000 -0600
+++ wwCal.wdgt/Info.plist 2010-11-06 12:50:03.000000000 -0600
@@ -7,9 +7,9 @@
CFBundleDevelopmentRegion
English
CFBundleDisplayName
- Calendar
+ WorkWeekCalendar
CFBundleIdentifier
- com.apple.widget.calendar
+ com.davidsimmons.workweekcalendar
CFBundleName
Calendar
CFBundleShortVersionString