/* pamac-gtk.h generated by valac 0.52.0, the Vala compiler, do not modify */

#ifndef __SRC_PAMAC_GTK_H__
#define __SRC_PAMAC_GTK_H__

#include "pamac.h"
#include <glib-object.h>
#include <gtk/gtk.h>
#include <glib.h>
#include <stdlib.h>
#include <string.h>
#include <gio/gio.h>

G_BEGIN_DECLS

#define PAMAC_TYPE_TRANSACTION_GTK (pamac_transaction_gtk_get_type ())
#define PAMAC_TRANSACTION_GTK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PAMAC_TYPE_TRANSACTION_GTK, PamacTransactionGtk))
#define PAMAC_TRANSACTION_GTK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PAMAC_TYPE_TRANSACTION_GTK, PamacTransactionGtkClass))
#define PAMAC_IS_TRANSACTION_GTK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PAMAC_TYPE_TRANSACTION_GTK))
#define PAMAC_IS_TRANSACTION_GTK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PAMAC_TYPE_TRANSACTION_GTK))
#define PAMAC_TRANSACTION_GTK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PAMAC_TYPE_TRANSACTION_GTK, PamacTransactionGtkClass))

typedef struct _PamacTransactionGtk PamacTransactionGtk;
typedef struct _PamacTransactionGtkClass PamacTransactionGtkClass;
typedef struct _PamacTransactionGtkPrivate PamacTransactionGtkPrivate;

#define PAMAC_TYPE_PROGRESS_BOX (pamac_progress_box_get_type ())
#define PAMAC_PROGRESS_BOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PAMAC_TYPE_PROGRESS_BOX, PamacProgressBox))
#define PAMAC_PROGRESS_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PAMAC_TYPE_PROGRESS_BOX, PamacProgressBoxClass))
#define PAMAC_IS_PROGRESS_BOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PAMAC_TYPE_PROGRESS_BOX))
#define PAMAC_IS_PROGRESS_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PAMAC_TYPE_PROGRESS_BOX))
#define PAMAC_PROGRESS_BOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PAMAC_TYPE_PROGRESS_BOX, PamacProgressBoxClass))

typedef struct _PamacProgressBox PamacProgressBox;
typedef struct _PamacProgressBoxClass PamacProgressBoxClass;

#define PAMAC_TYPE_CHOOSE_PKGS_DIALOG (pamac_choose_pkgs_dialog_get_type ())
#define PAMAC_CHOOSE_PKGS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PAMAC_TYPE_CHOOSE_PKGS_DIALOG, PamacChoosePkgsDialog))
#define PAMAC_CHOOSE_PKGS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PAMAC_TYPE_CHOOSE_PKGS_DIALOG, PamacChoosePkgsDialogClass))
#define PAMAC_IS_CHOOSE_PKGS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PAMAC_TYPE_CHOOSE_PKGS_DIALOG))
#define PAMAC_IS_CHOOSE_PKGS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PAMAC_TYPE_CHOOSE_PKGS_DIALOG))
#define PAMAC_CHOOSE_PKGS_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PAMAC_TYPE_CHOOSE_PKGS_DIALOG, PamacChoosePkgsDialogClass))

typedef struct _PamacChoosePkgsDialog PamacChoosePkgsDialog;
typedef struct _PamacChoosePkgsDialogClass PamacChoosePkgsDialogClass;
typedef struct _PamacChoosePkgsDialogPrivate PamacChoosePkgsDialogPrivate;
typedef struct _PamacProgressBoxPrivate PamacProgressBoxPrivate;

struct _PamacTransactionGtk {
	PamacTransaction parent_instance;
	PamacTransactionGtkPrivate * priv;
	PamacProgressBox* progress_box;
	GtkScrolledWindow* details_window;
	GtkTextView* details_textview;
	GtkNotebook* build_files_notebook;
	gboolean commit_transaction_answer;
};

struct _PamacTransactionGtkClass {
	PamacTransactionClass parent_class;
};

struct _PamacChoosePkgsDialog {
	GtkDialog parent_instance;
	PamacChoosePkgsDialogPrivate * priv;
	GtkTreeView* treeview;
	GtkButton* valid_button;
	GtkListStore* pkgs_list;
};

struct _PamacChoosePkgsDialogClass {
	GtkDialogClass parent_class;
};

struct _PamacProgressBox {
	GtkBox parent_instance;
	PamacProgressBoxPrivate * priv;
	GtkProgressBar* progressbar;
	GtkLabel* action_label;
};

struct _PamacProgressBoxClass {
	GtkBoxClass parent_class;
};

GType pamac_transaction_gtk_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (PamacTransactionGtk, g_object_unref)
GType pamac_progress_box_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (PamacProgressBox, g_object_unref)
PamacTransactionGtk* pamac_transaction_gtk_new (PamacDatabase* database,
                                                GtkApplication* application);
PamacTransactionGtk* pamac_transaction_gtk_construct (GType object_type,
                                                      PamacDatabase* database,
                                                      GtkApplication* application);
void pamac_transaction_gtk_set_trans_flags (PamacTransactionGtk* self);
void pamac_transaction_gtk_show_details (PamacTransactionGtk* self,
                                         const gchar* message);
void pamac_transaction_gtk_reset_progress_box (PamacTransactionGtk* self);
void pamac_transaction_gtk_start_progressbar_pulse (PamacTransactionGtk* self);
void pamac_transaction_gtk_stop_progressbar_pulse (PamacTransactionGtk* self);
GType pamac_choose_pkgs_dialog_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (PamacChoosePkgsDialog, g_object_unref)
PamacChoosePkgsDialog* pamac_transaction_gtk_create_choose_pkgs_dialog (PamacTransactionGtk* self);
void pamac_transaction_gtk_transaction_summary_remove_all (PamacTransactionGtk* self);
gboolean pamac_transaction_gtk_transaction_summary_contains (PamacTransactionGtk* self,
                                                             const gchar* id);
guint pamac_transaction_gtk_transaction_summary_length (PamacTransactionGtk* self);
void pamac_transaction_gtk_populate_build_files_async (PamacTransactionGtk* self,
                                                       const gchar* pkgname,
                                                       gboolean clone,
                                                       gboolean overwrite,
                                                       GAsyncReadyCallback _callback_,
                                                       gpointer _user_data_);
gboolean pamac_transaction_gtk_populate_build_files_finish (PamacTransactionGtk* self,
                                                            GAsyncResult* _res_);
void pamac_transaction_gtk_save_build_files_async (PamacTransactionGtk* self,
                                                   const gchar* pkgname,
                                                   GAsyncReadyCallback _callback_,
                                                   gpointer _user_data_);
void pamac_transaction_gtk_save_build_files_finish (PamacTransactionGtk* self,
                                                    GAsyncResult* _res_);
void pamac_transaction_gtk_clear_warnings (PamacTransactionGtk* self);
void pamac_transaction_gtk_show_warnings (PamacTransactionGtk* self,
                                          gboolean block);
void pamac_transaction_gtk_display_error (PamacTransactionGtk* self,
                                          const gchar* message,
                                          gchar** details,
                                          gint details_length1);
void pamac_transaction_gtk_show_notification (PamacTransactionGtk* self,
                                              const gchar* message);
GtkApplication* pamac_transaction_gtk_get_application (PamacTransactionGtk* self);
gboolean pamac_transaction_gtk_get_no_confirm_upgrade (PamacTransactionGtk* self);
void pamac_transaction_gtk_set_no_confirm_upgrade (PamacTransactionGtk* self,
                                                   gboolean value);
PamacChoosePkgsDialog* pamac_choose_pkgs_dialog_new (GtkWindow* window);
PamacChoosePkgsDialog* pamac_choose_pkgs_dialog_construct (GType object_type,
                                                           GtkWindow* window);
PamacProgressBox* pamac_progress_box_new (void);
PamacProgressBox* pamac_progress_box_construct (GType object_type);

G_END_DECLS

#endif
