⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calender-opts.c

📁 一个功能全面的电子邮件客户端
💻 C
📖 第 1 页 / 共 2 页
字号:
	static char tmp[40];	memset (&time, 0, sizeof (struct tm));	time.tm_hour=hour;	time.tm_min=min;	strftime (tmp, 20, "%I:%M %p", &time);	return tmp;}char *event_date_to_char (EventTime *time) {	static char tmp[60];	g_return_val_if_fail (time != NULL, NULL);	snprintf (tmp, 59, "Week Starting %d/%d/%d", time->month+1, time->date+1, time->year);	return tmp;}void calendar_rehash () {	GtkWidget *widget=calendar_get_widget ();	GtkCalendar *cal=GTK_CALENDAR (lookup_widget (widget, "daily_calendar"));	Schedule *schedule=SCHEDULE (lookup_widget (widget, "schedule"));	CalendarEvent *event;	guint year, month, date;	Llist *seek;	EventTime *time=(EventTime *)calloc (1, sizeof (EventTime));	time_t upper;	schedule_destroy_children (SCHEDULE (lookup_widget (widget, "schedule")));	g_return_if_fail (widget != NULL);	gtk_calendar_get_date (cal, &year, &month, &date);	time->year=year;	time->month=month;	time->date=date;	upper=event_time_to_time_t (time);	free (time);	schedule_set_upper (schedule, upper);	for (seek=event_first ();seek;seek=seek->next) {		event=seek->data;		if (event->start && event->stop) {			if (event->start->year == year && event->start->month == month) {				gtk_calendar_mark_day (GTK_CALENDAR (lookup_widget (widget, "daily_calendar")),				                       event->start->date);				if (event->start->date == date) {					schedule_add_child (SCHEDULE (lookup_widget (widget, "schedule")), 					                    event->subject, event->start->time, event->stop->time, event);				}			}		}	}}int month_string_to_int (char *string) {	if (!string)		return -1;	if (strcasecmp (string, "january")==0 || strcasecmp (string, "jan")==0)		return 0;	if (strcasecmp (string, "february")==0 || strcasecmp (string, "feb")==0)		return 1;	if (strcasecmp (string, "march")==0 || strcasecmp (string, "mar")==0)		return 2;	if (strcasecmp (string, "april")==0 || strcasecmp (string, "apr")==0)		return 3;	if (strcasecmp (string, "may")==0)		return 4;	if (strcasecmp (string, "june")==0 || strcasecmp (string, "jun")==0)		return 5;	if (strcasecmp (string, "july")==0 || strcasecmp (string, "jul")==0)		return 6;	if (strcasecmp (string, "august")==0 || strcasecmp (string, "aug")==0)		return 7;	if (strcasecmp (string, "september")==0 || strcasecmp (string, "sep")==0)		return 8;	if (strcasecmp (string, "october")==0 || strcasecmp (string, "oct")==0)		return 9;	if (strcasecmp (string, "november")==0 || strcasecmp (string, "nov")==0)		return 10;	if (strcasecmp (string, "december")==0 || strcasecmp (string, "dec")==0)		return 11;		return -1;}int year_string_to_int (char *string) {	if (!string)		return -1;	return atoi (string);}void calendar_dump () {	Llist *seek, *tmp;	CalendarEvent *event;	for (seek=event_list;seek;seek=seek->next) {		event=seek->data;		if (!event_validate (event)) {			tmp=seek->next;			if (tmp) {				event_list=llist_remove_by_node (tmp->prev);				return;			}		}	}}int event_validate (CalendarEvent *event) {	if (!event)		return FALSE;	if (!event->start)		return FALSE;	if (!event->stop)		return FALSE;	/* Make sure it doesn't start after it's already ended. */	if( (event -> start -> time) > (event -> stop -> time) )	  return FALSE ;	return TRUE;}void event_dump (CalendarEvent *event) {#if DEBUG > 7	Llist *att;	EventAttendee *attend;	if (!event_validate (event)) {		printf ("Cannot validate this event.  It is null\n");	}	printf ("----------------\n");	printf ("event: %p\n", event);	printf ("event->start: %p event->stop: %p\n", event->start, event->stop);	if (event->start)		printf ("starttime: %lu\n", event->start->time);	if (event->stop)		printf ("stoptime: %lu\n", event->stop->time);	printf ("event->information: %s <%p>\n", event->information, event->information);	printf ("event->location: %s <%p>\n", event->location, event->location);	printf ("event->uid: %s <%p>\n", event->uid, event->uid);		for (att=event->attendees;att;att=att->next) {		attend=att->data;		if (attend->name)			printf ("Attendee: %s\n", attend->name);	}#endif}void event_clear (CalendarEvent *event) {	Llist *att;	EventAttendee *attend;	event_dump (event);	if (event) {		if (event->start)			free (event->start);		if (event->stop)			free (event->stop);		if (event->created)			free (event->created);		if (event->subject)			free (event->subject);		if (event->location)			free (event->location);		if (event->information)			free (event->information);		if (event->uid)			free (event->uid);		if (event->from)			free (event->from);		if (event->program)			free (event->program);		llist_blow_away_and_destroy (event->categories);		for (att=event->attendees;att;att=att->next) {			attend=att->data;			if (attend->name)				free (attend->name);		}		llist_blow_away_and_destroy (event->attendees);		free( event ) ;	}}void event_destroy_all () {//	CalendarEvent *event;//	EventAttendee *attend;	Llist *seek;	for (seek=event_first ();seek;seek=seek->next) {//		event=seek->data;		event_clear (seek->data);/*		event_dump (event);		if (event) {					if (event->start)				free (event->start);			if (event->stop)				free (event->stop);			if (event->created)				free (event->created);			if (event->subject)				free (event->subject);			if (event->information)				free (event->information);			if (event->location)				free (event->location);			if (event->uid)				free (event->uid);			llist_blow_away_and_destroy (event->categories);			for (att=event->attendees;att;att=att->next) {				attend=att->data;				if (attend->name)					free (attend->name);			}			llist_blow_away_and_destroy (event->attendees);		}*/		seek->data=NULL;	}	llist_blow_away_and_destroy (event_list);	event_list=NULL;}Llist *categories=NULL;Llist *event_get_categories () {	if (!categories) {		int i;		char **cat=event_get_master_categories ();		for (i=0;i<NUM_CATEGORIES-1;i++) {			categories=llist_append (categories, strdup (cat[i]));		}	}	return categories;}void event_add_category (char *category) {	if (!category)		return;	categories=llist_append (categories, strdup (category));}void event_remove_category (char *category) {	Llist *seek;	for (seek=categories;seek;seek=seek->next) {	}}char *event_categories_to_char (Llist *cats) {	Llist *seek;	char *tmpc;	int len=0;	for (seek=cats;seek;seek=seek->next) {		len+=strlen ((char *)seek->data)+2;	}	len+=5;	tmpc=(char *)calloc (len, sizeof (char));	for (seek=cats;seek;seek=seek->next) {		if (seek->prev)			sprintf (tmpc, "%s; %s", tmpc, (char *)seek->data);		else			sprintf (tmpc, "%s", (char *)seek->data);	}	return tmpc;}void event_time_dump (EventTime *time) {#if DEBUG > 6	g_return_if_fail (time != NULL);	printf ("EventTime Dump\n**************\n");	printf ("	year       : %d\n", time->year);	printf ("	month      : %d\n", time->month+1);  //	printf ("	date       : %d\n", time->date+1);    //	printf ("	hour       : %d\n", time->hour);	printf ("	minute     : %d\n", time->minute);	printf ("	time_t time: %lu\n", (unsigned long)time->time);	printf ("EventTime Dump End\n");#endif}GList *todo_list=NULL;GList *todo_first () { return todo_list; }Todo *todo_new () {	Todo *todo=(Todo *)calloc (1, sizeof (Todo));	todo_list=g_list_append (todo_list, todo);	return todo;};void todo_delete (Todo *todo) {	if (todo->text) free (todo->text);	if (todo->due) free (todo->due);	todo_list=g_list_remove (todo_list, todo);	free (todo);}Todo *todo_find_from_tree (GtkWidget *treeitem) {	GList *seek;	for (seek=todo_list;seek;seek=seek->next) {		Todo *todo=seek->data;		if (todo->treeitem==treeitem) {			return todo;		}	}	return NULL;}void todo_destroy_all () {	GList *seek;	for (seek=todo_list;seek;seek=seek->next) {		Todo *todo=seek->data;		if (todo->text) free (todo->text);		if (todo->due) free (todo->due);		free (todo);	}	g_list_free (todo_list);	todo_list=NULL;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -