• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10.1/tcl-105/tk84/tk/unix/

Lines Matching refs:scalePtr

23 static void		DisplayHorizontalScale _ANSI_ARGS_((TkScale *scalePtr,
25 static void DisplayHorizontalValue _ANSI_ARGS_((TkScale *scalePtr,
27 static void DisplayVerticalScale _ANSI_ARGS_((TkScale *scalePtr,
29 static void DisplayVerticalValue _ANSI_ARGS_((TkScale *scalePtr,
63 * Tcl_EventuallyFree to allow the Tcl_Preserve(scalePtr) to work
76 TkpDestroyScale(scalePtr)
77 TkScale *scalePtr;
79 Tcl_EventuallyFree((ClientData) scalePtr, TCL_DYNAMIC);
104 DisplayVerticalScale(scalePtr, drawable, drawnAreaPtr)
105 TkScale *scalePtr; /* Widget record for scale. */
114 Tk_Window tkwin = scalePtr->tkwin;
116 double tickValue, tickInterval = scalePtr->tickInterval;
123 if (!(scalePtr->flags & REDRAW_OTHER)) {
124 drawnAreaPtr->x = scalePtr->vertTickRightX;
125 drawnAreaPtr->y = scalePtr->inset;
126 drawnAreaPtr->width = scalePtr->vertTroughX + scalePtr->width
127 + 2*scalePtr->borderWidth - scalePtr->vertTickRightX;
128 drawnAreaPtr->height -= 2*scalePtr->inset;
130 Tk_Fill3DRectangle(tkwin, drawable, scalePtr->bgBorder,
133 if (scalePtr->flags & REDRAW_OTHER) {
145 ticks = fabs((scalePtr->toValue - scalePtr->fromValue)
148 / (double) scalePtr->fontHeight;
152 for (tickValue = scalePtr->fromValue; ;
159 tickValue = TkRoundToResolution(scalePtr, tickValue);
160 if (scalePtr->toValue >= scalePtr->fromValue) {
161 if (tickValue > scalePtr->toValue) {
165 if (tickValue < scalePtr->toValue) {
169 DisplayVerticalValue(scalePtr, drawable, tickValue,
170 scalePtr->vertTickRightX);
179 if (scalePtr->showValue) {
180 DisplayVerticalValue(scalePtr, drawable, scalePtr->value,
181 scalePtr->vertValueRightX);
189 scalePtr->bgBorder, scalePtr->vertTroughX, scalePtr->inset,
190 scalePtr->width + 2*scalePtr->borderWidth,
191 Tk_Height(tkwin) - 2*scalePtr->inset, scalePtr->borderWidth,
193 XFillRectangle(scalePtr->display, drawable, scalePtr->troughGC,
194 scalePtr->vertTroughX + scalePtr->borderWidth,
195 scalePtr->inset + scalePtr->borderWidth,
196 (unsigned) scalePtr->width,
197 (unsigned) (Tk_Height(tkwin) - 2*scalePtr->inset
198 - 2*scalePtr->borderWidth));
199 if (scalePtr->state == STATE_ACTIVE) {
200 sliderBorder = scalePtr->activeBorder;
202 sliderBorder = scalePtr->bgBorder;
204 width = scalePtr->width;
205 height = scalePtr->sliderLength/2;
206 x = scalePtr->vertTroughX + scalePtr->borderWidth;
207 y = TkScaleValueToPixel(scalePtr, scalePtr->value) - height;
208 shadowWidth = scalePtr->borderWidth/2;
213 2*height, shadowWidth, scalePtr->sliderRelief);
219 height, shadowWidth, scalePtr->sliderRelief);
221 width, height, shadowWidth, scalePtr->sliderRelief);
227 if ((scalePtr->flags & REDRAW_OTHER) && (scalePtr->labelLength != 0)) {
230 Tk_GetFontMetrics(scalePtr->tkfont, &fm);
231 Tk_DrawChars(scalePtr->display, drawable, scalePtr->textGC,
232 scalePtr->tkfont, scalePtr->label,
233 scalePtr->labelLength, scalePtr->vertLabelX,
234 scalePtr->inset + (3*fm.ascent)/2);
259 DisplayVerticalValue(scalePtr, drawable, value, rightEdge)
260 register TkScale *scalePtr; /* Information about widget in which to
270 register Tk_Window tkwin = scalePtr->tkwin;
275 Tk_GetFontMetrics(scalePtr->tkfont, &fm);
276 y = TkScaleValueToPixel(scalePtr, value) + fm.ascent/2;
277 sprintf(valueString, scalePtr->format, value);
279 width = Tk_TextWidth(scalePtr->tkfont, valueString, length);
286 if ((y - fm.ascent) < (scalePtr->inset + SPACING)) {
287 y = scalePtr->inset + SPACING + fm.ascent;
289 if ((y + fm.descent) > (Tk_Height(tkwin) - scalePtr->inset - SPACING)) {
290 y = Tk_Height(tkwin) - scalePtr->inset - SPACING - fm.descent;
292 Tk_DrawChars(scalePtr->display, drawable, scalePtr->textGC,
293 scalePtr->tkfont, valueString, length, rightEdge - width, y);
318 DisplayHorizontalScale(scalePtr, drawable, drawnAreaPtr)
319 TkScale *scalePtr; /* Widget record for scale. */
328 register Tk_Window tkwin = scalePtr->tkwin;
330 double tickValue, tickInterval = scalePtr->tickInterval;
337 if (!(scalePtr->flags & REDRAW_OTHER)) {
338 drawnAreaPtr->x = scalePtr->inset;
339 drawnAreaPtr->y = scalePtr->horizValueY;
340 drawnAreaPtr->width -= 2*scalePtr->inset;
341 drawnAreaPtr->height = scalePtr->horizTroughY + scalePtr->width
342 + 2*scalePtr->borderWidth - scalePtr->horizValueY;
344 Tk_Fill3DRectangle(tkwin, drawable, scalePtr->bgBorder,
347 if (scalePtr->flags & REDRAW_OTHER) {
361 ticks = fabs((scalePtr->toValue - scalePtr->fromValue)
363 sprintf(valueString, scalePtr->format, scalePtr->fromValue);
365 / (double) Tk_TextWidth(scalePtr->tkfont, valueString, -1);
369 for (tickValue = scalePtr->fromValue; ;
376 tickValue = TkRoundToResolution(scalePtr, tickValue);
377 if (scalePtr->toValue >= scalePtr->fromValue) {
378 if (tickValue > scalePtr->toValue) {
382 if (tickValue < scalePtr->toValue) {
386 DisplayHorizontalValue(scalePtr, drawable, tickValue,
387 scalePtr->horizTickY);
396 if (scalePtr->showValue) {
397 DisplayHorizontalValue(scalePtr, drawable, scalePtr->value,
398 scalePtr->horizValueY);
405 y = scalePtr->horizTroughY;
407 scalePtr->bgBorder, scalePtr->inset, y,
408 Tk_Width(tkwin) - 2*scalePtr->inset,
409 scalePtr->width + 2*scalePtr->borderWidth,
410 scalePtr->borderWidth, TK_RELIEF_SUNKEN);
411 XFillRectangle(scalePtr->display, drawable, scalePtr->troughGC,
412 scalePtr->inset + scalePtr->borderWidth,
413 y + scalePtr->borderWidth,
414 (unsigned) (Tk_Width(tkwin) - 2*scalePtr->inset
415 - 2*scalePtr->borderWidth),
416 (unsigned) scalePtr->width);
417 if (scalePtr->state == STATE_ACTIVE) {
418 sliderBorder = scalePtr->activeBorder;
420 sliderBorder = scalePtr->bgBorder;
422 width = scalePtr->sliderLength/2;
423 height = scalePtr->width;
424 x = TkScaleValueToPixel(scalePtr, scalePtr->value) - width;
425 y += scalePtr->borderWidth;
426 shadowWidth = scalePtr->borderWidth/2;
431 x, y, 2*width, height, shadowWidth, scalePtr->sliderRelief);
437 shadowWidth, scalePtr->sliderRelief);
439 width, height, shadowWidth, scalePtr->sliderRelief);
445 if ((scalePtr->flags & REDRAW_OTHER) && (scalePtr->labelLength != 0)) {
448 Tk_GetFontMetrics(scalePtr->tkfont, &fm);
449 Tk_DrawChars(scalePtr->display, drawable, scalePtr->textGC,
450 scalePtr->tkfont, scalePtr->label,
451 scalePtr->labelLength, scalePtr->inset + fm.ascent/2,
452 scalePtr->horizLabelY + fm.ascent);
477 DisplayHorizontalValue(scalePtr, drawable, value, top)
478 register TkScale *scalePtr; /* Information about widget in which to
488 register Tk_Window tkwin = scalePtr->tkwin;
493 x = TkScaleValueToPixel(scalePtr, value);
494 Tk_GetFontMetrics(scalePtr->tkfont, &fm);
496 sprintf(valueString, scalePtr->format, value);
498 width = Tk_TextWidth(scalePtr->tkfont, valueString, length);
506 if (x < (scalePtr->inset + SPACING)) {
507 x = scalePtr->inset + SPACING;
513 if (x + width >= (Tk_Width(tkwin) - scalePtr->inset)) {
514 x = Tk_Width(tkwin) - scalePtr->inset - SPACING - width;
516 Tk_DrawChars(scalePtr->display, drawable, scalePtr->textGC,
517 scalePtr->tkfont, valueString, length, x, y);
542 TkScale *scalePtr = (TkScale *) clientData;
543 Tk_Window tkwin = scalePtr->tkwin;
544 Tcl_Interp *interp = scalePtr->interp;
550 scalePtr->flags &= ~REDRAW_PENDING;
551 if ((scalePtr->tkwin == NULL) || !Tk_IsMapped(scalePtr->tkwin)) {
558 Tcl_Preserve((ClientData) scalePtr);
559 if ((scalePtr->flags & INVOKE_COMMAND) && (scalePtr->command != NULL)) {
561 sprintf(string, scalePtr->format, scalePtr->value);
562 result = Tcl_VarEval(interp, scalePtr->command, " ", string,
570 scalePtr->flags &= ~INVOKE_COMMAND;
571 if (scalePtr->flags & SCALE_DELETED) {
572 Tcl_Release((ClientData) scalePtr);
575 Tcl_Release((ClientData) scalePtr);
585 pixmap = Tk_GetPixmap(scalePtr->display, Tk_WindowId(tkwin),
601 if (scalePtr->orient == ORIENT_VERTICAL) {
602 DisplayVerticalScale(scalePtr, pixmap, &drawnArea);
604 DisplayHorizontalScale(scalePtr, pixmap, &drawnArea);
613 if (scalePtr->flags & REDRAW_OTHER) {
614 if (scalePtr->relief != TK_RELIEF_FLAT) {
615 Tk_Draw3DRectangle(tkwin, pixmap, scalePtr->bgBorder,
616 scalePtr->highlightWidth, scalePtr->highlightWidth,
617 Tk_Width(tkwin) - 2*scalePtr->highlightWidth,
618 Tk_Height(tkwin) - 2*scalePtr->highlightWidth,
619 scalePtr->borderWidth, scalePtr->relief);
621 if (scalePtr->highlightWidth != 0) {
624 if (scalePtr->flags & GOT_FOCUS) {
625 gc = Tk_GCForColor(scalePtr->highlightColorPtr, pixmap);
628 Tk_3DBorderColor(scalePtr->highlightBorder), pixmap);
630 Tk_DrawFocusHighlight(tkwin, gc, scalePtr->highlightWidth, pixmap);
640 XCopyArea(scalePtr->display, pixmap, Tk_WindowId(tkwin),
641 scalePtr->copyGC, drawnArea.x, drawnArea.y, drawnArea.width,
643 Tk_FreePixmap(scalePtr->display, pixmap);
647 scalePtr->flags &= ~REDRAW_ALL;
671 TkpScaleElement(scalePtr, x, y)
672 TkScale *scalePtr; /* Widget record for scale. */
673 int x, y; /* Coordinates within scalePtr's window. */
677 if (scalePtr->orient == ORIENT_VERTICAL) {
678 if ((x < scalePtr->vertTroughX)
679 || (x >= (scalePtr->vertTroughX + 2*scalePtr->borderWidth +
680 scalePtr->width))) {
683 if ((y < scalePtr->inset)
684 || (y >= (Tk_Height(scalePtr->tkwin) - scalePtr->inset))) {
687 sliderFirst = TkScaleValueToPixel(scalePtr, scalePtr->value)
688 - scalePtr->sliderLength/2;
692 if (y < (sliderFirst+scalePtr->sliderLength)) {
698 if ((y < scalePtr->horizTroughY)
699 || (y >= (scalePtr->horizTroughY + 2*scalePtr->borderWidth +
700 scalePtr->width))) {
703 if ((x < scalePtr->inset)
704 || (x >= (Tk_Width(scalePtr->tkwin) - scalePtr->inset))) {
707 sliderFirst = TkScaleValueToPixel(scalePtr, scalePtr->value)
708 - scalePtr->sliderLength/2;
712 if (x < (sliderFirst+scalePtr->sliderLength)) {