📄 .#progect.c.1.81
字号:
* Parm : * Out : * Auth : burgbach, 19.10.2000 * Mod : rw, 30.12.2000 * updated signature of TaskSetToDoStatus * Mod : lb, 2001-09-06 * adapt to 0.23 db format ***************************************************************************/void ProgressHandleEvent(void){ // only for leaves // not for directlink types TaskFormatType format; if (!gActualTask) return; format = TaskGetFormat(gdbP, gActualTask); if (format.itemType == actionType) { TaskSetCompleted(gdbP, gActualTask, TaskGetCompleted(gdbP, gActualTask) == ACTION_DONE ? ACTION_NOT_DONE : ACTION_DONE, true); if (format.hasToDo) { TaskSetToDoStatus(gdbP, gActualTask, toDoComplete, TaskGetCompleted(gdbP, gActualTask), 0, gNoDate, 0); // record completion date (always for ToDo linked tasks) if (TaskGetIsDone(gdbP, gActualTask)) TaskSetToDoStatus(gdbP, gActualTask, toDoDueDate, 0, 0, Today(), 0); } } else if (!TaskGetHasChild(gdbP, gActualTask) && (format.itemType == progressType)) { Int16 TInt16; ListPtr listP = GetObjectPtr(Lst_Percent); LstSetSelection(listP, TaskGetCompleted(gdbP, gActualTask)); TInt16 = LstPopupList(listP); if (TInt16 != -1) { TaskSetCompleted(gdbP, gActualTask, TInt16, true); } } else return; // record completion date if (TaskGetIsDone(gdbP, gActualTask) && gProjectPrefs.completionDate) TaskSetDueDate(gdbP, gActualTask, Today()); // update fathers if (TaskGetLevel(gdbP, gActualTask) > 1) { TaskCalcCompleted(gdbP, TaskGetFatherIndex(gdbP, gActualTask)); } FrmUpdateForm(FrmGetActiveFormID(), frmRedrawUpdateCode);}/**************************************************************************** * Name : PriorityHandleEvent * Desc : update the priority of the actualtask * Parm : * Out : * Auth : burgbach, 19.10.2000 ***************************************************************************/void PriorityHandleEvent(EventPtr e){ Coord lx, ly; // edit it in place Int16 TInt16; ListPtr listP = GetObjectPtr(Lst_Priority); TaskFormatType format; format = TaskGetFormat(gdbP, gActualTask); if (format.itemType == linkType) { return; } // init lx and ly depending on the active form if (FrmGetActiveFormID() == FrmFlat) { lx = 25; ly = 15 + e->data.tblSelect.row * 11; } else { lx = 4 + (1 + TaskGetLevel(gdbP, gActualTask) - gRefLevel) * 11; if (TaskGetType(gdbP, gActualTask) == informativeType) lx -= 11; ly = 15 + e->data.tblSelect.row * 11; } LstSetSelection(listP, TaskGetPriority(gdbP, gActualTask) - 1); ly -= (TaskGetPriority(gdbP, gActualTask) - 1) * 11; // don't get out the screen ly = ly < 1 ? 1 : ly; ly = ly > 103 ? 103 : ly; LstSetPosition(listP, lx, ly); TInt16 = LstPopupList(listP); if (TInt16 != -1) { TaskSetPriority(gdbP, gActualTask, TInt16 + 1); FrmUpdateForm(FrmGetActiveFormID(), frmRedrawUpdateCode); } if (TaskGetFormat(gdbP, gActualTask).hasToDo) { TaskSetToDoStatus(gdbP, gActualTask, toDoPriority, 0, TaskGetPriority(gdbP, gActualTask), 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: FrmPopupForm(FrmProjectProperties); 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);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -