本文整理汇总了C++中TGadget::SetBounds方法的典型用法代码示例。如果您正苦于以下问题:C++ TGadget::SetBounds方法的具体用法?C++ TGadget::SetBounds怎么用?C++ TGadget::SetBounds使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TGadget
的用法示例。
在下文中一共展示了TGadget::SetBounds方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: bounds
//
/// Tiles the gadgets in the direction requested (horizontal or vertical). Derived
/// classes can adjust the spacing between gadgets.
///
/// Horizontal direction results in a row-major layout,
/// and vertical direction results in column-major layout
//
TRect
TToolBox::TileGadgets()
{
TSize cellSize;
ComputeCellSize(cellSize);
int numRows, numColumns;
ComputeNumRowsColumns(numRows, numColumns);
TRect innerRect;
GetInnerRect(innerRect);
TRect invalidRect;
invalidRect.SetEmpty();
if (Direction == Horizontal) {
// Row Major
//
int y = innerRect.top;
TGadget* g = Gadgets;
for (int r = 0; r < numRows; r++) {
int x = innerRect.left;
for (int c = 0; c < numColumns && g; c++) {
TRect bounds(TPoint(x, y), cellSize);
TRect originalBounds(g->GetBounds());
if (bounds != g->GetBounds()) {
g->SetBounds(bounds);
if (invalidRect.IsNull())
invalidRect = bounds;
else
invalidRect |= bounds;
if (originalBounds.TopLeft() != TPoint(0, 0))
invalidRect |= originalBounds;
}
x += cellSize.cx;
g = g->NextGadget();
}
y += cellSize.cy;
}
}
else {
// Column Major
//
int x = innerRect.left;
TGadget* g = Gadgets;
for (int c = 0; c < numColumns; c++) {
int y = innerRect.top;
for (int r = 0; r < numRows && g; r++) {
TRect bounds(TPoint(x, y), cellSize);
TRect originalBounds(g->GetBounds());
if (bounds != originalBounds) {
g->SetBounds(bounds);
if (invalidRect.IsNull())
invalidRect = bounds;
else
invalidRect |= bounds;
if (originalBounds.TopLeft() != TPoint(0, 0))
invalidRect |= originalBounds;
}
y += cellSize.cy;
g = g->NextGadget();
}
x += cellSize.cx;
}
}
return invalidRect;
}
示例2: IsThemeBackgroundEnabled
//.........这里部分代码省略.........
/// adjacent plain-bordered gadgets
//
void
TGadgetWindow::PositionGadget(TGadget* previous, TGadget* next, TPoint& origin)
{
// Overlap the button borders
// !CQ make sure this is right for win95. Also in regular controlbar
//
if (previous->GetBorderStyle() == TGadget::Plain &&
next->GetBorderStyle() == TGadget::Plain)
if (Direction == Horizontal)
origin.x -= TUIMetric::CxBorder;
else
origin.y -= TUIMetric::CyBorder;
}
//
/// Tiles the gadgets in the direction requested (horizontal or vertical). Calls
/// PositionGadget() to give derived classes an opportunity to adjust the spacing
/// between gadgets in their windows.
//
TRect
TGadgetWindow::TileGadgets()
{
TLayoutInfo layout(NumGadgets);
LayoutGadgets(Direction, layout);
TRect invalidRect(0,0,0,0);
int i = 0;
for (TGadget* gadget = Gadgets; gadget; gadget = gadget->Next, i++) {
TRect originalBounds = gadget->GetBounds();
TRect bounds = layout.GadgetBounds[i];
if (originalBounds != bounds) {
gadget->SetBounds(bounds);
if (originalBounds.TopLeft() != TPoint(0, 0))
invalidRect |= originalBounds;
invalidRect |= bounds;
}
}
DirtyLayout = false;
return invalidRect;
}
//
/// Helper for LayoutGadgets() to calculate horizontal tiling
//
void
TGadgetWindow::LayoutHorizontally(TLayoutInfo& layout)
{
TRect innerRect;
GetInnerRect(innerRect);
int leftM, rightM, topM, bottomM;
GetMargins(Margins, leftM, rightM, topM, bottomM);
layout.DesiredSize = TSize(0,0);
layout.GadgetBounds = new TRect[NumGadgets];
// First pass tally the width of all gadgets that don't have "WideAsPossible"
// set if any have it seet so that we can divide up the extra width
//
// NOTE: we must also take into account any adjustments to the gadget spacing
//
int wideAsPossibleWidth;
if (WideAsPossible) {
int width = 0;