Branch data Line data Source code
1 : : // SPDX-License-Identifier: GPL-3.0-or-later
2 : : // SPDX-FileCopyrightText: Andy Holmes <andrew.g.r.holmes@gmail.com>
3 : :
4 : : #define G_LOG_DOMAIN "valent-ui-main"
5 : :
6 : : #include "config.h"
7 : :
8 : : #include <adwaita.h>
9 : : #include <gtk/gtk.h>
10 : :
11 : : #include "valent-device-page.h"
12 : : #include "valent-device-row.h"
13 : : #include "valent-device-preferences-battery.h"
14 : : #include "valent-device-preferences-clipboard.h"
15 : : #include "valent-device-preferences-commands.h"
16 : : #include "valent-device-preferences-connectivity.h"
17 : : #include "valent-device-preferences-contacts.h"
18 : : #include "valent-device-preferences-notification.h"
19 : : #include "valent-device-preferences-sftp.h"
20 : : #include "valent-device-preferences-share.h"
21 : : #include "valent-device-preferences-telephony.h"
22 : : #include "valent-device-preferences-group.h"
23 : : #include "valent-device-preferences-dialog.h"
24 : : #include "valent-gnome-application.h"
25 : : #include "valent-input-remote.h"
26 : : #include "valent-media-remote.h"
27 : : #include "valent-media-window.h"
28 : : #include "valent-menu-list.h"
29 : : #include "valent-menu-stack.h"
30 : : #include "valent-mixer-remote.h"
31 : : #include "valent-preferences-dialog.h"
32 : : #include "valent-ui-utils-private.h"
33 : : #include "valent-window.h"
34 : :
35 : :
36 : : static void
37 : 17 : valent_ui_init_resources (void)
38 : : {
39 : 34 : g_autoptr (GtkCssProvider) css_theme = NULL;
40 [ + - ]: 17 : g_autoptr (GtkIconTheme) icon_theme = NULL;
41 : :
42 : 17 : css_theme = gtk_css_provider_new ();
43 : 17 : gtk_css_provider_load_from_resource (css_theme, "/plugins/gnome/style.css");
44 : 17 : gtk_style_context_add_provider_for_display (gdk_display_get_default (),
45 : : GTK_STYLE_PROVIDER (css_theme),
46 : : GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
47 : :
48 : 17 : icon_theme = gtk_icon_theme_get_for_display (gdk_display_get_default ());
49 [ + - ]: 17 : gtk_icon_theme_add_resource_path (icon_theme, "/ca/andyholmes/Valent/icons");
50 : 17 : }
51 : :
52 : : static void
53 : 17 : valent_ui_init_types (void)
54 : : {
55 : 17 : g_type_ensure (VALENT_TYPE_DEVICE_PAGE);
56 : 17 : g_type_ensure (VALENT_TYPE_DEVICE_ROW);
57 : 17 : g_type_ensure (VALENT_TYPE_DEVICE_PREFERENCES_GROUP);
58 : 17 : g_type_ensure (VALENT_TYPE_DEVICE_PREFERENCES_DIALOG);
59 : 17 : g_type_ensure (VALENT_TYPE_BATTERY_PREFERENCES);
60 : 17 : g_type_ensure (VALENT_TYPE_CLIPBOARD_PREFERENCES);
61 : 17 : g_type_ensure (VALENT_TYPE_RUNCOMMAND_PREFERENCES);
62 : 17 : g_type_ensure (VALENT_TYPE_CONNECTIVITY_REPORT_PREFERENCES);
63 : 17 : g_type_ensure (VALENT_TYPE_CONTACTS_PREFERENCES);
64 : 17 : g_type_ensure (VALENT_TYPE_NOTIFICATION_PREFERENCES);
65 : 17 : g_type_ensure (VALENT_TYPE_SFTP_PREFERENCES);
66 : 17 : g_type_ensure (VALENT_TYPE_SHARE_PREFERENCES);
67 : 17 : g_type_ensure (VALENT_TYPE_TELEPHONY_PREFERENCES);
68 : 17 : g_type_ensure (VALENT_TYPE_GNOME_APPLICATION);
69 : 17 : g_type_ensure (VALENT_TYPE_INPUT_REMOTE);
70 : 17 : g_type_ensure (VALENT_TYPE_MEDIA_REMOTE);
71 : 17 : g_type_ensure (VALENT_TYPE_MEDIA_WINDOW);
72 : 17 : g_type_ensure (VALENT_TYPE_MENU_LIST);
73 : 17 : g_type_ensure (VALENT_TYPE_MENU_STACK);
74 : 17 : g_type_ensure (VALENT_TYPE_MIXER_REMOTE);
75 : 17 : g_type_ensure (VALENT_TYPE_PREFERENCES_DIALOG);
76 : 17 : g_type_ensure (VALENT_TYPE_WINDOW);
77 : 17 : }
78 : :
79 : : /**
80 : : * valent_ui_init:
81 : : *
82 : : * Initialize Valent's default user interface.
83 : : *
84 : : * Returns: %TRUE if successful, or %FALSE on failure
85 : : *
86 : : * Since: 1.0
87 : : */
88 : : gboolean
89 : 17 : valent_ui_init (void)
90 : : {
91 : 17 : static gboolean initialized = -1;
92 : :
93 [ + - ]: 17 : if G_LIKELY (initialized != -1)
94 : : return initialized;
95 : :
96 [ + - ]: 17 : if ((initialized = gtk_init_check ()))
97 : : {
98 : 17 : adw_init ();
99 : :
100 : 17 : valent_ui_init_types ();
101 : 17 : valent_ui_init_resources ();
102 : : }
103 : :
104 : 17 : return initialized;
105 : : }
|