summaryrefslogtreecommitdiff
path: root/libgreeter/gdm-greeter.h
blob: 380c120f5a930bb0740eae8eb9625b82a3a7a9b1 (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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
 *
 * Copyright (C) 2007 William Jon McCann <mccann@jhu.edu>
 *
 * 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, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 *
 */


#ifndef __GDM_GREETER_H
#define __GDM_GREETER_H

#include <glib-object.h>

G_BEGIN_DECLS

#define GDM_TYPE_GREETER         (gdm_greeter_get_type ())
#define GDM_GREETER(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), GDM_TYPE_GREETER, GdmGreeter))
#define GDM_GREETER_CLASS(k)     (G_TYPE_CHECK_CLASS_CAST((k), GDM_TYPE_GREETER, GdmGreeterClass))
#define GDM_IS_GREETER(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), GDM_TYPE_GREETER))
#define GDM_IS_GREETER_CLASS(k)  (G_TYPE_CHECK_CLASS_TYPE ((k), GDM_TYPE_GREETER))
#define GDM_GREETER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GDM_TYPE_GREETER, GdmGreeterClass))

typedef struct GdmGreeterPrivate GdmGreeterPrivate;

typedef struct
{
        GObject            parent;
        GdmGreeterPrivate *priv;
} GdmGreeter;

typedef struct
{
        GObjectClass   parent_class;

        /* signals */
        void (* begin_verification)   (GdmGreeter *greeter,
                                       const char *username);
        void (* query_answer)         (GdmGreeter *greeter,
                                       const char *text);
        void (* session_selected)     (GdmGreeter *greeter,
                                       const char *text);
        void (* language_selected)    (GdmGreeter *greeter,
                                       const char *text);
        void (* user_selected)        (GdmGreeter *greeter,
                                       const char *text);
        void (* hostname_selected)    (GdmGreeter *greeter,
                                       const char *text);
        void (* cancelled)            (GdmGreeter *greeter);
        void (* disconnected)         (GdmGreeter *greeter);

        /* methods */
        gboolean (*start)             (GdmGreeter *greeter);
        gboolean (*stop)              (GdmGreeter *greeter);
        gboolean (*ready)             (GdmGreeter *greeter);
        gboolean (*reset)             (GdmGreeter *greeter);

        gboolean (*info_query)        (GdmGreeter *greeter,
                                       const char *text);
        gboolean (*secret_info_query) (GdmGreeter *greeter,
                                       const char *text);
        gboolean (*info)              (GdmGreeter *greeter,
                                       const char *text);
        gboolean (*problem)           (GdmGreeter *greeter,
                                       const char *text);

} GdmGreeterClass;

typedef enum
{
         GDM_GREETER_ERROR_GENERAL
} GdmGreeterError;

#define GDM_GREETER_ERROR gdm_greeter_error_quark ()

GQuark              gdm_greeter_error_quark                    (void);
GType               gdm_greeter_get_type                       (void);

gboolean            gdm_greeter_start                          (GdmGreeter *greeter);
gboolean            gdm_greeter_stop                           (GdmGreeter *greeter);
gboolean            gdm_greeter_ready                          (GdmGreeter *greeter);
gboolean            gdm_greeter_reset                          (GdmGreeter *greeter);

/* emit signals */
gboolean            gdm_greeter_emit_begin_verification        (GdmGreeter *greeter,
                                                                const char *username);
gboolean            gdm_greeter_emit_answer_query              (GdmGreeter *greeter,
                                                                const char *text);
gboolean            gdm_greeter_emit_select_session            (GdmGreeter *greeter,
                                                                const char *text);
gboolean            gdm_greeter_emit_select_language           (GdmGreeter *greeter,
                                                                const char *text);
gboolean            gdm_greeter_emit_select_user               (GdmGreeter *greeter,
                                                                const char *text);
gboolean            gdm_greeter_emit_select_hostname           (GdmGreeter *greeter,
                                                                const char *text);
gboolean            gdm_greeter_emit_cancelled                 (GdmGreeter *greeter);
gboolean            gdm_greeter_emit_disconnected              (GdmGreeter *greeter);

/* actions */
gboolean            gdm_greeter_info_query                     (GdmGreeter *greeter,
                                                                const char *text);
gboolean            gdm_greeter_secret_info_query              (GdmGreeter *greeter,
                                                                const char *text);
gboolean            gdm_greeter_info                           (GdmGreeter *greeter,
                                                                const char *text);
gboolean            gdm_greeter_problem                        (GdmGreeter *greeter,
                                                                const char *text);
/* misc */
gboolean            gdm_greeter_display_is_local               (GdmGreeter *greeter);

G_END_DECLS

#endif /* __GDM_GREETER_H */