Codebase list ruby-fxruby / master rdoc-sources / FXFileDialog.rb
master

Tree @master (Download .tar.gz)

FXFileDialog.rb @masterraw · history · blame

module Fox
  #
  # File selection dialog
  #
  # Each pattern in the _patternList_ comprises an optional name, followed by
  # a pattern in parentheses. The patterns are separated by newlines.
  # For example,
  #
  #  fileDialog.patternList = ["*",
  #                            "*.cpp,*.cc",
  #                            "*.hpp,*.hh,*.h"
  #                           ]
  #
  # and
  #
  #  fileDialog.patternList = ["All Files (*)",
  #                            "C++ Sources (*.cpp,*.cc)",
  #                            "C++ Headers (*.hpp,*.hh,*.h)"
  #                           ]
  #
  # will set the same three patterns, but the former shows no pattern names.
  #
  # === Wildcard matching modes
  #
  # +FILEMATCH_FILE_NAME+::  No wildcard can ever match "/" (or "\","/" under Windows).
  # +FILEMATCH_NOESCAPE+::  Backslashes don't quote special chars ("\" is treated as "\").
  # +FILEMATCH_PERIOD+::  Leading "." is matched only explicitly (Useful to match hidden files on Unix).
  # +FILEMATCH_LEADING_DIR+:: Ignore "/..." after a match.
  # +FILEMATCH_CASEFOLD+::  Compare without regard to case.
  #
  # Note that under Windows, +FILEMATCH_NOESCAPE+ must be passed.
  #
  class FXFileDialog < FXDialogBox

    # File name [String]
    attr_accessor :filename

    # List of selected filenames [Array]
    attr_reader :filenames

    # File pattern [String]
    attr_accessor :pattern

    # Current pattern number [Integer]
    attr_accessor :currentPattern

    # Directory [String]
    attr_accessor :directory

    # Inter-item spacing (in pixels) [Integer]
    attr_accessor :itemSpace

    # File list style [Integer]
    attr_accessor :fileBoxStyle

    # File selection mode [Integer]
    attr_accessor :selectMode

    # Wildcard matching mode [Integer]
    attr_accessor :matchMode

    # Image size for preview images [Integer]
    attr_accessor :imageSize

    # Construct a file dialog box
    def initialize(owner, name, opts=0, x=0, y=0, width=500, height=300) # :yields: theFileDialog
    end

    #
    # Change the list of file patterns shown in the file dialog.
    # The _patterns_ argument is an array of strings, and each string
    # represents a different file pattern. A pattern consists of an
    # optional name, followed by a pattern in parentheses. For example,
    # this code:
    #
    #   patterns = [ "*", "*.cpp,*.cc", "*.hpp,*.hh,*.h" ]
    #   aFileSelector.setPatternList(patterns)
    #
    # and this code:
    #
    #   patterns = [ "All Files (*)", "C++ Sources (*.cpp,*.cc)", "C++ Headers (*.hpp,*.hh,*.h)" ]
    #   aFileSelector.setPatternList(patterns)
    #
    # will both set the same three patterns, but the former shows no pattern names.
    #
    # For compatibility with the FOX C++ library API of the same name, {#setPatternList}
    # also accepts a _patterns_ value that is a single string, with each pattern
    # separated by newline characters, e.g.
    #
    #   patterns = "All Files (*)\nC++ Sources (*.cpp,*.cc)\nC++ Headers (*.hpp,*.hh,*.h)"
    #   aFileSelector.setPatternList(patterns)
    #
    def setPatternList(patterns); end

    #
    # Returns the list of patterns (an Array of Strings).
    #
    def getPatternList(); end

    # Get pattern text for given pattern number
    def getPatternText(patno); end

    # Change pattern text for pattern number
    def setPatternText(patno, text); end

    #
    # Return number of patterns
    #
    def numPatterns; end

    #
    # Change whether this file dialog allows pattern entry or not.
    #
    def allowsPatternEntry=(allowed); end

    #
    # Return +true+ if this file dialog allows pattern entry
    #
    def allowsPatternEntry? ; end

    # Set visibility of the read-only button, where _shown_ is either +true+ or +false+
    def showReadOnly=(shown); end

    # Return +true+ if read-only button is shown
    def readOnlyShown?; end

    # Return +true+ if showing hidden files and directories
    def hiddenFilesShown?; end

    #
    # If _state_ is +true+, the file dialog will show hidden files and
    # directories; otherwise, it won't.
    #
    def hiddenFilesShown=(state); end

    #
    # If _shown_ is +true+, the file dialog will show preview images;
    # otherwise it won't.
    #
    def imagesShown=(shown); end

    #
    # Return +true+ if the file dialog is showing preview images.
    #
    def imagesShown? ; end

    # Set initial state of read-only button, where _state_ is either +true+ or +false+
    def readOnly=(state); end

    # Return +true+ if read-only
    def readOnly?; end

    # Return +true+ if navigation allowed.
    def navigationAllowed?; end

    # Set navigation to allowed (+true+) or disallowed (+false+)
    def navigationAllowed=(allowed); end

    #
    # Display a dialog box that allows the user to select a single existing file name
    # for opening.
    # Returns the selected file name (a String).
    #
    # ==== Parameters:
    #
    # +owner+::  the owner window for the dialog box {FXWindow}
    # +caption+:: the caption for the dialog box [String]
    # +path+::  the initial filename [String]
    # +patterns+:: the pattern list [String]
    # +initial+:: the initial pattern to be used (an index into the pattern list) [Integer]
    #
    def FXFileDialog.getOpenFilename(owner, caption, path, patterns="*", initial=0); end

    #
    # Display a dialog box that allows the user to select multiple existing file names
    # for opening.
    # Returns an array of the selected file names (an array of strings).
    #
    # ==== Parameters:
    #
    # +owner+::  the owner window for the dialog box {FXWindow}
    # +caption+:: the caption for the dialog box [String]
    # +path+::  the initial filename [String]
    # +patterns+:: the pattern list [String]
    # +initial+:: the initial pattern to be used (an index into the pattern list) [Integer]
    #
    def FXFileDialog.getOpenFilenames(owner, caption, path, patterns="*", initial=0); end

    #
    # Display a dialog box that allows the user to select an existing file name, or
    # enter a new file name, for saving.
    # Returns the save file name (a String).
    #
    # ==== Parameters:
    #
    # +owner+::  the owner window for the dialog box {FXWindow}
    # +caption+:: the caption for the dialog box [String]
    # +path+::  the initial filename [String]
    # +patterns+:: the pattern list [String]
    # +initial+:: the initial pattern to be used (an index into the pattern list) [Integer]
    #
    def FXFileDialog.getSaveFilename(owner, caption, path, patterns="*", initial=0); end

    #
    # Display a dialog box that allows the user to select a directory.
    # Returns the directory name (a String).
    #
    # ==== Parameters:
    #
    # +owner+::  the owner window for the dialog box {FXWindow}
    # +caption+:: the caption for the dialog box [String]
    # +path+::  the initial directory path [String]
    #
    def FXFileDialog.getOpenDirectory(owner, caption, path); end
  end
end