Play-/Source/win32ui/SaveView.h
jpd002 14129468e4 Removed uses of CList, CEvent, CEventEx, CEventHandler.
Fixed TR1 compilance.
Input configuration support for Win32.
Support for analog axis in PadMan.

git-svn-id: http://svn.purei.org/purei/trunk@361 b36208d7-6611-0410-8bec-b1987f11c4a2
2008-08-24 21:28:42 +00:00

115 lines
2.8 KiB
C++

#ifndef _SAVEVIEW_H_
#define _SAVEVIEW_H_
#include <boost/thread.hpp>
#include <boost/signal.hpp>
#include "win32/Window.h"
#include "win32/Edit.h"
#include "win32/Button.h"
#include "win32/Layouts.h"
#include "IconView.h"
#include "CommandSink.h"
#include "../saves/Save.h"
#include "../ThreadMsg.h"
class CSaveView : public Framework::Win32::CWindow, public boost::signals::trackable
{
public:
CSaveView(HWND);
~CSaveView();
void SetSave(const CSave*);
boost::signal<void (const CSave*)> m_OnDeleteClicked;
protected:
long OnSize(unsigned int, unsigned int, unsigned int);
long OnCommand(unsigned short, unsigned short, HWND);
private:
enum ICONTYPE
{
ICON_NORMAL,
ICON_DELETING,
ICON_COPYING,
};
class CIconViewWnd : public Framework::Win32::CWindow
{
public:
CIconViewWnd(HWND, RECT*);
~CIconViewWnd();
void SetSave(const CSave*);
void SetIconType(ICONTYPE);
protected:
long OnLeftButtonDown(int, int);
long OnLeftButtonUp(int, int);
long OnMouseWheel(short);
long OnMouseMove(WPARAM, int, int);
long OnSetCursor(HWND, unsigned int, unsigned int);
private:
void ThreadProc();
void ThreadSetSave(const CSave*);
void ThreadSetIconType(ICONTYPE);
void LoadIcon();
void ChangeCursor();
void Render(HDC);
void DrawBackground();
HGLRC m_hRC;
boost::thread* m_pThread;
static PIXELFORMATDESCRIPTOR m_PFD;
CThreadMsg m_MailSlot;
const CSave* m_pSave;
CIconView* m_pIconView;
ICONTYPE m_nIconType;
double m_nRotationX;
double m_nRotationY;
bool m_nGrabbing;
int m_nGrabPosX;
int m_nGrabPosY;
int m_nGrabDistX;
int m_nGrabDistY;
double m_nGrabRotX;
double m_nGrabRotY;
double m_nZoom;
enum THREADMSG
{
THREAD_END,
THREAD_SETSAVE,
THREAD_SETICONTYPE,
};
};
void RefreshLayout();
long SetIconType(ICONTYPE);
long OpenSaveFolder();
long Export();
long Delete();
CCommandSink m_CommandSink;
const CSave* m_pSave;
Framework::FlatLayoutPtr m_pLayout;
Framework::Win32::CEdit* m_pNameLine1;
Framework::Win32::CEdit* m_pNameLine2;
Framework::Win32::CEdit* m_pSize;
Framework::Win32::CEdit* m_pId;
Framework::Win32::CEdit* m_pLastModified;
Framework::Win32::CButton* m_pOpenFolder;
Framework::Win32::CButton* m_pExport;
Framework::Win32::CButton* m_pDelete;
Framework::Win32::CButton* m_pNormalIcon;
Framework::Win32::CButton* m_pCopyingIcon;
Framework::Win32::CButton* m_pDeletingIcon;
CIconViewWnd* m_pIconViewWnd;
ICONTYPE m_nIconType;
};
#endif