Newer
Older
* SPDX-FileCopyrightText: 2017-2021 Bruce Cowan <bruce@bcowan.me.uk>
*
* SPDX-License-Identifier: GPL-3.0-or-later
#include "config.h"
#include "rugby-possibility-widget.h"
#include <glib/gi18n.h>
struct _RugbyAppWindow
{
GtkApplicationWindow parent;
};
G_DEFINE_TYPE (RugbyAppWindow, rugby_app_window, GTK_TYPE_APPLICATION_WINDOW)
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
RugbyPossibility *possibility = gtk_list_item_get_item (item);
int tries, utries, kicks;
GString *tooltip = g_string_new (NULL);
if (!possibility)
return NULL;
g_object_get (possibility,
"tries", &tries,
"utries", &utries,
"kicks", &kicks,
NULL);
if ((tries + utries) > 0)
{
if (tries == 1 && utries == 0)
g_string_printf (tooltip, "1 converted try");
else if (tries == 0 && utries == 1)
g_string_printf (tooltip, "1 unconverted try");
else
g_string_append_printf (tooltip,
ngettext ("%d try, %d converted",
"%d tries, %d converted",
tries + utries),
tries + utries, tries);
if (kicks > 0)
g_string_append_printf (tooltip,
ngettext (", %d kick",
", %d kicks",
kicks),
kicks);
}
else if (kicks > 0)
{
g_string_append_printf (tooltip,
ngettext ("%d kick",
"%d kicks", kicks),
kicks);
}
return g_string_free (tooltip, FALSE);
}
static void
rugby_app_window_init (RugbyAppWindow *self)
{
gtk_widget_init_template (GTK_WIDGET (self));
}
static void
rugby_app_window_class_init (RugbyAppWindowClass *klass)
{
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
g_type_ensure (RUGBY_TYPE_POSSIBILITY_WIDGET);
g_type_ensure (RUGBY_TYPE_LIST_STORE);
gtk_widget_class_set_template_from_resource (widget_class,
"/uk/me/bcowan/rugby/interface.ui");
gtk_widget_class_bind_template_callback (widget_class, item_tooltip_cb);
return g_object_new (RUGBY_TYPE_APP_WINDOW,
"application", app,
NULL);