diff options
Diffstat (limited to 'indra/newview/lldirpicker.cpp')
-rw-r--r-- | indra/newview/lldirpicker.cpp | 54 |
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() |