Beispiel #1
0
void CustomStyle::draw(Painter& p, Button*, Element /*e*/, const WidgetState &st, const Rect &r, const Extra&) const {
  p.setBlendMode( Tempest::alphaBlend );
  p.translate(r.x,r.y);

  const Button::Type buttonType=st.button;

  const bool drawBackFrame = (buttonType!=Button::T_ToolButton || st.highlighted) &&
                              buttonType!=Button::T_FlatButton;
  if( drawBackFrame ) {
    auto c = p.color();
    if( st.pressed )
      p.setColor(second[Dark]); else
    if( st.highlighted )
      p.setColor(second[Dark]); else
      p.setColor(second[Normal]);
    p.drawRect(0,0,r.w,r.h);
    p.setColor(c);
    }

  if( drawBackFrame ) {
    p.setColor(border);
    p.unsetTexture();

    p.drawLine(0,0,    r.w-1,0    );
    p.drawLine(0,r.h-1,r.w-1,r.h-1);

    p.drawLine(0,      0,    0,r.h-1);
    p.drawLine(r.w-1,  0,r.w-1,r.h  );
    }

  p.translate(r.x,r.y);
  }
Beispiel #2
0
void CustomStyle::draw(Painter &p, Panel*, Style::Element,
                       const WidgetState&,const Rect& r,const Style::Extra&) const {
  p.translate(r.x,r.y);
  p.setBlendMode( Tempest::alphaBlend );
  p.setColor(Color(1.0));
  p.drawRect(0,0,r.w,r.h);

  p.setColor(border);
  p.unsetTexture();

  p.drawLine(0,0,    r.w-1,0    );
  p.drawLine(0,r.h-1,r.w-1,r.h-1);

  p.drawLine(0,      0,    0,r.h-1);
  p.drawLine(r.w-1,  0,r.w-1,r.h  );
  p.translate(-r.x,-r.y);
  }
Beispiel #3
0
void CustomStyle::draw(Painter &p,CheckBox*,Style::Element, const WidgetState &st, const Rect &r, const Style::Extra &) const {
  const int  s  = std::min(std::min(r.w,r.h),24);
  const Size sz = Size(s,s);

  p.translate(r.x,r.y);
  p.setBlendMode( Tempest::alphaBlend );
  p.setColor(prime[Dark]);

  int x = 0,
      y = (r.h-sz.h)/2;
  p.drawLine(x,       y,x+sz.w-1,       y);
  p.drawLine(x,y+sz.h-1,x+sz.w-1,y+sz.h-1);

  p.drawLine(      x, y,       x,y+sz.h-1);
  p.drawLine(x+sz.w-1,y,x+sz.w-1,y+sz.h  );

  if( st.checked==WidgetState::Checked ) {
    int d = st.pressed ? 2 : 4;
    if( st.pressed ) {
      p.drawLine(x+d,      y+d, x+sz.w-d, y+sz.h-d);
      p.drawLine(x+sz.w-d, y+d, x+d,      y+sz.h-d);
      } else {
      p.drawLine(x, y, x+sz.w, y+sz.h);
      p.drawLine(x+sz.w, y, x, y+sz.h);
      }
    } else
  if( st.checked==WidgetState::PartiallyChecked ) {
    int d = st.pressed ? 2 : 4;
    p.drawLine(x+d, y+d,      x+sz.w-d, y+d);
    p.drawLine(x+d, y+sz.h+d, x+sz.w-d, y+sz.h+d);

    p.drawLine(x+d, y+d, x+d, y+sz.h-d);
    p.drawLine(x+sz.w+d, y+d, x+sz.w+d, y+sz.h-d);
    }
  p.translate(-r.x,-r.y);
  }