Esempio n. 1
0
	HudTargetInfo::HudTargetInfo(const FRect &target_rect)
		:HudLayer(target_rect), m_hit_chance(0.0f), m_health(1.0f), m_kills(0), m_deaths(0) {
		m_anim_speed = 10.0f;
		FRect rect = this->rect();

		FRect icon_rect(s_char_icon_size);
		icon_rect += float2(rect.width() - icon_rect.width() - layer_spacing, rect.center().y - icon_rect.height() * 0.5f);
		m_char_icon = make_shared<HudCharIcon>(icon_rect);
		m_char_icon->setEnabled(true, false);
		attach(m_char_icon);
	}
Esempio n. 2
0
void LLPanelInventoryListItemBase::reshapeMiddleWidgets()
{
	LLRect icon_rect(mIconCtrl->getRect());
	icon_rect.setLeftTopAndSize(mLeftWidgetsWidth + getWidgetSpacing(), icon_rect.mTop, 
		icon_rect.getWidth(), icon_rect.getHeight());
	mIconCtrl->setShape(icon_rect);

	S32 name_left = icon_rect.mRight + getWidgetSpacing();
	S32 name_right = getLocalRect().getWidth() - mRightWidgetsWidth - getWidgetSpacing();
	LLRect name_rect(mTitleCtrl->getRect());
	name_rect.set(name_left, name_rect.mTop, name_right, name_rect.mBottom);
	mTitleCtrl->setShape(name_rect);
}
Esempio n. 3
0
//----------------------------------------------------------------------------//
void FalagardListView::createRenderGeometry(ListView* list_view)
{
    Rectf items_area(getViewRenderArea());
    glm::vec2 item_pos(getItemRenderStartPosition(list_view, items_area));

    for (size_t i = 0; i < list_view->getItems().size(); ++i)
    {
        ListViewItemRenderingState* item = list_view->getItems().at(i);
        RenderedString& rendered_string = item->d_string;
        Sizef size(item->d_size);

        size.d_width = std::max(items_area.getWidth(), size.d_width);

        Rectf item_rect;
        item_rect.left(item_pos.x);
        item_rect.top(item_pos.y);
        item_rect.setSize(size);

        if (!item->d_icon.empty())
        {
            Image& img = ImageManager::getSingleton().get(item->d_icon);

            Rectf icon_rect(item_rect);
            icon_rect.setWidth(size.d_height);
            icon_rect.setHeight(size.d_height);

            Rectf icon_clipper(icon_rect.getIntersection(items_area));

            ImageRenderSettings renderSettings(
                icon_rect, &icon_clipper,
                true, ICON_COLOUR_RECT, 1.0f);

            auto imgGeomBuffers = img.createRenderGeometry(renderSettings);

            list_view->appendGeometryBuffers(imgGeomBuffers);

            item_rect.left(item_rect.left() + icon_rect.getWidth());
        }

        Rectf item_clipper(item_rect.getIntersection(items_area));

        createRenderGeometryAndAddToItemView(list_view, rendered_string, item_rect,
            list_view->getFont(), &item_clipper, item->d_isSelected);

        item_pos.y += size.d_height;
    }
}
void SeafileTabBar::paintEvent(QPaintEvent *event)
{
    QStylePainter p(this);
    QPainter painter;
    painter.begin(this);

    for (int index = 0, total = count(); index < total; index++) {
        const QRect rect = tabRect(index);

        // QStyleOptionTabV3 tab;
        // initStyleOption(&tab, index);

        // Draw the tab background
        painter.fillRect(rect, QColor(kTabsBackgroundColor));

        // Draw the tab icon in the center
        QPoint top_left;
        top_left.setX(rect.topLeft().x() + ((rect.width() - kTabIconSize) / 2));
        top_left.setY(rect.topLeft().y() + ((rect.height() - kTabIconSize) / 2));

        QIcon icon(currentIndex() == index ? highlighted_icons_[index]
                                           : icons_[index]);
        QRect icon_rect(top_left, QSize(kTabIconSize, kTabIconSize));
        // get the device pixel radio from current painter device
        int scale_factor = 1;
#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
        scale_factor = painter.device()->devicePixelRatio();
#endif // QT5
        QPixmap icon_pixmap(icon.pixmap(QSize(kTabIconSize, kTabIconSize) * scale_factor));
#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
        icon_pixmap.setDevicePixelRatio(scale_factor);
#endif // QT5
        painter.drawPixmap(icon_rect, icon_pixmap);

        int indicator_width = count() * rect.width() / 8;

        // Draw the selected tab indicator
        if (currentIndex() == index) {
            top_left.setX(rect.bottomLeft().x() + (rect.width() / 2) - (indicator_width / 2));
            top_left.setY(rect.bottomLeft().y() - kSelectedTabBorderBottomWidth + 1);
            QRect border_bottom_rect(top_left, QSize(indicator_width, kSelectedTabBorderBottomWidth));
            painter.fillRect(border_bottom_rect, QColor(kSelectedTabBorderBottomColor));
        }
    }
}
Esempio n. 5
0
void OnyxToolBarItem::paintEvent(QPaintEvent *pe)
{
    QPainter p(this);
    if (state_ == STATE_PRESSED)
    {
        p.fillRect(rect(), Qt::black);
    }

    QRect icon_rect(QPoint(1, 1), iconSize());
    if (action_.isEnabled())
    {
        action_.icon().paint(&p, icon_rect, Qt::AlignCenter, QIcon::Normal, QIcon::On);
    }
    else
    {
        action_.icon().paint(&p, icon_rect, Qt::AlignCenter, QIcon::Disabled, QIcon::On);
    }
}
Esempio n. 6
0
void status_item_delegate::paint(QPainter* painter, 
                                 const QStyleOptionViewItem& option,
                                 const QModelIndex& index) const
{
    //Draw base styled-item(gradient backgroud and other)
    QStyledItemDelegate::paint(painter, option, index);

    if (index.data(c_friend_role).toBool())
        return;

    //Rect for drawing icons
	friend_record sl;
    const QRect& optr = option.rect;
    //QRect icon_rect(optr.x() + 2, optr.y() + 2, optr.height() - 4, optr.height() - 4);
	
	sl = index.data(c_friend_role).value<friend_record>();
	if(sl.is_empty()) return;
	const LinphoneFriend* lf = sl.frienddata();
	LinphoneOnlineStatus status = linphone_friend_get_status(lf);
    const QPixmap& icon_status = create_status_picture(status);
    //First icon - status icon
	if(icon_status.isNull())return;
    painter->setRenderHint(QPainter::SmoothPixmapTransform, true);
	//icon_status.height();
	QRect icon_rect(optr.right()-icon_status.width()-2, optr.y() + 2, optr.height() - 4, optr.height() - 4);

    painter->drawPixmap(icon_rect, icon_status);

    //next_icon(icon_rect);

    //painter->drawPixmap(icon_rect, icon_passwd);

    //next_icon(icon_rect);

    //if (si->get_info("pure", "-1").toInt() == 0)
    //painter->drawPixmap(icon_rect, QPixmap("icons:user-identity.png"));
    
    //next_icon(icon_rect);

    //if ( !si->forbidden_gears().empty() )
    //painter->drawPixmap(icon_rect, QPixmap("icons:weapons/pistol.svg"));
}
Esempio n. 7
0
void Toolbar::on_mouse_move(CL_InputEvent &input_event)
{
	int pos_x = start_x;
	int pos_y = start_y;
	for(unsigned int i = 0; i < items.size(); ++i)
	{
		CL_Rect icon_rect(pos_x, pos_y, pos_x + items[i].icon.get_width(), pos_y + items[i].icon.get_height());
		if(icon_rect.contains(input_event.mouse_pos))
		{
			selected_index = i;
			request_repaint();
			return;
		}

		pos_x += offset_x;
	}

	clicked_index = -1;
	selected_index = -1;
	request_repaint();
}
//----------------------------------------------------------------------------//
void FalagardTreeView::renderTreeItem(TreeView* tree_view, const Rectf& items_area,
    glm::vec2& item_pos, const TreeViewItemRenderingState* item_to_render,
    size_t depth)
{
    float expander_margin = tree_view->getSubtreeExpanderMargin();
    for (size_t i = 0; i < item_to_render->d_renderedChildren.size(); ++i)
    {
        TreeViewItemRenderingState* item = item_to_render->d_renderedChildren.at(i);
        RenderedString& rendered_string = item->d_string;
        Sizef size(item->d_size);

        // center the expander compared to the item's height
        float half_diff = (size.d_height - d_subtreeExpanderImagerySize.d_height) / 2.0f;

        size.d_width = ceguimax(items_area.getWidth(), size.d_width);
        float indent = d_subtreeExpanderImagerySize.d_width + expander_margin * 2;
        if (item->d_totalChildCount > 0)
        {
            const ImagerySection* section = item->d_subtreeIsExpanded
                ? d_subtreeCollapserImagery : d_subtreeExpanderImagery;

            Rectf button_rect;
            button_rect.left(item_pos.x + expander_margin);
            button_rect.top(item_pos.y +
                (half_diff > 0 ? half_diff : 0));
            button_rect.setSize(d_subtreeExpanderImagerySize);

            Rectf button_clipper(button_rect.getIntersection(items_area));
            section->render(*tree_view, button_rect, 0, &button_clipper);

            indent = button_rect.getWidth() + expander_margin * 2;
        }

        Rectf item_rect;
        item_rect.left(item_pos.x + indent);
        item_rect.top(item_pos.y + (half_diff < 0 ? -half_diff : 0));
        item_rect.setSize(size);

        if (!item->d_icon.empty())
        {
            Image& img = ImageManager::getSingleton().get(item->d_icon);

            Rectf icon_rect(item_rect);
            icon_rect.setWidth(size.d_height);
            icon_rect.setHeight(size.d_height);

            Rectf icon_clipper(icon_rect.getIntersection(items_area));
            img.render(tree_view->getGeometryBuffers(), icon_rect, &icon_clipper,
                true, ICON_COLOUR_RECT, 1.0f);

            item_rect.left(item_rect.left() + icon_rect.getWidth());
        }

        Rectf item_clipper(item_rect.getIntersection(items_area));
        renderString(tree_view, rendered_string, item_rect,
            tree_view->getFont(), &item_clipper, item->d_isSelected);

        item_pos.y += ceguimax(size.d_height, d_subtreeExpanderImagerySize.d_height);

        if (item->d_renderedChildren.empty())
            continue;

        item_pos.x += indent;

        if (item->d_subtreeIsExpanded)
        {
            renderTreeItem(tree_view, items_area, item_pos, item, depth + 1);
        }

        item_pos.x -= indent;
    }
}
Esempio n. 9
0
void QuestsItemDelegate::paint(QPainter *painter,
                               const QStyleOptionViewItem &option,
                               const QModelIndex &index) const {

  // Paint the default background
  //QStyledItemDelegate::paint(painter, option, index);

  // Save painter initial state before any modification
  painter->save();
  painter->setRenderHint(QPainter::Antialiasing, true);
  painter->setRenderHint(QPainter::TextAntialiasing, true);

  const QRect& global_rect = option.rect;
  const int padding = 4;
  const QFont &default_font = option.font;

  // Retrieve quest info
  const QVariant& data = index.model()->data(index, Qt::DisplayRole);
  const QuestsModel::QuestInfo& quest_info = data.value<QuestsModel::QuestInfo>();

  // Retrieve info from option
  QStyle::State state = option.state;
  const QStyleOptionViewItem::ViewItemFeatures& features = option.features;
  const QPalette& palette = option.palette;
  bool active = state.testFlag(QStyle::State_Active);
  bool enabled = state.testFlag(QStyle::State_Enabled);
  bool selected = state.testFlag(QStyle::State_Selected);
  bool alternate_rows = features.testFlag(QStyleOptionViewItem::Alternate);
  bool should_alternate = alternate_rows && index.row() % 2;
  //auto focused = state.testFlag(QStyle::State_HasFocus);
  //auto mouse_over = state.testFlag(QStyle::StateFlag::State_MouseOver);

  // Compute colors
  QPalette::ColorGroup color_group =
      !enabled ? QPalette::Disabled
               : (active ? QPalette::Active : QPalette::Inactive);
  QPalette::ColorRole color_role =
      selected ? QPalette::Highlight
               : (should_alternate ? QPalette::AlternateBase : QPalette::Light);
  const QBrush& background = palette.brush(color_group, color_role);

  // Paint background
  painter->fillRect(option.rect, background);

  // Paint icon
  QRect icon_rect(
      global_rect.left() + padding * 2,
      global_rect.top() + (global_rect.height() - _iconSize.height()) / 2,
      _iconSize.width(),
      _iconSize.height());
  QIcon::Mode icon_mode = enabled ? QIcon::Normal : QIcon::Disabled;
  const QPixmap& pixmap = quest_info.icon.pixmap(_iconSize, icon_mode, QIcon::On);
  painter->drawPixmap(icon_rect, pixmap);

  // Compute title font
  QFont title_font = default_font;
  title_font.setPointSize(title_font.pointSize() * 1.25);
  title_font.setWeight(QFont::DemiBold);

  // Compute author font
  QFont author_font = default_font;
  author_font.setWeight(QFont::Normal);

  // Set temporarily the font to compute the title text height
  painter->save();
  painter->setFont(title_font);
  const QFontMetrics& title_font_metrics = painter->fontMetrics();
  painter->restore();

  // Set temporarily the font to compute the author text height
  painter->save();
  painter->setFont(author_font);
  const QFontMetrics& author_font_metrics = painter->fontMetrics();
  painter->restore();

  // Compute author and title text rects
  int title_rect_left = icon_rect.right() + padding * 3;
  int title_rect_width = global_rect.width() - title_rect_left - padding;
  int title_rect_height = title_font_metrics.height();

  int author_rect_left = title_rect_left;
  int author_rect_width = title_rect_width;
  int author_rect_height = author_font_metrics.height();

  QRect title_rect(title_rect_left, 0, title_rect_width, title_rect_height);
  QRect author_rect(author_rect_left, title_rect_height, author_rect_width,
                    author_rect_height);

  int global_text_height = author_rect.bottom() - title_rect.top();
  int global_text_top = (global_rect.height() - global_text_height) / 2;

  int y_translate = global_rect.top() + global_text_top;
  title_rect.translate(0, y_translate);
  author_rect.translate(0, y_translate);

  // Compute title text color
  QPalette::ColorRole pen_color_role = selected ? QPalette::HighlightedText
                               : QPalette::Text;
  const QColor& title_pen_color = palette.brush(color_group, pen_color_role).color();

  // Paint title text
  const QString& title_text = QString::fromStdString(quest_info.properties.get_title());
  if (!title_text.isEmpty()) {
    QString title_elided_text = title_font_metrics.elidedText(title_text,
                                                              Qt::ElideRight,
                                                              title_rect_width);
    painter->setPen(title_pen_color);
    painter->setFont(title_font);
    painter->drawText(title_rect, title_elided_text);
  }

  // Compute title text color
  const QColor& author_pen_color =
      palette.brush(QPalette::Disabled, pen_color_role).color();

  // Paint author text
  QString separator = QString(" %1 ").arg(QChar(0x2022)); // bullet

  QStringList secondary_info;
  QString author_text =
          QString::fromStdString(quest_info.properties.get_author());
  QString date_string =
          QString::fromStdString(quest_info.properties.get_release_date());
  QDate date = QDate::fromString(date_string, "yyyyMMdd");
  QString date_text = date.toString("yyyy");
  if (!date_text.isEmpty()) {
    secondary_info << date_text;
  }
  if (!author_text.isEmpty()) {
    secondary_info << author_text;
  }

  if (!secondary_info.isEmpty()){
    QString secondary_text = secondary_info.join(separator);
    QString secondary_elided_text = author_font_metrics.elidedText(
        secondary_text, Qt::ElideRight, author_rect_width);
    painter->setPen(author_pen_color);
    painter->setFont(author_font);
    painter->drawText(author_rect, secondary_elided_text);
  }
  // Restore painter initial state
  painter->restore();
}