1
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
3
* Copyright (C) 2007 Ray Strode <rstrode@redhat.com>
4
* Copyright (C) 2007 William Jon McCann <mccann@jhu.edu>
6
* This program is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; either version 2 of the License, or
9
* (at your option) any later version.
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22
#ifndef __GDM_CHOOSER_WIDGET_H
23
#define __GDM_CHOOSER_WIDGET_H
25
#include <glib-object.h>
30
#define GDM_TYPE_CHOOSER_WIDGET (gdm_chooser_widget_get_type ())
31
#define GDM_CHOOSER_WIDGET(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GDM_TYPE_CHOOSER_WIDGET, GdmChooserWidget))
32
#define GDM_CHOOSER_WIDGET_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GDM_TYPE_CHOOSER_WIDGET, GdmChooserWidgetClass))
33
#define GDM_IS_CHOOSER_WIDGET(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GDM_TYPE_CHOOSER_WIDGET))
34
#define GDM_IS_CHOOSER_WIDGET_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GDM_TYPE_CHOOSER_WIDGET))
35
#define GDM_CHOOSER_WIDGET_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GDM_TYPE_CHOOSER_WIDGET, GdmChooserWidgetClass))
37
typedef struct GdmChooserWidgetPrivate GdmChooserWidgetPrivate;
42
GdmChooserWidgetPrivate *priv;
47
GtkAlignmentClass parent_class;
49
void (* loaded) (GdmChooserWidget *widget);
51
void (* activated) (GdmChooserWidget *widget);
52
void (* deactivated) (GdmChooserWidget *widget);
53
} GdmChooserWidgetClass;
56
GDM_CHOOSER_WIDGET_POSITION_TOP = 0,
57
GDM_CHOOSER_WIDGET_POSITION_BOTTOM,
58
} GdmChooserWidgetPosition;
60
typedef gboolean (*GdmChooserUpdateForeachFunc) (GdmChooserWidget *widget,
67
gboolean *is_separate,
70
GType gdm_chooser_widget_get_type (void);
71
GtkWidget * gdm_chooser_widget_new (const char *unactive_label,
72
const char *active_label);
74
void gdm_chooser_widget_add_item (GdmChooserWidget *widget,
81
gboolean keep_separate);
83
void gdm_chooser_widget_update_foreach_item (GdmChooserWidget *widget,
84
GdmChooserUpdateForeachFunc cb,
87
void gdm_chooser_widget_update_item (GdmChooserWidget *widget,
91
const char *new_comment,
94
gboolean new_is_separate);
96
void gdm_chooser_widget_remove_item (GdmChooserWidget *widget,
99
gboolean gdm_chooser_widget_lookup_item (GdmChooserWidget *widget,
106
gboolean *is_separate);
108
char * gdm_chooser_widget_get_selected_item (GdmChooserWidget *widget);
109
void gdm_chooser_widget_set_selected_item (GdmChooserWidget *widget,
112
char * gdm_chooser_widget_get_active_item (GdmChooserWidget *widget);
113
void gdm_chooser_widget_set_active_item (GdmChooserWidget *widget,
116
void gdm_chooser_widget_set_item_in_use (GdmChooserWidget *widget,
119
void gdm_chooser_widget_set_item_priority (GdmChooserWidget *widget,
122
void gdm_chooser_widget_set_item_timer (GdmChooserWidget *widget,
125
void gdm_chooser_widget_set_in_use_message (GdmChooserWidget *widget,
126
const char *message);
128
void gdm_chooser_widget_set_separator_position (GdmChooserWidget *widget,
129
GdmChooserWidgetPosition position);
130
void gdm_chooser_widget_set_hide_inactive_items (GdmChooserWidget *widget,
131
gboolean should_hide);
133
void gdm_chooser_widget_activate_selected_item (GdmChooserWidget *widget);
135
int gdm_chooser_widget_get_number_of_items (GdmChooserWidget *widget);
136
void gdm_chooser_widget_activate_if_one_item (GdmChooserWidget *widget);
137
void gdm_chooser_widget_propagate_pending_key_events (GdmChooserWidget *widget);
141
void gdm_chooser_widget_loaded (GdmChooserWidget *widget);
145
#endif /* __GDM_CHOOSER_WIDGET_H */