void Selection::transform(QTransform transform, int pageNum) { m_selectionPolygon = transform.map(m_selectionPolygon); qreal sx = transform.m11(); qreal sy = transform.m22(); qreal s = (sx + sy) / 2.0; for (int i = 0; i < m_strokes.size(); ++i) { m_strokes[i].points = transform.map(m_strokes[i].points); /* 'if (!transform.isRotating())' doesn't work, since rotation of 180 and 360 degrees is treated as a scaling transformation. Same goes for 'if (transform.isScaling())' */ if (transform.determinant() != 1) { m_strokes[i].penWidth = m_strokes[i].penWidth * s; } } if (transform.determinant() != 1) { m_x_padding *= sx; m_y_padding *= sy; } if (transform.isRotating()) { m_x_padding = m_padding; m_y_padding = m_padding; } m_angle = 0.0; setPageNum(pageNum); }
void Browser::output_formatCB(Widget , XtPointer , XtPointer ) { #ifdef Comment UIVDATA *uivdata; XtVaGetValues(w, XmNuserData, &uivdata, NULL); set_watch(uivdata->text); if(w == uivdata->ascii_w) uivdata->output_format = ASCII; else if(w == uivdata->hex8_w) uivdata->output_format = HEX8; else if(w == uivdata->hex16_w) uivdata->output_format = HEX16; else if(w == uivdata->hex32_w) uivdata->output_format = HEX32; else if(w == uivdata->float_w) uivdata->output_format = FLOAT; else if(w == uivdata->double_w) uivdata->output_format = DOUBLE; setPageNum(uivdata, uivdata->page_num); reset_cursor(uivdata->text); #endif }