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

📄 nxtodo.cxx

📁 PIXIL is a small footprint operating environment, complete with PDA PIM applications, a browser and
💻 CXX
📖 第 1 页 / 共 4 页
字号:
	    //strcat(msg, note->szId);	    char id[4];	    sprintf(id, "%d", note->nId);	    strcat(msg, id);	    strcat(msg, "^");	    strcat(msg, result);	    strcat(msg, "^");	    NxApp::Instance()->Write_Fd(ipc_id, msg, MAX_LENGTH);	}    }    strcpy(msg, "nxtodo^ACK^DATA^search^");    NxApp::Instance()->Write_Fd(ipc_id, msg, MAX_LENGTH);    delete[]msg;    msg = NULL;}voidNxTodoList::ExecuteDateSearch(int ipc_id, int width, long startTime,			      long endTime){    char *msg = new char[MAX_LENGTH];    NxTodo *note;    while ((note = searchDate(startTime, endTime)) != NULL) {	char *result = formatLabel(note, width, true);	strcpy(msg, "nxtodo^DATA^search^");	sprintf(msg, "%s^%d^%s^", msg, note->nId, result);	NxApp::Instance()->Write_Fd(ipc_id, msg, MAX_LENGTH);    }    strcpy(msg, "nxtodo^ACK^DATA^seach^");    NxApp::Instance()->Write_Fd(ipc_id, msg, MAX_LENGTH);    delete[]msg;    msg = NULL;}#endif /* CONFIG_COLOSSEUM *///// Database methods//voidNxTodoList::exit_callback(Fl_Widget * fl, void *l){    exit_flag = 1;    main_window->hide();}char *NxTodoList::Record(int id, int cat_id, int complete, int priority,		   string title, string desc, long time){    char *rec = new char[MAXRECSIZ];    memset(rec, 0, MAXRECSIZ);    put16(&rec[tdFields[0].offset], id);    DPRINT("Record id [%d]\n", id);    put16(&rec[tdFields[1].offset], cat_id);    put16(&rec[tdFields[2].offset], complete);    put16(&rec[tdFields[3].offset], priority);    strcpy(&rec[tdFields[4].offset], title.c_str());    strcpy(&rec[tdFields[5].offset], desc.c_str());    put32(&rec[tdFields[6].offset], time);    return rec;}char *NxTodoList::Record(int pri_id, string pri_type, int dummy){    char *rec = new char[MAXRECSIZ];    memset(rec, 0, MAXRECSIZ);    put16(&rec[pFields[0].offset], pri_id);    strcpy(&rec[pFields[1].offset], pri_type.c_str());    return rec;}char *NxTodoList::Record(int catid, string cat_name){    char *rec = new char[MAXRECSIZ];    memset(rec, 0, MAXRECSIZ);    put16(&rec[catFields[0].offset], catid);    strcpy(&rec[catFields[1].offset], cat_name.c_str());    return rec;}//// Window Methods//Fl_Window *NxTodoList::get_main_window(){    if (main_window)	return main_window;    else	return 0;}voidNxTodoList::show_default_window(){    show_window(todo_list_window->GetWindowPtr());}voidNxTodoList::make_list_window(){    todo_list_window =	new NxPimWindow(APP_NAME, todoMenuItem, db, CATEGORY, TODO,			(void (*)(const char *)) set_category);    add_window((Fl_Window *) todo_list_window->GetWindowPtr());    {	NxScroll *o = note_list =	    new NxScroll(-1, 31, W_W + 2, BUTTON_Y - 33);	o->movable(false);	{	    tree = new Fl_Toggle_Tree(0, 31, W_W, 10);	    tree->callback(checkit_callback);	}	o->end();	todo_list_window->add((Fl_Widget *) o);    }    {	NxBox *o = new NxBox(5, 5, 85, 25, "");	o->labelfont(1);	todo_list_window->add((Fl_Widget *) o);    }    {	NxButton *o =	    new NxButton(BUTTON_X, BUTTON_Y, BUTTON_WIDTH - 5, BUTTON_HEIGHT,			 "Add");	o->box(FL_SHADOW_BOX);	o->labelfont(1);	o->callback(add_callback);	NxApp::Instance()->def_font((Fl_Widget *) o);	todo_list_window->add((Fl_Widget *) o);    }    {	NxButton *o = new NxButton(BUTTON_X + 58, BUTTON_Y, BUTTON_WIDTH - 5,				   BUTTON_HEIGHT, "Edit");	o->box(FL_SHADOW_BOX);	o->labelfont(1);	o->callback(edit_callback);	NxApp::Instance()->def_font((Fl_Widget *) o);	todo_list_window->add((Fl_Widget *) o);    }    {	NxButton *o = new NxButton(BUTTON_X + 116, BUTTON_Y, BUTTON_WIDTH - 5,				   BUTTON_HEIGHT, "Delete");	o->box(FL_SHADOW_BOX);	o->labelfont(1);	o->callback(delList_callback);	NxApp::Instance()->def_font((Fl_Widget *) o);	todo_list_window->add((Fl_Widget *) o);    }}voidNxTodoList::make_edit_window(){    todo_edit_window =	new NxPimWindow(APP_NAME, editMenuItem, db, CATEGORY, TODO,			(void (*)(const char *)) set_category);    add_window((Fl_Window *) todo_edit_window->GetWindowPtr());    {	NxOutput *o = new NxOutput(BUTTON_X, 30, BUTTON_WIDTH, 25);	o->value(" Priority:");	o->movable(false);	todo_edit_window->add((Fl_Widget *) o);    }    {	NxMenuButton *o = edit_priority_list =	    new NxMenuButton(63, 34, BUTTON_WIDTH + 10, BUTTON_HEIGHT, "");	o->box(FL_SHADOW_BOX);	o->align(FL_ALIGN_INSIDE | FL_ALIGN_LEFT);	int numRecs = db->NumRecs(PRIORITY);	int get_recno[1];	get_recno[0] = -1;	char buf[10];	for (int i = 0; i < numRecs; i++) {	    sprintf(buf, "%d", i);	    db->Select((string) PRIORITY, buf, 0, get_recno, 255);	    // id	    db->Extract((string) PRIORITY, get_recno[0], 1, buf);	    o->add(buf);	}	o->callback(priority_callback);	o->value(0);	todo_edit_window->add((Fl_Widget *) o);    }    {	NxOutput *o = new NxOutput(BUTTON_X, 56, BUTTON_WIDTH, 25);	o->value("     Title:");	o->movable(false);	o->align(FL_ALIGN_INSIDE | FL_ALIGN_RIGHT);	todo_edit_window->add((Fl_Widget *) o);    }    {	NxInput *o = edit_title = new NxInput(63, 58, W_W - 93, 20, "");	o->movable(false);	o->when(FL_WHEN_CHANGED | FL_WHEN_NOT_CHANGED);	o->maximum_size(TITLE - 1);	todo_edit_window->add((Fl_Widget *) o);    }    {	NxOutput *o = new NxOutput(BUTTON_X - 10, 79, BUTTON_WIDTH + 5, 25);	o->value("Due Date:");	o->movable(false);	NxApp::Instance()->def_font((Fl_Widget *) o);	todo_edit_window->add((Fl_Widget *) o);    }    {	NxButton *o = due_date =	    new NxButton(BUTTON_X + 56, 83, BUTTON_WIDTH + 10, BUTTON_HEIGHT,			 "Jun 09, 74");	o->movable(false);	o->callback(dueDate_callback);	o->box(FL_SHADOW_BOX);	todo_edit_window->add((Fl_Widget *) o);    }    {	NxCheckButton *o = edit_complete =	    new NxCheckButton(BUTTON_X + 30, 99, "Complete");	// NxCheckButton *o = stringCheck = new NxCheckButton(BUTTON_X, 35, 25, 25, "Only entries containing:");	o->movable(false);	todo_edit_window->add((Fl_Widget *) o);    }    {	{	    Fl_Editor *o = g_editor =		new Fl_Editor(5, 124, W_W - 10, BUTTON_Y - 131);	    o->movable(false);	    o->callback(NxApp::Instance()->pasteTarget_callback, (void *) 1);	    o->when(FL_WHEN_CHANGED | FL_WHEN_NOT_CHANGED);	    todo_edit_window->add((Fl_Widget *) o);	}    }    {	NxButton *o =	    new NxButton(BUTTON_X, BUTTON_Y, BUTTON_WIDTH, BUTTON_HEIGHT,			 "Done");	o->box(FL_SHADOW_BOX);	o->labelfont(1);	o->callback(done_callback);	NxApp::Instance()->def_font((Fl_Widget *) o);	todo_edit_window->add((Fl_Widget *) o);    }}voidNxTodoList::make_dellist_window(){    todo_dellist_window = new NxPimPopWindow("Delete");    add_window((Fl_Window *) todo_dellist_window->GetWindowPtr());    {	NxBox *o = new NxBox(BUTTON_X, 43, W_W - BUTTON_X - 15, 0,			     "Delete current task ?");	o->box(FL_FLAT_BOX);	o->align(FL_ALIGN_WRAP | FL_ALIGN_LEFT | FL_ALIGN_TOP);	NxApp::Instance()->def_font((Fl_Widget *) o);	todo_dellist_window->add((Fl_Widget *) o);    }    {	NxButton *o =	    new NxButton(15, 90, BUTTON_WIDTH, BUTTON_HEIGHT, "Yes");	o->box(FL_SHADOW_BOX);	o->callback(yesDelList_callback);	NxApp::Instance()->def_font((Fl_Widget *) o);	todo_dellist_window->add((Fl_Widget *) o);    }    {	NxButton *o =	    new NxButton(BUTTON_WIDTH + 17, 90, BUTTON_WIDTH, BUTTON_HEIGHT,			 "No");	o->box(FL_SHADOW_BOX);	o->callback(noDelList_callback);	NxApp::Instance()->def_font((Fl_Widget *) o);	todo_dellist_window->add((Fl_Widget *) o);    }}voidNxTodoList::make_results_window(){    todo_results_window =	new NxPimPopWindow("Search Results",			   NxApp::Instance()->getGlobalColor(APP_FG), 5,			   (W_W / 3), W_W - 10, (W_H - (W_W / 2)));    add_window((Fl_Window *) todo_results_window->GetWindowPtr());    {	results_message = new NxOutput(4, 19, W_W - 19, 25);	results_message->value("Nothing Found.");	results_message->hide();	todo_results_window->add((Fl_Widget *) results_message);    }    {	results_table =	    new Flv_Table_Child(4, 19, (W_W - 19),				(W_H - (W_W / 2) - 3 * (BUTTON_HEIGHT)), 0,				(W_W - 25));	results_table->callback(view_callback);	results_table->SetCols(1);	todo_results_window->add((Fl_Widget *) results_table);    }    {	NxButton *o =	    new NxButton(BUTTON_X, (W_H - (W_W / 2) - BUTTON_HEIGHT - 9),			 BUTTON_WIDTH, BUTTON_HEIGHT, "Done");	o->callback(doneLookup_callback);	todo_results_window->add((Fl_Widget *) o);    }}voidNxTodoList::make_lookup_window(){    static char fromBuf[30];    static char toBuf[30];    toTime = fromTime = time(0);    tm *tt = localtime(&fromTime);    //strftime(fromBuf, 29, "%b %d, %y", tt);    //strftime(toBuf, 29, "%b %d, %y", tt);    GetDateString(fromBuf, tt, sizeof(fromBuf), SHORT_YEAR);    GetDateString(toBuf, tt, sizeof(toBuf), SHORT_YEAR);    todo_lookup_window =	//new NxPimPopWindow("Todo Lookup", NxApp::Instance()->getGlobalColor(APP_FG), 10, 10, W_W -20, W_H - 100);	new NxPimWindow(W_X, W_Y, W_W, W_H);    add_window((Fl_Window *) todo_lookup_window->GetWindowPtr());    {	NxCheckButton *o = stringCheck =	    new NxCheckButton(BUTTON_X, 10, "Only entries containing:");	o->movable(false);	NxApp::Instance()->def_font((Fl_Widget *) o);	todo_lookup_window->add((Fl_Widget *) o);    }    {	NxInput *o = lookup_input = new NxInput(BUTTON_X + 19, 35, 141, 20);	o->movable(false);	lookup_input->maximum_size(99);	todo_lookup_window->add((Fl_Widget *) o);    }    {	NxCheckButton *o = dateCheck =	    new NxCheckButton(BUTTON_X, 60, "Limit by date range:");	o->movable(false);	todo_lookup_window->add((Fl_Widget *) o);    }    {	NxOutput *o = new NxOutput(BUTTON_X + 19, 85, 60, BUTTON_HEIGHT);	o->movable(false);	o->value("From:");	todo_lookup_window->add((Fl_Widget *) o);    }    {	NxButton *o = fromDateButton =	    new NxButton(BUTTON_X + 60, 85, 100, BUTTON_HEIGHT);	o->movable(false);	NxApp::Instance()->def_font((Fl_Widget *) o);	o->label(fromBuf);	o->callback(fromCalendar_callback, this);	o->redraw();	todo_lookup_window->add((Fl_Widget *) o);    }    {	NxOutput *o = new NxOutput(BUTTON_X + 19, 105, 60, BUTTON_HEIGHT);	o->movable(false);	o->value("To:");	todo_lookup_window->add((Fl_Widget *) o);    }    {	NxButton *o = toDateButton =	    new NxButton(BUTTON_X + 60, 105, 100, BUTTON_HEIGHT);	o->movable(false);	o->label(toBuf);	o->redraw();	o->callback(toCalendar_callback, this);	todo_lookup_window->add((Fl_Widget *) o);    }    {	NxButton *o =	    new NxButton(BUTTON_X, BUTTON_Y, BUTTON_WIDTH, BUTTON_HEIGHT,			 "Search");	o->callback(searchLookup_callback, this);	todo_lookup_window->add((Fl_Widget *) o);    }    {	NxButton *o =	    new NxButton(BUTTON_X + 63, BUTTON_Y, BUTTON_WIDTH, BUTTON_HEIGHT,			 "Cancel");	o->callback(cancelLookup_callback);	todo_lookup_window->add((Fl_Widget *) o);    }}voidNxTodoList::make_due_date_window(){    due_date_window =	new NxPimPopWindow("Due Date", FL_DARK2, 10, W_H / 6, W_W - 20,			   W_H - 110);    add_window((Fl_Window *) due_date_window->GetWindowPtr());    {	NxRadioRoundButton *o = noDateRadio =	    new NxRadioRoundButton(10, 20, 20, 20, "No Date");	due_date_window->add((Fl_Widget *) o);	o->callback(noDueDate_callback, this);    }    {	NxRadioRoundButton *o = todayDateRadio =	    new NxRadioRoundButton(10, 45, 20, 20, "Today");	due_date_window->add((Fl_Widget *) o);	o->callback(todayDueDate_callback, this);    }    {	NxRadioRoundButton *o = tomorrowDateRadio =	    new NxRadioRoundButton(10, 70, 20, 20, "Tomorrow");	due_date_window->add((Fl_Widget *) o);	o->callback(tomorrowDueDate_callback, this);    }    {	NxRadioRoundButton *o = EoWDateRadio =	    new NxRadioRoundButton(10, 95, 20, 20, "End of Week");	due_date_window->add((Fl_Widget *) o);	o->callback(endOfWeek_callback, this);    }    {	NxRadioRoundButton *o = chooseDateRadio =	    new NxRadioRoundButton(10, 120, 20, 20, "");	due_date_window->add((Fl_Widget *) o);	o->callback(chooseDueDate_callback, this);    }    {	NxButton *o = chooseDate =	    new NxButton(28, 120, BUTTON_WIDTH + 20, BUTTON_HEIGHT,			 "June 09, 74");	due_date_window->add((Fl_Widget *) o);	o->callback(chooseDate_callback, this);	o->deactivate();    }    {	NxButton *o =	    new NxButton(POP_BUTTON_X, POP_BUTTON_Y(due_date_window),			 BUTTON_WIDTH, BUTTON_HEIGHT, "Done");	o->callback(doneChoose_callback, this);	due_date_window->add((Fl_Widget *) o);    }	/***	{ 		m_pDatePickerCalendar = new NxCalendar((NxApp*)this, 0, 32, W_W, BUTTON_Y-38,"");		//m_pDatePickerCalendar->CalendarUpdate((void(*)(NxCalendar *))calendar_updated);		due_date_window->add((Fl_Widget*)m_pDatePickerCalendar);	}	****/    ResetRadioButtons();}voidNxTodoList::make_error_window(){    error_window = new NxPimPopWindow("Error");    add_window((Fl_Window *) error_window->GetWindowPtr());    {	error_msg =	    new NxOutput(4, 19, error_window->GetWindowPtr()->w() - 10, 25);	error_msg->value("Error: No Search Constraint.");	error_window->add((Fl_Widget *) error_msg);    }    {	NxButton *o =	    new NxButton(BUTTON_X, 90, BUTTON_WIDTH, BUTTON_HEIGHT, "Ok");	o->callback(errorOK_callback);	error_window->add((Fl_Widget *) o);    }}voidNxTodoList::errorOK_callback(Fl_Widget * fl, void *l){    error_window->GetWindowPtr()->hide();    NxApp::Instance()->show_window(todo_lookup_window->GetWindowPtr(),				   DEACTIVATE,				   todo_list_window->GetWindowPtr());}voidNxTodoList::noDueDate_callback(Fl_Widget * fl, void *l){    date_type = NO_DATE;    chooseDate->deactivate();}voidNxTodoList::todayDueDate_callback(Fl_Widget * fl, void *l){    date_type = TODAY;    chooseDate->deactivate();}voidNxTodoList::tomorrowDueDate_callback(Fl_Widget * fl, void *l){    date_type = TOMORROW;    chooseDate->deactivate();}voidNxTodoList::endOfWeek_callback(Fl_Widget * fl, void *l){    date_type = END_OF_WEEK;    chooseDate->deactivate();}voidNxTodoList::chooseDueDate_callback(Fl_Widget * fl, void *l){    date_type = CHOOSE_DATE;    chooseDate->activate();}voidNxTodoList::checkit_callback(Fl_Widget * fl, void *l){    Fl_Toggle_Node *node = tree->selected();    if (tree->selection_count() > 1)	tree->unselect();    if (node) {	NxTodo *n = (NxTodo *) node->user_data();	if ((Fl::event_x() >= 19) && (Fl::event_x() <= 27)) {	    tree->unselect();	    int recno[1];	    recno[0] = -1;	    char id[4];	    sprintf(id, "%d", n->nId);	    db->Select(TODO, id, 0, recno, 1);	    if (recno[0] != -1) {		n->nComplete = !n->nComplete;		edit_note(n, recno[0]);		if (node->pixmap() == echeck_pixmap)		    node->pixmap(check_pixmap);		else if (node->pixmap() == check_pixmap)		    node->pixmap(echeck_pixmap);		if (0 != strcmp("All", note_category->label()))		    set_category(n->szCategory, 0);	    } else {		if (0 != strcmp("All", note_category->label()))		    set_category(n->szCategory, 0);		return;	    }	} else if (Fl::event_clicks()) {	    g_EditFlag = 1;	    NxApp::Instance()->		set_catlist_window((Fl_Window *) todo_edit_window->				   GetEditCategoryWindowPtr());	    NxTodo *n = (NxTodo *) node->user_data();	    g_editor->Clear();	    if (n->szFile[0] != '^') {		FILE *fd = fopen(((NxTodo *) node->user_data())->szFile, "r");		if (fd) {		    g_editor->LoadFrom(fd);		    fclose(fd);		}	    }

⌨️ 快捷键说明

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