File: FileTypes.h

package info (click to toggle)
storm-lang 0.7.4-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 52,004 kB
  • sloc: ansic: 261,462; cpp: 140,405; sh: 14,891; perl: 9,846; python: 2,525; lisp: 2,504; asm: 860; makefile: 678; pascal: 70; java: 52; xml: 37; awk: 12
file content (36 lines) | stat: -rw-r--r-- 929 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#pragma once
#include <vector>

// A container suitable for storage of a set of named file types.
// Mainly intended for use with the pickFile in the UI parts.

class FileTypes {
public:
	// Create with a collection name, such as "Music files", "Video files", or "All supported files"
	FileTypes(const String &collName);

	// Add a new file type. Example: "*.txt", "Text files", or "*.jpg;*.jpeg", "JPEG files"
	void add(const String &ext, const String &name);

	// Add a type supporting all file types.
	void addAll();

	// Get the number of elements.
	inline nat size() const { return (nat)types.size(); }

	struct Elem {
		String ext, name;
	};

	// Get the specified element.
	const Elem &operator[] (nat id) const;

	// Get the collective name of the file types.
	inline const String &name() const { return collName; }

	// Get all types.
	vector<String> allTypes() const;
private:
	String collName;
	vector<Elem> types;
};