summaryrefslogtreecommitdiff
path: root/indra/newview/lldirpicker.cpp
diff options
context:
space:
mode:
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()