/* gtk-frdp-0.2.vapi generated by vapigen, do not modify. */

[CCode (cprefix = "Frdp", gir_namespace = "GtkFrdp", gir_version = "0.2", lower_case_cprefix = "frdp_")]
namespace Frdp {
	[CCode (cheader_filename = "gtk-frdp.h", type_id = "frdp_display_get_type ()")]
	public class Display : Gtk.DrawingArea, Atk.Implementor, Gtk.Buildable {
		[CCode (has_construct_function = false, type = "GtkWidget*")]
		public Display ();
		public virtual bool authenticate (out string username, out string password, out string domain);
		public void authenticate_finish (string username, string password, string domain);
		public uint certificate_change_verify_ex (string host, uint16 port, string common_name, string subject, string issuer, string fingerprint, string old_subject, string old_issuer, string old_fingerprint, uint32 flags);
		public void certificate_change_verify_ex_finish (uint verification);
		public uint certificate_verify_ex (string host, uint16 port, string common_name, string subject, string issuer, string fingerprint, uint32 flags);
		public void certificate_verify_ex_finish (uint verification);
		public void close ();
		public Gdk.Pixbuf get_pixbuf ();
		public bool is_keyboard_grabbed ();
		public bool is_open ();
		public void open_host (string host, uint port);
		public void set_scaling (bool scaling);
		[NoAccessorMethod]
		public bool allow_resize { get; set; }
		[NoAccessorMethod]
		public string domain { owned get; set; }
		[NoAccessorMethod]
		public string password { owned get; set; }
		[NoAccessorMethod]
		public bool resize_supported { get; set; }
		[NoAccessorMethod]
		public bool scaling { get; set; }
		[NoAccessorMethod]
		public string username { owned get; set; }
		public signal void rdp_auth_failure (string object);
		public signal void rdp_connected ();
		public signal void rdp_disconnected ();
		public signal void rdp_error (string object);
		public signal void rdp_needs_authentication ();
		public signal void rdp_needs_certificate_change_verification (string object, uint p0, string p1, string p2, string p3, string p4, string p5, string p6, string p7, uint p8);
		public signal void rdp_needs_certificate_verification (string object, uint p0, string p1, string p2, string p3, string p4, uint p5);
	}
	[CCode (cheader_filename = "gtk-frdp.h", type_id = "frdp_session_get_type ()")]
	public class Session : GLib.Object {
		[CCode (has_construct_function = false)]
		public Session (Frdp.Display display);
		public void close ();
		public async bool connect (string hostname, uint port, GLib.Cancellable? cancellable) throws GLib.Error;
		public bool is_open ();
		public void mouse_event (Frdp.MouseEvent event, uint16 x, uint16 y);
		public void mouse_pointer (bool enter);
		public void mouse_smooth_scroll_event (uint16 x, uint16 y, double delta_x, double delta_y);
		public void send_key (Gdk.EventKey key);
		[NoAccessorMethod]
		public Gtk.Widget display { owned get; set; }
		[NoAccessorMethod]
		public string domain { owned get; set; }
		[NoAccessorMethod]
		public string hostname { owned get; set; }
		[NoAccessorMethod]
		public bool monitor_layout_supported { get; set; }
		[NoAccessorMethod]
		public string password { owned get; set; }
		[NoAccessorMethod]
		public uint port { get; set; }
		[NoAccessorMethod]
		public bool scaling { get; set; }
		[NoAccessorMethod]
		public string username { owned get; set; }
		public signal void rdp_auth_failure (string object);
		public signal void rdp_connected ();
		public signal void rdp_disconnected ();
		public signal void rdp_error (string object);
	}
	[CCode (cheader_filename = "gtk-frdp.h", cprefix = "FRDP_ERRCONNECT_", has_type_id = false)]
	public enum ErrConnect {
		CONNECT_CANCELLED,
		AUTHENTICATION_FAILED,
		SECURITY_NEGO_CONNECT_FAILED
	}
	[CCode (cheader_filename = "gtk-frdp.h", cprefix = "FRDP_KEY_EVENT_", has_type_id = false)]
	[Flags]
	public enum KeyEvent {
		PRESS,
		RELEASE
	}
	[CCode (cheader_filename = "gtk-frdp.h", cprefix = "FRDP_MOUSE_EVENT_", has_type_id = false)]
	[Flags]
	public enum MouseEvent {
		MOVE,
		DOWN,
		WHEEL,
		WHEEL_NEGATIVE,
		BUTTON1,
		BUTTON2,
		BUTTON3,
		BUTTON4,
		BUTTON5,
		HWHEEL
	}
}
