tahoma2d/toonz/sources/include/tw/filmstrip.h

83 lines
1.6 KiB
C
Raw Normal View History

2016-05-17 03:04:11 +12:00
#pragma once
2016-03-19 06:57:51 +13:00
#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
2016-06-15 18:43:10 +12:00
class DVAPI TFilmStripPanel : public TWidget {
2016-03-19 06:57:51 +13:00
protected:
2016-06-15 18:43:10 +12:00
TPoint m_lastPos;
int m_offset;
TScrollbar *m_scrollbar;
TLevelP m_level;
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
TUINT32 m_loaderId;
TLevelReaderP m_levelReader;
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
bool m_loaded;
TThread::Mutex m_mutex;
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
friend class FilmStripLoader;
2016-03-19 06:57:51 +13:00
public:
2016-06-15 18:43:10 +12:00
static const int m_xsize;
static const int m_ysize;
static const int m_frameHeight;
2016-03-19 06:57:51 +13:00
public:
2016-06-15 18:43:10 +12:00
TFilmStripPanel(TWidget *parent, string name = "FilmStripPanel");
~TFilmStripPanel();
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
void repaint();
void draw();
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
void leftButtonDown(const TMouseEvent &);
void leftButtonDrag(const TMouseEvent &);
void leftButtonUp(const TMouseEvent &);
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
void onDrop(string s);
void onTimer(int);
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
void setScrollbar(TScrollbar *sb);
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
void setLevel(TLevelP level);
TLevelP getLevel() { return m_level; };
void onScrollbarMove(int value);
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
void updateScrollbar();
2016-03-19 06:57:51 +13:00
};
2016-06-15 18:43:10 +12:00
class DVAPI TFilmStrip : public TWidget {
TFilmStripPanel *m_panel;
TScrollbar *m_scrollbar;
2016-03-19 06:57:51 +13:00
public:
2016-06-15 18:43:10 +12:00
TFilmStrip(TWidget *parent, string name = "FilmStrip");
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
void configureNotify(const TDimension &d);
void drop(string s) { m_panel->onDrop(s); };
2016-03-19 06:57:51 +13:00
};
#endif