Skip to main content

winprint_ext/ticket/
page_orientation.rs

1use super::{
2    define_feature_option_pack,
3    document::{ParameterInit, PrintFeatureOption, NS_PSK},
4    PredefinedPageOrientation,
5};
6use xml::name::OwnedName;
7
8define_feature_option_pack!(
9    OwnedName::qualified("PageOrientation", NS_PSK, Some("psk")),
10    PageOrientation,
11    PredefinedPageOrientation
12);
13
14#[cfg(test)]
15mod tests {
16    use crate::{
17        test_utils::null_device,
18        ticket::{
19            FeatureOptionPack, FeatureOptionPackWithPredefined, PredefinedPageOrientation,
20            PrintCapabilities, PrintTicketBuilder,
21        },
22    };
23    #[test]
24    fn use_landscape() {
25        let device = null_device::thread_local();
26        let capabilities = PrintCapabilities::fetch(&device).unwrap();
27        let option = capabilities
28            .page_orientations()
29            .find(|x| x.as_predefined_name() == Some(PredefinedPageOrientation::Landscape))
30            .unwrap();
31        println!("Using {:?}", option.display_name());
32        let mut builder = PrintTicketBuilder::new(&device).unwrap();
33        builder.merge(option).unwrap();
34    }
35}