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
// 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 atk_sys; use glib::object::IsA; use glib::translate::*; use glib::GString; 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.StreamableContentExt.html) pub struct StreamableContent(Interface<atk_sys::AtkStreamableContent>); match fn { get_type => || atk_sys::atk_streamable_content_get_type(), } } pub const NONE_STREAMABLE_CONTENT: Option<&StreamableContent> = None; /// Trait containing all `StreamableContent` methods. /// /// # Implementors /// /// [`StreamableContent`](struct.StreamableContent.html) 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. fn get_mime_type(&self, i: i32) -> Option<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. fn get_n_mime_types(&self) -> i32; //fn get_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. fn get_uri(&self, mime_type: &str) -> Option<GString>; } impl<O: IsA<StreamableContent>> StreamableContentExt for O { fn get_mime_type(&self, i: i32) -> Option<GString> { unsafe { from_glib_none(atk_sys::atk_streamable_content_get_mime_type( self.as_ref().to_glib_none().0, i, )) } } fn get_n_mime_types(&self) -> i32 { unsafe { atk_sys::atk_streamable_content_get_n_mime_types(self.as_ref().to_glib_none().0) } } //fn get_stream(&self, mime_type: &str) -> /*Ignored*/Option<glib::IOChannel> { // unsafe { TODO: call atk_sys:atk_streamable_content_get_stream() } //} fn get_uri(&self, mime_type: &str) -> Option<GString> { unsafe { from_glib_none(atk_sys::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 { write!(f, "StreamableContent") } }