summaryrefslogtreecommitdiffstats
path: root/shell/cc-shell-model.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--shell/cc-shell-model.h84
1 files changed, 84 insertions, 0 deletions
diff --git a/shell/cc-shell-model.h b/shell/cc-shell-model.h
new file mode 100644
index 0000000..763803e
--- /dev/null
+++ b/shell/cc-shell-model.h
@@ -0,0 +1,84 @@
+/*
+ * 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 "cc-panel.h"
+
+#include <gtk/gtk.h>
+
+G_BEGIN_DECLS
+
+#define CC_TYPE_SHELL_MODEL cc_shell_model_get_type()
+
+G_DECLARE_FINAL_TYPE (CcShellModel, cc_shell_model, CC, SHELL_MODEL, GtkListStore)
+
+typedef enum
+{
+ CC_CATEGORY_CONNECTIVITY,
+ CC_CATEGORY_PERSONALIZATION,
+ CC_CATEGORY_ACCOUNT,
+ CC_CATEGORY_HARDWARE,
+ CC_CATEGORY_PRIVACY,
+ CC_CATEGORY_DEVICES,
+ CC_CATEGORY_DETAILS,
+ CC_CATEGORY_LAST
+} CcPanelCategory;
+
+enum
+{
+ COL_NAME,
+ COL_CASEFOLDED_NAME,
+ COL_APP,
+ COL_ID,
+ COL_CATEGORY,
+ COL_DESCRIPTION,
+ COL_CASEFOLDED_DESCRIPTION,
+ COL_GICON,
+ COL_KEYWORDS,
+ COL_VISIBILITY,
+ COL_HAS_SIDEBAR,
+
+ N_COLS
+};
+
+
+CcShellModel* cc_shell_model_new (void);
+
+void cc_shell_model_add_item (CcShellModel *model,
+ CcPanelCategory category,
+ GAppInfo *appinfo,
+ const char *id);
+
+gboolean cc_shell_model_has_panel (CcShellModel *model,
+ const char *id);
+
+gboolean cc_shell_model_iter_matches_search (CcShellModel *model,
+ GtkTreeIter *iter,
+ const char *term);
+
+void cc_shell_model_set_sort_terms (CcShellModel *model,
+ GStrv terms);
+
+void cc_shell_model_set_panel_visibility (CcShellModel *self,
+ const gchar *id,
+ CcPanelVisibility visible);
+
+G_END_DECLS