Files

303 lines
11 KiB
Plaintext
Raw Permalink Normal View History

2022-11-21 19:13:43 +08:00
---
sidebar_position: 5
---
2022-11-22 15:34:04 +08:00
# Boîte de dialogue
2022-11-21 19:13:43 +08:00
2022-12-03 22:32:08 +11:00
Cette partie du runtime fournit un accès aux boîtes de dialogue natives, telles que les sélecteurs de fichiers et les boîtes de messages.
2022-11-21 19:13:43 +08:00
2022-11-28 17:13:22 +08:00
:::info JavaScript
2022-11-21 19:13:43 +08:00
2022-12-03 22:32:08 +11:00
La boîte de dialogue n'est actuellement pas prise en charge dans l'exécuteur JS.
2022-11-21 19:13:43 +08:00
:::
### OpenDirectoryDialog
2022-12-03 22:32:08 +11:00
Ouvre une boîte de dialogue qui invite l'utilisateur à sélectionner un répertoire. Peut être personnalisé en utilisant [OpenDialogOptions](#opendialogoptions).
2022-11-21 19:13:43 +08:00
Go: `OpenDirectoryDialog(ctx context.Context, dialogOptions OpenDialogOptions) (string, error)`
2022-12-03 22:32:08 +11:00
Renvoie : le répertoire sélectionné (vide si l'utilisateur a annulé) ou une erreur
2022-11-21 19:13:43 +08:00
### OpenFileDialog
2022-12-03 22:32:08 +11:00
Ouvre une boîte de dialogue qui invite l'utilisateur à sélectionner un fichier. Peut être personnalisé en utilisant [OpenDialogOptions](#opendialogoptions).
2022-11-21 19:13:43 +08:00
Go: `OpenFileDialog(ctx context.Context, dialogOptions OpenDialogOptions) (string, error)`
2022-12-03 22:32:08 +11:00
Renvoie : le fichier sélectionné (vide si l'utilisateur a annulé) ou une erreur
2022-11-21 19:13:43 +08:00
2022-11-22 15:34:04 +08:00
### OpenFileDialog
2022-11-21 19:13:43 +08:00
2022-12-03 22:32:08 +11:00
Ouvre une boîte de dialogue qui invite l'utilisateur à sélectionner plusieurs fichiers. Peut être personnalisé en utilisant [OpenDialogOptions](#opendialogoptions).
2022-11-21 19:13:43 +08:00
Go: `OpenMultipleFilesDialog(ctx context.Context, dialogOptions OpenDialogOptions) ([]string, error)`
2022-12-03 22:32:08 +11:00
Renvoie : les fichiers sélectionnés (nil si l'utilisateur a annulé) ou une erreur
2022-11-21 19:13:43 +08:00
### SaveFileDialog
2022-12-03 22:32:08 +11:00
Ouvre une boîte de dialogue qui invite l'utilisateur à saisir un nom pour le fichier à enregistrer. Peut être personnalisé en utilisant [SaveDialogOptions](#savedialogoptions).
2022-11-21 19:13:43 +08:00
Go: `SaveFileDialog(ctx context.Context, dialogOptions SaveDialogOptions) (string, error)`
2022-12-03 22:32:08 +11:00
Renvoie : le fichier sélectionné (vide si l'utilisateur a annulé) ou une erreur
2022-11-21 19:13:43 +08:00
### MessageDialog
2022-12-03 22:32:08 +11:00
Affiche un message en utilisant une boîte de dialogue. Peut être personnalisé en utilisant [MessageDialogOptions](#messagedialogoptions).
2022-11-21 19:13:43 +08:00
Go: `MessageDialog(ctx context.Context, dialogOptions MessageDialogOptions) (string, error)`
2022-12-03 22:32:08 +11:00
Renvoie : Le texte du bouton sélectionné ou une erreur
2022-11-21 19:13:43 +08:00
## Options
### OpenDialogOptions
```go
type OpenDialogOptions struct {
DefaultDirectory string
DefaultFilename string
Title string
Filters []FileFilter
ShowHiddenFiles bool
CanCreateDirectories bool
ResolvesAliases bool
TreatPackagesAsDirectories bool
}
```
2022-12-03 22:32:08 +11:00
| Champ | Description | Win | Mac | Lin |
| -------------------------- | -------------------------------------------------------------- | --- | --- | --- |
| DefaultDirectory | Le répertoire que la boîte de dialogue affichera à l'ouverture | ✅ | ✅ | ✅ |
| DefaultFilename | Le nom du fichier par défaut | ✅ | ✅ | ✅ |
| Title | Titre pour la boite de dialogue | ✅ | ✅ | ✅ |
| [Filters](#filefilter) | Une liste de filtres de fichiers | ✅ | ✅ | ✅ |
| ShowHiddenFiles | Afficher les fichiers cachés par le système | | ✅ | ✅ |
| CanCreateDirectories | Autoriser l'utilisateur de créer des dossiers | | ✅ | |
| ResolvesAliases | Si vrai, retourne le fichier et non l'alias | | ✅ | |
| TreatPackagesAsDirectories | Autoriser la navigation dans les dossiers | | ✅ | |
2022-11-21 19:13:43 +08:00
### SaveDialogOptions
```go
type SaveDialogOptions struct {
DefaultDirectory string
DefaultFilename string
Title string
Filters []FileFilter
ShowHiddenFiles bool
CanCreateDirectories bool
TreatPackagesAsDirectories bool
}
```
2022-12-03 22:32:08 +11:00
| Champ | Description | Win | Mac | Lin |
| -------------------------- | -------------------------------------------------------------- | --- | --- | --- |
| DefaultDirectory | Le répertoire que la boîte de dialogue affichera à l'ouverture | ✅ | ✅ | ✅ |
| DefaultFilename | Le nom du fichier par défaut | ✅ | ✅ | ✅ |
| Title | Titre pour la boite de dialogue | ✅ | ✅ | ✅ |
| [Filters](#filefilter) | Une liste de filtres de fichiers | ✅ | ✅ | ✅ |
| ShowHiddenFiles | Afficher les fichiers cachés par le système | | ✅ | ✅ |
| CanCreateDirectories | Autoriser l'utilisateur de créer des dossiers | | ✅ | |
| TreatPackagesAsDirectories | Autoriser la navigation dans les dossiers | | ✅ | |
2022-11-21 19:13:43 +08:00
### MessageDialogOptions
```go
type MessageDialogOptions struct {
Type DialogType
Title string
Message string
Buttons []string
DefaultButton string
CancelButton string
}
```
2022-12-03 22:32:08 +11:00
| Champ | Description | Win | Mac | Lin |
| ------------- | ---------------------------------------------------------------------------------------------- | -------------- | --- | --- |
| Type | Le type de boîte de dialogue de message: question, info... | ✅ | ✅ | ✅ |
| Title | Titre pour la boite de dialogue | ✅ | ✅ | ✅ |
| Message | Le message à afficher à l'utilisateur | ✅ | ✅ | ✅ |
| Buttons | La liste des noms des boutons | | ✅ | |
| DefaultButton | Le bouton avec ce texte doit être traité comme le bouton par défaut. Lié à la touche `entrée`. | ✅[*](#windows) | ✅ | |
| CancelButton | Le bouton avec ce texte doit être traité permettant d'annuler. Lié à la touche `echap` | | ✅ | |
2022-11-21 19:13:43 +08:00
#### Windows
2023-03-11 17:57:56 +11:00
Windows a des boites de dialogue standard dans lesquels les boutons ne sont pas personnalisables. La valeur retournée sera une des valeurs suivantes : "Ok", "Cancel", "Abort", "Retry", "Ignore", "Yes", "No", "Try Again" ou "Continue".
2022-11-21 19:13:43 +08:00
2023-03-11 17:57:56 +11:00
Pour les boites de dialogues pour les questions, le bouton par défaut est "Oui" et le bouton d'annulation est "Non". Cela peut être modifié en définissant la valeur `DefaultButton` à `"No"`.
2022-11-21 19:13:43 +08:00
2023-03-11 17:57:56 +11:00
Exemple:
2022-11-21 19:13:43 +08:00
```go
result, err := runtime.MessageDialog(a.ctx, runtime.MessageDialogOptions{
Type: runtime.QuestionDialog,
Title: "Question",
Message: "Do you want to continue?",
DefaultButton: "No",
})
```
#### Linux
2023-03-11 17:57:56 +11:00
Linux a des boites de dialogue standard dans lesquels les boutons ne sont pas personnalisables. La valeur retournée sera de :"Ok", "Cancel", "Yes", "No"
2022-11-21 19:13:43 +08:00
#### Mac
2023-03-11 17:57:56 +11:00
Une boîte de dialogue sur Mac peut avoir jusqu'à 4 boutons. Si aucun `DefaultButton` ou `CancelButton` n'est donné, le premier bouton est considéré comme par défaut et est lié à la touche `entrée`.
2022-11-21 19:13:43 +08:00
2023-03-11 17:57:56 +11:00
Pour le code suivant :
2022-11-21 19:13:43 +08:00
```go
selection, err := runtime.MessageDialog(b.ctx, runtime.MessageDialogOptions{
2023-03-11 17:57:56 +11:00
Title: "C'est ton tour",
Message: "Choisi un nombre",
Buttons: []string{"un", "deux", "trois", "quatre"},
2022-11-21 19:13:43 +08:00
})
```
2023-03-11 17:57:56 +11:00
le premier bouton est affiché comme étant celui par défaut :
2022-11-21 19:13:43 +08:00
```mdx-code-block
<div class="text--center">
<img
src={require("@site/static/img/runtime/dialog_no_defaults.png").default}
width="30%"
class="screenshot"
/>
</div>
<br />
```
2023-03-11 17:57:56 +11:00
Et si nous spécifions que le `DefaultButton` est "deux":
2022-11-21 19:13:43 +08:00
```go
selection, err := runtime.MessageDialog(b.ctx, runtime.MessageDialogOptions{
Title: "It's your turn!",
Message: "Select a number",
Buttons: []string{"one", "two", "three", "four"},
DefaultButton: "two",
})
```
2023-03-11 17:57:56 +11:00
le deuxième bouton est affiché comme étant la réponse par défaut. Lorsque la touche `entrée` est appuyée, la valeur "deux" est retournée.
2022-11-21 19:13:43 +08:00
```mdx-code-block
<div class="text--center">
<img
src={require("@site/static/img/runtime/dialog_default_button.png").default}
width="30%"
class="screenshot"
/>
</div>
<br />
```
2023-03-11 17:57:56 +11:00
Si nous spécifions maintenant `CancelButton` à "trois":
2022-11-21 19:13:43 +08:00
```go
selection, err := runtime.MessageDialog(b.ctx, runtime.MessageDialogOptions{
Title: "It's your turn!",
Message: "Select a number",
Buttons: []string{"one", "two", "three", "four"},
DefaultButton: "two",
CancelButton: "three",
})
```
2023-03-11 17:57:56 +11:00
le bouton avec "trois" est affiché en bas de la boîte de dialogue. Si la touche `echap` est appuyée, la valeur "trois" est retournée:
2022-11-21 19:13:43 +08:00
```mdx-code-block
<div class="text--center">
<img
src={require("@site/static/img/runtime/dialog_default_cancel.png").default}
width="30%"
class="screenshot"
/>
</div>
<br />
<br />
<br />
```
#### DialogType
```go
const (
InfoDialog DialogType = "info"
WarningDialog DialogType = "warning"
ErrorDialog DialogType = "error"
QuestionDialog DialogType = "question"
)
```
### FileFilter
```go
type FileFilter struct {
DisplayName string // Filter information EG: "Image Files (*.jpg, *.png)"
Pattern string // semi-colon separated list of extensions, EG: "*.jpg;*.png"
}
```
#### Windows
2023-03-11 17:57:56 +11:00
Windows vous permet d'utiliser plusieurs filtres de fichiers dans les boîtes de dialogue. Chaque FileFilter s'affichera comme une entrée séparée dans la boîte de dialogue :
2022-11-21 19:13:43 +08:00
```mdx-code-block
<div class="text--center">
<img
src={require("@site/static/img/runtime/dialog_win_filters.png").default}
width="50%"
class="screenshot"
/>
</div>
<br />
<br />
<br />
```
#### Linux
2023-03-11 17:57:56 +11:00
Linux vous permet d'utiliser plusieurs filtres de fichiers dans les boîtes de dialogue. Chaque FileFilter s'affichera comme une entrée séparée dans la boîte de dialogue :
2022-11-21 19:13:43 +08:00
```mdx-code-block
<div class="text--center">
<img
src={require("@site/static/img/runtime/dialog_lin_filters.png").default}
width="50%"
class="screenshot"
/>
</div>
<br />
<br />
<br />
```
#### Mac
2023-03-11 17:57:56 +11:00
Les dialogues Mac n'ont qu'un ensemble unique de motifs pour filtrer les fichiers. Si plusieurs filtres de fichiers sont fournis, Wails utilisera tous les modèles définis.
2022-11-21 19:13:43 +08:00
2022-11-22 15:34:04 +08:00
Exemple:
2022-11-21 19:13:43 +08:00
```go
selection, err := runtime.OpenFileDialog(b.ctx, runtime.OpenDialogOptions{
Title: "Select File",
Filters: []runtime.FileFilter{
{
DisplayName: "Images (*.png;*.jpg)",
Pattern: "*.png;*.jpg",
}, {
DisplayName: "Videos (*.mov;*.mp4)",
Pattern: "*.mov;*.mp4",
},
},
})
```
2023-03-11 17:57:56 +11:00
Cela se traduira par l'ouverture de la boîte de dialogue "Ouvrir un fichier" en utilisant `*.png,*.jpg,*.mov,*.mp4` comme filtres.