本文整理汇总了C++中MythUIType::GetArea方法的典型用法代码示例。如果您正苦于以下问题:C++ MythUIType::GetArea方法的具体用法?C++ MythUIType::GetArea怎么用?C++ MythUIType::GetArea使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MythUIType
的用法示例。
在下文中一共展示了MythUIType::GetArea方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OptimiseDisplayedArea
void SubtitleScreen::OptimiseDisplayedArea(void)
{
if (!m_refreshArea)
return;
QRegion visible;
QListIterator<MythUIType *> i(m_ChildrenList);
while (i.hasNext())
{
MythUIType *img = i.next();
visible = visible.united(img->GetArea());
}
if (visible.isEmpty())
return;
QRect bounding = visible.boundingRect();
bounding = bounding.translated(m_safeArea.topLeft());
bounding = m_safeArea.intersected(bounding);
int left = m_safeArea.left() - bounding.left();
int top = m_safeArea.top() - bounding.top();
SetArea(MythRect(bounding));
i.toFront();;
while (i.hasNext())
{
MythUIType *img = i.next();
img->SetArea(img->GetArea().translated(left, top));
}
}
示例2: AddMark
void MythUIEditBar::AddMark(MythUIShape *shape, MythUIImage *image,
int start, bool left)
{
MythUIType *add = GetNew(shape, image);
if (add)
{
if (left)
start -= add->GetArea().width();
add->SetPosition(start, add->GetArea().top());
}
}
示例3: OptimiseDisplayedArea
void TeletextScreen::OptimiseDisplayedArea(void)
{
VideoOutput *vo = m_player->GetVideoOutput();
if (!vo)
return;
MythPainter *osd_painter = vo->GetOSDPainter();
if (!osd_painter)
return;
QHashIterator<int, QImage*> it(m_rowImages);
while (it.hasNext())
{
it.next();
MythImage* image = osd_painter->GetFormatImage();
if (!image || !it.value())
continue;
int row = it.key();
image->Assign(*(it.value()));
MythUIImage *uiimage = new MythUIImage(this, QString("ttrow%1")
.arg(row));
if (uiimage)
{
uiimage->SetImage(image);
uiimage->SetArea(MythRect(0, row * m_rowHeight,
m_safeArea.width(), m_rowHeight * 2));
}
}
QRegion visible;
QListIterator<MythUIType *> i(m_ChildrenList);
while (i.hasNext())
{
MythUIType *img = i.next();
visible = visible.united(img->GetArea());
}
if (visible.isEmpty())
return;
QRect bounding = visible.boundingRect();
bounding = bounding.translated(m_safeArea.topLeft());
bounding = m_safeArea.intersected(bounding);
int left = m_safeArea.left() - bounding.left();
int top = m_safeArea.top() - bounding.top();
SetArea(MythRect(bounding));
i.toFront();;
while (i.hasNext())
{
MythUIType *img = i.next();
img->SetArea(img->GetArea().translated(left, top));
}
}
示例4: Finalize
void MythUIScrollBar::Finalize()
{
MythUIType *slider = GetChild("slider");
if (slider)
m_sliderArea = slider->GetArea();
CalculatePosition();
}
示例5: CalculatePosition
void MythUIScrollBar::CalculatePosition(void)
{
if (m_maximum > 0)
Show();
else
{
Hide();
return;
}
MythUIType *slider = GetChild("slider");
if (!slider)
{
LOG(VB_GENERAL, LOG_ERR, "Slider element doesn't exist");
return;
}
float percentage = (float)m_sliderPosition / m_maximum;
float relativeSize = (float)m_pageStep / (m_maximum + m_pageStep);
MythRect newSliderArea = slider->GetArea();
MythRect fillArea = GetArea();
QPoint endPos(newSliderArea.left(), newSliderArea.top());
if (m_layout == LayoutHorizontal)
{
int width = qMax((int)(fillArea.width() * relativeSize + 0.5),
m_sliderArea.width());
newSliderArea.setWidth(width);
endPos.setX((int)((fillArea.width() - width) * percentage + 0.5));
}
else
{
int height = qMax((int)(fillArea.height() * relativeSize + 0.5),
m_sliderArea.height());
newSliderArea.setHeight(height);
endPos.setY((int)((fillArea.height() - height) * percentage + 0.5));
}
slider->SetArea(newSliderArea);
slider->SetPosition(endPos);
if (m_hideDelay > 0)
{
if (m_timerId)
killTimer(m_timerId);
m_timerId = startTimer(m_hideDelay);
AdjustAlpha(1, 10, 0, 255);
}
}
示例6: Create
bool MythUIVirtualKeyboard::Create()
{
if (!LoadWindowFromXML("keyboard/keyboard.xml", "keyboard", this))
return false;
BuildFocusList();
loadKeyDefinitions(gCoreContext->GetLanguageAndVariant());
updateKeys(true);
int screenWidth, screenHeight;
float xmult, ymult;
GetMythUI()->GetScreenSettings(screenWidth, xmult, screenHeight, ymult);
MythRect editArea = m_parentEdit->GetArea();
MythRect area = GetArea();
MythPoint newPos;
//FIXME this assumes the edit is a direct child of the parent screen
MythUIType *parentScreen = NULL;
parentScreen = dynamic_cast<MythUIType *>(m_parentEdit->parent());
if (parentScreen)
{
editArea.moveTopLeft(QPoint(editArea.x() + parentScreen->GetArea().x(),
editArea.y() + parentScreen->GetArea().y()));
}
switch (m_preferredPos)
{
case VK_POSABOVEEDIT:
if (editArea.y() - area.height() - 5 > 0)
{
newPos = QPoint(editArea.x() + editArea.width() / 2 - area.width() / 2,
editArea.y() - area.height() - 5);
}
else
{
newPos = QPoint(editArea.x() + editArea.width() / 2 - area.width() / 2,
editArea.y() + editArea.height() + 5);
}
break;
case VK_POSTOPDIALOG:
newPos = QPoint(screenWidth / 2 - area.width() / 2, 5);
break;
case VK_POSBOTTOMDIALOG:
newPos = QPoint(screenWidth / 2 - area.width() / 2, screenHeight - 5 - area.height());
break;
case VK_POSCENTERDIALOG:
newPos = QPoint(screenWidth / 2 - area.width() / 2, screenHeight / 2 - area.height() / 2);
break;
default:
// VK_POSBELOWEDIT
if (editArea.y() + editArea.height() + area.height() + 5 < screenHeight)
{
newPos = QPoint(editArea.x() + editArea.width() / 2 - area.width() / 2,
editArea.y() + editArea.height() + 5);
}
else
{
newPos = QPoint(editArea.x() + editArea.width() / 2 - area.width() / 2,
editArea.y() - area.height() - 5);
}
break;
}
// make sure the popup doesn't go off screen
if (newPos.x() < 5)
newPos.setX(5);
if (newPos.x() + area.width() + 5 > screenWidth)
newPos.setX(screenWidth - area.width() - 5);
if (newPos.y() < 5)
newPos.setY(5);
if (newPos.y() + area.height() + 5 > screenHeight)
newPos.setY(screenHeight - area.height() - 5);
SetPosition(newPos);
return true;
}
示例7: CalculatePosition
void MythUIProgressBar::CalculatePosition(void)
{
MythUIType *progressType = GetChild("progressimage");
if (!progressType)
{
LOG(VB_GENERAL, LOG_ERR, "Progress image doesn't exist");
return;
}
progressType->SetVisible(false);
int total = m_total - m_start;
int current = m_current - m_start;
float percentage = 0.0;
if (total <= 0 || current <= 0 || current > total)
return;
percentage = (float)current / (float)total;
progressType->SetVisible(true);
QRect fillArea = progressType->GetArea();
int height = fillArea.height();
int width = fillArea.width();
int x = fillArea.x();
int y = fillArea.y();
switch (m_effect)
{
case EffectReveal :
if (m_layout == LayoutHorizontal)
{
width = (int)((float)fillArea.width() * percentage);
}
else
{
height = (int)((float)fillArea.height() * percentage);
}
break;
case EffectSlide :
if (m_layout == LayoutHorizontal)
{
int newwidth = (int)((float)fillArea.width() * percentage);
x = width - newwidth;
width = newwidth;
}
else
{
int newheight = (int)((float)fillArea.height() * percentage);
y = height - newheight;
height = newheight;
}
break;
case EffectAnimate :
// Not implemented yet
break;
}
MythUIImage *progressImage = dynamic_cast<MythUIImage *>(progressType);
MythUIShape *progressShape = dynamic_cast<MythUIShape *>(progressType);
if (width <= 0)
width = 1;
if (height <= 0)
height = 1;
if (progressImage)
progressImage->SetCropRect(x, y, width, height);
else if (progressShape)
progressShape->SetCropRect(x, y, width, height);
SetRedraw();
}
示例8: Display
void MythUIEditBar::Display(void)
{
QRect keeparea = QRect();
QRect cutarea = QRect();
MythUIType *position = GetChild("position");
MythUIType *keep = GetChild("keep");
MythUIType *cut = GetChild("cut");
MythUIType *cuttoleft = GetChild("cuttoleft");
MythUIType *cuttoright = GetChild("cuttoright");
MythUIType *keeptoleft = GetChild("keeptoleft");
MythUIType *keeptoright = GetChild("keeptoright");
if (position)
position->SetVisible(false);
if (keep)
{
keep->SetVisible(false);
keeparea = keep->GetArea();
}
if (cut)
{
cut->SetVisible(false);
cutarea = cut->GetArea();
}
if (cuttoleft)
cuttoleft->SetVisible(false);
if (cuttoright)
cuttoright->SetVisible(false);
if (keeptoleft)
keeptoleft->SetVisible(false);
if (keeptoright)
keeptoright->SetVisible(false);
if (position && keeparea.isValid())
{
int offset = position->GetArea().width() / 2;
int newx = (int)(((float)keeparea.width() * m_editPosition) + 0.5f);
int newy = position->GetArea().top();
position->SetPosition(newx - offset, newy);
position->SetVisible(true);
}
ClearImages();
if (!m_regions.size())
{
if (keep)
keep->SetVisible(true);
return;
}
MythUIShape *barshape = dynamic_cast<MythUIShape *>(cut);
MythUIImage *barimage = dynamic_cast<MythUIImage *>(cut);
MythUIShape *leftshape = dynamic_cast<MythUIShape *>(cuttoleft);
MythUIImage *leftimage = dynamic_cast<MythUIImage *>(cuttoleft);
MythUIShape *rightshape = dynamic_cast<MythUIShape *>(cuttoright);
MythUIImage *rightimage = dynamic_cast<MythUIImage *>(cuttoright);
QListIterator<QPair<float, float> > regions(m_regions);
while (regions.hasNext() && cutarea.isValid())
{
QPair<float, float> region = regions.next();
int left = (int)((region.first * cutarea.width()) + 0.5f);
int right = (int)((region.second * cutarea.width()) + 0.5f);
if (left >= right)
right = left + 1;
if (cut)
{
AddBar(barshape, barimage, QRect(left, cutarea.top(), right - left,
cutarea.height()));
}
if (cuttoleft && (region.second < 1.0f))
AddMark(leftshape, leftimage, right, true);
if (cuttoright && (region.first > 0.0f))
AddMark(rightshape, rightimage, left, false);
}
CalcInverseRegions();
barshape = dynamic_cast<MythUIShape *>(keep);
barimage = dynamic_cast<MythUIImage *>(keep);
leftshape = dynamic_cast<MythUIShape *>(keeptoleft);
leftimage = dynamic_cast<MythUIImage *>(keeptoleft);
rightshape = dynamic_cast<MythUIShape *>(keeptoright);
rightimage = dynamic_cast<MythUIImage *>(keeptoright);
QListIterator<QPair<float, float> > regions2(m_invregions);
//.........这里部分代码省略.........