libshumate_sys/
lib.rs

1// Generated by gir (https://github.com/gtk-rs/gir @ d7c0763cacbc)
2// from
3// from gir-files (https://github.com/gtk-rs/gir-files.git @ 4d1189172a70)
4// DO NOT EDIT
5
6#![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)]
7#![allow(
8    clippy::approx_constant,
9    clippy::type_complexity,
10    clippy::unreadable_literal,
11    clippy::upper_case_acronyms
12)]
13#![cfg_attr(docsrs, feature(doc_cfg))]
14
15use gdk_pixbuf_sys as gdk_pixbuf;
16use gdk_sys as gdk;
17use gio_sys as gio;
18use glib_sys as glib;
19use gobject_sys as gobject;
20use gtk_sys as gtk;
21
22#[allow(unused_imports)]
23use libc::{
24    c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void,
25    intptr_t, off_t, size_t, ssize_t, time_t, uintptr_t, FILE,
26};
27#[cfg(unix)]
28#[allow(unused_imports)]
29use libc::{dev_t, gid_t, pid_t, socklen_t, uid_t};
30
31#[allow(unused_imports)]
32use glib::{gboolean, gconstpointer, gpointer, GType};
33
34// Enums
35pub type ShumateFileCacheError = c_int;
36pub const SHUMATE_FILE_CACHE_ERROR_FAILED: ShumateFileCacheError = 0;
37
38pub type ShumateGeometryType = c_int;
39pub const SHUMATE_GEOMETRY_TYPE_UNKNOWN: ShumateGeometryType = 0;
40pub const SHUMATE_GEOMETRY_TYPE_POINT: ShumateGeometryType = 1;
41pub const SHUMATE_GEOMETRY_TYPE_MULTIPOINT: ShumateGeometryType = 2;
42pub const SHUMATE_GEOMETRY_TYPE_LINESTRING: ShumateGeometryType = 3;
43pub const SHUMATE_GEOMETRY_TYPE_MULTILINESTRING: ShumateGeometryType = 4;
44pub const SHUMATE_GEOMETRY_TYPE_POLYGON: ShumateGeometryType = 5;
45pub const SHUMATE_GEOMETRY_TYPE_MULTIPOLYGON: ShumateGeometryType = 6;
46
47pub type ShumateMapProjection = c_int;
48pub const SHUMATE_MAP_PROJECTION_MERCATOR: ShumateMapProjection = 0;
49
50pub type ShumateState = c_int;
51pub const SHUMATE_STATE_NONE: ShumateState = 0;
52pub const SHUMATE_STATE_LOADING: ShumateState = 1;
53pub const SHUMATE_STATE_LOADED: ShumateState = 2;
54pub const SHUMATE_STATE_DONE: ShumateState = 3;
55
56pub type ShumateStyleError = c_int;
57pub const SHUMATE_STYLE_ERROR_FAILED: ShumateStyleError = 0;
58pub const SHUMATE_STYLE_ERROR_MALFORMED_STYLE: ShumateStyleError = 1;
59pub const SHUMATE_STYLE_ERROR_UNSUPPORTED_LAYER: ShumateStyleError = 2;
60pub const SHUMATE_STYLE_ERROR_INVALID_EXPRESSION: ShumateStyleError = 3;
61pub const SHUMATE_STYLE_ERROR_SUPPORT_OMITTED: ShumateStyleError = 4;
62pub const SHUMATE_STYLE_ERROR_UNSUPPORTED: ShumateStyleError = 5;
63
64pub type ShumateTileDownloaderError = c_int;
65pub const SHUMATE_TILE_DOWNLOADER_ERROR_FAILED: ShumateTileDownloaderError = 0;
66pub const SHUMATE_TILE_DOWNLOADER_ERROR_BAD_RESPONSE: ShumateTileDownloaderError = 1;
67pub const SHUMATE_TILE_DOWNLOADER_ERROR_COULD_NOT_CONNECT: ShumateTileDownloaderError = 2;
68pub const SHUMATE_TILE_DOWNLOADER_ERROR_MALFORMED_URL: ShumateTileDownloaderError = 3;
69pub const SHUMATE_TILE_DOWNLOADER_ERROR_OFFLINE: ShumateTileDownloaderError = 4;
70
71pub type ShumateUnit = c_int;
72pub const SHUMATE_UNIT_BOTH: ShumateUnit = 0;
73pub const SHUMATE_UNIT_METRIC: ShumateUnit = 1;
74pub const SHUMATE_UNIT_IMPERIAL: ShumateUnit = 2;
75
76// Constants
77pub const SHUMATE_MAJOR_VERSION: c_int = 1;
78pub const SHUMATE_MAP_SOURCE_MFF_RELIEF: &[u8] = b"mff-relief\0";
79pub const SHUMATE_MAP_SOURCE_OSM_CYCLE_MAP: &[u8] = b"osm-cyclemap\0";
80pub const SHUMATE_MAP_SOURCE_OSM_MAPNIK: &[u8] = b"osm-mapnik\0";
81pub const SHUMATE_MAP_SOURCE_OSM_TRANSPORT_MAP: &[u8] = b"osm-transportmap\0";
82pub const SHUMATE_MAP_SOURCE_OWM_CLOUDS: &[u8] = b"owm-clouds\0";
83pub const SHUMATE_MAP_SOURCE_OWM_PRECIPITATION: &[u8] = b"owm-precipitation\0";
84pub const SHUMATE_MAP_SOURCE_OWM_PRESSURE: &[u8] = b"owm-pressure\0";
85pub const SHUMATE_MAP_SOURCE_OWM_TEMPERATURE: &[u8] = b"owm-temperature\0";
86pub const SHUMATE_MAP_SOURCE_OWM_WIND: &[u8] = b"owm-wind\0";
87pub const SHUMATE_MAX_LATITUDE: c_double = 85.0511287798;
88pub const SHUMATE_MAX_LONGITUDE: c_double = 180.0;
89pub const SHUMATE_MIN_LATITUDE: c_double = -85.0511287798;
90pub const SHUMATE_MIN_LONGITUDE: c_double = -180.0;
91
92// Callbacks
93pub type ShumateVectorSpriteFallbackFunc = Option<
94    unsafe extern "C" fn(
95        *mut ShumateVectorSpriteSheet,
96        *const c_char,
97        c_double,
98        gpointer,
99    ) -> *mut ShumateVectorSprite,
100>;
101
102// Records
103#[derive(Copy, Clone)]
104#[repr(C)]
105pub struct ShumateCompassClass {
106    pub parent_class: gtk::GtkWidgetClass,
107}
108
109impl ::std::fmt::Debug for ShumateCompassClass {
110    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
111        f.debug_struct(&format!("ShumateCompassClass @ {self:p}"))
112            .field("parent_class", &self.parent_class)
113            .finish()
114    }
115}
116
117#[derive(Copy, Clone)]
118#[repr(C)]
119pub struct ShumateCoordinateClass {
120    pub parent_class: gobject::GInitiallyUnownedClass,
121    pub padding: [gpointer; 16],
122}
123
124impl ::std::fmt::Debug for ShumateCoordinateClass {
125    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
126        f.debug_struct(&format!("ShumateCoordinateClass @ {self:p}"))
127            .field("parent_class", &self.parent_class)
128            .finish()
129    }
130}
131
132#[derive(Copy, Clone)]
133#[repr(C)]
134pub struct ShumateDataSourceClass {
135    pub parent_class: gobject::GObjectClass,
136    pub get_tile_data_async: Option<
137        unsafe extern "C" fn(
138            *mut ShumateDataSource,
139            c_int,
140            c_int,
141            c_int,
142            *mut gio::GCancellable,
143            gio::GAsyncReadyCallback,
144            gpointer,
145        ),
146    >,
147    pub get_tile_data_finish: Option<
148        unsafe extern "C" fn(
149            *mut ShumateDataSource,
150            *mut gio::GAsyncResult,
151            *mut *mut glib::GError,
152        ) -> *mut glib::GBytes,
153    >,
154    pub start_request: Option<
155        unsafe extern "C" fn(
156            *mut ShumateDataSource,
157            c_int,
158            c_int,
159            c_int,
160            *mut gio::GCancellable,
161        ) -> *mut ShumateDataSourceRequest,
162    >,
163    pub padding: [gpointer; 15],
164}
165
166impl ::std::fmt::Debug for ShumateDataSourceClass {
167    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
168        f.debug_struct(&format!("ShumateDataSourceClass @ {self:p}"))
169            .field("parent_class", &self.parent_class)
170            .field("get_tile_data_async", &self.get_tile_data_async)
171            .field("get_tile_data_finish", &self.get_tile_data_finish)
172            .field("start_request", &self.start_request)
173            .finish()
174    }
175}
176
177#[derive(Copy, Clone)]
178#[repr(C)]
179pub struct ShumateDataSourceRequestClass {
180    pub parent_class: gobject::GObjectClass,
181    pub padding: [gpointer; 16],
182}
183
184impl ::std::fmt::Debug for ShumateDataSourceRequestClass {
185    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
186        f.debug_struct(&format!("ShumateDataSourceRequestClass @ {self:p}"))
187            .field("parent_class", &self.parent_class)
188            .finish()
189    }
190}
191
192#[derive(Copy, Clone)]
193#[repr(C)]
194pub struct ShumateFileCacheClass {
195    pub parent_class: gobject::GObjectClass,
196}
197
198impl ::std::fmt::Debug for ShumateFileCacheClass {
199    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
200        f.debug_struct(&format!("ShumateFileCacheClass @ {self:p}"))
201            .field("parent_class", &self.parent_class)
202            .finish()
203    }
204}
205
206#[derive(Copy, Clone)]
207#[repr(C)]
208pub struct ShumateLayerClass {
209    pub parent_class: gtk::GtkWidgetClass,
210    pub get_debug_text: Option<unsafe extern "C" fn(*mut ShumateLayer) -> *mut c_char>,
211    pub padding: [gpointer; 15],
212}
213
214impl ::std::fmt::Debug for ShumateLayerClass {
215    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
216        f.debug_struct(&format!("ShumateLayerClass @ {self:p}"))
217            .field("parent_class", &self.parent_class)
218            .field("get_debug_text", &self.get_debug_text)
219            .finish()
220    }
221}
222
223#[derive(Copy, Clone)]
224#[repr(C)]
225pub struct ShumateLicenseClass {
226    pub parent_class: gtk::GtkWidgetClass,
227}
228
229impl ::std::fmt::Debug for ShumateLicenseClass {
230    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
231        f.debug_struct(&format!("ShumateLicenseClass @ {self:p}"))
232            .field("parent_class", &self.parent_class)
233            .finish()
234    }
235}
236
237#[derive(Copy, Clone)]
238#[repr(C)]
239pub struct ShumateLocationInterface {
240    pub g_iface: gobject::GTypeInterface,
241    pub get_latitude: Option<unsafe extern "C" fn(*mut ShumateLocation) -> c_double>,
242    pub get_longitude: Option<unsafe extern "C" fn(*mut ShumateLocation) -> c_double>,
243    pub set_location: Option<unsafe extern "C" fn(*mut ShumateLocation, c_double, c_double)>,
244}
245
246impl ::std::fmt::Debug for ShumateLocationInterface {
247    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
248        f.debug_struct(&format!("ShumateLocationInterface @ {self:p}"))
249            .field("get_latitude", &self.get_latitude)
250            .field("get_longitude", &self.get_longitude)
251            .field("set_location", &self.set_location)
252            .finish()
253    }
254}
255
256#[derive(Copy, Clone)]
257#[repr(C)]
258pub struct ShumateMapClass {
259    pub parent_class: gtk::GtkWidgetClass,
260}
261
262impl ::std::fmt::Debug for ShumateMapClass {
263    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
264        f.debug_struct(&format!("ShumateMapClass @ {self:p}"))
265            .field("parent_class", &self.parent_class)
266            .finish()
267    }
268}
269
270#[derive(Copy, Clone)]
271#[repr(C)]
272pub struct ShumateMapLayerClass {
273    pub parent_class: ShumateLayerClass,
274}
275
276impl ::std::fmt::Debug for ShumateMapLayerClass {
277    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
278        f.debug_struct(&format!("ShumateMapLayerClass @ {self:p}"))
279            .field("parent_class", &self.parent_class)
280            .finish()
281    }
282}
283
284#[derive(Copy, Clone)]
285#[repr(C)]
286pub struct ShumateMapSourceClass {
287    pub parent_class: gobject::GObjectClass,
288    pub fill_tile_async: Option<
289        unsafe extern "C" fn(
290            *mut ShumateMapSource,
291            *mut ShumateTile,
292            *mut gio::GCancellable,
293            gio::GAsyncReadyCallback,
294            gpointer,
295        ),
296    >,
297    pub fill_tile_finish: Option<
298        unsafe extern "C" fn(
299            *mut ShumateMapSource,
300            *mut gio::GAsyncResult,
301            *mut *mut glib::GError,
302        ) -> gboolean,
303    >,
304    pub padding: [gpointer; 16],
305}
306
307impl ::std::fmt::Debug for ShumateMapSourceClass {
308    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
309        f.debug_struct(&format!("ShumateMapSourceClass @ {self:p}"))
310            .field("parent_class", &self.parent_class)
311            .field("fill_tile_async", &self.fill_tile_async)
312            .field("fill_tile_finish", &self.fill_tile_finish)
313            .finish()
314    }
315}
316
317#[derive(Copy, Clone)]
318#[repr(C)]
319pub struct ShumateMapSourceRegistryClass {
320    pub parent_class: gobject::GObjectClass,
321}
322
323impl ::std::fmt::Debug for ShumateMapSourceRegistryClass {
324    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
325        f.debug_struct(&format!("ShumateMapSourceRegistryClass @ {self:p}"))
326            .field("parent_class", &self.parent_class)
327            .finish()
328    }
329}
330
331#[derive(Copy, Clone)]
332#[repr(C)]
333pub struct ShumateMarkerClass {
334    pub parent_class: gtk::GtkWidgetClass,
335    pub padding: [gpointer; 16],
336}
337
338impl ::std::fmt::Debug for ShumateMarkerClass {
339    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
340        f.debug_struct(&format!("ShumateMarkerClass @ {self:p}"))
341            .field("parent_class", &self.parent_class)
342            .finish()
343    }
344}
345
346#[derive(Copy, Clone)]
347#[repr(C)]
348pub struct ShumateMarkerLayerClass {
349    pub parent_class: ShumateLayerClass,
350}
351
352impl ::std::fmt::Debug for ShumateMarkerLayerClass {
353    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
354        f.debug_struct(&format!("ShumateMarkerLayerClass @ {self:p}"))
355            .field("parent_class", &self.parent_class)
356            .finish()
357    }
358}
359
360#[derive(Copy, Clone)]
361#[repr(C)]
362pub struct ShumatePathLayerClass {
363    pub parent_class: ShumateLayerClass,
364}
365
366impl ::std::fmt::Debug for ShumatePathLayerClass {
367    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
368        f.debug_struct(&format!("ShumatePathLayerClass @ {self:p}"))
369            .field("parent_class", &self.parent_class)
370            .finish()
371    }
372}
373
374#[derive(Copy, Clone)]
375#[repr(C)]
376pub struct ShumatePointClass {
377    pub parent_class: ShumateMarkerClass,
378}
379
380impl ::std::fmt::Debug for ShumatePointClass {
381    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
382        f.debug_struct(&format!("ShumatePointClass @ {self:p}"))
383            .field("parent_class", &self.parent_class)
384            .finish()
385    }
386}
387
388#[derive(Copy, Clone)]
389#[repr(C)]
390pub struct ShumateRasterRendererClass {
391    pub parent_class: ShumateMapSourceClass,
392}
393
394impl ::std::fmt::Debug for ShumateRasterRendererClass {
395    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
396        f.debug_struct(&format!("ShumateRasterRendererClass @ {self:p}"))
397            .field("parent_class", &self.parent_class)
398            .finish()
399    }
400}
401
402#[derive(Copy, Clone)]
403#[repr(C)]
404pub struct ShumateScaleClass {
405    pub parent_class: gtk::GtkWidgetClass,
406}
407
408impl ::std::fmt::Debug for ShumateScaleClass {
409    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
410        f.debug_struct(&format!("ShumateScaleClass @ {self:p}"))
411            .field("parent_class", &self.parent_class)
412            .finish()
413    }
414}
415
416#[derive(Copy, Clone)]
417#[repr(C)]
418pub struct ShumateSimpleMapClass {
419    pub parent_class: gtk::GtkWidgetClass,
420}
421
422impl ::std::fmt::Debug for ShumateSimpleMapClass {
423    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
424        f.debug_struct(&format!("ShumateSimpleMapClass @ {self:p}"))
425            .field("parent_class", &self.parent_class)
426            .finish()
427    }
428}
429
430#[derive(Copy, Clone)]
431#[repr(C)]
432pub struct ShumateSymbolEventClass {
433    pub parent_class: gobject::GObjectClass,
434}
435
436impl ::std::fmt::Debug for ShumateSymbolEventClass {
437    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
438        f.debug_struct(&format!("ShumateSymbolEventClass @ {self:p}"))
439            .field("parent_class", &self.parent_class)
440            .finish()
441    }
442}
443
444#[derive(Copy, Clone)]
445#[repr(C)]
446pub struct ShumateTileClass {
447    pub parent_class: gobject::GObjectClass,
448}
449
450impl ::std::fmt::Debug for ShumateTileClass {
451    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
452        f.debug_struct(&format!("ShumateTileClass @ {self:p}"))
453            .field("parent_class", &self.parent_class)
454            .finish()
455    }
456}
457
458#[derive(Copy, Clone)]
459#[repr(C)]
460pub struct ShumateTileDownloaderClass {
461    pub parent_class: ShumateDataSourceClass,
462}
463
464impl ::std::fmt::Debug for ShumateTileDownloaderClass {
465    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
466        f.debug_struct(&format!("ShumateTileDownloaderClass @ {self:p}"))
467            .field("parent_class", &self.parent_class)
468            .finish()
469    }
470}
471
472#[derive(Copy, Clone)]
473#[repr(C)]
474pub struct ShumateVectorReaderClass {
475    pub parent_class: gobject::GObjectClass,
476}
477
478impl ::std::fmt::Debug for ShumateVectorReaderClass {
479    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
480        f.debug_struct(&format!("ShumateVectorReaderClass @ {self:p}"))
481            .field("parent_class", &self.parent_class)
482            .finish()
483    }
484}
485
486#[derive(Copy, Clone)]
487#[repr(C)]
488pub struct ShumateVectorReaderIterClass {
489    pub parent_class: gobject::GObjectClass,
490}
491
492impl ::std::fmt::Debug for ShumateVectorReaderIterClass {
493    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
494        f.debug_struct(&format!("ShumateVectorReaderIterClass @ {self:p}"))
495            .field("parent_class", &self.parent_class)
496            .finish()
497    }
498}
499
500#[derive(Copy, Clone)]
501#[repr(C)]
502pub struct ShumateVectorRendererClass {
503    pub parent_class: ShumateMapSourceClass,
504}
505
506impl ::std::fmt::Debug for ShumateVectorRendererClass {
507    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
508        f.debug_struct(&format!("ShumateVectorRendererClass @ {self:p}"))
509            .field("parent_class", &self.parent_class)
510            .finish()
511    }
512}
513
514#[derive(Copy, Clone)]
515#[repr(C)]
516pub struct ShumateVectorSpriteClass {
517    pub parent_class: gobject::GObjectClass,
518}
519
520impl ::std::fmt::Debug for ShumateVectorSpriteClass {
521    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
522        f.debug_struct(&format!("ShumateVectorSpriteClass @ {self:p}"))
523            .field("parent_class", &self.parent_class)
524            .finish()
525    }
526}
527
528#[derive(Copy, Clone)]
529#[repr(C)]
530pub struct ShumateVectorSpriteSheetClass {
531    pub parent_class: gobject::GObjectClass,
532}
533
534impl ::std::fmt::Debug for ShumateVectorSpriteSheetClass {
535    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
536        f.debug_struct(&format!("ShumateVectorSpriteSheetClass @ {self:p}"))
537            .field("parent_class", &self.parent_class)
538            .finish()
539    }
540}
541
542#[derive(Copy, Clone)]
543#[repr(C)]
544pub struct ShumateViewportClass {
545    pub parent_class: gobject::GObjectClass,
546}
547
548impl ::std::fmt::Debug for ShumateViewportClass {
549    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
550        f.debug_struct(&format!("ShumateViewportClass @ {self:p}"))
551            .field("parent_class", &self.parent_class)
552            .finish()
553    }
554}
555
556// Classes
557#[repr(C)]
558pub struct ShumateCompass {
559    _data: [u8; 0],
560    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
561}
562
563impl ::std::fmt::Debug for ShumateCompass {
564    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
565        f.debug_struct(&format!("ShumateCompass @ {self:p}"))
566            .finish()
567    }
568}
569
570#[derive(Copy, Clone)]
571#[repr(C)]
572pub struct ShumateCoordinate {
573    pub parent_instance: gobject::GInitiallyUnowned,
574}
575
576impl ::std::fmt::Debug for ShumateCoordinate {
577    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
578        f.debug_struct(&format!("ShumateCoordinate @ {self:p}"))
579            .field("parent_instance", &self.parent_instance)
580            .finish()
581    }
582}
583
584#[derive(Copy, Clone)]
585#[repr(C)]
586pub struct ShumateDataSource {
587    pub parent_instance: gobject::GObject,
588}
589
590impl ::std::fmt::Debug for ShumateDataSource {
591    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
592        f.debug_struct(&format!("ShumateDataSource @ {self:p}"))
593            .field("parent_instance", &self.parent_instance)
594            .finish()
595    }
596}
597
598#[derive(Copy, Clone)]
599#[repr(C)]
600pub struct ShumateDataSourceRequest {
601    pub parent_instance: gobject::GObject,
602}
603
604impl ::std::fmt::Debug for ShumateDataSourceRequest {
605    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
606        f.debug_struct(&format!("ShumateDataSourceRequest @ {self:p}"))
607            .field("parent_instance", &self.parent_instance)
608            .finish()
609    }
610}
611
612#[repr(C)]
613pub struct ShumateFileCache {
614    _data: [u8; 0],
615    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
616}
617
618impl ::std::fmt::Debug for ShumateFileCache {
619    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
620        f.debug_struct(&format!("ShumateFileCache @ {self:p}"))
621            .finish()
622    }
623}
624
625#[derive(Copy, Clone)]
626#[repr(C)]
627pub struct ShumateLayer {
628    pub parent_instance: gtk::GtkWidget,
629}
630
631impl ::std::fmt::Debug for ShumateLayer {
632    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
633        f.debug_struct(&format!("ShumateLayer @ {self:p}"))
634            .field("parent_instance", &self.parent_instance)
635            .finish()
636    }
637}
638
639#[repr(C)]
640pub struct ShumateLicense {
641    _data: [u8; 0],
642    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
643}
644
645impl ::std::fmt::Debug for ShumateLicense {
646    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
647        f.debug_struct(&format!("ShumateLicense @ {self:p}"))
648            .finish()
649    }
650}
651
652#[repr(C)]
653pub struct ShumateMap {
654    _data: [u8; 0],
655    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
656}
657
658impl ::std::fmt::Debug for ShumateMap {
659    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
660        f.debug_struct(&format!("ShumateMap @ {self:p}")).finish()
661    }
662}
663
664#[repr(C)]
665pub struct ShumateMapLayer {
666    _data: [u8; 0],
667    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
668}
669
670impl ::std::fmt::Debug for ShumateMapLayer {
671    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
672        f.debug_struct(&format!("ShumateMapLayer @ {self:p}"))
673            .finish()
674    }
675}
676
677#[derive(Copy, Clone)]
678#[repr(C)]
679pub struct ShumateMapSource {
680    pub parent_instance: gobject::GObject,
681}
682
683impl ::std::fmt::Debug for ShumateMapSource {
684    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
685        f.debug_struct(&format!("ShumateMapSource @ {self:p}"))
686            .field("parent_instance", &self.parent_instance)
687            .finish()
688    }
689}
690
691#[repr(C)]
692pub struct ShumateMapSourceRegistry {
693    _data: [u8; 0],
694    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
695}
696
697impl ::std::fmt::Debug for ShumateMapSourceRegistry {
698    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
699        f.debug_struct(&format!("ShumateMapSourceRegistry @ {self:p}"))
700            .finish()
701    }
702}
703
704#[derive(Copy, Clone)]
705#[repr(C)]
706pub struct ShumateMarker {
707    pub parent_instance: gtk::GtkWidget,
708}
709
710impl ::std::fmt::Debug for ShumateMarker {
711    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
712        f.debug_struct(&format!("ShumateMarker @ {self:p}"))
713            .field("parent_instance", &self.parent_instance)
714            .finish()
715    }
716}
717
718#[repr(C)]
719pub struct ShumateMarkerLayer {
720    _data: [u8; 0],
721    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
722}
723
724impl ::std::fmt::Debug for ShumateMarkerLayer {
725    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
726        f.debug_struct(&format!("ShumateMarkerLayer @ {self:p}"))
727            .finish()
728    }
729}
730
731#[repr(C)]
732pub struct ShumatePathLayer {
733    _data: [u8; 0],
734    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
735}
736
737impl ::std::fmt::Debug for ShumatePathLayer {
738    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
739        f.debug_struct(&format!("ShumatePathLayer @ {self:p}"))
740            .finish()
741    }
742}
743
744#[repr(C)]
745pub struct ShumatePoint {
746    _data: [u8; 0],
747    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
748}
749
750impl ::std::fmt::Debug for ShumatePoint {
751    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
752        f.debug_struct(&format!("ShumatePoint @ {self:p}")).finish()
753    }
754}
755
756#[repr(C)]
757pub struct ShumateRasterRenderer {
758    _data: [u8; 0],
759    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
760}
761
762impl ::std::fmt::Debug for ShumateRasterRenderer {
763    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
764        f.debug_struct(&format!("ShumateRasterRenderer @ {self:p}"))
765            .finish()
766    }
767}
768
769#[repr(C)]
770pub struct ShumateScale {
771    _data: [u8; 0],
772    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
773}
774
775impl ::std::fmt::Debug for ShumateScale {
776    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
777        f.debug_struct(&format!("ShumateScale @ {self:p}")).finish()
778    }
779}
780
781#[repr(C)]
782pub struct ShumateSimpleMap {
783    _data: [u8; 0],
784    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
785}
786
787impl ::std::fmt::Debug for ShumateSimpleMap {
788    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
789        f.debug_struct(&format!("ShumateSimpleMap @ {self:p}"))
790            .finish()
791    }
792}
793
794#[repr(C)]
795pub struct ShumateSymbolEvent {
796    _data: [u8; 0],
797    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
798}
799
800impl ::std::fmt::Debug for ShumateSymbolEvent {
801    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
802        f.debug_struct(&format!("ShumateSymbolEvent @ {self:p}"))
803            .finish()
804    }
805}
806
807#[repr(C)]
808pub struct ShumateTile {
809    _data: [u8; 0],
810    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
811}
812
813impl ::std::fmt::Debug for ShumateTile {
814    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
815        f.debug_struct(&format!("ShumateTile @ {self:p}")).finish()
816    }
817}
818
819#[repr(C)]
820pub struct ShumateTileDownloader {
821    _data: [u8; 0],
822    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
823}
824
825impl ::std::fmt::Debug for ShumateTileDownloader {
826    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
827        f.debug_struct(&format!("ShumateTileDownloader @ {self:p}"))
828            .finish()
829    }
830}
831
832#[repr(C)]
833pub struct ShumateVectorReader {
834    _data: [u8; 0],
835    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
836}
837
838impl ::std::fmt::Debug for ShumateVectorReader {
839    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
840        f.debug_struct(&format!("ShumateVectorReader @ {self:p}"))
841            .finish()
842    }
843}
844
845#[repr(C)]
846pub struct ShumateVectorReaderIter {
847    _data: [u8; 0],
848    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
849}
850
851impl ::std::fmt::Debug for ShumateVectorReaderIter {
852    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
853        f.debug_struct(&format!("ShumateVectorReaderIter @ {self:p}"))
854            .finish()
855    }
856}
857
858#[repr(C)]
859pub struct ShumateVectorRenderer {
860    _data: [u8; 0],
861    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
862}
863
864impl ::std::fmt::Debug for ShumateVectorRenderer {
865    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
866        f.debug_struct(&format!("ShumateVectorRenderer @ {self:p}"))
867            .finish()
868    }
869}
870
871#[repr(C)]
872pub struct ShumateVectorSprite {
873    _data: [u8; 0],
874    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
875}
876
877impl ::std::fmt::Debug for ShumateVectorSprite {
878    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
879        f.debug_struct(&format!("ShumateVectorSprite @ {self:p}"))
880            .finish()
881    }
882}
883
884#[repr(C)]
885pub struct ShumateVectorSpriteSheet {
886    _data: [u8; 0],
887    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
888}
889
890impl ::std::fmt::Debug for ShumateVectorSpriteSheet {
891    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
892        f.debug_struct(&format!("ShumateVectorSpriteSheet @ {self:p}"))
893            .finish()
894    }
895}
896
897#[repr(C)]
898pub struct ShumateViewport {
899    _data: [u8; 0],
900    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
901}
902
903impl ::std::fmt::Debug for ShumateViewport {
904    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
905        f.debug_struct(&format!("ShumateViewport @ {self:p}"))
906            .finish()
907    }
908}
909
910// Interfaces
911#[repr(C)]
912pub struct ShumateLocation {
913    _data: [u8; 0],
914    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
915}
916
917impl ::std::fmt::Debug for ShumateLocation {
918    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
919        write!(f, "ShumateLocation @ {self:p}")
920    }
921}
922
923#[link(name = "shumate-1.0")]
924extern "C" {
925
926    //=========================================================================
927    // ShumateFileCacheError
928    //=========================================================================
929    pub fn shumate_file_cache_error_get_type() -> GType;
930    pub fn shumate_file_cache_error_quark() -> glib::GQuark;
931
932    //=========================================================================
933    // ShumateGeometryType
934    //=========================================================================
935    #[cfg(feature = "v1_2")]
936    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
937    pub fn shumate_geometry_type_get_type() -> GType;
938
939    //=========================================================================
940    // ShumateMapProjection
941    //=========================================================================
942    pub fn shumate_map_projection_get_type() -> GType;
943
944    //=========================================================================
945    // ShumateState
946    //=========================================================================
947    pub fn shumate_state_get_type() -> GType;
948
949    //=========================================================================
950    // ShumateStyleError
951    //=========================================================================
952    pub fn shumate_style_error_get_type() -> GType;
953    pub fn shumate_style_error_quark() -> glib::GQuark;
954
955    //=========================================================================
956    // ShumateTileDownloaderError
957    //=========================================================================
958    pub fn shumate_tile_downloader_error_get_type() -> GType;
959    pub fn shumate_tile_downloader_error_quark() -> glib::GQuark;
960
961    //=========================================================================
962    // ShumateUnit
963    //=========================================================================
964    pub fn shumate_unit_get_type() -> GType;
965
966    //=========================================================================
967    // ShumateCompass
968    //=========================================================================
969    pub fn shumate_compass_get_type() -> GType;
970    pub fn shumate_compass_new(viewport: *mut ShumateViewport) -> *mut ShumateCompass;
971    pub fn shumate_compass_get_viewport(compass: *mut ShumateCompass) -> *mut ShumateViewport;
972    pub fn shumate_compass_set_viewport(
973        compass: *mut ShumateCompass,
974        viewport: *mut ShumateViewport,
975    );
976
977    //=========================================================================
978    // ShumateCoordinate
979    //=========================================================================
980    pub fn shumate_coordinate_get_type() -> GType;
981    pub fn shumate_coordinate_new() -> *mut ShumateCoordinate;
982    pub fn shumate_coordinate_new_full(
983        latitude: c_double,
984        longitude: c_double,
985    ) -> *mut ShumateCoordinate;
986
987    //=========================================================================
988    // ShumateDataSource
989    //=========================================================================
990    pub fn shumate_data_source_get_type() -> GType;
991    #[cfg(feature = "v1_1")]
992    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
993    pub fn shumate_data_source_get_max_zoom_level(self_: *mut ShumateDataSource) -> c_uint;
994    #[cfg(feature = "v1_1")]
995    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
996    pub fn shumate_data_source_get_min_zoom_level(self_: *mut ShumateDataSource) -> c_uint;
997    pub fn shumate_data_source_get_tile_data_async(
998        self_: *mut ShumateDataSource,
999        x: c_int,
1000        y: c_int,
1001        zoom_level: c_int,
1002        cancellable: *mut gio::GCancellable,
1003        callback: gio::GAsyncReadyCallback,
1004        user_data: gpointer,
1005    );
1006    pub fn shumate_data_source_get_tile_data_finish(
1007        self_: *mut ShumateDataSource,
1008        result: *mut gio::GAsyncResult,
1009        error: *mut *mut glib::GError,
1010    ) -> *mut glib::GBytes;
1011    #[cfg(feature = "v1_1")]
1012    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
1013    pub fn shumate_data_source_set_max_zoom_level(
1014        self_: *mut ShumateDataSource,
1015        zoom_level: c_uint,
1016    );
1017    #[cfg(feature = "v1_1")]
1018    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
1019    pub fn shumate_data_source_set_min_zoom_level(
1020        self_: *mut ShumateDataSource,
1021        zoom_level: c_uint,
1022    );
1023    #[cfg(feature = "v1_1")]
1024    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
1025    pub fn shumate_data_source_start_request(
1026        self_: *mut ShumateDataSource,
1027        x: c_int,
1028        y: c_int,
1029        zoom_level: c_int,
1030        cancellable: *mut gio::GCancellable,
1031    ) -> *mut ShumateDataSourceRequest;
1032
1033    //=========================================================================
1034    // ShumateDataSourceRequest
1035    //=========================================================================
1036    #[cfg(feature = "v1_1")]
1037    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
1038    pub fn shumate_data_source_request_get_type() -> GType;
1039    #[cfg(feature = "v1_1")]
1040    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
1041    pub fn shumate_data_source_request_new(
1042        x: c_int,
1043        y: c_int,
1044        zoom_level: c_int,
1045    ) -> *mut ShumateDataSourceRequest;
1046    #[cfg(feature = "v1_1")]
1047    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
1048    pub fn shumate_data_source_request_complete(self_: *mut ShumateDataSourceRequest);
1049    #[cfg(feature = "v1_1")]
1050    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
1051    pub fn shumate_data_source_request_emit_data(
1052        self_: *mut ShumateDataSourceRequest,
1053        data: *mut glib::GBytes,
1054        complete: gboolean,
1055    );
1056    #[cfg(feature = "v1_1")]
1057    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
1058    pub fn shumate_data_source_request_emit_error(
1059        self_: *mut ShumateDataSourceRequest,
1060        error: *const glib::GError,
1061    );
1062    #[cfg(feature = "v1_1")]
1063    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
1064    pub fn shumate_data_source_request_get_data(
1065        self_: *mut ShumateDataSourceRequest,
1066    ) -> *mut glib::GBytes;
1067    #[cfg(feature = "v1_1")]
1068    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
1069    pub fn shumate_data_source_request_get_error(
1070        self_: *mut ShumateDataSourceRequest,
1071    ) -> *mut glib::GError;
1072    #[cfg(feature = "v1_1")]
1073    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
1074    pub fn shumate_data_source_request_get_x(self_: *mut ShumateDataSourceRequest) -> c_int;
1075    #[cfg(feature = "v1_1")]
1076    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
1077    pub fn shumate_data_source_request_get_y(self_: *mut ShumateDataSourceRequest) -> c_int;
1078    #[cfg(feature = "v1_1")]
1079    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
1080    pub fn shumate_data_source_request_get_zoom_level(
1081        self_: *mut ShumateDataSourceRequest,
1082    ) -> c_int;
1083    #[cfg(feature = "v1_1")]
1084    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
1085    pub fn shumate_data_source_request_is_completed(
1086        self_: *mut ShumateDataSourceRequest,
1087    ) -> gboolean;
1088
1089    //=========================================================================
1090    // ShumateFileCache
1091    //=========================================================================
1092    pub fn shumate_file_cache_get_type() -> GType;
1093    pub fn shumate_file_cache_new_full(
1094        size_limit: c_uint,
1095        cache_key: *const c_char,
1096        cache_dir: *const c_char,
1097    ) -> *mut ShumateFileCache;
1098    pub fn shumate_file_cache_get_cache_dir(self_: *mut ShumateFileCache) -> *const c_char;
1099    pub fn shumate_file_cache_get_cache_key(self_: *mut ShumateFileCache) -> *const c_char;
1100    pub fn shumate_file_cache_get_size_limit(self_: *mut ShumateFileCache) -> c_uint;
1101    pub fn shumate_file_cache_get_tile_async(
1102        self_: *mut ShumateFileCache,
1103        x: c_int,
1104        y: c_int,
1105        zoom_level: c_int,
1106        cancellable: *mut gio::GCancellable,
1107        callback: gio::GAsyncReadyCallback,
1108        user_data: gpointer,
1109    );
1110    pub fn shumate_file_cache_get_tile_finish(
1111        self_: *mut ShumateFileCache,
1112        etag: *mut *mut c_char,
1113        modtime: *mut *mut glib::GDateTime,
1114        result: *mut gio::GAsyncResult,
1115        error: *mut *mut glib::GError,
1116    ) -> *mut glib::GBytes;
1117    pub fn shumate_file_cache_mark_up_to_date(
1118        self_: *mut ShumateFileCache,
1119        x: c_int,
1120        y: c_int,
1121        zoom_level: c_int,
1122    );
1123    pub fn shumate_file_cache_purge_cache_async(
1124        self_: *mut ShumateFileCache,
1125        cancellable: *mut gio::GCancellable,
1126        callback: gio::GAsyncReadyCallback,
1127        user_data: gpointer,
1128    );
1129    pub fn shumate_file_cache_purge_cache_finish(
1130        self_: *mut ShumateFileCache,
1131        result: *mut gio::GAsyncResult,
1132        error: *mut *mut glib::GError,
1133    ) -> gboolean;
1134    pub fn shumate_file_cache_set_size_limit(self_: *mut ShumateFileCache, size_limit: c_uint);
1135    pub fn shumate_file_cache_store_tile_async(
1136        self_: *mut ShumateFileCache,
1137        x: c_int,
1138        y: c_int,
1139        zoom_level: c_int,
1140        bytes: *mut glib::GBytes,
1141        etag: *const c_char,
1142        cancellable: *mut gio::GCancellable,
1143        callback: gio::GAsyncReadyCallback,
1144        user_data: gpointer,
1145    );
1146    pub fn shumate_file_cache_store_tile_finish(
1147        self_: *mut ShumateFileCache,
1148        result: *mut gio::GAsyncResult,
1149        error: *mut *mut glib::GError,
1150    ) -> gboolean;
1151
1152    //=========================================================================
1153    // ShumateLayer
1154    //=========================================================================
1155    pub fn shumate_layer_get_type() -> GType;
1156    pub fn shumate_layer_get_viewport(self_: *mut ShumateLayer) -> *mut ShumateViewport;
1157
1158    //=========================================================================
1159    // ShumateLicense
1160    //=========================================================================
1161    pub fn shumate_license_get_type() -> GType;
1162    pub fn shumate_license_new() -> *mut ShumateLicense;
1163    pub fn shumate_license_append_map_source(
1164        license: *mut ShumateLicense,
1165        map_source: *mut ShumateMapSource,
1166    );
1167    pub fn shumate_license_get_extra_text(license: *mut ShumateLicense) -> *const c_char;
1168    pub fn shumate_license_get_xalign(license: *mut ShumateLicense) -> c_float;
1169    pub fn shumate_license_prepend_map_source(
1170        license: *mut ShumateLicense,
1171        map_source: *mut ShumateMapSource,
1172    );
1173    pub fn shumate_license_remove_map_source(
1174        license: *mut ShumateLicense,
1175        map_source: *mut ShumateMapSource,
1176    );
1177    pub fn shumate_license_set_extra_text(license: *mut ShumateLicense, text: *const c_char);
1178    pub fn shumate_license_set_xalign(license: *mut ShumateLicense, xalign: c_float);
1179
1180    //=========================================================================
1181    // ShumateMap
1182    //=========================================================================
1183    pub fn shumate_map_get_type() -> GType;
1184    pub fn shumate_map_new() -> *mut ShumateMap;
1185    pub fn shumate_map_new_simple() -> *mut ShumateMap;
1186    pub fn shumate_map_add_layer(self_: *mut ShumateMap, layer: *mut ShumateLayer);
1187    pub fn shumate_map_center_on(self_: *mut ShumateMap, latitude: c_double, longitude: c_double);
1188    pub fn shumate_map_get_animate_zoom(self_: *mut ShumateMap) -> gboolean;
1189    pub fn shumate_map_get_go_to_duration(self_: *mut ShumateMap) -> c_uint;
1190    pub fn shumate_map_get_state(self_: *mut ShumateMap) -> ShumateState;
1191    pub fn shumate_map_get_viewport(self_: *mut ShumateMap) -> *mut ShumateViewport;
1192    pub fn shumate_map_get_zoom_on_double_click(self_: *mut ShumateMap) -> gboolean;
1193    pub fn shumate_map_go_to(self_: *mut ShumateMap, latitude: c_double, longitude: c_double);
1194    pub fn shumate_map_go_to_full(
1195        self_: *mut ShumateMap,
1196        latitude: c_double,
1197        longitude: c_double,
1198        zoom_level: c_double,
1199    );
1200    pub fn shumate_map_go_to_full_with_duration(
1201        self_: *mut ShumateMap,
1202        latitude: c_double,
1203        longitude: c_double,
1204        zoom_level: c_double,
1205        duration_ms: c_uint,
1206    );
1207    pub fn shumate_map_insert_layer_above(
1208        self_: *mut ShumateMap,
1209        layer: *mut ShumateLayer,
1210        next_sibling: *mut ShumateLayer,
1211    );
1212    pub fn shumate_map_insert_layer_behind(
1213        self_: *mut ShumateMap,
1214        layer: *mut ShumateLayer,
1215        next_sibling: *mut ShumateLayer,
1216    );
1217    pub fn shumate_map_remove_layer(self_: *mut ShumateMap, layer: *mut ShumateLayer);
1218    pub fn shumate_map_set_animate_zoom(self_: *mut ShumateMap, value: gboolean);
1219    pub fn shumate_map_set_go_to_duration(self_: *mut ShumateMap, duration: c_uint);
1220    pub fn shumate_map_set_map_source(self_: *mut ShumateMap, map_source: *mut ShumateMapSource);
1221    pub fn shumate_map_set_zoom_on_double_click(self_: *mut ShumateMap, value: gboolean);
1222    pub fn shumate_map_stop_go_to(self_: *mut ShumateMap);
1223    pub fn shumate_map_zoom_in(self_: *mut ShumateMap);
1224    pub fn shumate_map_zoom_out(self_: *mut ShumateMap);
1225
1226    //=========================================================================
1227    // ShumateMapLayer
1228    //=========================================================================
1229    pub fn shumate_map_layer_get_type() -> GType;
1230    pub fn shumate_map_layer_new(
1231        map_source: *mut ShumateMapSource,
1232        viewport: *mut ShumateViewport,
1233    ) -> *mut ShumateMapLayer;
1234
1235    //=========================================================================
1236    // ShumateMapSource
1237    //=========================================================================
1238    pub fn shumate_map_source_get_type() -> GType;
1239    pub fn shumate_map_source_fill_tile_async(
1240        self_: *mut ShumateMapSource,
1241        tile: *mut ShumateTile,
1242        cancellable: *mut gio::GCancellable,
1243        callback: gio::GAsyncReadyCallback,
1244        user_data: gpointer,
1245    );
1246    pub fn shumate_map_source_fill_tile_finish(
1247        self_: *mut ShumateMapSource,
1248        result: *mut gio::GAsyncResult,
1249        error: *mut *mut glib::GError,
1250    ) -> gboolean;
1251    pub fn shumate_map_source_get_column_count(
1252        map_source: *mut ShumateMapSource,
1253        zoom_level: c_uint,
1254    ) -> c_uint;
1255    pub fn shumate_map_source_get_id(map_source: *mut ShumateMapSource) -> *const c_char;
1256    pub fn shumate_map_source_get_latitude(
1257        map_source: *mut ShumateMapSource,
1258        zoom_level: c_double,
1259        y: c_double,
1260    ) -> c_double;
1261    pub fn shumate_map_source_get_license(map_source: *mut ShumateMapSource) -> *const c_char;
1262    pub fn shumate_map_source_get_license_uri(map_source: *mut ShumateMapSource) -> *const c_char;
1263    pub fn shumate_map_source_get_longitude(
1264        map_source: *mut ShumateMapSource,
1265        zoom_level: c_double,
1266        x: c_double,
1267    ) -> c_double;
1268    pub fn shumate_map_source_get_max_zoom_level(map_source: *mut ShumateMapSource) -> c_uint;
1269    pub fn shumate_map_source_get_meters_per_pixel(
1270        map_source: *mut ShumateMapSource,
1271        zoom_level: c_double,
1272        latitude: c_double,
1273        longitude: c_double,
1274    ) -> c_double;
1275    pub fn shumate_map_source_get_min_zoom_level(map_source: *mut ShumateMapSource) -> c_uint;
1276    pub fn shumate_map_source_get_name(map_source: *mut ShumateMapSource) -> *const c_char;
1277    pub fn shumate_map_source_get_projection(
1278        map_source: *mut ShumateMapSource,
1279    ) -> ShumateMapProjection;
1280    pub fn shumate_map_source_get_row_count(
1281        map_source: *mut ShumateMapSource,
1282        zoom_level: c_uint,
1283    ) -> c_uint;
1284    pub fn shumate_map_source_get_tile_size(map_source: *mut ShumateMapSource) -> c_uint;
1285    pub fn shumate_map_source_get_tile_size_at_zoom(
1286        map_source: *mut ShumateMapSource,
1287        zoom_level: c_double,
1288    ) -> c_double;
1289    pub fn shumate_map_source_get_x(
1290        map_source: *mut ShumateMapSource,
1291        zoom_level: c_double,
1292        longitude: c_double,
1293    ) -> c_double;
1294    pub fn shumate_map_source_get_y(
1295        map_source: *mut ShumateMapSource,
1296        zoom_level: c_double,
1297        latitude: c_double,
1298    ) -> c_double;
1299    pub fn shumate_map_source_set_id(map_source: *mut ShumateMapSource, id: *const c_char);
1300    pub fn shumate_map_source_set_license(
1301        map_source: *mut ShumateMapSource,
1302        license: *const c_char,
1303    );
1304    pub fn shumate_map_source_set_license_uri(
1305        map_source: *mut ShumateMapSource,
1306        license_uri: *const c_char,
1307    );
1308    pub fn shumate_map_source_set_max_zoom_level(
1309        map_source: *mut ShumateMapSource,
1310        zoom_level: c_uint,
1311    );
1312    pub fn shumate_map_source_set_min_zoom_level(
1313        map_source: *mut ShumateMapSource,
1314        zoom_level: c_uint,
1315    );
1316    pub fn shumate_map_source_set_name(map_source: *mut ShumateMapSource, name: *const c_char);
1317    pub fn shumate_map_source_set_projection(
1318        map_source: *mut ShumateMapSource,
1319        projection: ShumateMapProjection,
1320    );
1321    pub fn shumate_map_source_set_tile_size(map_source: *mut ShumateMapSource, tile_size: c_uint);
1322
1323    //=========================================================================
1324    // ShumateMapSourceRegistry
1325    //=========================================================================
1326    pub fn shumate_map_source_registry_get_type() -> GType;
1327    pub fn shumate_map_source_registry_new() -> *mut ShumateMapSourceRegistry;
1328    pub fn shumate_map_source_registry_new_with_defaults() -> *mut ShumateMapSourceRegistry;
1329    pub fn shumate_map_source_registry_add(
1330        self_: *mut ShumateMapSourceRegistry,
1331        map_source: *mut ShumateMapSource,
1332    );
1333    pub fn shumate_map_source_registry_get_by_id(
1334        self_: *mut ShumateMapSourceRegistry,
1335        id: *const c_char,
1336    ) -> *mut ShumateMapSource;
1337    pub fn shumate_map_source_registry_populate_defaults(self_: *mut ShumateMapSourceRegistry);
1338    pub fn shumate_map_source_registry_remove(
1339        self_: *mut ShumateMapSourceRegistry,
1340        id: *const c_char,
1341    );
1342
1343    //=========================================================================
1344    // ShumateMarker
1345    //=========================================================================
1346    pub fn shumate_marker_get_type() -> GType;
1347    pub fn shumate_marker_new() -> *mut ShumateMarker;
1348    pub fn shumate_marker_animate_in(marker: *mut ShumateMarker);
1349    pub fn shumate_marker_animate_in_with_delay(marker: *mut ShumateMarker, delay: c_uint);
1350    pub fn shumate_marker_animate_out(marker: *mut ShumateMarker);
1351    pub fn shumate_marker_animate_out_with_delay(marker: *mut ShumateMarker, delay: c_uint);
1352    pub fn shumate_marker_get_child(marker: *mut ShumateMarker) -> *mut gtk::GtkWidget;
1353    pub fn shumate_marker_get_draggable(marker: *mut ShumateMarker) -> gboolean;
1354    pub fn shumate_marker_get_selectable(marker: *mut ShumateMarker) -> gboolean;
1355    pub fn shumate_marker_is_selected(marker: *mut ShumateMarker) -> gboolean;
1356    pub fn shumate_marker_set_child(marker: *mut ShumateMarker, child: *mut gtk::GtkWidget);
1357    pub fn shumate_marker_set_draggable(marker: *mut ShumateMarker, value: gboolean);
1358    pub fn shumate_marker_set_selectable(marker: *mut ShumateMarker, value: gboolean);
1359
1360    //=========================================================================
1361    // ShumateMarkerLayer
1362    //=========================================================================
1363    pub fn shumate_marker_layer_get_type() -> GType;
1364    pub fn shumate_marker_layer_new(viewport: *mut ShumateViewport) -> *mut ShumateMarkerLayer;
1365    pub fn shumate_marker_layer_new_full(
1366        viewport: *mut ShumateViewport,
1367        mode: gtk::GtkSelectionMode,
1368    ) -> *mut ShumateMarkerLayer;
1369    pub fn shumate_marker_layer_add_marker(
1370        self_: *mut ShumateMarkerLayer,
1371        marker: *mut ShumateMarker,
1372    );
1373    pub fn shumate_marker_layer_get_markers(self_: *mut ShumateMarkerLayer) -> *mut glib::GList;
1374    pub fn shumate_marker_layer_get_selected(self_: *mut ShumateMarkerLayer) -> *mut glib::GList;
1375    pub fn shumate_marker_layer_get_selection_mode(
1376        self_: *mut ShumateMarkerLayer,
1377    ) -> gtk::GtkSelectionMode;
1378    pub fn shumate_marker_layer_remove_all(self_: *mut ShumateMarkerLayer);
1379    pub fn shumate_marker_layer_remove_marker(
1380        self_: *mut ShumateMarkerLayer,
1381        marker: *mut ShumateMarker,
1382    );
1383    pub fn shumate_marker_layer_select_all_markers(self_: *mut ShumateMarkerLayer);
1384    pub fn shumate_marker_layer_select_marker(
1385        self_: *mut ShumateMarkerLayer,
1386        marker: *mut ShumateMarker,
1387    ) -> gboolean;
1388    pub fn shumate_marker_layer_set_selection_mode(
1389        self_: *mut ShumateMarkerLayer,
1390        mode: gtk::GtkSelectionMode,
1391    );
1392    pub fn shumate_marker_layer_unselect_all_markers(self_: *mut ShumateMarkerLayer);
1393    pub fn shumate_marker_layer_unselect_marker(
1394        self_: *mut ShumateMarkerLayer,
1395        marker: *mut ShumateMarker,
1396    );
1397
1398    //=========================================================================
1399    // ShumatePathLayer
1400    //=========================================================================
1401    pub fn shumate_path_layer_get_type() -> GType;
1402    pub fn shumate_path_layer_new(viewport: *mut ShumateViewport) -> *mut ShumatePathLayer;
1403    pub fn shumate_path_layer_add_node(
1404        self_: *mut ShumatePathLayer,
1405        location: *mut ShumateLocation,
1406    );
1407    pub fn shumate_path_layer_get_closed(self_: *mut ShumatePathLayer) -> gboolean;
1408    pub fn shumate_path_layer_get_dash(self_: *mut ShumatePathLayer) -> *mut glib::GList;
1409    pub fn shumate_path_layer_get_fill(self_: *mut ShumatePathLayer) -> gboolean;
1410    pub fn shumate_path_layer_get_fill_color(self_: *mut ShumatePathLayer) -> *mut gdk::GdkRGBA;
1411    pub fn shumate_path_layer_get_nodes(self_: *mut ShumatePathLayer) -> *mut glib::GList;
1412    pub fn shumate_path_layer_get_outline_color(self_: *mut ShumatePathLayer) -> *mut gdk::GdkRGBA;
1413    pub fn shumate_path_layer_get_outline_width(self_: *mut ShumatePathLayer) -> c_double;
1414    pub fn shumate_path_layer_get_stroke(self_: *mut ShumatePathLayer) -> gboolean;
1415    pub fn shumate_path_layer_get_stroke_color(self_: *mut ShumatePathLayer) -> *mut gdk::GdkRGBA;
1416    pub fn shumate_path_layer_get_stroke_width(self_: *mut ShumatePathLayer) -> c_double;
1417    pub fn shumate_path_layer_insert_node(
1418        self_: *mut ShumatePathLayer,
1419        location: *mut ShumateLocation,
1420        position: c_uint,
1421    );
1422    pub fn shumate_path_layer_remove_all(self_: *mut ShumatePathLayer);
1423    pub fn shumate_path_layer_remove_node(
1424        self_: *mut ShumatePathLayer,
1425        location: *mut ShumateLocation,
1426    );
1427    pub fn shumate_path_layer_set_closed(self_: *mut ShumatePathLayer, value: gboolean);
1428    pub fn shumate_path_layer_set_dash(
1429        self_: *mut ShumatePathLayer,
1430        dash_pattern: *mut glib::GList,
1431    );
1432    pub fn shumate_path_layer_set_fill(self_: *mut ShumatePathLayer, value: gboolean);
1433    pub fn shumate_path_layer_set_fill_color(
1434        self_: *mut ShumatePathLayer,
1435        color: *const gdk::GdkRGBA,
1436    );
1437    pub fn shumate_path_layer_set_outline_color(
1438        self_: *mut ShumatePathLayer,
1439        color: *const gdk::GdkRGBA,
1440    );
1441    pub fn shumate_path_layer_set_outline_width(self_: *mut ShumatePathLayer, value: c_double);
1442    pub fn shumate_path_layer_set_stroke(self_: *mut ShumatePathLayer, value: gboolean);
1443    pub fn shumate_path_layer_set_stroke_color(
1444        self_: *mut ShumatePathLayer,
1445        color: *const gdk::GdkRGBA,
1446    );
1447    pub fn shumate_path_layer_set_stroke_width(self_: *mut ShumatePathLayer, value: c_double);
1448
1449    //=========================================================================
1450    // ShumatePoint
1451    //=========================================================================
1452    pub fn shumate_point_get_type() -> GType;
1453    pub fn shumate_point_new() -> *mut ShumatePoint;
1454
1455    //=========================================================================
1456    // ShumateRasterRenderer
1457    //=========================================================================
1458    pub fn shumate_raster_renderer_get_type() -> GType;
1459    pub fn shumate_raster_renderer_new(
1460        data_source: *mut ShumateDataSource,
1461    ) -> *mut ShumateRasterRenderer;
1462    pub fn shumate_raster_renderer_new_from_url(
1463        url_template: *const c_char,
1464    ) -> *mut ShumateRasterRenderer;
1465    pub fn shumate_raster_renderer_new_full(
1466        id: *const c_char,
1467        name: *const c_char,
1468        license: *const c_char,
1469        license_uri: *const c_char,
1470        min_zoom: c_uint,
1471        max_zoom: c_uint,
1472        tile_size: c_uint,
1473        projection: ShumateMapProjection,
1474        data_source: *mut ShumateDataSource,
1475    ) -> *mut ShumateRasterRenderer;
1476    pub fn shumate_raster_renderer_new_full_from_url(
1477        id: *const c_char,
1478        name: *const c_char,
1479        license: *const c_char,
1480        license_uri: *const c_char,
1481        min_zoom: c_uint,
1482        max_zoom: c_uint,
1483        tile_size: c_uint,
1484        projection: ShumateMapProjection,
1485        url_template: *const c_char,
1486    ) -> *mut ShumateRasterRenderer;
1487
1488    //=========================================================================
1489    // ShumateScale
1490    //=========================================================================
1491    pub fn shumate_scale_get_type() -> GType;
1492    pub fn shumate_scale_new(viewport: *mut ShumateViewport) -> *mut ShumateScale;
1493    pub fn shumate_scale_get_max_width(scale: *mut ShumateScale) -> c_uint;
1494    pub fn shumate_scale_get_unit(scale: *mut ShumateScale) -> ShumateUnit;
1495    pub fn shumate_scale_get_viewport(scale: *mut ShumateScale) -> *mut ShumateViewport;
1496    pub fn shumate_scale_set_max_width(scale: *mut ShumateScale, value: c_uint);
1497    pub fn shumate_scale_set_unit(scale: *mut ShumateScale, unit: ShumateUnit);
1498    pub fn shumate_scale_set_viewport(scale: *mut ShumateScale, viewport: *mut ShumateViewport);
1499
1500    //=========================================================================
1501    // ShumateSimpleMap
1502    //=========================================================================
1503    pub fn shumate_simple_map_get_type() -> GType;
1504    pub fn shumate_simple_map_new() -> *mut ShumateSimpleMap;
1505    pub fn shumate_simple_map_add_overlay_layer(
1506        self_: *mut ShumateSimpleMap,
1507        layer: *mut ShumateLayer,
1508    );
1509    pub fn shumate_simple_map_get_compass(self_: *mut ShumateSimpleMap) -> *mut ShumateCompass;
1510    pub fn shumate_simple_map_get_license(self_: *mut ShumateSimpleMap) -> *mut ShumateLicense;
1511    pub fn shumate_simple_map_get_map(self_: *mut ShumateSimpleMap) -> *mut ShumateMap;
1512    pub fn shumate_simple_map_get_map_source(self_: *mut ShumateSimpleMap)
1513        -> *mut ShumateMapSource;
1514    pub fn shumate_simple_map_get_scale(self_: *mut ShumateSimpleMap) -> *mut ShumateScale;
1515    pub fn shumate_simple_map_get_show_zoom_buttons(self_: *mut ShumateSimpleMap) -> gboolean;
1516    pub fn shumate_simple_map_get_viewport(self_: *mut ShumateSimpleMap) -> *mut ShumateViewport;
1517    pub fn shumate_simple_map_insert_overlay_layer(
1518        self_: *mut ShumateSimpleMap,
1519        layer: *mut ShumateLayer,
1520        idx: c_uint,
1521    );
1522    pub fn shumate_simple_map_remove_overlay_layer(
1523        self_: *mut ShumateSimpleMap,
1524        layer: *mut ShumateLayer,
1525    );
1526    pub fn shumate_simple_map_set_map_source(
1527        self_: *mut ShumateSimpleMap,
1528        map_source: *mut ShumateMapSource,
1529    );
1530    pub fn shumate_simple_map_set_show_zoom_buttons(
1531        self_: *mut ShumateSimpleMap,
1532        show_zoom_buttons: gboolean,
1533    );
1534
1535    //=========================================================================
1536    // ShumateSymbolEvent
1537    //=========================================================================
1538    #[cfg(feature = "v1_1")]
1539    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
1540    pub fn shumate_symbol_event_get_type() -> GType;
1541    #[cfg(feature = "v1_1")]
1542    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
1543    pub fn shumate_symbol_event_get_feature_id(self_: *mut ShumateSymbolEvent) -> *const c_char;
1544    #[cfg(feature = "v1_1")]
1545    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
1546    pub fn shumate_symbol_event_get_keys(self_: *mut ShumateSymbolEvent) -> c_char;
1547    #[cfg(feature = "v1_1")]
1548    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
1549    pub fn shumate_symbol_event_get_layer(self_: *mut ShumateSymbolEvent) -> *const c_char;
1550    #[cfg(feature = "v1_1")]
1551    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
1552    pub fn shumate_symbol_event_get_source_layer(self_: *mut ShumateSymbolEvent) -> *const c_char;
1553    #[cfg(feature = "v1_1")]
1554    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
1555    pub fn shumate_symbol_event_get_tag(
1556        self_: *mut ShumateSymbolEvent,
1557        tag_name: *const c_char,
1558    ) -> *const c_char;
1559
1560    //=========================================================================
1561    // ShumateTile
1562    //=========================================================================
1563    pub fn shumate_tile_get_type() -> GType;
1564    pub fn shumate_tile_new() -> *mut ShumateTile;
1565    pub fn shumate_tile_new_full(
1566        x: c_uint,
1567        y: c_uint,
1568        size: c_uint,
1569        zoom_level: c_uint,
1570    ) -> *mut ShumateTile;
1571    pub fn shumate_tile_get_fade_in(self_: *mut ShumateTile) -> gboolean;
1572    pub fn shumate_tile_get_paintable(self_: *mut ShumateTile) -> *mut gdk::GdkPaintable;
1573    #[cfg(feature = "v1_1")]
1574    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
1575    pub fn shumate_tile_get_scale_factor(self_: *mut ShumateTile) -> c_double;
1576    pub fn shumate_tile_get_size(self_: *mut ShumateTile) -> c_uint;
1577    pub fn shumate_tile_get_state(self_: *mut ShumateTile) -> ShumateState;
1578    pub fn shumate_tile_get_x(self_: *mut ShumateTile) -> c_uint;
1579    pub fn shumate_tile_get_y(self_: *mut ShumateTile) -> c_uint;
1580    pub fn shumate_tile_get_zoom_level(self_: *mut ShumateTile) -> c_uint;
1581    pub fn shumate_tile_set_fade_in(self_: *mut ShumateTile, fade_in: gboolean);
1582    pub fn shumate_tile_set_paintable(self_: *mut ShumateTile, paintable: *mut gdk::GdkPaintable);
1583    #[cfg(feature = "v1_1")]
1584    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
1585    pub fn shumate_tile_set_scale_factor(self_: *mut ShumateTile, scale_factor: c_double);
1586    pub fn shumate_tile_set_size(self_: *mut ShumateTile, size: c_uint);
1587    pub fn shumate_tile_set_state(self_: *mut ShumateTile, state: ShumateState);
1588    pub fn shumate_tile_set_x(self_: *mut ShumateTile, x: c_uint);
1589    pub fn shumate_tile_set_y(self_: *mut ShumateTile, y: c_uint);
1590    pub fn shumate_tile_set_zoom_level(self_: *mut ShumateTile, zoom_level: c_uint);
1591
1592    //=========================================================================
1593    // ShumateTileDownloader
1594    //=========================================================================
1595    pub fn shumate_tile_downloader_get_type() -> GType;
1596    pub fn shumate_tile_downloader_new(url_template: *const c_char) -> *mut ShumateTileDownloader;
1597
1598    //=========================================================================
1599    // ShumateVectorReader
1600    //=========================================================================
1601    #[cfg(feature = "v1_2")]
1602    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
1603    pub fn shumate_vector_reader_get_type() -> GType;
1604    #[cfg(feature = "v1_2")]
1605    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
1606    pub fn shumate_vector_reader_new(bytes: *mut glib::GBytes) -> *mut ShumateVectorReader;
1607    #[cfg(feature = "v1_2")]
1608    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
1609    pub fn shumate_vector_reader_iterate(
1610        self_: *mut ShumateVectorReader,
1611    ) -> *mut ShumateVectorReaderIter;
1612
1613    //=========================================================================
1614    // ShumateVectorReaderIter
1615    //=========================================================================
1616    #[cfg(feature = "v1_2")]
1617    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
1618    pub fn shumate_vector_reader_iter_get_type() -> GType;
1619    #[cfg(feature = "v1_2")]
1620    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
1621    pub fn shumate_vector_reader_iter_feature_contains_point(
1622        self_: *mut ShumateVectorReaderIter,
1623        x: c_double,
1624        y: c_double,
1625    ) -> gboolean;
1626    #[cfg(feature = "v1_2")]
1627    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
1628    pub fn shumate_vector_reader_iter_get_feature_geometry_type(
1629        self_: *mut ShumateVectorReaderIter,
1630    ) -> ShumateGeometryType;
1631    #[cfg(feature = "v1_2")]
1632    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
1633    pub fn shumate_vector_reader_iter_get_feature_id(self_: *mut ShumateVectorReaderIter) -> u64;
1634    #[cfg(feature = "v1_2")]
1635    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
1636    pub fn shumate_vector_reader_iter_get_feature_keys(
1637        self_: *mut ShumateVectorReaderIter,
1638    ) -> *mut *const c_char;
1639    #[cfg(feature = "v1_2")]
1640    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
1641    pub fn shumate_vector_reader_iter_get_feature_point(
1642        self_: *mut ShumateVectorReaderIter,
1643        x: *mut c_double,
1644        y: *mut c_double,
1645    ) -> gboolean;
1646    #[cfg(feature = "v1_2")]
1647    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
1648    pub fn shumate_vector_reader_iter_get_feature_tag(
1649        self_: *mut ShumateVectorReaderIter,
1650        key: *const c_char,
1651        value: *mut gobject::GValue,
1652    ) -> gboolean;
1653    #[cfg(feature = "v1_2")]
1654    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
1655    pub fn shumate_vector_reader_iter_get_layer_count(
1656        self_: *mut ShumateVectorReaderIter,
1657    ) -> c_uint;
1658    #[cfg(feature = "v1_2")]
1659    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
1660    pub fn shumate_vector_reader_iter_get_layer_extent(
1661        self_: *mut ShumateVectorReaderIter,
1662    ) -> c_uint;
1663    #[cfg(feature = "v1_2")]
1664    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
1665    pub fn shumate_vector_reader_iter_get_layer_feature_count(
1666        self_: *mut ShumateVectorReaderIter,
1667    ) -> c_uint;
1668    #[cfg(feature = "v1_2")]
1669    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
1670    pub fn shumate_vector_reader_iter_get_layer_name(
1671        self_: *mut ShumateVectorReaderIter,
1672    ) -> *const c_char;
1673    #[cfg(feature = "v1_2")]
1674    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
1675    pub fn shumate_vector_reader_iter_get_reader(
1676        self_: *mut ShumateVectorReaderIter,
1677    ) -> *mut ShumateVectorReader;
1678    #[cfg(feature = "v1_2")]
1679    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
1680    pub fn shumate_vector_reader_iter_next_feature(self_: *mut ShumateVectorReaderIter)
1681        -> gboolean;
1682    #[cfg(feature = "v1_2")]
1683    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
1684    pub fn shumate_vector_reader_iter_read_feature(
1685        self_: *mut ShumateVectorReaderIter,
1686        index: c_int,
1687    );
1688    #[cfg(feature = "v1_2")]
1689    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
1690    pub fn shumate_vector_reader_iter_read_layer(self_: *mut ShumateVectorReaderIter, index: c_int);
1691    #[cfg(feature = "v1_2")]
1692    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
1693    pub fn shumate_vector_reader_iter_read_layer_by_name(
1694        self_: *mut ShumateVectorReaderIter,
1695        name: *const c_char,
1696    ) -> gboolean;
1697
1698    //=========================================================================
1699    // ShumateVectorRenderer
1700    //=========================================================================
1701    pub fn shumate_vector_renderer_get_type() -> GType;
1702    pub fn shumate_vector_renderer_new(
1703        id: *const c_char,
1704        style_json: *const c_char,
1705        error: *mut *mut glib::GError,
1706    ) -> *mut ShumateVectorRenderer;
1707    pub fn shumate_vector_renderer_is_supported() -> gboolean;
1708    #[cfg(feature = "v1_1")]
1709    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
1710    pub fn shumate_vector_renderer_get_sprite_sheet(
1711        self_: *mut ShumateVectorRenderer,
1712    ) -> *mut ShumateVectorSpriteSheet;
1713    #[cfg(feature = "v1_2")]
1714    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
1715    pub fn shumate_vector_renderer_set_data_source(
1716        self_: *mut ShumateVectorRenderer,
1717        name: *const c_char,
1718        data_source: *mut ShumateDataSource,
1719    );
1720    #[cfg(feature = "v1_1")]
1721    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
1722    pub fn shumate_vector_renderer_set_sprite_sheet(
1723        self_: *mut ShumateVectorRenderer,
1724        sprites: *mut ShumateVectorSpriteSheet,
1725    );
1726    pub fn shumate_vector_renderer_set_sprite_sheet_data(
1727        self_: *mut ShumateVectorRenderer,
1728        sprites_pixbuf: *mut gdk_pixbuf::GdkPixbuf,
1729        sprites_json: *const c_char,
1730        error: *mut *mut glib::GError,
1731    ) -> gboolean;
1732
1733    //=========================================================================
1734    // ShumateVectorSprite
1735    //=========================================================================
1736    #[cfg(feature = "v1_1")]
1737    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
1738    pub fn shumate_vector_sprite_get_type() -> GType;
1739    #[cfg(feature = "v1_1")]
1740    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
1741    pub fn shumate_vector_sprite_new(
1742        source_paintable: *mut gdk::GdkPaintable,
1743    ) -> *mut ShumateVectorSprite;
1744    #[cfg(feature = "v1_1")]
1745    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
1746    pub fn shumate_vector_sprite_new_full(
1747        source_paintable: *mut gdk::GdkPaintable,
1748        width: c_int,
1749        height: c_int,
1750        scale_factor: c_double,
1751        source_rect: *mut gdk::GdkRectangle,
1752    ) -> *mut ShumateVectorSprite;
1753    #[cfg(feature = "v1_1")]
1754    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
1755    pub fn shumate_vector_sprite_get_height(self_: *mut ShumateVectorSprite) -> c_int;
1756    #[cfg(feature = "v1_1")]
1757    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
1758    pub fn shumate_vector_sprite_get_scale_factor(self_: *mut ShumateVectorSprite) -> c_double;
1759    #[cfg(feature = "v1_1")]
1760    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
1761    pub fn shumate_vector_sprite_get_source_paintable(
1762        self_: *mut ShumateVectorSprite,
1763    ) -> *mut gdk::GdkPaintable;
1764    #[cfg(feature = "v1_1")]
1765    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
1766    pub fn shumate_vector_sprite_get_source_rect(
1767        self_: *mut ShumateVectorSprite,
1768    ) -> *mut gdk::GdkRectangle;
1769    #[cfg(feature = "v1_1")]
1770    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
1771    pub fn shumate_vector_sprite_get_width(self_: *mut ShumateVectorSprite) -> c_int;
1772
1773    //=========================================================================
1774    // ShumateVectorSpriteSheet
1775    //=========================================================================
1776    #[cfg(feature = "v1_1")]
1777    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
1778    pub fn shumate_vector_sprite_sheet_get_type() -> GType;
1779    #[cfg(feature = "v1_1")]
1780    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
1781    pub fn shumate_vector_sprite_sheet_new() -> *mut ShumateVectorSpriteSheet;
1782    #[cfg(feature = "v1_1")]
1783    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
1784    pub fn shumate_vector_sprite_sheet_add_page(
1785        self_: *mut ShumateVectorSpriteSheet,
1786        texture: *mut gdk::GdkTexture,
1787        json: *const c_char,
1788        default_scale: c_double,
1789        error: *mut *mut glib::GError,
1790    ) -> gboolean;
1791    #[cfg(feature = "v1_1")]
1792    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
1793    pub fn shumate_vector_sprite_sheet_add_sprite(
1794        self_: *mut ShumateVectorSpriteSheet,
1795        name: *const c_char,
1796        sprite: *mut ShumateVectorSprite,
1797    );
1798    #[cfg(feature = "v1_1")]
1799    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
1800    pub fn shumate_vector_sprite_sheet_get_sprite(
1801        self_: *mut ShumateVectorSpriteSheet,
1802        name: *const c_char,
1803        scale: c_double,
1804    ) -> *mut ShumateVectorSprite;
1805    #[cfg(feature = "v1_1")]
1806    #[cfg_attr(docsrs, doc(cfg(feature = "v1_1")))]
1807    pub fn shumate_vector_sprite_sheet_set_fallback(
1808        self_: *mut ShumateVectorSpriteSheet,
1809        fallback: ShumateVectorSpriteFallbackFunc,
1810        user_data: gpointer,
1811        notify: glib::GDestroyNotify,
1812    );
1813
1814    //=========================================================================
1815    // ShumateViewport
1816    //=========================================================================
1817    pub fn shumate_viewport_get_type() -> GType;
1818    pub fn shumate_viewport_new() -> *mut ShumateViewport;
1819    pub fn shumate_viewport_get_max_zoom_level(self_: *mut ShumateViewport) -> c_uint;
1820    pub fn shumate_viewport_get_min_zoom_level(self_: *mut ShumateViewport) -> c_uint;
1821    pub fn shumate_viewport_get_reference_map_source(
1822        self_: *mut ShumateViewport,
1823    ) -> *mut ShumateMapSource;
1824    pub fn shumate_viewport_get_rotation(self_: *mut ShumateViewport) -> c_double;
1825    pub fn shumate_viewport_get_zoom_level(self_: *mut ShumateViewport) -> c_double;
1826    pub fn shumate_viewport_location_to_widget_coords(
1827        self_: *mut ShumateViewport,
1828        widget: *mut gtk::GtkWidget,
1829        latitude: c_double,
1830        longitude: c_double,
1831        x: *mut c_double,
1832        y: *mut c_double,
1833    );
1834    pub fn shumate_viewport_set_max_zoom_level(self_: *mut ShumateViewport, max_zoom_level: c_uint);
1835    pub fn shumate_viewport_set_min_zoom_level(self_: *mut ShumateViewport, min_zoom_level: c_uint);
1836    pub fn shumate_viewport_set_reference_map_source(
1837        self_: *mut ShumateViewport,
1838        map_source: *mut ShumateMapSource,
1839    );
1840    pub fn shumate_viewport_set_rotation(self_: *mut ShumateViewport, rotation: c_double);
1841    pub fn shumate_viewport_set_zoom_level(self_: *mut ShumateViewport, zoom_level: c_double);
1842    pub fn shumate_viewport_widget_coords_to_location(
1843        self_: *mut ShumateViewport,
1844        widget: *mut gtk::GtkWidget,
1845        x: c_double,
1846        y: c_double,
1847        latitude: *mut c_double,
1848        longitude: *mut c_double,
1849    );
1850
1851    //=========================================================================
1852    // ShumateLocation
1853    //=========================================================================
1854    pub fn shumate_location_get_type() -> GType;
1855    #[cfg(feature = "v1_2")]
1856    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
1857    pub fn shumate_location_distance(
1858        self_: *mut ShumateLocation,
1859        other: *mut ShumateLocation,
1860    ) -> c_double;
1861    pub fn shumate_location_get_latitude(location: *mut ShumateLocation) -> c_double;
1862    pub fn shumate_location_get_longitude(location: *mut ShumateLocation) -> c_double;
1863    pub fn shumate_location_set_location(
1864        location: *mut ShumateLocation,
1865        latitude: c_double,
1866        longitude: c_double,
1867    );
1868
1869    //=========================================================================
1870    // Other functions
1871    //=========================================================================
1872    pub fn shumate_get_user_agent() -> *const c_char;
1873    pub fn shumate_set_user_agent(new_user_agent: *const c_char);
1874
1875}