00001 /****************************************************************************************************** 00002 * (C) 2014 markummitchell@github.com. This file is part of Engauge Digitizer, which is released * 00003 * under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file * 00004 * LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. * 00005 ******************************************************************************************************/ 00006 00007 #include <QGraphicsPixmapItem> 00008 #include <QGraphicsScene> 00009 #include <QGraphicsTextItem> 00010 #include "TutorialDlg.h" 00011 #include "TutorialStateAbstractBase.h" 00012 #include "TutorialStateContext.h" 00013 00014 //const int DELTA_FONT_SIZE = 2; 00015 const int TITLE_PADDING = 5; 00016 const double Z_TITLE = 2.0; // On top of everything else 00017 00018 TutorialStateAbstractBase::TutorialStateAbstractBase(TutorialStateContext &context) : 00019 m_context (context) 00020 { 00021 } 00022 00023 TutorialStateAbstractBase::~TutorialStateAbstractBase() 00024 { 00025 } 00026 00027 int TutorialStateAbstractBase::buttonMargin () const 00028 { 00029 return 10; 00030 } 00031 00032 TutorialStateContext &TutorialStateAbstractBase::context () 00033 { 00034 return m_context; 00035 } 00036 00037 QGraphicsPixmapItem *TutorialStateAbstractBase::createPixmapItem (const QString &resource, 00038 const QPoint &pos) 00039 { 00040 QGraphicsPixmapItem *item = new QGraphicsPixmapItem (QPixmap (resource)); 00041 item->setPos (pos); 00042 context().tutorialDlg().scene().addItem (item); 00043 00044 return item; 00045 } 00046 00047 QGraphicsTextItem *TutorialStateAbstractBase::createTextItem (const QString &text, 00048 const QPoint &pos) 00049 { 00050 QGraphicsTextItem *item = new QGraphicsTextItem (text); 00051 item->setPos (pos); 00052 context().tutorialDlg().scene().addItem (item); 00053 00054 return item; 00055 } 00056 00057 QGraphicsTextItem *TutorialStateAbstractBase::createTitle (const QString &text) 00058 { 00059 QSize backgroundSize = context().tutorialDlg().backgroundSize(); 00060 00061 QGraphicsTextItem *item = new QGraphicsTextItem (text); 00062 item->setZValue(Z_TITLE); 00063 item->setPos (backgroundSize.width() / 2.0 - item->boundingRect().width() / 2.0, 00064 TITLE_PADDING); 00065 context().tutorialDlg().scene().addItem (item); 00066 00067 // Highlight the text 00068 QFont font = item->font(); 00069 font.setBold (true); 00070 // font.setPixelSize (font.pixelSize() + DELTA_FONT_SIZE); 00071 item->setFont (font); 00072 return item; 00073 }