Exemple #1
0
	void			DoDraw()
	{
		const int k = 5;
		
		if( !(lastx - k < 0 || lastx + k > 400
			|| lasty - k < 0 || lasty + k > 400) )	// don't draw outside bounds...
		{
			Rect r;
			r.left = short(viewOffsetX + lastx - k);
			r.right = short(viewOffsetX + lastx + k);
			r.top = short(viewOffsetY + lasty - k);
			r.bottom = short(viewOffsetY + lasty + k);
			PaintOval(&r);
		}
	}
Exemple #2
0
void LCD_dopaintOval(Lcd *x, Symbol *s, short argc, Atom *argv)
{
	PaletteHandle pH;
	RGBColor fColor;
	GrafPort *gp;
	RgnHandle cur;
	Rect	 b,r;
	long left, top, right, bottom, color;
	
	EnterCallback();
	left = argv->a_w.w_long;
	top = (argv+1)->a_w.w_long;
	right = (argv+2)->a_w.w_long;
	bottom = (argv+3)->a_w.w_long;
	color = (argv+4)->a_w.w_long;
	
#ifdef debug
	post("paintOval");
#endif
	gp = patcher_setport(x->lcd_box.b_patcher);

	if (gp) {
		if (!box_nodraw((void *)x)) {
			
			if (color)  // sde 11/1
				x->lcd_pIndex = (short)color & (numPaletteColors-1);

			cur = NewRgn();
			GetClip(cur);
			SetClip(x->lcd_region);
			setUpPalette(x,&fColor,&pH);
			r = x->lcd_box.b_rect;
			b.left = r.left + (short)left;
			b.top  = r.top + (short)top;
			b.right = r.left + (short)right;
			b.bottom = r.top + (short)bottom;
			PaintOval(&b);

			restorePalette(x,&fColor,&pH);
			SetClip(cur);
			DisposeRgn(cur);
		}
		SetPort(gp);
	}
	ExitCallback();
}
Exemple #3
0
/*******************************************************************************

  Function : DDV_DrawSequenceName()
  
  Purpose : draw the name of the sequence (left column of the DDV panel)
  
  Parameters : GrData; graphical data (font size, etc)
				ScaleStyle;style of the ParaG scale
				top, left; coord to start the draw
  
  Return value : none

*******************************************************************************/
static void  DDV_DrawSequenceName(UnDViewerGraphDataPtr GrData,ParaGPtr pgp,
	Int2 top,Int2 left,Int4 cur_row,Int4 CurEditRow,Int4 CurMasterRow)
{
SeqIdPtr  sip = NULL;
RecT      rc;
Int2      x,y,decal=1,size;/*text position/size*/
Char      szAccess[21];
BioseqPtr bsp;

	/*get a name*/	
    bsp = BioseqLockById(pgp->sip);
    if(bsp) {
        sip = SeqIdFindBestAccession(bsp->id);
        BioseqUnlock(bsp);
    }
	if (!sip)
		sip = SeqIdFindBest(pgp->sip, 0);
	SeqIdWrite(sip, szAccess,PRINTID_TEXTID_ACCESSION, 20);   

	/*compute position*/
	if (pgp->ScaleStyle==SCALE_POS_TOP) decal++;
	
	/*draw name*/
	size=StringWidth(szAccess);
	x=left/*-GrData->udv_scale.cxLeftScale*/-size;
	y=top+decal*GrData->udv_font.LineHeight;
	MoveTo(x,y);
	if (cur_row==CurEditRow){
		Magenta();
	}
	PaintString (szAccess);
	if (cur_row==CurMasterRow){
		Blue();
		MoveTo(x,y);
		LineTo(x+size,y);
	}
	/*draw a little box (for selection a full sequence)*/
	left+=GrData->udv_font.cxChar;
	top+=GrData->udv_font.cxChar/2;
	LoadRect(&rc,left,top,left+GrData->udv_font.cxChar,
		top+GrData->udv_font.cxChar);	
	Blue();
	PaintOval(&rc);
	Black();
}
Exemple #4
0
void drawItem(int left, int top, Str255 *label, Boolean listEnabled, Boolean itemEnabled )
{
	Rect		rect;
	RGBColor	color, markColor;
	
	if (listEnabled)
		color.red = color.green = color.blue = 0xffff;
	else
		color.red = color.green = color.blue = 0xffff / 2;
		
	SetRect( &rect, left, top + 2, left + 12, top + 14 );
	ForeColor( blackColor );
	FrameOval( &rect );
	
	OffsetRect( &rect, -1, -1 );
	RGBForeColor( &color );
	FrameOval( &rect );
				
	if (listEnabled && itemEnabled)
		markColor.red = markColor.green = markColor.blue = 0xffff;
	else if (itemEnabled)
		markColor.red = markColor.green = markColor.blue = 0xffff / 2;
	else
		markColor.red = markColor.green = markColor.blue = 8700;
	
	InsetRect( &rect, 3, 3 );
	RGBForeColor( &markColor );
	PaintOval( &rect );
	
	ForeColor( blackColor );
	MoveTo( left + 16, top + 11 );
	DrawString( (unsigned char*)label );
	
	RGBForeColor( &color );
	MoveTo( left + 15, top + 10 );
	DrawString( (unsigned char*)label );
}
Exemple #5
0
Fichier : ugView.c Projet : rolk/ug
static void Marker (short n, short s, short x, short y)
{
  Rect r;
  PolyHandle myPoly;

  s = s/2;

  r.top = y-s; r.bottom = y+s;
  r.left = x-s; r.right = x+s;

  n = n%11;

  switch (n)
  {
  case 0 :
    FrameRect(&r);
    break;
  case 1 :
    PenPat(&qd.gray);
    PaintRect(&r);
    PenNormal();
    break;
  case 2 :
    PaintRect(&r);
    break;
  case 3 :
    FrameOval(&r);
    break;
  case 4 :
    PenPat(&qd.gray);
    PaintOval(&r);
    PenNormal();
    break;
  case 5 :
    PaintOval(&r);
    break;
  case 6 :
    MoveTo(x,y+s);
    LineTo(x+s,y);
    LineTo(x,y-s);
    LineTo(x-s,y);
    LineTo(x,y+s);
    break;
  case 7 :
    PenPat(&qd.gray);
    myPoly = OpenPoly();
    MoveTo(x,y+s);
    LineTo(x+s,y);
    LineTo(x,y-s);
    LineTo(x-s,y);
    LineTo(x,y+s);
    ClosePoly();
    PaintPoly(myPoly);
    KillPoly(myPoly);
    PenNormal();
    break;
  case 8 :
    myPoly = OpenPoly();
    MoveTo(x,y+s);
    LineTo(x+s,y);
    LineTo(x,y-s);
    LineTo(x-s,y);
    LineTo(x,y+s);
    ClosePoly();
    PaintPoly(myPoly);
    KillPoly(myPoly);
    PenNormal();
    break;
  case 9 :
    MoveTo(x,y+s);
    LineTo(x,y-s);
    MoveTo(x-s,y);
    LineTo(x+s,y-s);
    break;
  case 10 :
    MoveTo(x-s,y+s);
    LineTo(x+s,y-s);
    MoveTo(x-s,y-s);
    LineTo(x+s,y+s);
    break;
  }
}
Exemple #6
0
static void InvMarker (SHORT_POINT point)
{
  Rect r;
  PolyHandle myPoly;
  short n,s,S,x,y;

  s = currgw->marker_size/2;
  S = 1.41*s;
  n = currgw->marker_id;

  x = point.x;
  y = point.y;
  r.top = y-s; r.bottom = y+s;
  r.left = x-s; r.right = x+s;

  switch (n)
  {
  case EMPTY_SQUARE_MARKER :
    PenMode(patXor);
    FrameRect(&r);
    break;
  case GRAY_SQUARE_MARKER :
    PenMode(patXor);
    PenPat(qdgray);
    PaintRect(&r);
    PenNormal();
    break;
  case FILLED_SQUARE_MARKER :
    PenMode(patXor);
    PenPat(qdgray);
    PaintRect(&r);
    break;
  case EMPTY_CIRCLE_MARKER :
    PenMode(patXor);
    FrameOval(&r);
    break;
  case GRAY_CIRCLE_MARKER :
    PenMode(patXor);
    PenPat(qdgray);
    PaintOval(&r);
    PenNormal();
    break;
  case FILLED_CIRCLE_MARKER :
    PenMode(patXor);
    PenPat(qdgray);
    PaintOval(&r);
    break;
  case EMPTY_RHOMBUS_MARKER :
    PenMode(patXor);
    PenPat(qdgray);
    MoveTo(x,y+S);
    LineTo(x+S,y);
    LineTo(x,y-S);
    LineTo(x-S,y);
    LineTo(x,y+S);
    break;
  case GRAY_RHOMBUS_MARKER :
    PenMode(patXor);
    PenPat(qdgray);
    myPoly = OpenPoly();
    MoveTo(x,y+S);
    LineTo(x+S,y);
    LineTo(x,y-s);
    LineTo(x-S,y);
    LineTo(x,y+S);
    ClosePoly();
    InvertPoly(myPoly);
    KillPoly(myPoly);
    PenNormal();
    break;
  case FILLED_RHOMBUS_MARKER :
    myPoly = OpenPoly();
    MoveTo(x,y+S);
    LineTo(x+S,y);
    LineTo(x,y-S);
    LineTo(x-S,y);
    LineTo(x,y+S);
    ClosePoly();
    InvertPoly(myPoly);
    KillPoly(myPoly);
    PenNormal();
    break;
  case PLUS_MARKER :
    PenMode(patXor);
    PenPat(qdgray);
    MoveTo(x,y+s);
    LineTo(x,y-s);
    MoveTo(x-s,y);
    LineTo(x+s,y);
    break;
  case CROSS_MARKER :
    PenMode(patXor);
    PenPat(qdgray);
    MoveTo(x-s,y+s);
    LineTo(x+s,y-s);
    MoveTo(x-s,y-s);
    LineTo(x+s,y+s);
    break;
  default :
    break;
  }
  PenNormal();
}