---
name: "Curses::UI::Dialog::Filebrowser"
section: "3pm"
platform: "linux"
package: "perl-curses-ui"
version: "0.9609-15"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Curses::UI::Dialog::Filebrowser"
---

# Curses::UI::Dialog::Filebrowser(3pm)

Create and manipulate filebrowser dialogs

## NAME

Curses::UI::Dialog::Filebrowser - Create and manipulate filebrowser dialogs

## CLASS HIERARCHY

```
 Curses::UI::Widget
    |
    +----Curses::UI::Container
            |
            +----Curses::UI::Window
                    |
                    +----Curses::UI::Dialog::Filebrowser
```

## SYNOPSIS

```
    use Curses::UI;
    my $cui = new Curses::UI;
    my $win = $cui->add('window_id', 'Window');
    # The hard way.
    # -------------
    my $dialog = $win->add(
        'mydialog', 'Dialog::Filebrowser'
    );
    $dialog->focus;
    my $file = $dialog->get();
    $win->delete('mydialog');
    # The easy way (see Curses::UI documentation).
    # --------------------------------------------
    $file = $cui->filebrowser();
    $file = $cui->loadfilebrowser();
    $file = $cui->savefilebrowser();
```

## DESCRIPTION

Curses::UI::Dialog::Filebrowser is a filebrowser dialog.  This type of dialog can be used to select a file, anywhere on the filesystem.

See exampes/demo-Curses::UI::Dialog::Filebrowser in the  distribution for a short demo.

## OPTIONS

- •

  **-title** \< TEXT \>

  Set the title of the dialog window to TEXT.

- •

  **-path** \< PATH \>

  Set the path to start with to PATH. If this path does not exist, the filebrowser will start in the rootdirectory.

- •

  **-file** \< FILE \>

  Set the filename to start with to FILE.

- •

  **-editfilename** \< BOOLEAN \>

  If BOOLEAN has a true value, the user may edit the filename. This is for example useful for a  filebrowser that is used to select a filename to  save to. By default this option is set to false.

- •

  **-show\_hidden** \< BOOLEAN \>

  If BOOLEAN has a true value, hidden files (the filename starts with a dot) will also be shown. By default this option is set to false.

- •

  **-mask** \< ARRAYREF \>

  If **-mask** is defined, a filemask popupbox will be added to the filebrowser dialog window. This popupbox will filter the list of files that is displayed, using a regular expression (case insensitive). The ARRAYREF contains a list of array  references. Each array reference has two elements: a regexp and  a description. Here's an example **-mask**:

  ```
      my $mask = [
          [ '.',        'All files (*)'       ],
          [ '\.txt$',   'Text files (*.txt)'  ]
          [ 'howto',    'HOWTO documentation' ],
          [ 'core',     'Core files'          ],
      ];
  ```

- •

  **-mask\_selected** \< INDEX \>

  Normally the first mask in the list of masks will be made  active upon creation of the filebrowser. If you want  another mask to be active, use the **-mask\_selected** option. Set this value to the index of the mask you want to be active. For example: if you would want the "howto" mask in the above example to be active, you would use  the value 2 for **-mask\_selected**.

## METHODS

- •

  **new** ( OPTIONS )

- •

  **layout** ( )

- •

  **draw** ( BOOLEAN )

- •

  **focus** ( )

  These are standard methods. See Curses::UI::Container  for an explanation of these.

- •

  **get** ( )

  This method will return the complete path to the file that was selected using the filebrowser. If no file was selected, this method will return an undefined value.

## SPECIAL BINDINGS

- •

  **escape**

  This will invoke the cancel button, so the filebrowser widget returns without selecting any file.

- •

  **~**

  If the directory- or filelistbox of the dialog window has the focus and the tilde (~) button is pressed, the filebrowser will chdir to the homedirectory of the current user.

## SEE ALSO

Curses::UI,  Curses::UI::Container,  Curses::UI::Buttonbox

## AUTHOR

Copyright (c) 2001-2002 Maurice Makaay. All rights reserved.

Maintained by Marcus Thiesen (marcus@cpan.thiesenweb.de)

This package is free software and is provided "as is" without express or implied warranty. It may be used, redistributed and/or modified under the same terms as perl itself.
