本文整理汇总了C++中JPainter类的典型用法代码示例。如果您正苦于以下问题:C++ JPainter类的具体用法?C++ JPainter怎么用?C++ JPainter使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了JPainter类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: HilightIfSelected
void
CMLineIndexTable::TableDrawCell
(
JPainter& p,
const JPoint& cell,
const JRect& rect
)
{
HilightIfSelected(p, cell, rect);
if (JIndex(cell.x) == kBreakpointColumn)
{
DrawBreakpoints(p, cell, rect);
}
else if (JIndex(cell.x) == kExecPointColumn && cell.y == itsCurrentLineIndex)
{
// We can't use a static polygon because line heights can vary,
// e.g. due to underlines.
const JCoordinate delta = rect.height()/2;
JPolygon poly;
poly.AppendElement(JPoint(rect.left+kMarginWidth, rect.top));
poly.AppendElement(JPoint(rect.left+kMarginWidth+delta, rect.top + delta));
poly.AppendElement(JPoint(rect.left+kMarginWidth, rect.top + 2*delta));
p.SetPenColor(GetCurrentLineMarkerColor());
p.SetFilling(kJTrue);
p.Polygon(poly);
p.SetPenColor(GetColormap()->GetBlackColor());
p.SetFilling(kJFalse);
p.Polygon(poly);
}
else if (JIndex(cell.x) == kLineNumberColumn)
{
p.SetFont(itsText->GetDefaultFont());
JRect r = rect;
r.right -= kMarginWidth;
const JString str = GetLineText(cell.y);
p.String(r, str, JPainter::kHAlignRight);
}
}
示例2: JXDrawUpFrame
void
JXRowHeaderWidget::TableDrawCell
(
JPainter& p,
const JPoint& cell,
const JRect& rect
)
{
JXDrawUpFrame(p, rect, kCellFrameWidth);
JString str;
JBoolean hasTitle = kJFalse;
if (itsTitles != NULL)
{
const JString* title = itsTitles->NthElement(cell.y);
if (title != NULL)
{
str = *title;
hasTitle = kJTrue;
}
}
if (!hasTitle)
{
str = JString(cell.y, JString::kBase10);
}
p.SetFont(JGetDefaultFontName(), kJDefaultRowColHeaderFontSize,
JFontStyle(kJTrue, kJFalse, 0, kJFalse, (p.GetColormap())->GetBlackColor()));
p.String(rect, str, JPainter::kHAlignCenter, JPainter::kVAlignCenter);
const JCoordinate wmin = p.GetStringWidth(str) + 2*itsHMarginWidth;
if (rect.width() < wmin && itsMaxBcastWidth < wmin)
{
Broadcast(NeedsToBeWidened(wmin - itsMaxBcastWidth));
itsMaxBcastWidth = wmin;
}
}
示例3: HilightIfSelected
void
GLFitDescriptionList::TableDrawCell
(
JPainter& p,
const JPoint& cell,
const JRect& rect
)
{
HilightIfSelected(p, cell, rect);
const JString* curveName = itsNameList->NthElement(cell.y);
const GLFitDescription& fd = GetFitManager()->GetFitDescription(cell.y);
JRect irect = rect;
irect.right = rect.left + kIconWidth;
if (fd.GetType() == GLFitDescription::kPolynomial)
{
p.Image(*itsPolyIcon, itsPolyIcon->GetBounds(), irect);
}
else if (fd.GetType() == GLFitDescription::kNonLinear)
{
p.Image(*itsNonLinearIcon, itsNonLinearIcon->GetBounds(), irect);
}
else if (fd.GetType() == GLFitDescription::kModule)
{
p.Image(*itsExecutableIcon, itsExecutableIcon->GetBounds(), irect);
}
else if (fd.GetType() >= GLFitDescription::kBLinear)
{
p.Image(*itsBuiltInIcon, itsBuiltInIcon->GetBounds(), irect);
}
JRect r = rect;
r.left += kHMarginWidth + kIconWidth;
p.String(r, *curveName, JPainter::kHAlignLeft, JPainter::kVAlignCenter);
}
示例4:
void
FitParmsTable::TableDrawCell
(
JPainter& p,
const JPoint& cell,
const JRect& rect
)
{
JString* str;
p.SetFont(GetFontManager()->GetDefaultFont());
JRect r = rect;
if (cell.x == 1)
{
r.right -= kHMarginWidth;
str = itsCol1->NthElement(cell.y);
p.String(r, *str, JPainter::kHAlignRight, JPainter::kVAlignCenter);
}
else
{
r.left += kHMarginWidth;
str = itsCol2->NthElement(cell.y);
p.String(r, *str, JPainter::kHAlignLeft, JPainter::kVAlignCenter);
}
}
示例5: HilightIfSelected
void
JXStringTable::TableDrawCell
(
JPainter& p,
const JPoint& cell,
const JRect& rect
)
{
JPoint editCell;
if (!GetEditedCell(&editCell) || cell != editCell)
{
HilightIfSelected(p, cell, rect);
JSize fontSize;
const JString& fontName = GetFont(&fontSize);
p.SetFont(fontName, fontSize, GetCellStyle(cell));
const JString& str = itsStringData->GetString(cell);
JRect r = rect;
r.left += kHMarginWidth;
p.String(r, str, JPainter::kHAlignLeft, JPainter::kVAlignCenter);
}
}
示例6: HilightIfSelected
void
JX2DCurveNameList::TableDrawCell
(
JPainter& p,
const JPoint& cell,
const JRect& rect
)
{
HilightIfSelected(p, cell, rect);
const JString* curveName = itsNameList->NthElement(cell.y);
JRect r = rect;
r.left += kHMarginWidth;
p.String(r, *curveName, JPainter::kHAlignLeft, JPainter::kVAlignCenter);
}
示例7:
void
JXExprWidget::PrivateDraw
(
JPainter& p,
const JRect& rect
)
{
// adjust the origin so the expression is centered in Bounds
JPoint delta;
GetDrawingOffset(&delta);
p.ShiftOrigin(delta);
// draw the function
EIPDraw(p);
}
示例8: HilightIfSelected
void
GLFitParameterTable::TableDrawCell
(
JPainter& p,
const JPoint& cell,
const JRect& rect
)
{
HilightIfSelected(p, cell, rect);
JIndex realIndex = cell.x;
if (realIndex == kStartColIndex && !itsHasStartValues)
{
realIndex = kFitColIndex;
}
else if (realIndex == kFitColIndex && !itsHasStartValues)
{
realIndex = kErrorColIndex;
}
JString str;
if (realIndex == kNameColIndex)
{
str = *(itsNameList->NthElement(cell.y));
}
else if (realIndex == kStartColIndex)
{
str = JString(itsStartValues->GetElement(cell.y), JString::kPrecisionAsNeeded, JString::kStandardExponent, 0, 5);
}
else if (realIndex == kFitColIndex)
{
str = JString(itsFitValues->GetElement(cell.y), JString::kPrecisionAsNeeded, JString::kStandardExponent, 0, 5);
}
else if (realIndex == kErrorColIndex)
{
str = JString(itsErrorValues->GetElement(cell.y), JString::kPrecisionAsNeeded, JString::kStandardExponent, 0, 5);
}
JRect r = rect;
r.left += kHMarginWidth;
p.String(r, str, JPainter::kHAlignLeft, JPainter::kVAlignCenter);
}
示例9: HilightIfSelected
void
SelectionTable::TableDrawCell
(
JPainter& p,
const JPoint& cell,
const JRect& rect
)
{
// JTable keeps track of what's selected. If we want just
// basic hilighting of the selected cells, we can have JTable
// do it with this call:
HilightIfSelected(p, cell, rect);
// Convert the array's current element into a JString.
JString cellNumber(itsData->GetElement(cell.y));
// Draw the JString that holds the value.
p.String(rect, cellNumber, JPainter::kHAlignLeft, JPainter::kVAlignTop);
}
示例10:
void
CMLineIndexTable::DrawBreakpoint
(
const CMBreakpoint* bp,
JPainter& p,
JColormap* cmap,
const JRect& rect
)
{
const JColorIndex color =
!bp->IsEnabled() ? cmap->GetGreenColor() :
bp->HasCondition() ? cmap->GetYellowColor() : cmap->GetRedColor();
p.SetPenColor(color);
p.SetFilling(kJTrue);
p.Ellipse(rect);
if (bp->GetAction() != CMBreakpoint::kRemoveBreakpoint)
{
p.SetPenColor(cmap->GetBlackColor());
p.SetFilling(kJFalse);
p.Ellipse(rect);
}
}
示例11: HilightIfSelected
void
GPMProcessTreeList::TableDrawCell
(
JPainter& p,
const JPoint& cell,
const JRect& rect
)
{
GPMProcessTable::DrawRowBackground(p, cell, rect, (p.GetColormap())->GetGrayColor(95));
if (cell.x == GPMProcessList::kTreeOpenClose ||
cell.x == GPMProcessList::kTreeCommand)
{
JXNamedTreeListWidget::TableDrawCell(p, cell, rect);
return;
}
HilightIfSelected(p, cell, rect);
const JTreeNode* node = GetTreeList()->GetNode(cell.y);
const GPMProcessEntry& entry = * dynamic_cast<const GPMProcessEntry*>(node);
JString str;
JPainter::HAlignment halign = JPainter::kHAlignRight;
if (cell.x == GPMProcessList::kTreeState)
{
GPMProcessTable::DrawProcessState(entry, p, rect, *itsZombieImage);
}
else if (cell.x == GPMProcessList::kTreePID)
{
str = JString(entry.GetPID(), JString::kBase10);
}
else if (cell.x == GPMProcessList::kTreeUser)
{
str = entry.GetUser();
halign = JPainter::kHAlignLeft;
}
/* else if (cell.x == GPMProcessList::kTreePPID)
{
str = JString(entry.GetPPID(), JString::kBase10);
}
else if (cell.x == GPMProcessList::kTreePriority)
{
str = JString(entry.GetPriority(), JString::kBase10);
}
*/ else if (cell.x == GPMProcessList::kTreeNice)
{
str = JString(entry.GetNice(), JString::kBase10);
}
else if (cell.x == GPMProcessList::kTreeSize)
{
str = JString(entry.GetSize(), JString::kBase10);
}
/* else if (cell.x == GPMProcessList::kTreeResident)
{
str = JString(entry.GetResident(), JString::kBase10);
}
else if (cell.x == GPMProcessList::kTreeShare)
{
str = JString(entry.GetShare(), JString::kBase10);
}
*/ else if (cell.x == GPMProcessList::kTreeCPU)
{
str = JString(entry.GetPercentCPU(), 1);
}
else if (cell.x == GPMProcessList::kTreeMemory)
{
str = JString(entry.GetPercentMemory(), 1);
}
else if (cell.x == GPMProcessList::kTreeTime)
{
str = JString(entry.GetTime(), JString::kBase10);
}
JRect r = rect;
r.left += kHMarginWidth;
r.right -= kHMarginWidth;
p.JPainter::String(r, str, halign, JPainter::kVAlignCenter);
}
示例12: list
void
TestWidget::HandleMouseDown
(
const JPoint& pt,
const JXMouseButton button,
const JSize clickCount,
const JXButtonStates& buttonStates,
const JXKeyModifiers& modifiers
)
{
if (button == kJXLeftButton && clickCount == 1 && itsHomeRect.Contains(pt))
{
JString dir;
if (JGetHomeDirectory(&dir))
{
JPtrArray<JString> list(JPtrArrayT::kForgetAll);
list.Append(&dir);
// Normally, you should use the other constructor and then
// override JXWidget::GetSelectionData().
JXFileSelection* data = jnew JXFileSelection(GetDisplay(), list);
assert( data != NULL );
BeginDND(pt, buttonStates, modifiers, data);
}
}
else if (button == kJXLeftButton && clickCount == 1)
{
JPainter* p = CreateDragInsidePainter();
p->Rect(JRect(pt, pt));
}
else if (button == kJXMiddleButton && clickCount == 1)
{
itsAnimButton->Place(pt.x, pt.y);
}
else if (button == kJXRightButton && clickCount == 1 && !modifiers.meta())
{
JRect r = itsAnimButton->GetFrame();
if (pt.x > r.left && pt.y > r.top)
{
itsAnimButton->SetSize(pt.x-r.left, pt.y-r.top);
}
}
else if (button == kJXRightButton && clickCount == 1 && modifiers.meta())
{
if (itsSecretMenu->PopUp(this, pt, buttonStates, modifiers))
{
return;
}
else
{
(JGetUserNotification())->ReportError("Unable to open secret menu!");
}
}
else if (ScrollForWheel(button, modifiers))
{
// work has been done
}
else if ((clickCount == 2 && its2Rect.Contains(pt)) ||
(clickCount == 3 && its3Rect.Contains(pt)))
{
GetNewSize();
}
itsStartPt = itsPrevPt = pt;
}
示例13: GetColormap
void
TestWidget::DrawStuff
(
JPainter& p
)
{
JIndex i;
JXColormap* colormap = GetColormap();
p.SetPenColor(colormap->GetGreenColor());
JRect ellipseRect(100,50,150,300);
p.Ellipse(ellipseRect);
p.SetPenColor(colormap->GetBlackColor());
if (itsFillFlag)
{
p.SetFilling(kJTrue);
}
JRect ap = GetAperture();
p.Line(ap.topLeft(), ap.bottomRight());
p.Line(ap.topRight(), ap.bottomLeft());
p.SetLineWidth(2);
p.SetFontName("Times");
p.SetFontSize(18);
p.Image(*itsHomeImage, itsHomeImage->GetBounds(), itsHomeRect);
its2Rect = JRect(150, 5, 200, 30);
p.SetPenColor(colormap->GetRedColor());
p.Rect(its2Rect);
p.SetFontStyle(colormap->GetRedColor());
p.String(its2Rect.topLeft(), "2",
its2Rect.width(), JPainter::kHAlignCenter,
its2Rect.height(), JPainter::kVAlignCenter);
its3Rect = JRect(10, 150, 40, 200);
p.SetPenColor(colormap->GetBlueColor());
p.Rect(its3Rect);
p.SetFontStyle(colormap->GetBlueColor());
p.String(its3Rect.topLeft(), "3",
its3Rect.width(), JPainter::kHAlignCenter,
its3Rect.height(), JPainter::kVAlignCenter);
p.SetLineWidth(1);
p.SetFont(GetFontManager()->GetDefaultFont());
p.ShiftOrigin(10,10);
p.Point(0,0);
for (i=1; i<=itsRandPointCount; i++)
{
p.Point(itsRNG.UniformLong(0,200), itsRNG.UniformLong(0,200));
}
p.SetPenColor(colormap->GetRedColor());
p.Line(10,0, 0,10);
p.SetPenColor(colormap->GetGreenColor());
p.LineTo(10,20);
p.SetPenColor(colormap->GetBlueColor());
p.LineTo(0,30);
p.ShiftOrigin(2,0);
JPoint textPt(40,30);
p.String( 0.0, textPt, "Hello");
p.String( 90.0, textPt, "Hello");
p.String(180.0, textPt, "Hello");
p.String(270.0, textPt, "Hello");
p.ShiftOrigin(-2, 0);
p.SetPenColor(colormap->GetBlueColor());
JRect r(70, 290, 150, 390);
p.Rect(r);
/*
for (JCoordinate y=70; y<150; y++)
{
p.SetPenColor(colormap->GetGrayColor(y-50));
p.Line(290,y, 390,y);
}
for (JCoordinate x=290; x<390; x++)
{
p.SetPenColor(colormap->GetGrayColor(x-290));
p.Line(x,70, x,150);
}
p.SetLineWidth(2);
for (JCoordinate y=70; y<150; y+=2)
{
p.SetPenColor(colormap->GetGrayColor(y%4 ? 40 : 60));
p.Line(290,y, 390,y);
}
p.SetLineWidth(1);
p.SetLineWidth(2);
//.........这里部分代码省略.........
示例14: HilightIfSelected
void
CBCommandTable::TableDrawCell
(
JPainter& p,
const JPoint& cell,
const JRect& rect
)
{
JPoint editCell;
if (GetEditedCell(&editCell) && cell == editCell)
{
return;
}
HilightIfSelected(p, cell, rect);
const CBCommandManager::CmdInfo info = itsCmdList->GetElement(cell.y);
if (info.separator)
{
JPoint pt1 = rect.bottomLeft(), pt2 = rect.bottomRight();
pt1.y--;
pt2.y--;
p.Line(pt1, pt2);
}
if (cell.x == kOptionsColumn)
{
JString s;
if (info.isMake)
{
s += ",M";
}
if (info.isVCS)
{
s += ",V";
}
if (info.saveAll)
{
s += ",S";
}
if (info.oneAtATime)
{
s += ",O";
}
if (info.useWindow)
{
s += ",W";
}
if (info.raiseWindowWhenStart)
{
s += ",R";
}
if (info.beepWhenFinished)
{
s += ",B";
}
if (!s.IsEmpty())
{
if (s.GetFirstCharacter() == ',')
{
s.RemoveSubstring(1,1);
}
p.String(rect, s, JPainter::kHAlignCenter, JPainter::kVAlignCenter);
}
}
else
{
const JString* s = NULL;
JFontStyle style;
if (cell.x == kMenuTextColumn)
{
s = info.menuText;
}
else if (cell.x == kMenuShortcutColumn)
{
s = info.menuShortcut;
}
else if (cell.x == kScriptNameColumn)
{
s = info.name;
}
else if (cell.x == kCommandColumn)
{
s = info.cmd;
}
else if (cell.x == kPathColumn)
{
s = info.path;
style.color =
CBCommandPathInput::GetTextColor(*s, itsBasePath, kJFalse, p.GetColormap());
}
assert( s != NULL );
p.SetFont(itsFontName, itsFontSize, style);
JRect r = rect;
r.left += kHMarginWidth;
p.String(r, *s, JPainter::kHAlignLeft, JPainter::kVAlignCenter);
}
//.........这里部分代码省略.........
示例15: GetColormap
void
TestWidget::DrawStuff
(
JPainter& p
)
{
JIndex i;
JXColormap* colormap = GetColormap();
p.SetPenColor(colormap->GetGreenColor());
JRect ellipseRect(100,50,150,300);
p.Ellipse(ellipseRect);
p.SetPenColor(colormap->GetBlackColor());
if (itsFillFlag)
{
p.SetFilling(kJTrue);
}
JRect ap = GetAperture();
p.Line(ap.topLeft(), ap.bottomRight());
p.Line(ap.topRight(), ap.bottomLeft());
p.SetLineWidth(2);
p.SetFontName(JXGetTimesFontName());
p.SetFontSize(18);
p.Image(*itsHomeImage, itsHomeImage->GetBounds(), itsHomeRect);
its2Rect = JRect(150, 5, 200, 30);
p.SetPenColor(colormap->GetRedColor());
p.Rect(its2Rect);
p.SetFontStyle(colormap->GetRedColor());
p.String(its2Rect.topLeft(), "2",
its2Rect.width(), JPainter::kHAlignCenter,
its2Rect.height(), JPainter::kVAlignCenter);
its3Rect = JRect(10, 150, 40, 200);
p.SetPenColor(colormap->GetBlueColor());
p.Rect(its3Rect);
p.SetFontStyle(colormap->GetBlueColor());
p.String(its3Rect.topLeft(), "3",
its3Rect.width(), JPainter::kHAlignCenter,
its3Rect.height(), JPainter::kVAlignCenter);
p.SetLineWidth(1);
p.SetFont(JGetDefaultFontName(), kJXDefaultFontSize, colormap->GetBlackColor());
p.ShiftOrigin(10,10);
p.Point(0,0);
for (i=1; i<=itsRandPointCount; i++)
{
p.Point(itsRNG.UniformLong(0,200), itsRNG.UniformLong(0,200));
}
p.SetPenColor(colormap->GetRedColor());
p.Line(10,0, 0,10);
p.SetPenColor(colormap->GetGreenColor());
p.LineTo(10,20);
p.SetPenColor(colormap->GetBlueColor());
p.LineTo(0,30);
p.ShiftOrigin(2,0);
JPoint textPt(40,30);
p.String( 0.0, textPt, "Hello");
p.String( 90.0, textPt, "Hello");
p.String(180.0, textPt, "Hello");
p.String(270.0, textPt, "Hello");
p.Rect(310, 70, 80, 80);
p.String( 0.0, 310, 70, "Hello", 80, JPainter::kHAlignCenter,
80, JPainter::kVAlignCenter);
p.String( 90.0, 310,150, "Hello", 80, JPainter::kHAlignCenter,
80, JPainter::kVAlignCenter);
p.String(180.0, 390,150, "Hello", 80, JPainter::kHAlignCenter,
80, JPainter::kVAlignCenter);
p.String(270.0, 390, 70, "Hello", 80, JPainter::kHAlignCenter,
80, JPainter::kVAlignCenter);
p.Rect(200, 10, 100, 50);
p.String(200, 10, "Hello", 100, JPainter::kHAlignLeft);
p.String(200, 10+p.GetLineHeight(), "Hello", 100, JPainter::kHAlignCenter);
p.String(200, 10+2*p.GetLineHeight(), "Hello", 100, JPainter::kHAlignRight);
p.SetPenColor(colormap->GetYellowColor());
JRect r(0,11,80,91);
p.Rect(r);
r.Shrink(1,1);
p.SetPenColor(colormap->GetBlueColor());
p.Ellipse(r);
r.Shrink(1,1);
p.SetPenColor(colormap->GetRedColor());
p.Arc(r, 270.0-45.0, -270.0);
JPolygon poly;
poly.AppendElement(JPoint(0,85));
//.........这里部分代码省略.........