summaryrefslogtreecommitdiffstats
path: root/shell/cc-shell.h
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 14:36:24 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 14:36:24 +0000
commit9b6d8e63db85c30007b463e91f91a791969fa83f (patch)
tree0899af51d73c1bf986f73ae39a03c4436083018a /shell/cc-shell.h
parentInitial commit. (diff)
downloadgnome-control-center-9b6d8e63db85c30007b463e91f91a791969fa83f.tar.xz
gnome-control-center-9b6d8e63db85c30007b463e91f91a791969fa83f.zip
Adding upstream version 1:3.38.4.upstream/1%3.38.4upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'shell/cc-shell.h')
-rw-r--r--shell/cc-shell.h77
1 files changed, 77 insertions, 0 deletions
diff --git a/shell/cc-shell.h b/shell/cc-shell.h
new file mode 100644
index 0000000..f5d35db
--- /dev/null
+++ b/shell/cc-shell.h
@@ -0,0 +1,77 @@
+/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*-
+ *
+ * Copyright (c) 2010 Intel, Inc.
+ *
+ * The Control Center is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * The Control Center is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with the Control Center; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Author: Thomas Wood <thos@gnome.org>
+ */
+
+#pragma once
+
+#include <gtk/gtk.h>
+
+G_BEGIN_DECLS
+
+#define CC_TYPE_SHELL (cc_shell_get_type())
+#define CC_SHELL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CC_TYPE_SHELL, CcShell))
+#define CC_IS_SHELL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CC_TYPE_SHELL))
+#define CC_SHELL_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), CC_TYPE_SHELL, CcShellInterface))
+
+#define CC_SHELL_PANEL_EXTENSION_POINT "control-center-1"
+
+typedef struct _CcShell CcShell;
+typedef struct _CcShellInterface CcShellInterface;
+
+/* cc-panel.h requires CcShell, so make sure they are defined first */
+#include "cc-panel.h"
+
+/**
+ * CcShellInterface:
+ * @set_active_panel_from_id: virtual function to set the active panel from an
+ * id string
+ *
+ */
+struct _CcShellInterface
+{
+ GTypeInterface g_iface;
+
+ /* methods */
+ gboolean (*set_active_panel_from_id) (CcShell *shell,
+ const gchar *id,
+ GVariant *parameters,
+ GError **error);
+ GtkWidget * (*get_toplevel) (CcShell *shell);
+ void (*embed_widget_in_header) (CcShell *shell,
+ GtkWidget *widget,
+ GtkPositionType position);
+};
+
+GType cc_shell_get_type (void) G_GNUC_CONST;
+
+CcPanel * cc_shell_get_active_panel (CcShell *shell);
+void cc_shell_set_active_panel (CcShell *shell,
+ CcPanel *panel);
+gboolean cc_shell_set_active_panel_from_id (CcShell *shell,
+ const gchar *id,
+ GVariant *parameters,
+ GError **error);
+GtkWidget * cc_shell_get_toplevel (CcShell *shell);
+
+void cc_shell_embed_widget_in_header (CcShell *shell,
+ GtkWidget *widget,
+ GtkPositionType position);
+
+G_END_DECLS