84 lines
1.5 KiB
C++
84 lines
1.5 KiB
C++
|
|
|
|
#ifndef FILMSTRIP_INCLUDED
|
|
#define FILMSTRIP_INCLUDED
|
|
|
|
#include "tw/tw.h"
|
|
//#include "tw/scrollbar.h"
|
|
#include "tlevel_io.h"
|
|
#include "tthread.h"
|
|
|
|
//=========================================================
|
|
// forward declaration
|
|
|
|
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
|