/* libgnome-games-support-1.vapi generated by valac 0.56.18, do not modify. */

namespace Games {
	namespace Scores {
		[CCode (cheader_filename = "libgnome-games-support.h")]
		public class Category : GLib.Object {
			public Category (string key, string name);
			public string key { get; set; }
			public string name { get; set; }
		}
		[CCode (cheader_filename = "libgnome-games-support.h")]
		public class Context : GLib.Object {
			public delegate Games.Scores.Category? CategoryRequestFunc (string category_key);
			public Context (string app_name, string category_type, Gtk.Window? game_window, Games.Scores.Context.CategoryRequestFunc category_request, Games.Scores.Style style);
			public async bool add_score (long score, Games.Scores.Category category, GLib.Cancellable? cancellable) throws GLib.Error;
			public override void constructed ();
			public Gee.List<Games.Scores.Score> get_high_scores (Games.Scores.Category category, int n = 10);
			public bool has_scores ();
			public void load_scores (Games.Scores.Context.CategoryRequestFunc category_request) throws GLib.Error;
			public void run_dialog ();
			public Context.with_icon_name (string app_name, string category_type, Gtk.Window? game_window, Games.Scores.Context.CategoryRequestFunc category_request, Games.Scores.Style style, string icon_name);
			public Context.with_importer (string app_name, string category_type, Gtk.Window? game_window, Games.Scores.Context.CategoryRequestFunc category_request, Games.Scores.Style style, Games.Scores.Importer? importer);
			public Context.with_importer_and_icon_name (string app_name, string category_type, Gtk.Window? game_window, Games.Scores.Context.CategoryRequestFunc category_request, Games.Scores.Style style, Games.Scores.Importer? importer = null, string? icon_name = null);
			public string app_name { get; construct; }
			public string category_type { get; construct; }
			public Gtk.Window? game_window { get; construct; }
			public string icon_name { get; construct; }
			public Games.Scores.Importer? importer { get; construct; }
			public Games.Scores.Style style { get; construct; }
		}
		[CCode (cheader_filename = "libgnome-games-support.h")]
		public class DirectoryImporter : Games.Scores.Importer {
			public delegate string? CategoryConvertFunc (string old_key);
			public DirectoryImporter ();
			protected override void importOldScores (Games.Scores.Context context, GLib.File new_scores_dir) throws GLib.Error;
			public void set_category_convert_func (Games.Scores.DirectoryImporter.CategoryConvertFunc category_convert);
			public DirectoryImporter.with_convert_func (Games.Scores.DirectoryImporter.CategoryConvertFunc category_convert);
		}
		[CCode (cheader_filename = "libgnome-games-support.h")]
		public class HistoryFileImporter : Games.Scores.Importer {
			public delegate void HistoryConvertFunc (string line, out Games.Scores.Score score, out Games.Scores.Category category);
			public HistoryFileImporter (Games.Scores.HistoryFileImporter.HistoryConvertFunc history_convert);
			protected override void importOldScores (Games.Scores.Context context, GLib.File new_scores_dir) throws GLib.Error;
			public static int64 parse_date (string date);
			public void set_history_convert_func (Games.Scores.HistoryFileImporter.HistoryConvertFunc history_convert);
		}
		[CCode (cheader_filename = "libgnome-games-support.h")]
		public abstract class Importer : GLib.Object {
			protected Importer ();
			protected abstract void importOldScores (Games.Scores.Context context, GLib.File new_scores_dir) throws GLib.Error;
		}
		[CCode (cheader_filename = "libgnome-games-support.h")]
		public class Score : GLib.Object {
			public Score (long score, int64 time = 0, string? user = null);
			public static bool equals (Games.Scores.Score a, Games.Scores.Score b);
			public long score { get; set; }
			public int64 time { get; set; }
			public string user { get; set; }
		}
		[CCode (cheader_filename = "libgnome-games-support.h")]
		public enum Style {
			POINTS_GREATER_IS_BETTER,
			POINTS_LESS_IS_BETTER,
			TIME_GREATER_IS_BETTER,
			TIME_LESS_IS_BETTER
		}
	}
	[CCode (cheader_filename = "libgnome-games-support.h")]
	public class GridFrame : Gtk.Bin {
		public GridFrame (int width, int height);
		public new void @set (int width, int height);
		public void set_alignment (float xalign, float yalign);
		public void set_padding (int xpadding, int ypadding);
		public override void size_allocate (Gtk.Allocation allocation);
		public int height { get; set; }
		public int width { get; set; }
		public float xalign { get; set; }
		public int xpadding { get; set; }
		public float yalign { get; set; }
		public int ypadding { get; set; }
	}
}
