void MpMessageDialog::Redraw (void) { // redraw the panel MpCanvas::Redraw(); // redraw text PlaceText(text,trec,Mp.theBoldFont); // redraw icon switch (icon) { case InfoIcon: if (Mp.theInfoPixmap) XCopyArea(Mp.theDisplay,Mp.theInfoPixmap,Win(),Mp.theTextGC, 0,0, icon_size,icon_size, margin,margin); break; case AskIcon: if (Mp.theAskPixmap) XCopyArea(Mp.theDisplay,Mp.theAskPixmap,Win(),Mp.theTextGC, 0,0, icon_size,icon_size, margin,margin); break; case WarnIcon: if (Mp.theWarnPixmap) XCopyArea(Mp.theDisplay,Mp.theWarnPixmap,Win(),Mp.theTextGC, 0,0, icon_size,icon_size, margin,margin); break; case ErrorIcon: if (Mp.theErrorPixmap) XCopyArea(Mp.theDisplay,Mp.theErrorPixmap,Win(),Mp.theTextGC, 0,0, icon_size,icon_size, margin,margin); break; default: break; } }
void KrButton::SetTextChar( const gedString& _text ) { if ( Engine() && scheme.font ) { if ( textBox ) Engine()->Tree()->DeleteNode( textBox ); textBox = 0; text = _text; PlaceText(); } else { text = _text; } }
void KrButton::AddedtoTree() { KrWidget::AddedtoTree(); holder = new KrImNode(); Engine()->Tree()->AddNode( this, holder ); plate = new KrBox( plateRes ); Engine()->Tree()->AddNode( holder, plate ); bevel.AddToTree( Engine(), holder ); bevel.DrawOut(); KrEventManager::Instance()->AddListener( this ); if ( scheme.font ) PlaceText(); if ( icon ) PlaceIcon(); }
int main(int argc, char **argv) { char *file = NULL; int Do_Start = 1, tmp; int m, p, i, j, n, nchars, theight, twidth, xclick, yclick; int downx = 1000, downy = 1000, upx, upy; long id, winclick; Real xmax, xmin, ymax, ymin, xdiff, ydiff, xgrid_spacing, ygrid_spacing; Real *x, *y, *nls; LineFunction linetype = StartLine; char axis[100], line[256]; FILE *fd; x = (Real *)malloc(1000000 * sizeof(Real)); y = (Real *)malloc(1000000 * sizeof(Real)); nls = (Real *)malloc(1000 * sizeof(Real)); if (x == NULL || y == NULL || nls == NULL) { fprintf(stderr, "Can't allocate initial memory\n"); exit(1); } ymax = xmax = -HUGE_VAL; ymin = xmin = HUGE_VAL; for (i = 1; i < argc; i++) { if (*argv[i] == '-') { if (!strcmp(argv[i], "-nl")) linetype = StartPoint; else if (argv[i][1] == '\0') /* use stdin */ file = argv[i]; else { fprintf(stderr, "Usage:\n\t %s [options] [file]\n\n", argv[0]); fprintf(stderr, "where options include:\n" " -pt plot with points instead of lines\n\n"); fprintf(stderr, "file name `-' specifies stdin\n" "if no file name is specified, " "the default is \"%s\"\n\n", DEFAULT_DATA_FILE); return EXIT_FAILURE; } } else file = argv[i]; } if (file && !strcmp(file, "-")) { fd = stdin; file = "stdin"; } else { if (file == NULL) file = DEFAULT_DATA_FILE; if ((fd = fopen(file, "r")) == NULL) { fprintf(stderr, "%s: can't open file \"%s\"\n", argv[0], file); return EXIT_FAILURE; } } m = 0; p = 0; while (fgets(line, sizeof(line), fd) != NULL) { if (sscanf(line, "%f %f", &x[m], &y[m]) == 2) { if (x[m] > xmax) xmax = x[m]; else if (x[m] < xmin) xmin = x[m]; if (y[m] > ymax) ymax = y[m]; else if (y[m] < ymin) ymin = y[m]; m++; } else { nls[p] = m; p++; } } nls[p++] = m; if (m == 0) return; signal(SIGTERM, nice_end); signal(SIGSTOP, nice_end); signal(SIGTSTP, nice_end); signal(SIGINT, nice_end); signal(SIGQUIT, nice_end); if (!InitializeGraphics(1)) return EXIT_FAILURE; n = 1; do { axis_round(&xmin, &xmax, &xgrid_spacing); axis_round(&ymin, &ymax, &ygrid_spacing); id = CreateWin(0, 0, GRX_SCALE, GRX_SCALE); if (id == 0) { fprintf(stderr, "Help id = 0\n"); return EXIT_FAILURE; } /* Fill the window in black for real eye-catching graphics! */ ForeColor(0); StartFill(id); FillArea(0, 0, GRX_SCALE, GRX_SCALE); Done(); /* draw outline box in white */ ForeColor(7); /* Draw outline box */ StartLine(id); Extend(1000, 1000); Extend(1000, 9000); Extend(9000, 9000); Extend(9000, 1000); Extend(1000, 1000); Done(); /* Draw the data - either lines or dots */ xdiff = 8000 / (xmax - xmin); ydiff = 8000 / (ymax - ymin); for (i = j = 0; j < p; j++) { int n = 0; ForeColor(j % 6 + 1); while (((x[i] < xmin) || (x[i] > xmax) || (y[i] < ymin) || (y[i] > ymax)) && (i < nls[j])) i++; while (i < nls[j]) { if (n == 0) linetype(id); Extend(1000 + (x[i] - xmin) * xdiff, 9000 - (y[i] - ymin) * ydiff); n++; if (n > 450) { Done(); n = 0; continue; } i++; while ((i < nls[j]) && ((x[i] < xmin) || (x[i] > xmax) || (y[i] < ymin) || (y[i] > ymax))) i++; } if (n > 0) Done(); } /* Do axis labels in black */ ForeColor(7); QueryWin(id, &twidth, &theight); PlaceText(id, GRX_SCALE / 2, 0, HCENTER_TEXT | TOP_TEXT, file); PlaceText(id, GRX_SCALE / 2, GRX_SCALE, HCENTER_TEXT | BOTTOM_TEXT, "X"); PlaceText(id, 0, GRX_SCALE / 2, LEFT_TEXT | VCENTER_TEXT, "Y"); sprintf(axis, "%f", ymax); nchars = 1000 / twidth; axis[nchars] = 0; PlaceText(id, GRX_SCALE / 10, GRX_SCALE / 10, RIGHT_TEXT | TOP_TEXT, axis); sprintf(axis, "%f", ymin); axis[nchars] = 0; PlaceText(id, GRX_SCALE / 10, 9 * GRX_SCALE / 10, RIGHT_TEXT | BOTTOM_TEXT, axis); sprintf(axis, "%f", xmax); PlaceText(id, 9 * GRX_SCALE / 10, 9 * GRX_SCALE / 10, HCENTER_TEXT | TOP_TEXT, axis); sprintf(axis, "%f", xmin); PlaceText(id, GRX_SCALE / 10, 9 * GRX_SCALE / 10, HCENTER_TEXT | TOP_TEXT, axis); fflush(stdout); do { n = WaitForCarriageReturn(&winclick, &xclick, &yclick); switch (n) { case 1: downx = xclick; downy = yclick; break; case 2: upx = xclick; upy = yclick; if (upx < downx) { tmp = downx; downx = upx; upx = tmp; } if (upy < downy) { tmp = downy; downy = upy; upy = tmp; } xmin = (xmax - xmin) * (downx - 1000) / (8000) + xmin; xmax = (xmax - xmin) * (upx - 1000) / (8000) + xmin; ymax = ymax - (ymax - ymin) * (downy - 1000) / (8000); ymin = ymax - (ymax - ymin) * (upy - 1000) / (8000); break; } } while (n && (n != 2)); } while (n); nice_end(EXIT_SUCCESS); return EXIT_SUCCESS; }
bool TextLineBase::setProperty(P_ID id, const QVariant& v) { switch (id) { case P_ID::BEGIN_TEXT_PLACE: _beginTextPlace = PlaceText(v.toInt()); break; case P_ID::BEGIN_TEXT_ALIGN: _beginTextAlign = Align(v.toInt()); break; case P_ID::CONTINUE_TEXT_ALIGN: _continueTextAlign = Align(v.toInt()); break; case P_ID::END_TEXT_ALIGN: _endTextAlign = Align(v.toInt()); break; case P_ID::CONTINUE_TEXT_PLACE: _continueTextPlace = PlaceText(v.toInt()); break; case P_ID::END_TEXT_PLACE: _endTextPlace = PlaceText(v.toInt()); break; case P_ID::BEGIN_HOOK_HEIGHT: _beginHookHeight = v.value<Spatium>(); break; case P_ID::END_HOOK_HEIGHT: _endHookHeight = v.value<Spatium>(); break; case P_ID::BEGIN_HOOK_TYPE: _beginHookType = HookType(v.toInt()); break; case P_ID::END_HOOK_TYPE: _endHookType = HookType(v.toInt()); break; case P_ID::BEGIN_TEXT: setBeginText(v.toString()); break; case P_ID::BEGIN_TEXT_OFFSET: setBeginTextOffset(v.toPointF()); break; case P_ID::CONTINUE_TEXT_OFFSET: setContinueTextOffset(v.toPointF()); break; case P_ID::END_TEXT_OFFSET: setEndTextOffset(v.toPointF()); break; case P_ID::CONTINUE_TEXT: setContinueText(v.toString()); break; case P_ID::END_TEXT: setEndText(v.toString()); break; case P_ID::LINE_VISIBLE: setLineVisible(v.toBool()); break; case P_ID::BEGIN_FONT_FACE: setBeginFontFamily(v.toString()); break; case P_ID::BEGIN_FONT_SIZE: if (v.toReal() <= 0) qDebug("font size is %f", v.toReal()); setBeginFontSize(v.toReal()); break; case P_ID::BEGIN_FONT_BOLD: setBeginFontBold(v.toBool()); break; case P_ID::BEGIN_FONT_ITALIC: setBeginFontItalic(v.toBool()); break; case P_ID::BEGIN_FONT_UNDERLINE: setBeginFontUnderline(v.toBool()); break; case P_ID::CONTINUE_FONT_FACE: setContinueFontFamily(v.toString()); break; case P_ID::CONTINUE_FONT_SIZE: setContinueFontSize(v.toReal()); break; case P_ID::CONTINUE_FONT_BOLD: setContinueFontBold(v.toBool()); break; case P_ID::CONTINUE_FONT_ITALIC: setContinueFontItalic(v.toBool()); break; case P_ID::CONTINUE_FONT_UNDERLINE: setContinueFontUnderline(v.toBool()); break; case P_ID::END_FONT_FACE: setEndFontFamily(v.toString()); break; case P_ID::END_FONT_SIZE: setEndFontSize(v.toReal()); break; case P_ID::END_FONT_BOLD: setEndFontBold(v.toBool()); break; case P_ID::END_FONT_ITALIC: setEndFontItalic(v.toBool()); break; case P_ID::END_FONT_UNDERLINE: setEndFontUnderline(v.toBool()); break; default: return SLine::setProperty(id, v); } triggerLayout(); return true; }
void MpButton::Draw (void) { // draw pixmap icon if (pixmap) { int // clip boundaries copy_w = MpMin((int)icon_width,Width()-2*GetFrameTotalWidth()), copy_h = MpMin((int)icon_height,Height()-2*GetFrameTotalWidth()), src_x = MpMin(0,icon_width-copy_w), src_y = MpMin(0,icon_height-copy_h), // copy destination dest_x = (state & icon_align_left) // left aligned icon ? GetFrameTotalWidth()+GetXPadding() : (state & icon_align_right) // right aligned icon ? Width()-GetFrameTotalWidth()-copy_w-GetXPadding() : (Width()-copy_w)/2, // centered icon dest_y = (Height()-copy_h)/2; // set clip mask if (mask) { XSetClipOrigin(Mp.theDisplay,Mp.theTextGC,dest_x,dest_y); XSetClipMask(Mp.theDisplay,Mp.theTextGC,mask); } // draw icon XCopyArea(Mp.theDisplay,pixmap,Win(),Mp.theTextGC, src_x,src_y, copy_w,copy_h, dest_x,dest_y); // reset clip mask if (mask) XSetClipMask(Mp.theDisplay,Mp.theTextGC,None); // draw label together with left or right aligned icon if (state & icon_align_left) { PlaceText(Get().c_str(), MpRectangle<short>(GetFrameTotalWidth()+copy_w+GetXPadding(), GetFrameTotalWidth()+GetYPadding(), Width()-2*GetFrameTotalWidth()-copy_w-GetXPadding(), Height()-2*GetFrameTotalWidth()-GetYPadding()), GetFont(), (state & in_pulldown) ? ((GetMode() & ~AlignMask) | AlignLeft | AlignVCenter) : GetMode()); } else if (state & icon_align_right) { PlaceText(Get().c_str(), MpRectangle<short>(GetFrameTotalWidth()+GetXPadding(), GetFrameTotalWidth()+GetYPadding(), Width()-2*GetFrameTotalWidth()-copy_w-GetXPadding(), Height()-2*GetFrameTotalWidth()-GetYPadding()), GetFont(), (state & in_pulldown) ? ((GetMode() & ~AlignMask) | AlignLeft | AlignVCenter) : GetMode()); } // else text string is not drawn // no icon } else { // In a pulldown menu the labels are always aligned left, otherwise // the aligment is not overwritten. PlaceText(Get().c_str(), GetXPadding() + GetFrameTotalWidth(), GetYPadding() + GetFrameTotalWidth(), GetFont(), (state & in_pulldown) ? ((GetMode() & ~AlignMask) | AlignLeft | AlignVCenter) : GetMode()); } }