pub struct WindowEnumerator { /* private fields */ }Expand description
The main window enumeration and inspection interface.
This struct provides methods to discover, filter, and sort Windows windows with various criteria. It serves as the primary entry point for the library.
Implementations§
Source§impl WindowEnumerator
impl WindowEnumerator
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates a new window enumerator.
The enumerator starts with no windows loaded. Call enumerate_all_windows
to populate it with the current system windows.
§Examples
use window_enumerator::WindowEnumerator;
let enumerator = WindowEnumerator::new();Sourcepub fn enumerate_all_windows(&mut self) -> Result<()>
pub fn enumerate_all_windows(&mut self) -> Result<()>
Enumerates all visible windows on the system.
This method populates the internal window list with all currently visible, non-child windows. Each window is assigned a 1-based index.
§Errors
Returns WindowError::WindowsApiError if the Windows API call fails.
§Examples
use window_enumerator::WindowEnumerator;
let mut enumerator = WindowEnumerator::new();
enumerator.enumerate_all_windows().unwrap();Sourcepub fn find_by_title(&self, title_substring: &str) -> Vec<WindowInfo>
pub fn find_by_title(&self, title_substring: &str) -> Vec<WindowInfo>
Finds windows by title containing the specified string (case-insensitive).
This is a convenience method for simple title-based filtering.
§Arguments
title_substring- The substring to search for in window titles
§Returns
A vector containing windows whose titles contain the specified substring.
§Examples
use window_enumerator::WindowEnumerator;
let mut enumerator = WindowEnumerator::new();
enumerator.enumerate_all_windows().unwrap();
let chrome_windows = enumerator.find_by_title("Chrome");
for window in chrome_windows {
window.print_compact();
}Sourcepub fn filter_windows(&self, criteria: &FilterCriteria) -> Vec<WindowInfo>
pub fn filter_windows(&self, criteria: &FilterCriteria) -> Vec<WindowInfo>
Filters windows based on the specified criteria.
§Arguments
criteria- The filter criteria to apply
§Returns
A vector containing only the windows that match all criteria.
§Examples
use window_enumerator::{WindowEnumerator, FilterCriteria};
let mut enumerator = WindowEnumerator::new();
enumerator.enumerate_all_windows().unwrap();
let criteria = FilterCriteria {
title_contains: Some("Chrome".to_string()),
..Default::default()
};
let chrome_windows = enumerator.filter_windows(&criteria);Sourcepub fn filter_and_sort_windows(
&self,
criteria: &FilterCriteria,
sort_criteria: &SortCriteria,
) -> Vec<WindowInfo>
pub fn filter_and_sort_windows( &self, criteria: &FilterCriteria, sort_criteria: &SortCriteria, ) -> Vec<WindowInfo>
Sourcepub fn filter_windows_with_selection(
&self,
criteria: &FilterCriteria,
selection: &Selection,
) -> Vec<WindowInfo>
pub fn filter_windows_with_selection( &self, criteria: &FilterCriteria, selection: &Selection, ) -> Vec<WindowInfo>
Sourcepub fn filter_sort_windows_with_selection(
&self,
criteria: &FilterCriteria,
sort_criteria: &SortCriteria,
selection: &Selection,
) -> Vec<WindowInfo>
pub fn filter_sort_windows_with_selection( &self, criteria: &FilterCriteria, sort_criteria: &SortCriteria, selection: &Selection, ) -> Vec<WindowInfo>
Filters, sorts, and selects windows based on the specified criteria.
Requires both sorting and selection features.
§Arguments
criteria- The filter criteria to applysort_criteria- The sort criteria to applyselection- The selection criteria to apply
§Returns
A vector containing the filtered, sorted, and selected windows.
Sourcepub fn get_windows(&self) -> &[WindowInfo]
pub fn get_windows(&self) -> &[WindowInfo]
Returns a reference to all enumerated windows.
§Returns
A slice containing all windows that were enumerated.
Sourcepub fn get_window_by_index(&self, index: usize) -> Option<&WindowInfo>
pub fn get_window_by_index(&self, index: usize) -> Option<&WindowInfo>
Sourcepub fn print_windows_with_indices(&self)
pub fn print_windows_with_indices(&self)
Prints all enumerated windows with their indices in a formatted table.
This is useful for debugging and for users to see available windows before making selections.
§Examples
use window_enumerator::WindowEnumerator;
let mut enumerator = WindowEnumerator::new();
enumerator.enumerate_all_windows().unwrap();
enumerator.print_windows_with_indices();