summaryrefslogtreecommitdiff
path: root/amiga/hotlist.c
diff options
context:
space:
mode:
Diffstat (limited to 'amiga/hotlist.c')
-rwxr-xr-xamiga/hotlist.c134
1 files changed, 10 insertions, 124 deletions
diff --git a/amiga/hotlist.c b/amiga/hotlist.c
index 71c5ddbba..f90f3645e 100755
--- a/amiga/hotlist.c
+++ b/amiga/hotlist.c
@@ -1,5 +1,4 @@
/*
- * Copyright 2004, 2005 Richard Wilson <info@tinct.net>
* Copyright 2008, 2009 Chris Young <chris@unsatisfactorysoftware.co.uk>
*
* This file is part of NetSurf, http://www.netsurf-browser.org/
@@ -17,137 +16,24 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "desktop/browser.h"
-#include "desktop/tree.h"
#include <proto/exec.h>
-#include "content/urldb.h"
#include "amiga/hotlist.h"
+#include "desktop/hotlist.h"
#include "amiga/tree.h"
-void ami_gui_hotlist_visited(hlcache_handle *content, struct tree *tree,
- struct node *node);
-
-static const struct {
- const char *url;
- const char *msg_key;
-} default_entries[] = {
- { "http://www.netsurf-browser.org/", "HotlistHomepage" },
- { "http://www.netsurf-browser.org/downloads/amiga/", "HotlistTestBuild" },
- { "http://www.netsurf-browser.org/documentation/", "HotlistDocumentation" },
- { "http://sourceforge.net/tracker/?atid=464312&group_id=51719",
- "HotlistBugTracker" },
- { "http://sourceforge.net/tracker/?atid=464315&group_id=51719",
- "HotlistFeatureRequest" },
- { "http://www.unsatisfactorysoftware.co.uk/",
- "Unsatisfactory Software" }
-};
-#define ENTRIES_COUNT (sizeof(default_entries) / sizeof(default_entries[0]))
-
-void hotlist_visited(hlcache_handle *c)
+void ami_hotlist_initialise(const char *hotlist_file)
{
- if ((!c) || (!content_get_url(c)) || (!hotlist))
- return;
- ami_gui_hotlist_visited(c, hotlist, hotlist->root);
-}
+ hotlist_window = ami_tree_create(hotlist_get_tree_flags(), NULL);
-/**
- * Informs the hotlist that some content has been visited
- *
- * \param content the content visited
- * \param tree the tree to find the URL data from
- * \param node the node to update siblings and children of
- */
-void ami_gui_hotlist_visited(hlcache_handle *content, struct tree *tree,
- struct node *node)
-{
- struct node_element *element;
+ if(!hotlist_window) return;
- for (; node; node = node->next) {
- if (!node->folder) {
- element = tree_find_element(node, TREE_ELEMENT_URL);
- if ((element) && (!strcmp(element->text,
- content_get_url(content)))) {
- tree_update_URL_node(node, content_get_url(content), NULL);
- tree_handle_node_changed(tree, node, true,
- false);
- }
- }
- if (node->child)
- ami_gui_hotlist_visited(content, tree, node->child);
- }
+ hotlist_initialise(ami_tree_get_tree(hotlist_window),
+ hotlist_file);
}
-void ami_hotlist_init(struct tree **hotlist)
+void ami_hotlist_free(const char *hotlist_file)
{
- struct tree *hotlist_tree;
- struct node *node;
- int i;
- const struct url_data *data;
-
- *hotlist = AllocVec(sizeof(struct tree),MEMF_PRIVATE | MEMF_CLEAR);
- hotlist_tree = *hotlist;
-
- if (!hotlist_tree) {
- warn_user("NoMemory", 0);
- return;
- }
-
- hotlist_tree->root = tree_create_folder_node(NULL, "Root");
- if (!hotlist_tree->root) {
- warn_user("NoMemory", 0);
- FreeVec(hotlist_tree);
- hotlist_tree = NULL;
- }
-
- hotlist_tree->root->expanded = true;
-
- node = tree_create_folder_node(hotlist_tree->root, "Menu");
- if (!node)
- node = hotlist_tree->root;
-
- node = tree_create_folder_node(node, "NetSurf");
- if (!node)
- node = hotlist_tree->root;
-
- for (i = 0; i != ENTRIES_COUNT; i++) {
- data = urldb_get_url_data(default_entries[i].url);
- if (!data) {
- urldb_add_url(default_entries[i].url);
- urldb_set_url_persistence(
- default_entries[i].url,
- true);
- data = urldb_get_url_data(
- default_entries[i].url);
- }
- if (data) {
- tree_create_URL_node(node,
- default_entries[i].url, data,
- messages_get(default_entries[i].msg_key));
- }
- }
-
- tree_initialise(hotlist_tree);
-}
-
-void ami_hotlist_add(struct node *node, struct hlcache_handle *c)
-{
- const struct url_data *data;
-
- data = urldb_get_url_data(content_get_url(c));
- if (!data)
- {
- urldb_add_url(content_get_url(c));
- urldb_set_url_persistence(content_get_url(c),true);
- data = urldb_get_url_data(content_get_url(c));
- }
-
- if (data)
- {
- tree_create_URL_node(node,content_get_url(c),data,content_get_title(c));
- }
-
- tree_handle_node_changed(hotlist,node,false,true);
-
- if(hotlist->handle)
- ami_recreate_listbrowser((struct treeview_window *)hotlist->handle);
+ hotlist_cleanup(hotlist_file);
+ ami_tree_destroy(hotlist_window);
+ hotlist_window = NULL;
}