GG: GG::FileDlg Class Reference

GG

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Static Public Member Functions | Static Protected Attributes | List of all members
GG::FileDlg Class Reference

`#include <FileDlg.h>`

Inheritance diagram for GG::FileDlg:

## Static Public Member Functions
static const boost::filesystem::path & | WorkingDirectory ()
Static Public Member Functions inherited from GG::Wnd
static unsigned int | DefaultBrowseTime ()
static void | SetDefaultBrowseTime (unsigned int time)
static const boost::shared_ptr < BrowseInfoWnd > & | DefaultBrowseInfoWnd ()
static void | SetDefaultBrowseInfoWnd (const boost::shared_ptr< BrowseInfoWnd > &browse_info_wnd)

## Static Protected Attributes
static const X | DEFAULT_WIDTH
static const Y | DEFAULT_HEIGHT

## 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)
| FileDlg ()

## 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, boost::uint32_t key_code_point, 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)

## Additional Inherited Members
Public Types inherited from GG::Wnd
enum | ChildClippingMode { DontClip, ClipToClient, ClipToWindow, ClipToClientAndWindowSeparately }
typedef std::map< const Wnd *, bool >::iterator | DropsAcceptableIter
Public Member Functions inherited from GG::Wnd
virtual | ~Wnd ()
bool | Interactive () const
bool | RepeatButtonDown () const
bool | Dragable () const
bool | Resizable () const
bool | OnTop () const
bool | Modal () const
ChildClippingMode | GetChildClippingMode () const
bool | NonClientChild () const
bool | Visible () const
const std::string & | Name () const
const std::string & | DragDropDataType () const
virtual void | DropsAcceptable (DropsAcceptableIter first, DropsAcceptableIter last, const Pt &pt) const
Pt | UpperLeft () const
Pt | LowerRight () const
Pt | RelativeUpperLeft () const
Pt | RelativeLowerRight () const
X | Width () const
Y | Height () const
int | ZOrder () const
Pt | Size () const
Pt | MinSize () const
Pt | MaxSize () const
virtual Pt | MinUsableSize () const
virtual Pt | ClientUpperLeft () const
virtual Pt | ClientLowerRight () const
Pt | ClientSize () const
X | ClientWidth () const
Y | ClientHeight () const
Pt | ScreenToWindow (const Pt &pt) const
Pt | ScreenToClient (const Pt &pt) const
virtual bool | InWindow (const Pt &pt) const
virtual bool | InClient (const Pt &pt) const
const std::list< Wnd * > & | Children () const
Wnd * | Parent () const
Wnd * | RootParent () const
Layout * | GetLayout () const
Layout * | ContainingLayout () const
const std::vector < BrowseInfoMode > & | BrowseModes () const
const std::string & | BrowseInfoText (std::size_t mode) const
const boost::shared_ptr < StyleFactory > & | GetStyleFactory () const
virtual WndRegion | WindowRegion (const Pt &pt) const
void | SetDragDropDataType (const std::string &data_type)
virtual void | StartingChildDragDrop (const Wnd *wnd, const Pt &offset)
virtual void | AcceptDrops (const std::vector< Wnd * > &wnds, const Pt &pt)
virtual void | CancellingChildDragDrop (const std::vector< const Wnd * > &wnds)
virtual void | ChildrenDraggedAway (const std::vector< Wnd * > &wnds, const Wnd *destination)
void | SetName (const std::string &name)
void | Hide (bool children=true)
void | Show (bool children=true)
virtual void | ModalInit ()
void | SetChildClippingMode (ChildClippingMode mode)
void | NonClientChild (bool b)
void | MoveTo (const Pt &pt)
void | OffsetMove (const Pt &pt)
virtual void | SizeMove (const Pt &ul, const Pt &lr)
void | Resize (const Pt &sz)
void | SetMinSize (const Pt &sz)
void | SetMaxSize (const Pt &sz)
void | AttachChild (Wnd *wnd)
void | MoveChildUp (Wnd *wnd)
void | MoveChildDown (Wnd *wnd)
void | DetachChild (Wnd *wnd)
void | DetachChildren ()
void | DeleteChild (Wnd *wnd)
void | DeleteChildren ()
void | InstallEventFilter (Wnd *wnd)
void | RemoveEventFilter (Wnd *wnd)
void | HorizontalLayout ()
void | VerticalLayout ()
void | GridLayout ()
void | SetLayout (Layout *layout)
void | RemoveLayout ()
Layout * | DetachLayout ()
void | SetLayoutBorderMargin (unsigned int margin)
void | SetLayoutCellMargin (unsigned int margin)
virtual bool | Run ()
void | EndRun ()
void | SetBrowseModeTime (unsigned int time, std::size_t mode=0)
void | SetBrowseInfoWnd (const boost::shared_ptr< BrowseInfoWnd > &wnd, std::size_t mode=0)
void | ClearBrowseInfoWnd (std::size_t mode=0)
void | SetBrowseText (const std::string &text, std::size_t mode=0)
void | SetBrowseModes (const std::vector< BrowseInfoMode > &modes)
void | SetStyleFactory (const boost::shared_ptr< StyleFactory > &factory)
| GG_ABSTRACT_EXCEPTION (Exception)
| GG_CONCRETE_EXCEPTION (BadLayout, GG::Wnd, Exception)
Protected Types inherited from GG::Wnd
enum | DragDropRenderingState { NOT_DRAGGED, IN_PLACE_COPY, DRAGGED_OVER_UNACCEPTING_DROP_TARGET, DRAGGED_OVER_ACCEPTING_DROP_TARGET }
Protected Member Functions inherited from GG::Wnd
| Wnd ()
| Wnd (X x, Y y, X w, Y h, Flags< WndFlag > flags=INTERACTIVE|DRAGABLE)
DragDropRenderingState | GetDragDropRenderingState () const
virtual void | LButtonDown (const Pt &pt, Flags< ModKey > mod_keys)
virtual void | LDrag (const Pt &pt, const Pt &move, Flags< ModKey > mod_keys)
virtual void | LButtonUp (const Pt &pt, Flags< ModKey > mod_keys)
virtual void | LClick (const Pt &pt, Flags< ModKey > mod_keys)
virtual void | LDoubleClick (const Pt &pt, Flags< ModKey > mod_keys)
virtual void | MButtonDown (const Pt &pt, Flags< ModKey > mod_keys)
virtual void | MDrag (const Pt &pt, const Pt &move, Flags< ModKey > mod_keys)
virtual void | MButtonUp (const Pt &pt, Flags< ModKey > mod_keys)
virtual void | MClick (const Pt &pt, Flags< ModKey > mod_keys)
virtual void | MDoubleClick (const Pt &pt, Flags< ModKey > mod_keys)
virtual void | RButtonDown (const Pt &pt, Flags< ModKey > mod_keys)
virtual void | RDrag (const Pt &pt, const Pt &move, Flags< ModKey > mod_keys)
virtual void | RButtonUp (const Pt &pt, Flags< ModKey > mod_keys)
virtual void | RClick (const Pt &pt, Flags< ModKey > mod_keys)
virtual void | RDoubleClick (const Pt &pt, Flags< ModKey > mod_keys)
virtual void | MouseEnter (const Pt &pt, Flags< ModKey > mod_keys)
virtual void | MouseHere (const Pt &pt, Flags< ModKey > mod_keys)
virtual void | MouseLeave ()
virtual void | MouseWheel (const Pt &pt, int move, Flags< ModKey > mod_keys)
virtual void | DragDropEnter (const Pt &pt, const std::map< Wnd *, Pt > &drag_drop_wnds, Flags< ModKey > mod_keys)
virtual void | DragDropHere (const Pt &pt, const std::map< Wnd *, Pt > &drag_drop_wnds, Flags< ModKey > mod_keys)
virtual void | DragDropLeave ()
virtual void | KeyRelease (Key key, boost::uint32_t key_code_point, Flags< ModKey > mod_keys)
virtual void | GainingFocus ()
virtual void | LosingFocus ()
virtual void | TimerFiring (unsigned int ticks, Timer *timer)
virtual bool | EventFilter (Wnd *w, const WndEvent &event)
void | HandleEvent (const WndEvent &event)
void | ForwardEventToParent ()
void | BeginClipping ()
void | EndClipping ()
void | BeginNonclientClipping ()
void | EndNonclientClipping ()
Protected Attributes inherited from GG::Wnd
bool | m_done

## 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 55 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.

## Member Function Documentation

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.

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,
|  | boost::uint32_t | key_code_point,
|  | 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.
  key_code_point will be zero if Unicode support is unavailable.

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.

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.

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:

- FileDlg.h