Hello All,
I want to impelment the Datebook functionality in my application.I tried to work on it using the example of Datebook from SDK4.0,I'm able to display the look&feel of month view, while I'm trying to display the month name, today's date in the form it is looking for the value of "daysInWeek", how can I get this value,I tried the value by passing 7 , but it fails please any one help.
Thanks in Advance
Srini
my code is as follows:
MonthViewFormInit (FormType *frm)
{
UInt16 objIndex;
Int16 width;
MonthPtr monthP;
Int16 drawX, drawY;
Int16 cellWidth, cellHeight;
Int16 charWidth;
Int16 lastDay;
Char dowTemplate[] = "^1s";
Char dayInAscii[3];
UInt16 dow;
UInt16 i;
Int16 x, y;
DateTimeType today;
RectangleType r;
UInt8 dayOfWeek;
Char * dayLabels;
UInt16 labelLength;
Char* label;
RGBColorType colorLine; // Color to draw week and month view lines in
WinPushDrawState();
WinSetBackColor(UIColorGetTableEntryIndex(UIFormFill));
WinSetForeColor(UIColorGetTableEntryIndex(UIObjectForeground));
WinSetTextColor(UIColorGetTableEntryIndex(UIObjectForeground));
FntSetFont (boldFont);
// Create a month object, initialize it, and store a pointer to it in the
// month gadget of the Month View.
monthP = MemPtrNew (sizeof (MonthType));
// DrawMonth (monthP, drawDaySelected);
// DrawMonth (monthP, true);
// Make sure the "unselectable" parts of the MonthView are
// drawn in the proper colors first.
WinEraseRectangle (&monthP->bounds, 0);
//cellWidth = monthP->bounds.extent.x / daysInWeek;
//cellHeight = monthP->bounds.extent.y / linesInMonthPlusTitle;
cellWidth =18;
cellHeight=12;
// Get the resource that contains the first letter of each day.
dayLabels = MemHandleLock (DmGetResource (strRsc, DaysofweekinitialsString));
// Calculate length of one item in string */
labelLength = StrLen (dayLabels) / daysInWeek;
//labelLength = StrLen (dayLabels) / 5;
// Draw the days of the week labels right justified to the number columns
// Be sure to draw the labels with respect to current setting of StartDayOfWeek. Somes locales
// consider Monday the first day while others use Sunday. There is also a user preference
// selection in Prefs app/Formats panelthat will allow the user to change first day of week.
//drawY = monthP->bounds.topLeft.y + (cellHeight - FntLineHeight()) / 2;
drawY =20;
drawX=30; // for the text on the above SMTWTFS
for (i = 0; i <= daysInWeek; i++)
{
dayOfWeek = (i + StartDayOfWeek) % daysInWeek;
label = &dayLabels[labelLength * dayOfWeek];
//drawX = monthP->bounds.topLeft.x + (cellWidth * i) + ((cellWidth - FntCharsWidth (label, labelLength)) / 2);
WinDrawChars (label, labelLength, drawX, drawY);
drawX =drawX+16;
}
// Unlock the day of week label resource now that we are done with it.
MemPtrUnlock (dayLabels);
// Set the background color behind the grid in control-style colors since
// the grid is selectable.
WinSetBackColor(UIColorGetTableEntryIndex(UIObjectFill));
RctCopyRectangle(&monthP->bounds, &r);
r.topLeft.y += cellHeight;
r.extent.y -= cellHeight;
WinEraseRectangle (&r, 0);
// Draw the grid. Change the foreground color temporarily to get the right effect,
// and put it back when we're done.
WinSetForeColor(WinRGBToIndex(&colorLine));
//x = monthP->bounds.topLeft.x;
//y = monthP->bounds.topLeft.y + cellHeight;
// table moments
x=28;
y=40;
for (i = 0; i < daysInWeek + 1; i++)
{
WinDrawLine (x, y, x, y + (cellHeight * maxWeeksInMonth));
x += cellWidth;
}
x = monthP->bounds.topLeft.x;
for (i = 0; i < maxWeeksInMonth + 1; i++)
{
WinDrawLine (x, y, x + (cellWidth * daysInWeek) , y);
y += cellHeight;
}
WinSetForeColor(UIColorGetTableEntryIndex(UIObjectForeground));
// Draw the days of the month.
FntSetFont (stdFont);
charWidth = FntCharWidth('0');
dow = FirstDayOfMonth (monthP);
//drawX = monthP->bounds.topLeft.x + (dow * cellWidth) + textLeftMargin;
//drawY = monthP->bounds.topLeft.y + cellHeight + textTopMargin;
lastDay = DaysInMonth(monthP->month, monthP->year);
for (i=1; i <= lastDay; i++, dow++)
{
if (dow == daysInWeek)
{
drawX = monthP->bounds.topLeft.x + textLeftMargin;
drawY += cellHeight;
dow = 0;
}
StrIToA (dayInAscii, i);
WinDrawChars (dayInAscii,
(i < 10) ? 1 : 2,
// (i < 10) ? drawX + charWidth : drawX,
drawX,
drawY);
drawX += cellWidth;
}
// Display a rectangle around today's day if it's visible.
//TimSecondsToDateTime(TimGetSeconds(), &today);
/*
if (TodayIsVisible(monthP, today) && selectDay)
{
GetDaySelectionBounds(monthP, today.day, &r);
MonthDrawInversionEffect (&r, 0);
}
*/
// DrawAppointmentsInMonth (monthP);
WinPopDrawState ();
}
_________________________________________________________________
MSN 8 with e-mail virus protection service: 3 months FREE*. http://join.msn.com/?page=features/virus&xAPID=42&PS=47575&PI=7324&DI=7474&SU= http://www.hotmail.msn.com/cgi-bin/getmsg&HL=1216hotmailtaglines_eliminateviruses_3mf
--
For information on using the Palm Developer Forums, or to unsubscribe, please see http://www.palmos.com/dev/support/forums/
- RE: Accessing DateBook mlv srinivas
- RE: Accessing DateBook Kevin OKeefe
