📄 progect.c
字号:
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 + -