static void PrintUpdate( int inx0 ) /* * Called when print page size (x or y) is changed. * Checks for valid values */ { int inx; DrawPrintGrid(); ParamLoadData( &printPG ); if (newPrintGrid.size.x > maxPageSize.x+0.01 || newPrintGrid.size.y > maxPageSize.y+0.01) { NoticeMessage( MSG_PRINT_MAX_SIZE, _("Ok"), NULL, FormatSmallDistance(maxPageSize.x), FormatSmallDistance(maxPageSize.y) ); } if (newPrintGrid.size.x > maxPageSize.x) { newPrintGrid.size.x = maxPageSize.x; ParamLoadControl( &printPG, 1 ); } if (newPrintGrid.size.y > maxPageSize.y) { newPrintGrid.size.y = maxPageSize.y; ParamLoadControl( &printPG, 3 ); } currPrintGrid = newPrintGrid; for ( inx = 0; inx < sizeof printPLs/sizeof printPLs[0]; inx++ ) { if ( inx != inx0 && printPLs[inx].context == (void*)2 ) ParamLoadControl( &printPG, inx ); } ChangeDim(); DrawPrintGrid(); }
static void DoResetGrid( void ) { DrawPrintGrid(); currPrintGrid.orig = zero; currPrintGrid.angle = 0.0; ChangeDim(); newPrintGrid = currPrintGrid; ParamLoadControls( &printPG ); DrawPrintGrid(); }
static void PrintGridRotate( void * pangle ) { ANGLE_T angle = (ANGLE_T)(long)pangle; DrawPrintGrid(); currPrintGrid.orig = cmdMenuPos; currPrintGrid.angle += angle; newPrintGrid = currPrintGrid; ParamLoadControls( &printPG ); ChangeDim(); DrawPrintGrid(); }
static void PrintSetOrient( void ) /* * Called when print landscape/portrait toggled */ { DrawPrintGrid(); ParamLoadData( &printPG ); currPrintGrid = newPrintGrid; ChangeDim(); DrawPrintGrid(); }
static void PrintMaxPageSize( void ) /* * Called when print:maxPageSize button is clicked. * Set print page size to maximum * (depending on paper size, scale and orientation) */ { DrawPrintGrid(); SetPageSize( TRUE ); currPrintGrid.size = maxPageSize; newPrintGrid = currPrintGrid; ParamLoadControls( &printPG ); ChangeDim(); DrawPrintGrid(); wShow( printWin); }
// Exec_DataSetCmd::Execute() Exec::RetType Exec_DataSetCmd::Execute(CpptrajState& State, ArgList& argIn) { RetType err = CpptrajState::OK; if (argIn.Contains("legend")) { // Set legend for one data set std::string legend = argIn.GetStringKey("legend"); DataSet* ds = State.DSL().GetDataSet( argIn.GetStringNext() ); if (ds == 0) return CpptrajState::ERR; mprintf("\tChanging legend '%s' to '%s'\n", ds->legend(), legend.c_str()); ds->SetLegend( legend ); // --------------------------------------------- } else if (argIn.hasKey("outformat")) { // Change double precision set output format err = ChangeOutputFormat(State, argIn); // --------------------------------------------- } else if (argIn.hasKey("remove")) { // Remove data sets by various criteria err = Remove(State, argIn); // --------------------------------------------- } else if (argIn.hasKey("makexy")) { // Combine values from two sets into 1 err = MakeXY(State, argIn); // --------------------------------------------- } else if (argIn.hasKey("make2d")) { // Create 2D matrix from 1D set err = Make2D(State, argIn); // --------------------------------------------- } else if (argIn.hasKey("vectorcoord")) { // Extract vector X/Y/Z coord as new set err = VectorCoord(State, argIn); // --------------------------------------------- } else if (argIn.hasKey("filter")) { // Filter points in data set to make new data set err = Filter(State, argIn); // --------------------------------------------- } else if (argIn.hasKey("cat")) { // Concatenate two or more data sets err = Concatenate(State, argIn); // --------------------------------------------- } else if (argIn.hasKey("droppoints")) { // Drop points from set err = ModifyPoints(State, argIn, true); // --------------------------------------------- } else if (argIn.hasKey("keeppoints")) { // Keep points in set err = ModifyPoints(State, argIn, false); // --------------------------------------------- } else if (argIn.hasKey("dim")) { // Modify dimension of set(s) err = ChangeDim(State, argIn); // --------------------------------------------- } else if (argIn.hasKey("invert")) { // Invert set(s) X/Y, create new sets err = InvertSets(State, argIn); // --------------------------------------------- } else { // Default: change mode/type for one or more sets. err = ChangeModeType(State, argIn); } return err; }
static void PrintSnapShot( void ) /* * Called when print:SnapShot button is clicked. * Set scale and orientation so the whole layout is printed on one page. */ { coOrd size; ANGLE_T scaleX, scaleY; long scaleH, scaleV; int i; coOrd pageSize; POS_T t; PrintClear(); DrawPrintGrid(); SetPageSize( FALSE ); pageSize = realPageSize; if (pageSize.x > pageSize.y) { t = pageSize.x; pageSize.x = pageSize.y; pageSize.y = t; } size = mapD.size; scaleH = 1; for (i=0;i<3;i++) { size = mapD.size; size.x += 0.75*scaleH; size.y += 0.75*scaleH; if (printGaudy) size.y += 1.0*scaleH; scaleX = size.x/pageSize.x; scaleY = size.y/pageSize.y; scaleH = (long)ceil(max( scaleX, scaleY )); } scaleV = 1; for (i=0;i<3;i++) { size = mapD.size; size.x += 0.75*scaleV; size.y += 0.75*scaleV; if (printGaudy) size.y += 1.0*scaleV; scaleX = size.x/pageSize.y; scaleY = size.y/pageSize.x; scaleV = (long)ceil(max( scaleX, scaleY )); } if ( scaleH <= scaleV ) { printScale = scaleH; printFormat = PORTRAIT; } else { printScale = scaleV; printFormat = LANDSCAPE; } SetPageSize( TRUE ); /* if (printFormat == LANDSCAPE) { currPrintGrid.orig.x = -0.5*printScale; currPrintGrid.orig.y = maxPageSize.x-0.5*printScale; currPrintGrid.angle = 90.0; } else {*/ currPrintGrid.orig.x = -0.5*printScale; currPrintGrid.orig.y = -0.5*printScale; currPrintGrid.angle = 0.0; /* }*/ currPrintGrid.size = maxPageSize; newPrintGrid = currPrintGrid; iPrintScale = (long)printScale; ParamLoadControls( &printPG ); ParamGroupRecord( &printPG ); ChangeDim(); pageCount = 1; BITMAP(bm,0,0) = TRUE; DrawPrintGrid(); ParamLoadMessage( &printPG, I_PAGECNT, _("1 page") ); ParamDialogOkActive( &printPG, TRUE ); PrintEnableControls(); wShow( printWin ); }
static STATUS_T CmdPrint( wAction_t action, coOrd pos ) /* * Print command: * * 3 Sub-states: * Select - grid coordinates are computed and the selected page is marked. * Move - grid base (currPrintGrid.orig) is moved. * Rotate - grid base and angle is rotated about selected point. */ { STATUS_T rc = C_CONTINUE; static BOOL_T downShift; switch (action) { case C_START: if (!wPrintInit()) return C_TERMINATE; printScale = iPrintScale; if (printWin == NULL) { rminScale_999.low = 1; if (printScale < rminScale_999.low) printScale = rminScale_999.low; print_d.scale = printScale; printWin = ParamCreateDialog( &printPG, MakeWindowTitle(_("Print")), _("Print"), DoPrintPrint, (paramActionCancelProc)Reset, TRUE, NULL, 0, PrintDlgUpdate ); } wShow( printWin ); SetPageSize( TRUE ); if (currPrintGrid.size.x == 0.0) { currPrintGrid.size.x = maxPageSize.x; currPrintGrid.size.y = maxPageSize.y; } if (currPrintGrid.size.x >= maxPageSize.x) currPrintGrid.size.x = maxPageSize.x; if (currPrintGrid.size.y >= maxPageSize.y) currPrintGrid.size.y = maxPageSize.y; newPrintGrid = currPrintGrid; ParamLoadControls( &printPG ); DrawPrintGrid(); pageCount = 0; LOG( log_print, 2, ( "Page size = %0.3f %0.3f\n", currPrintGrid.size.x, currPrintGrid.size.y ) ) PrintChange( CHANGE_MAP|CHANGE_UNITS ); ParamGroupRecord( &printPG ); ParamLoadMessage( &printPG, I_PAGECNT, "0 pages" ); ParamDialogOkActive( &printPG, FALSE ); ChangeDim(); InfoMessage( _("Select pages to print, or drag to move print grid") ); downShift = FALSE; ParamControlActive( &printPG, I_RULER, currPrintGrid.angle == 0 ); return C_CONTINUE; case C_DOWN: downShift = FALSE; if (MyGetKeyState()&WKEY_SHIFT) { newPrintGrid = currPrintGrid; rc = GridAction( C_DOWN, pos, &newPrintGrid.orig, &newPrintGrid.angle ); downShift = TRUE; } return C_CONTINUE; case C_MOVE: if (downShift) { rc = GridAction( action, pos, &newPrintGrid.orig, &newPrintGrid.angle ); ParamLoadControls( &printPG ); } return C_CONTINUE; case C_UP: if (downShift) { rc = GridAction( action, pos, &newPrintGrid.orig, &newPrintGrid.angle ); ParamLoadControls( &printPG ); DrawPrintGrid(); currPrintGrid = newPrintGrid; ChangeDim(); DrawPrintGrid(); downShift = FALSE; } return C_CONTINUE; case C_LCLICK: SelectPage( pos ); return C_CONTINUE; case C_RDOWN: downShift = FALSE; if (MyGetKeyState()&WKEY_SHIFT) { newPrintGrid = currPrintGrid; rc = GridAction( action, pos, &newPrintGrid.orig, &newPrintGrid.angle ); downShift = TRUE; } return rc; case C_RMOVE: if (downShift) { rc = GridAction( action, pos, &newPrintGrid.orig, &newPrintGrid.angle ); ParamLoadControls( &printPG ); } return rc; case C_RUP: if (downShift) { rc = GridAction( action, pos, &newPrintGrid.orig, &newPrintGrid.angle ); ParamLoadControls( &printPG ); DrawPrintGrid(); currPrintGrid = newPrintGrid; ChangeDim(); DrawPrintGrid(); downShift = FALSE; ParamControlActive( &printPG, I_RULER, currPrintGrid.angle == 0 ); } return rc; case C_REDRAW: DrawPrintGrid(); return C_TERMINATE; case C_CANCEL: if (printWin == NULL) return C_TERMINATE; PrintClear(); DrawPrintGrid(); wHide( printWin ); return C_TERMINATE; case C_OK: DoPrintPrint( NULL ); return C_TERMINATE; case C_CMDMENU: wMenuPopupShow( printGridPopupM ); return C_CONTINUE; default: return C_CONTINUE; } }