📄 calltoda.c
字号:
setAndDrawFields( param ); handled = true; break; case mainButtonPPushButton: if( event->data.ctlSelect.on ) { if( param->mode == pagerLabel ) param->modeNum ++; else param->modeNum = -1; param->mode = pagerLabel; } else { param->mode = 0; } setAndDrawFields( param ); handled = true; break; case mainButtonFPushButton: if( event->data.ctlSelect.on ) { if( param->mode == faxLabel ) param->modeNum ++; else param->modeNum = -1; param->mode = faxLabel; } else { param->mode = 0; } setAndDrawFields( param ); handled = true; break; case mainButtonEPushButton: if( event->data.ctlSelect.on ) { if( param->mode == emailLabel ) param->modeNum ++; else param->modeNum = -1; param->mode = emailLabel; } else { param->mode = 0; } setAndDrawFields( param ); handled = true; break; default: break; } break; case popSelectEvent: switch ( event->data.popSelect.controlID ) { case mainSelectApplPopTrigger: param->p.launchAppl = event->data.popSelect.selection; setAndDrawFields( param ); handled = true; break; case mainSelectInsertStringsTrigger: param->p.insertStrings = event->data.popSelect.selection; setCompanyTitleFlags( param ); setAndDrawFields( param ); handled = true; break; default: break; } break; case menuEvent: switch (event->data.menu.itemID) { case EditCopy: CopyClipboard( param ); handled = true; break; case EditInsertLaunchAddress: param->insert = true; param->launchAddrAppl = true; done= true; handled = true; break; case EditLaunchAddress: param->launchAddrAppl = true; done= true; handled = true; break; default: break; } break; case keyDownEvent: if (chrIsHardKey(event->data.keyDown.chr)) { /* maybe 'HotSync!' button pressed ? */ EvtAddEventToQueue(event); done = true; handled = true; break; } switch( event->data.keyDown.chr ) { case pageUpChr: if( param->optionControl != MAIN_FORM ) { SndPlaySystemSound( sndWarning ); break; } if( param->index > 0 ) { param->index --; } else { SndPlaySystemSound( sndWarning ); } param->mode = param->modeNum = -1; /* this enables DA to drag, both on OS 3.5+ and the OS before */ WinSetDrawWindow(&(form->window)); setAndDrawFields( param ); handled = true; break; case pageDownChr: if( param->optionControl != MAIN_FORM ) { SndPlaySystemSound( sndWarning ); break; } if( param->index + 1 < param->indexNum ) { param->index ++; } else { SndPlaySystemSound( sndWarning ); } param->mode = param->modeNum = -1; /* this enables DA to drag, both on OS 3.5+ and the OS before */ WinSetDrawWindow(&(form->window)); setAndDrawFields( param ); handled = true; break; default: break; } break; /* Following implements 'Draggable' feature */ case penDownEvent:// case frmTitleEnterEvent: if (IsInside(&form->window.windowBounds, event->screenX, event->screenY)) { /* Start Drag */ param->fromX = event->screenX + form->window.windowBounds.topLeft.x; param->fromY = event->screenY + form->window.windowBounds.topLeft.y; param->moving = true; FrmEraseForm(form); /* this enables DA to drag, both on OS 3.5+ and the OS before */ WinSetDrawWindow(param->rootWindow); /* Draw only frame as dragging */ ExorFrame(param->p.lastX, param->p.lastY); handled = true; } else if (IsOutside(&form->window.windowBounds, event->screenX, event->screenY)) { /* Pen tapped on Outside of form -- quit */ done = true; handled = true; } break; case penMoveEvent: if (param->moving) { form = FrmGetActiveForm(); moveX = event->screenX - param->fromX; moveY = event->screenY - param->fromY; /* Erase previous frame */ ExorFrame(param->p.lastX, param->p.lastY); /* Compute new form position */ if (moveX < FrameWidth - param->p.lastX) { moveX = FrameWidth - param->p.lastX; } else if (moveX + mainFormWidth + FrameWidth > hwrDisplayWidth - param->p.lastX) { moveX = hwrDisplayWidth - param->p.lastX - mainFormWidth - FrameWidth; } if (moveY < FrameWidth - param->p.lastY) { moveY = FrameWidth - param->p.lastY; } else if (moveY + mainFormHeight + FrameWidth > hwrDisplayHeight - param->p.lastY) { moveY = hwrDisplayHeight - param->p.lastY - mainFormHeight - FrameWidth; } /* Draw new frame */ param->p.lastX += moveX; param->p.lastY += moveY; param->fromX = event->screenX; param->fromY = event->screenY; ExorFrame(param->p.lastX, param->p.lastY); handled = true; } break; case penUpEvent: form = FrmGetActiveForm(); if (param->moving) { /* Erase last frame */ ExorFrame(param->p.lastX, param->p.lastY); /* Save last position into preference */// param->p.lastX = form->window.windowBounds.topLeft.x;// param->p.lastY = form->window.windowBounds.topLeft.y; param->moving = false; /* Redraw the form at the new position */ form->window.windowBounds.topLeft.x = param->p.lastX; form->window.windowBounds.topLeft.y = param->p.lastY; /* this enables DA to drag, both on OS 3.5+ and the OS before */// WinSetDrawWindow(&(form->window)); FrmDrawForm(form); setAndDrawFields( param ); handled = true; } break; default: break; } return done;}static Boolean IsInside(RectanglePtr r, SWord x, SWord y){ return (0 <= x && x <= r->extent.x && 0 <= y && y <= r->extent.y);}static Boolean IsOutside(RectanglePtr r, SWord x, SWord y){ return (!IsInside(r, x, y));}static void ExorFrame(Word topLeftX, Word topLeftY){ RectangleType r; r.topLeft.x = topLeftX + 2; r.topLeft.y = topLeftY + 2; r.extent.x = mainFormWidth - 4; r.extent.y = mainFormHeight - 4; WinInvertRectangleFrame(boldRoundFrame, &r);}static void switchFormBitmaps( FormPtr form, Word show ){ FormObjListType *obj_p; Word num; for( num = 0 ; num < form->numObjects ; num ++ ) { obj_p = form->objects + num; if( obj_p->objectType == frmBitmapObj && obj_p->object.bitmap->rscID == mainUnnamed1016BitMap ) { obj_p->object.bitmap->attr.usable = show; } } return;}static void formSetHelpResource( FormPtr form, Word helpID ){ form->helpRscId = helpID; return;}static void showObject( FormPtr form, Word objectID ){ FrmShowObject( form, FrmGetObjectIndex(form, objectID) ); return;}static void hideObject( FormPtr form, Word objectID ){ FrmHideObject( form, FrmGetObjectIndex(form, objectID) ); return;}static void showMoreOptionControls( FormPtr form ){ Word num; Word h_array[] = {// mainButtonGoButton, mainButtonInsertButton, mainButtonDownButton, mainButtonUpButton, mainButtonDoneButton, mainButtonOptionButton, mainFIeldNameField, mainFieldNumberField, mainButtonOPushButton, mainButtonWPushButton, mainButtonHPushButton, mainButtonMoPushButton, mainButtonPPushButton, mainButtonFPushButton, mainButtonEPushButton, mainButtonMaPushButton, mainNameFormat0PushButton, mainNameFormat1PushButton, mainNameFormat2PushButton, mainNameFormat3PushButton, mainPasteTypeCheckbox,// mainJapaneseCheckbox, mainFormatLabelLabel, mainMoreButton,// mainPasteCompanyCheckbox,// mainPasteTitleCheckbox, mainSelectApplPopTrigger, mainSelectApplLabelLabel, mainSelectInsertStringsLabel, mainSelectInsertStringsTrigger, -1 }; Word s_array[] = { mainButtonOKButton, mainAgainButton,// mainAltStrstriCheckbox, mainIgnoreCaseCheckbox, mainFindNameCompanyCheckbox, mainFindPhonesCheckbox, mainFindAddressCheckbox, mainFindCustomsCheckbox, mainFindNoteCheckbox, mainLangLabelLabel, mainLangUSPushButton, mainLangJPPushButton, mainLangEUPushButton, -1 }; // Hide all of Main Control objects num = 0; while( h_array[num] != -1 ) { hideObject( form, h_array[num ++] ); } //switchFormBitmaps( form, 0 ); //FrmEraseForm( form ); //FrmDrawForm( form ); // Show all of Option Control objects num = 0; while( s_array[num] != -1 ) { showObject( form, s_array[num ++] ); } FrmSetTitle( form, moreOptionFormTitle ); return;}static void showOptionControls( FormPtr form, Param *param ){ Word num; Word h_array[] = {// mainButtonGoButton, mainButtonInsertButton, mainButtonDownButton, mainButtonUpButton, mainButtonDoneButton, mainButtonOptionButton, mainAgainButton, mainFIeldNameField, mainFieldNumberField, mainButtonOPushButton, mainButtonWPushButton, mainButtonHPushButton, mainButtonMoPushButton, mainButtonPPushButton, mainButtonFPushButton, mainButtonEPushButton, mainButtonMaPushButton,// mainAltStrstriCheckbox, mainIgnoreCaseCheckbox, mainFindNameCompanyCheckbox, mainFindPhonesCheckbox, mainFindAddressCheckbox, mainFindCustomsCheckbox, mainFindNoteCheckbox, mainLangLabelLabel, mainLangUSPushButton, mainLangJPPushButton, mainLangEUPushButton, mainPasteCompanyCheckbox, mainPasteTitleCheckbox, -1 }; Word s_array[] = { mainNameFormat0PushButton, mainNameFormat1PushButton, mainNameFormat2PushButton, mainNameFormat3PushButton, mainButtonOKButton, mainMoreButton, mainPasteTypeCheckbox,// mainJapaneseCheckbox,// mainPasteCompanyCheckbox,// mainPasteTitleCheckbox, mainFormatLabelLabel, mainSelectApplPopTrigger, mainSelectApplLabelLabel, mainSelectInsertStringsLabel, mainSelectInsertStringsTrigger, -1 }; // Hide all of Main Control objects num = 0; while( h_array[num] != -1 ) { hideObject( form, h_array[num ++] ); } num = 0;/* if( ! param->p.includeLastname ) { num = 2; hideObject( form, mainCheckbox_swapCheckbox ); hideObject( form, mainNoCommaCheckbox ); } else if( ! param->p.swapFirstLast ) { num = 1; hideObject( form, mainNoCommaCheckbox ); }*/ switchFormBitmaps( form, 0 ); FrmEraseForm( form ); FrmDrawForm( form ); // Show all of Option Control objects while( s_array[num] != -1 ) { showObject( form, s_array[num ++] ); } FrmSetTitle( form, optionFormTitle ); return;}static void showMainControls( FormPtr form, Param *param ){ Word num; Word h_array[] = { mainButtonOKButton, mainNameFormat0PushButton, mainNameFormat1PushButton, mainNameFormat2PushButton, mainNameFormat3PushButton, mainPasteTypeCheckbox,// mainAltStrstriCheckbox,// mainJapaneseCheckbox, mainFormatLabelLabel, mainIgnoreCaseCheckbox, mainMoreButton, mainAgainButton, mainFindNameCompanyCheckbox, mainFindPhonesCheckbox, mainFindAddressCheckbox, mainFindCustomsCheckbox, mainFindNoteCheckbox, mainLangLabelLabel, mainLangUSPushButton, mainLangJPPushButton, mainLangEUPushButton, mainSelectApplPopTrigger, mainSelectApplLabelLabel, mainSelectInsertStringsLabel, mainSelectInsertStringsTrigger, -1 }; Word s_array[] = { mainButtonInsertButton, mainButtonDownButton, mainButtonUpButton, mainButtonDoneButton, mainButtonOptionButton, mainFIeldNameField, mainFieldNumberField,// mainButtonGoButton, mainPasteCompanyCheckbox, mainPasteTitleCheckbox, -1 }; // Hide all of Option Control objects num = 0; while( h_array[num] != -1 ) { hideObject( form, h_array[num ++] ); } num = 0; if( param->disableInsert ) { hideObject( form, mainButtonInsertButton ); num = 1; } // Show all of Main Control objects switchFormBitmaps( form, 1 ); FrmEraseForm( form ); FrmDrawForm( form ); while( s_array[num] != -1 ) { showObject( form, s_array[num ++] ); } showCtrlButtons( param, form ); FrmSetTitle( form, mainFormTitle ); return;}static void setCompanyTitleFlags( Param *param ){ unsigned char flags[] = { BITS_INSERT_NAME, BITS_INSERT_NUMBER, BITS_INSERT_NAME_NUMBER, BITS_INSERT_NAME_COMPANY,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -