/* Copyright 1997 Acorn Computers Ltd
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/***************************************************/
/* File   : Frames.h                               */
/*                                                 */
/* Purpose: Frame handling functions for the       */
/*          browser.                               */
/*                                                 */
/* Author : A.D.Hodgkinson                         */
/*                                                 */
/* History: 19-Mar-97: Created.                    */
/***************************************************/

/* Function prototypes */

_kernel_oserror * frames_define_frameset             (browser_data * b, HStream * token);
_kernel_oserror * frames_define_frame                (browser_data * b, HStream * token);
_kernel_oserror * frames_resize_frameset             (browser_data * b, BBox * new_outline);
_kernel_oserror * frames_resize_frame                (browser_data * b, BBox * new_outline);
void              frames_lock_frameset               (browser_data * b);

void              frames_get_rc_info                 (browser_data * parent, int child, int * retrows, int * retcols, int * retrow, int * retcol);
_kernel_oserror * frames_find_pointer_in_frameset    (browser_data * handle, int x, int y, int * retrow, int * retcol, int * offset_left, int * offset_top, int constrain);

int               frames_can_resize_top              (browser_data * parent, int child);
int               frames_can_resize_bottom           (browser_data * parent, int child);
int               frames_can_resize_left             (browser_data * parent, int child);
int               frames_can_resize_right            (browser_data * parent, int child);

void              frames_redraw_borders              (browser_data * b, WimpRedrawWindowBlock * r);

int               frames_fetching                    (browser_data * b);
void              frames_abort_fetching              (browser_data * b, int stop_images, int stop_spools);
void              frames_collapse_set                (browser_data * b);

browser_data    * frames_find_named                  (browser_data * parent, char * name);
browser_data    * frames_find_target                 (browser_data * b, const char * target);

browser_data    * frames_find_another_frame          (browser_data * current, int dir);

_kernel_oserror * frames_highlight_frame             (browser_data * b);
_kernel_oserror * frames_remove_highlight            (void);
_kernel_oserror * frames_remove_highlight_if_present (browser_data * b);