1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
// This file was generated by gir (https://github.com/gtk-rs/gir) // from gir-files (https://github.com/gtk-rs/gir-files) // DO NOT EDIT use glib::object::IsA; use glib::translate::*; use std::fmt; glib::wrapper! { /// An interface whereby an object allows its backing content to be /// streamed to clients. Typical implementors would be images or /// icons, HTML content, or multimedia display/rendering widgets. /// /// Negotiation of content type is allowed. Clients may examine the /// backing data and transform, convert, or parse the content in order /// to present it in an alternate form to end-users. /// /// The AtkStreamableContent interface is particularly useful for /// saving, printing, or post-processing entire documents, or for /// persisting alternate views of a document. If document content /// itself is being serialized, stored, or converted, then use of the /// AtkStreamableContent interface can help address performance /// issues. Unlike most ATK interfaces, this interface is not strongly /// tied to the current user-agent view of the a particular document, /// but may in some cases give access to the underlying model data. /// /// # Implements /// /// [`StreamableContentExt`][trait@crate::prelude::StreamableContentExt] #[doc(alias = "AtkStreamableContent")] pub struct StreamableContent(Interface<ffi::AtkStreamableContent, ffi::AtkStreamableContentIface>); match fn { type_ => || ffi::atk_streamable_content_get_type(), } } pub const NONE_STREAMABLE_CONTENT: Option<&StreamableContent> = None; /// Trait containing all [`struct@StreamableContent`] methods. /// /// # Implementors /// /// [`StreamableContent`][struct@crate::StreamableContent] pub trait StreamableContentExt: 'static { /// Gets the character string of the specified mime type. The first mime /// type is at position 0, the second at position 1, and so on. /// ## `i` /// a gint representing the position of the mime type starting from 0 /// /// # Returns /// /// a gchar* representing the specified mime type; the caller /// should not free the character string. #[doc(alias = "atk_streamable_content_get_mime_type")] #[doc(alias = "get_mime_type")] fn mime_type(&self, i: i32) -> Option<glib::GString>; /// Gets the number of mime types supported by this object. /// /// # Returns /// /// a gint which is the number of mime types supported by the object. #[doc(alias = "atk_streamable_content_get_n_mime_types")] #[doc(alias = "get_n_mime_types")] fn n_mime_types(&self) -> i32; //#[doc(alias = "atk_streamable_content_get_stream")] //#[doc(alias = "get_stream")] //fn stream(&self, mime_type: &str) -> /*Ignored*/Option<glib::IOChannel>; /// Get a string representing a URI in IETF standard format /// (see http://www.ietf.org/rfc/rfc2396.txt) from which the object's content /// may be streamed in the specified mime-type, if one is available. /// If mime_type is NULL, the URI for the default (and possibly only) mime-type is /// returned. /// /// Note that it is possible for get_uri to return NULL but for /// get_stream to work nonetheless, since not all GIOChannels connect to URIs. /// ## `mime_type` /// a gchar* representing the mime type, or NULL to request a URI /// for the default mime type. /// /// # Returns /// /// Returns a string representing a URI, or [`None`] /// if no corresponding URI can be constructed. #[doc(alias = "atk_streamable_content_get_uri")] #[doc(alias = "get_uri")] fn uri(&self, mime_type: &str) -> Option<glib::GString>; } impl<O: IsA<StreamableContent>> StreamableContentExt for O { fn mime_type(&self, i: i32) -> Option<glib::GString> { unsafe { from_glib_none(ffi::atk_streamable_content_get_mime_type( self.as_ref().to_glib_none().0, i, )) } } fn n_mime_types(&self) -> i32 { unsafe { ffi::atk_streamable_content_get_n_mime_types(self.as_ref().to_glib_none().0) } } //fn stream(&self, mime_type: &str) -> /*Ignored*/Option<glib::IOChannel> { // unsafe { TODO: call ffi:atk_streamable_content_get_stream() } //} fn uri(&self, mime_type: &str) -> Option<glib::GString> { unsafe { from_glib_none(ffi::atk_streamable_content_get_uri( self.as_ref().to_glib_none().0, mime_type.to_glib_none().0, )) } } } impl fmt::Display for StreamableContent { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.write_str("StreamableContent") } }