GG::FileDlg Class Reference

the default file open/save dialog box. More...

#include <FileDlg.h>

Inheritance diagram for GG::FileDlg:

GG::Wnd List of all members.

Structors

 FileDlg (const std::string &directory, const std::string &filename, bool save, bool multi, const boost::shared_ptr< Font > &font, Clr color, Clr border_color, Clr text_color=CLR_BLACK)

Accessors

std::set< std::string > Result () const
bool SelectDirectories () const
bool AppendMissingSaveExtension () const
const std::string & FilesString () const
const std::string & FileTypesString () const
const std::string & SaveString () const
const std::string & OpenString () const
const std::string & CancelString () const
const std::string & MalformedFilenameString () const
const std::string & OverwritePromptString () const
const std::string & InvalidFilenameString () const
const std::string & FilenameIsADirectoryString () const
const std::string & FileDoesNotExistString () const
const std::string & DeviceIsNotReadyString () const
const std::string & ThreeButtonDlgOKString () const
const std::string & ThreeButtonDlgCancelString () const

Mutators

virtual void Render ()
virtual void KeyPress (Key key, Flags< ModKey > mod_keys)
void SelectDirectories (bool directories)
void AppendMissingSaveExtension (bool append)
void SetFileFilters (const std::vector< std::pair< std::string, std::string > > &filters)
void SetFilesString (const std::string &str)
void SetFileTypesString (const std::string &str)
void SetSaveString (const std::string &str)
void SetOpenString (const std::string &str)
void SetCancelString (const std::string &str)
void SetMalformedFilenameString (const std::string &str)
void SetOverwritePromptString (const std::string &str)
void SetInvalidFilenameString (const std::string &str)
void SetFilenameIsADirectoryString (const std::string &str)
void SetFileDoesNotExistString (const std::string &str)
void SetDeviceIsNotReadyString (const std::string &str)
void SetThreeButtonDlgOKString (const std::string &str)
void SetThreeButtonDlgCancelString (const std::string &str)

Exceptions

 GG_ABSTRACT_EXCEPTION (Exception)
 GG_CONCRETE_EXCEPTION (BadInitialDirectory, GG::FileDlg, Exception)

Structors

 FileDlg ()

Static Public Member Functions

static const boost::filesystem::path & WorkingDirectory ()

Protected Types

enum  {
  WIDTH = 400,
  HEIGHT = 350
}

Detailed Description

the default file open/save dialog box.

This dialog, like all the common GG dialogs, is modal. It asks the user for one or more filenames, which the caller may retrieve with a call to Result() after the dialog is closed. Note that all strings displayed during the run of the FileDlg are customizable. Sometimes, the FileDlg will pop up a message box (a ThreeButtonDlg) and notify the user of something or ask for input. These message strings are also customizable. Some of these strings include the filename as part of the message. When replacing these strings with your own, you need to include the placement of the filename in the message with the character sequence "%1%" (see boost.format for details).

Definition at line 52 of file FileDlg.h.


Member Enumeration Documentation

anonymous enum [protected]

Enumerator:
WIDTH 
HEIGHT 

Definition at line 145 of file FileDlg.h.


Constructor & Destructor Documentation

GG::FileDlg::FileDlg ( const std::string &  directory,
const std::string &  filename,
bool  save,
bool  multi,
const boost::shared_ptr< Font > &  font,
Clr  color,
Clr  border_color,
Clr  text_color = CLR_BLACK 
)

basic ctor.

Parameters directory and filename pass an initial directory and filename to the dialog, if desired (such as when "Save As..." is selected in an app, and there is a current filename). If directory is specified, it is taken as-is if it is absolute, or relative to boost::filesystem::initial_path() if it is relative. If directory is "", the initial directory is WorkingDirectory(). save indicates whether this is a save or load dialog; multi indicates whether multiple file selections are allowed.

Exceptions:
GG::FileDlg::BadInitialDirectory Throws when directory is invalid.

GG::FileDlg::FileDlg (  )  [protected]

default ctor


Member Function Documentation

std::set<std::string> GG::FileDlg::Result (  )  const

returns a set of strings that contains the files chosen by the user; there will be only one file if multi == false was passed to the ctor

bool GG::FileDlg::SelectDirectories (  )  const

Returns true iff this FileDlg will select directories instead of files.

bool GG::FileDlg::AppendMissingSaveExtension (  )  const

Returns true iff this FileDlg will append the missing extension to a file when in save mode.

Note that action is only taken if there is a single file filter containing exactly one wildcard in its first position (i.e. it is of the form "*foo"). If precondition is satisfied, any filename the user selects that does not end in "foo" will have "foo" appended to it.

const std::string& GG::FileDlg::FilesString (  )  const

returns the text label next to the files edit box to str Default: "File(s):"

const std::string& GG::FileDlg::FileTypesString (  )  const

returns the text label next to the file types dropdown list to str Default: "Type(s):"

const std::string& GG::FileDlg::SaveString (  )  const

returns the text of the ok button in its "save" state to str Default: "Save"

const std::string& GG::FileDlg::OpenString (  )  const

returns the text of the ok button in its "open" state to str Default: "Open"

const std::string& GG::FileDlg::CancelString (  )  const

returns the text of the cancel button to str Default: "Cancel"

const std::string& GG::FileDlg::MalformedFilenameString (  )  const

returns the error message when a malformed filename is encountered to str Default: "Invalid file name."

const std::string& GG::FileDlg::OverwritePromptString (  )  const

returns the prompt message when a malformed file-overwrite is requested to str Default: "%1% exists.\nOk to overwrite it?"

const std::string& GG::FileDlg::InvalidFilenameString (  )  const

returns the error message when an invalid filename is encountered to str Default: "\"1%\"\nis an invalid file name."

const std::string& GG::FileDlg::FilenameIsADirectoryString (  )  const

returns the error message when a directory instead of a filename is specified to str Default: "\"1%\"\nis a directory."

const std::string& GG::FileDlg::FileDoesNotExistString (  )  const

returns the error message when a nonexistent filename is encountered to str Default: "File \"1%\"\ndoes not exist."

const std::string& GG::FileDlg::DeviceIsNotReadyString (  )  const

returns the error message when an unmounted drive is encountered to str Default: "The device is not ready."

const std::string& GG::FileDlg::ThreeButtonDlgOKString (  )  const

returns the text of the 3-button dialog's ok button to str Default: "Ok"

const std::string& GG::FileDlg::ThreeButtonDlgCancelString (  )  const

returns the text of the 3-button dialog's cancel button to str Default: "Cancel"

virtual void GG::FileDlg::Render (  )  [virtual]

draws this Wnd.

Note that Wnds being dragged for a drag-and-drop operation are rendered twice -- once in-place as normal, once in the location of the drag operation, attached to the cursor. Such Wnds may wish to render themselves differently in those two cases. To determine which render is being performed, they can call GUI::GetGUI()->RenderingDragDropWnds().

Reimplemented from GG::Wnd.

virtual void GG::FileDlg::KeyPress ( Key  key,
Flags< ModKey >  mod_keys 
) [virtual]

respond to down-keystrokes (focus window only).

A window may receive KeyPress() messages passed up to it from its children. For instance, Control-derived classes pass KeyPress() messages to their Parent() windows by default.

Note:
Though mouse clicks consist of a press and a release, all Control classes by default respond immediately to KeyPress(), not KeyRelease(); in fact, by default no Wnd class does anything at all on a KeyRelease event.

Reimplemented from GG::Wnd.

void GG::FileDlg::SelectDirectories ( bool  directories  ) 

Set this to true if this FileDlg should select directories instead of files.

Note that this will only have an effect in file-open mode.

void GG::FileDlg::AppendMissingSaveExtension ( bool  append  ) 

Set this to true if this FileDlg should append the missing extension to a file when in save mode.

Note that action is only taken if there is a single file filter containing exactly one wildcard in its first position (i.e. it is of the form "*foo"). If precondition is satisfied, any filename the user selects that does not end in "foo" will have "foo" appended to it.

void GG::FileDlg::SetFileFilters ( const std::vector< std::pair< std::string, std::string > > &  filters  ) 

sets the allowed file types.

Each pair in the types parameter contains a description of the file type in its .first member, and wildcarded file types in its .second member. For example, an entry might be ("Text Files (*.txt)", "*.txt"). Only the '*' character is supported as a wildcard. More than one wildcard expression can be specified in a filter; if so, they must be separated by a comma and exactly one space (", "). Each filter is considered OR-ed together with the others, so passing "*.tga, *.png" specifies listing any file that is either a Targa or a PNG file. Note that an empty filter is considered to match all files, so ("All Files", "") is perfectly correct.

void GG::FileDlg::SetFilesString ( const std::string &  str  ) 

sets the text label next to the files edit box to str Default: "File(s):"

void GG::FileDlg::SetFileTypesString ( const std::string &  str  ) 

sets the text label next to the file types dropdown list to str Default: "Type(s):"

void GG::FileDlg::SetSaveString ( const std::string &  str  ) 

sets the text of the ok button in its "save" state to str Default: "Save"

void GG::FileDlg::SetOpenString ( const std::string &  str  ) 

sets the text of the ok button in its "open" state to str Default: "Open"

void GG::FileDlg::SetCancelString ( const std::string &  str  ) 

sets the text of the cancel button to str Default: "Cancel"

void GG::FileDlg::SetMalformedFilenameString ( const std::string &  str  ) 

sets the error message when a malformed filename is encountered to str Default: "Invalid file name."

void GG::FileDlg::SetOverwritePromptString ( const std::string &  str  ) 

sets the prompt message when a malformed file-overwrite is requested to str Default: "%1% exists.\nOk to overwrite it?"

void GG::FileDlg::SetInvalidFilenameString ( const std::string &  str  ) 

sets the error message when an invalid filename is encountered to str Default: "\"1%\"\nis an invalid file name."

void GG::FileDlg::SetFilenameIsADirectoryString ( const std::string &  str  ) 

sets the error message when a directory instead of a filename is specified to str Default: "\"1%\"\nis a directory."

void GG::FileDlg::SetFileDoesNotExistString ( const std::string &  str  ) 

sets the error message when a nonexistent filename is encountered to str Default: "File \"1%\"\ndoes not exist."

void GG::FileDlg::SetDeviceIsNotReadyString ( const std::string &  str  ) 

sets the error message when an unmounted drive is encountered to str Default: "The device is not ready."

void GG::FileDlg::SetThreeButtonDlgOKString ( const std::string &  str  ) 

sets the text of the 3-button dialog's ok button to str Default: "Ok"

void GG::FileDlg::SetThreeButtonDlgCancelString ( const std::string &  str  ) 

sets the text of the 3-button dialog's cancel button to str Default: "Cancel"

static const boost::filesystem::path& GG::FileDlg::WorkingDirectory (  )  [static]

returns the current directory (the one that will be used by default on the next invocation of FileDlg::Run())

GG::FileDlg::GG_ABSTRACT_EXCEPTION ( Exception   ) 

The base class for FileDlg exceptions.

Reimplemented from GG::Wnd.

GG::FileDlg::GG_CONCRETE_EXCEPTION ( BadInitialDirectory  ,
GG::FileDlg  ,
Exception   
)

Thrown when the initial directory for the dialog is bad.


The documentation for this class was generated from the following file:
Generated on Wed Mar 26 14:35:42 2008 for GG by  doxygen 1.5.2