summaryrefslogtreecommitdiff
path: root/gtk/download.h
diff options
context:
space:
mode:
Diffstat (limited to 'gtk/download.h')
-rw-r--r--gtk/download.h81
1 files changed, 81 insertions, 0 deletions
diff --git a/gtk/download.h b/gtk/download.h
new file mode 100644
index 000000000..7e8226ce9
--- /dev/null
+++ b/gtk/download.h
@@ -0,0 +1,81 @@
+/*
+ * Copyright 2008 Michael Lester <element3260@gmail.com>
+ *
+ * This file is part of NetSurf, http://www.netsurf-browser.org/
+ *
+ * NetSurf is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * NetSurf is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef GTK_DOWNLOAD_H
+#define GTK_DOWNLOAD_H
+
+#include <gtk/gtk.h>
+
+struct download_context;
+
+enum {
+ NSGTK_DOWNLOAD_PROGRESS,
+ NSGTK_DOWNLOAD_INFO,
+ NSGTK_DOWNLOAD_REMAINING,
+ NSGTK_DOWNLOAD_SPEED,
+ NSGTK_DOWNLOAD_PULSE,
+ NSGTK_DOWNLOAD_STATUS,
+ NSGTK_DOWNLOAD,
+
+ NSGTK_DOWNLOAD_N_COLUMNS
+};
+
+typedef enum {
+ NSGTK_DOWNLOAD_NONE,
+ NSGTK_DOWNLOAD_WORKING,
+ NSGTK_DOWNLOAD_ERROR,
+ NSGTK_DOWNLOAD_COMPLETE,
+ NSGTK_DOWNLOAD_CANCELED
+} nsgtk_download_status;
+
+typedef enum {
+ NSGTK_DOWNLOAD_PAUSE = 1 << 0,
+ NSGTK_DOWNLOAD_RESUME = 1 << 1,
+ NSGTK_DOWNLOAD_CANCEL = 1 << 2,
+ NSGTK_DOWNLOAD_CLEAR = 1 << 3
+} nsgtk_download_actions;
+
+struct gui_download_window {
+ struct download_context *ctx;
+ nsgtk_download_actions sensitivity;
+ nsgtk_download_status status;
+
+ GString *name;
+ GString *time_left;
+ gint size_total;
+ gint size_downloaded;
+ gint progress;
+ gfloat time_remaining;
+ gfloat start_time;
+ gfloat speed;
+ gchar *filename;
+
+ GtkTreeRowReference *row;
+ GIOChannel *write;
+ GError *error;
+};
+
+typedef void (*nsgtk_download_selection_action)(struct gui_download_window *dl);
+
+bool nsgtk_download_init(const char *glade_file_location);
+void nsgtk_download_destroy (void);
+bool nsgtk_check_for_downloads(GtkWindow *parent);
+void nsgtk_download_show(GtkWindow *parent);
+void nsgtk_download_add(gchar *url, gchar *destination);
+
+#endif