summaryrefslogtreecommitdiffstats
path: root/shell/cc-panel-list.h
blob: 8d7324d16f94a2fc8acd51fc18abeaafffb80969 (plain)
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
/* cc-panel-list.c
 *
 * Copyright (C) 2016 Endless, Inc
 *
 * This program 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.
 *
 * This program 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 this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 * Author: Georges Basile Stavracas Neto <gbsneto@gnome.org>
 */

#pragma once

#include <glib-object.h>

#include "cc-panel.h"
#include "cc-shell-model.h"

G_BEGIN_DECLS

typedef enum
{
  CC_PANEL_LIST_MAIN,
  CC_PANEL_LIST_PRIVACY,
  CC_PANEL_LIST_WIDGET,
  CC_PANEL_LIST_SEARCH
} CcPanelListView;

#define CC_TYPE_PANEL_LIST (cc_panel_list_get_type())

G_DECLARE_FINAL_TYPE (CcPanelList, cc_panel_list, CC, PANEL_LIST, GtkStack)

GtkWidget*           cc_panel_list_new                           (void);

gboolean             cc_panel_list_activate                      (CcPanelList        *self);

const gchar*         cc_panel_list_get_search_query              (CcPanelList        *self);

void                 cc_panel_list_set_search_query              (CcPanelList        *self,
                                                                  const gchar        *search);

CcPanelListView      cc_panel_list_get_view                      (CcPanelList        *self);

void                 cc_panel_list_go_previous                   (CcPanelList        *self);

void                 cc_panel_list_add_panel                     (CcPanelList        *self,
                                                                  CcPanelCategory     category,
                                                                  const gchar        *id,
                                                                  const gchar        *title,
                                                                  const gchar        *description,
                                                                  const GStrv         keywords,
                                                                  const gchar        *icon,
                                                                  CcPanelVisibility   visibility,
                                                                  gboolean            has_sidebar);

void                 cc_panel_list_set_active_panel               (CcPanelList       *self,
                                                                   const gchar       *id);

void                 cc_panel_list_set_panel_visibility          (CcPanelList        *self,
                                                                  const gchar        *id,
                                                                  CcPanelVisibility   visibility);

void                 cc_panel_list_add_sidebar_widget            (CcPanelList        *self,
                                                                  GtkWidget          *widget);

void                 cc_panel_list_set_selection_mode            (CcPanelList        *self,
                                                                  GtkSelectionMode    selection_mode);

G_END_DECLS