void
separator_widget_rep::handle_repaint (repaint_event ev) {
  renderer ren= ev->win;
  layout_default (ren, ev->x1, ev->y1, ev->x2, ev->y2);
  ren->set_pencil (pencil (layout_dark (ren), PIXEL));
  if (vert) ren->line (pre+PIXEL, ev->y1, pre+PIXEL, ev->y2);
  else ren->line (ev->x1, -pre-PIXEL, ev->x2, -pre-PIXEL);
  ren->set_pencil (pencil (white, PIXEL));
  if (vert) ren->line (pre+2*PIXEL, ev->y1, pre+2*PIXEL, ev->y2);
  else ren->line (ev->x1, -pre-2*PIXEL, ev->x2, -pre-2*PIXEL);
}
Example #2
0
void
glue_widget_rep::handle_repaint (repaint_event ev) {
  renderer ren= win->get_renderer ();
  if (col == "")
    layout_default (ren, ev->x1, ev->y1, ev->x2, ev->y2);
  else {
    if (is_atomic (col)) {
      color c= named_color (col->label);
      ren->set_background (c);
      ren->set_color (c);
      ren->fill (ev->x1, ev->y1, ev->x2, ev->y2);
    }
    else {
      ren->set_shrinking_factor (5);
      int old_a;
      tree old_bg= ren->get_background_pattern (old_a);
      ren->set_background_pattern (col);
      ren->clear_pattern (5*ev->x1, 5*ev->y1, 5*ev->x2, 5*ev->y2);
      ren->set_background_pattern (old_bg, old_a);
      ren->set_shrinking_factor (1);
    }
  }
}
Example #3
0
void
tabs_widget_rep::handle_repaint (repaint_event ev) { (void) ev;
  renderer ren= ev->win;
  layout_default (ren, 0, 0, w, h);
  if (h1 == 0 || h2 == 0 || N(xs) == 0) return;

  int l= N(a)-1, focus= 0;
  a[l] << get_integer ("switch", focus);
  color pastel= layout_pastel (ren);
  color dark= layout_dark (ren);
  SI fx1= xs[focus] - PIXEL;
  SI fx2= xs[focus+1] - PIXEL;
  SI top= h1 + h2 + 2*PIXEL;
  SI lim= xs[N(xs)-1];

  ren->set_pencil (pencil (pastel, PIXEL));
  if (focus > 0)
    ren->line (0, h1, fx1, h1);
  ren->line (fx2, h1, w, h1);
  ren->set_pencil (pencil (dark, PIXEL));
  if (focus > 0)
    ren->line (0, h1 + PIXEL, fx1, h1 + PIXEL);
  ren->line (fx2, h1 + PIXEL, w, h1 + PIXEL);
  ren->set_pencil (pencil (dark, PIXEL));
  ren->line (0, top, lim - PIXEL, top);
  for (int i=0; i<l; i++) {
    ren->set_pencil (pencil (pastel, PIXEL));
    ren->line (xs[i], h1+2*PIXEL, xs[i], top - PIXEL);
    ren->set_pencil (pencil (dark, PIXEL));
    ren->line (xs[i+1]-PIXEL, h1+2*PIXEL, xs[i+1]-PIXEL, top - PIXEL);
  }
  ren->set_pencil (pencil (pastel, PIXEL));
  ren->line (0, 0, 0, h1);
  ren->set_pencil (pencil (dark, PIXEL));
  ren->line (0, 0, w, 0);
  ren->line (w-PIXEL, 0, w-PIXEL, h1);
}