diff options
Diffstat (limited to 'amiga/hotlist.c')
-rwxr-xr-x | amiga/hotlist.c | 134 |
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; } |