promoe/Skin.h
Tobias Bengtsson beeaeb95b1 Time display reverse
both minus and numberdisplays clickable
skin minus now visible
drawing minus-line (skins without minus) in correct color.
stop now contains minus as well.
2006-03-15 16:07:51 -04:00

286 lines
5.2 KiB
C++

#ifndef __SKIN_H__
#define __SKIN_H__
#include <iostream>
#include <QPixmap>
#include <QPainter>
#include <QWidget>
#include <QMap>
#include <QDir>
class Skin : public QWidget
{
Q_OBJECT
public:
static Skin *getInstance (void);
void setSkin (const QString& name);
static QPixmap getPixmap (const QString&, QDir);
const QPixmap getItem (uint part) const { return m_items[part]; }
const QPixmap getPls (uint part) const { return m_playlist[part]; }
const QPixmap getVol (uint p) const { return m_volume_bar[p]; }
const QPixmap getBal (uint p) const { return m_balance[p]; }
const QPixmap getLetter (uint c) const { return m_letterMap[c]; }
const QPixmap getNumber (uint c) const { return m_numbers[c]; }
uint getNumberSize () { return m_numbers.size(); }
const QByteArray getPLeditValue (QByteArray c) const { return m_pledit_txt[c]; }
const bool getVolBtn(void) const { return m_volbtn; }
const bool getBalBtn(void) const { return m_balbtn; }
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,
VOLBAR_BTN_0,
VOLBAR_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,
PLS_MSC_BTN_0,
PLS_MSC_BTN_1,
PLS_ADD,
PLS_ADD_DEC,
PLS_ADD_URL_0,
PLS_ADD_URL_1,
PLS_ADD_DIR_0,
PLS_ADD_DIR_1,
PLS_ADD_FIL_0,
PLS_ADD_FIL_1,
PLS_DEL,
PLS_DEL_DEC,
PLS_DEL_ALL_0,
PLS_DEL_ALL_1,
PLS_DEL_CRP_0,
PLS_DEL_CRP_1,
PLS_DEL_FIL_0,
PLS_DEL_FIL_1,
PLS_SEL,
PLS_SEL_DEC,
PLS_SEL_INV_0,
PLS_SEL_INV_1,
PLS_SEL_NIL_0,
PLS_SEL_NIL_1,
PLS_SEL_ALL_0,
PLS_SEL_ALL_1,
PLS_MSC,
PLS_MSC_DEC,
PLS_MSC_SRT_0,
PLS_MSC_SRT_1,
PLS_MSC_INF_0,
PLS_MSC_INF_1,
PLS_MSC_OPT_0,
PLS_MSC_OPT_1,
PLS_LST,
PLS_LST_DEC,
PLS_LST_NEW_0,
PLS_LST_NEW_1,
PLS_LST_SAV_0,
PLS_LST_SAV_1,
PLS_LST_OPN_0,
PLS_LST_OPN_1
};
private:
Skin() {};
static Skin *singleton;
QPixmap *Skin::getPixmap (const QString& 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);
QString m_skinname;
QString m_path;
QMap<uint, QPixmap> m_items;
QMap<uint, QPixmap> m_letterMap;
QMap<uint, QPixmap> m_volume_bar;
QMap<uint, QPixmap> m_balance;
QMap<uint, QPixmap> m_numbers;
QMap<uint, QPixmap> m_playlist;
QMap<QByteArray, QByteArray> m_pledit_txt;
QList<QPixmap *> m_buttons;
bool m_volbtn;
bool m_balbtn;
signals:
void skinChanged (Skin *skin);
};
#endif