29 class CLASS_DECL_ACME listing_base:
37 using ::file::path_array_base::add;
46 ::file::e_flag m_eflag;
47 ::enum_depth m_edepth;
48 string_array_base m_straPattern;
49 string_array_base m_straIgnoreName;
50 string_array_base m_straTitle;
53 ::particle_array m_particleaMetaData;
56 ::function < void(const ::file::path &
path) > m_functionOnNewPath;
60 listing_base(
const listing_base & listing_base);
61 listing_base(listing_base&& listing_base);
66 inline void fix_flag()
69 fix_file_listing_flag(m_eflag);
109 template < prototype_container CONTAINER >
110 inline ::collection::index add_container(
const CONTAINER & container)
113 auto iIndex = ::file::path_array_base::append_container(container);
120 template <
typename CONTAINER >
121 inline ::collection::index add_listing(
const CONTAINER & container)
124 auto iIndex = ::file::path_array_base::append_container(container);
126 m_straTitle.append_container(container.m_straTitle);
132 void operator()(const ::file::path&
path)
141 ::collection::index add_child(const ::file::path &
path)
144 return add(m_pathUser /
path);
151 return add_get(m_pathUser /
path);
156 listing_base & ignore(const ::scoped_string & scopedstrName)
159 m_straIgnoreName.add(scopedstrName);
167 void clear_results() { m_straTitle.erase_all(); erase_all(); }
170 string title(::collection::index i);
173 string name(::collection::index i);
182 ::collection::index case_insensitive_name_find_first(
const path & pcsz,::collection::index find = 0,::collection::index last = -1)
const;
184 bool case_insensitive_name_move(
const path & pcsz, ::collection::index iIndex);
186 bool preferred_name(
const path & pcsz);
195 void set_listing(const ::file::path &
path, enum_depth edepth = e_depth_none, ::file::e_flag eflag = ::file::e_flag_none)
198 m_penumerator =
nullptr;
211 void set_folder_listing(const ::file::path &
path, enum_depth edepth = e_depth_none)
214 set_listing(
path, edepth, ::file::e_flag_folder);
219 void set_file_listing(const ::file::path &
path, enum_depth edepth = e_depth_none)
222 set_listing(
path, edepth, ::file::e_flag_file);
227 void set_pattern_listing(const ::file::path &
path, const ::string_array_base & straPattern, enum_depth edepth = e_depth_none, ::file::e_flag eflag = ::file::e_flag_none)
230 m_straPattern = straPattern;
232 set_listing(
path, edepth, eflag);
237 void set_pattern_folder_listing(const ::file::path &
path, const ::string_array_base & straPattern, enum_depth edepth = e_depth_none)
240 set_pattern_listing(
path, straPattern, edepth, ::file::e_flag_folder);
245 void set_pattern_file_listing(const ::file::path &
path, const ::string_array_base & straPattern, enum_depth edepth = e_depth_none)
248 set_pattern_listing(
path, straPattern, edepth, ::file::e_flag_file);
252 listing_base& operator=(const ::file::listing_base& array);