Lines Matching refs:panner

123 #define offset(field)	XtOffsetOf(PannerRec, panner.field)
325 /* panner */
344 if (pw->panner.shadow_gc)
345 XtReleaseGC((Widget)pw, pw->panner.shadow_gc);
347 pixels[0] = pw->panner.foreground;
349 pixels[2] = pw->panner.shadow_color;
351 if (!pw->panner.stipple_name &&
359 pw->panner.foreground,
364 if (!pw->panner.line_width &&
367 pw->panner.line_width = 1;
369 values.foreground = pw->panner.shadow_color;
371 if (pw->panner.line_width > 0) {
372 values.line_width = pw->panner.line_width;
376 pw->panner.shadow_gc = XtGetGC((Widget)pw, valuemask, &values);
385 if (pw->panner.slider_gc)
386 XtReleaseGC((Widget)pw, pw->panner.slider_gc);
388 values.foreground = pw->panner.foreground;
390 pw->panner.slider_gc = XtGetGC((Widget)pw, valuemask, &values);
396 if (pw->panner.xor_gc)
397 XtReleaseGC((Widget)pw, pw->panner.xor_gc);
399 if (pw->panner.rubber_band) {
404 tmp = (pw->panner.foreground == pw->core.background_pixel ?
405 pw->panner.shadow_color : pw->panner.foreground);
408 if (pw->panner.line_width > 0) {
410 values.line_width = pw->panner.line_width;
412 pw->panner.xor_gc = XtGetGC((Widget)pw, valuemask, &values);
415 pw->panner.xor_gc = NULL;
421 Position pad = (Position)(pw->panner.internal_border << 1);
422 Position maxx = (Position)(XtWidth(pw) - pad - pw->panner.knob_width);
423 Position maxy = (Position)(XtHeight(pw) - pad - pw->panner.knob_height);
424 Position *x = knob ? &pw->panner.knob_x : &pw->panner.tmp.x;
425 Position *y = knob ? &pw->panner.knob_y : &pw->panner.tmp.y;
442 pw->panner.slider_x = (Position)((double)pw->panner.knob_x
443 / pw->panner.haspect + 0.5);
444 pw->panner.slider_y = (Position)((double)pw->panner.knob_y
445 / pw->panner.vaspect + 0.5);
446 pw->panner.last_x = pw->panner.last_y = PANNER_OUTOFRANGE;
453 if (pw->panner.shadow_thickness > 0) {
454 int lw = pw->panner.shadow_thickness + (pw->panner.line_width << 1);
455 int pad = pw->panner.internal_border;
457 if (pw->panner.knob_height > lw && pw->panner.knob_width > lw) {
458 XRectangle *r = pw->panner.shadow_rects;
460 r->x = (short)(pw->panner.knob_x + pad + pw->panner.knob_width);
461 r->y = (short)(pw->panner.knob_y + pad + lw);
462 r->width = (unsigned short)(pw->panner.shadow_thickness);
463 r->height = (unsigned short)(pw->panner.knob_height - lw);
465 r->x = (short)(pw->panner.knob_x + pad + lw);
466 r->y = (short)(pw->panner.knob_y + pad + pw->panner.knob_height);
467 r->width = (unsigned short)(pw->panner.knob_width - lw + pw->panner.shadow_thickness);
468 r->height = (unsigned short)(pw->panner.shadow_thickness);
469 pw->panner.shadow_valid = True;
473 pw->panner.shadow_valid = False;
480 pw->panner.knob_x = (Position)PANNER_HSCALE(pw, pw->panner.slider_x);
481 pw->panner.knob_y = (Position)PANNER_VSCALE(pw, pw->panner.slider_y);
486 if (pw->panner.slider_width < 1)
487 pw->panner.slider_width = pw->panner.canvas_width;
488 if (pw->panner.slider_height < 1)
489 pw->panner.slider_height = pw->panner.canvas_height;
490 width = Min(pw->panner.slider_width, pw->panner.canvas_width);
491 height = Min(pw->panner.slider_height, pw->panner.canvas_height);
493 pw->panner.knob_width = (Dimension)PANNER_HSCALE(pw, width);
494 pw->panner.knob_height = (Dimension)PANNER_VSCALE(pw, height);
496 if (!pw->panner.allow_off)
504 int hpad = pw->panner.internal_border << 1;
507 if (pw->panner.canvas_width < 1)
508 pw->panner.canvas_width = XtWidth(pw);
509 if (pw->panner.canvas_height < 1)
510 pw->panner.canvas_height = XtHeight(pw);
517 pw->panner.haspect = ((double)XtWidth(pw) - hpad + .5)
518 / (double)pw->panner.canvas_width;
519 pw->panner.vaspect = ((double)XtHeight(pw) - vpad + .5)
520 / (double)pw->panner.canvas_height;
527 Dimension pad = (Dimension)(pw->panner.internal_border << 1);
529 *wp = (Dimension)(PANNER_DSCALE(pw, pw->panner.canvas_width) + pad);
530 *hp = (Dimension)(PANNER_DSCALE(pw, pw->panner.canvas_height) + pad);
536 int pad = pw->panner.internal_border;
616 pw->panner.xor_gc, \
617 (pw->panner.tmp.x + pw->panner.internal_border), \
618 (pw->panner.tmp.y + pw->panner.internal_border), \
619 (unsigned)(pw->panner.knob_width - 1), \
620 (unsigned)(pw->panner.knob_height - 1)); \
621 pw->panner.tmp.showing = !pw->panner.tmp.showing; \
626 if (pw->panner.tmp.showing) \
631 XmuLocatePixmapFile(pw->core.screen, pw->panner.stipple_name, \
632 pw->panner.shadow_color, pw->core.background_pixel, \
644 if (req->panner.canvas_width < 1)
645 cnew->panner.canvas_width = 1;
646 if (req->panner.canvas_height < 1)
647 cnew->panner.canvas_height = 1;
648 if (req->panner.default_scale < 1)
649 cnew->panner.default_scale = PANNER_DEFAULT_SCALE;
657 cnew->panner.shadow_gc = NULL;
659 cnew->panner.slider_gc = NULL;
661 cnew->panner.xor_gc = NULL;
665 cnew->panner.shadow_valid = False;
666 cnew->panner.tmp.doing = False;
667 cnew->panner.tmp.showing = False;
679 if (pw->panner.stipple_name)
701 XtReleaseGC(gw, pw->panner.shadow_gc);
702 XtReleaseGC(gw, pw->panner.slider_gc);
703 XtReleaseGC(gw, pw->panner.xor_gc);
718 int pad = pw->panner.internal_border;
719 Dimension lw = pw->panner.line_width;
720 Dimension extra = (Dimension)(pw->panner.shadow_thickness + (lw << 1));
721 int kx = pw->panner.knob_x + pad, ky = pw->panner.knob_y + pad;
726 pw->panner.tmp.showing = False;
728 (int)pw->panner.last_x - ((int)lw) + pad,
729 (int)pw->panner.last_y - ((int)lw) + pad,
730 (unsigned)(pw->panner.knob_width + extra),
731 (unsigned)(pw->panner.knob_height + extra),
733 pw->panner.last_x = pw->panner.knob_x;
734 pw->panner.last_y = pw->panner.knob_y;
736 XFillRectangle(dpy, w, pw->panner.slider_gc, kx, ky,
737 (unsigned)(pw->panner.knob_width - 1),
738 (unsigned)(pw->panner.knob_height - 1));
741 XDrawRectangle(dpy, w, pw->panner.shadow_gc, kx, ky,
742 (unsigned)(pw->panner.knob_width - 1),
743 (unsigned)(pw->panner.knob_height - 1));
745 if (pw->panner.shadow_valid)
746 XFillRectangles(dpy, w, pw->panner.shadow_gc, pw->panner.shadow_rects, 2);
748 if (pw->panner.tmp.doing && pw->panner.rubber_band)
761 if (cur->panner.foreground != cnew->panner.foreground) {
763 if (cur->panner.foreground != cur->core.background_pixel)
767 else if (cur->panner.line_width != cnew->panner.line_width ||
772 if (cur->panner.shadow_color != cnew->panner.shadow_color) {
774 if (cur->panner.foreground == cur->core.background_pixel)
778 if (cur->panner.shadow_thickness != cnew->panner.shadow_thickness) {
782 if (cur->panner.rubber_band != cnew->panner.rubber_band) {
784 if (cnew->panner.tmp.doing)
788 if ((cur->panner.stipple_name != cnew->panner.stipple_name
789 || cur->panner.shadow_color != cnew->panner.shadow_color
792 Pixmap pm = cnew->panner.stipple_name ?
806 if (cnew->panner.resize_to_pref &&
807 (cur->panner.canvas_width != cnew->panner.canvas_width
808 || cur->panner.canvas_height != cnew->panner.canvas_height
809 || cur->panner.resize_to_pref != cnew->panner.resize_to_pref)) {
813 else if (cur->panner.canvas_width != cnew->panner.canvas_width
814 || cur->panner.canvas_height != cnew->panner.canvas_height
815 || cur->panner.internal_border != cnew->panner.internal_border) {
820 Bool loc = cur->panner.slider_x != cnew->panner.slider_x ||
821 cur->panner.slider_y != cnew->panner.slider_y;
822 Bool siz = cur->panner.slider_width != cnew->panner.slider_width ||
823 cur->panner.slider_height != cnew->panner.slider_height;
824 if (loc || siz || (cur->panner.allow_off != cnew->panner.allow_off
825 && cnew->panner.allow_off)) {
876 pw->panner.tmp.doing = True;
877 pw->panner.tmp.startx = pw->panner.knob_x;
878 pw->panner.tmp.starty = pw->panner.knob_y;
879 pw->panner.tmp.dx = (Position)(x - pw->panner.knob_x);
880 pw->panner.tmp.dy = (Position)(y - pw->panner.knob_y);
881 pw->panner.tmp.x = pw->panner.knob_x;
882 pw->panner.tmp.y = pw->panner.knob_y;
883 if (pw->panner.rubber_band)
895 pw->panner.tmp.x = (Position)(x - pw->panner.tmp.dx);
896 pw->panner.tmp.y = (Position)(y - pw->panner.tmp.dy);
897 if (!pw->panner.allow_off)
900 if (pw->panner.rubber_band)
902 pw->panner.tmp.doing = False;
910 if (!pw->panner.tmp.doing)
913 if (pw->panner.rubber_band)
916 if (!pw->panner.rubber_band) { /* restore old position */
917 pw->panner.tmp.x = pw->panner.tmp.startx;
918 pw->panner.tmp.y = pw->panner.tmp.starty;
921 pw->panner.tmp.doing = False;
930 if (!pw->panner.tmp.doing)
938 if (pw->panner.rubber_band)
940 pw->panner.tmp.x = (Position)(x - pw->panner.tmp.dx);
941 pw->panner.tmp.y = (Position)(y - pw->panner.tmp.dy);
943 if (!pw->panner.rubber_band)
946 if (!pw->panner.allow_off)
958 Bool isin = pw->panner.tmp.doing;
961 int pad = pw->panner.internal_border << 1;
968 x = parse_page_string(params[0], pw->panner.knob_width,
970 y = parse_page_string(params[1], pw->panner.knob_height,
974 x += pw->panner.knob_x;
976 y += pw->panner.knob_y;
987 pw->panner.tmp.doing = True;
988 pw->panner.tmp.x = (Position)x;
989 pw->panner.tmp.y = (Position)y;
991 pw->panner.tmp.doing = False;
1001 if (!pw->panner.tmp.doing)
1004 if (!pw->panner.allow_off)
1006 pw->panner.knob_x = pw->panner.tmp.x;
1007 pw->panner.knob_y = pw->panner.tmp.y;
1010 pw->panner.slider_x = (Position)((double)pw->panner.knob_x
1011 / pw->panner.haspect + 0.5);
1012 pw->panner.slider_y = (Position)((double) pw->panner.knob_y
1013 / pw->panner.vaspect + 0.5);
1014 if (!pw->panner.allow_off) {
1017 if (pw->panner.slider_x
1018 > (tmp = (Position)(pw->panner.canvas_width -
1019 pw->panner.slider_width)))
1020 pw->panner.slider_x = tmp;
1021 if (pw->panner.slider_x < 0)
1022 pw->panner.slider_x = 0;
1023 if (pw->panner.slider_y
1024 > (tmp = (Position)(pw->panner.canvas_height -
1025 pw->panner.slider_height)))
1026 pw->panner.slider_y = tmp;
1027 if (pw->panner.slider_y < 0)
1028 pw->panner.slider_y = 0;
1031 if (pw->panner.last_x != pw->panner.knob_x ||
1032 pw->panner.last_y != pw->panner.knob_y) {
1037 rep.slider_x = pw->panner.slider_x;
1038 rep.slider_y = pw->panner.slider_y;
1039 rep.slider_width = pw->panner.slider_width;
1040 rep.slider_height = pw->panner.slider_height;
1041 rep.canvas_width = pw->panner.canvas_width;
1042 rep.canvas_height = pw->panner.canvas_height;
1043 XtCallCallbackList(gw, pw->panner.report_callbacks, (XtPointer)&rep);
1065 rb = !pw->panner.rubber_band;
1071 if (rb != pw->panner.rubber_band) {