summaryrefslogtreecommitdiff
path: root/amiga
diff options
context:
space:
mode:
Diffstat (limited to 'amiga')
-rwxr-xr-xamiga/hotlist.c37
1 files changed, 36 insertions, 1 deletions
diff --git a/amiga/hotlist.c b/amiga/hotlist.c
index 6469cbd90..b67e10fd4 100755
--- a/amiga/hotlist.c
+++ b/amiga/hotlist.c
@@ -18,8 +18,41 @@
#include <proto/exec.h>
#include "amiga/hotlist.h"
-#include "desktop/hotlist.h"
#include "amiga/tree.h"
+#include "desktop/hotlist.h"
+#include "utils/messages.h"
+
+bool ami_hotlist_find_dir(struct tree *tree, const char *dir_name)
+{
+ struct node *root = tree_node_get_child(tree_get_root(tree));
+ struct node *node;
+ struct node_element *element;
+
+ for (node = root; node; node = tree_node_get_next(node))
+ {
+ element = tree_node_find_element(node, TREE_ELEMENT_TITLE, NULL);
+ if(!element) element = tree_node_find_element(node, TREE_ELEMENT_TITLE, NULL);
+ if(element && (strcmp(tree_node_element_get_text(element), dir_name) == 0))
+ {
+ return true;
+ }
+ }
+
+ return false;
+}
+
+void ami_hotlist_add_default_dirs(struct tree *tree)
+{
+ if(ami_hotlist_find_dir(tree, messages_get("HotlistMenu")) == false) {
+ tree_create_folder_node(tree, tree_get_root(tree),
+ messages_get("HotlistMenu"), true, false, false);
+ }
+
+ if(ami_hotlist_find_dir(tree, messages_get("HotlistToolbar")) == false) {
+ tree_create_folder_node(tree, tree_get_root(tree),
+ messages_get("HotlistToolbar"), true, false, false);
+ }
+}
void ami_hotlist_initialise(const char *hotlist_file)
{
@@ -30,6 +63,8 @@ void ami_hotlist_initialise(const char *hotlist_file)
hotlist_initialise(ami_tree_get_tree(hotlist_window),
hotlist_file,
tree_directory_icon_name);
+
+ ami_hotlist_add_default_dirs(ami_tree_get_tree(hotlist_window));
}
void ami_hotlist_free(const char *hotlist_file)