void PindianBox::paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *) { QString title = QString("%1: %2").arg(tr("pindian")).arg(Sanguosha->translate(reason)); GraphicsBox::paintGraphicsBoxStyle(painter, title, boundingRect()); const int card_width = G_COMMON_LAYOUT.m_cardNormalWidth; const int card_height = G_COMMON_LAYOUT.m_cardNormalHeight; int first = (width - targets.length() * card_width - (targets.length() - 1) * (cardInterval + 20)) / 2; for (int i = 0; i < targets.length(); ++i) { int x, y = 0; x = (first + (card_width + cardInterval + 20) * i); y = (45); QString description1 = ClientInstance->getPlayerName(targets.at(i)); QRect up_rect(x - cardInterval / 2 - 20, 45, 20, card_height); G_COMMON_LAYOUT.playerCardBoxPlaceNameText.paintText(painter, up_rect, Qt::AlignCenter, description1); QRect top_rect(x, y, card_width, card_height); painter->drawPixmap(top_rect, G_ROOM_SKIN.getPixmap(QSanRoomSkin::S_SKIN_KEY_CHOOSE_GENERAL_BOX_DEST_SEAT)); IQSanComponentSkin::QSanSimpleTextFont font = G_COMMON_LAYOUT.m_chooseGeneralBoxDestSeatFont; font.paintText(painter, top_rect, Qt::AlignCenter, ClientInstance->getPlayerName(targets.at(i))); } QString description2 = tr("requestor"); QRect down_rect((width - card_width) / 2 - cardInterval / 2 - 20, 45 + (card_height + cardInterval), 20, card_height); QRect down_rect2((width - card_width) / 2 - cardInterval - 40, 45 + (card_height + cardInterval), 20, card_height); G_COMMON_LAYOUT.playerCardBoxPlaceNameText.paintText(painter, down_rect, Qt::AlignCenter, ClientInstance->getPlayerName(zhuge)); G_COMMON_LAYOUT.playerCardBoxPlaceNameText.paintText(painter, down_rect2, Qt::AlignCenter, description2); QRect bottom_rect((width - card_width) / 2, 45 + card_height + cardInterval, card_width, card_height); painter->drawPixmap(bottom_rect, G_ROOM_SKIN.getPixmap(QSanRoomSkin::S_SKIN_KEY_CHOOSE_GENERAL_BOX_DEST_SEAT)); IQSanComponentSkin::QSanSimpleTextFont font = G_COMMON_LAYOUT.m_chooseGeneralBoxDestSeatFont; font.paintText(painter, bottom_rect, Qt::AlignCenter, ClientInstance->getPlayerName(zhuge)); }
void ChooseGeneralBox::paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *) { //============================================================ //||========================================================|| //|| 萩僉夲�揖米薦議冷繍 || //|| ______ ______ ______ ______ ______ || //|| | | | | | | | | | | || //|| | g1 | | g2 | | g3 | | g4 | | g5 | || //|| | | | | | | | | | | || //|| !!!!!! !!!!!! !!!!!! !!!!!! !!!!!! || //|| ______ ______ ______ ______ || //|| | | | | | | | | || //|| | g6 | | g7 | | g8 | | g9 | || //|| | | | | | | | | || //|| !!!!!! !!!!!! !!!!!! !!!!!! || //|| ---------------------------------------------- || //|| \/ || //|| ______ ______ || //|| | | | | || //|| | hg | | dg | || //|| | | | | || //|| !!!!!! !!!!!! || //|| __________ || //|| | 鳩協 | || //|| !!!!!!!!!! || //|| ========================= || //|| || //============================================================ // // //================================================== //|| 岑失岑泳鉱心麼繍 || //||==============================================|| //|| || //|| __________________ || //|| | | || //|| | | || //|| | | || //|| | | || //|| | | || //|| | | || //|| | | || //|| | | || //|| | | || //|| | | || //|| !!!!!!!!!!!!!!!!!! || //|| || //|| ================== || //|| || confirm || || //|| ================== || //|| || //================================================== painter->save(); painter->setBrush(QBrush(G_COMMON_LAYOUT.m_chooseGeneralBoxBackgroundColor)); QRectF rect = boundingRect(); const int x = rect.x(); const int y = rect.y(); const int w = rect.width(); const int h = rect.height(); painter->drawRect(QRect(x, y, w, h)); painter->drawRect(QRect(x, y, w, top_dark_bar)); G_COMMON_LAYOUT.m_chooseGeneralBoxTitleFont.paintText(painter, QRect(x, y, w, top_dark_bar), Qt::AlignCenter, single_result ? tr("Please select one general") : tr("Please select the same nationality generals")); painter->restore(); painter->setPen(G_COMMON_LAYOUT.m_chooseGeneralBoxBorderColor); painter->drawRect(QRect(x + 1, y + 1, w - 2, h - 2)); if (single_result) return; int split_line_y = top_blank_width + G_COMMON_LAYOUT.m_cardNormalHeight + card_bottom_to_split_line; if (general_number > 5) split_line_y += (card_to_center_line + G_COMMON_LAYOUT.m_cardNormalHeight); QPixmap line = G_ROOM_SKIN.getPixmap(QSanRoomSkin::S_SKIN_KEY_CHOOSE_GENERAL_BOX_SPLIT_LINE); const int line_length = boundingRect().width() - 2 * left_blank_width; painter->drawPixmap(left_blank_width, split_line_y, line, (line.width() - line_length) / 2, y, line_length, line.height()); QPixmap seat = G_ROOM_SKIN.getPixmap(QSanRoomSkin::S_SKIN_KEY_CHOOSE_GENERAL_BOX_DEST_SEAT); QRect seat1_rect(rect.center().x() - G_COMMON_LAYOUT.m_cardNormalWidth - card_to_center_line - 2, split_line_y + split_line_to_card_seat - 2, G_COMMON_LAYOUT.m_cardNormalWidth + 4, G_COMMON_LAYOUT.m_cardNormalHeight + 4); painter->drawPixmap(seat1_rect, seat); IQSanComponentSkin::QSanSimpleTextFont font = G_COMMON_LAYOUT.m_chooseGeneralBoxDestSeatFont; font.paintText(painter, seat1_rect, Qt::AlignCenter, tr("head_general")); QRect seat2_rect(rect.center().x() + card_to_center_line - 2, split_line_y + split_line_to_card_seat - 2, G_COMMON_LAYOUT.m_cardNormalWidth + 4, G_COMMON_LAYOUT.m_cardNormalHeight + 4); painter->drawPixmap(seat2_rect, seat); font.paintText(painter, seat2_rect, Qt::AlignCenter, tr("deputy_general")); }
void ChooseGeneralBox::paintLayout(QPainter *painter) { //============================================================ //||========================================================|| //|| Please select the same nationality generals || //|| ______ ______ ______ ______ ______ || //|| | | | | | | | | | | || //|| | g1 | | g2 | | g3 | | g4 | | g5 | || //|| | | | | | | | | | | || //|| ------ ------ ------ ------ ------ || //|| ______ ______ ______ ______ || //|| | | | | | | | | || //|| | g6 | | g7 | | g8 | | g9 | || //|| | | | | | | | | || //|| ------ ------ ------ ------ || //|| ---------------------------------------------- || //|| \/ || //|| ______ ______ || //|| | | | | || //|| | hg | | dg | || //|| | | | | || //|| ------ ------ || //|| __________ || //|| | fight | || //|| ---------- || //|| ========================= || //|| || //============================================================ // // //================================================== //|| KnownBoth View Head || //||==============================================|| //|| || //|| __________________ || //|| | | || //|| | | || //|| | | || //|| | | || //|| | | || //|| | | || //|| | | || //|| | | || //|| | | || //|| | | || //|| ------------------ || //|| || //|| ================== || //|| || confirm || || //|| ================== || //|| || //================================================== if (m_viewOnly || single_result) return; int split_line_y = top_blank_width + G_COMMON_LAYOUT.m_cardNormalHeight + card_bottom_to_split_line; if (general_number > 5) split_line_y += (card_to_center_line + G_COMMON_LAYOUT.m_cardNormalHeight); QPixmap line = G_ROOM_SKIN.getPixmap(QSanRoomSkin::S_SKIN_KEY_CHOOSE_GENERAL_BOX_SPLIT_LINE); const int line_length = boundingRect().width() - 2 * left_blank_width; const QRectF rect = boundingRect(); painter->drawPixmap(left_blank_width, split_line_y, line, (line.width() - line_length) / 2, rect.y(), line_length, line.height()); QPixmap seat = G_ROOM_SKIN.getPixmap(QSanRoomSkin::S_SKIN_KEY_CHOOSE_GENERAL_BOX_DEST_SEAT); QRect seat1_rect(rect.center().x() - G_COMMON_LAYOUT.m_cardNormalWidth - card_to_center_line - 2, split_line_y + split_line_to_card_seat - 2, G_COMMON_LAYOUT.m_cardNormalWidth + 4, G_COMMON_LAYOUT.m_cardNormalHeight + 4); painter->drawPixmap(seat1_rect, seat); IQSanComponentSkin::QSanSimpleTextFont font = G_COMMON_LAYOUT.m_chooseGeneralBoxDestSeatFont; font.paintText(painter, seat1_rect, Qt::AlignCenter, tr("head_general")); QRect seat2_rect(rect.center().x() + card_to_center_line - 2, split_line_y + split_line_to_card_seat - 2, G_COMMON_LAYOUT.m_cardNormalWidth + 4, G_COMMON_LAYOUT.m_cardNormalHeight + 4); painter->drawPixmap(seat2_rect, seat); font.paintText(painter, seat2_rect, Qt::AlignCenter, tr("deputy_general")); }