Linux multi-monitor fullscreen support
[ryzomcore.git] / nel / tools / 3d / object_viewer / multi_tex_dlg.h
blobbec7175a3c1ddc5f31808177eaad294c3bf68699
1 // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
2 // Copyright (C) 2010 Winch Gate Property Limited
3 //
4 // This program is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU Affero General Public License as
6 // published by the Free Software Foundation, either version 3 of the
7 // License, or (at your option) any later version.
8 //
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU Affero General Public License for more details.
14 // You should have received a copy of the GNU Affero General Public License
15 // along with this program. If not, see <http://www.gnu.org/licenses/>.
20 #if !defined(AFX_MULTI_TEX_DLG_H__5D160C02_0FF4_4DF3_A804_90CE96C4F448__INCLUDED_)
21 #define AFX_MULTI_TEX_DLG_H__5D160C02_0FF4_4DF3_A804_90CE96C4F448__INCLUDED_
23 #if _MSC_VER > 1000
24 #pragma once
25 #endif
27 #include "ps_wrapper.h"
28 #include "particle_workspace.h"
30 namespace NL3D
32 class CPSMultiTexturedParticle;
35 class CTextureChooser;
36 struct IPopupNotify;
39 /////////////////////////////////////////////////////////////////////////////
40 // CMultiTexDlg dialog
42 class CMultiTexDlg : public CDialog
44 // Construction
45 public:
46 CMultiTexDlg(CParticleWorkspace::CNode *ownerNode, NL3D::CPSMultiTexturedParticle *mtp, IPopupNotify* pn, CWnd *pParent); // standard constructor
47 ~CMultiTexDlg();
49 /// create and show this dialog
50 void init(CWnd *pParent);
51 // Dialog Data
52 //{{AFX_DATA(CMultiTexDlg)
53 enum { IDD = IDD_MULTITEX };
54 CButton m_UseParticleDateAltCtrl;
55 CButton m_UseParticleDateCtrl;
56 CButton m_ForceBasicCapsCtrl;
57 CButton m_AltTexCtrl;
58 CComboBox m_AlternateOpCtrl;
59 CComboBox m_MainOpCtrl;
60 BOOL m_ForceBasicCaps;
61 BOOL m_UseParticleDateAlt;
62 BOOL m_UseParticleDate;
63 //}}AFX_DATA
66 // Overrides
67 // ClassWizard generated virtual function overrides
68 //{{AFX_VIRTUAL(CMultiTexDlg)
69 protected:
70 virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
71 //}}AFX_VIRTUAL
73 // Implementation
74 protected:
75 IPopupNotify *_PN;
76 // the multitextured particle being edited
77 NL3D::CPSMultiTexturedParticle *_MTP;
78 CParticleWorkspace::CNode *_Node;
80 // Generated message map functions
81 //{{AFX_MSG(CMultiTexDlg)
82 virtual BOOL OnInitDialog();
83 afx_msg void OnClose();
84 afx_msg void OnEnableAlternate();
85 afx_msg void OnUpdateSpeed();
86 afx_msg void OnUpdateSpeedAlternate();
87 afx_msg void OnSelchangeAlternateOp();
88 afx_msg void OnSelchangeMainOp();
89 afx_msg void OnForceBasicCaps();
90 afx_msg void OnUseParticleDate();
91 afx_msg void OnUseParticleDateAlt();
92 //}}AFX_MSG
93 DECLARE_MESSAGE_MAP()
94 // texture wrappers
95 struct CMainTexWrapper : IPSWrapperTexture
97 NL3D::CPSMultiTexturedParticle *MTP;
98 virtual NL3D::ITexture *get(void);
99 virtual void set(NL3D::ITexture *);
100 } _TexWrapper;
102 struct CAlternateTexWrapper : IPSWrapperTexture
104 NL3D::CPSMultiTexturedParticle *MTP;
105 virtual NL3D::ITexture *get(void);
106 virtual void set(NL3D::ITexture *);
107 } _AlternateTexWrapper;
108 CTextureChooser *_MainTexDlg, *_AltTexDlg;
109 void readValues(bool alternate); // get the values from the particle
110 void writeValues(bool alternate);
111 void updateAlternate();
112 void updateTexOp();
113 void updateBumpFactorEnabled();
114 void updateModifiedFlag() { if (_Node) _Node->setModified(true); }
117 //{{AFX_INSERT_LOCATION}}
118 // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
120 #endif // !defined(AFX_MULTI_TEX_DLG_H__5D160C02_0FF4_4DF3_A804_90CE96C4F448__INCLUDED_)