BOOL NextBar::OCommand(ULONG msg, MPARAM mp1, MPARAM mp2) { switch(msg) { case WM_CREATE: if (setup.floating) floatTimer.setNotify(hwnd).start(); break; case WM_TOOLBAR_RESET: resetToolBar(); break; case WM_CFG_CANCELED: { pNextBarEvent actual = (pNextBarEvent) PVOIDFROMMP(mp1); if (actual) events.del(actual); break; } case WM_SAVE_BUTTONS: saveProfile(); resetToolBar(); break; case WM_CONTROL: switch(SHORT1FROMMP(mp1)) { case OBUTTONBAR_MOVEOVER: selectedButton = SHORT2FROMMP(mp1); break; case OBUTTONBAR_BUTTON2DOWN: selectedButton = SHORT2FROMMP(mp1); WinSendMsg(menu, MM_SETITEMATTR, MPFROM2SHORT(NHX_DEL_BUTTON, FALSE), MPFROM2SHORT(MIA_DISABLED, (selectedButton == NHX_MAIN) ? MIA_DISABLED : ~MIA_DISABLED)); WinSendMsg(menu, MM_SETITEMATTR, MPFROM2SHORT(NHX_CFG_BUTTON, FALSE), MPFROM2SHORT(MIA_DISABLED, (selectedButton == NHX_MAIN) ? MIA_DISABLED : ~MIA_DISABLED)); WinPopupMenu(frame, frame, menu, SHORT1FROMMP(mp2), SHORT2FROMMP(mp2), NHX_CFG_BUTTON, PU_NONE | PU_KEYBOARD | PU_MOUSEBUTTON1 | PU_POSITIONONITEM | PU_HCONSTRAIN | PU_VCONSTRAIN); break; } break; case WM_TIMER: if (setup.floating) WinSetWindowPos(WinQueryWindow(hwnd,QW_PARENT), HWND_TOP, 0, 0, 0, 0, SWP_ZORDER); break; case WM_COMMAND: { ULONG command = SHORT1FROMMP(mp1); pNextBarEvent actual = events.getItem(selectedButton - NHX_FIRST_BUTTON); switch(command) { case NHX_MAIN: closeFolders(TRUE); break; case NHX_INFOMNU: { pNextBarInfoDlg dlg = new NextBarInfoDlg; dlg->createDlg(); break; } case NHX_FLOAT: if (setup.floating) { setup.floating = FALSE; floatTimer.stop(); } else { setup.floating = TRUE; floatTimer.setNotify(hwnd).start(); } WinCheckMenuItem(menu, NHX_FLOAT, setup.floating); break; case NHX_QUIT: WinPostMsg(hwnd, WM_CLOSE, NULL, NULL); break; case NHX_MOVE: trackButtons(); break; case NHX_SENKRECHT: setNewStyle(OButtonBar::up2down); break; case NHX_WAAGERECHT: setNewStyle(OButtonBar::left2right); break; case NHX_NORMICONS: setup.large = FALSE; setNewStyle(setup.style); break; case NHX_LARGEICONS: setup.large = TRUE; setNewStyle(setup.style); break; case NHX_ADD_BUTTON: { pNextBarEvent aNew = new NextBarEvent; pNextBarDlg dlg = new NextBarDlg(aNew, NULL, TRUE); events.addAfter(actual, aNew); dlg->createDlg(); break; } case NHX_DEL_BUTTON: events.del(actual); resetToolBar(); break; case NHX_CFG_BUTTON: { pOGraphicsButton button = nxButtons->buttons.getItem(selectedButton - NHX_FIRST_BUTTON + 1); pNextBarDlg dlg = new NextBarDlg(actual, button, FALSE); dlg->createDlg(); break; } case NHX_HELP: helpRequest(PANEL_MAIN); break; default: if (actual) actual->startEvent(); break; } break; } case WM_SIZE: if (nxButtons) WinSetWindowPos(nxButtons->frame, HWND_TOP, 0, 0, (setup.style == OButtonBar::left2right) ? SHORT1FROMMP(mp2) : buttonSize, (setup.style == OButtonBar::left2right) ? buttonSize : SHORT2FROMMP(mp2), SWP_MOVE | SWP_SIZE); break; case WM_CLOSE: WinQueryWindowPos(frame, &setup.position); strcpy(setup.bubbleFont, nxButtons->bubbleHelpWin.pparms.Font); ini->write("NextHand", "NextInfo 1.5", &setup, sizeof(NextInfo)); ini->close(); hideFrame(); OApp::currentOApp->forceQuit(); break; default: return(FALSE); } return(TRUE); }
void QG_CadToolBar::showCadToolBar(RS2::ActionType actionType, bool cleanup){ switch(actionType){ //no op case RS2::ActionFileNew: case RS2::ActionFileNewTemplate: case RS2::ActionFileOpen: case RS2::ActionFileSave: case RS2::ActionFileSaveAs: case RS2::ActionFileExport: case RS2::ActionFileClose: case RS2::ActionFilePrint: case RS2::ActionFilePrintPreview: case RS2::ActionFileQuit: case RS2::ActionPrintPreview: case RS2::ActionEditUndo: case RS2::ActionEditRedo: case RS2::ActionEditCut: case RS2::ActionEditCutNoSelect: case RS2::ActionEditCopy: case RS2::ActionEditCopyNoSelect: case RS2::ActionEditPaste: case RS2::ActionViewStatusBar: case RS2::ActionViewLayerList: case RS2::ActionViewBlockList: case RS2::ActionViewCommandLine: case RS2::ActionViewLibrary: case RS2::ActionViewPenToolbar: case RS2::ActionViewOptionToolbar: case RS2::ActionViewCadToolbar: case RS2::ActionViewFileToolbar: case RS2::ActionViewEditToolbar: case RS2::ActionViewSnapToolbar: case RS2::ActionViewGrid: case RS2::ActionViewDraft: case RS2::ActionZoomIn: case RS2::ActionZoomOut: case RS2::ActionZoomAuto: case RS2::ActionZoomWindow: case RS2::ActionZoomPan: case RS2::ActionZoomRedraw: case RS2::ActionZoomPrevious: case RS2::ActionSelect: case RS2::ActionSelectSingle: case RS2::ActionSelectContour: case RS2::ActionSelectWindow: case RS2::ActionDeselectWindow: case RS2::ActionSelectAll: case RS2::ActionDeselectAll: case RS2::ActionSelectIntersected: case RS2::ActionDeselectIntersected: case RS2::ActionSelectInvert: case RS2::ActionSelectLayer: case RS2::ActionSelectDouble: case RS2::ActionDrawHatch: case RS2::ActionDrawHatchNoSelect: case RS2::ActionEditKillAllActions: case RS2::ActionSnapFree: case RS2::ActionSnapGrid: case RS2::ActionSnapEndpoint: case RS2::ActionSnapOnEntity: case RS2::ActionSnapCenter: case RS2::ActionSnapMiddle: case RS2::ActionSnapDist: case RS2::ActionSnapIntersection: case RS2::ActionSnapIntersectionManual: case RS2::ActionRestrictNothing: case RS2::ActionRestrictOrthogonal: case RS2::ActionRestrictHorizontal: case RS2::ActionRestrictVertical: case RS2::ActionSetRelativeZero: case RS2::ActionLockRelativeZero: case RS2::ActionUnlockRelativeZero: case RS2::ActionLayersDefreezeAll: case RS2::ActionLayersFreezeAll: case RS2::ActionLayersAdd: case RS2::ActionLayersRemove: case RS2::ActionLayersEdit: case RS2::ActionLayersToggleView: case RS2::ActionLayersToggleLock: case RS2::ActionLayersTogglePrint: case RS2::ActionBlocksDefreezeAll: case RS2::ActionBlocksFreezeAll: case RS2::ActionBlocksAdd: case RS2::ActionBlocksRemove: case RS2::ActionBlocksAttributes: case RS2::ActionBlocksEdit: case RS2::ActionBlocksInsert: case RS2::ActionBlocksToggleView: case RS2::ActionBlocksCreate: case RS2::ActionBlocksCreateNoSelect: case RS2::ActionBlocksExplode: case RS2::ActionBlocksExplodeNoSelect: case RS2::ActionModifyExplodeText: default: return; //default action resets toolbar, issue#295 case RS2::ActionDefault: resetToolBar(); break; case RS2::ActionDrawImage: case RS2::ActionDrawPoint: case RS2::ActionDrawSpline: case RS2::ActionDrawMText: showToolBar(RS2::ToolBarMain, false); if(tbMain != NULL){ tbMain->showCadToolBar(actionType); } break; case RS2::ActionDrawArc: case RS2::ActionDrawArc3P: case RS2::ActionDrawArcParallel: case RS2::ActionDrawArcTangential: showToolBar(RS2::ToolBarArcs, false); if(tbArcs != NULL){ tbArcs->showCadToolBar(actionType); } break; case RS2::ActionDrawCircle: case RS2::ActionDrawCircle2P: case RS2::ActionDrawCircle3P: case RS2::ActionDrawCircleCR: case RS2::ActionDrawCircleParallel: case RS2::ActionDrawCircleInscribe: case RS2::ActionDrawCircleTan2: case RS2::ActionDrawCircleTan2_1P: case RS2::ActionDrawCircleTan1_2P: showToolBar(RS2::ToolBarCircles, false); if(tbCircles != NULL){ tbCircles->showCadToolBar(actionType); } break; case RS2::ActionDrawEllipseArcAxis: case RS2::ActionDrawEllipseAxis: case RS2::ActionDrawEllipseFociPoint: case RS2::ActionDrawEllipse4Points: case RS2::ActionDrawEllipseCenter3Points: case RS2::ActionDrawEllipseInscribe: showToolBar(RS2::ToolBarEllipses, false); if(tbEllipses != NULL){ tbEllipses->showCadToolBar(actionType); } break; case RS2::ActionDrawLine: case RS2::ActionDrawLineAngle: case RS2::ActionDrawLineBisector: case RS2::ActionDrawLineFree: case RS2::ActionDrawLineHorVert: case RS2::ActionDrawLineHorizontal: case RS2::ActionDrawLineOrthogonal: case RS2::ActionDrawLineOrthTan: case RS2::ActionDrawLineParallel: case RS2::ActionDrawLineParallelThrough: case RS2::ActionDrawLinePolygonCenCor: case RS2::ActionDrawLinePolygonCorCor: case RS2::ActionDrawLineRectangle: case RS2::ActionDrawLineRelAngle: case RS2::ActionDrawLineTangent1: case RS2::ActionDrawLineTangent2: case RS2::ActionDrawLineVertical: showToolBar(RS2::ToolBarLines, false); if(tbLines != NULL){ tbLines->showCadToolBar(actionType); } break; case RS2::ActionDrawPolyline: case RS2::ActionPolylineAdd: case RS2::ActionPolylineAppend: case RS2::ActionPolylineDel: case RS2::ActionPolylineDelBetween: case RS2::ActionPolylineTrim: case RS2::ActionPolylineEquidistant: case RS2::ActionPolylineSegment: showToolBar(RS2::ToolBarPolylines, false); if(tbPolylines != NULL){ tbPolylines->showCadToolBar(actionType); } break; case RS2::ActionDimAligned: case RS2::ActionDimLinear: case RS2::ActionDimLinearVer: case RS2::ActionDimLinearHor: case RS2::ActionDimRadial: case RS2::ActionDimDiametric: case RS2::ActionDimAngular: case RS2::ActionDimLeader: showToolBar(RS2::ToolBarDim, false); if(tbDim != NULL){ tbDim->showCadToolBar(actionType); } break; case RS2::ActionModifyAttributes: case RS2::ActionModifyAttributesNoSelect: case RS2::ActionModifyDelete: case RS2::ActionModifyDeleteNoSelect: case RS2::ActionModifyDeleteQuick: case RS2::ActionModifyDeleteFree: case RS2::ActionModifyMove: case RS2::ActionModifyMoveNoSelect: case RS2::ActionModifyRotate: case RS2::ActionModifyRotateNoSelect: case RS2::ActionModifyScale: case RS2::ActionModifyScaleNoSelect: case RS2::ActionModifyMirror: case RS2::ActionModifyMirrorNoSelect: case RS2::ActionModifyMoveRotate: case RS2::ActionModifyMoveRotateNoSelect: case RS2::ActionModifyRotate2: case RS2::ActionModifyRotate2NoSelect: case RS2::ActionModifyEntity: case RS2::ActionModifyTrim: case RS2::ActionModifyTrim2: case RS2::ActionModifyTrimAmount: case RS2::ActionModifyCut: case RS2::ActionModifyStretch: case RS2::ActionModifyBevel: case RS2::ActionModifyRound: case RS2::ActionModifyOffset: case RS2::ActionModifyOffsetNoSelect: case RS2::ActionModifyRevertDirection: case RS2::ActionModifyRevertDirectionNoSelect: showToolBar(RS2::ToolBarModify, false); if(tbModify != NULL){ tbModify->showCadToolBar(actionType); } break; case RS2::ActionInfoInside: case RS2::ActionInfoDist: case RS2::ActionInfoDist2: case RS2::ActionInfoAngle: case RS2::ActionInfoTotalLength: case RS2::ActionInfoTotalLengthNoSelect: case RS2::ActionInfoArea: showToolBar(RS2::ToolBarInfo, false); if(tbInfo != NULL){ tbInfo->showCadToolBar(actionType); } break; } if(cleanup){ if(actionHandler != NULL) { RS_ActionInterface* currentAction =actionHandler->getCurrentAction(); if(currentAction != NULL) { currentAction->finish(false); //finish the action, but do not update toolBar } } } }