}
} else {
GeneralPurposeCon *generalCon = new GeneralPurposeCon();
+
+ generalCon->createHeaderBarAndBorder(scene(), parent->getMainWindow()->getUiInfo(), false);
QList<HWKeyButton *> buttons
= generalCon->createButtons(parentWidget(), conForm);
conScene->setBackgroundBrush(Qt::transparent);
conView = new FloatingConView(this, conForm, conScene);
+ resize(conForm->skinImg[LayoutForm::normal].size());
conView->resize(conForm->skinImg[LayoutForm::normal].size());
}
}
} else {
GeneralPurposeCon *generalCon = new GeneralPurposeCon();
+
+ generalCon->createHeaderBarAndBorder(scene(), parent->getMainWindow()->getUiInfo(), true);
QList<HWKeyButton *> buttons
= generalCon->createButtons(parentWidget(), conForm);
qDebug("create general purpose controller");
}
+void GeneralPurposeCon::createHeaderBarAndBorder(QGraphicsScene *scene, UiInformation *uiInfo, bool isFloating)
+{
+ QSize size = uiInfo->getConSize();
+
+ // draw color bar
+ scene->addRect(0, 0, size.width(), GPC_HEAD_BAR_HEIGHT, QPen(Qt::NoPen),
+ QBrush(uiInfo->getVMColor()));
+
+ if (GPC_BORDER_SIZE > 0) {
+ float bsize = GPC_BORDER_SIZE / 2;
+ QPen borderPen(QColor(153, 153, 153), GPC_BORDER_SIZE, Qt::SolidLine);
+ if (isFloating) { // draw left border
+ scene->addLine(bsize, GPC_HEAD_BAR_HEIGHT + bsize, bsize, size.height(), borderPen);
+ }
+ // draw bottom border
+ scene->addLine(bsize, size.height() - bsize, size.width(), size.height() - bsize, borderPen);
+ // draw right border
+ scene->addLine(size.width() - bsize, GPC_HEAD_BAR_HEIGHT + bsize, size.width() - bsize, size.height(), borderPen);
+ }
+}
+
QList<HWKeyButton *> GeneralPurposeCon::createButtons(QWidget *parent, ControllerForm *form)
{
QPoint topLeft = form->getCenteralRect().topLeft();
- topLeft.setX(topLeft.x() + GPC_LEFT_SPACING);
+ topLeft.setX(topLeft.x() + GPC_LEFT_SPACING + GPC_BORDER_SIZE);
topLeft.setY(topLeft.y() + GPC_HEAD_SPACING);
QList<HWKeyButton *> buttonList;
#include "layout/hardwarekey.h"
#include "controller/hwkeybutton.h"
#include "layout/controllerform.h"
+#include "uiinformation.h"
-#define GPC_HEAD_SPACING (8)
+#define GPC_HEAD_BAR_HEIGHT (5)
+#define GPC_BORDER_SIZE (1.0)
+#define GPC_HEAD_SPACING (8) + GPC_HEAD_BAR_HEIGHT
#define GPC_LEFT_SPACING (8)
#define GPC_TAIL_SPACING (8)
#define GPC_KEYBUTTON_WIDTH (35)
public:
GeneralPurposeCon();
~GeneralPurposeCon();
+ void createHeaderBarAndBorder(QGraphicsScene *scene, UiInformation *uiInfo, bool isFloating);
QList<HWKeyButton *> createButtons(QWidget *parent, ControllerForm *form);
private:
scene()->addLine(BORDER_SIZE, HEADER_HEIGHT + BORDER_SIZE, size.width() - BORDER_SIZE, HEADER_HEIGHT + BORDER_SIZE, linePen);
if (BORDER_SIZE > 0) {
- QPen boaderPen(QColor(0, 138, 248), BORDER_SIZE * 2, Qt::SolidLine);
+ QPen boaderPen(win->getUiInfo()->getVMColor(), BORDER_SIZE * 2, Qt::SolidLine);
scene()->addRect(0, 0, size.width(), size.height(), boaderPen);
}
}
/* controller */
- const int defaultDockPos = Qt::AlignRight | Qt::AlignCenter;
+ const int defaultDockPos = Qt::AlignRight | Qt::AlignTop;
mainwindow->getUiState()->getConState()->setRecentlyDockPos(defaultDockPos);
int conIndex = mruInfo.value(SKIN_PROPERTY_CONTROLLER_INDEX).toInt();
switch((basePort / 10) % 10) {
case 0:
- break;
+ return QColor(0, 150, 221); //#0096DD
case 1:
- return QColor(246, 226, 0);
+ return QColor(32, 212, 204); //#20D4CC
case 2:
- return QColor(0, 246, 12);
+ return QColor(229, 100, 172); //#E564AC
case 3:
- return QColor(168, 43, 255);
+ return QColor(255,138, 23); //#FF8A17
case 4:
- return QColor(246, 110, 0);
+ return QColor(169, 125, 252); //#A97DFC
case 5:
- return QColor(245, 48, 233);
+ return QColor(226, 71, 94); //#E2475E
case 6:
- return QColor(94, 73, 255);
+ return QColor(255, 198, 0); //#FFC600
case 7:
- return QColor(179, 246, 0);
+ return QColor(0, 166, 81); //#B8A288
case 8:
- return QColor(245, 48, 48);
+ return QColor(29, 223, 221); //#00A651
case 9:
- return QColor(29, 223, 221);
+ return QColor(141, 198, 64); //#8DC63F
}
- return QColor(0, 174, 239);
+ qWarning() << "invalid base port:" << basePort;
+ return QColor(0, 255, 0);
}
/* form */
{
int keyCount = form->getKeyList().count();
- int width = GPC_KEYBUTTON_WIDTH + GPC_KEYBUTTON_HSPACING;
- int height = GPC_HEAD_SPACING;
+ int width = GPC_KEYBUTTON_WIDTH + GPC_KEYBUTTON_HSPACING + GPC_BORDER_SIZE * 2;
+ int height = GPC_HEAD_SPACING + GPC_BORDER_SIZE;
height += (GPC_KEYBUTTON_HEIGHT * keyCount) +
(GPC_KEYBUTTON_VSPACING * (keyCount - 1));