Skip to content
Snippets Groups Projects
FXFileSelector.rb 5.28 KiB
Newer Older
  • Learn to ignore specific revisions
  • module Fox
      #
      # File selection widget
      #
      # === File selection modes
      #
      # +SELECTFILE_ANY+::		A single file, existing or not (to save to)
      # +SELECTFILE_EXISTING+::	An existing file (to load)
      # +SELECTFILE_MULTIPLE+::	Multiple existing files
      # +SELECTFILE_MULTIPLE_ALL+::	Multiple existing files or directories, but not '.' and '..'
      # +SELECTFILE_DIRECTORY+::	Existing directory, including '.' or '..'
      #
      # === 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.
      #
      # === Message identifiers
      #
      # +ID_FILEFILTER+::		x
      # +ID_ACCEPT+::		x
      # +ID_FILELIST+::		x
      # +ID_DIRECTORY_UP+::		x
      # +ID_DIRTREE+::		x
      # +ID_NORMAL_SIZE+::		x
      # +ID_MEDIUM_SIZE+::		x
      # +ID_GIANT_SIZE+::		x
      # +ID_HOME+::			x
      # +ID_WORK+::			x
      # +ID_BOOKMARK+::		x
      # +ID_BOOKMENU+::		x
      # +ID_VISIT+::		x
      # +ID_NEW+::			x
      # +ID_DELETE+::		x
      # +ID_MOVE+::			x
      # +ID_COPY+::			x
      # +ID_LINK+::			x
      #
      class FXFileSelector < FXPacker
      
        # The "Accept" button [FXButton]
        attr_reader :acceptButton
        
        # The "Cancel" button [FXButton]
        attr_reader :cancelButton
    
        # File name [String]
        attr_accessor :filename
        
        # File pattern [String]
        attr_accessor :pattern
        
        # Directory [String]
        attr_accessor :directory
        
        # Current pattern number [Integer]
        attr_accessor :currentPattern
    
        # Inter-item spacing (in pixels) [Integer]
        attr_accessor :itemSpace
      
        # Change file list style [Integer]
        attr_accessor :fileBoxStyle
      
        # Change file selection mode [Integer]
        attr_accessor :selectMode
        
        # Wildcard matching mode [Integer]
        attr_accessor :matchMode
      
        # Image size for preview images [Integer]
        attr_accessor :imageSize
    
        #
        # Return an initialized FXFileSelector instance.
        #
        def initialize(p, target=nil, selector=0, opts=0, x=0, y=0, width=0, height=0) # :yields: theFileSelector
        end
      
        #
        # Returns an array of the selected file names.
        #
        def filenames; end
      
        #
        # Change the list of file patterns shown in the file selector.
        # 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
    
        # Show read-only button.
        def readOnlyShown=(shown); end
        
        # Return +true+ if the read-only button is shown.
        def readOnlyShown?; end
        
        # Set state of read-only button.
        def readOnly=(state); end
      
        # Return +true+ if in read-only mode.
        def readOnly?; end
    
        # Return +true+ if showing hidden files and directories
        def hiddenFilesShown?; end
        
        #
        # If _state_ is +true+, the file selector will show hidden files and
        # directories; otherwise, it won't.
        #
        def hiddenFilesShown=(state); end
    
        #
        # If _shown_ is +true+, the file selector will show preview images;
        # otherwise it won't.
        #
        def imagesShown=(shown); end
        
        #
        # Return +true+ if the file selector is showing preview images.
        #
        def imagesShown? ; end
    
        # Return +true+ if navigation allowed.
        def navigationAllowed?; end
    
        # Set navigation to allowed (+true+) or disallowed (+false+)
        def navigationAllowed=(allowed); end
    
        #
        # Given filename pattern of the form "GIF Format (*.gif)",
        # returns the pattern only, i.e. "*.gif" in this case.
        # If the parentheses are not found then returns the entire
        # input pattern.
        #
        def FXFileSelector.patternFromText(pattern) ; end
        
        #
        # Given a pattern of the form "*.gif,*.GIF", return
        # the first extension of the pattern, i.e. "gif" in this
        # example. Returns empty string if it doesn't work out.
        #
        def FXFileSelector.extensionFromPattern(pattern) ; end
      end
    end