Initial commit
96
Button.cpp
Normal file
|
@ -0,0 +1,96 @@
|
|||
#include "Button.h"
|
||||
#include "MainWindow.h"
|
||||
#include "Display.h"
|
||||
|
||||
Button::Button (QWidget *parent, uint normal, uint pressed) : PixWidget (parent)
|
||||
{
|
||||
MainWindow *mw = (MainWindow *)((SkinDisplay *)parent)->getMW();
|
||||
|
||||
m_pixmap_normal = mw->getSkin ()->getItem (normal);
|
||||
m_pixmap_pressed = mw->getSkin ()->getItem (pressed);
|
||||
m_pixmap = m_pixmap_normal;
|
||||
m_func = NULL;
|
||||
|
||||
setMinimumSize (m_pixmap.size ());
|
||||
setMaximumSize (m_pixmap.size ());
|
||||
}
|
||||
|
||||
Button::~Button ()
|
||||
{
|
||||
}
|
||||
|
||||
void Button::mousePressEvent (QMouseEvent *event)
|
||||
{
|
||||
((SkinDisplay *)parent ())->setNoDrag (true);
|
||||
m_pixmap = m_pixmap_pressed;
|
||||
update ();
|
||||
}
|
||||
|
||||
void Button::mouseReleaseEvent (QMouseEvent *event)
|
||||
{
|
||||
((SkinDisplay *)parent())->setNoDrag (false);
|
||||
m_pixmap = m_pixmap_normal;
|
||||
update();
|
||||
|
||||
if (m_func) {
|
||||
m_func (m_userdata);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
clicked (void *userdata)
|
||||
{
|
||||
ToggleButton *t = (ToggleButton *)userdata;
|
||||
t->toggleOn (!t->getOn());
|
||||
t->runFunc ();
|
||||
}
|
||||
|
||||
ToggleButton::ToggleButton (QWidget *parent, uint on_normal, uint on_pressed,
|
||||
uint off_normal, uint off_pressed) :
|
||||
Button (parent, off_normal, off_pressed)
|
||||
{
|
||||
MainWindow *mw = (MainWindow *)((SkinDisplay *)parent)->getMW();
|
||||
|
||||
m_pixmap_on_normal = mw->getSkin()->getItem(on_normal);
|
||||
m_pixmap_on_pressed = mw->getSkin()->getItem(on_pressed);
|
||||
m_pixmap_off_normal = mw->getSkin()->getItem(off_normal);
|
||||
m_pixmap_off_pressed = mw->getSkin()->getItem(off_pressed);
|
||||
|
||||
m_func = clicked;
|
||||
m_userdata = (void *)this;
|
||||
|
||||
m_func2 = NULL;
|
||||
m_userdata2 = NULL;
|
||||
|
||||
toggleOn (false);
|
||||
}
|
||||
|
||||
void
|
||||
ToggleButton::runFunc ()
|
||||
{
|
||||
if (m_func2) {
|
||||
m_func2 (m_userdata2);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
ToggleButton::toggleOn (bool t)
|
||||
{
|
||||
if (t) {
|
||||
m_pixmap_normal = m_pixmap_on_normal;
|
||||
m_pixmap_pressed = m_pixmap_on_pressed;
|
||||
m_toggled_on = true;
|
||||
} else {
|
||||
m_pixmap_normal = m_pixmap_off_normal;
|
||||
m_pixmap_pressed = m_pixmap_off_pressed;
|
||||
m_toggled_on = false;
|
||||
}
|
||||
|
||||
m_pixmap = m_pixmap_normal;
|
||||
update ();
|
||||
|
||||
}
|
||||
|
||||
ToggleButton::~ToggleButton ()
|
||||
{
|
||||
}
|
52
Button.h
Normal file
|
@ -0,0 +1,52 @@
|
|||
#ifndef __BUTTON_H__
|
||||
#define __BUTTON_H__
|
||||
|
||||
#include <QWidget>
|
||||
#include "PixWidget.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
class Button : public PixWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
Button (QWidget *parent, uint btn1, uint btn2);
|
||||
~Button ();
|
||||
void setFunc (void (*func)(void *userdata), void *userdata) { m_func = func; m_userdata = userdata; }
|
||||
|
||||
protected:
|
||||
void mousePressEvent (QMouseEvent *event);
|
||||
void mouseReleaseEvent (QMouseEvent *event);
|
||||
|
||||
QPixmap m_pixmap_normal;
|
||||
QPixmap m_pixmap_pressed;
|
||||
void (*m_func)(void *userdata);
|
||||
void *m_userdata;
|
||||
};
|
||||
|
||||
class ToggleButton : public Button
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
ToggleButton (QWidget *parent, uint, uint, uint, uint);
|
||||
~ToggleButton ();
|
||||
|
||||
void toggleOn (bool);
|
||||
void setFunc (void (*func)(void *userdata), void *userdata) { m_func2 = func; m_userdata2 = userdata; }
|
||||
|
||||
bool getOn () const { return m_toggled_on; }
|
||||
void runFunc ();
|
||||
|
||||
private:
|
||||
void (*m_func2)(void *userdata);
|
||||
void *m_userdata2;
|
||||
|
||||
QPixmap m_pixmap_on_normal;
|
||||
QPixmap m_pixmap_on_pressed;
|
||||
QPixmap m_pixmap_off_normal;
|
||||
QPixmap m_pixmap_off_pressed;
|
||||
|
||||
bool m_toggled_on;
|
||||
};
|
||||
|
||||
#endif
|
BIN
CleanAMP/Eq_ex.bmp
Normal file
After Width: | Height: | Size: 45 KiB |
BIN
CleanAMP/GENEX.bmp
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
CleanAMP/Gen.bmp
Normal file
After Width: | Height: | Size: 63 KiB |
BIN
CleanAMP/MONOSTER.BMP
Normal file
After Width: | Height: | Size: 4 KiB |
8
CleanAMP/PLEDIT.TXT
Normal file
|
@ -0,0 +1,8 @@
|
|||
[Text]
|
||||
Normal=#6D766F
|
||||
Current=#E9F0EA
|
||||
NormalBG=#B7C2B9
|
||||
SelectedBG=#A9B4AB
|
||||
Font=Tahoma
|
||||
mbBG=#013665
|
||||
mbFG=#74D0FD
|
11
CleanAMP/ReadMe.txt
Normal file
|
@ -0,0 +1,11 @@
|
|||
:: CleanAMP ::
|
||||
|
||||
My first serious Winamp2 skin.
|
||||
Hope you'll like it.
|
||||
|
||||
http://www.al-x.as.ro
|
||||
http://alexxp.deviantart.com
|
||||
|
||||
e-mail : alx1984@gmail.com
|
||||
|
||||
Copyright © al-x(2005)
|
BIN
CleanAMP/Thumbs.db
Normal file
BIN
CleanAMP/VIDEO.bmp
Normal file
After Width: | Height: | Size: 82 KiB |
BIN
CleanAMP/Volume.bmp
Normal file
After Width: | Height: | Size: 84 KiB |
BIN
CleanAMP/balance.bmp
Normal file
After Width: | Height: | Size: 59 KiB |
BIN
CleanAMP/cbuttons.bmp
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
CleanAMP/eqmain.bmp
Normal file
After Width: | Height: | Size: 255 KiB |
BIN
CleanAMP/main.bmp
Normal file
After Width: | Height: | Size: 94 KiB |
BIN
CleanAMP/mb.bmp
Normal file
After Width: | Height: | Size: 85 KiB |
BIN
CleanAMP/numbers.bmp
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
CleanAMP/playpaus.bmp
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
CleanAMP/pledit.bmp
Normal file
After Width: | Height: | Size: 162 KiB |
BIN
CleanAMP/posbar.bmp
Normal file
After Width: | Height: | Size: 9.1 KiB |
BIN
CleanAMP/shufrep.bmp
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
CleanAMP/text.bmp
Normal file
After Width: | Height: | Size: 8.3 KiB |
BIN
CleanAMP/titlebar.bmp
Normal file
After Width: | Height: | Size: 88 KiB |
29
CleanAMP/viscolor.txt
Normal file
|
@ -0,0 +1,29 @@
|
|||
183,194,185,
|
||||
183,194,185,
|
||||
7,8,7,
|
||||
17,19,17,
|
||||
28,30,28,
|
||||
39,41,39,
|
||||
49,52,50,
|
||||
60,64,60,
|
||||
71,75,71,
|
||||
81,86,82,
|
||||
92,97,93,
|
||||
103,108,104,
|
||||
113,119,115,
|
||||
124,131,125,
|
||||
134,142,136,
|
||||
145,153,147,
|
||||
156,164,158,
|
||||
167,176,169,
|
||||
124,131,125,
|
||||
134,142,136,
|
||||
145,153,147,
|
||||
156,164,158,
|
||||
167,176,169,
|
||||
109,118,111,
|
||||
|
||||
|
||||
This file modified by Winamp Vis Toolkit
|
||||
by Andrew Mackowski
|
||||
http://home.pacbell.net/mackowsk
|
23
Debian/README
Normal file
|
@ -0,0 +1,23 @@
|
|||
=============================================
|
||||
Debian 1.0 skin for XMMS
|
||||
|
||||
Created by Jesper Schultz <jesper@schultz-net.dk>
|
||||
Visit www.schultz-net.dk
|
||||
Released Jan 25 2004
|
||||
|
||||
Graphics done in The Gimp 1.3.2
|
||||
Tested with XMMS 1.2.8
|
||||
=============================================
|
||||
|
||||
|
||||
Installation
|
||||
------------
|
||||
You should have received this file in a gzip'ed tar
|
||||
archive named Debian.tar.gz. Simply copy or extract it
|
||||
into your XMMS skins directory.
|
||||
|
||||
Comments
|
||||
--------
|
||||
Dedicated to Debian GNU/Linux !
|
||||
|
||||
|
BIN
Debian/balance.bmp
Normal file
After Width: | Height: | Size: 83 KiB |
BIN
Debian/cbuttons.bmp
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
Debian/eq_ex.bmp
Normal file
After Width: | Height: | Size: 66 KiB |
BIN
Debian/eqmain.bmp
Normal file
After Width: | Height: | Size: 255 KiB |
BIN
Debian/kjell-fatal.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
Debian/kjell-fatal2.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
Debian/kjell-fatal3.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
Debian/main.bmp
Normal file
After Width: | Height: | Size: 94 KiB |
BIN
Debian/monoster.bmp
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
Debian/nums_ex.bmp
Executable file
After Width: | Height: | Size: 4.2 KiB |
BIN
Debian/playpaus.bmp
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
Debian/pledit.bmp
Normal file
After Width: | Height: | Size: 153 KiB |
6
Debian/pledit.txt
Normal file
|
@ -0,0 +1,6 @@
|
|||
[Text]
|
||||
Normal=#7ba7cd
|
||||
Current=#999999
|
||||
NormalBG=#ccddec
|
||||
SelectedBG=#eeeeee
|
||||
Font=Helvetica
|
BIN
Debian/posbar.bmp
Normal file
After Width: | Height: | Size: 9.1 KiB |
BIN
Debian/shufrep.bmp
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
Debian/text.bmp
Normal file
After Width: | Height: | Size: 8.3 KiB |
BIN
Debian/titlebar.bmp
Normal file
After Width: | Height: | Size: 88 KiB |
24
Debian/viscolor.txt
Normal file
|
@ -0,0 +1,24 @@
|
|||
204,221,236 // [background color 1]
|
||||
128,170,206 // [background color 2]
|
||||
128,170,206
|
||||
128,170,206
|
||||
128,170,206
|
||||
128,170,206
|
||||
128,170,206
|
||||
128,170,206
|
||||
128,170,206
|
||||
128,170,206
|
||||
128,170,206
|
||||
128,170,206
|
||||
128,170,206
|
||||
128,170,206
|
||||
128,170,206
|
||||
128,170,206
|
||||
128,170,206
|
||||
128,170,206
|
||||
126,126,126 // [osc 1]
|
||||
126,126,126 // [osc 2]
|
||||
126,126,126 // [osc 3]
|
||||
126,126,126 // [osc 4]
|
||||
126,126,126 // [osc 5]
|
||||
130,130,131 // [peak color]
|
BIN
Debian/volume.bmp
Normal file
After Width: | Height: | Size: 83 KiB |
45
Display.cpp
Normal file
|
@ -0,0 +1,45 @@
|
|||
#include "Display.h"
|
||||
|
||||
SkinDisplay::SkinDisplay (QWidget *parent) : QWidget(parent)
|
||||
{
|
||||
m_noDrag = false;
|
||||
m_mw = parent;
|
||||
}
|
||||
|
||||
void
|
||||
SkinDisplay::mousePressEvent (QMouseEvent *event)
|
||||
{
|
||||
m_diffX = event->x();
|
||||
m_diffY = event->y();
|
||||
}
|
||||
|
||||
void
|
||||
SkinDisplay::mouseMoveEvent (QMouseEvent *event)
|
||||
{
|
||||
if (!m_noDrag) {
|
||||
m_mw->move(event->globalPos().x() - m_diffX,
|
||||
event->globalPos().y() - m_diffY);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
SkinDisplay::enterEvent (QEvent *event)
|
||||
{
|
||||
m_tbar->setActive(true);
|
||||
}
|
||||
|
||||
void
|
||||
SkinDisplay::leaveEvent (QEvent *event)
|
||||
{
|
||||
m_tbar->setActive(false);
|
||||
}
|
||||
|
||||
void
|
||||
SkinDisplay::paintEvent (QPaintEvent *event)
|
||||
{
|
||||
QPainter(paint);
|
||||
|
||||
paint.begin(this);
|
||||
paint.eraseRect(rect());
|
||||
paint.end();
|
||||
}
|
45
Display.h
Normal file
|
@ -0,0 +1,45 @@
|
|||
#ifndef __SKINDISPLAY_H__
|
||||
#define __SKINDISPLAY_H__
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#include <QPixmap>
|
||||
#include <QPainter>
|
||||
#include <QWidget>
|
||||
#include <QHash>
|
||||
#include <QMouseEvent>
|
||||
#include <QPaintEvent>
|
||||
|
||||
#include "MainWindow.h"
|
||||
#include "TitleBar.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
class SkinDisplay : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
SkinDisplay (QWidget *parent);
|
||||
|
||||
bool getNoDrag() const { return m_noDrag; }
|
||||
void setNoDrag(bool d) { m_noDrag = d; }
|
||||
|
||||
QWidget *getMW() const { return m_mw; }
|
||||
|
||||
protected:
|
||||
void mousePressEvent (QMouseEvent *);
|
||||
void mouseMoveEvent (QMouseEvent *);
|
||||
void paintEvent (QPaintEvent *event);
|
||||
void SkinDisplay::enterEvent (QEvent *event);
|
||||
void SkinDisplay::leaveEvent (QEvent *event);
|
||||
|
||||
QWidget *m_mw;
|
||||
TitleBar *m_tbar;
|
||||
|
||||
private:
|
||||
bool m_noDrag;
|
||||
int m_diffX;
|
||||
int m_diffY;
|
||||
};
|
||||
|
||||
#endif
|
78
MainDisplay.cpp
Normal file
|
@ -0,0 +1,78 @@
|
|||
#include "MainDisplay.h"
|
||||
#include "TitleBar.h"
|
||||
#include "TextBar.h"
|
||||
|
||||
MainDisplay::MainDisplay (QWidget *parent) : SkinDisplay(parent)
|
||||
{
|
||||
QPalette palette = QPalette();
|
||||
QBrush brush = QBrush(Qt::TexturePattern);
|
||||
|
||||
brush.setTexture((((MainWindow *)m_mw)->getSkin()->getItem(Skin::MAIN_WINDOW)));
|
||||
palette.setBrush(QPalette::Background, brush);
|
||||
setPalette(palette);
|
||||
|
||||
setMaximumSize(QSize(275, 116));
|
||||
setMinimumSize(QSize(275, 116));
|
||||
|
||||
m_tbar = new TitleBar(this, false);
|
||||
m_tbar->move(0, 0);
|
||||
m_tbar->resize(275, 14);
|
||||
|
||||
SetupPushButtons ();
|
||||
SetupToggleButtons ();
|
||||
|
||||
m_text = new TextScroller (this, 154, 15);
|
||||
m_text->move (109, 23);
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
MainDisplay::SetupToggleButtons (void)
|
||||
{
|
||||
m_pls = new ToggleButton (this, Skin::PLS_ON_0, Skin::PLS_ON_1,
|
||||
Skin::PLS_OFF_0, Skin::PLS_OFF_1);
|
||||
m_pls->move(242, 58);
|
||||
|
||||
m_eq = new ToggleButton (this, Skin::EQ_ON_0, Skin::EQ_ON_1,
|
||||
Skin::EQ_OFF_0, Skin::EQ_OFF_1);
|
||||
m_eq->move(219, 58);
|
||||
|
||||
m_shuffle = new ToggleButton (this, Skin::SHUFFLE_ON_0, Skin::SHUFFLE_ON_1,
|
||||
Skin::SHUFFLE_OFF_0, Skin::SHUFFLE_OFF_1);
|
||||
m_shuffle->move(164, 89);
|
||||
|
||||
m_repeat = new ToggleButton (this, Skin::REPEAT_ON_0, Skin::REPEAT_ON_1,
|
||||
Skin::REPEAT_OFF_0, Skin::REPEAT_OFF_1);
|
||||
m_repeat->move(210, 89);
|
||||
}
|
||||
|
||||
void
|
||||
MainDisplay::SetupPushButtons (void)
|
||||
{
|
||||
/* Normal buttons */
|
||||
m_prev = new Button (this, Skin::BTN_PREV_0, Skin::BTN_PREV_1);
|
||||
m_prev->move(16, 88);
|
||||
m_play = new Button (this, Skin::BTN_PLAY_0, Skin::BTN_PLAY_1);
|
||||
m_play->move(39, 88);
|
||||
m_pause = new Button (this, Skin::BTN_PAUSE_0, Skin::BTN_PAUSE_1);
|
||||
m_pause->move(62, 88);
|
||||
m_stop = new Button (this, Skin::BTN_STOP_0, Skin::BTN_STOP_1);
|
||||
m_stop->move(85, 88);
|
||||
m_next = new Button (this, Skin::BTN_NEXT_0, Skin::BTN_NEXT_1);
|
||||
m_next->move(108, 88);
|
||||
m_eject = new Button (this, Skin::BTN_EJECT_0, Skin::BTN_EJECT_1);
|
||||
m_eject->move(136, 89);
|
||||
|
||||
m_menubtn = new Button (this, Skin::MENUBUTTON_0, Skin::MENUBUTTON_1);
|
||||
m_menubtn->move(6, 3);
|
||||
m_minimize = new Button (this, Skin::MINIMIZE_0, Skin::MINIMIZE_1);
|
||||
m_minimize->move(244, 3);
|
||||
m_shadebtn = new Button (this, Skin::SHADE_1_0, Skin::SHADE_1_1);
|
||||
m_shadebtn->move(254, 3);
|
||||
m_closebtn = new Button (this, Skin::CLOSE_0, Skin::CLOSE_1);
|
||||
m_closebtn->move(264, 3);
|
||||
}
|
||||
|
||||
MainDisplay::~MainDisplay (void)
|
||||
{
|
||||
}
|
49
MainDisplay.h
Normal file
|
@ -0,0 +1,49 @@
|
|||
#ifndef __MAINDISPLAY_H__
|
||||
#define __MAINDISPLAY_H__
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#include <QPixmap>
|
||||
#include <QPainter>
|
||||
#include <QWidget>
|
||||
#include <QHash>
|
||||
#include <QBrush>
|
||||
#include <QPalette>
|
||||
|
||||
#include "Display.h"
|
||||
#include "TitleBar.h"
|
||||
#include "Button.h"
|
||||
#include "TextBar.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
class MainDisplay : public SkinDisplay
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
MainDisplay (QWidget *parent);
|
||||
~MainDisplay ();
|
||||
protected:
|
||||
void SetupPushButtons (void);
|
||||
void MainDisplay::SetupToggleButtons (void);
|
||||
|
||||
Button *m_prev;
|
||||
Button *m_play;
|
||||
Button *m_pause;
|
||||
Button *m_stop;
|
||||
Button *m_next;
|
||||
Button *m_eject;
|
||||
Button *m_shadebtn;
|
||||
Button *m_menubtn;
|
||||
Button *m_closebtn;
|
||||
Button *m_minimize;
|
||||
|
||||
ToggleButton *m_pls;
|
||||
ToggleButton *m_eq;
|
||||
ToggleButton *m_shuffle;
|
||||
ToggleButton *m_repeat;
|
||||
|
||||
TextScroller *m_text;
|
||||
};
|
||||
|
||||
#endif
|
39
MainWindow.cpp
Normal file
|
@ -0,0 +1,39 @@
|
|||
#include "MainWindow.h"
|
||||
#include "MainDisplay.h"
|
||||
|
||||
MainWindow::MainWindow ()
|
||||
{
|
||||
setWindowFlags(Qt::FramelessWindowHint);
|
||||
setGeometry(100, 100, 275, 116);
|
||||
|
||||
skin = new Skin("Debian");
|
||||
MainDisplay *display = new MainDisplay(this);
|
||||
setCentralWidget(display);
|
||||
display->show();
|
||||
}
|
||||
|
||||
MainWindow::~MainWindow ()
|
||||
{
|
||||
delete skin;
|
||||
}
|
||||
|
||||
Skin *MainWindow::getSkin(void)
|
||||
{
|
||||
return skin;
|
||||
}
|
||||
|
||||
|
||||
int main (int argc, char **argv)
|
||||
{
|
||||
QApplication app(argc, argv);
|
||||
|
||||
/*
|
||||
xmmsc_connection_t *xmmsc = xmmsc_init ("coolness");
|
||||
xmmsc_connect (xmmsc, "unix:///tmp/xmms-ipc-nano");
|
||||
|
||||
XmmsQT4 *c = new XmmsQT4(xmmsc, &app);*/
|
||||
MainWindow *mw = new MainWindow();
|
||||
mw->show();
|
||||
|
||||
return app.exec();
|
||||
}
|
31
MainWindow.h
Normal file
|
@ -0,0 +1,31 @@
|
|||
#ifndef __MAINWINDOW_H__
|
||||
#define __MAINWINDOW_H__
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#include <QMainWindow>
|
||||
#include <QPixmap>
|
||||
#include <QPainter>
|
||||
#include <QWidget>
|
||||
#include <QHash>
|
||||
|
||||
#include <xmmsclient/xmmsclient.h>
|
||||
|
||||
#include "Skin.h"
|
||||
#include "XmmsQT4.h"
|
||||
|
||||
|
||||
using namespace std;
|
||||
|
||||
class MainWindow : public QMainWindow
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
MainWindow(void);
|
||||
~MainWindow(void);
|
||||
Skin *getSkin(void);
|
||||
private:
|
||||
Skin *skin;
|
||||
};
|
||||
|
||||
#endif
|
31
PixWidget.cpp
Normal file
|
@ -0,0 +1,31 @@
|
|||
#include "PixWidget.h"
|
||||
|
||||
|
||||
PixWidget::PixWidget (QWidget *parent) : QWidget (parent)
|
||||
{
|
||||
m_pixmap = QPixmap(0,0);
|
||||
}
|
||||
|
||||
|
||||
PixWidget::~PixWidget ()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Since almost every Widget I have here
|
||||
* is done by drawing self.pixmap onto self
|
||||
* we define this a generic PaintEvent handler
|
||||
*/
|
||||
void
|
||||
PixWidget::paintEvent (QPaintEvent *event)
|
||||
{
|
||||
if (m_pixmap.isNull () || !m_pixmap) {
|
||||
return;
|
||||
}
|
||||
|
||||
QPainter (paint);
|
||||
paint.begin (this);
|
||||
paint.drawPixmap (rect (), m_pixmap, m_pixmap.rect ());
|
||||
paint.end ();
|
||||
}
|
22
PixWidget.h
Normal file
|
@ -0,0 +1,22 @@
|
|||
#ifndef __PIXWIDGET_H__
|
||||
#define __PIXWIDGET_H__
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#include <QPixmap>
|
||||
#include <QPainter>
|
||||
#include <QWidget>
|
||||
|
||||
|
||||
class PixWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
PixWidget(QWidget *parent = 0);
|
||||
~PixWidget();
|
||||
void paintEvent (QPaintEvent *event);
|
||||
protected:
|
||||
QPixmap m_pixmap;
|
||||
};
|
||||
|
||||
#endif
|
257
Skin.cpp
Normal file
|
@ -0,0 +1,257 @@
|
|||
#include "Skin.h"
|
||||
|
||||
|
||||
Skin::Skin (string m_skinname) : m_skinname (m_skinname)
|
||||
{
|
||||
m_path = QString ("./CleanAMP/");
|
||||
|
||||
m_items = new QHash<uint, QPixmap>;
|
||||
m_volume_bar = new QHash<uint, QPixmap>;
|
||||
m_balance = new QHash<uint, QPixmap>;
|
||||
|
||||
BuildLetterMap();
|
||||
BuildButtons();
|
||||
BuildToggleButtons();
|
||||
BuildSliders();
|
||||
BuildOther();
|
||||
BuildTitleBar();
|
||||
}
|
||||
|
||||
|
||||
Skin::~Skin ()
|
||||
{
|
||||
}
|
||||
|
||||
QPixmap *Skin::GetPixmap (string file)
|
||||
{
|
||||
/* check for files in zip and check if file exists */
|
||||
|
||||
QDir dir;
|
||||
QString f = QString::fromStdString (file);
|
||||
|
||||
dir.setPath (m_path);
|
||||
dir.setFilter (QDir::Files);
|
||||
|
||||
QFileInfoList list = dir.entryInfoList();
|
||||
for (int i = 0; i < list.size(); ++i) {
|
||||
QFileInfo fileInfo = list.at(i);
|
||||
if (fileInfo.fileName().toLower() == f) {
|
||||
return new QPixmap (fileInfo.filePath());
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
|
||||
/*return new QPixmap ((m_path+file).c_str());*/
|
||||
}
|
||||
|
||||
void Skin::BuildToggleButtons (void)
|
||||
{
|
||||
QPixmap *img = GetPixmap("shufrep.bmp");
|
||||
|
||||
m_items->insert(REPEAT_ON_0, img->copy(0, 30, 28, 15));
|
||||
m_items->insert(REPEAT_ON_1, img->copy(0, 45, 28, 15));
|
||||
|
||||
m_items->insert(REPEAT_OFF_0, img->copy(0, 0, 28, 15));
|
||||
m_items->insert(REPEAT_OFF_1, img->copy(0, 15, 28, 15));
|
||||
|
||||
m_items->insert(SHUFFLE_ON_0, img->copy(28, 30, 46, 15));
|
||||
m_items->insert(SHUFFLE_ON_1, img->copy(28, 45, 46, 15));
|
||||
|
||||
m_items->insert(SHUFFLE_OFF_0, img->copy(28, 0, 46, 15));
|
||||
m_items->insert(SHUFFLE_OFF_1, img->copy(28, 15, 46, 15));
|
||||
|
||||
m_items->insert(EQ_ON_0, img->copy( 0, 73, 23, 12));
|
||||
m_items->insert(EQ_ON_1, img->copy(46, 73, 23, 12));
|
||||
|
||||
m_items->insert(EQ_OFF_0, img->copy( 0, 61, 23, 12));
|
||||
m_items->insert(EQ_OFF_1, img->copy(46, 61, 23, 12));
|
||||
|
||||
m_items->insert(PLS_ON_0, img->copy(23, 73, 23, 12));
|
||||
m_items->insert(PLS_ON_1, img->copy(69, 73, 23, 12));
|
||||
|
||||
m_items->insert(PLS_OFF_0, img->copy(23, 61, 23, 12));
|
||||
m_items->insert(PLS_OFF_1, img->copy(69, 61, 23, 12));
|
||||
|
||||
delete img;
|
||||
}
|
||||
|
||||
void Skin::BuildSliders (void)
|
||||
{
|
||||
QPixmap *img;
|
||||
|
||||
img = GetPixmap("volume.bmp");
|
||||
for (int i = VOLUMEBAR_POS_MIN; i < VOLUMEBAR_POS_MAX; i++) {
|
||||
m_volume_bar->insert(i, img->copy(0, i*15, 68, 13));
|
||||
}
|
||||
delete img;
|
||||
|
||||
img = GetPixmap("balance.bmp");
|
||||
if (!img) {
|
||||
img = GetPixmap("volume.bmp");
|
||||
}
|
||||
|
||||
for (int i = BALANCE_POS_MIN; i < BALANCE_POS_MAX; i++) {
|
||||
m_balance->insert(i, img->copy(9, i*15, 38, 13));
|
||||
}
|
||||
delete img;
|
||||
}
|
||||
|
||||
void Skin::BuildTitleBar (void)
|
||||
{
|
||||
QPixmap *img = GetPixmap("titlebar.bmp");
|
||||
|
||||
m_items->insert(MENUBUTTON_0, img->copy(0, 0, 9, 9));
|
||||
m_items->insert(MENUBUTTON_1, img->copy(0, 9, 9, 9));
|
||||
|
||||
m_items->insert(MINIMIZE_0, img->copy(9, 0, 9, 9));
|
||||
m_items->insert(MINIMIZE_1, img->copy(9, 9, 9, 9));
|
||||
|
||||
m_items->insert(CLOSE_0, img->copy(18, 0, 9, 9));
|
||||
m_items->insert(CLOSE_1, img->copy(18, 9, 9 ,9));
|
||||
|
||||
m_items->insert(SHADE_1_0, img->copy(0, 18, 9, 9));
|
||||
m_items->insert(SHADE_1_1, img->copy(9, 18, 9, 9));
|
||||
|
||||
m_items->insert(SHADE_2_0, img->copy(0, 27, 9, 9));
|
||||
m_items->insert(SHADE_2_1, img->copy(9, 27, 9, 9));
|
||||
|
||||
m_items->insert(TITLEBAR_0, img->copy(27, 0, 275, 14));
|
||||
m_items->insert(TITLEBAR_1, img->copy(27, 15, 275, 14));
|
||||
|
||||
m_items->insert(STATUSBAR_0, img->copy(27, 29, 275, 14));
|
||||
m_items->insert(STATUSBAR_1, img->copy(27, 29+13, 275, 14));
|
||||
|
||||
delete img;
|
||||
}
|
||||
|
||||
|
||||
void Skin::BuildButtons (void)
|
||||
{
|
||||
QPixmap *img = GetPixmap("cbuttons.bmp");
|
||||
|
||||
m_items->insert (BTN_PREV_0, img->copy(0, 0, 23, 18));
|
||||
m_items->insert (BTN_PREV_1, img->copy(0, 18, 23, 18));
|
||||
|
||||
m_items->insert (BTN_PLAY_0, img->copy(23, 0, 23, 18));
|
||||
m_items->insert (BTN_PLAY_1, img->copy(23, 18, 23, 18));
|
||||
|
||||
m_items->insert (BTN_PAUSE_0, img->copy(46, 0, 23, 18));
|
||||
m_items->insert (BTN_PAUSE_1, img->copy(46, 18, 23, 18));
|
||||
|
||||
m_items->insert (BTN_STOP_0, img->copy(69, 0, 23, 18));
|
||||
m_items->insert (BTN_STOP_1, img->copy(69, 18, 23, 18));
|
||||
|
||||
m_items->insert (BTN_NEXT_0, img->copy(92, 0, 22, 18));
|
||||
m_items->insert (BTN_NEXT_1, img->copy(92, 18, 22, 18));
|
||||
|
||||
m_items->insert (BTN_EJECT_0, img->copy(114, 0, 22, 16));
|
||||
m_items->insert (BTN_EJECT_1, img->copy(114, 16, 22, 16));
|
||||
|
||||
delete img;
|
||||
}
|
||||
|
||||
void Skin::BuildOther (void)
|
||||
{
|
||||
QPixmap *img;
|
||||
QPainter(painter);
|
||||
|
||||
img = GetPixmap("monoster.bmp");
|
||||
|
||||
m_items->insert (MONO_0, img->copy(29, 0, 27, 12));
|
||||
m_items->insert (MONO_1, img->copy(29, 12, 27, 12));
|
||||
|
||||
m_items->insert (STEREO_0, img->copy(0, 0, 29, 12));
|
||||
m_items->insert (STEREO_1, img->copy(0, 12, 29, 12));
|
||||
|
||||
/*
|
||||
img = GetPixmap("playpaus.bmp");
|
||||
|
||||
m_pic_play = new QPixmap(11, 9);
|
||||
painter.begin(m_pic_play);
|
||||
painter.drawPixmap (0, 0, 3, 9, *img, 36, 0, 3, 9);
|
||||
painter.drawPixmap (3, 0, 8, 9, *img, 1, 0, 8, 9);
|
||||
painter.end();
|
||||
|
||||
m_pic_pause = new QPixmap(11, 9);
|
||||
painter.begin(m_pic_pause);
|
||||
painter.drawPixmap (0, 0, 2, 9, *img, 27, 0, 2, 9);
|
||||
painter.drawPixmap (2, 0, 9, 9, *img, 9, 0, 9, 9);
|
||||
painter.end();
|
||||
|
||||
m_pic_stop = new QPixmap(11, 9);
|
||||
painter.begin(m_pic_stop);
|
||||
painter.drawPixmap (0, 0, 2, 9, *img, 27, 0, 2, 9);
|
||||
painter.drawPixmap (2, 0, 9, 9, *img, 18, 0, 9, 9);
|
||||
painter.end();
|
||||
*/
|
||||
|
||||
img = GetPixmap ("main.bmp");
|
||||
m_items->insert (MAIN_WINDOW, img->copy());
|
||||
m_items->insert (ABOUT_0, img->copy(247, 83, 20, 25));
|
||||
m_items->insert (ABOUT_1, img->copy(247, 83, 20, 24));
|
||||
delete img;
|
||||
}
|
||||
|
||||
|
||||
void Skin::BuildLetterMap (void)
|
||||
{
|
||||
QPixmap *img = GetPixmap("text.bmp");
|
||||
|
||||
QList<QList<QPixmap> >(letters);
|
||||
for (int i = 0; i < 3; i++) {
|
||||
QList<QPixmap>(l);
|
||||
for (int j = 0; j < 31; j++) {
|
||||
l.append(img->copy(j*5, i*6, 4, 6));
|
||||
}
|
||||
letters.append(l);
|
||||
}
|
||||
|
||||
delete img;
|
||||
|
||||
m_letterMap = new QHash<uint, QPixmap>;
|
||||
|
||||
/* alphabet */
|
||||
for (uint i = 97; i < 123; i++) {
|
||||
m_letterMap->insert(i, letters[0][i-97]);
|
||||
}
|
||||
|
||||
/* digits */
|
||||
for (uint i = 0; i <= 9; i++) {
|
||||
m_letterMap->insert(i+48, letters[1][i]);
|
||||
}
|
||||
|
||||
/* special characters */
|
||||
m_letterMap->insert('"', letters[0][27]);
|
||||
m_letterMap->insert('@', letters[0][28]);
|
||||
m_letterMap->insert('(', letters[1][13]);
|
||||
m_letterMap->insert(')', letters[1][14]);
|
||||
m_letterMap->insert('-', letters[1][15]);
|
||||
m_letterMap->insert('\'', letters[1][16]);
|
||||
m_letterMap->insert('`', letters[1][16]);
|
||||
m_letterMap->insert('!', letters[1][17]);
|
||||
m_letterMap->insert('_', letters[1][18]);
|
||||
m_letterMap->insert('+', letters[1][19]);
|
||||
m_letterMap->insert('\\', letters[1][20]);
|
||||
m_letterMap->insert('/', letters[1][21]);
|
||||
m_letterMap->insert('[', letters[1][22]);
|
||||
m_letterMap->insert(']', letters[1][23]);
|
||||
m_letterMap->insert('^', letters[1][24]);
|
||||
m_letterMap->insert('&', letters[1][25]);
|
||||
m_letterMap->insert('%', letters[1][26]);
|
||||
m_letterMap->insert('.', letters[1][27]);
|
||||
m_letterMap->insert(',', letters[1][27]);
|
||||
m_letterMap->insert('=', letters[1][28]);
|
||||
m_letterMap->insert('$', letters[1][29]);
|
||||
m_letterMap->insert('#', letters[1][30]);
|
||||
|
||||
m_letterMap->insert(229, letters[2][0]);
|
||||
m_letterMap->insert(246, letters[2][1]);
|
||||
m_letterMap->insert(228, letters[2][2]);
|
||||
m_letterMap->insert('?', letters[2][3]);
|
||||
m_letterMap->insert('*', letters[2][4]);
|
||||
m_letterMap->insert(' ', letters[2][5]);
|
||||
|
||||
/* text background */
|
||||
m_items->insert (TEXTBG, letters[2][6]);
|
||||
}
|
200
Skin.h
Normal file
|
@ -0,0 +1,200 @@
|
|||
#ifndef __SKIN_H__
|
||||
#define __SKIN_H__
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#include <QPixmap>
|
||||
#include <QPainter>
|
||||
#include <QWidget>
|
||||
#include <QHash>
|
||||
#include <QDir>
|
||||
|
||||
using namespace std;
|
||||
|
||||
class Skin : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
Skin(string m_skinname);
|
||||
~Skin();
|
||||
QPixmap *Pixmap (string file);
|
||||
void Parse (string file);
|
||||
QPixmap *Skin::GetPixmap (string file);
|
||||
void BuildLetterMap (void);
|
||||
void BuildButtons (void);
|
||||
void BuildToggleButtons (void);
|
||||
void BuildTitleBar (void);
|
||||
void BuildSliders (void);
|
||||
void BuildOther (void);
|
||||
|
||||
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 getBal (uint p) const { return m_balance->value(p); }
|
||||
const QPixmap getLetter (uint c) { return m_letterMap->value(c); }
|
||||
|
||||
enum Volume {
|
||||
VOLUMEBAR_POS_MIN,
|
||||
VOLUMEBAR_POS_1,
|
||||
VOLUMEBAR_POS_2,
|
||||
VOLUMEBAR_POS_3,
|
||||
VOLUMEBAR_POS_4,
|
||||
VOLUMEBAR_POS_5,
|
||||
VOLUMEBAR_POS_6,
|
||||
VOLUMEBAR_POS_7,
|
||||
VOLUMEBAR_POS_8,
|
||||
VOLUMEBAR_POS_9,
|
||||
VOLUMEBAR_POS_10,
|
||||
VOLUMEBAR_POS_11,
|
||||
VOLUMEBAR_POS_12,
|
||||
VOLUMEBAR_POS_13,
|
||||
VOLUMEBAR_POS_14,
|
||||
VOLUMEBAR_POS_15,
|
||||
VOLUMEBAR_POS_16,
|
||||
VOLUMEBAR_POS_17,
|
||||
VOLUMEBAR_POS_18,
|
||||
VOLUMEBAR_POS_19,
|
||||
VOLUMEBAR_POS_20,
|
||||
VOLUMEBAR_POS_21,
|
||||
VOLUMEBAR_POS_22,
|
||||
VOLUMEBAR_POS_23,
|
||||
VOLUMEBAR_POS_24,
|
||||
VOLUMEBAR_POS_25,
|
||||
VOLUMEBAR_POS_26,
|
||||
VOLUMEBAR_POS_MAX
|
||||
};
|
||||
|
||||
enum Balance {
|
||||
BALANCE_POS_MIN,
|
||||
BALANCE_POS_1,
|
||||
BALANCE_POS_2,
|
||||
BALANCE_POS_3,
|
||||
BALANCE_POS_4,
|
||||
BALANCE_POS_5,
|
||||
BALANCE_POS_6,
|
||||
BALANCE_POS_7,
|
||||
BALANCE_POS_8,
|
||||
BALANCE_POS_9,
|
||||
BALANCE_POS_10,
|
||||
BALANCE_POS_11,
|
||||
BALANCE_POS_12,
|
||||
BALANCE_POS_13,
|
||||
BALANCE_POS_14,
|
||||
BALANCE_POS_15,
|
||||
BALANCE_POS_16,
|
||||
BALANCE_POS_17,
|
||||
BALANCE_POS_18,
|
||||
BALANCE_POS_19,
|
||||
BALANCE_POS_20,
|
||||
BALANCE_POS_21,
|
||||
BALANCE_POS_22,
|
||||
BALANCE_POS_23,
|
||||
BALANCE_POS_24,
|
||||
BALANCE_POS_25,
|
||||
BALANCE_POS_26,
|
||||
BALANCE_POS_MAX
|
||||
};
|
||||
|
||||
enum Part {
|
||||
MAIN_WINDOW,
|
||||
ABOUT_0,
|
||||
ABOUT_1,
|
||||
MONO_0,
|
||||
MONO_1,
|
||||
STEREO_0,
|
||||
STEREO_1,
|
||||
MENUBUTTON_0,
|
||||
MENUBUTTON_1,
|
||||
MINIMIZE_0,
|
||||
MINIMIZE_1,
|
||||
CLOSE_0,
|
||||
CLOSE_1,
|
||||
SHADE_1_0,
|
||||
SHADE_1_1,
|
||||
SHADE_2_0,
|
||||
SHADE_2_1,
|
||||
TITLEBAR_0,
|
||||
TITLEBAR_1,
|
||||
STATUSBAR_0,
|
||||
STATUSBAR_1,
|
||||
SEEKBAR,
|
||||
SEEKBAR_POS_0,
|
||||
SEEKBAR_POS_1,
|
||||
REPEAT_ON_0,
|
||||
REPEAT_ON_1,
|
||||
REPEAT_OFF_0,
|
||||
REPEAT_OFF_1,
|
||||
SHUFFLE_ON_0,
|
||||
SHUFFLE_ON_1,
|
||||
SHUFFLE_OFF_0,
|
||||
SHUFFLE_OFF_1,
|
||||
EQ_ON_0,
|
||||
EQ_ON_1,
|
||||
EQ_OFF_0,
|
||||
EQ_OFF_1,
|
||||
PLS_ON_0,
|
||||
PLS_ON_1,
|
||||
PLS_OFF_0,
|
||||
PLS_OFF_1,
|
||||
BTN_PREV_0,
|
||||
BTN_PREV_1,
|
||||
BTN_PLAY_0,
|
||||
BTN_PLAY_1,
|
||||
BTN_PAUSE_0,
|
||||
BTN_PAUSE_1,
|
||||
BTN_STOP_0,
|
||||
BTN_STOP_1,
|
||||
BTN_NEXT_0,
|
||||
BTN_NEXT_1,
|
||||
BTN_EJECT_0,
|
||||
BTN_EJECT_1,
|
||||
TEXTBG
|
||||
};
|
||||
private:
|
||||
string m_skinname;
|
||||
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_letterMap;
|
||||
QHash<uint, QPixmap> *m_volume_bar;
|
||||
QHash<uint, QPixmap> *m_balance;
|
||||
QList<QPixmap *> m_buttons;
|
||||
};
|
||||
|
||||
#endif
|
135
TextBar.cpp
Normal file
|
@ -0,0 +1,135 @@
|
|||
#include "MainWindow.h"
|
||||
#include "Display.h"
|
||||
#include "TextBar.h"
|
||||
|
||||
TextScroller::TextScroller (QWidget *parent, uint w, uint h) : QWidget (parent)
|
||||
{
|
||||
|
||||
MainWindow *mw = (MainWindow *)((SkinDisplay *)parent)->getMW();
|
||||
|
||||
m_h = h;
|
||||
m_w = w;
|
||||
m_x_off = 0;
|
||||
m_x2_off = 0;
|
||||
m_skin = mw->getSkin ();
|
||||
|
||||
setMinimumSize(m_w + 2, m_h);
|
||||
setMaximumSize(m_w + 2, m_h);
|
||||
|
||||
if (m_h > 10) {
|
||||
m_y = 4;
|
||||
} else {
|
||||
m_y = 0;
|
||||
}
|
||||
|
||||
m_timer = new QTimer (this);
|
||||
connect (m_timer, SIGNAL (timeout()), this, SLOT (addOffset ()));
|
||||
|
||||
QPalette pal = palette ();
|
||||
QBrush b = QBrush (Qt::TexturePattern);
|
||||
b.setTexture (mw->getSkin ()->getItem (Skin::TEXTBG));
|
||||
pal.setBrush (QPalette::Window, b);
|
||||
setPalette (pal);
|
||||
|
||||
setAutoFillBackground (true);
|
||||
|
||||
setText (QString::fromUtf8 ("Promoe 0.1"));
|
||||
|
||||
//setText (QString::fromUtf8 ("Okerueu etuoduå öästö åntöå dS !! !¤ ¤ % % & & ¤"));
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
TextScroller::addOffset ()
|
||||
{
|
||||
|
||||
if (m_x2_off > 0) {
|
||||
m_x2_off --;
|
||||
} else if (m_x_off < m_pixmap.size().width()) {
|
||||
m_x_off ++;
|
||||
} else {
|
||||
m_x_off = 1;
|
||||
m_x2_off = 0;
|
||||
}
|
||||
|
||||
update();
|
||||
m_timer->start (40);
|
||||
}
|
||||
|
||||
void
|
||||
TextScroller::setText (const QString &text)
|
||||
{
|
||||
drawBitmapFont (text);
|
||||
}
|
||||
|
||||
void
|
||||
TextScroller::drawBitmapFont (const QString &text)
|
||||
{
|
||||
int width = text.length() * 6;
|
||||
QString (temp) = text.toLower ();
|
||||
|
||||
if (width > m_w) {
|
||||
temp += QString::fromAscii (" -- ");
|
||||
m_x2_off = m_w / 2;
|
||||
m_pixmap = QPixmap (width + 6*6, m_h);
|
||||
m_timer->start (40);
|
||||
} else {
|
||||
m_pixmap = QPixmap (m_w, m_h);
|
||||
}
|
||||
const char *t = temp.toLatin1();
|
||||
|
||||
QPainter (paint);
|
||||
|
||||
paint.begin (&m_pixmap);
|
||||
paint.fillRect (m_pixmap.rect(), Qt::white);
|
||||
for (uint i = 0; i < strlen (t); i++) {
|
||||
QPixmap p = m_skin->getLetter (t[i]);
|
||||
if (!p) {
|
||||
p = m_skin->getLetter(' ');
|
||||
}
|
||||
|
||||
paint.drawPixmap (QRect (i * 6, m_y, 4, 6),
|
||||
p, p.rect());
|
||||
}
|
||||
|
||||
paint.end();
|
||||
m_pixmap.setMask (m_pixmap.createHeuristicMask ());
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
TextScroller::drawQtFont (const QString &text)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
TextScroller::paintEvent (QPaintEvent *event)
|
||||
{
|
||||
int pad = 0;
|
||||
|
||||
if (m_pixmap.isNull ()) {
|
||||
return;
|
||||
}
|
||||
|
||||
int w2 = m_pixmap.size().width() - m_x_off;
|
||||
if (w2 < m_w) {
|
||||
pad = m_w - w2;
|
||||
}
|
||||
|
||||
QPainter (paint);
|
||||
paint.begin (this);
|
||||
paint.drawPixmap (QRect (m_x2_off, 0, m_w - pad, m_h),
|
||||
m_pixmap,
|
||||
QRect (m_x_off, 0, m_w, m_h));
|
||||
if (pad) {
|
||||
paint.drawPixmap (QRect (m_w - pad, 0, pad, m_h),
|
||||
m_pixmap,
|
||||
QRect (0, 0, pad, m_h));
|
||||
}
|
||||
paint.end ();
|
||||
}
|
||||
|
||||
TextScroller::~TextScroller ()
|
||||
{
|
||||
}
|
||||
|
49
TextBar.h
Normal file
|
@ -0,0 +1,49 @@
|
|||
#ifndef __TEXTBOX_H__
|
||||
#define __TEXTBOX_H__
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#include <QPixmap>
|
||||
#include <QPainter>
|
||||
#include <QWidget>
|
||||
#include <QFont>
|
||||
#include <QTimer>
|
||||
#include <QBrush>
|
||||
#include <QPalette>
|
||||
#include <QBitmap>
|
||||
|
||||
#include "Skin.h"
|
||||
|
||||
class TextScroller : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TextScroller (QWidget *parent, uint, uint);
|
||||
~TextScroller ();
|
||||
|
||||
void setText(const QString &text);
|
||||
|
||||
public slots:
|
||||
void addOffset ();
|
||||
|
||||
protected:
|
||||
QPixmap m_pixmap;
|
||||
void paintEvent (QPaintEvent *event);
|
||||
|
||||
private:
|
||||
int m_w;
|
||||
int m_h;
|
||||
int m_y;
|
||||
int m_x_off;
|
||||
int m_x2_off;
|
||||
|
||||
QTimer *m_timer;
|
||||
|
||||
Skin *m_skin;
|
||||
|
||||
void drawBitmapFont (const QString &text);
|
||||
void drawQtFont (const QString &text);
|
||||
};
|
||||
|
||||
#endif
|
49
TitleBar.cpp
Normal file
|
@ -0,0 +1,49 @@
|
|||
#include "TitleBar.h"
|
||||
#include "MainWindow.h"
|
||||
#include "Display.h"
|
||||
|
||||
TitleBar::TitleBar (QWidget *parent, bool shaded) : PixWidget (parent)
|
||||
{
|
||||
MainWindow *mw = (MainWindow *)((SkinDisplay *)parent)->getMW();
|
||||
|
||||
if (shaded) {
|
||||
m_pixmap_active = mw->getSkin()->getItem(Skin::STATUSBAR_0);
|
||||
m_pixmap_inactive = mw->getSkin()->getItem(Skin::STATUSBAR_1);
|
||||
} else {
|
||||
m_pixmap_active = mw->getSkin()->getItem(Skin::TITLEBAR_0);
|
||||
m_pixmap_inactive = mw->getSkin()->getItem(Skin::TITLEBAR_1);
|
||||
}
|
||||
|
||||
|
||||
if (underMouse()) {
|
||||
m_pixmap = m_pixmap_active;
|
||||
} else {
|
||||
m_pixmap = m_pixmap_inactive;
|
||||
}
|
||||
|
||||
qDebug("%d %d", m_pixmap.width(), m_pixmap.height());
|
||||
|
||||
setMinimumSize(QSize(275, 14));
|
||||
setMaximumSize(QSize(275, 14));
|
||||
}
|
||||
|
||||
TitleBar::~TitleBar ()
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
TitleBar::setActive (bool active)
|
||||
{
|
||||
if (active) {
|
||||
m_pixmap = m_pixmap_active;
|
||||
update();
|
||||
} else {
|
||||
m_pixmap = m_pixmap_inactive;
|
||||
update();
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
TitleBar::mouseDoubleClickEvent (QMouseEvent *event)
|
||||
{
|
||||
}
|
23
TitleBar.h
Normal file
|
@ -0,0 +1,23 @@
|
|||
#ifndef __TITLEBAR_H__
|
||||
#define __TITLEBAR_H__
|
||||
|
||||
#include <QWidget>
|
||||
#include "PixWidget.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
class TitleBar : public PixWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
TitleBar (QWidget *parent, bool shaded);
|
||||
~TitleBar ();
|
||||
void setActive (bool active);
|
||||
protected:
|
||||
void mouseDoubleClickEvent (QMouseEvent *event);
|
||||
private:
|
||||
QPixmap m_pixmap_active;
|
||||
QPixmap m_pixmap_inactive;
|
||||
};
|
||||
|
||||
#endif
|
68
XmmsQT4.cpp
Normal file
|
@ -0,0 +1,68 @@
|
|||
#include "XmmsQT4.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
static void CheckWrite (int i, void *userdata);
|
||||
|
||||
XmmsQT4::XmmsQT4 (xmmsc_connection_t *xmmsc, QObject *parent) : QObject (parent)
|
||||
{
|
||||
m_xmmsc = xmmsc;
|
||||
|
||||
m_fd = xmmsc_io_fd_get (xmmsc);
|
||||
xmmsc_io_need_out_callback_set (xmmsc, CheckWrite, this);
|
||||
|
||||
m_rsock = new QSocketNotifier (m_fd, QSocketNotifier::Read, this);
|
||||
connect (m_rsock, SIGNAL (activated (int)), SLOT (OnRead ()));
|
||||
m_rsock->setEnabled (false);
|
||||
|
||||
m_wsock = new QSocketNotifier (m_fd, QSocketNotifier::Write, this);
|
||||
connect (m_wsock, SIGNAL (activated (int)), SLOT (OnWrite ()));
|
||||
m_wsock->setEnabled (false);
|
||||
}
|
||||
|
||||
|
||||
XmmsQT4::~XmmsQT4 ()
|
||||
{
|
||||
delete m_rsock;
|
||||
delete m_wsock;
|
||||
}
|
||||
|
||||
|
||||
xmmsc_connection_t *XmmsQT4::GetXmmsConnection ()
|
||||
{
|
||||
return m_xmmsc;
|
||||
}
|
||||
|
||||
|
||||
void XmmsQT4::OnRead ()
|
||||
{
|
||||
if (!xmmsc_io_in_handle (m_xmmsc)) {
|
||||
return; /* exception? */
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void XmmsQT4::OnWrite ()
|
||||
{
|
||||
if (!xmmsc_io_out_handle (m_xmmsc)) {
|
||||
return; /* exception? */
|
||||
}
|
||||
}
|
||||
|
||||
void XmmsQT4::ToggleWrite (bool toggle)
|
||||
{
|
||||
m_wsock->setEnabled (toggle);
|
||||
}
|
||||
|
||||
static void CheckWrite (int i, void *userdata)
|
||||
{
|
||||
XmmsQT4 *obj = (XmmsQT4 *) userdata;
|
||||
xmmsc_connection_t *xmmsc = obj->GetXmmsConnection();
|
||||
|
||||
if (xmmsc_io_want_out (xmmsc)) {
|
||||
obj->ToggleWrite (true);
|
||||
} else {
|
||||
obj->ToggleWrite (false);
|
||||
}
|
||||
}
|
||||
|
34
XmmsQT4.h
Normal file
|
@ -0,0 +1,34 @@
|
|||
#ifndef __XMMSQT4_H__
|
||||
#define __XMMSQT4_H__
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#include <QApplication>
|
||||
#include <QObject>
|
||||
#include <QSocketNotifier>
|
||||
|
||||
#include <xmmsclient/xmmsclient.h>
|
||||
|
||||
|
||||
class XmmsQT4 : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
XmmsQT4(xmmsc_connection_t *xmmsc = 0, QObject *parent = 0);
|
||||
~XmmsQT4();
|
||||
|
||||
void ToggleWrite(bool toggle);
|
||||
xmmsc_connection_t *GetXmmsConnection();
|
||||
|
||||
public slots:
|
||||
void OnRead ();
|
||||
void OnWrite ();
|
||||
|
||||
private:
|
||||
int m_fd;
|
||||
QSocketNotifier *m_rsock;
|
||||
QSocketNotifier *m_wsock;
|
||||
xmmsc_connection_t *m_xmmsc;
|
||||
};
|
||||
|
||||
#endif
|
6
promoe.pro
Normal file
|
@ -0,0 +1,6 @@
|
|||
SOURCES += XmmsQT4.cpp PixWidget.cpp Skin.cpp MainWindow.cpp Display.cpp MainDisplay.cpp TitleBar.cpp Button.cpp TextBar.cpp
|
||||
HEADERS += XmmsQT4.h PixWidget.h Skin.h MainWindow.h Display.h MainDisplay.h TitleBar.h Button.h TextBar.h
|
||||
CONFIG += link_pkgconfig
|
||||
CONFIG += debug
|
||||
QMAKE_CFLAGS_WARN_OFF += -Wno-unused-parameter
|
||||
PKGCONFIG += xmms2-client
|