LmmsStyle: initial port of scrollbar drawing code from CusisStyle

Colors still need to be made configurable via CSS and tuned for the
default theme.
This commit is contained in:
Tobias Doerffel
2014-01-16 23:39:54 +01:00
parent 2d4e769bd8
commit dffaa6abe0
2 changed files with 622 additions and 1 deletions

View File

@@ -33,6 +33,34 @@
class lmmsStyle : public QPlastiqueStyle
{
public:
enum ColorRole
{
AutomationBarFill,
AutomationBarValue,
AutomationSelectedBarFill,
AutomationCrosshair,
PianoRollStepNote,
PianoRollSelectedNote,
PianoRollDefaultNote,
PianoRollFrozenNote,
PianoRollMutedNote,
PianoRollEditHandle,
PianoRollVolumeLevel,
PianoRollPanningLevel,
PianoRollSelectedLevel,
TimelineForecolor,
StandardGraphLine,
StandardGraphHandle,
StandardGraphHandleBorder,
StandardGraphCrosshair,
TextFloatForecolor,
TextFloatFill,
VisualizationLevelLow,
VisualizationLevelMid,
VisualizationLevelPeak,
NumColorRoles
};
lmmsStyle();
virtual ~lmmsStyle()
{
@@ -40,6 +68,8 @@ public:
virtual QPalette standardPalette( void ) const;
virtual void drawControl( ControlElement element, const QStyleOption* option, QPainter* painter, const QWidget* widget ) const;
virtual void drawComplexControl(
ComplexControl control,
const QStyleOptionComplex * option,
@@ -54,6 +84,14 @@ public:
const QStyleOption * option = 0,
const QWidget * widget = 0 ) const;
QSize sizeFromContents( ContentsType type, const QStyleOption* option, const QSize& size, const QWidget* widget ) const;
QRect subControlRect( ComplexControl control, const QStyleOptionComplex *option, SubControl subControl, const QWidget *widget ) const;
private:
QImage colorizeXpm( const char * const * xpm, const QBrush& fill ) const;
void hoverColors( bool sunken, bool hover, bool active, QColor& color, QColor& blend ) const;
QColor m_colors[ lmmsStyle::NumColorRoles ];
} ;
#endif