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
FileChooser 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
FileChooser 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