56 #if !defined (USE_FINAL_H) && !defined (COMPILE_FINAL_CUT)    57   #error "Only <final/final.h> can be included directly."    60 #include <sys/param.h>    61 #include <sys/types.h>    71 #include "final/dialog/fdialog.h"    72 #include "final/dialog/fmessagebox.h"    73 #include "final/output/tty/fterm.h"    74 #include "final/widget/fbutton.h"    75 #include "final/widget/fcheckbox.h"    76 #include "final/widget/flineedit.h"    77 #include "final/widget/flistbox.h"    78 #include "final/widget/fstatusbar.h"   102                 , DialogType = DialogType::Open
   109     auto getClassName() 
const -> 
FString override;
   110     auto getPath() 
const -> 
FString;
   111     auto getFilter() 
const -> 
FString;
   112     auto getSelectedFile() 
const -> 
FString;
   113     auto getShowHiddenFiles() 
const noexcept -> bool;
   117     void setFilter (
const FString&);
   118     void setShowHiddenFiles (
bool = 
true);
   119     void unsetShowHiddenFiles();
   125     static auto fileOpenChooser ( 
FWidget*
   128     static auto fileSaveChooser ( 
FWidget*
   134     void adjustSize() 
override;
   138     enum class CloseDir { success, error };
   145         , character_device{
false}
   147         , block_device{
false}
   148         , regular_file{
false}
   149         , symbolic_link{
false}
   157       uChar character_device : 1;
   159       uChar block_device     : 1;
   160       uChar regular_file     : 1;
   161       uChar symbolic_link    : 1;
   166     using DirEntries = std::vector<FDirEntry>;
   170     void widgetSettings (
const FPoint&);
   171     void initCallbacks();
   172     auto patternMatch ( 
const std::string&
   173                       , 
const std::string& ) 
const -> bool;
   175     auto numOfDirs() -> sInt64;
   177     auto readDir() -> int;
   178     void getEntry (
const char* 
const, 
const struct dirent*);
   179     void followSymLink (
const char* 
const, FDirEntry&) 
const;
   180     auto openDirectory() -> DIR*;
   181     auto closeDirectory (DIR*) -> CloseDir;
   182     void readDirEntries (DIR*);
   183     auto isCurrentDirectory (
const struct dirent*) 
const -> bool;
   184     auto isParentDirectory (
const struct dirent*) 
const -> bool;
   185     auto isHiddenEntry (
const struct dirent*) 
const -> bool;
   186     auto isRootDirectory (
const char* 
const) 
const -> bool;
   187     void dirEntriesToList();
   188     void selectDirectoryEntry (
const std::string&);
   189     auto changeDir (
const FString&) -> int;
   190     void printPath (
const FString&);
   191     void setTitelbarText();
   192     static auto getHomeDir() -> 
FString;
   193     auto isFilterInput() 
const -> bool;
   194     auto isDirectoryInput() 
const -> bool;
   195     void activateNewFilter();
   196     void activateDefaultFilter();
   197     void findItem (
const FString&);
   198     void changeIntoSubDir();
   201     void cb_processActivate();
   202     void cb_processRowChanged();
   203     void cb_processClicked();
   204     void cb_processCancel();
   205     void cb_processOpen();
   206     void cb_processShowHidden();
   209     DirEntries  dir_entries{};
   217     DialogType  dlg_type{DialogType::Open};
   218     bool        show_hidden{
false};
   221     friend auto sortByName ( 
const FFileDialog::FDirEntry&
   222                            , 
const FFileDialog::FDirEntry& ) -> bool;
   223     friend auto sortDirFirst (
const FFileDialog::FDirEntry&) -> bool;
   224     friend auto fileChooser ( 
FWidget*
   227                             , FFileDialog::DialogType) -> 
FString;
   232 inline auto FFileDialog::getClassName() 
const -> 
FString   233 { 
return "FFileDialog"; }
   236 inline auto FFileDialog::getPath() 
const -> 
FString   237 { 
return directory; }
   240 inline auto FFileDialog::getFilter() 
const -> 
FString   241 { 
return filter_pattern; }
   244 inline void FFileDialog::unsetShowHiddenFiles()
   245 { setShowHiddenFiles(
false); }
   248 inline auto FFileDialog::getShowHiddenFiles() 
const noexcept -> 
bool   249 { 
return show_hidden; }
   253 #endif  // FFILEDIALOG_H Definition: ffiledialog.h:87
 
Definition: flistbox.h:173
 
Definition: class_template.cpp:25
 
Definition: fcheckbox.h:64
 
Definition: flineedit.h:67