コード例 #1
0
ファイル: weekglance.c プロジェクト: juddy/edcde
/*
 * handler for week view menu item.
 */
void
week_button (Widget widget, XtPointer data, XtPointer cbs)
{
    Calendar *c = calendar;

    if (c->view->glance == weekGlance)
        return;

    switch (c->view->glance) {
    case dayGlance:
        c->view->glance = weekGlance;
        cleanup_after_dayview(c);
        paint_weekview(c, NULL);
        break;
    case yearGlance:
        c->view->glance = weekGlance;
        cleanup_after_yearview(c);
        XtMapWidget(c->canvas);
        break;
    case monthGlance:
        c->view->glance = weekGlance;
        cleanup_after_monthview(c);
        break;
    default:
        break;
    }
}
コード例 #2
0
static void
day_btn_cb(Widget w, XtPointer client, XtPointer call)
{
        XmMonthPanelCallbackStruct *cbs = (XmMonthPanelCallbackStruct *) call;
        Calendar *c = (Calendar *)client;
        int monthno, year;
        int date = c->view->date;
 
	invalidate_cache(c);

        XtVaGetValues(w, XmNmonth, &monthno, XmNyear, &year, NULL);
 
        if (cbs->type == MONTH_SELECTION) {

		XtUnmapWidget(c->canvas);

		/*
		 * Date update:
		 *	if month chosen is not current month
		 *	set date to 1st of new month, otherwise
		 *	don't change date.
		 */
		if (month(c->view->date) != monthno) {
			calendar_deselect (c);
			c->view->olddate = c->view->date;
			c->view->date = monthdayyear(monthno, 1, year);
			c->view->nwks = numwks(c->view->date);
			calendar_select (c, monthSelect, NULL);
		}
 
                /* switch to month view */
                c->view->glance = monthGlance;
                cleanup_after_dayview(c);
                prepare_to_paint_monthview(c, NULL);

		XtMapWidget(c->canvas);
        }
        else {	/* type == DAY_SELECTION */
                c->view->olddate = c->view->date;
                c->view->date = monthdayyear(monthno, cbs->day, year);
		gr_clear_area(c->xcontext, 0, 0, c->view->winw, c->view->winh);
		paint_dayview(c, True, NULL, False); 
		calendar_select(c, hourSelect, (caddr_t)NULL);
        }
}