This file is indexed.

/usr/share/vala/vapi/plank.vapi is in libplank-dev 0.11.1-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
/* plank.vapi generated by valac 0.30.1, do not modify. */

namespace Plank {
	[CCode (cheader_filename = "plank.h")]
	public abstract class AbstractMain : Gtk.Application {
		public AbstractMain ();
		public override void activate ();
		public override int command_line (GLib.ApplicationCommandLine command_line);
		protected virtual void create_actions ();
		protected virtual void create_docks ();
		public override int handle_local_options (GLib.VariantDict options);
		protected virtual void initialize ();
		public bool is_launcher_for_dock (string launcher);
		public override void startup ();
		public string[] about_artists { get; set construct; }
		public string[] about_authors { get; set construct; }
		public string[] about_documenters { get; set construct; }
		public Gtk.License about_license_type { get; set construct; }
		public string about_translators { get; set construct; }
		public string app_copyright { get; construct; }
		public string app_dbus { get; construct; }
		public string app_icon { get; construct; }
		public string app_launcher { get; construct; }
		public string build_data_dir { get; construct; }
		public string build_pkg_data_dir { get; construct; }
		public string build_release_name { get; construct; }
		public string build_version { get; construct; }
		public string build_version_info { get; construct; }
		public string exec_name { get; construct; }
		public string help_url { get; set construct; }
		public string main_url { get; set construct; }
		public string program_name { get; construct; }
		public string translate_url { get; set construct; }
	}
	[CCode (cheader_filename = "plank.h")]
	public class ApplicationDockItem : Plank.DockItem {
		public ApplicationDockItem ();
		public override bool accept_drop (Gee.ArrayList<string> uris);
		public override bool can_accept_drop (Gee.ArrayList<string> uris);
		public override string get_drop_text ();
		public override Gee.ArrayList<Gtk.MenuItem> get_menu_items ();
		public unowned string? get_unity_application_uri ();
		public unowned string? get_unity_dbusname ();
		public bool has_unity_info ();
		public bool is_running ();
		public bool is_window ();
		protected override void load_from_launcher ();
		protected override Plank.AnimationType on_clicked (Plank.PopupButton button, Gdk.ModifierType mod, uint32 event_time);
		protected override Plank.AnimationType on_scrolled (Gdk.ScrollDirection direction, Gdk.ModifierType mod, uint32 event_time);
		public static void parse_launcher (string launcher, out string icon, out string text, Gee.ArrayList<string>? actions = null, Gee.Map<string,string>? actions_map = null, Gee.ArrayList<string>? mimes = null);
		public void set_urgent (bool is_urgent);
		public void unity_reset ();
		public void unity_update (string sender_name, GLib.VariantIter prop_iter);
		public ApplicationDockItem.with_dockitem_file (GLib.File file);
		public ApplicationDockItem.with_dockitem_filename (string filename);
		public Bamf.Application? App { internal get; internal set construct; }
		public signal void app_closed ();
		public signal void app_window_added ();
		public signal void app_window_removed ();
		public signal void pin_launcher ();
	}
	[CCode (cheader_filename = "plank.h")]
	public class ApplicationDockItemProvider : Plank.DockItemProvider, Plank.UnityClient {
		public ApplicationDockItemProvider (GLib.File launchers_dir);
		public override bool add_item_with_uri (string uri, Plank.DockItem? target = null);
		protected virtual void app_opened (Bamf.Application app);
		protected override void connect_element (Plank.DockElement element);
		protected void delay_items_monitor ();
		protected override void disconnect_element (Plank.DockElement element);
		public override string[] get_dockitem_filenames ();
		protected unowned Plank.ApplicationDockItem? item_for_application (Bamf.Application app);
		public override void prepare ();
		protected void resume_items_monitor ();
		public GLib.File LaunchersDir { get; construct; }
		public signal void item_window_added (Plank.ApplicationDockItem item);
	}
	[CCode (cheader_filename = "plank.h")]
	public class CompositedWindow : Gtk.Window {
		public CompositedWindow ();
		public override bool draw (Cairo.Context cr);
		public CompositedWindow.with_type (Gtk.WindowType window_type);
	}
	[CCode (cheader_filename = "plank.h")]
	public class DBusClient : GLib.Object {
		public bool add_item (string uri);
		public static unowned Plank.DBusClient get_instance ();
		public int get_items_count ();
		public unowned string[]? get_persistent_applications ();
		public unowned string[]? get_transient_applications ();
		public bool remove_item (string uri);
		public bool is_connected { get; }
		public signal void proxy_changed ();
	}
	[CCode (cheader_filename = "plank.h")]
	public class DBusManager : GLib.Object {
		public DBusManager (Plank.DockController controller);
		public Plank.DockController controller { private get; construct; }
	}
	[CCode (cheader_filename = "plank.h")]
	public class DefaultApplicationDockItemProvider : Plank.ApplicationDockItemProvider {
		public DefaultApplicationDockItemProvider (Plank.DockPreferences prefs, GLib.File launchers_dir);
		protected override void app_opened (Bamf.Application app);
		protected override void connect_element (Plank.DockElement element);
		protected override void disconnect_element (Plank.DockElement element);
		protected override void handle_item_deleted (Plank.DockItem item);
		public void pin_item (Plank.DockItem item);
		public override void prepare ();
		protected override void update_visible_elements ();
		public Plank.DockPreferences Prefs { get; construct; }
	}
	[CCode (cheader_filename = "plank.h")]
	public abstract class DockContainer : Plank.DockElement {
		protected Gee.ArrayList<Plank.DockElement> internal_elements;
		protected static Plank.PlaceholderDockItem placeholder_item;
		protected Gee.ArrayList<Plank.DockElement> visible_elements;
		public DockContainer ();
		public bool add (Plank.DockElement element, Plank.DockElement? target = null);
		public bool add_all (Gee.ArrayList<Plank.DockElement> elements);
		public bool clear ();
		protected abstract void connect_element (Plank.DockElement element);
		protected abstract void disconnect_element (Plank.DockElement element);
		protected static void move_element (Gee.List<Plank.DockElement> elements, int from, int to, Gee.List<weak Plank.DockElement>? moved = null);
		public virtual bool move_to (Plank.DockElement move, Plank.DockElement target);
		public virtual void prepare ();
		public void prepend (Plank.DockElement element);
		public bool remove (Plank.DockElement element);
		public bool remove_all (Gee.ArrayList<Plank.DockElement> elements);
		public virtual bool replace (Plank.DockElement new_element, Plank.DockElement old_element);
		public override void reset_buffers ();
		protected virtual void update_visible_elements ();
		public Gee.ArrayList<Plank.DockElement> Elements { get; }
		public Gee.ArrayList<Plank.DockElement> VisibleElements { get; }
		public signal void elements_changed (Gee.List<Plank.DockElement> added, Gee.List<Plank.DockElement> removed);
		public signal void positions_changed (Gee.List<weak Plank.DockElement> elements);
		public signal void states_changed ();
	}
	[CCode (cheader_filename = "plank.h")]
	public class DockController : Plank.DockContainer {
		public DockController (string dock_name, GLib.File config_folder);
		public void add_default_provider ();
		protected override void connect_element (Plank.DockElement element);
		protected override void disconnect_element (Plank.DockElement element);
		public void initialize ();
		protected override void update_visible_elements ();
		public Gee.ArrayList<weak Plank.DockItem> Items { get; }
		public Gee.ArrayList<weak Plank.DockItem> VisibleItems { get; }
		public GLib.File config_folder { get; construct; }
		public Plank.DockItemProvider? default_provider { get; private set; }
		public Plank.DragManager drag_manager { get; protected set; }
		public Plank.HideManager hide_manager { get; protected set; }
		public Plank.HoverWindow hover { get; protected set; }
		public GLib.File launchers_folder { get; private set; }
		public string name { get; construct; }
		public Plank.PositionManager position_manager { get; protected set; }
		public Plank.DockPreferences prefs { get; construct; }
		public Plank.DockRenderer renderer { get; protected set; }
		public Plank.DockWindow window { get; protected set; }
	}
	[CCode (cheader_filename = "plank.h")]
	public abstract class DockElement : GLib.Object {
		public DockElement ();
		public virtual bool accept_drop (Gee.ArrayList<string> uris);
		public string as_uri ();
		public virtual bool can_accept_drop (Gee.ArrayList<string> uris);
		public virtual bool can_be_removed ();
		public void clicked (Plank.PopupButton button, Gdk.ModifierType mod, uint32 event_time);
		protected static Gtk.MenuItem create_menu_item (string title, string? icon = null, bool force_show_icon = false);
		protected static Gtk.MenuItem create_menu_item_with_pixbuf (string title, owned Gdk.Pixbuf pixbuf, bool force_show_icon = false);
		public unowned Plank.DockController? get_dock ();
		public virtual string get_drop_text ();
		public virtual Gee.ArrayList<Gtk.MenuItem> get_menu_items ();
		public void hovered ();
		protected virtual Plank.AnimationType on_clicked (Plank.PopupButton button, Gdk.ModifierType mod, uint32 event_time);
		protected virtual Plank.AnimationType on_hovered ();
		protected virtual Plank.AnimationType on_scrolled (Gdk.ScrollDirection direction, Gdk.ModifierType mod, uint32 event_time);
		public abstract void reset_buffers ();
		public void scrolled (Gdk.ScrollDirection direction, Gdk.ModifierType mod, uint32 event_time);
		public virtual string unique_id ();
		public int64 AddTime { get; set; }
		public Plank.PopupButton Button { get; protected set; }
		public Plank.AnimationType ClickedAnimation { get; protected set; }
		public Plank.DockContainer? Container { get; set; }
		public Plank.AnimationType HoveredAnimation { get; protected set; }
		public bool IsAttached { get; set; }
		public bool IsVisible { get; set; }
		public int64 LastActive { get; protected set; }
		public int64 LastClicked { get; protected set; }
		public int64 LastHovered { get; protected set; }
		public int64 LastMove { get; protected set; }
		public int64 LastScrolled { get; protected set; }
		public int64 LastUrgent { get; protected set; }
		public int64 LastValid { get; protected set; }
		public int64 RemoveTime { get; set; }
		public Plank.AnimationType ScrolledAnimation { get; protected set; }
		public string Text { get; set; }
		public signal void needs_redraw ();
	}
	[CCode (cheader_filename = "plank.h")]
	public abstract class DockItem : Plank.DockElement {
		public DockItem ();
		public void copy_values_to (Plank.DockItem target);
		public void @delete ();
		protected virtual void draw_icon (Plank.Surface surface);
		protected virtual void draw_icon_fast (Plank.Surface surface);
		public Plank.Surface? get_background_surface (int width, int height, Plank.Surface model, Plank.DrawDataFunc<Plank.DockItem>? draw_data_func);
		public Plank.Surface? get_foreground_surface (int width, int height, Plank.Surface model, Plank.DrawDataFunc<Plank.DockItem>? draw_data_func);
		public Plank.Surface get_surface (int width, int height, Plank.Surface model);
		public Plank.Surface get_surface_copy (int width, int height, Plank.Surface model);
		public virtual bool is_valid ();
		protected virtual void load_from_launcher ();
		public override void reset_buffers ();
		protected void reset_icon_buffer ();
		public void unset_move_state ();
		public Plank.Color AverageIconColor { get; protected set; }
		public int64 Count { get; set; }
		public bool CountVisible { get; set; }
		public string DockItemFilename { owned get; }
		protected Gdk.Pixbuf? ForcePixbuf { get; set; }
		public string Icon { get; set; }
		public Plank.IndicatorState Indicator { get; protected set; }
		public int LastPosition { get; protected set; }
		public string Launcher { get; }
		public int Position { get; set; }
		public Plank.DockItemPreferences Prefs { get; construct; }
		public double Progress { get; set; }
		public bool ProgressVisible { get; set; }
		public Plank.ItemState State { get; protected set; }
		public signal void deleted ();
	}
	[CCode (cheader_filename = "plank.h")]
	public class DockItemDrawValue {
		public Gdk.Rectangle background_region;
		public Plank.PointD center;
		public double darken;
		public Gdk.Rectangle draw_region;
		public Gdk.Rectangle hover_region;
		public double icon_size;
		public double lighten;
		public double opacity;
		public bool show_indicator;
		public Plank.PointD static_center;
		public double zoom;
		public DockItemDrawValue ();
		public void move_in (Gtk.PositionType position, double damount);
		public void move_right (Gtk.PositionType position, double damount);
	}
	[CCode (cheader_filename = "plank.h")]
	public class DockItemPreferences : Plank.Preferences {
		public DockItemPreferences ();
		public override void reset_properties ();
		protected override void verify (string prop);
		public DockItemPreferences.with_file (GLib.File file);
		public DockItemPreferences.with_filename (string filename);
		public DockItemPreferences.with_launcher (string launcher);
		[Description (blurb = "The uri for this item.", nick = "launcher")]
		public string Launcher { get; set; }
	}
	[CCode (cheader_filename = "plank.h")]
	public class DockItemProvider : Plank.DockContainer {
		public DockItemProvider ();
		public override bool accept_drop (Gee.ArrayList<string> uris);
		public virtual bool add_item_with_uri (string uri, Plank.DockItem? target = null);
		public override bool can_accept_drop (Gee.ArrayList<string> uris);
		protected override void connect_element (Plank.DockElement element);
		protected override void disconnect_element (Plank.DockElement element);
		public virtual string[] get_dockitem_filenames ();
		protected virtual void handle_item_deleted (Plank.DockItem item);
		public virtual bool item_exists_for_uri (string uri);
		public virtual unowned Plank.DockItem? item_for_uri (string uri);
	}
	[CCode (cheader_filename = "plank.h")]
	public class DockPreferences : Plank.Settings {
		public const int MAX_ICON_SIZE;
		public const int MAX_ICON_ZOOM;
		public const int MIN_ICON_SIZE;
		public const int MIN_ICON_ZOOM;
		public DockPreferences (string name);
		public void decrease_icon_size ();
		public void increase_icon_size ();
		public bool is_horizontal_dock ();
		protected override void verify (string prop);
		[Description (blurb = "The alignment for the dock on the monitor's edge.  If 0, panel-mode.  If 1, left-aligned.  If 2, right-aligned.  If 3, centered.", nick = "alignment")]
		public Gtk.Align Alignment { get; set; }
		[Description (blurb = "Whether to automatically pin an application if it seems useful to do.", nick = "auto-pinning")]
		public bool AutoPinning { get; set; }
		[Description (blurb = "Whether to show only windows of the current workspace.", nick = "current-workspace-only")]
		public bool CurrentWorkspaceOnly { get; set; }
		[Description (blurb = "Array of the dockitem-files on this dock. DO NOT MODIFY", nick = "dock-items")]
		public string[] DockItems { get; set; }
		[Description (blurb = "Time (in ms) to wait before hiding the dock.", nick = "hide-delay")]
		public uint HideDelay { get; set; }
		[Description (blurb = "If 0, the dock won't hide.  If 1, the dock intelligently hides.  If 2, the dock auto-hides. If 3, the dock dodges active maximized windows. If 4, the dock dodges every window.", nick = "hide-mode")]
		public Plank.HideType HideMode { get; set; }
		[Description (blurb = "The size of dock icons (in pixels).", nick = "icon-size")]
		public int IconSize { get; set; }
		[Description (blurb = "The alignment of the items in this dock if panel-mode is used.  If 1, left-aligned.  If 2, right-aligned.  If 3, centered.", nick = "items-alignment")]
		public Gtk.Align ItemsAlignment { get; set; }
		[Description (blurb = "Whether to prevent drag'n'drop actions and lock items on the dock.", nick = "lock-items")]
		public bool LockItems { get; set; }
		[Description (blurb = "The plug-name of the monitor for the dock to show on (e.g. DVI-I-1, HDMI1, LVDS1). Leave this empty to keep on the primary monitor.", nick = "monitor")]
		public string Monitor { get; set; }
		[Description (blurb = "The dock's position offset from center (in percent).", nick = "offset")]
		public int Offset { get; set; }
		[Description (blurb = "Whether to show only pinned applications. Useful for running more then one dock.", nick = "pinned-only")]
		public bool PinnedOnly { get; set; }
		[Description (blurb = "The position for the dock on the monitor.  If 0, left.  If 1, right.  If 2, top.  If 3, bottom.", nick = "position")]
		public Gtk.PositionType Position { get; set; }
		[Description (blurb = "Whether to use pressure-based revealing of the dock if the support is available.", nick = "pressure-reveal")]
		public bool PressureReveal { get; set; }
		[Description (blurb = "Whether to show the item for the dock itself.", nick = "show-dock-item")]
		public bool ShowDockItem { get; set; }
		[Description (blurb = "The name of the dock's theme to use.", nick = "theme")]
		public string Theme { get; set; }
		[Description (blurb = "Whether to show tooltips when items are hovered.", nick = "tooltips-enabled")]
		public bool TooltipsEnabled { get; set; }
		[Description (blurb = "Time (in ms) to wait before unhiding the dock.", nick = "unhide-delay")]
		public uint UnhideDelay { get; set; }
		[Description (blurb = "Whether the dock will zoom when hovered.", nick = "zoom-enabled")]
		public bool ZoomEnabled { get; set; }
		[Description (blurb = "The dock's icon-zoom (in percent).", nick = "zoom-percent")]
		public uint ZoomPercent { get; set; }
	}
	[CCode (cheader_filename = "plank.h")]
	public class DockRenderer : Plank.Renderer {
		public DockRenderer (Plank.DockController controller, Gtk.Window window);
		public void animate_items (Gee.List<Plank.DockElement> elements);
		protected override bool animation_needed (int64 frame_time);
		public override void draw (Cairo.Context cr, int64 frame_time);
		public void initialize ();
		protected override void initialize_frame (int64 frame_time);
		public void reset_buffers ();
		public void update_local_cursor (int x, int y);
		public Plank.DockController controller { private get; construct; }
		[CCode (notify = false)]
		public double hide_progress { get; private set; }
		[CCode (notify = false)]
		public Gdk.Point local_cursor { get; private set; }
		public Plank.DockTheme theme { get; private set; }
		[CCode (notify = false)]
		public double zoom_in_progress { get; private set; }
	}
	[CCode (cheader_filename = "plank.h")]
	public class DockTheme : Plank.Theme {
		public DockTheme (string name);
		public Plank.Surface create_background (int width, int height, Gtk.PositionType position, Plank.Surface model);
		public Plank.Surface create_indicator (int size, Plank.Color color, Plank.Surface model);
		public Plank.Surface create_urgent_glow (int size, Plank.Color color, Plank.Surface model);
		public void draw_active_glow (Plank.Surface surface, Gdk.Rectangle clip_rect, Gdk.Rectangle rect, Plank.Color color, double opacity, Gtk.PositionType pos);
		public void draw_item_count (Plank.Surface surface, int icon_size, Plank.Color color, int64 count);
		public void draw_item_progress (Plank.Surface surface, int icon_size, Plank.Color color, double progress);
		protected override void reset_properties ();
		protected override void verify (string prop);
		[Description (blurb = "The amount of time (in ms) for active window indicator animations.", nick = "active-time")]
		public int ActiveTime { get; set; }
		[Description (blurb = "The padding on the bottom dock edge, in tenths of a percent of IconSize.", nick = "bottom-padding")]
		public double BottomPadding { get; set; }
		[Description (blurb = "Whether background and icons will unhide/hide with different speeds. The top-border of both will leave/hit the screen-edge at the same time.", nick = "cascade-hide")]
		public bool CascadeHide { get; set; }
		[Description (blurb = "The amount of time (in ms) for click animations.", nick = "click-time")]
		public int ClickTime { get; set; }
		[Description (blurb = "The opacity value (0 to 1) to fade the dock to when hiding it.", nick = "fade-opacity")]
		public double FadeOpacity { get; set; }
		[Description (blurb = "The time (in ms) to fade the dock in/out on a hide (if FadeOpacity is < 1).", nick = "fade-time")]
		public int FadeTime { get; set; }
		[Description (blurb = "The time (in ms) of each pulse of the hidden-dock urgent glow.", nick = "glow-pulse-time")]
		public int GlowPulseTime { get; set; }
		[Description (blurb = "The size of the urgent glow (shown when dock is hidden), in tenths of a percent of IconSize.", nick = "glow-size")]
		public int GlowSize { get; set; }
		[Description (blurb = "The total time (in ms) to show the hidden-dock urgent glow.", nick = "glow-time")]
		public int GlowTime { get; set; }
		[Description (blurb = "The time (in ms) to slide the dock in/out on a hide (if FadeOpacity is 1).", nick = "hide-time")]
		public int HideTime { get; set; }
		[Description (blurb = "The padding on the left/right dock edges, in tenths of a percent of IconSize.", nick = "horizontal-padding")]
		public double HorizPadding { get; set; }
		[Description (blurb = "The size of the icon-shadow behind every item, in tenths of a percent of IconSize.", nick = "icon-shadow-size")]
		public double IconShadowSize { get; set; }
		[Description (blurb = "The size of item indicators, in tenths of a percent of IconSize.", nick = "indicator-size")]
		public double IndicatorSize { get; set; }
		[Description (blurb = "The time (in ms) to move an item to its new position or its addition/removal to/from the dock.", nick = "item-move-time")]
		public int ItemMoveTime { get; set; }
		[Description (blurb = "The padding between items on the dock, in tenths of a percent of IconSize.", nick = "item-padding")]
		public double ItemPadding { get; set; }
		[Description (blurb = "The height (in percent of IconSize) to bounce an icon when launching an application.", nick = "launch-bounce")]
		public double LaunchBounceHeight { get; set; }
		[Description (blurb = "The amount of time (in ms) to bounce an icon when launching an application.", nick = "launch-bounce-time")]
		public int LaunchBounceTime { get; set; }
		[Description (blurb = "The amount of time (in ms) to slide icons into/out of the dock.", nick = "slide-time")]
		public int SlideTime { get; set; }
		[Description (blurb = "The padding on the top dock edge, in tenths of a percent of IconSize.", nick = "top-padding")]
		public double TopPadding { get; set; }
		[Description (blurb = "The height (in percent of IconSize) to bounce an icon when the application sets urgent.", nick = "urgent-bounce")]
		public double UrgentBounceHeight { get; set; }
		[Description (blurb = "The amount of time (in ms) to bounce an urgent icon.", nick = "urgent-bounce-time")]
		public int UrgentBounceTime { get; set; }
		[Description (blurb = "The hue-shift (-180 to 180) of the urgent indicator color.", nick = "urgent-hue-shift")]
		public int UrgentHueShift { get; set; }
	}
	[CCode (cheader_filename = "plank.h")]
	public class DockWindow : Plank.CompositedWindow {
		public DockWindow (Plank.DockController controller);
		public override bool button_press_event (Gdk.EventButton event);
		public override bool button_release_event (Gdk.EventButton event);
		public override bool configure_event (Gdk.EventConfigure event);
		public override void drag_begin (Gdk.DragContext context);
		public override bool draw (Cairo.Context cr);
		public override bool enter_notify_event (Gdk.EventCrossing event);
		public override bool leave_notify_event (Gdk.EventCrossing event);
		public override bool map_event (Gdk.EventAny event);
		public bool menu_is_visible ();
		public override bool motion_notify_event (Gdk.EventMotion event);
		public override bool scroll_event (Gdk.EventScroll event);
		public bool update_hovered (int x, int y);
		public void update_icon_region (Plank.ApplicationDockItem appitem);
		public void update_icon_regions ();
		public void update_size_and_position ();
		public Plank.DockItem? HoveredItem { get; private set; }
		public Plank.DockItemProvider? HoveredItemProvider { get; private set; }
		public Plank.DockController controller { private get; construct; }
	}
	[CCode (cheader_filename = "plank.h")]
	public abstract class DockletItem : Plank.DockItem {
		public DockletItem ();
		public override bool is_valid ();
	}
	[CCode (cheader_filename = "plank.h")]
	public class DockletManager : GLib.Object {
		public static unowned Plank.DockletManager get_default ();
		public Plank.Docklet? get_docklet_by_id (string id);
		public Plank.Docklet? get_docklet_by_uri (string uri);
		public Gee.Collection<Plank.Docklet> list_docklets ();
		public void load_docklets ();
		public void register_docklet (GLib.Type type);
		public signal void docklet_added (Plank.Docklet docklet);
	}
	[CCode (cheader_filename = "plank.h")]
	public class DragManager : GLib.Object {
		public DragManager (Plank.DockController controller);
		public bool drop_is_accepted_by (Plank.DockItem item);
		public void ensure_proxy ();
		public void initialize ();
		public Plank.DockItem? DragItem { get; private set; }
		public bool DragNeedsCheck { get; private set; }
		public bool ExternalDragActive { get; private set; }
		public bool InternalDragActive { get; private set; }
		public bool RepositionMode { get; private set; }
		public Plank.DockController controller { private get; construct; }
	}
	[CCode (cheader_filename = "plank.h")]
	public class DrawingService : GLib.Object {
		public static Gdk.Pixbuf ar_scale (Gdk.Pixbuf source, int width, int height);
		public static Plank.Color average_color (Gdk.Pixbuf source);
		public static string? get_icon_from_file (GLib.File file);
		public static string? get_icon_from_gicon (GLib.Icon? icon);
		public static unowned Gtk.IconTheme get_icon_theme ();
		public static Gdk.Pixbuf load_icon (string names, int width, int height);
		public static Cairo.Surface? load_icon_for_scale (string names, int width, int height, int scale);
		public static GLib.File? try_get_icon_file (string name);
	}
	[CCode (cheader_filename = "plank.h")]
	public class Factory : GLib.Object {
		public static Plank.ItemFactory item_factory;
		public static Plank.AbstractMain main;
		public Factory ();
		public static void init (Plank.AbstractMain main_class, Plank.ItemFactory item);
	}
	[CCode (cheader_filename = "plank.h")]
	public class FileDockItem : Plank.DockItem {
		public FileDockItem ();
		protected override void draw_icon (Plank.Surface surface);
		protected override void draw_icon_fast (Plank.Surface surface);
		public override Gee.ArrayList<Gtk.MenuItem> get_menu_items ();
		public void launch ();
		protected override void load_from_launcher ();
		protected override Plank.AnimationType on_clicked (Plank.PopupButton button, Gdk.ModifierType mod, uint32 event_time);
		public FileDockItem.with_dockitem_file (GLib.File file);
		public FileDockItem.with_dockitem_filename (string filename);
		public FileDockItem.with_file (GLib.File file);
		public GLib.File OwnedFile { get; protected set construct; }
	}
	[CCode (cheader_filename = "plank.h")]
	public class HideManager : GLib.Object {
		public HideManager (Plank.DockController controller);
		public void initialize ();
		public void update_barrier ();
		public void update_hovered ();
		public void update_hovered_with_coords (int x, int y);
		public bool Disabled { get; private set; }
		public bool Hidden { get; private set; }
		public bool Hovered { get; private set; }
		public Plank.DockController controller { private get; construct; }
	}
	[CCode (cheader_filename = "plank.h")]
	public class HoverWindow : Gtk.Window {
		public HoverWindow ();
		public override bool draw (Cairo.Context cr);
		public void set_text (string text);
		public void show_at (int x, int y, Gtk.PositionType position);
	}
	[CCode (cheader_filename = "plank.h")]
	public class ItemFactory : GLib.Object {
		public GLib.File launchers_dir;
		public ItemFactory ();
		protected Plank.DockElement default_make_element (GLib.File file, string launcher);
		public virtual Plank.DockItem get_item_for_dock ();
		protected string get_launcher_from_dockitem (GLib.File file);
		public Gee.ArrayList<Plank.DockElement> load_elements (GLib.File source_dir, string[]? ordering = null);
		public void make_default_items ();
		public GLib.File? make_dock_item (string uri, GLib.File? target_dir = null);
		public virtual Plank.DockElement make_element (GLib.File file);
	}
	[CCode (cheader_filename = "plank.h")]
	public class Logger : GLib.Object {
		public static void initialize (string app_name);
		public static void notification (string msg, string icon = "");
		public static void verbose (string msg, ...);
		public static Plank.LogLevel DisplayLevel { get; set; }
	}
	[CCode (cheader_filename = "plank.h")]
	public class Paths : GLib.Object {
		public static bool ensure_directory_exists (GLib.File dir);
		public static void initialize (string app_name, string data_folder);
		public static GLib.File AppCacheFolder { get; protected set; }
		public static GLib.File AppConfigFolder { get; protected set; }
		public static GLib.File AppDataFolder { get; protected set; }
		public static string AppName { get; protected set; }
		public static GLib.File AppThemeFolder { get; protected set; }
		public static GLib.File CacheHomeFolder { get; protected set; }
		public static GLib.File ConfigHomeFolder { get; protected set; }
		public static Gee.ArrayList<GLib.File> DataDirFolders { get; protected set; }
		public static GLib.File DataFolder { get; protected set; }
		public static GLib.File DataHomeFolder { get; protected set; }
		public static GLib.File HomeFolder { get; protected set; }
		public static GLib.File ThemeFolder { get; protected set; }
	}
	[CCode (cheader_filename = "plank.h")]
	public class PlaceholderDockItem : Plank.DockItem {
		public PlaceholderDockItem ();
		public override bool can_be_removed ();
		public override string get_drop_text ();
		public override bool is_valid ();
		protected override Plank.AnimationType on_clicked (Plank.PopupButton button, Gdk.ModifierType mod, uint32 event_time);
	}
	[CCode (cheader_filename = "plank.h")]
	public class PlankDockItem : Plank.DockItem {
		public override bool can_be_removed ();
		public static unowned Plank.PlankDockItem get_instance ();
		public override Gee.ArrayList<Gtk.MenuItem> get_menu_items ();
		protected override Plank.AnimationType on_clicked (Plank.PopupButton button, Gdk.ModifierType mod, uint32 event_time);
	}
	[CCode (cheader_filename = "plank.h")]
	public class PoofWindow : Plank.CompositedWindow {
		public PoofWindow ();
		public override bool draw (Cairo.Context cr);
		public static unowned Plank.PoofWindow get_default ();
		public void show_at (int x, int y);
	}
	[CCode (cheader_filename = "plank.h")]
	public class PositionManager : GLib.Object {
		public PositionManager (Plank.DockController controller);
		public void get_background_padding (out int x, out int y);
		public Gdk.Rectangle get_background_region ();
		public Gdk.Rectangle get_barrier ();
		public unowned Plank.DockItem? get_current_target_item (Plank.DockContainer? container = null);
		public Gdk.Rectangle get_cursor_region ();
		public void get_dock_draw_position (out int x, out int y);
		public Gdk.Rectangle get_dock_window_region ();
		public Plank.DockItemDrawValue get_draw_value_for_item (Plank.DockItem item);
		public void get_hover_position (Plank.DockItem hovered, out int x, out int y);
		public void get_hover_position_at (ref int x, ref int y);
		public Gdk.Rectangle get_hover_region_for_element (Plank.DockElement element);
		public Gdk.Rectangle get_icon_geometry (Plank.ApplicationDockItem item, bool for_hidden);
		public void get_menu_position (Plank.DockItem hovered, Gtk.Requisition requisition, out int x, out int y);
		public static string[] get_monitor_plug_names (Gdk.Screen screen);
		public unowned Plank.DockItem? get_nearest_item_at (int x, int y, Plank.DockContainer? container = null);
		public Gdk.Rectangle get_static_dock_region ();
		public void get_struts (ref ulong[] struts);
		public void get_urgent_glow_position (Plank.DockItem item, out int x, out int y);
		public void initialize ();
		public bool is_horizontal_dock ();
		public void update (Plank.DockTheme theme);
		public void update_dock_position ();
		public void update_draw_values (Gee.ArrayList<weak Plank.DockItem> items, Plank.DrawValueFunc? func = null, Plank.DrawValuesFunc? post_func = null);
		public void update_regions ();
		public Gtk.Align Alignment { get; private set; }
		public int BottomPadding { get; private set; }
		public int GlowSize { get; private set; }
		public int HorizPadding { get; private set; }
		public int IconShadowSize { get; private set; }
		public int IconSize { get; private set; }
		public int IndicatorSize { get; private set; }
		public int ItemPadding { get; private set; }
		public Gtk.Align ItemsAlignment { get; private set; }
		public int LaunchBounceHeight { get; private set; }
		public int LineWidth { get; private set; }
		public int MaxItemCount { get; private set; }
		public int Offset { get; private set; }
		public Gtk.PositionType Position { get; private set; }
		public int TopPadding { get; private set; }
		public int UrgentBounceHeight { get; private set; }
		public int ZoomIconSize { get; private set; }
		public Plank.DockController controller { private get; construct; }
		public bool screen_is_composited { get; private set; }
	}
	[CCode (cheader_filename = "plank.h")]
	public abstract class Preferences : GLib.Object {
		public Preferences ();
		public void apply ();
		public void delay ();
		public void @delete ();
		public unowned GLib.File? get_backing_file ();
		public string get_filename ();
		protected void init_from_file (GLib.File file);
		protected void init_from_filename (string filename);
		protected abstract void reset_properties ();
		protected virtual void verify (string prop);
		public Preferences.with_file (GLib.File file);
		public Preferences.with_filename (string filename);
		public signal void deleted ();
	}
	[CCode (cheader_filename = "plank.h")]
	[GtkTemplate (ui = "/net/launchpad/plank/ui/preferences.ui")]
	public class PreferencesWindow : Gtk.Window {
		public PreferencesWindow (Plank.DockController controller);
		public override bool key_press_event (Gdk.EventKey event);
		public Plank.DockController controller { get; set construct; }
	}
	[CCode (cheader_filename = "plank.h")]
	public abstract class Renderer : GLib.Object {
		public Renderer (Gtk.Widget widget);
		public void animated_draw ();
		protected abstract bool animation_needed (int64 frame_time);
		public abstract void draw (Cairo.Context cr, int64 frame_time);
		protected void force_frame_time_update ();
		protected abstract void initialize_frame (int64 frame_time);
		[CCode (notify = false)]
		public int64 frame_time { get; private set; }
		public Gtk.Widget widget { get; construct; }
	}
	[CCode (cheader_filename = "plank.h")]
	public abstract class Settings : GLib.Object {
		public Settings (string schema);
		public void apply ();
		public void delay ();
		protected void reset_all ();
		protected virtual void verify (string name);
		public Settings.with_path (string schema, string path);
		[CCode (notify = false)]
		public GLib.SettingsBindFlags bind_flags { get; construct; }
		[CCode (notify = false)]
		public GLib.Settings settings { get; construct; }
	}
	[CCode (cheader_filename = "plank.h")]
	public class Surface : GLib.Object {
		public Surface (int width, int height);
		public Plank.Color average_color ();
		public void clear ();
		public Plank.Surface copy ();
		public Plank.Surface create_mask (double threshold, out Gdk.Rectangle extent);
		public void exponential_blur (int radius);
		public void fast_blur (int radius, int process_count = 1);
		public void gaussian_blur (int radius);
		public Plank.Surface scaled_copy (int width, int height);
		public Gdk.Pixbuf to_pixbuf ();
		public Surface.with_cairo_surface (int width, int height, Cairo.Surface model);
		public Surface.with_internal (Cairo.ImageSurface image);
		public Surface.with_surface (int width, int height, Plank.Surface model);
		public Cairo.Context Context { get; construct; }
		public int Height { get; construct; }
		public Cairo.Surface Internal { get; construct; }
		public int Width { get; construct; }
	}
	[CCode (cheader_filename = "plank.h")]
	public class SurfaceCache<G> : GLib.Object {
		public SurfaceCache (Plank.SurfaceCacheFlags flags = SurfaceCacheFlags.NONE);
		public void clear ();
		public Plank.Surface? get_surface<G> (int width, int height, Plank.Surface model, Plank.DrawFunc<G> draw_func, Plank.DrawDataFunc<G>? draw_data_func);
		public Plank.SurfaceCacheFlags flags { get; set construct; }
	}
	[CCode (cheader_filename = "plank.h")]
	public class System : GLib.Object {
		public System (GLib.AppLaunchContext context);
		public static unowned Plank.System get_default ();
		public void launch (GLib.File app);
		public void launch_with_files (GLib.File? app, GLib.File[] files);
		public void open (GLib.File file);
		public void open_files (GLib.File[] files);
		public void open_uri (string uri);
		public GLib.AppLaunchContext context { get; construct; }
	}
	[CCode (cheader_filename = "plank.h")]
	public abstract class Theme : Plank.Preferences {
		public const string DEFAULT_NAME;
		public const string GTK_THEME_NAME;
		public Theme ();
		public static Gtk.StyleContext create_style_context (GLib.Type widget_type, Gtk.StyleContext? parent_style, Gtk.CssProvider provider, string? object_name, string first_class, ...);
		public void draw_background (Plank.Surface surface);
		protected void draw_inner_rect (Cairo.Context cr, int width, int height);
		public static void draw_rounded_line (Cairo.Context cr, double x, double y, double width, double height, bool is_round_left, bool is_round_right, Cairo.Pattern? stroke = null, Cairo.Pattern? fill = null);
		public static void draw_rounded_rect (Cairo.Context cr, double x, double y, double width, double height, double top_radius = 6.0, double bottom_radius = 6.0, double line_width = 1.0);
		public int get_bottom_offset ();
		public unowned Gtk.StyleContext get_style_context ();
		public static GLib.File? get_theme_folder (string name);
		public static string[] get_theme_list ();
		public int get_top_offset ();
		public void load (string type);
		protected override void reset_properties ();
		protected override void verify (string prop);
		public Theme.with_name (string name);
		[Description (blurb = "The roundness of the bottom corners.", nick = "bottom-roundness")]
		public int BottomRoundness { get; set; }
		[Description (blurb = "The ending color (RGBA) of the fill gradient.", nick = "fill-end-color")]
		public Plank.Color FillEndColor { get; set; }
		[Description (blurb = "The starting color (RGBA) of the fill gradient.", nick = "fill-start-color")]
		public Plank.Color FillStartColor { get; set; }
		[Description (blurb = "The color (RGBA) of the inner stroke.", nick = "inner-stroke-color")]
		public Plank.Color InnerStrokeColor { get; set; }
		[Description (blurb = "The thickness (in pixels) of lines drawn.", nick = "line-width")]
		public int LineWidth { get; set; }
		[Description (blurb = "The color (RGBA) of the outer stroke.", nick = "outer-stroke-color")]
		public Plank.Color OuterStrokeColor { get; set; }
		[Description (blurb = "The roundness of the top corners.", nick = "top-roundness")]
		public int TopRoundness { get; set; }
	}
	[CCode (cheader_filename = "plank.h")]
	public class TitledSeparatorMenuItem : Gtk.SeparatorMenuItem {
		public TitledSeparatorMenuItem (string text);
		protected override bool draw (Cairo.Context cr);
		public TitledSeparatorMenuItem.no_line (string text);
	}
	[CCode (cheader_filename = "plank.h")]
	public class TransientDockItem : Plank.ApplicationDockItem {
		public TransientDockItem ();
		public override bool can_be_removed ();
		public override bool is_valid ();
		public TransientDockItem.with_launcher (string launcher_uri);
	}
	[CCode (cheader_filename = "plank.h")]
	public class Unity : GLib.Object {
		public void add_client (Plank.UnityClient client);
		public static unowned Plank.Unity get_default ();
		public void remove_client (Plank.UnityClient client);
	}
	[CCode (cheader_filename = "plank.h")]
	public class Worker : GLib.Object {
		public void add_task (owned GLib.ThreadFunc<weak void*> func, Plank.TaskPriority priority = TaskPriority.DEFAULT);
		public async G add_task_with_result<G> (owned Plank.TaskFunc<G> func, Plank.TaskPriority priority = TaskPriority.DEFAULT) throws GLib.Error;
		public static unowned Plank.Worker get_default ();
	}
	[CCode (cheader_filename = "plank.h")]
	public interface Docklet : GLib.Object {
		public abstract unowned string get_description ();
		public abstract unowned string get_icon ();
		public abstract unowned string get_id ();
		public abstract unowned string get_name ();
		public abstract bool is_supported ();
		public abstract Plank.DockElement make_element (string launcher, GLib.File file);
	}
	[CCode (cheader_filename = "plank.h")]
	public interface Serializable : GLib.Object {
		public abstract void deserialize (string s);
		public abstract string serialize ();
	}
	[CCode (cheader_filename = "plank.h")]
	public interface UnityClient : GLib.Object {
		public abstract void remove_launcher_entry (string sender_name);
		public abstract void update_launcher_entry (string sender_name, GLib.Variant parameters, bool is_retry = false);
	}
	[CCode (cheader_filename = "plank.h")]
	public struct Color : Gdk.RGBA {
		public void add_hue (double val);
		public void brighten_val (double amount);
		public void darken_by_sat (double amount);
		public void darken_val (double amount);
		public static Plank.Color from_prefs_string (string s);
		public void get_hsv (out double h, out double s, out double v);
		public double get_hue ();
		public double get_sat ();
		public double get_val ();
		public void multiply_sat (double amount);
		public void set_hsv (double h, double s, double v);
		public void set_hue (double hue);
		public void set_max_sat (double sat);
		public void set_max_val (double val);
		public void set_min_sat (double sat);
		public void set_min_val (double val);
		public void set_sat (double sat);
		public void set_val (double val);
		public string to_prefs_string ();
	}
	[CCode (cheader_filename = "plank.h")]
	public struct PointD {
		public double x;
		public double y;
	}
	[CCode (cheader_filename = "plank.h")]
	public enum AnimationMode {
		CUSTOM,
		LINEAR,
		EASE_IN_QUAD,
		EASE_OUT_QUAD,
		EASE_IN_OUT_QUAD,
		EASE_IN_CUBIC,
		EASE_OUT_CUBIC,
		EASE_IN_OUT_CUBIC,
		EASE_IN_QUART,
		EASE_OUT_QUART,
		EASE_IN_OUT_QUART,
		EASE_IN_QUINT,
		EASE_OUT_QUINT,
		EASE_IN_OUT_QUINT,
		EASE_IN_SINE,
		EASE_OUT_SINE,
		EASE_IN_OUT_SINE,
		EASE_IN_EXPO,
		EASE_OUT_EXPO,
		EASE_IN_OUT_EXPO,
		EASE_IN_CIRC,
		EASE_OUT_CIRC,
		EASE_IN_OUT_CIRC,
		EASE_IN_ELASTIC,
		EASE_OUT_ELASTIC,
		EASE_IN_OUT_ELASTIC,
		EASE_IN_BACK,
		EASE_OUT_BACK,
		EASE_IN_OUT_BACK,
		EASE_IN_BOUNCE,
		EASE_OUT_BOUNCE,
		EASE_IN_OUT_BOUNCE,
		LAST
	}
	[CCode (cheader_filename = "plank.h")]
	public enum AnimationType {
		NONE,
		BOUNCE,
		DARKEN,
		LIGHTEN
	}
	[CCode (cheader_filename = "plank.h")]
	public enum HideType {
		NONE,
		INTELLIGENT,
		AUTO,
		DODGE_MAXIMIZED,
		WINDOW_DODGE,
		DODGE_ACTIVE
	}
	[CCode (cheader_filename = "plank.h")]
	public enum IndicatorState {
		NONE,
		SINGLE,
		SINGLE_PLUS
	}
	[CCode (cheader_filename = "plank.h")]
	[Flags]
	public enum ItemState {
		NORMAL,
		ACTIVE,
		URGENT,
		MOVE,
		INVALID
	}
	[CCode (cheader_filename = "plank.h")]
	public enum LogLevel {
		VERBOSE,
		DEBUG,
		INFO,
		NOTIFY,
		WARN,
		CRITICAL,
		ERROR
	}
	[CCode (cheader_filename = "plank.h")]
	[Flags]
	public enum PopupButton {
		NONE,
		LEFT,
		MIDDLE,
		RIGHT;
		public static Plank.PopupButton from_event_button (Gdk.EventButton event);
	}
	[CCode (cheader_filename = "plank.h")]
	[Flags]
	public enum SurfaceCacheFlags {
		NONE,
		ALLOW_DOWNSCALE,
		ALLOW_UPSCALE,
		ALLOW_SCALE,
		ADAPTIVE_SCALE
	}
	[CCode (cheader_filename = "plank.h")]
	public enum TaskPriority {
		LOW,
		DEFAULT,
		HIGH
	}
	[CCode (cheader_filename = "plank.h")]
	public enum XdgSessionClass {
		USER,
		GREETER,
		LOCK_SCREEN,
		BACKGROUND;
		public static Plank.XdgSessionClass from_string (string s);
	}
	[CCode (cheader_filename = "plank.h")]
	[Flags]
	public enum XdgSessionDesktop {
		GNOME,
		KDE,
		LXDE,
		MATE,
		RAZOR,
		ROX,
		TDE,
		UNITY,
		XFCE,
		EDE,
		CINNAMON,
		PANTHEON,
		OLD;
		public static Plank.XdgSessionDesktop from_string (string s);
	}
	[CCode (cheader_filename = "plank.h")]
	public enum XdgSessionType {
		UNSPECIFIED,
		TTY,
		X11,
		WAYLAND,
		MIR;
		public static Plank.XdgSessionType from_string (string s);
	}
	[CCode (cheader_filename = "plank.h")]
	public delegate void DockletInitFunc (Plank.DockletManager manager);
	[CCode (cheader_filename = "plank.h")]
	public delegate Plank.Surface? DrawDataFunc<G> (int width, int height, Plank.Surface model, G data);
	[CCode (cheader_filename = "plank.h")]
	public delegate Plank.Surface? DrawFunc<G> (int width, int height, Plank.Surface model, Plank.DrawDataFunc<G>? draw_data_func);
	[CCode (cheader_filename = "plank.h")]
	public delegate void DrawValueFunc (Plank.DockItem item, Plank.DockItemDrawValue draw_value);
	[CCode (cheader_filename = "plank.h")]
	public delegate void DrawValuesFunc (Gee.HashMap<Plank.DockElement,Plank.DockItemDrawValue> draw_values);
	[CCode (cheader_filename = "plank.h")]
	public delegate G TaskFunc<G> () throws GLib.Error;
	[CCode (cheader_filename = "plank.h")]
	public const string DOCKLET_ENTRY_POINT;
	[CCode (cheader_filename = "plank.h")]
	public const string G_RESOURCE_PATH;
	[CCode (cheader_filename = "plank.h")]
	public const int MAJOR_VERSION;
	[CCode (cheader_filename = "plank.h")]
	public const int MICRO_VERSION;
	[CCode (cheader_filename = "plank.h")]
	public const int MINOR_VERSION;
	[CCode (cheader_filename = "plank.h")]
	public const int NANO_VERSION;
	[CCode (cheader_filename = "plank.h")]
	public static unowned string? check_version (uint required_major, uint required_minor, uint required_micro);
	[CCode (cheader_filename = "plank.h")]
	public static double easing_for_mode (Plank.AnimationMode mode, double t, double d);
	[CCode (cheader_filename = "plank.h")]
	public static void environment_initialize ();
	[CCode (cheader_filename = "plank.h")]
	public static bool environment_is_session_class (Plank.XdgSessionClass type);
	[CCode (cheader_filename = "plank.h")]
	public static bool environment_is_session_desktop (Plank.XdgSessionDesktop type);
	[CCode (cheader_filename = "plank.h")]
	public static bool environment_is_session_type (Plank.XdgSessionType type);
	[CCode (cheader_filename = "plank.h")]
	public static uint get_major_version ();
	[CCode (cheader_filename = "plank.h")]
	public static uint get_micro_version ();
	[CCode (cheader_filename = "plank.h")]
	public static uint get_minor_version ();
	[CCode (cheader_filename = "plank.h")]
	public static uint get_nano_version ();
}