Minimal file dialog based on FileChooser GUI component

Author: Steffen Ploetz

The purpose of this snippet is
  • to show the creation and usage of a minimalistic dialog, that utilizes the FileCooser GUI component in order

  • to have an alternative to the OpenFile static method from gb.form.dialog component - which is GTK compatible (in a GTK environment, see gb.gui component), but not comfortable.

The code can be used as a template for minimalistic dialogs that use other Chooser GUI components. Only a modal single file selection is supported and only two event handler of the FileCooser GUI component, Activate and Cancel, are used. Extending the possibilities of the dialog with additional Static Public Function and function arguments is very simple.

The Gambas code file FFileChooser.class looks like:

' Gambas class file

Static Private sLastSelectedPath As String
Static Private bResult As Boolean

Static Public Function OpenSigleFileModal() As Boolean
  Dim hForm As Form

  sLastSelectedPath = ""
  bResult = False
  hForm = New FFileChooser
  hForm.ShowModal()
  Return bResult
End

Static Public Function LastSelectedPath() As String
  Return sLastSelectedPath
End

Public Sub cFileChooser_Activate()
  sLastSelectedPath = cFileChooser.SelectedPath
  bResult = True
  Me.Close
End

Public Sub cFileChooser_Cancel()
  Me.Close
End

The Gambas form file FFileChooser.form looks like:

# Gambas Form File 3.0

{ Form Form
  MoveScaled(0,0,64,53)
  Arrangement = Arrange.Vertical
  Margin = True
  { cFileChooser FileChooser
    MoveScaled(1,1,62,51)
    Expand = True
    ShowButton = True
    ReadOnly = True
  }
}

The Form property Arrangement is set to Vertical and the cFileChooser property Expand is set to True. This enables that the FileChooser control automatically adapts to changes in the size of the Form.

The cFileChooser property ShowButton is set to True. This shows the OK button, Cancel button and the filter drop-down.

The cFileChooser property ReadOnly is set to True. This qualifies the FileChooser control as a FileOpen control.

The call of the dialog looks like:

Public Sub btnFileOpen_Click()
  Dim fileChooser As FFileChooser
  Dim sLastSelectedPath As String

  If FFileChooser.OpenSigleFileModal() = True Then
    sLastSelectedPath = FFileChooser.LastSelectedPath()
  Else
    sLastSelectedPath = ""
  Endif 
End


Page revisions


Minimal file dialog based on FileChooser GUI component: Steffen Ploetz - March 28th, 2024