Added NumberDisplay class

This commit is contained in:
Tobias Rundstrom 2006-02-15 21:09:38 -03:00
parent 95d76f9a44
commit 45fd11151f
8 changed files with 110 additions and 41 deletions

View file

@ -24,6 +24,12 @@ MainDisplay::MainDisplay (QWidget *parent) : SkinDisplay(parent)
m_text = new TextScroller (this, 154, 15); m_text = new TextScroller (this, 154, 15);
m_text->move (109, 23); m_text->move (109, 23);
m_number = new NumberDisplay (this, 33, 11);
m_number->move (37, 26);
m_number2 = new NumberDisplay (this, 24, 0);
m_number2->move (78, 26);
} }
void void

View file

@ -15,6 +15,7 @@
#include "Button.h" #include "Button.h"
#include "TextBar.h" #include "TextBar.h"
#include "MainWindow.h" #include "MainWindow.h"
#include "NumberDisplay.h"
using namespace std; using namespace std;
@ -45,6 +46,9 @@ class MainDisplay : public SkinDisplay
ToggleButton *m_repeat; ToggleButton *m_repeat;
TextScroller *m_text; TextScroller *m_text;
NumberDisplay *m_number;
NumberDisplay *m_number2;
}; };
#endif #endif

41
NumberDisplay.cpp Normal file
View file

@ -0,0 +1,41 @@
#include "NumberDisplay.h"
#include "MainWindow.h"
NumberDisplay::NumberDisplay (QWidget *parent, uint w, uint startpx) : PixWidget (parent)
{
m_w = w;
m_startpx = startpx;
m_pixmap = QPixmap (m_w, 13);
setMinimumSize (m_w, 13);
setMaximumSize (m_w, 13);
setNumber (0,0);
}
void
NumberDisplay::setNumber (uint n1, uint n2)
{
MainWindow *mw = (MainWindow *)((SkinDisplay *)parent ())->getMW();
m_n1 = n1;
m_n2 = n2;
QBrush b (Qt::TexturePattern);
b.setTexture (mw->getSkin ()->getNumber (10));
QPainter paint;
paint.begin (&m_pixmap);
paint.fillRect (m_pixmap.rect (), b);
paint.drawPixmap (m_startpx, 0, mw->getSkin ()->getNumber (n1));
paint.drawPixmap (m_startpx+12, 0, mw->getSkin ()->getNumber (n2));
paint.end();
update ();
}
NumberDisplay::~NumberDisplay ()
{
}

30
NumberDisplay.h Normal file
View file

@ -0,0 +1,30 @@
#ifndef __NUMBERDISPLAY_H__
#define __NUMBERDISPLAY_H__
#include <iostream>
#include <QPixmap>
#include <QPainter>
#include <QWidget>
#include "PixWidget.h"
class NumberDisplay : public PixWidget
{
Q_OBJECT
public:
NumberDisplay (QWidget *parent, uint, uint);
~NumberDisplay ();
void setNumber (uint, uint);
protected:
int m_w;
int m_startpx;
uint m_n1;
uint m_n2;
};
#endif

View file

@ -20,7 +20,7 @@ PixWidget::~PixWidget ()
void void
PixWidget::paintEvent (QPaintEvent *event) PixWidget::paintEvent (QPaintEvent *event)
{ {
if (m_pixmap.isNull () || !m_pixmap) { if (m_pixmap.isNull ()) {
return; return;
} }

View file

@ -3,12 +3,13 @@
Skin::Skin (string m_skinname) : m_skinname (m_skinname) Skin::Skin (string m_skinname) : m_skinname (m_skinname)
{ {
m_path = QString ("./Debian/"); m_path = QString ("./CleanAMP/");
m_items = new QHash<uint, QPixmap>; m_items = new QHash<uint, QPixmap>;
m_volume_bar = new QHash<uint, QPixmap>; m_volume_bar = new QHash<uint, QPixmap>;
m_balance = new QHash<uint, QPixmap>; m_balance = new QHash<uint, QPixmap>;
m_pledit_txt = new QHash<QByteArray, QByteArray>; m_pledit_txt = new QHash<QByteArray, QByteArray>;
m_numbers = new QHash<uint, QPixmap>;
BuildLetterMap(); BuildLetterMap();
BuildButtons(); BuildButtons();
@ -16,6 +17,7 @@ Skin::Skin (string m_skinname) : m_skinname (m_skinname)
BuildSliders(); BuildSliders();
BuildOther(); BuildOther();
BuildTitleBar(); BuildTitleBar();
BuildNumbers();
ParsePLEdit(); ParsePLEdit();
} }
@ -24,6 +26,25 @@ Skin::~Skin ()
{ {
} }
void
Skin::BuildNumbers (void)
{
uint num = 11;
QPixmap *img = GetPixmap("numbers.bmp");
if (!img) {
num = 12;
img = GetPixmap ("nums_ex.bmp");
}
for (uint i = 0; i < num; i++) {
m_numbers->insert (i, img->copy (i*9, 0, 9, 13));
}
delete img;
}
void void
Skin::ParsePLEdit (void) Skin::ParsePLEdit (void)
{ {

41
Skin.h
View file

@ -26,12 +26,14 @@ class Skin : public QWidget
void BuildTitleBar (void); void BuildTitleBar (void);
void BuildSliders (void); void BuildSliders (void);
void BuildOther (void); void BuildOther (void);
void BuildNumbers (void);
void Skin::ParsePLEdit (void); void Skin::ParsePLEdit (void);
const QPixmap getItem (uint part) const { return m_items->value(part); } const QPixmap getItem (uint part) const { return m_items->value(part); }
const QPixmap getVol (uint p) const { return m_volume_bar->value(p); } const QPixmap getVol (uint p) const { return m_volume_bar->value(p); }
const QPixmap getBal (uint p) const { return m_balance->value(p); } const QPixmap getBal (uint p) const { return m_balance->value(p); }
const QPixmap getLetter (uint c) const { return m_letterMap->value(c); } const QPixmap getLetter (uint c) const { return m_letterMap->value(c); }
const QPixmap getNumber (uint c) const { return m_numbers->value(c); }
const QByteArray getPLeditValue (QByteArray c) const { return m_pledit_txt->value(c); } const QByteArray getPLeditValue (QByteArray c) const { return m_pledit_txt->value(c); }
enum Volume { enum Volume {
@ -156,47 +158,12 @@ class Skin : public QWidget
string m_skinname; string m_skinname;
QString m_path; QString m_path;
/* titlebar pixmaps */
QPixmap *m_textbg;
QPixmap *m_menubutton;
QPixmap *m_minimize;
QPixmap *m_close;
QPixmap *m_shade;
QPixmap *m_shade2;
QPixmap *m_titlebar;
QPixmap *m_statusbar;
/* toggle buttons */
QPixmap *m_repeat_on;
QPixmap *m_repeat_off;
QPixmap *m_shuffle_on;
QPixmap *m_shuffle_off;
QPixmap *m_eq_on;
QPixmap *m_eq_off;
QPixmap *m_pls_on;
QPixmap *m_pls_off;
/* sliders */
QPixmap *m_seekbar;
QPixmap *m_seekbar_pos;
QPixmap *m_volume;
/* other */
QPixmap *m_mono;
QPixmap *m_stereo;
QPixmap *m_mainwin;
QPixmap m_about[2];
QPixmap *m_pic_play;
QPixmap *m_pic_pause;
QPixmap *m_pic_stop;
/* numbers */
QPixmap *m_numbers;
QHash<uint, QPixmap> *m_items; QHash<uint, QPixmap> *m_items;
QHash<uint, QPixmap> *m_letterMap; QHash<uint, QPixmap> *m_letterMap;
QHash<uint, QPixmap> *m_volume_bar; QHash<uint, QPixmap> *m_volume_bar;
QHash<uint, QPixmap> *m_balance; QHash<uint, QPixmap> *m_balance;
QHash<uint, QPixmap> *m_numbers;
QHash<QByteArray, QByteArray> *m_pledit_txt; QHash<QByteArray, QByteArray> *m_pledit_txt;
QList<QPixmap *> m_buttons; QList<QPixmap *> m_buttons;
}; };

View file

@ -1,5 +1,5 @@
SOURCES += XmmsQT4.cpp PixWidget.cpp Skin.cpp MainWindow.cpp Display.cpp MainDisplay.cpp TitleBar.cpp Button.cpp TextBar.cpp SOURCES += XmmsQT4.cpp PixWidget.cpp Skin.cpp MainWindow.cpp Display.cpp MainDisplay.cpp TitleBar.cpp Button.cpp TextBar.cpp NumberDisplay.cpp
HEADERS += XmmsQT4.h PixWidget.h Skin.h MainWindow.h Display.h MainDisplay.h TitleBar.h Button.h TextBar.h HEADERS += XmmsQT4.h PixWidget.h Skin.h MainWindow.h Display.h MainDisplay.h TitleBar.h Button.h TextBar.h NumberDisplay.h
CONFIG += link_pkgconfig CONFIG += link_pkgconfig
CONFIG += debug CONFIG += debug
QMAKE_CFLAGS_WARN_OFF += -Wno-unused-parameter QMAKE_CFLAGS_WARN_OFF += -Wno-unused-parameter