pub struct FileDialogUiState {Show 48 fields
pub visible: bool,
pub header_style: HeaderStyle,
pub layout: LayoutStyle,
pub validation_buttons: ValidationButtonsConfig,
pub toolbar: ToolbarConfig,
pub places_pane_shown: bool,
pub places_pane_width: f32,
pub file_list_view: FileListViewMode,
pub file_list_columns: FileListColumnsConfig,
pub path_bar_style: PathBarStyle,
pub path_input_mode: bool,
pub breadcrumbs_quick_select: bool,
pub breadcrumbs_max_segments: usize,
pub empty_hint_enabled: bool,
pub empty_hint_color: [f32; 4],
pub empty_hint_static_message: Option<String>,
pub path_edit: bool,
pub path_edit_buffer: String,
pub focus_path_edit_next: bool,
pub focus_search_next: bool,
pub ui_error: Option<String>,
pub new_folder_enabled: bool,
pub new_folder_inline_active: bool,
pub new_folder_open_next: bool,
pub new_folder_name: String,
pub new_folder_focus_next: bool,
pub new_folder_error: Option<String>,
pub rename_open_next: bool,
pub rename_focus_next: bool,
pub rename_target_id: Option<EntryId>,
pub rename_to: String,
pub rename_error: Option<String>,
pub delete_open_next: bool,
pub delete_target_ids: Vec<EntryId>,
pub delete_recursive: bool,
pub delete_error: Option<String>,
pub clipboard: Option<FileClipboard>,
pub file_style_fonts: HashMap<String, FontId>,
pub file_styles: FileStyleRegistry,
pub thumbnails_enabled: bool,
pub thumbnail_size: [f32; 2],
pub thumbnails: ThumbnailCache,
pub type_select_enabled: bool,
pub type_select_timeout_ms: u64,
pub custom_pane_enabled: bool,
pub custom_pane_dock: CustomPaneDock,
pub custom_pane_height: f32,
pub custom_pane_width: f32,
/* private fields */
}Expand description
UI-only state for hosting a FileDialogCore in Dear ImGui.
This struct contains transient UI state (visibility, focus requests, text buffers) and does not affect the core selection/navigation semantics.
Fields§
§visible: boolWhether to draw the dialog (show/hide). Prefer FileDialogState::open/FileDialogState::close.
header_style: HeaderStyleHeader layout style.
layout: LayoutStyleLayout style for the dialog UI.
Validation button row configuration (Ok/Cancel).
toolbar: ToolbarConfigTop toolbar (“chrome”) configuration.
places_pane_shown: boolWhether to show the left “Places” pane in LayoutStyle::Standard.
places_pane_width: f32Width of the left “Places” pane in pixels (Standard layout only).
file_list_view: FileListViewModeFile list view mode (list vs grid).
file_list_columns: FileListColumnsConfigList-view column visibility configuration.
path_bar_style: PathBarStylePath bar style (editable text input vs breadcrumb-style composer).
path_input_mode: boolWhen true (and path_bar_style is PathBarStyle::Breadcrumbs), show the editable path
text input instead of the breadcrumb composer.
This mimics IGFD’s path composer “Edit” toggle behavior.
Enable quick parallel directory selection popups when clicking breadcrumb separators.
This mimics IGFD’s “quick path selection” feature in the path composer.
Max breadcrumb segments to display (compress with ellipsis when exceeded).
empty_hint_enabled: boolShow a hint row when no entries match filters/search.
empty_hint_color: [f32; 4]RGBA color of the empty hint text.
empty_hint_static_message: Option<String>Custom static hint message when entries list is empty; if None, a default message is built.
path_edit: boolWhether the path input is currently being edited (best-effort; updated by UI).
This is UI-only state and should not be treated as a stable API contract.
path_edit_buffer: StringPath input buffer (editable “address bar”).
focus_path_edit_next: boolFocus path edit on next frame.
focus_search_next: boolFocus search on next frame (Ctrl+F).
ui_error: Option<String>Error string to display in UI (non-fatal).
new_folder_enabled: boolWhether to show and allow the “New Folder” action.
new_folder_inline_active: boolWhether the “New Folder” inline editor is active (toolbar-local, IGFD-like).
new_folder_open_next: boolOpen the “New Folder” modal on next frame.
new_folder_name: StringNew folder name buffer (used by the “New Folder” modal).
new_folder_focus_next: boolFocus the new folder input on next frame.
new_folder_error: Option<String>Error string shown inside the “New Folder” modal.
rename_open_next: boolOpen the “Rename” modal on next frame.
rename_focus_next: boolFocus the rename input on next frame.
rename_target_id: Option<EntryId>Rename target entry id.
rename_to: StringRename “to” buffer.
rename_error: Option<String>Error string shown inside the rename modal.
delete_open_next: boolOpen the “Delete” confirmation modal on next frame.
delete_target_ids: Vec<EntryId>Pending delete target ids.
delete_recursive: boolWhether directory deletion should be recursive (remove_dir_all) instead of requiring empty directories.
delete_error: Option<String>Error string shown inside the delete modal.
clipboard: Option<FileClipboard>Clipboard state for copy/cut/paste operations.
file_style_fonts: HashMap<String, FontId>Optional font mapping used by file style font_token.
file_styles: FileStyleRegistryStyle registry used to decorate the file list (icons/colors/tooltips).
thumbnails_enabled: boolEnable thumbnails in the file list (adds a Preview column).
thumbnail_size: [f32; 2]Thumbnail preview size in pixels.
thumbnails: ThumbnailCacheThumbnail cache (requests + LRU).
type_select_enabled: boolEnable “type-to-select” behavior in the file list (IGFD-style).
type_select_timeout_ms: u64Timeout (milliseconds) after which the type-to-select buffer resets.
custom_pane_enabled: boolWhether to render a custom pane region (when a pane is provided by the caller).
custom_pane_dock: CustomPaneDockDock position for the custom pane.
custom_pane_height: f32Height of the custom pane region (in pixels).
custom_pane_width: f32Width of the custom pane region when right-docked (in pixels).
Implementations§
Source§impl FileDialogUiState
impl FileDialogUiState
Sourcepub fn apply_igfd_classic_preset(&mut self)
pub fn apply_igfd_classic_preset(&mut self)
Applies an “IGFD classic” UI preset (opt-in).
This tunes UI defaults to feel closer to ImGuiFileDialog (IGFD) while staying Rust-first:
- standard layout with places pane,
- IGFD-like single-row header layout,
- list view as the default,
- right-docked custom pane (when provided) with a splitter-resizable width,
- dialog-style button row aligned to the right.