![]() |
Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members
|
#include <FXFileDict.h>
Public Member Functions | |
| FXFileDict (FXApp *app) | |
| FXFileDict (FXApp *app, FXSettings *db) | |
| void | setSettings (FXSettings *s) |
| FXSettings * | getSettings () const |
| void | setIconDict (FXIconDict *icns) |
| FXIconDict * | getIconDict () const |
| void | setIconPath (const FXString &path) |
| const FXString & | getIconPath () const |
| FXFileAssoc * | replace (const FXchar *ext, const FXchar *str) |
| FXFileAssoc * | remove (const FXchar *ext) |
| FXFileAssoc * | find (const FXchar *ext) |
| virtual FXFileAssoc * | findFileBinding (const FXchar *pathname) |
| virtual FXFileAssoc * | findDirBinding (const FXchar *pathname) |
| virtual FXFileAssoc * | findExecBinding (const FXchar *pathname) |
| virtual void | save (FXStream &store) const |
| virtual void | load (FXStream &store) |
| virtual | ~FXFileDict () |
Public Member Functions inherited from FX::FXDict | |
| FXDict () | |
| FXDict (const FXDict &orig) | |
| FXDict & | operator= (const FXDict &orig) |
| void | size (FXint m) |
| FXint | size () const |
| FXint | no () const |
| void * | insert (const FXchar *ky, const void *ptr, bool mrk=false) |
| void * | replace (const FXchar *ky, const void *ptr, bool mrk=false) |
| void * | remove (const FXchar *ky) |
| void * | find (const FXchar *ky) const |
| bool | empty (FXint pos) const |
| const FXchar * | key (FXuint pos) const |
| void * | data (FXuint pos) const |
| bool | mark (FXuint pos) const |
| FXint | first () const |
| FXint | last () const |
| FXint | next (FXint pos) const |
| FXint | prev (FXint pos) const |
| void | clear () |
| virtual | ~FXDict () |
Public Member Functions inherited from FX::FXObject | |
| virtual long | onDefault (FXObject *, FXSelector, void *) |
| const FXchar * | getClassName () const |
| bool | isMemberOf (const FXMetaClass *metaclass) const |
| virtual long | tryHandle (FXObject *sender, FXSelector sel, void *ptr) |
| virtual | ~FXObject () |
Static Public Attributes | |
| static const FXchar | defaultExecBinding [] |
| static const FXchar | defaultDirBinding [] |
| static const FXchar | defaultFileBinding [] |
The File Association dictionary associates a file extension with a File Association record which contains command name, mime type, icons, and other information about the file type.
The icons referenced by the file association are managed by the Icon Dictionary; this guarantees that each icon is loaded only once into memory. The associations are determined by the information by the FOX Registry settings; each entry under the FILETYPES registry section comprises the command line, extension name, large icon, small icon, and mime type:
command ';' extension ';' bigicon [ ':' bigiconopen ] ';' icon [ ':' iconopen ] ';' mime [ ';' flags ]
For example, the binding for "jpg" could be:
xv s &;JPEG Image;bigimage.xpm;miniimage.xpm;image/jpeg;term
The association for a file name is determined by first looking at the entire file name, then at the whole extension, and then at sub-extensions. For example, "name.tar.gz", "tar.gz", and "gz" can each be given a different file association. Directory names may also be given associations; there is no command-line association for a directory, however. The association for a directory is found by first checking the whole pathname, then checking the pathname less the first component, and so on. So, "/usr/local/include", "/local/include", and "/include" can each be given their own file associations. If the above lookup procedure has not found a file association, the system uses a fallback associations: for files, the fallback association is determined by the binding "defaultfilebinding". For directories, the "defaultdirbinding" is used, and for executables the "defaultexecbinding" is used. The flags field is used for a number of bit-flags; two flags are currently defined: 'cd' and 'term'. The first one is intended to cause a launcher to execute the application in the shown directory; the second one is meant to indicate that the application is to be ran inside a new terminal.
| FX::FXFileDict::FXFileDict | ( | FXApp * | app | ) |
Construct a dictionary mapping file-extension to file associations, using the application registry settings as a source for the bindings.
The pointer to the application class is passed down to the icon source which is inside the icon dictionary.
| FX::FXFileDict::FXFileDict | ( | FXApp * | app, |
| FXSettings * | db | ||
| ) |
Construct a dictionary mapping file-extension to file associations, using the specified settings database as a source for the bindings.
The pointer to the application class is passed down to the icon source which is inside the icon dictionary.
|
virtual |
Destructor.
|
inline |
Change settings database.
|
inline |
Return settings database.
|
inline |
Change icon dictionary.
|
inline |
Return icon dictionary.
| void FX::FXFileDict::setIconPath | ( | const FXString & | path | ) |
Set icon search path; the initial search path is determined by the "iconpath" registry setting in the SETTINGS section.
| const FXString& FX::FXFileDict::getIconPath | ( | ) | const |
Return current icon search path.
| FXFileAssoc* FX::FXFileDict::replace | ( | const FXchar * | ext, |
| const FXchar * | str | ||
| ) |
Replace file association.
The new association is written into the settings database under the FILETYPES section; the format of the association is as follows:
<extension> = "<command> ; <type> ; <bigicon> [ : <bigopenicon> ] ; <smallicon> [ : <smalliconopen> ] ; <mimetype>"
Where <command> is the command used to launch the application (e.g. "xv %s &"), and <type> is the file type string (e.g. "GIF Image"), <bigicon> and <bigiconopen> are the large icons shown in "Icons" mode, <smallicon> and <smalliconopen> are the small icons shown in "Details" mode, and <mimetype> is the RFC2045 mime type of the file.
For example:
[FILETYPES] gif="xv %s &;GIF Image;big.xpm:bigopen.xpm;mini.xpm:miniopen.xpm;image/gif" /home/jeroen=";Home;home.xpm;minihome.xpm;application/x-folder"
| FXFileAssoc* FX::FXFileDict::remove | ( | const FXchar * | ext | ) |
Remove file association.
| FXFileAssoc* FX::FXFileDict::find | ( | const FXchar * | ext | ) |
Find file association from registry.
|
virtual |
Determine binding for the given file.
The default implementation tries the whole filename first, then tries the extensions. For example, for a file "source.tar.gz":
"source.tar.gz", "tar.gz", "gz"
are tried in succession. If no association is found the key "defaultfilebinding" is tried as a fallback association. A NULL is returned if no association of any kind is found.
|
virtual |
Find directory binding from registry.
The default implementation tries the whole pathname first, then tries successively smaller parts of the path. For example, a pathname "/usr/people/jeroen":
"/usr/people/jeroen" "/people/jeroen" "/jeroen"
are tried in succession. If no bindings are found, the key "defaultdirbinding" is tried as a fallback association. A NULL is returned if no association of any kind is found.
|
virtual |
Determine binding for the given executable.
The default implementation returns the fallback binding associated with the key "defaultexecbinding". A NULL is returned if no association of any kind is found.
|
virtual |
Save to stream.
Reimplemented from FX::FXObject.
|
virtual |
Load from stream.
Reimplemented from FX::FXObject.
|
static |
Registry key used to find fallback executable icons.
|
static |
Registry key used to find fallback directory icons.
|
static |
Registry key used to find fallback document icons.
|
|