summaryrefslogtreecommitdiff
path: root/indra/newview/lldirpicker.h
diff options
context:
space:
mode:
authorJames Cook <james@lindenlab.com>2007-01-02 08:33:20 +0000
committerJames Cook <james@lindenlab.com>2007-01-02 08:33:20 +0000
commit420b91db29485df39fd6e724e782c449158811cb (patch)
treeb471a94563af914d3ed3edd3e856d21cb1b69945 /indra/newview/lldirpicker.h
Print done when done.
Diffstat (limited to 'indra/newview/lldirpicker.h')
-rw-r--r--indra/newview/lldirpicker.h84
1 files changed, 84 insertions, 0 deletions
diff --git a/indra/newview/lldirpicker.h b/indra/newview/lldirpicker.h
new file mode 100644
index 0000000000..70e124f6c4
--- /dev/null
+++ b/indra/newview/lldirpicker.h
@@ -0,0 +1,84 @@
+/**
+ * @dir lldirpicker.h
+ * @brief OS-specific dir picker
+ *
+ * Copyright (c) 2001-$CurrentYear$, Linden Research, Inc.
+ * $License$
+ */
+
+// OS specific dir selection dialog. This is implemented as a
+// singleton class, so call the instance() method to get the working
+// instance.
+
+#ifndef LL_LLDIRPICKER_H
+#define LL_LLDIRPICKER_H
+
+#include "stdtypes.h"
+
+#if LL_DARWIN
+#include <Carbon/Carbon.h>
+
+// AssertMacros.h does bad things.
+#undef verify
+#undef check
+#undef require
+
+#include <vector>
+#include "llstring.h"
+
+#endif
+
+// Need commdlg.h for OPENDIRNAMEA
+#ifdef LL_WINDOWS
+#include <commdlg.h>
+#endif
+
+class LLDirPicker
+{
+public:
+ // calling this before main() is undefined
+ static LLDirPicker& instance( void ) { return sInstance; }
+
+ BOOL getDir(LLString* filename);
+ LLString getDirName();
+
+ // clear any lists of buffers or whatever, and make sure the dir
+ // picker isn't locked.
+ void reset();
+
+private:
+ enum
+ {
+ SINGLE_DIRNAME_BUFFER_SIZE = 1024,
+ //DIRNAME_BUFFER_SIZE = 65536
+ DIRNAME_BUFFER_SIZE = 65000
+ };
+
+ void buildDirname( void );
+
+#if LL_WINDOWS
+//FIXME
+#endif
+
+#if LL_DARWIN
+ NavDialogCreationOptions mNavOptions;
+ static pascal void doNavCallbackEvent(NavEventCallbackMessage callBackSelector,
+ NavCBRecPtr callBackParms, void* callBackUD);
+ OSStatus doNavChooseDialog();
+
+#endif
+
+ char mDirs[DIRNAME_BUFFER_SIZE];
+ LLString* mFileName;
+ LLString mDir;
+ BOOL mLocked;
+
+ static LLDirPicker sInstance;
+
+public:
+ // don't call these directly please.
+ LLDirPicker();
+ ~LLDirPicker();
+};
+
+#endif