promoe/Skin.h
2006-02-26 02:36:20 -03:00

223 lines
4.2 KiB
C++

#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 ();
~Skin();
void setSkin (QString name);
const QPixmap getItem (uint part) const { return m_items->value(part); }
const QPixmap getPls (uint part) const { return m_playlist->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) 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); }
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,
PIC_PLAY,
PIC_PAUSE,
PIC_STOP,
POSBAR,
POSBAR_BTN_0,
POSBAR_BTN_1,
};
enum PlaylistParts {
PLS_CORNER_UL_0,
PLS_CORNER_UL_1,
PLS_CORNER_UR_0,
PLS_CORNER_UR_1,
PLS_TBAR_0,
PLS_TBAR_1,
PLS_TFILL_0,
PLS_TFILL_1,
PLS_BFILL_0,
PLS_BFILL_1 = PLS_BFILL_0,
PLS_VISMINI_0,
PLS_VISMINI_1 = PLS_VISMINI_0,
PLS_LFILL_0,
PLS_LFILL_1 = PLS_LFILL_0,
PLS_RFILL_0,
PLS_RFILL_1 = PLS_RFILL_0,
PLS_RFILL2_0,
PLS_RFILL2_1 = PLS_RFILL2_0,
PLS_RFILL3_0,
PLS_RFILL3_1 = PLS_RFILL3_0,
PLS_CLOSE_BTN_0,
PLS_CLOSE_BTN_1,
PLS_SHADE_BTN_0,
PLS_SHADE_BTN_1,
PLS_MAX_BTN_0,
PLS_MAX_BTN_1,
PLS_SCROLL_0,
PLS_SCROLL_1,
PLS_WS_LE_0,
PLS_WS_LE_1 = PLS_WS_LE_0,
PLS_WS_RE_0,
PLS_WS_RE_1,
PLS_WS_MID_0,
PLS_WS_MID_1 = PLS_WS_MID_0,
PLS_LCBAR,
PLS_RCBAR
};
private:
QPixmap *Skin::getPixmap (string file);
void Parse (string file);
void BuildLetterMap (void);
void BuildButtons (void);
void BuildToggleButtons (void);
void BuildTitleBar (void);
void BuildSliders (void);
void BuildOther (void);
void BuildNumbers (void);
void BuildPlaylist (void);
void ParsePLEdit (void);
string m_skinname;
QString m_path;
QHash<uint, QPixmap> *m_items;
QHash<uint, QPixmap> *m_letterMap;
QHash<uint, QPixmap> *m_volume_bar;
QHash<uint, QPixmap> *m_balance;
QHash<uint, QPixmap> *m_numbers;
QHash<uint, QPixmap> *m_playlist;
QHash<QByteArray, QByteArray> *m_pledit_txt;
QList<QPixmap *> m_buttons;
signals:
void skinChanged (Skin *skin);
};
#endif