class interface FILE_OPEN_DIALOG

creation
   make (p: OVERLAPPED_WINDOW)
      --  Create dialog.

      require
         valid: p /= Void
      ensure
         keep_reference:  --  of p.

feature(s) from STANDARD_DIALOG
   --  Execution

   has_selection: BOOLEAN
      --  Has last dialog produced a valid file name.


   execute
      --  Display the file open dialog.

      require
         repaint_parent:  --  not parent.device.is_ready
      ensure
         done:  --  has_selection set

feature(s) from FILE_DIALOG
   --  Setup

   set_title (str: STRING)
      --  Set dialog title.
      --  Default: provided by operating system.

      require
         valid: str /= Void

   set_directory (str: STRING)
      --  Set inital directory.
      --  Default: current directory.

      require
         valid: str /= Void

   set_file (str: STRING)
      --  Set inital filename.
      --  Default: none.

      require
         valid: str /= Void

   add_filter (name, pattern: STRING)
      --  Add a file type filter with descriptive name and 
      --  file type pattern. (eg: "Text files", "*.txt;*.doc").
      --  The first added filter is the default one.

      require
         valid: name /= Void and pattern /= Void

   reset_filters
      --  Reset file type filters.


feature(s) from FILE_DIALOG
   --  Result

   last_file_name: STRING
      --  Last selected file name.

      require
         has_select: has_selection
      ensure
         valid: Result /= Void


end of FILE_OPEN_DIALOG