summaryrefslogtreecommitdiff
path: root/plugingui/filebrowser.h
diff options
context:
space:
mode:
authorBent Bisballe Nyeng <deva@aasimon.org>2017-04-16 21:33:38 +0200
committerBent Bisballe Nyeng <deva@aasimon.org>2017-04-16 21:33:38 +0200
commit14c76e247f982b153adba005283826a2b722f89f (patch)
tree4482b81f0cd812571183a244b40b06c978bfc056 /plugingui/filebrowser.h
parent41a34f74ed1cf16428533724c5eb6f381d813850 (diff)
Hacky filebrowser-as-a-Dialog implementation.
Diffstat (limited to 'plugingui/filebrowser.h')
-rw-r--r--plugingui/filebrowser.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/plugingui/filebrowser.h b/plugingui/filebrowser.h
index 7b31864..ff8a7e8 100644
--- a/plugingui/filebrowser.h
+++ b/plugingui/filebrowser.h
@@ -49,12 +49,20 @@ public:
void setPath(const std::string& path);
Notifier<const std::string&> fileSelectNotifier; // (const std::string& path)
+ Notifier<> fileSelectCancelNotifier;
// From Widget:
bool isFocusable() override { return true; }
virtual void repaintEvent(RepaintEvent* repaintEvent) override;
virtual void resize(std::size_t width, std::size_t height) override;
+ //! Return the filename selected in the browser.
+ std::string getFilename() const;
+
+ //! Returns true if the filebrowser has a selection, false if the window was
+ //! closed or the cancel button was clicked.
+ bool hasFilename() const;
+
private:
void listSelectionChanged();
void selectButtonClicked();
@@ -68,6 +76,7 @@ private:
#endif
void cancel();
+ void select(const std::string& file);
void changeDir();
Label lbl_path;
@@ -79,6 +88,9 @@ private:
Button btn_esc;
Image back;
+
+ bool has_filename{false};
+ std::string filename;
};
} // GUI::