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()); } }
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); } }
void MythUIEditBar::AddBar(MythUIShape *shape, MythUIImage *image, const QRect &area) { MythUIType *add = GetNew(shape, image); if (add) { MythUIShape *shape = dynamic_cast<MythUIShape*>(add); MythUIImage *image = dynamic_cast<MythUIImage*>(add); if (shape) shape->SetCropRect(area.left(), area.top(), area.width(), area.height()); if (image) image->SetCropRect(area.left(), area.top(), area.width(), area.height()); add->SetPosition(area.left(), area.top()); } }
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); while (regions2.hasNext() && keeparea.isValid()) { QPair<float, float> region = regions2.next(); int left = (int)((region.first * keeparea.width()) + 0.5f); int right = (int)((region.second * keeparea.width()) + 0.5f); if (left >= right) right = left + 1; if (keep) { AddBar(barshape, barimage, QRect(left, keeparea.top(), right - left, keeparea.height())); } if (keeptoleft && (region.second < 1.0f)) AddMark(leftshape, leftimage, right, true); if (keeptoright && (region.first > 0.0f)) AddMark(rightshape, rightimage, left, false); } if (position) position->MoveToTop(); }