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

📄 progect.c

📁 个人日程管理系统
💻 C
📖 第 1 页 / 共 5 页
字号:
			gNoDate, 0);	}} // void PriorityHandleEvent(EventPtr e)/**************************************************************************** * Name : SelectRange * Desc : popup a user form to ask for subview or all * Parm : * Out  : Btn_Sub_All or Btn_Sub_Sub or Btn_Sub_Cancel * Auth : burgbach, 21.10.2000 ***************************************************************************/UInt16 SelectRange(void){	UInt16 temp = Btn_Sub_All;	if (gParentTask) // if actual subview is not the total view	{		FormPtr frmSub = FrmInitForm(FrmSubOrAll);		temp = FrmDoDialog(frmSub);		FrmDeleteForm(frmSub);	}	return temp;} // UInt16 SelectRange(void)/**************************************************************************** * Name : FrmMainMenuHandleEvent * Desc : Main Menu event handler * Parm :   -> Event to handle * Out  :   <- true if event was handled * Auth : burgbach, ??.??.2000 * Mod  : hcc, 28.04.2001 *          Add Collapse Father command * Mod	: lb, 2001-09-06 * 		  	adapt to 0.23 db format ***************************************************************************/Boolean FrmMainMenuHandleEvent(EventPtr e){	FormPtr frm;	frm = FrmGetActiveForm();	switch(e->data.menu.itemID) {		case MenuMainNewTask:			ViewCreateNewTask();			break;		case MenuMainTop:			// if there aren't any records, then just ignore			if (PgNumRecords(gdbP) <= 1)				break;			gActualTask = gParentTask + 1;			SelectActualTask(true);			FrmUpdateForm(FrmMain, frmRedrawUpdateCode);			break;		case MenuMainBottom:			if (gRefLevel == 0)				gActualTask = PgNumRecords(gdbP) - 1;			else				gActualTask = GetLastInSub(gParentTask);			SelectActualTask(true);			FrmUpdateForm(FrmMain, frmRedrawUpdateCode);			break;		case MenuMainRepair:			TaskRepairTree(gdbP, 0, 0);			FrmUpdateForm(FrmMain, frmRedrawUpdateCode);			break;		case MenuMainReInit:			switch (SelectRange())			{				case Btn_Sub_All:					if (ConfirmCustom(StrActionDelete, StrAllTasks) == 0)					{						while (PgNumRecords(gdbP) > 1)						{							TaskRemove(gdbP, 1);						}						gParentTask = gRefLevel = 0;						// erase the up button						CtlHideControl(GetObjectPtr(Btn_Sub_Up));						FrmUpdateForm(FrmMain, frmRedrawUpdateCode);					}					break;				case Btn_Sub_Sub:					if (ConfirmCustom(StrActionDelete, 						StrAllDoneTasksInThisView) == 0)					{						TaskRemoveChildren(gdbP, gParentTask);						FrmUpdateForm(FrmMain, frmRedrawUpdateCode);					}					break;				default:					break;			}			break;		case MenuMainSyncToDo:				TaskSyncAll();				FrmUpdateForm(FrmMain, frmRedrawUpdateCode);			break;		case MenuMainResetDates:			FrmPopupForm(FrmSetReset);			break;		case MenuMainDeleteChildren:			if (gActualTask && TaskGetHasChild(gdbP, gActualTask))			{				if (ConfirmCustom(StrActionDelete, 					StrAllChildrenOfSelectedTask) == 0)				{					TaskRemoveChildren(gdbP, gActualTask);					FrmUpdateForm(FrmMain, frmRedrawUpdateCode);				}			}			break;		case MenuMainDeleteTask:			if (QueryDeleteTask(gdbP,gActualTask))			{				TaskDeleteTree(gdbP,gActualTask);				gActualTask=0;				gParentTask=0;				gRefLevel=0;				FrmUpdateForm(FrmMain, frmRedrawUpdateCode);			}				break;		case MenuMainDeleteDoneTask:			switch (SelectRange())			{				case Btn_Sub_All:					if (ConfirmCustom(StrActionDelete, StrAllDoneTasks) == 0)					{						// to be sure the percentages are correct						TaskCalcCompletedAll(gdbP);						TaskRemoveDone(gdbP);						TaskCalcCompletedAll(gdbP);						FrmUpdateForm(FrmMain, frmRedrawUpdateCode);					}					break;				case Btn_Sub_Sub:					if (ConfirmCustom(StrActionDelete, 						StrAllDoneTasksInThisView) == 0)					{						// to be sure the percentages are correct						TaskCalcCompletedAll(gdbP);						TaskRemoveDoneChildren(gdbP, gParentTask);						TaskCalcCompletedAll(gdbP);						FrmUpdateForm(FrmMain, frmRedrawUpdateCode);					}					break;				default:					break;			}			break;		case MenuMainExpandAll:			TaskExpand(gdbP, 0);			FrmUpdateForm(FrmMain, frmRedrawUpdateCode);			break;		case MenuMainCollapseAll:			TaskCollapse(gdbP, 0);			Scroll(scrollTop, 0);			FrmUpdateForm(FrmMain, frmRedrawUpdateCode);			break;//		case MenuMainExpandOne://			TaskExpand(gdbP, gActualTask);//			FrmUpdateForm(FrmMain, frmRedrawUpdateCode);//			break;//		case MenuMainCollapseOne://			TaskCollapse(gdbP, gActualTask);//			FrmUpdateForm(FrmMain, frmRedrawUpdateCode);//			break;		case MenuMainCollapseFather:		{			UInt16 fatherIndex = TaskGetFatherIndex(gdbP, gActualTask);			if(fatherIndex != 0)			{				TaskCollapse(gdbP, fatherIndex);				gActualTask = fatherIndex;				SelectActualTask(true);				FrmUpdateForm(FrmMain, frmRedrawUpdateCode);			}			break;		}		case MenuMainPreferences:			ShowProjectPropertiesDialog();			FrmUpdateForm(FrmMain, frmRedrawUpdateCode);			break;		case MenuMainDisplayPreferences:			FrmPopupForm(FrmDisplayProperties);			break;		case MenuMainFlatFilter:			FrmPopupForm(FrmFlatFilter);			break;		case MenuMainClose:			FrmGotoForm(FrmProjectList);			CloseDB(gdbP);			gActualTask = gLastSelected = 0;			break;		case MenuMainViewSub:			break;		case MenuMainViewAll:			gParentTask = 0;			gRefLevel = 0;			// erase the up button			CtlHideControl(GetObjectPtr(Btn_Sub_Up));			SetFormTitle(frm, gCurrentPrefs.openDBName);			FrmUpdateForm(FrmMain, frmRedrawUpdateCode);			break;		case MenuEditCut:			if (gActualTask)			{				TaskToClipboard(gdbP, gActualTask, true);				TaskRemove(gdbP, gActualTask);				FrmUpdateForm(FrmMain, frmRedrawUpdateCode);			}			break;		case MenuEditCopy:			if (gActualTask)			{				TaskToClipboard(gdbP, gActualTask, true);			}			break;		case MenuEditCopyChildren:			if (gActualTask && TaskGetHasChild(gdbP, gActualTask))			{				TaskToClipboard(gdbP, gActualTask, false);			}			break;		case MenuEditPaste:			if (gActualTask || PgNumRecords(gdbP) == 1 ||				!TaskGetHasChild(gdbP, gParentTask))			{				if (!gActualTask)					gActualTask = TaskFromClipboard(gdbP, gParentTask, true);				else					gActualTask = TaskFromClipboard(gdbP, gActualTask, false);				SelectActualTask(true);				FrmUpdateForm(FrmMain, frmRedrawUpdateCode);			}			break;		case MenuEditPasteAsChildren:			if (gActualTask)				gActualTask = TaskFromClipboard(gdbP, gActualTask, true);			SelectActualTask(true);			FrmUpdateForm(FrmMain, frmRedrawUpdateCode);			break;		case MenuEditAddNote:			if (gActualTask)			{				FrmPopupForm(FrmNoteEdit);			}			break;		case MenuMainTaskDefaults:			FrmPopupForm(FrmTaskDefaults);			break;		case MenuProjectListAbout:			FrmCustomAlert(ProgectAbout, VERSION, " ", " ");			break;		case MenuMainMemoExport:			FrmPopupForm(FrmMemoExportProperties);			break;		case MenuPublishLinkMaster:			if (gActualTask > 0)				PublishToLinkMaster(gdbP, gActualTask);			break;		case MenuLinkViaLinkMaster:			if (gActualTask > 0)				RequestLinkViaLinkMaster(gCurrentPrefs.openDBName, gActualTask);			break;		case MenuRemoveLinkViaLinkMaster:			if (gActualTask > 0)			{				RemoveLinkViaLinkMaster(gActualTask);				FrmUpdateForm(FrmMain, frmRedrawUpdateCode);			}			break;	}	return true;} // Boolean FrmMainMenuHandleEvent(EventPtr e)Boolean FrmMainCtlSelectHandleEvent(EventPtr e){	FormPtr frm;		frm = FrmGetActiveForm();	switch(e->data.ctlSelect.controlID) {		case Btn_Left:			if (gActualTask)			{				TaskToLeft(gdbP, gActualTask);				// TODO verify how to bypass this one				ProjectTableUpdate();				SelectActualTask(true);			}			break;		case Btn_Right:			if (gActualTask)			{				TaskToRight(gdbP, gActualTask);				SelectActualTask(true);			}			break;		case Btn_Up:			if (gActualTask)			{				TaskUp(gdbP, gActualTask);				SelectActualTask(true);			}			break;		case Btn_Down:			if (gActualTask)			{				TaskDown(gdbP, gActualTask);				SelectActualTask(true);			}			break;		case Btn_Sub:			// New, be able to see the sub of a terminal task			if (gActualTask)			{				char* p;				gParentTask = gActualTask;				gRefLevel = TaskGetLevel(gdbP, gParentTask);				Scroll(scrollTop, 0);				gActualTask = 0;				// show the up button				CtlShowControl(GetObjectPtr(Btn_Sub_Up));				// update the titlebar				p = TaskGetDescription(gdbP, gParentTask);				SetFormTitle(frm, p);				MemPtrFree(p);				if (TaskGetHasChild(gdbP, gParentTask))				{					gActualTask = gParentTask + 1;					SelectActualTask(true);				}			}			break;		case Btn_Sub_Up:			TblSetItemInt(gTable, 0, 0, gParentTask);			gParentTask = TaskGetFatherIndex(gdbP, gParentTask);			if (!gParentTask)			{				gRefLevel = 0;			}			else			{				gRefLevel = TaskGetLevel(gdbP, gParentTask);			}			//this is done by the next update			//if (gActualTask)			//{				//ProjectTableUpdate();				//SelectActualTask(false);			//}			// if we're at top level			if (!gParentTask)			{				// erase the up button				CtlHideControl(GetObjectPtr(Btn_Sub_Up));				SetFormTitle(frm, gCurrentPrefs.openDBName);			}			else			{				char* p = TaskGetDescription(gdbP, gParentTask);				SetFormTitle(frm, p);				MemPtrFree(p);			}			break;		case Btn_Done:			FrmGotoForm(FrmProjectList);			CloseDB(gdbP);			gActualTask = gLastSelected = gRefLevel = gParentTask = 0;			break;		case Btn_Main_Hierarchical:			break;		case Btn_Main_Flat:			FrmGotoForm(FrmFlat);			break;		default:			break;	}	FrmUpdateForm(FrmMain, frmRedrawUpdateCode);	return true;} // Boolean FrmMainCtlSelectHandleEvent(EventPtr e)Boolean FrmMainKeyDownHandleEvent(EventPtr e){	Boolean handled = false;	switch (e->data.keyDown.chr)	{		case vchrPageDown:			Scroll(scrollDown, 5);			FrmUpdateForm(FrmMain, frmRedrawUpdateCode);			handled = true;			break;		case vchrPageUp:			Scroll(scrollUp, 5);			FrmUpdateForm(FrmMain, frmRedrawUpdateCode);			handled = true;			break;		case chrSpace:			TaskToRight(gdbP, gActualTask);			FrmUpdateForm(FrmMain, frmRedrawUpdateCode);			handled = true;			break;		case chrBackspace:			TaskToLeft(gdbP, gActualTask);			SelectActualTask(true);			FrmUpdateForm(FrmMain, frmRedrawUpdateCode);			handled = true;			break;		case chrLeftArrow:			if (gActualTask)			{				TaskUp(gdbP, gActualTask);				SelectActualTask(true);				FrmUpdateForm(FrmMain, frmRedrawUpdateCode);			}			handled = true;			break;		case chrRightArrow:			if (gActualTask)			{				TaskDown(gdbP, gActualTask);				SelectActualTask(true);				FrmUpdateForm(FrmMain, frmRedrawUpdateCode);			}			handled = true;			break;		case chrUpArrow:		case vchrPrevField: // handera support			if (gActualTask > gParentTask + 1)			{				UInt16 prev = gActualTask - 1;				while (prev > gParentTask && !TaskIsVisible(gdbP, prev))					prev--;				if (prev > gParentTask)				{					gActualTask = prev;					SelectActualTask(true);					FrmUpdateForm(FrmMain, frmRedrawUpdateCode);				}			}			handled = true;			break;		case chrDownArrow:		case vchrNextField: // handera support			if ((gActualTask + 1 < PgNumRecords(gdbP)) &&				TaskGetLevel(gdbP, gActualTask + 1) > gRefLevel)			{				UInt16 next = gActualTask + 1, numRec = PgNumRecords(gdbP);				while (next < numRec && !TaskIsVisible(gdbP, next))					next++;				if (next < numRec)				{					gActualTask = next;					SelectActualTask(true);					FrmUpdateForm(FrmMain, frmRedrawUpdateCode);				}			}			handled = true;			break;//		case vchrHard3://			FrmGotoForm(FrmFlat);//			break;		case chrPlusSign:			if (gActualTask)			{				TaskSetOpened(gdbP, gActualTask, true);				FrmUpdateForm(FrmMain, frmRedrawUpdateCode);			}			handled = true;			break;		case chrHyphenMinus:			if (gActualTask && TaskGetHasChild(gdbP, gActualTask))			{				TaskSetOpened(gdbP, gActualTask, false);				FrmUpdateForm(FrmMain, frmRedrawUpdateCode);			}			handled = true;			break;		default:			// keydown is tab or return, create a new subtask 			// (space is treated already)			if (TxtGlueCharIsSpace(e->data.keyDown.chr))			{				if (gActua

⌨️ 快捷键说明

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