1/* 2 * Copyright 2010, Stephan A��mus <superstippi@gmx.de>. 3 * Distributed under the terms of the MIT License. 4 */ 5#ifndef PLAY_PAUSE_BUTTON_H 6#define PLAY_PAUSE_BUTTON_H 7 8 9#include "SymbolButton.h" 10 11 12class PlayPauseButton : public SymbolButton { 13public: 14 PlayPauseButton(const char* name, 15 BShape* playSymbolShape, 16 BShape* pauseSymbolShape, 17 BMessage* message = NULL, 18 uint32 borders 19 = BControlLook::B_ALL_BORDERS); 20 21 virtual ~PlayPauseButton(); 22 23 // BButton interface 24 virtual void Draw(BRect updateRect); 25 virtual BSize MinSize(); 26 virtual BSize MaxSize(); 27 28 // PlayPauseButton 29 void SetPlaying(); 30 void SetPaused(); 31 void SetStopped(); 32 33 void SetSymbols(BShape* playSymbolShape, 34 BShape* pauseSymbolShape); 35 36private: 37 void _SetPlaybackState(uint32 state); 38 39private: 40 BShape* fPlaySymbol; 41 BShape* fPauseSymbol; 42 enum { 43 kStopped = 0, 44 kPaused, 45 kPlaying 46 }; 47 uint32 fPlaybackState; 48}; 49 50 51#endif // PLAY_PAUSE_BUTTON_H 52