| #pragma once |
| |
| #ifndef FILMSTRIP_INCLUDED |
| #define FILMSTRIP_INCLUDED |
| |
| #include "tw/tw.h" |
| |
| #include "tlevel_io.h" |
| #include "tthread.h" |
| |
| |
| |
| |
| class TScrollbar; |
| |
| |
| |
| #undef DVAPI |
| #undef DVVAR |
| #ifdef TWIN_EXPORTS |
| #define DVAPI DV_EXPORT_API |
| #define DVVAR DV_EXPORT_VAR |
| #else |
| #define DVAPI DV_IMPORT_API |
| #define DVVAR DV_IMPORT_VAR |
| #endif |
| |
| class DVAPI TFilmStripPanel : public TWidget { |
| protected: |
| TPoint m_lastPos; |
| int m_offset; |
| TScrollbar *m_scrollbar; |
| TLevelP m_level; |
| |
| TUINT32 m_loaderId; |
| TLevelReaderP m_levelReader; |
| |
| bool m_loaded; |
| TThread::Mutex m_mutex; |
| |
| friend class FilmStripLoader; |
| |
| public: |
| static const int m_xsize; |
| static const int m_ysize; |
| static const int m_frameHeight; |
| |
| public: |
| TFilmStripPanel(TWidget *parent, string name = "FilmStripPanel"); |
| ~TFilmStripPanel(); |
| |
| void repaint(); |
| void draw(); |
| |
| void leftButtonDown(const TMouseEvent &); |
| void leftButtonDrag(const TMouseEvent &); |
| void leftButtonUp(const TMouseEvent &); |
| |
| void onDrop(string s); |
| void onTimer(int); |
| |
| void setScrollbar(TScrollbar *sb); |
| |
| void setLevel(TLevelP level); |
| TLevelP getLevel() { return m_level; }; |
| void onScrollbarMove(int value); |
| |
| void updateScrollbar(); |
| }; |
| |
| class DVAPI TFilmStrip : public TWidget { |
| TFilmStripPanel *m_panel; |
| TScrollbar *m_scrollbar; |
| |
| public: |
| TFilmStrip(TWidget *parent, string name = "FilmStrip"); |
| |
| void configureNotify(const TDimension &d); |
| void drop(string s) { m_panel->onDrop(s); }; |
| }; |
| |
| #endif |