diff --git a/MainDisplay.cpp b/MainDisplay.cpp index 29460a2..b6744f3 100644 --- a/MainDisplay.cpp +++ b/MainDisplay.cpp @@ -23,6 +23,14 @@ MainDisplay::MainDisplay (QWidget *parent) : SkinDisplay(parent) m_number2 = new NumberDisplay (this, 24, 0); m_number2->move (78, 26); + m_kbps = new SmallNumberDisplay (this, 15); + m_kbps->move (111, 43); + m_kbps->setNumber ('1', '2', '8'); + + m_khz = new SmallNumberDisplay (this, 10); + m_khz->move (156, 43); + m_khz->setNumber ('4', '4'); + } void diff --git a/MainDisplay.h b/MainDisplay.h index 4d7afb1..1026cc9 100644 --- a/MainDisplay.h +++ b/MainDisplay.h @@ -20,6 +20,7 @@ class MainDisplay; #include "TextBar.h" #include "MainWindow.h" #include "NumberDisplay.h" +#include "SmallNumberDisplay.h" using namespace std; @@ -34,6 +35,9 @@ class MainDisplay : public SkinDisplay NumberDisplay *m_number; NumberDisplay *m_number2; + SmallNumberDisplay *m_kbps; + SmallNumberDisplay *m_khz; + public slots: void setPixmaps(Skin *skin); protected: diff --git a/NumberDisplay.cpp b/NumberDisplay.cpp index 92d93a5..963cef7 100644 --- a/NumberDisplay.cpp +++ b/NumberDisplay.cpp @@ -45,3 +45,4 @@ NumberDisplay::~NumberDisplay () { } + diff --git a/SmallNumberDisplay.cpp b/SmallNumberDisplay.cpp new file mode 100644 index 0000000..66d7c7e --- /dev/null +++ b/SmallNumberDisplay.cpp @@ -0,0 +1,65 @@ +#include "SmallNumberDisplay.h" + +SmallNumberDisplay::SmallNumberDisplay (QWidget *parent, int w) : PixWidget (parent) +{ + m_w = w; + setMinimumSize (w, 6); + setMaximumSize (w, 6); + m_pixmap = QPixmap (w, 6); +} + +void +SmallNumberDisplay::setPixmaps (Skin *skin) +{ + m_skin = skin; + drawNumber (); +} + +void +SmallNumberDisplay::setNumber (char i1, char i2, char i3) +{ + m_nums[0] = i1; + m_nums[1] = i2; + m_nums[2] = i3; + m_num = 3; + + drawNumber (); + + update (); +} + +void +SmallNumberDisplay::setNumber (char i1, char i2) +{ + m_nums[0] = i1; + m_nums[1] = i2; + m_num = 2; + + drawNumber (); + + update (); +} + +void +SmallNumberDisplay::drawNumber () +{ + + if (!m_skin) { + return; + } + + QPainter paint; + paint.begin (&m_pixmap); + paint.drawPixmap (m_pixmap.rect (), + m_skin->getItem (Skin::TEXTBG), + m_pixmap.rect ()); + + for (int i = 0; i < m_num; i++) { + paint.drawPixmap (QRect (i*5, 0, 4, 6), + m_skin->getLetter (m_nums[i]), + m_skin->getLetter (m_nums[i]).rect ()); + } + + paint.end (); +} + diff --git a/SmallNumberDisplay.h b/SmallNumberDisplay.h new file mode 100644 index 0000000..5c3473b --- /dev/null +++ b/SmallNumberDisplay.h @@ -0,0 +1,28 @@ +#include "PixWidget.h" +#include + + +class SmallNumberDisplay : public PixWidget +{ + Q_OBJECT; + + public: + SmallNumberDisplay (QWidget *parent, int w); + ~SmallNumberDisplay () { }; + + void setNumber (char i1, char i2, char i3); + void setNumber (char i1, char i2); + + public slots: + void setPixmaps (Skin *skin); + + private: + char m_nums[2]; + int m_num; + int m_w; + + void drawNumber (void); + + Skin *m_skin; +}; + diff --git a/promoe.pro b/promoe.pro index 3ffea34..cce394b 100644 --- a/promoe.pro +++ b/promoe.pro @@ -1,5 +1,29 @@ -SOURCES += XmmsQT4.cpp PixWidget.cpp Skin.cpp MainWindow.cpp Display.cpp MainDisplay.cpp TitleBar.cpp Button.cpp TextBar.cpp NumberDisplay.cpp XMMSHandler.cpp -HEADERS += XmmsQT4.h PixWidget.h Skin.h MainWindow.h Display.h MainDisplay.h TitleBar.h Button.h TextBar.h NumberDisplay.h XMMSHandler.h +SOURCES += XmmsQT4.cpp \ + PixWidget.cpp \ + Skin.cpp \ + MainWindow.cpp \ + Display.cpp \ + MainDisplay.cpp \ + TitleBar.cpp \ + Button.cpp \ + TextBar.cpp \ + NumberDisplay.cpp \ + XMMSHandler.cpp \ + SmallNumberDisplay.cpp + +HEADERS += XmmsQT4.h \ + PixWidget.h \ + Skin.h \ + MainWindow.h \ + Display.h \ + MainDisplay.h \ + TitleBar.h \ + Button.h \ + TextBar.h \ + NumberDisplay.h \ + XMMSHandler.h \ + SmallNumberDisplay.h + CONFIG += link_pkgconfig CONFIG += debug QMAKE_CFLAGS_WARN_OFF += -Wno-unused-parameter