summaryrefslogtreecommitdiff
path: root/indra/newview/lldirpicker.cpp
diff options
context:
space:
mode:
authorAdam Moss <moss@lindenlab.com>2007-09-10 20:15:48 +0000
committerAdam Moss <moss@lindenlab.com>2007-09-10 20:15:48 +0000
commit96830697b2f3bb8d1d7e1c4a3a6872845a38926c (patch)
tree7663da01ec8eefb6fcdc4d4396d95c96f89cc970 /indra/newview/lldirpicker.cpp
parent80dfa222fdc3747be9f5b64b9ace35907edf1c4e (diff)
SL-53811, SL-53812, SL-53823, SL-26604, SL-54282 Linux filepickers
revamp. Passed by QA. Reviewed by bos. svn merge svn+ssh://svn.lindenlab.com/svn/linden/release@68938 svn+ssh://svn.lindenlab.com/svn/linden/branches/moss/SL-26604-based-on-r68938 -> release
Diffstat (limited to 'indra/newview/lldirpicker.cpp')
-rw-r--r--indra/newview/lldirpicker.cpp54
1 files changed, 54 insertions, 0 deletions
diff --git a/indra/newview/lldirpicker.cpp b/indra/newview/lldirpicker.cpp
index 178cfb4e61..54b815e3a4 100644
--- a/indra/newview/lldirpicker.cpp
+++ b/indra/newview/lldirpicker.cpp
@@ -17,6 +17,10 @@
#include "lldir.h"
#include "llframetimer.h"
+#if LL_LINUX
+# include "llfilepicker.h"
+#endif
+
//
// Globals
//
@@ -237,6 +241,56 @@ void LLDirPicker::reset()
mDir = NULL;
}
+#elif LL_LINUX
+
+LLDirPicker::LLDirPicker()
+{
+ mFilePicker = new LLFilePicker();
+ reset();
+}
+
+LLDirPicker::~LLDirPicker()
+{
+ delete mFilePicker;
+}
+
+
+void LLDirPicker::reset()
+{
+ if (mFilePicker)
+ mFilePicker->reset();
+}
+
+BOOL LLDirPicker::getDir(LLString* filename)
+{
+ reset();
+ if (mFilePicker)
+ {
+ GtkWindow* picker = mFilePicker->buildFilePicker(false, true,
+ "dirpicker");
+
+ if (picker)
+ {
+ gtk_window_set_title(GTK_WINDOW(picker), "Choose Directory");
+ gtk_widget_show_all(GTK_WIDGET(picker));
+ gtk_main();
+ return (NULL != mFilePicker->getFirstFile());
+ }
+ }
+ return FALSE;
+}
+
+LLString LLDirPicker::getDirName()
+{
+ if (mFilePicker)
+ {
+ const char* name = mFilePicker->getFirstFile();
+ if (name)
+ return name;
+ }
+ return "";
+}
+
#else // not implemented
LLDirPicker::LLDirPicker()