/// <summary> /// 重绘前景方法 /// </summary> /// <param name="paint">绘图对象</param> /// <param name="clipRect">裁剪区域</param> public override void onPaintForeground(FCPaint paint, FCRect clipRect) { base.onPaintForeground(paint, clipRect); if (Native != null && m_grid != null) { FCRect rect = new FCRect(0, 0, Width, Height); int tLeft = rect.right - 15; int midTop = rect.top + (rect.bottom - rect.top) / 2; long textColor = getPaintingTextColor(); //升序 if (m_sortMode == FCGridColumnSortMode.Asc) { FCPoint[] points = new FCPoint[3] { new FCPoint(tLeft + 5, midTop - 5), new FCPoint(tLeft, midTop + 5), new FCPoint(tLeft + 10, midTop + 5) }; paint.fillPolygon(textColor, points); } //降序 else if (m_sortMode == FCGridColumnSortMode.Desc) { FCPoint[] points = new FCPoint[3] { new FCPoint(tLeft + 5, midTop + 5), new FCPoint(tLeft, midTop - 5), new FCPoint(tLeft + 10, midTop - 5) }; paint.fillPolygon(textColor, points); } } }
/// <summary> /// 重绘背景方法 /// </summary> /// <param name="paint">绘图对象</param> /// <param name="clipRect">裁剪区域</param> public override void onPaintForeground(FCPaint paint, FCRect clipRect) { int width = Width, height = Height; FCPoint p1 = new FCPoint(), p2 = new FCPoint(), p3 = new FCPoint(); //计算三个点的位置 if (m_toLast) { p1.x = 0; p1.y = height / 2; p2.x = width; p2.y = 0; p3.x = width; p3.y = height; } else { p1.x = 0; p1.y = 0; p2.x = 0; p2.y = height; p3.x = width; p3.y = height / 2; } FCPoint[] points = new FCPoint[3]; points[0] = p1; points[1] = p2; points[2] = p3; paint.fillPolygon(getPaintingTextColor(), points); }
/// <summary> /// 重绘方法 /// </summary> /// <param name="paint">绘图对象</param> /// <param name="clipRect">裁剪区域</param> public override void onPaint(FCPaint paint, FCRect clipRect) { int vh = 0; FCLayoutDiv layoutDiv = Parent as FCLayoutDiv; if (layoutDiv.HScrollBar != null && layoutDiv.HScrollBar.Visible) { vh = layoutDiv.HScrollBar.Height; } int width = Width, height = Height - vh; FCRect drawRect = new FCRect(0, 0, width, height); paint.fillRect(FCColor.argb(0, 0, 0), drawRect); paint.drawRect(FCColor.argb(50, 105, 217), 1, 0, drawRect); String text = Text; FCFont font = Font; FCSize tSize = paint.textSize(text, font); FCRect tRect = new FCRect((width - tSize.cx) / 2, (height - tSize.cy) / 2, (width + tSize.cx) / 2, (height + tSize.cy) / 2); paint.drawText(text, FCColor.argb(255, 0, 0), font, tRect); FCPoint[] points = new FCPoint[3]; points[0] = new FCPoint(0, 0); points[1] = new FCPoint(50, 0); points[2] = new FCPoint(0, 30); FCFont font3 = new FCFont("微软雅黑", 10, false, false, false); if (m_isUser) { paint.fillPolygon(FCColor.argb(255, 200, 0), points); FCDraw.drawText(paint, "自定义", FCColor.argb(0, 0, 0), font3, 2, 2); String btn1 = "编辑"; FCFont font2 = new FCFont("微软雅黑", 12, false, false, false); FCSize tSize2 = paint.textSize(btn1, font2); tRect = new FCRect(width - tSize2.cx - 20, height - tSize2.cy - 5, 0, 0); tRect.right = tRect.left + tSize2.cx; tRect.bottom = tRect.top + tSize2.cy; m_tRect = tRect; paint.drawText(btn1, FCColor.argb(80, 255, 80), font2, m_tRect); } else { paint.fillPolygon(FCColor.argb(80, 255, 255), points); FCDraw.drawText(paint, "系统", FCColor.argb(0, 0, 0), font3, 2, 2); } }
/// <summary> /// 绘制节点 /// </summary> /// <param name="paint">绘图对象</param> /// <param name="rect">区域</param> public virtual void onPaintNode(FCPaint paint, FCRect rect) { if (m_expended) { if (m_tree.ExpendedNodeImage != null && m_tree.ExpendedNodeImage.Length > 0) { paint.drawImage(m_tree.ExpendedNodeImage, rect); return; } } else { if (m_tree.CollapsedNodeImage != null && m_tree.CollapsedNodeImage.Length > 0) { paint.drawImage(m_tree.CollapsedNodeImage, rect); return; } } int width = rect.right - rect.left; int height = rect.bottom - rect.top; FCPoint[] points = new FCPoint[3]; //展开 if (m_expended) { points[0] = new FCPoint(rect.left, rect.top); points[1] = new FCPoint(rect.left + width, rect.top); points[2] = new FCPoint(rect.left + width / 2, rect.top + height); } //折叠 else { points[0] = new FCPoint(rect.left, rect.top); points[1] = new FCPoint(rect.left, rect.top + height); points[2] = new FCPoint(rect.left + width, rect.top + height / 2); } FCGrid grid = Grid; paint.fillPolygon(grid.TextColor, points); }
/// <summary> /// 重绘背景 /// </summary> /// <param name="paint">绘图对象</param> /// <param name="clipRect">裁剪区域</param> public override void onPaintBackground(FCPaint paint, FCRect clipRect) { FCNative native = Native; int width = Width, height = Height; int mw = width / 2, mh = height / 2; FCRect drawRect = new FCRect(0, 0, width, height); int cornerRadius = 0; if (m_isClose) { long lineColor = FCDraw.FCCOLORS_LINECOLOR; FCRect ellipseRect = new FCRect(1, 1, width - 2, height - 2); //paint->FillEllipse(FCCOLORS_BACKCOLOR7, ellipseRect); paint.drawLine(lineColor, 2, 0, 4, 4, width - 7, height - 7); paint.drawLine(lineColor, 2, 0, 4, height - 7, width - 7, 3); } else { cornerRadius = 0; if (m_arrowType > 0) { cornerRadius = 0; } FCView parent = Parent; if (parent != null) { FCTabControl tabControl = parent as FCTabControl; if (tabControl != null) { cornerRadius = 0; } } paint.fillGradientRect(FCDraw.FCCOLORS_BACKCOLOR, FCDraw.FCCOLORS_BACKCOLOR2, drawRect, cornerRadius, 90); paint.drawRect(FCDraw.FCCOLORS_EXCOLOR1, 1, 0, drawRect); cornerRadius = 0; if (m_arrowType > 0) { FCPoint point1 = new FCPoint(); FCPoint point2 = new FCPoint(); FCPoint point3 = new FCPoint(); int dSize = Math.Min(mw, mh) / 2; switch (m_arrowType) { case 1: point1.x = mw - dSize; point1.y = mh; point2.x = mw + dSize; point2.y = mh - dSize; point3.x = mw + dSize; point3.y = mh + dSize; break; case 2: point1.x = mw + dSize; point1.y = mh; point2.x = mw - dSize; point2.y = mh - dSize; point3.x = mw - dSize; point3.y = mh + dSize; break; case 3: point1.x = mw; point1.y = mh - dSize; point2.x = mw - dSize; point2.y = mh + dSize; point3.x = mw + dSize; point3.y = mh + dSize; break; case 4: point1.x = mw; point1.y = mh + dSize; point2.x = mw - dSize; point2.y = mh - dSize; point3.x = mw + dSize; point3.y = mh - dSize; break; } FCPoint[] points = new FCPoint[3]; points[0] = point1; points[1] = point2; points[2] = point3; paint.fillPolygon(FCDraw.FCCOLORS_FORECOLOR, points); } } bool state = false; if (Selected) { state = true; paint.fillRoundRect(FCDraw.FCCOLORS_BACKCOLOR8, drawRect, cornerRadius); } else if (this == native.PushedControl) { state = true; paint.fillRoundRect(FCDraw.FCCOLORS_BACKCOLOR6, drawRect, cornerRadius); } else if (this == native.HoveredControl) { state = true; paint.fillRoundRect(FCDraw.FCCOLORS_BACKCOLOR5, drawRect, cornerRadius); } if (state) { if (cornerRadius > 0) { paint.drawRoundRect(FCColor.Border, 2, 0, drawRect, cornerRadius); } else { paint.drawRect(FCColor.Border, 1, 0, drawRect); } } }
/// <summary> /// 重绘前景方法 /// </summary> /// <param name="paint">绘图对象</param> /// <param name="clipRect">裁剪区域</param> public override void onPaintBackground(FCPaint paint, FCRect clipRect) { int width = Width; int height = Height; FCRect rect = new FCRect(0, 0, width, height); long backColor = FCDraw.FCCOLORS_WINDOWBACKCOLOR; long textColor = FCDraw.FCCOLORS_WINDOWTEXTCOLOR; if (paint.supportTransparent()) { backColor = FCDraw.FCCOLORS_WINDOWBACKCOLOR2; } long borderColor = FCDraw.FCCOLORS_BACKCOLOR8; FCPoint[] points1 = new FCPoint[6]; int dw1 = 30; int dw2 = 50; int dSize = 10; int dSize2 = 20; points1[0] = new FCPoint(dSize, dw1 + dSize); points1[1] = new FCPoint(dSize + dw1, dSize); points1[2] = new FCPoint(width - dSize, dSize); points1[3] = new FCPoint(width - dSize, height - dw2 - dSize2); points1[4] = new FCPoint(width - dSize - dw2, height - dSize2); points1[5] = new FCPoint(dSize, height - dSize2); if (FCDraw.m_style == 0) { paint.fillGradientPolygon(FCDraw.FCCOLORS_BACKCOLOR, FCDraw.FCCOLORS_BACKCOLOR2, points1, 45); } paint.fillPolygon(backColor, points1); paint.drawPolygon(borderColor, 3, 0, points1); paint.drawLine(borderColor, 2, 0, width - dSize - 30, 1, width - 1, 1); paint.drawLine(borderColor, 2, 0, width - 1, 1, width - 1, dSize * 2); paint.drawLine(borderColor, 2, 0, width - dSize - 20, dSize + 5, width - dSize - 5, dSize + 5); paint.drawLine(borderColor, 2, 0, width - dSize - 5, dSize + 5, width - dSize - 5, dSize + 20); FCPoint[] points2 = new FCPoint[4]; points2[0] = new FCPoint(dSize + 10, dSize + dw1 + 30); points2[1] = new FCPoint(dSize + 10, dSize + dw1 + 2); points2[2] = new FCPoint(dSize + dw1 + 2, dSize + 10); points2[3] = new FCPoint(dSize + dw1 + 30, dSize + 10); paint.drawPolyline(borderColor, 2, 0, points2); paint.drawLine(borderColor, 2, 0, dSize + dw1 + 31, dSize + 10, dSize + dw1 + 50, dSize + 10); paint.drawLine(borderColor, 2, 0, dSize + dw1 + 10, dSize + 18, dSize + dw1 + 40, dSize + 18); paint.drawLine(borderColor, 2, 0, dSize + 10, height - dSize * 2 - 8, dSize + 60, height - dSize * 2 - 8); FCPoint[] points3 = new FCPoint[4]; points3[0] = new FCPoint(dSize + 14, height - dSize2 - 8); points3[1] = new FCPoint(dSize + 18, height - dSize2 - 12); points3[2] = new FCPoint(dSize + 30, height - dSize2 - 12); points3[3] = new FCPoint(dSize + 34, height - dSize2 - 8); paint.fillPolygon(borderColor, points3); FCPoint[] points4 = new FCPoint[6]; points4[0] = new FCPoint(dSize, height - dSize2 - 20); points4[1] = new FCPoint(dSize - 8, height - dSize2 - 10); points4[2] = new FCPoint(dSize - 8, height - 4 - dSize); points4[3] = new FCPoint(dSize + 16, height - 4 - dSize); points4[4] = new FCPoint(dSize + 20, height - dSize2); points4[5] = new FCPoint(dSize, height - dSize2); paint.fillPolygon(borderColor, points4); FCPoint[] points5 = new FCPoint[4]; points5[0] = new FCPoint(width - dSize, height - dSize2 - dw2 - 20); points5[1] = new FCPoint(width - dSize - 4, height - dSize2 - dw2 - 16); points5[2] = new FCPoint(width - dSize - 4, height - dSize2 - dw2); points5[3] = new FCPoint(width - dSize, height - dSize2 - dw2); paint.fillPolygon(borderColor, points5); FCPoint[] points6 = new FCPoint[4]; points6[0] = new FCPoint(width - dSize, height - dSize2 - dw2); points6[1] = new FCPoint(width - dSize - 4, height - dSize2 - dw2 - 2); points6[2] = new FCPoint(width - dSize - 22, height - dSize2 - dw2 + 16); points6[3] = new FCPoint(width - dSize - 20, height - dSize2 - dw2 + 22); paint.fillPolygon(borderColor, points6); FCPoint[] points7 = new FCPoint[3]; points7[0] = new FCPoint(width - 1, height - dSize2 - dw2 - 30); points7[1] = new FCPoint(width - 1, height - dSize2 - dw2 + 3); points7[2] = new FCPoint(width - 1 - dw2 + 20, height - dSize2 - 16); paint.drawPolyline(borderColor, 2, 0, points7); FCPoint[] points8 = new FCPoint[3]; points8[0] = new FCPoint(width - 1 - dw2 + 19, height - dSize2 - 15); points8[1] = new FCPoint(width - dSize - dw2 + 1, height - dSize + 3); points8[2] = new FCPoint(width - dSize - dw2 - 25, height - dSize + 3); paint.drawPolyline(borderColor, 2, 0, points8); FCPoint[] points9 = new FCPoint[6]; points9[0] = new FCPoint(width - dSize - dw2 + 1, height - dSize + 3); points9[1] = new FCPoint(width - dSize - dw2 - 14, height - dSize + 3); points9[2] = new FCPoint(width - dSize - dw2 - 10, height - dSize + 8); points9[3] = new FCPoint(width - dSize - dw2 + 3, height - dSize + 8); points9[4] = new FCPoint(width - dSize - dw2 + 16, height - dSize - 6); points9[5] = new FCPoint(width - dSize - dw2 + 16, height - dSize - 14); paint.fillPolygon(borderColor, points9); int rwidth = width * 3 / 5; if (rwidth > width - dSize * 2 - dw2) { rwidth = width - dSize2 * 2 - dw2; } FCPoint[] points10 = new FCPoint[4]; points10[0] = new FCPoint(rwidth - 8, height - dSize2 - 6); points10[1] = new FCPoint(rwidth - 12, height - dSize2); points10[2] = new FCPoint(rwidth + 12, height - dSize2); points10[3] = new FCPoint(rwidth + 8, height - dSize2 - 6); paint.fillPolygon(borderColor, points10); rwidth = width * 7 / 10; if (rwidth > width - 30) { rwidth = width - 30; } FCPoint[] points11 = new FCPoint[4]; points11[0] = new FCPoint(rwidth - 16, dSize - 6); points11[1] = new FCPoint(rwidth - 20, dSize); points11[2] = new FCPoint(rwidth + 20, dSize); points11[3] = new FCPoint(rwidth + 16, dSize - 6); paint.fillPolygon(borderColor, points11); FCDraw.drawText(paint, Text, textColor, Font, 100, 15); }
/// <summary> /// 重绘背景 /// </summary> /// <param name="paint">绘图对象</param> /// <param name="clipRect">裁剪区域</param> public override void onPaintBackground(FCPaint paint, FCRect clipRect) { int width = Width, height = Height; int mw = width / 2, mh = height / 2; FCRect drawRect = new FCRect(0, 0, width, height); if (m_isClose) { long lineColor = FCDraw.FCCOLORS_LINECOLOR; FCRect ellipseRect = new FCRect(1, 1, width - 2, height - 2); paint.fillEllipse(FCDraw.FCCOLORS_UPCOLOR, ellipseRect); paint.drawLine(lineColor, 2, 0, 4, 4, width - 7, height - 7); paint.drawLine(lineColor, 2, 0, 4, height - 7, width - 7, 3); } else { int cornerRadius = 4; if (m_arrowType > 0) { cornerRadius = 0; } FCView parent = Parent; if (parent != null) { FCTabControl tabControl = parent as FCTabControl; if (tabControl != null) { cornerRadius = 0; } } paint.fillGradientRect(FCDraw.FCCOLORS_BACKCOLOR, FCDraw.FCCOLORS_BACKCOLOR2, drawRect, cornerRadius, 90); paint.drawRoundRect(FCDraw.FCCOLORS_LINECOLOR3, 1, 0, drawRect, cornerRadius); } if (m_arrowType > 0) { FCPoint[] points = new FCPoint[3]; int ts = Math.Min(mw, mh) / 2; switch (m_arrowType) { //向左 case 1: points[0] = new FCPoint(mw - ts, mh); points[1] = new FCPoint(mw + ts, mh - ts); points[2] = new FCPoint(mw + ts, mh + ts); break; //向右 case 2: points[0] = new FCPoint(mw + ts, mh); points[1] = new FCPoint(mw - ts, mh - ts); points[2] = new FCPoint(mw - ts, mh + ts); break; //向上 case 3: points[0] = new FCPoint(mw, mh - ts); points[1] = new FCPoint(mw - ts, mh + ts); points[2] = new FCPoint(mw + ts, mh + ts); break; //向下 case 4: points[0] = new FCPoint(mw, mh + ts); points[1] = new FCPoint(mw - ts, mh - ts); points[2] = new FCPoint(mw + ts, mh - ts); break; } paint.fillPolygon(FCDraw.FCCOLORS_FORECOLOR, points); } //绘制选中效果 if (paint.supportTransparent()) { FCNative native = Native; if (Selected) { paint.fillRect(FCDraw.FCCOLORS_BACKCOLOR2, drawRect); } else if (this == native.PushedControl) { paint.fillRect(FCDraw.FCCOLORS_BACKCOLOR6, drawRect); } else if (this == native.HoveredControl) { paint.fillRect(FCDraw.FCCOLORS_BACKCOLOR5, drawRect); } } }
/// <summary> /// 重绘前景方法 /// </summary> /// <param name="paint">绘图对象</param> /// <param name="clipRect">裁剪矩形</param> public override void onPaintForeground(FCPaint paint, FCRect clipRect) { int width = Width, height = Height; if (width > 0 && height > 0) { int right = width; int midY = height / 2; String text = Text; int tRight = 0; long textColor = getPaintingTextColor(); if (text != null && text.Length > 0) { FCFont font = Font; FCSize tSize = paint.textSize(text, font); FCRect tRect = new FCRect(); tRect.left = 10; tRect.top = midY - tSize.cy / 2 + 2; tRect.right = tRect.left + tSize.cx; tRect.bottom = tRect.top + tSize.cy; paint.drawText(text, textColor, font, tRect); tRight = tRect.right + 4; } //绘制选中 if (m_checked) { FCRect eRect = new FCRect(tRight, height / 2 - 4, tRight + 8, height / 2 + 4); paint.fillEllipse(textColor, eRect); } //画子菜单的提示箭头 if (m_items.size() > 0) { FCPoint point1 = new FCPoint(), point2 = new FCPoint(), point3 = new FCPoint(); FCMenu menu = m_parentMenu; if (m_parentItem != null) { menu = m_parentItem.DropDownMenu; } FCLayoutStyle layoutStyle = menu.LayoutStyle; //横向 if (layoutStyle == FCLayoutStyle.LeftToRight || layoutStyle == FCLayoutStyle.RightToLeft) { point1.x = right - 25; point1.y = midY - 2; point2.x = right - 14; point2.y = midY - 2; point3.x = right - 20; point3.y = midY + 4; } //纵向 else { point1.x = right - 15; point1.y = midY; point2.x = right - 25; point2.y = midY - 5; point3.x = right - 25; point3.y = midY + 5; } FCPoint[] points = new FCPoint[] { point1, point2, point3 }; paint.fillPolygon(textColor, points); } } }
/// <summary> /// 重绘前景方法 /// </summary> /// <param name="paint">绘图对象</param> /// <param name="clipRect">裁剪区域</param> public override void onPaintBackground(FCPaint paint, FCRect clipRect) { int width = Width; int height = Height; FCRect rect = new FCRect(0, 0, width, height); long backColor = FCDraw.FCCOLORS_WINDOWBACKCOLOR; long foreColor = FCColor.argb(255, 255, 255); if (paint.supportTransparent()) { backColor = FCDraw.FCCOLORS_WINDOWBACKCOLOR2; } long borderColor = FCColor.argb(50, 105, 217); if (m_tick >= 200) { borderColor = FCColor.argb(255 - (m_tick - 200) * 2, 50, 105, 217); foreColor = FCColor.argb(255 - (m_tick - 200) * 2, 255, 255, 255); } int dw1 = 30; int dw2 = 50; int dSize = 10; int dSize2 = 20; if (m_tick >= 200) { dw1 += (m_tick - 200) / 6; dw2 += (m_tick - 200) / 6; dSize += (m_tick - 200) / 6; dSize2 += (m_tick - 200) / 6; } FCPoint[] points1 = new FCPoint[6]; points1[0] = new FCPoint(dSize, dw1 + dSize); points1[1] = new FCPoint(dSize + dw1, dSize); points1[2] = new FCPoint(width - dSize, dSize); points1[3] = new FCPoint(width - dSize, height - dw2 - dSize2); points1[4] = new FCPoint(width - dSize - dw2, height - dSize2); points1[5] = new FCPoint(dSize, height - dSize2); paint.fillGradientPolygon(FCColor.argb(255, 9, 30, 42), FCColor.argb(200, 9, 30, 42), points1, m_tick); //paint.fillPolygon(backColor, points1); paint.drawPolygon(borderColor, 3, 0, points1); paint.drawLine(borderColor, 2, 0, width - dSize - 30, 1, width - 1, 1); paint.drawLine(borderColor, 2, 0, width - 1, 1, width - 1, dSize * 2); paint.drawLine(borderColor, 2, 0, width - dSize - 20, dSize + 5, width - dSize - 5, dSize + 5); paint.drawLine(borderColor, 2, 0, width - dSize - 5, dSize + 5, width - dSize - 5, dSize + 20); FCPoint[] points2 = new FCPoint[4]; points2[0] = new FCPoint(dSize + 10, dSize + dw1 + 30); points2[1] = new FCPoint(dSize + 10, dSize + dw1 + 2); points2[2] = new FCPoint(dSize + dw1 + 2, dSize + 10); points2[3] = new FCPoint(dSize + dw1 + 30, dSize + 10); paint.drawPolyline(borderColor, 2, 0, points2); paint.drawLine(borderColor, 2, 0, dSize + dw1 + 31, dSize + 10, dSize + dw1 + 50, dSize + 10); paint.drawLine(borderColor, 2, 0, dSize + dw1 + 10, dSize + 18, dSize + dw1 + 40, dSize + 18); paint.drawLine(borderColor, 2, 0, dSize + 10, height - dSize * 2 - 8, dSize + 60, height - dSize * 2 - 8); FCPoint[] points3 = new FCPoint[4]; points3[0] = new FCPoint(dSize + 14, height - dSize2 - 8); points3[1] = new FCPoint(dSize + 18, height - dSize2 - 12); points3[2] = new FCPoint(dSize + 30, height - dSize2 - 12); points3[3] = new FCPoint(dSize + 34, height - dSize2 - 8); paint.fillPolygon(borderColor, points3); FCPoint[] points4 = new FCPoint[6]; points4[0] = new FCPoint(dSize, height - dSize2 - 20); points4[1] = new FCPoint(dSize - 8, height - dSize2 - 10); points4[2] = new FCPoint(dSize - 8, height - 4 - dSize); points4[3] = new FCPoint(dSize + 16, height - 4 - dSize); points4[4] = new FCPoint(dSize + 20, height - dSize2); points4[5] = new FCPoint(dSize, height - dSize2); paint.fillPolygon(borderColor, points4); FCPoint[] points5 = new FCPoint[4]; points5[0] = new FCPoint(width - dSize, height - dSize2 - dw2 - 20); points5[1] = new FCPoint(width - dSize - 4, height - dSize2 - dw2 - 16); points5[2] = new FCPoint(width - dSize - 4, height - dSize2 - dw2); points5[3] = new FCPoint(width - dSize, height - dSize2 - dw2); paint.fillPolygon(borderColor, points5); FCPoint[] points6 = new FCPoint[4]; points6[0] = new FCPoint(width - dSize, height - dSize2 - dw2); points6[1] = new FCPoint(width - dSize - 4, height - dSize2 - dw2 - 2); points6[2] = new FCPoint(width - dSize - 22, height - dSize2 - dw2 + 16); points6[3] = new FCPoint(width - dSize - 20, height - dSize2 - dw2 + 22); paint.fillPolygon(borderColor, points6); FCPoint[] points7 = new FCPoint[3]; points7[0] = new FCPoint(width - 1, height - dSize2 - dw2 - 30); points7[1] = new FCPoint(width - 1, height - dSize2 - dw2 + 3); points7[2] = new FCPoint(width - 1 - dw2 + 20, height - dSize2 - 16); paint.drawPolyline(borderColor, 2, 0, points7); FCPoint[] points8 = new FCPoint[3]; points8[0] = new FCPoint(width - 1 - dw2 + 19, height - dSize2 - 15); points8[1] = new FCPoint(width - dSize - dw2 + 1, height - dSize + 3); points8[2] = new FCPoint(width - dSize - dw2 - 25, height - dSize + 3); paint.drawPolyline(borderColor, 2, 0, points8); FCPoint[] points9 = new FCPoint[6]; points9[0] = new FCPoint(width - dSize - dw2 + 1, height - dSize + 3); points9[1] = new FCPoint(width - dSize - dw2 - 14, height - dSize + 3); points9[2] = new FCPoint(width - dSize - dw2 - 10, height - dSize + 8); points9[3] = new FCPoint(width - dSize - dw2 + 3, height - dSize + 8); points9[4] = new FCPoint(width - dSize - dw2 + 16, height - dSize - 6); points9[5] = new FCPoint(width - dSize - dw2 + 16, height - dSize - 14); paint.fillPolygon(borderColor, points9); int rwidth = width * 3 / 5; if (rwidth > width - dSize * 2 - dw2) { rwidth = width - dSize2 * 2 - dw2; } FCPoint[] points10 = new FCPoint[4]; points10[0] = new FCPoint(rwidth - 8, height - dSize2 - 6); points10[1] = new FCPoint(rwidth - 12, height - dSize2); points10[2] = new FCPoint(rwidth + 12, height - dSize2); points10[3] = new FCPoint(rwidth + 8, height - dSize2 - 6); paint.fillPolygon(borderColor, points10); rwidth = width * 7 / 10; if (rwidth > width - 30) { rwidth = width - 30; } FCPoint[] points11 = new FCPoint[4]; points11[0] = new FCPoint(rwidth - 16, dSize - 6); points11[1] = new FCPoint(rwidth - 20, dSize); points11[2] = new FCPoint(rwidth + 20, dSize); points11[3] = new FCPoint(rwidth + 16, dSize - 6); paint.fillPolygon(borderColor, points11); FCDraw.drawText(paint, Text, foreColor, Font, 100, 15); if (m_tick > 200) { int count = (m_tick - 200) / 8 + 1; int left = 80; for (int i = 0; i < count; i++) { FCRect pRect = new FCRect(left, height - 10, left + 8, height - 6); paint.fillRect(borderColor, pRect); left += 10; } left = 15; int top = 80; count = (m_tick - 200) / 10 + 1; for (int i = 0; i < count; i++) { FCRect pRect = new FCRect(left, top, left + 8, top + 6); paint.fillRect(borderColor, pRect); top += 10; } } }