1 /* GSequencer - Advanced GTK Sequencer
2  * Copyright (C) 2005-2020 Joël Krähemann
3  *
4  * This file is part of GSequencer.
5  *
6  * GSequencer is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * GSequencer is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with GSequencer.  If not, see <http://www.gnu.org/licenses/>.
18  */
19 
20 #include <ags/X/ags_ui_provider.h>
21 
22 void ags_ui_provider_class_init(AgsUiProviderInterface *ginterface);
23 
24 /**
25  * SECTION:ags_ui_provider
26  * @short_description: provide user interface
27  * @title: AgsUiProvider
28  * @section_id: AgsUiProvider
29  * @include: ags/X/ags_ui_provider.h
30  *
31  * The #AgsUiProvider provides you the window capabilities.
32  */
33 
34 enum {
35   SETUP_COMPLETED,
36   CHECK_MESSAGE,
37   CLEAN_MESSAGE,
38   LAST_SIGNAL,
39 };
40 
41 static guint ui_provider_signals[LAST_SIGNAL];
42 
43 GType
ags_ui_provider_get_type()44 ags_ui_provider_get_type()
45 {
46   static volatile gsize g_define_type_id__volatile = 0;
47 
48   if(g_once_init_enter (&g_define_type_id__volatile)){
49     GType ags_type_ui_provider = 0;
50 
51     ags_type_ui_provider = g_type_register_static_simple(G_TYPE_INTERFACE,
52 							 "AgsUiProvider",
53 							 sizeof(AgsUiProviderInterface),
54 							 (GClassInitFunc) ags_ui_provider_class_init,
55 							 0, NULL, 0);
56 
57     g_once_init_leave(&g_define_type_id__volatile, ags_type_ui_provider);
58   }
59 
60   return g_define_type_id__volatile;
61 }
62 
63 void
ags_ui_provider_class_init(AgsUiProviderInterface * ginterface)64 ags_ui_provider_class_init(AgsUiProviderInterface *ginterface)
65 {
66   /**
67    * AgsUiProvider::setup-completed:
68    * @ui_provider: the #AgsUiProvider object
69    *
70    * The ::setup-completed signal is emitted every check message of the UI provider. This notifies
71    * about to check for messages from message delivery.
72    *
73    * Since: 3.0.8
74    */
75   ui_provider_signals[SETUP_COMPLETED] =
76     g_signal_new("setup-completed",
77 		 G_TYPE_FROM_INTERFACE(ginterface),
78 		 G_SIGNAL_RUN_LAST,
79 		 G_STRUCT_OFFSET(AgsUiProviderInterface, setup_completed),
80 		 NULL, NULL,
81 		 g_cclosure_marshal_VOID__VOID,
82 		 G_TYPE_NONE, 0);
83 
84   /**
85    * AgsUiProvider::check-message:
86    * @ui_provider: the #AgsUiProvider object
87    *
88    * The ::check-message signal is emitted every check message of the UI provider. This notifies
89    * about to check for messages from message delivery.
90    *
91    * Since: 3.0.0
92    */
93   ui_provider_signals[CHECK_MESSAGE] =
94     g_signal_new("check-message",
95 		 G_TYPE_FROM_INTERFACE(ginterface),
96 		 G_SIGNAL_RUN_LAST,
97 		 G_STRUCT_OFFSET(AgsUiProviderInterface, check_message),
98 		 NULL, NULL,
99 		 g_cclosure_marshal_VOID__VOID,
100 		 G_TYPE_NONE, 0);
101 
102   /**
103    * AgsUiProvider::clean-message:
104    * @ui_provider: the #AgsUiProvider object
105    *
106    * The ::clean-message signal is emitted every clean message of the UI provider. This notifies
107    * about to clean messages from message delivery.
108    *
109    * Since: 3.0.0
110    */
111   ui_provider_signals[CLEAN_MESSAGE] =
112     g_signal_new("clean-message",
113 		 G_TYPE_FROM_INTERFACE(ginterface),
114 		 G_SIGNAL_RUN_LAST,
115 		 G_STRUCT_OFFSET(AgsUiProviderInterface, clean_message),
116 		 NULL, NULL,
117 		 g_cclosure_marshal_VOID__VOID,
118 		 G_TYPE_NONE, 0);
119 }
120 
121 /**
122  * ags_ui_provider_get_show_animation:
123  * @ui_provider: the #AgsUiProvider
124  *
125  * Get show animation.
126  *
127  * Returns: %TRUE if animation does show, else %FALSE
128  *
129  * Since: 3.0.0
130  */
131 gboolean
ags_ui_provider_get_show_animation(AgsUiProvider * ui_provider)132 ags_ui_provider_get_show_animation(AgsUiProvider *ui_provider)
133 {
134   AgsUiProviderInterface *ui_provider_interface;
135 
136   g_return_val_if_fail(AGS_IS_UI_PROVIDER(ui_provider), FALSE);
137   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
138   g_return_val_if_fail(ui_provider_interface->get_show_animation, FALSE);
139 
140   return(ui_provider_interface->get_show_animation(ui_provider));
141 }
142 
143 /**
144  * ags_ui_provider_set_show_animation:
145  * @ui_provider: the #AgsUiProvider
146  * @show_animation: do show animation
147  *
148  * Set show animation.
149  *
150  * Since: 3.0.0
151  */
152 void
ags_ui_provider_set_show_animation(AgsUiProvider * ui_provider,gboolean show_animation)153 ags_ui_provider_set_show_animation(AgsUiProvider *ui_provider,
154 				   gboolean show_animation)
155 {
156   AgsUiProviderInterface *ui_provider_interface;
157 
158   g_return_if_fail(AGS_IS_UI_PROVIDER(ui_provider));
159   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
160   g_return_if_fail(ui_provider_interface->set_show_animation);
161 
162   ui_provider_interface->set_show_animation(ui_provider,
163 					    show_animation);
164 }
165 
166 /**
167  * ags_ui_provider_get_gui_ready:
168  * @ui_provider: the #AgsUiProvider
169  *
170  * Get GUI ready.
171  *
172  * Returns: %TRUE if gui is ready, else %FALSE
173  *
174  * Since: 3.0.0
175  */
176 gboolean
ags_ui_provider_get_gui_ready(AgsUiProvider * ui_provider)177 ags_ui_provider_get_gui_ready(AgsUiProvider *ui_provider)
178 {
179   AgsUiProviderInterface *ui_provider_interface;
180 
181   g_return_val_if_fail(AGS_IS_UI_PROVIDER(ui_provider), FALSE);
182   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
183   g_return_val_if_fail(ui_provider_interface->get_gui_ready, FALSE);
184 
185   return(ui_provider_interface->get_gui_ready(ui_provider));
186 }
187 
188 /**
189  * ags_ui_provider_set_gui_ready:
190  * @ui_provider: the #AgsUiProvider
191  * @gui_ready: is GUI ready
192  *
193  * Set GUI ready.
194  *
195  * Since: 3.0.0
196  */
197 void
ags_ui_provider_set_gui_ready(AgsUiProvider * ui_provider,gboolean gui_ready)198 ags_ui_provider_set_gui_ready(AgsUiProvider *ui_provider,
199 			      gboolean gui_ready)
200 {
201   AgsUiProviderInterface *ui_provider_interface;
202 
203   g_return_if_fail(AGS_IS_UI_PROVIDER(ui_provider));
204   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
205   g_return_if_fail(ui_provider_interface->set_gui_ready);
206 
207   ui_provider_interface->set_gui_ready(ui_provider,
208 				       gui_ready);
209 }
210 
211 /**
212  * ags_ui_provider_get_file_ready:
213  * @ui_provider: the #AgsUiProvider
214  *
215  * Get file ready.
216  *
217  * Returns: %TRUE if gui is ready, else %FALSE
218  *
219  * Since: 3.0.0
220  */
221 gboolean
ags_ui_provider_get_file_ready(AgsUiProvider * ui_provider)222 ags_ui_provider_get_file_ready(AgsUiProvider *ui_provider)
223 {
224   AgsUiProviderInterface *ui_provider_interface;
225 
226   g_return_val_if_fail(AGS_IS_UI_PROVIDER(ui_provider), FALSE);
227   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
228   g_return_val_if_fail(ui_provider_interface->get_file_ready, FALSE);
229 
230   return(ui_provider_interface->get_file_ready(ui_provider));
231 }
232 
233 /**
234  * ags_ui_provider_set_file_ready:
235  * @ui_provider: the #AgsUiProvider
236  * @file_ready: is GUI ready
237  *
238  * Set file ready.
239  *
240  * Since: 3.0.0
241  */
242 void
ags_ui_provider_set_file_ready(AgsUiProvider * ui_provider,gboolean file_ready)243 ags_ui_provider_set_file_ready(AgsUiProvider *ui_provider,
244 			       gboolean file_ready)
245 {
246   AgsUiProviderInterface *ui_provider_interface;
247 
248   g_return_if_fail(AGS_IS_UI_PROVIDER(ui_provider));
249   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
250   g_return_if_fail(ui_provider_interface->set_file_ready);
251 
252   ui_provider_interface->set_file_ready(ui_provider,
253 					file_ready);
254 }
255 
256 /**
257  * ags_ui_provider_get_gui_scale_factor:
258  * @ui_provider: the #AgsUiProvider
259  *
260  * Get GUI scale factor.
261  *
262  * Returns: the GUI scale factor as gdouble
263  *
264  * Since: 3.0.0
265  */
266 gdouble
ags_ui_provider_get_gui_scale_factor(AgsUiProvider * ui_provider)267 ags_ui_provider_get_gui_scale_factor(AgsUiProvider *ui_provider)
268 {
269   AgsUiProviderInterface *ui_provider_interface;
270 
271   g_return_val_if_fail(AGS_IS_UI_PROVIDER(ui_provider), FALSE);
272   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
273   g_return_val_if_fail(ui_provider_interface->get_gui_scale_factor, FALSE);
274 
275   return(ui_provider_interface->get_gui_scale_factor(ui_provider));
276 }
277 
278 /**
279  * ags_ui_provider_set_gui_scale_factor:
280  * @ui_provider: the #AgsUiProvider
281  * @gui_scale_factor: GUI scale factor
282  *
283  * Set the GUI scale factor as gdouble.
284  *
285  * Since: 3.0.0
286  */
287 void
ags_ui_provider_set_gui_scale_factor(AgsUiProvider * ui_provider,gdouble gui_scale_factor)288 ags_ui_provider_set_gui_scale_factor(AgsUiProvider *ui_provider,
289 				     gdouble gui_scale_factor)
290 {
291   AgsUiProviderInterface *ui_provider_interface;
292 
293   g_return_if_fail(AGS_IS_UI_PROVIDER(ui_provider));
294   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
295   g_return_if_fail(ui_provider_interface->set_gui_scale_factor);
296 
297   ui_provider_interface->set_gui_scale_factor(ui_provider,
298 					      gui_scale_factor);
299 }
300 
301 /**
302  * ags_ui_provider_schedule_task:
303  * @ui_provider: the #AgsUiProvider
304  * @task: the #AgsTask
305  *
306  * Schedule @task to be launched.
307  *
308  * Since: 3.0.0
309  */
310 void
ags_ui_provider_schedule_task(AgsUiProvider * ui_provider,AgsTask * task)311 ags_ui_provider_schedule_task(AgsUiProvider *ui_provider,
312 			      AgsTask *task)
313 {
314   AgsUiProviderInterface *ui_provider_interface;
315 
316   g_return_if_fail(AGS_IS_UI_PROVIDER(ui_provider));
317   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
318   g_return_if_fail(ui_provider_interface->schedule_task);
319 
320   ui_provider_interface->schedule_task(ui_provider,
321 				       task);
322 }
323 
324 /**
325  * ags_ui_provider_schedule_task_all:
326  * @ui_provider: the #AgsUiProvider
327  * @task: the #GList-struct containig #AgsTask
328  *
329  * Schedule all @task to be launched.
330  *
331  * Since: 3.0.0
332  */
333 void
ags_ui_provider_schedule_task_all(AgsUiProvider * ui_provider,GList * task)334 ags_ui_provider_schedule_task_all(AgsUiProvider *ui_provider,
335 				  GList *task)
336 {
337   AgsUiProviderInterface *ui_provider_interface;
338 
339   g_return_if_fail(AGS_IS_UI_PROVIDER(ui_provider));
340   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
341   g_return_if_fail(ui_provider_interface->schedule_task_all);
342 
343   ui_provider_interface->schedule_task_all(ui_provider,
344 					   task);
345 }
346 
347 /**
348  * ags_ui_provider_setup_completed:
349  * @ui_provider: the #AgsUiProvider
350  *
351  * Application context setup completed.
352  *
353  * Since: 3.0.8
354  */
355 void
ags_ui_provider_setup_completed(AgsUiProvider * ui_provider)356 ags_ui_provider_setup_completed(AgsUiProvider *ui_provider)
357 {
358   g_signal_emit(ui_provider, ui_provider_signals[SETUP_COMPLETED], 0);
359 }
360 
361 /**
362  * ags_ui_provider_check_message:
363  * @ui_provider: the #AgsUiProvider
364  *
365  * Check messages the UI provider needs to consume.
366  *
367  * Since: 3.0.0
368  */
369 void
ags_ui_provider_check_message(AgsUiProvider * ui_provider)370 ags_ui_provider_check_message(AgsUiProvider *ui_provider)
371 {
372   g_signal_emit(ui_provider, ui_provider_signals[CHECK_MESSAGE], 0);
373 }
374 
375 /**
376  * ags_ui_provider_clean_message:
377  * @ui_provider: the #AgsUiProvider
378  *
379  * Clean messages the UI provider needs to consume.
380  *
381  * Since: 3.0.0
382  */
383 void
ags_ui_provider_clean_message(AgsUiProvider * ui_provider)384 ags_ui_provider_clean_message(AgsUiProvider *ui_provider)
385 {
386   g_signal_emit(ui_provider, ui_provider_signals[CLEAN_MESSAGE], 0);
387 }
388 
389 /**
390  * ags_ui_provider_get_animation_window:
391  * @ui_provider: the #AgsUiProvider
392  *
393  * Get animation window.
394  *
395  * Returns: the #GtkWidget
396  *
397  * Since: 3.0.0
398  */
399 GtkWidget*
ags_ui_provider_get_animation_window(AgsUiProvider * ui_provider)400 ags_ui_provider_get_animation_window(AgsUiProvider *ui_provider)
401 {
402   AgsUiProviderInterface *ui_provider_interface;
403 
404   g_return_val_if_fail(AGS_IS_UI_PROVIDER(ui_provider), NULL);
405   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
406   g_return_val_if_fail(ui_provider_interface->get_animation_window, NULL);
407 
408   return(ui_provider_interface->get_animation_window(ui_provider));
409 }
410 
411 /**
412  * ags_ui_provider_set_animation_window:
413  * @ui_provider: the #AgsUiProvider
414  * @animation_window: the #GtkWidget
415  *
416  * Set animation window.
417  *
418  * Since: 3.0.0
419  */
420 void
ags_ui_provider_set_animation_window(AgsUiProvider * ui_provider,GtkWidget * animation_window)421 ags_ui_provider_set_animation_window(AgsUiProvider *ui_provider,
422 				     GtkWidget *animation_window)
423 {
424   AgsUiProviderInterface *ui_provider_interface;
425 
426   g_return_if_fail(AGS_IS_UI_PROVIDER(ui_provider));
427   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
428   g_return_if_fail(ui_provider_interface->set_animation_window);
429 
430   ui_provider_interface->set_animation_window(ui_provider,
431 					      animation_window);
432 }
433 
434 /**
435  * ags_ui_provider_get_window:
436  * @ui_provider: the #AgsUiProvider
437  *
438  * Get window.
439  *
440  * Returns: the #AgsWindow
441  *
442  * Since: 3.0.0
443  */
444 GtkWidget*
ags_ui_provider_get_window(AgsUiProvider * ui_provider)445 ags_ui_provider_get_window(AgsUiProvider *ui_provider)
446 {
447   AgsUiProviderInterface *ui_provider_interface;
448 
449   g_return_val_if_fail(AGS_IS_UI_PROVIDER(ui_provider), NULL);
450   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
451   g_return_val_if_fail(ui_provider_interface->get_window, NULL);
452 
453   return(ui_provider_interface->get_window(ui_provider));
454 }
455 
456 /**
457  * ags_ui_provider_set_window:
458  * @ui_provider: the #AgsUiProvider
459  * @window: the #AgsWindow
460  *
461  * Set window.
462  *
463  * Since: 3.0.0
464  */
465 void
ags_ui_provider_set_window(AgsUiProvider * ui_provider,GtkWidget * window)466 ags_ui_provider_set_window(AgsUiProvider *ui_provider,
467 			   GtkWidget *window)
468 {
469   AgsUiProviderInterface *ui_provider_interface;
470 
471   g_return_if_fail(AGS_IS_UI_PROVIDER(ui_provider));
472   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
473   g_return_if_fail(ui_provider_interface->set_window);
474 
475   ui_provider_interface->set_window(ui_provider,
476 				    window);
477 }
478 
479 /**
480  * ags_ui_provider_get_automation_window:
481  * @ui_provider: the #AgsUiProvider
482  *
483  * Get automation window.
484  *
485  * Returns: the #GtkWidget
486  *
487  * Since: 3.0.0
488  */
489 GtkWidget*
ags_ui_provider_get_automation_window(AgsUiProvider * ui_provider)490 ags_ui_provider_get_automation_window(AgsUiProvider *ui_provider)
491 {
492   AgsUiProviderInterface *ui_provider_interface;
493 
494   g_return_val_if_fail(AGS_IS_UI_PROVIDER(ui_provider), NULL);
495   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
496   g_return_val_if_fail(ui_provider_interface->get_automation_window, NULL);
497 
498   return(ui_provider_interface->get_automation_window(ui_provider));
499 }
500 
501 /**
502  * ags_ui_provider_set_automation_window:
503  * @ui_provider: the #AgsUiProvider
504  * @automation_window: the #GtkWidget
505  *
506  * Set automation window.
507  *
508  * Since: 3.0.0
509  */
510 void
ags_ui_provider_set_automation_window(AgsUiProvider * ui_provider,GtkWidget * automation_window)511 ags_ui_provider_set_automation_window(AgsUiProvider *ui_provider,
512 				      GtkWidget *automation_window)
513 {
514   AgsUiProviderInterface *ui_provider_interface;
515 
516   g_return_if_fail(AGS_IS_UI_PROVIDER(ui_provider));
517   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
518   g_return_if_fail(ui_provider_interface->set_automation_window);
519 
520   ui_provider_interface->set_automation_window(ui_provider,
521 					       automation_window);
522 }
523 
524 /**
525  * ags_ui_provider_get_wave_window:
526  * @ui_provider: the #AgsUiProvider
527  *
528  * Get wave window.
529  *
530  * Returns: the #GtkWidget
531  *
532  * Since: 3.0.0
533  */
534 GtkWidget*
ags_ui_provider_get_wave_window(AgsUiProvider * ui_provider)535 ags_ui_provider_get_wave_window(AgsUiProvider *ui_provider)
536 {
537   AgsUiProviderInterface *ui_provider_interface;
538 
539   g_return_val_if_fail(AGS_IS_UI_PROVIDER(ui_provider), NULL);
540   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
541   g_return_val_if_fail(ui_provider_interface->get_wave_window, NULL);
542 
543   return(ui_provider_interface->get_wave_window(ui_provider));
544 }
545 
546 /**
547  * ags_ui_provider_set_wave_window:
548  * @ui_provider: the #AgsUiProvider
549  * @wave_window: the #GtkWidget
550  *
551  * Set wave window.
552  *
553  * Since: 3.0.0
554  */
555 void
ags_ui_provider_set_wave_window(AgsUiProvider * ui_provider,GtkWidget * wave_window)556 ags_ui_provider_set_wave_window(AgsUiProvider *ui_provider,
557 				GtkWidget *wave_window)
558 {
559   AgsUiProviderInterface *ui_provider_interface;
560 
561   g_return_if_fail(AGS_IS_UI_PROVIDER(ui_provider));
562   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
563   g_return_if_fail(ui_provider_interface->set_wave_window);
564 
565   ui_provider_interface->set_wave_window(ui_provider,
566 					 wave_window);
567 }
568 
569 /**
570  * ags_ui_provider_get_sheet_window:
571  * @ui_provider: the #AgsUiProvider
572  *
573  * Get sheet window.
574  *
575  * Returns: the #GtkWidget
576  *
577  * Since: 3.0.0
578  */
579 GtkWidget*
ags_ui_provider_get_sheet_window(AgsUiProvider * ui_provider)580 ags_ui_provider_get_sheet_window(AgsUiProvider *ui_provider)
581 {
582   AgsUiProviderInterface *ui_provider_interface;
583 
584   g_return_val_if_fail(AGS_IS_UI_PROVIDER(ui_provider), NULL);
585   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
586   g_return_val_if_fail(ui_provider_interface->get_sheet_window, NULL);
587 
588   return(ui_provider_interface->get_sheet_window(ui_provider));
589 }
590 
591 /**
592  * ags_ui_provider_set_sheet_window:
593  * @ui_provider: the #AgsUiProvider
594  * @sheet_window: the #GtkWidget
595  *
596  * Set sheet window.
597  *
598  * Since: 3.0.0
599  */
600 void
ags_ui_provider_set_sheet_window(AgsUiProvider * ui_provider,GtkWidget * sheet_window)601 ags_ui_provider_set_sheet_window(AgsUiProvider *ui_provider,
602 				 GtkWidget *sheet_window)
603 {
604   AgsUiProviderInterface *ui_provider_interface;
605 
606   g_return_if_fail(AGS_IS_UI_PROVIDER(ui_provider));
607   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
608   g_return_if_fail(ui_provider_interface->set_sheet_window);
609 
610   ui_provider_interface->set_sheet_window(ui_provider,
611 					  sheet_window);
612 }
613 
614 /**
615  * ags_ui_provider_get_export_window:
616  * @ui_provider: the #AgsUiProvider
617  *
618  * Get export window.
619  *
620  * Returns: the #GtkWidget
621  *
622  * Since: 3.0.0
623  */
624 GtkWidget*
ags_ui_provider_get_export_window(AgsUiProvider * ui_provider)625 ags_ui_provider_get_export_window(AgsUiProvider *ui_provider)
626 {
627   AgsUiProviderInterface *ui_provider_interface;
628 
629   g_return_val_if_fail(AGS_IS_UI_PROVIDER(ui_provider), NULL);
630   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
631   g_return_val_if_fail(ui_provider_interface->get_export_window, NULL);
632 
633   return(ui_provider_interface->get_export_window(ui_provider));
634 }
635 
636 /**
637  * ags_ui_provider_set_export_window:
638  * @ui_provider: the #AgsUiProvider
639  * @export_window: the #GtkWidget
640  *
641  * Set export window.
642  *
643  * Since: 3.0.0
644  */
645 void
ags_ui_provider_set_export_window(AgsUiProvider * ui_provider,GtkWidget * export_window)646 ags_ui_provider_set_export_window(AgsUiProvider *ui_provider,
647 				  GtkWidget *export_window)
648 {
649   AgsUiProviderInterface *ui_provider_interface;
650 
651   g_return_if_fail(AGS_IS_UI_PROVIDER(ui_provider));
652   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
653   g_return_if_fail(ui_provider_interface->set_export_window);
654 
655   ui_provider_interface->set_export_window(ui_provider,
656 					   export_window);
657 }
658 
659 /**
660  * ags_ui_provider_get_online_help_window:
661  * @ui_provider: the #AgsUiProvider
662  *
663  * Get online help window.
664  *
665  * Returns: the #GtkWidget
666  *
667  * Since: 3.5.0
668  */
669 GtkWidget*
ags_ui_provider_get_online_help_window(AgsUiProvider * ui_provider)670 ags_ui_provider_get_online_help_window(AgsUiProvider *ui_provider)
671 {
672   AgsUiProviderInterface *ui_provider_interface;
673 
674   g_return_val_if_fail(AGS_IS_UI_PROVIDER(ui_provider), NULL);
675   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
676   g_return_val_if_fail(ui_provider_interface->get_online_help_window, NULL);
677 
678   return(ui_provider_interface->get_online_help_window(ui_provider));
679 }
680 
681 /**
682  * ags_ui_provider_set_online_help_window:
683  * @ui_provider: the #AgsUiProvider
684  * @online_help_window: the #GtkWidget
685  *
686  * Set online help window.
687  *
688  * Since: 3.5.0
689  */
690 void
ags_ui_provider_set_online_help_window(AgsUiProvider * ui_provider,GtkWidget * online_help_window)691 ags_ui_provider_set_online_help_window(AgsUiProvider *ui_provider,
692 				       GtkWidget *online_help_window)
693 {
694   AgsUiProviderInterface *ui_provider_interface;
695 
696   g_return_if_fail(AGS_IS_UI_PROVIDER(ui_provider));
697   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
698   g_return_if_fail(ui_provider_interface->set_online_help_window);
699 
700   ui_provider_interface->set_online_help_window(ui_provider,
701 						online_help_window);
702 }
703 
704 /**
705  * ags_ui_provider_get_preferences:
706  * @ui_provider: the #AgsUiProvider
707  *
708  * Get animation window.
709  *
710  * Returns: the #GtkWidget
711  *
712  * Since: 3.0.0
713  */
714 GtkWidget*
ags_ui_provider_get_preferences(AgsUiProvider * ui_provider)715 ags_ui_provider_get_preferences(AgsUiProvider *ui_provider)
716 {
717   AgsUiProviderInterface *ui_provider_interface;
718 
719   g_return_val_if_fail(AGS_IS_UI_PROVIDER(ui_provider), NULL);
720   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
721   g_return_val_if_fail(ui_provider_interface->get_preferences, NULL);
722 
723   return(ui_provider_interface->get_preferences(ui_provider));
724 }
725 
726 /**
727  * ags_ui_provider_set_preferences:
728  * @ui_provider: the #AgsUiProvider
729  * @preferences: the #GtkWidget
730  *
731  * Set animation window.
732  *
733  * Since: 3.0.0
734  */
735 void
ags_ui_provider_set_preferences(AgsUiProvider * ui_provider,GtkWidget * preferences)736 ags_ui_provider_set_preferences(AgsUiProvider *ui_provider,
737 				GtkWidget *preferences)
738 {
739   AgsUiProviderInterface *ui_provider_interface;
740 
741   g_return_if_fail(AGS_IS_UI_PROVIDER(ui_provider));
742   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
743   g_return_if_fail(ui_provider_interface->set_preferences);
744 
745   ui_provider_interface->set_preferences(ui_provider,
746 					 preferences);
747 }
748 
749 /**
750  * ags_ui_provider_get_history_browser:
751  * @ui_provider: the #AgsUiProvider
752  *
753  * Get animation window.
754  *
755  * Returns: the #GtkWidget
756  *
757  * Since: 3.0.0
758  */
759 GtkWidget*
ags_ui_provider_get_history_browser(AgsUiProvider * ui_provider)760 ags_ui_provider_get_history_browser(AgsUiProvider *ui_provider)
761 {
762   AgsUiProviderInterface *ui_provider_interface;
763 
764   g_return_val_if_fail(AGS_IS_UI_PROVIDER(ui_provider), NULL);
765   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
766   g_return_val_if_fail(ui_provider_interface->get_history_browser, NULL);
767 
768   return(ui_provider_interface->get_history_browser(ui_provider));
769 }
770 
771 /**
772  * ags_ui_provider_set_history_browser:
773  * @ui_provider: the #AgsUiProvider
774  * @history_browser: the #GtkWidget
775  *
776  * Set animation window.
777  *
778  * Since: 3.0.0
779  */
780 void
ags_ui_provider_set_history_browser(AgsUiProvider * ui_provider,GtkWidget * history_browser)781 ags_ui_provider_set_history_browser(AgsUiProvider *ui_provider,
782 				    GtkWidget *history_browser)
783 {
784   AgsUiProviderInterface *ui_provider_interface;
785 
786   g_return_if_fail(AGS_IS_UI_PROVIDER(ui_provider));
787   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
788   g_return_if_fail(ui_provider_interface->set_history_browser);
789 
790   ui_provider_interface->set_history_browser(ui_provider,
791 					     history_browser);
792 }
793 
794 /**
795  * ags_ui_provider_get_midi_browser:
796  * @ui_provider: the #AgsUiProvider
797  *
798  * Get animation window.
799  *
800  * Returns: the #GtkWidget
801  *
802  * Since: 3.0.0
803  */
804 GtkWidget*
ags_ui_provider_get_midi_browser(AgsUiProvider * ui_provider)805 ags_ui_provider_get_midi_browser(AgsUiProvider *ui_provider)
806 {
807   AgsUiProviderInterface *ui_provider_interface;
808 
809   g_return_val_if_fail(AGS_IS_UI_PROVIDER(ui_provider), NULL);
810   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
811   g_return_val_if_fail(ui_provider_interface->get_midi_browser, NULL);
812 
813   return(ui_provider_interface->get_midi_browser(ui_provider));
814 }
815 
816 /**
817  * ags_ui_provider_set_midi_browser:
818  * @ui_provider: the #AgsUiProvider
819  * @midi_browser: the #GtkWidget
820  *
821  * Set animation window.
822  *
823  * Since: 3.0.0
824  */
825 void
ags_ui_provider_set_midi_browser(AgsUiProvider * ui_provider,GtkWidget * midi_browser)826 ags_ui_provider_set_midi_browser(AgsUiProvider *ui_provider,
827 				 GtkWidget *midi_browser)
828 {
829   AgsUiProviderInterface *ui_provider_interface;
830 
831   g_return_if_fail(AGS_IS_UI_PROVIDER(ui_provider));
832   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
833   g_return_if_fail(ui_provider_interface->set_midi_browser);
834 
835   ui_provider_interface->set_midi_browser(ui_provider,
836 					  midi_browser);
837 }
838 
839 /**
840  * ags_ui_provider_et_sample_browser:
841  * @ui_provider: the #AgsUiProvider
842  *
843  * Get animation window.
844  *
845  * Returns: the #GtkWidget
846  *
847  * Since: 3.0.0
848  */
849 GtkWidget*
ags_ui_provider_get_sample_browser(AgsUiProvider * ui_provider)850 ags_ui_provider_get_sample_browser(AgsUiProvider *ui_provider)
851 {
852   AgsUiProviderInterface *ui_provider_interface;
853 
854   g_return_val_if_fail(AGS_IS_UI_PROVIDER(ui_provider), NULL);
855   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
856   g_return_val_if_fail(ui_provider_interface->get_sample_browser, NULL);
857 
858   return(ui_provider_interface->get_sample_browser(ui_provider));
859 }
860 
861 /**
862  * ags_ui_provider_set_sample_browser:
863  * @ui_provider: the #AgsUiProvider
864  * @sample_browser: the #GtkWidget
865  *
866  * Set animation window.
867  *
868  * Since: 3.0.0
869  */
870 void
ags_ui_provider_set_sample_browser(AgsUiProvider * ui_provider,GtkWidget * sample_browser)871 ags_ui_provider_set_sample_browser(AgsUiProvider *ui_provider,
872 				   GtkWidget *sample_browser)
873 {
874   AgsUiProviderInterface *ui_provider_interface;
875 
876   g_return_if_fail(AGS_IS_UI_PROVIDER(ui_provider));
877   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
878   g_return_if_fail(ui_provider_interface->set_sample_browser);
879 
880   ui_provider_interface->set_sample_browser(ui_provider,
881 					    sample_browser);
882 }
883 
884 /**
885  * ags_ui_provider_get_midi_import_wizard:
886  * @ui_provider: the #AgsUiProvider
887  *
888  * Get animation window.
889  *
890  * Returns: the #GtkWidget
891  *
892  * Since: 3.0.0
893  */
894 GtkWidget*
ags_ui_provider_get_midi_import_wizard(AgsUiProvider * ui_provider)895 ags_ui_provider_get_midi_import_wizard(AgsUiProvider *ui_provider)
896 {
897   AgsUiProviderInterface *ui_provider_interface;
898 
899   g_return_val_if_fail(AGS_IS_UI_PROVIDER(ui_provider), NULL);
900   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
901   g_return_val_if_fail(ui_provider_interface->get_midi_import_wizard, NULL);
902 
903   return(ui_provider_interface->get_midi_import_wizard(ui_provider));
904 }
905 
906 /**
907  * ags_ui_provider_set_midi_import_wizard:
908  * @ui_provider: the #AgsUiProvider
909  * @midi_import_wizard: the #GtkWidget
910  *
911  * Set animation window.
912  *
913  * Since: 3.0.0
914  */
915 void
ags_ui_provider_set_midi_import_wizard(AgsUiProvider * ui_provider,GtkWidget * midi_import_wizard)916 ags_ui_provider_set_midi_import_wizard(AgsUiProvider *ui_provider,
917 				       GtkWidget *midi_import_wizard)
918 {
919   AgsUiProviderInterface *ui_provider_interface;
920 
921   g_return_if_fail(AGS_IS_UI_PROVIDER(ui_provider));
922   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
923   g_return_if_fail(ui_provider_interface->set_midi_import_wizard);
924 
925   ui_provider_interface->set_midi_import_wizard(ui_provider,
926 						midi_import_wizard);
927 }
928 
929 /**
930  * ags_ui_provider_get_midi_export_wizard:
931  * @ui_provider: the #AgsUiProvider
932  *
933  * Get animation window.
934  *
935  * Returns: the #GtkWidget
936  *
937  * Since: 3.0.0
938  */
939 GtkWidget*
ags_ui_provider_get_midi_export_wizard(AgsUiProvider * ui_provider)940 ags_ui_provider_get_midi_export_wizard(AgsUiProvider *ui_provider)
941 {
942   AgsUiProviderInterface *ui_provider_interface;
943 
944   g_return_val_if_fail(AGS_IS_UI_PROVIDER(ui_provider), NULL);
945   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
946   g_return_val_if_fail(ui_provider_interface->get_midi_export_wizard, NULL);
947 
948   return(ui_provider_interface->get_midi_export_wizard(ui_provider));
949 }
950 
951 /**
952  * ags_ui_provider_set_midi_export_wizard:
953  * @ui_provider: the #AgsUiProvider
954  * @midi_export_wizard: the #GtkWidget
955  *
956  * Set animation window.
957  *
958  * Since: 3.0.0
959  */
960 void
ags_ui_provider_set_midi_export_wizard(AgsUiProvider * ui_provider,GtkWidget * midi_export_wizard)961 ags_ui_provider_set_midi_export_wizard(AgsUiProvider *ui_provider,
962 				       GtkWidget *midi_export_wizard)
963 {
964   AgsUiProviderInterface *ui_provider_interface;
965 
966   g_return_if_fail(AGS_IS_UI_PROVIDER(ui_provider));
967   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
968   g_return_if_fail(ui_provider_interface->set_midi_export_wizard);
969 
970   ui_provider_interface->set_midi_export_wizard(ui_provider,
971 						midi_export_wizard);
972 }
973 
974 /**
975  * ags_ui_provider_get_machine:
976  * @ui_provider: the #AgsUiProvider
977  *
978  * Get machine.
979  *
980  * Returns: the #GList-struct containing #AgsMachine
981  *
982  * Since: 3.0.0
983  */
984 GList*
ags_ui_provider_get_machine(AgsUiProvider * ui_provider)985 ags_ui_provider_get_machine(AgsUiProvider *ui_provider)
986 {
987   AgsUiProviderInterface *ui_provider_interface;
988 
989   g_return_val_if_fail(AGS_IS_UI_PROVIDER(ui_provider), NULL);
990   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
991   g_return_val_if_fail(ui_provider_interface->get_machine, NULL);
992 
993   return(ui_provider_interface->get_machine(ui_provider));
994 }
995 
996 /**
997  * ags_ui_provider_set_machine:
998  * @ui_provider: the #AgsUiProvider
999  * @machine: the #GList-struct containing #AgsMachine
1000  *
1001  * Set machine.
1002  *
1003  * Since: 3.0.0
1004  */
1005 void
ags_ui_provider_set_machine(AgsUiProvider * ui_provider,GList * machine)1006 ags_ui_provider_set_machine(AgsUiProvider *ui_provider,
1007 			    GList *machine)
1008 {
1009   AgsUiProviderInterface *ui_provider_interface;
1010 
1011   g_return_if_fail(AGS_IS_UI_PROVIDER(ui_provider));
1012   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
1013   g_return_if_fail(ui_provider_interface->set_machine);
1014 
1015   ui_provider_interface->set_machine(ui_provider,
1016 				     machine);
1017 }
1018 
1019 /**
1020  * ags_ui_provider_get_composite_editor:
1021  * @ui_provider: the #AgsUiProvider
1022  *
1023  * Get animation window.
1024  *
1025  * Returns: the #GtkWidget
1026  *
1027  * Since: 3.0.0
1028  */
1029 GtkWidget*
ags_ui_provider_get_composite_editor(AgsUiProvider * ui_provider)1030 ags_ui_provider_get_composite_editor(AgsUiProvider *ui_provider)
1031 {
1032   AgsUiProviderInterface *ui_provider_interface;
1033 
1034   g_return_val_if_fail(AGS_IS_UI_PROVIDER(ui_provider), NULL);
1035   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
1036   g_return_val_if_fail(ui_provider_interface->get_composite_editor, NULL);
1037 
1038   return(ui_provider_interface->get_composite_editor(ui_provider));
1039 }
1040 
1041 /**
1042  * ags_ui_provider_set_composite_editor:
1043  * @ui_provider: the #AgsUiProvider
1044  * @composite_editor: the #GtkWidget
1045  *
1046  * Set animation window.
1047  *
1048  * Since: 3.0.0
1049  */
1050 void
ags_ui_provider_set_composite_editor(AgsUiProvider * ui_provider,GtkWidget * composite_editor)1051 ags_ui_provider_set_composite_editor(AgsUiProvider *ui_provider,
1052 				     GtkWidget *composite_editor)
1053 {
1054   AgsUiProviderInterface *ui_provider_interface;
1055 
1056   g_return_if_fail(AGS_IS_UI_PROVIDER(ui_provider));
1057   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
1058   g_return_if_fail(ui_provider_interface->set_composite_editor);
1059 
1060   ui_provider_interface->set_composite_editor(ui_provider,
1061 					      composite_editor);
1062 }
1063 
1064 /**
1065  * ags_ui_provider_get_navigation:
1066  * @ui_provider: the #AgsUiProvider
1067  *
1068  * Get animation window.
1069  *
1070  * Returns: the #GtkWidget
1071  *
1072  * Since: 3.0.0
1073  */
1074 GtkWidget*
ags_ui_provider_get_navigation(AgsUiProvider * ui_provider)1075 ags_ui_provider_get_navigation(AgsUiProvider *ui_provider)
1076 {
1077   AgsUiProviderInterface *ui_provider_interface;
1078 
1079   g_return_val_if_fail(AGS_IS_UI_PROVIDER(ui_provider), NULL);
1080   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
1081   g_return_val_if_fail(ui_provider_interface->get_navigation, NULL);
1082 
1083   return(ui_provider_interface->get_navigation(ui_provider));
1084 }
1085 
1086 /**
1087  * ags_ui_provider_set_navigation:
1088  * @ui_provider: the #AgsUiProvider
1089  * @navigation: the #GtkWidget
1090  *
1091  * Set animation window.
1092  *
1093  * Since: 3.0.0
1094  */
1095 void
ags_ui_provider_set_navigation(AgsUiProvider * ui_provider,GtkWidget * navigation)1096 ags_ui_provider_set_navigation(AgsUiProvider *ui_provider,
1097 			       GtkWidget *navigation)
1098 {
1099   AgsUiProviderInterface *ui_provider_interface;
1100 
1101   g_return_if_fail(AGS_IS_UI_PROVIDER(ui_provider));
1102   ui_provider_interface = AGS_UI_PROVIDER_GET_INTERFACE(ui_provider);
1103   g_return_if_fail(ui_provider_interface->set_navigation);
1104 
1105   ui_provider_interface->set_navigation(ui_provider,
1106 					navigation);
1107 }
1108