about summary refs log tree commit diff
path: root/src/game/editor/ed_editor.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/editor/ed_editor.h')
-rw-r--r--src/game/editor/ed_editor.h50
1 files changed, 33 insertions, 17 deletions
diff --git a/src/game/editor/ed_editor.h b/src/game/editor/ed_editor.h
index 225ff4ab..9388a671 100644
--- a/src/game/editor/ed_editor.h
+++ b/src/game/editor/ed_editor.h
@@ -318,7 +318,7 @@ public:
 
 	// io	
 	int Save(class IStorage *pStorage, const char *pFilename);
-	int Load(class IStorage *pStorage, const char *pFilename);
+	int Load(class IStorage *pStorage, const char *pFilename, int StorageType);
 };
 
 
@@ -464,9 +464,12 @@ public:
 		m_pFileDialogButtonText = 0;
 		m_pFileDialogUser = 0;
 		m_aFileDialogFileName[0] = 0;
-		m_aFileDialogPath[0] = 0;
-		m_aFileDialogCompleteFilename[0] = 0;
-		m_FilesNum = 0;
+		m_aFileDialogCurrentFolder[0] = 0;
+		m_aFileDialogCurrentLink[0] = 0;
+		m_pFileDialogPath = m_aFileDialogCurrentFolder;
+		m_aFileDialogActivate = false;
+		m_FileDialogScrollValue = 0.0f;
+		m_FilesSelectedIndex = -1;
 		m_FilesStartAt = 0;
 		m_FilesCur = 0;
 		m_FilesStopAt = 999;
@@ -507,15 +510,15 @@ public:
 	virtual void Init();
 	virtual void UpdateAndRender();
 	
-	void FilelistPopulate();
-	void InvokeFileDialog(int StorageType, const char *pTitle, const char *pButtonText,
+	void FilelistPopulate(int StorageType);
+	void InvokeFileDialog(int StorageType, int FileType, const char *pTitle, const char *pButtonText,
 		const char *pBasepath, const char *pDefaultName,
-		void (*pfnFunc)(const char *pFilename, void *pUser), void *pUser);
+		void (*pfnFunc)(const char *pFilename, int StorageType, void *pUser), void *pUser);
 	
 	void Reset(bool CreateDefault=true);
 	int Save(const char *pFilename);
-	int Load(const char *pFilename);
-	int Append(const char *pFilename);
+	int Load(const char *pFilename, int StorageType);
+	int Append(const char *pFilename, int StorageType);
 	void Render();
 
 	CQuad *GetSelectedQuad();
@@ -530,22 +533,35 @@ public:
 	const char *m_pTooltip;
 
 	char m_aFileName[512];
+
+	enum
+	{
+		FILETYPE_MAP,
+		FILETYPE_IMG,
+
+		MAX_PATH_LENGTH = 512
+	};
 	
 	int m_FileDialogStorageType;
 	const char *m_pFileDialogTitle;
 	const char *m_pFileDialogButtonText;
-	void (*m_pfnFileDialogFunc)(const char *pFileName, void *pUser);
+	void (*m_pfnFileDialogFunc)(const char *pFileName, int StorageType, void *pUser);
 	void *m_pFileDialogUser;
-	char m_aFileDialogFileName[512];
-	char m_aFileDialogPath[512];
-	char m_aFileDialogCompleteFilename[512];
-	int m_FilesNum;
+	char m_aFileDialogFileName[MAX_PATH_LENGTH];
+	char m_aFileDialogCurrentFolder[MAX_PATH_LENGTH];
+	char m_aFileDialogCurrentLink[MAX_PATH_LENGTH];
+	char *m_pFileDialogPath;
+	bool m_aFileDialogActivate;
+	int m_FileDialogFileType;
+	float m_FileDialogScrollValue;
+	int m_FilesSelectedIndex;
 
 	struct CFilelistItem
 	{
 		char m_aFilename[128];
 		char m_aName[128];
 		bool m_IsDir;
+		bool m_IsLink;
 		int m_StorageType;
 		
 		bool operator<(const CFilelistItem &Other) { return !str_comp(m_aFilename, "..") ? true : !str_comp(Other.m_aFilename, "..") ? false :
@@ -643,8 +659,8 @@ public:
 	float UiDoScrollbarV(const void *id, const CUIRect *pRect, float Current);
 	vec4 GetButtonColor(const void *id, int Checked);
 	
-	static void ReplaceImage(const char *pFilename, void *pUser);
-	static void AddImage(const char *pFilename, void *pUser);
+	static void ReplaceImage(const char *pFilename, int StorageType, void *pUser);
+	static void AddImage(const char *pFilename, int StorageType, void *pUser);
 	
 	void RenderImages(CUIRect Toolbox, CUIRect Toolbar, CUIRect View);
 	void RenderLayers(CUIRect Toolbox, CUIRect Toolbar, CUIRect View);
@@ -655,7 +671,7 @@ public:
 	void RenderMenubar(CUIRect Menubar);
 	void RenderFileDialog();
 
-	void AddFileDialogEntry(const CFilelistItem *pItem, CUIRect *pView);
+	void AddFileDialogEntry(int Index, CUIRect *pView);
 	void SortImages();
 };