Commit 87bedb4b authored by Andrew Hodgkinson's avatar Andrew Hodgkinson
Browse files

Added a missing _kernel_oserror * e declaration

parent 6a2fc8cf
......@@ -119,7 +119,7 @@ static ToolboxEventHandler hotlist_reset_directory_handler;
static _kernel_oserror * hotlist_get_entry_sizes (unsigned int * item_height, unsigned int * item_dir_width, unsigned int * item_url_width);
static void hotlist_scan_for_subdirectories (hotlist_item * item);
static hotlist_item * _hotlist_find_item (hotlist_item * list, unsigned int item_no);
static hotlist_item * hotlist_find_item_r (hotlist_item * list, unsigned int item_no);
static hotlist_item * hotlist_find_item (hotlist_item * list, unsigned int item_no);
static int _hotlist_find_no_from_item (hotlist_item * list, hotlist_item * item);
static int hotlist_find_no_from_item (hotlist_item * item);
......@@ -127,10 +127,10 @@ static hotlist_item * _hotlist_find_selected_item (hotlist_item * list);
static hotlist_item * hotlist_find_selected_item (void);
static void _hotlist_count_displayed_items (hotlist_item * list);
static unsigned int hotlist_count_displayed_items (hotlist_item * list);
static void _hotlist_count_selected_items (hotlist_item * list);
static void hotlist_count_selected_items_r (hotlist_item * list);
static unsigned int hotlist_count_selected_items (void);
static unsigned int hotlist_contents_selected(hotlist_item *item);
static unsigned int hotlist_no_contents_selected(hotlist_item *item);
static unsigned int hotlist_contents_selected (hotlist_item * item);
static unsigned int hotlist_no_contents_selected (hotlist_item * item);
static void _hotlist_draw (hotlist_item * list, unsigned int first_item, unsigned int last_item, unsigned int indent);
static void hotlist_draw (hotlist_item * list, unsigned int first_item, unsigned int last_item);
static void _hotlist_get_max_width (hotlist_item * list, unsigned int indent);
......@@ -145,7 +145,7 @@ static void hotlist_launch_url (hotlist_item * item);
static _kernel_oserror * hotlist_process_click_on_item (unsigned int itemno, hotlist_item * item, int buttons, int x, int y);
static _kernel_oserror * hotlist_process_click (int x, int y, int buttons);
static void hotlist_window_preopen (hl_opentype type);
static void hotlist_setmenu_details (ObjectId menuid);
static void hotlist_set_menu_details (ObjectId menuid);
static _kernel_oserror * hotlist_save_entries (FILE * fileptr, hotlist_item * list);
static void hotlist_lower_tags (char * string);
static _kernel_oserror * hotlist_load_directory (FILE * fileptr, hotlist_item * target);
......@@ -845,7 +845,9 @@ static void hotlist_delete_item(hotlist_item * item)
static _kernel_oserror * hotlist_move_item(hotlist_item * source, hotlist_item * target, unsigned int position)
{
hotlist_item *newdir, *tempptr;
_kernel_oserror * e;
hotlist_item * newdir, * tempptr;
if (!(source->type == hl_directory && !hotlist_contents_selected(source->data.directory_content)))
{
/* Unlink item from directory structure */
......@@ -858,19 +860,28 @@ static _kernel_oserror * hotlist_move_item(hotlist_item * source, hotlist_item *
}
else
{
/* Special case - moving a directory whose contents are only partially selected */
/* we can't move a directory whose contents are only partially to be moved, */
/* there would be no where to leave the items which were not moved. */
/* Special case - moving a directory whose contents are only partially selected. */
/* We can't move a directory whose contents are only partially to be moved, */
/* there would be nowhere to leave the items which were not moved with it. */
/* So, create a new directory based on the old */
RetError(hotlist_new_directory(target, source->name, position, &newdir));
/* Move the contents recursively into the new directory */
source = source->data.directory_content;
while(source)
{
tempptr = source->next;
if (source->flags & HOTLIST_G_IS_SELECTED)
{
hotlist_move_item(source, newdir, HOTLIST_POSITION_END); /* move items into new directory */
hotlist_move_item(source, newdir, HOTLIST_POSITION_END);
source->flags &= ~HOTLIST_G_IS_SELECTED;
}
source = tempptr;
}
}
......@@ -1010,60 +1021,66 @@ static void hotlist_scan_for_subdirectories(hotlist_item * item)
}
/*************************************************/
/* _hotlist_find_item() */
/* */
/* This function does all the work for */
/* hotlist_find_item() */
/* */
/* Parameters: Pointer to a hotlist_item */
/* the n'th item to return */
/* This function will recursivly scan through */
/* a hotlist structure and return a pointer to */
/* the n'th item. It will only recurse through */
/* open directories. */
/* */
/* Parameters: Pointer to a hotlist_item at the */
/* top of the directory to scan; */
/* */
/* The nth item to return within it. */
/* */
/* Returns: Pointer to the requested item or */
/* NULL if it does not exist */
/* NULL if it does not exist. */
/*************************************************/
static hotlist_item * _hotlist_find_item(hotlist_item * list, unsigned int item_no)
static hotlist_item * hotlist_find_item(hotlist_item * list, unsigned int item_no)
{
hotlist_item * temp;
while(list)
{
if (item_no == item_number) return list; /* Found the list item */
item_number++;
if (list->type == hl_directory && list->flags & HOTLIST_D_IS_OPEN)
{
temp = _hotlist_find_item(list->data.directory_content, item_no);
if (temp) return temp;
}
list = list->next;
item_number = 0;
}
return NULL; /* List does not extend far enough */
return hotlist_find_item_r(list, item_no);
}
/*************************************************/
/* hotlist_find_item() */
/* hotlist_find_item_r() */
/* */
/* This function will recursivly scan through */
/* a hotlist structure and return a pointer to */
/* the n'th item. It will only recurse through */
/* open directories. */
/* Recursive back-end to hotlist_find_item. */
/* */
/* Parameters: Pointer to a hotlist_item */
/* the n'th item to return */
/* */
/* Returns: Pointer to the requested item or */
/* NULL if it does not exist */
/* Parameters: As hotlist_find_item. */
/* */
/* Note: This function doesn't actually */
/* do any of the real work but */
/* merely sets up a global variable */
/* and calls _hotlist_find_item() */
/* Returns: As hotlist_find_item. */
/*************************************************/
static hotlist_item * hotlist_find_item(hotlist_item *list, unsigned int item_no)
static hotlist_item * hotlist_find_item_r(hotlist_item * list, unsigned int item_no)
{
item_number = 0;
return _hotlist_find_item(list, item_no);
hotlist_item * temp;
while (list)
{
if (item_number == item_no) return list; /* Found the list item */
/* Increment the item counter */
item_number++;
/* Recursively scan open directories */
if (list->type == hl_directory && list->flags & HOTLIST_D_IS_OPEN)
{
temp = hotlist_find_item_r(list->data.directory_content, item_no);
if (temp) return temp;
}
/* Move to the next list item */
list = list->next;
}
return NULL; /* List does not extend far enough */
}
/*************************************************/
......@@ -2041,7 +2058,7 @@ static int hotlist_menuclose_handler(int event_code, ToolboxEvent *event, IdBloc
void hotlist_setmenu_details(ObjectId menuid)
void hotlist_set_menu_details(ObjectId menuid)
{
hotlist_item * item;
char entrytext[32];
......@@ -2141,7 +2158,7 @@ static int hotlist_menuopen_handler(int event_code, ToolboxEvent * event, IdBloc
}
}
hotlist_setmenu_details(id_block->self_id);
hotlist_set_menu_details(id_block->self_id);
return 0;
}
......@@ -2789,9 +2806,6 @@ _kernel_oserror * hotlist_initialise(void)
hotlist_reset_directory_handler,
NULL));
hotlist_load("InetDBase:hotlist\n");
hotlist_open(Toolbox_ShowObject_Default, 0, 0);
return NULL;
}
......@@ -2844,13 +2858,16 @@ _kernel_oserror * hotlist_close(void)
/*************************************************/
/* hotlist_menu_selectall_handler() */
/* */
/* This function handles the select all menu */
/* item */
/* This function handles the 'select all' menu */
/* item. */
/* */
/* Parameters are as standard for a Toolbox */
/* event handler. */
/*************************************************/
static int hotlist_menu_selectall_handler(int event_code, ToolboxEvent *event, IdBlock *id_block, void *handle)
static int hotlist_menu_selectall_handler(int event_code, ToolboxEvent * event, IdBlock * id_block, void * handle)
{
hotlist_item *item;
hotlist_item * item;
ObjectId sub_menu;
if (!hotlist_root->data.directory_content) return 0;
......@@ -2860,19 +2877,26 @@ static int hotlist_menu_selectall_handler(int event_code, ToolboxEvent *event, I
if (item && item->parent)
{
item = item->parent->data.directory_content;
while(item)
while (item)
{
item->flags |= HOTLIST_G_IS_SELECTED | HOTLIST_G_REDRAW_NOW;
if (item->type == hl_directory) hotlist_set_flags(item->data.directory_content, hl_ALL, HOTLIST_G_IS_SELECTED);
item = item->next;
}
hotlist_redraw_now();
menu_get_sub_menu_show(0, id_block->self_id, HOTLIST_URL_MENUITEM, &sub_menu);
menu_set_sub_menu_show(0, id_block->self_id, HOTLIST_URL_MENUITEM, 0);
if (sub_menu) toolbox_delete_object(0, sub_menu);
hotlist_setmenu_details(id_block->self_id);
hotlist_set_menu_details(id_block->self_id);
}
return 0;
return 1;
}
/*************************************************/
......@@ -3896,14 +3920,17 @@ _kernel_oserror *hotlist_selection_box_start(void)
/*************************************************/
/* hotlist_null_drag_select_handler() */
/* */
/* This function is called as a null handler, */
/* it is responsible for selecting for selecting */
/* and deselecting items within and outside of */
/* the rubber box drag started by */
/* hotlist_selection_box_start */
/* This function is called as a null handler; */
/* it is responsible for selecting and */
/* deselecting items within and outside the */
/* rubber drag box started by */
/* hotlist_selection_box_start. */
/* */
/* Parameters are as standard for a Wimp event */
/* handler. */
/*************************************************/
int hotlist_null_drag_select_handler(int event_code, WimpPollBlock *event, IdBlock *id_block, void *handle)
int hotlist_null_drag_select_handler(int event_code, WimpPollBlock * event, IdBlock * id_block, void * handle)
{
WimpGetPointerInfoBlock pointerblock;
unsigned int item_height, item_dir_width, item_url_width;
......@@ -3998,13 +4025,22 @@ int hotlist_null_drag_select_handler(int event_code, WimpPollBlock *event, IdBlo
/*************************************************/
/* _hotlist_count_selected_items() */
/* hotlist_count_selected_items_r() */
/* */
/* This routine does all the work for */
/* hotlist_count_selected_items() */
/* Recursive back-end to */
/* hotlist_count_selected_items. */
/* */
/* Parameters: Pointer to a hotlist_item struct */
/* representing the first item in a */
/* directory to count. */
/* */
/* Returns: The number of items selected in */
/* that directory (selected */
/* directory items only count as 1; */
/* their contents are not counted). */
/*************************************************/
static void _hotlist_count_selected_items(hotlist_item *list)
static void hotlist_count_selected_items_r(hotlist_item * list)
{
while(list)
{
......@@ -4012,13 +4048,16 @@ static void _hotlist_count_selected_items(hotlist_item *list)
{
item_number++;
}
else /* Only recurse through directories which are not selected */
else
{
/* Only recurse through directories which are not selected */
if (list->type == hl_directory)
{
_hotlist_count_selected_items(list->data.directory_content);
hotlist_count_selected_items_r(list->data.directory_content);
}
}
list = list->next;
}
}
......@@ -4026,18 +4065,17 @@ static void _hotlist_count_selected_items(hotlist_item *list)
/*************************************************/
/* hotlist_count_selected_items() */
/* */
/* This routine counts the number of selected */
/* items */
/* */
/* Parameters: Pointer to a hotlist_item */
/* Count the number of items in a selection. */
/* */
/* Returns: the number of selected items */
/* Returns: The number of selected items. */
/*************************************************/
static unsigned int hotlist_count_selected_items(void)
{
item_number = 0;
_hotlist_count_selected_items(hotlist_root->data.directory_content);
hotlist_count_selected_items_r(hotlist_root->data.directory_content);
return item_number;
}
......@@ -4045,24 +4083,29 @@ static unsigned int hotlist_count_selected_items(void)
/* hotlist_contents_selected() */
/* */
/* Checks if all items and subdirectories are */
/* selected */
/* selected. */
/* */
/* Parameters: Pointer to the first hotlist_item */
/* to check */
/* to check. */
/* */
/* Returns: 1 if all items are selected */
/* 0 if there are unselected items */
/* Returns: 1 if all items are selected, else */
/* 0 (there are unselected items). */
/*************************************************/
static unsigned int hotlist_contents_selected(hotlist_item *item)
static unsigned int hotlist_contents_selected(hotlist_item * item)
{
while(item)
{
/* Keep trying to find an unselected item and */
/* immediately return 0 if found. */
if (!item->flags & HOTLIST_G_IS_SELECTED) return 0;
if (item->type == hl_directory)
{
if (!hotlist_contents_selected(item->data.directory_content)) return 0;
}
item = item->next;
}
return 1;
......@@ -4072,25 +4115,31 @@ static unsigned int hotlist_contents_selected(hotlist_item *item)
/* hotlist_no_contents_selected() */
/* */
/* Checks if all items and subdirectories are */
/* selected */
/* unselected. */
/* */
/* Parameters: Pointer to the first hotlist_item */
/* to check */
/* to check. */
/* */
/* Returns: 1 if all items are selected */
/* 0 if there are unselected items */
/* Returns: 1 if all items are unselected, */
/* or 0 (there are selected items). */
/*************************************************/
static unsigned int hotlist_no_contents_selected(hotlist_item *item)
static unsigned int hotlist_no_contents_selected(hotlist_item * item)
{
while(item)
while (item)
{
/* Keep trying to find a selected item and */
/* immediately return 0 if found. */
if (item->flags & HOTLIST_G_IS_SELECTED) return 0;
if (item->type == hl_directory)
{
if (!hotlist_no_contents_selected(item->data.directory_content)) return 0;
}
item = item->next;
}
return 1;
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment