4 * Copyright (C) 2017 Samsung Electronics Co., Ltd. All rights reserved.
7 * Jihye Kim <jihye424.kim@samsung.com>
8 * SeokYeon Hwang <syeon.hwang@samsung.com>
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License
12 * as published by the Free Software Foundation; either version 2
13 * of the License, or (at your option) any later version.
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
32 #include "generalskinview.h"
33 #include "mainwindow.h"
35 GeneralSkinView::GeneralSkinView(QGraphicsScene *scene, QWidget *parent)
36 : MainView(scene, parent)
40 GeneralSkinView::~GeneralSkinView()
42 qDebug("destroy general skin view");
46 void GeneralSkinView::resizeEvent(QResizeEvent *event)
48 qDebug() << "resize general skin view:" << size();
49 SkinView::resizeEvent(event);
53 void GeneralSkinView::mousePressEvent(QMouseEvent *event)
55 SkinView::mousePressEvent(event);
57 if (event->button() == Qt::LeftButton) {
58 grabWindow(event->globalPos());
63 void GeneralSkinView::mouseReleaseEvent(QMouseEvent *event)
65 SkinView::mouseReleaseEvent(event);
67 if (event->button() == Qt::LeftButton) {
73 void GeneralSkinView::mouseMoveEvent(QMouseEvent *event)
75 SkinView::mouseMoveEvent(event);
77 if (isGrabWindow() == true) {
78 win->move(grabWinPos + (event->globalPos() - grabPos));
82 void GeneralSkinView::createItems()
84 qDebug() << "create items for general skin view";
86 QSize size = win->getUiInfo()->getMainSize();
89 scene()->addRect(0, 0, size.width(), HEADER_BAR_HEIGHT,
90 QPen(Qt::NoPen), QBrush(win->getUiInfo()->getVMColor()));
92 QBrush brush(QColor(244, 244, 244));
93 scene()->addRect(0, HEADER_BAR_HEIGHT, size.width(), HEADER_HEIGHT, QPen(Qt::NoPen), brush);
95 if (BORDER_SIZE > 0) {
96 float osize = OUT_LINE_SIZE / 2;
97 float isize = INNER_LINE_SIZE / 2;
98 float bsize = (BORDER_SIZE - INNER_LINE_SIZE - OUT_LINE_SIZE) / 2;
102 QPen outPen(QColor(153, 153, 153), OUT_LINE_SIZE, Qt::SolidLine);
104 scene()->addLine(osize, HEADER_BAR_HEIGHT + osize, osize, size.height(), outPen);
106 scene()->addLine(osize, size.height() - osize, size.width() - osize, size.height() - osize, outPen);
108 scene()->addLine(size.width() - osize, HEADER_BAR_HEIGHT + osize, size.width() - osize, size.height(), outPen);
113 QPen borderPen(QColor(244, 244, 244), BORDER_SIZE - INNER_LINE_SIZE - OUT_LINE_SIZE, Qt::SolidLine);
114 float offset = OUT_LINE_SIZE + bsize;
116 scene()->addLine(offset, HEADER_HEIGHT + bsize, offset, size.height() - offset, borderPen);
118 scene()->addLine(offset, size.height() - offset, size.width() - offset, size.height() - offset, borderPen);
120 scene()->addLine(size.width() - offset, HEADER_HEIGHT + bsize, size.width() - offset, size.height() - offset, borderPen);
124 QPen innerPen(QColor(153, 153, 153), INNER_LINE_SIZE, Qt::SolidLine);
126 scene()->addLine(BORDER_SIZE - isize, HEADER_HEIGHT - isize,
127 size.width() - BORDER_SIZE + isize, HEADER_HEIGHT - isize, innerPen);
129 scene()->addLine(BORDER_SIZE - isize, HEADER_HEIGHT - isize,
130 BORDER_SIZE - isize, size.height() - BORDER_SIZE + isize, innerPen);
132 scene()->addLine(BORDER_SIZE - isize, size.height() - BORDER_SIZE + isize,
133 size.width() - BORDER_SIZE, size.height() - BORDER_SIZE + isize, innerPen);
135 scene()->addLine(size.width() - BORDER_SIZE + isize, HEADER_HEIGHT - isize,
136 size.width() - BORDER_SIZE + isize, size.height() - BORDER_SIZE + isize, innerPen);
140 QGraphicsTextItem *title = new QGraphicsTextItem(win->getUiInfo()->getVmName());
141 title->setDefaultTextColor(QColor(88, 88, 88));
142 scene()->addItem(title);
143 QRectF rect = title->boundingRect();
144 int y = (HEADER_HEIGHT - HEADER_BAR_HEIGHT - rect.height()) / 2;
145 title->setPos(BORDER_SIZE + 5, HEADER_BAR_HEIGHT + y);
148 QSize GeneralSkinView::getMainSize()
150 QSize size = win->getUiInfo()->getMainForm()->
151 skinImg[LayoutForm::normal].size() * win->getUiInfo()->getUiState()->getScaleFactor();
153 size.setWidth(size.width() + BORDER_SIZE * 2);
154 size.setHeight(size.height() + HEADER_HEIGHT + BORDER_SIZE);
159 QRegion GeneralSkinView::getMainRegion()
161 QImage *mainImage = &(win->getUiInfo()->getMainForm()->skinImg[LayoutForm::normal]);
162 QImage regionImage = mainImage->scaled(
163 mainImage->width() * win->getUiInfo()->getUiState()->getScaleFactor() + BORDER_SIZE * 2,
164 mainImage->height() * win->getUiInfo()->getUiState()->getScaleFactor()
165 + HEADER_HEIGHT + BORDER_SIZE).createAlphaMask();
167 return QRegion(QBitmap::fromImage(regionImage));