/* 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   : Utils.h                                */
/* File   : Windows.h                              */
/*                                                 */
/* Purpose: Window related functions for the       */
/*          browser (open, close, create, etc.).   */
/*                                                 */
/* Author : A.D.Hodgkinson                         */
/*                                                 */
/* History: 20-Nov-96: Created.                    */
/*          15-Mar-97: Split up to form Browser.h. */
/***************************************************/

/* Magic number definitions */

#define MinimumWidth  160 /* Browser window absolute minimum horizontal extent   */
#define MinimumHeight 128 /* Browser window absolute minimum vertical extent     */
#define Tolerance     32  /* Maximum OS units width change of a browser window   */
                          /* before it will begin a reformat                     */

/* Fetch type values for windows_create_browser */

#define Windows_CreateBrowser_Normal     0
#define Windows_CreateBrowser_SaveToFile 1
#define Windows_CreateBrowser_ForPlugIn  2

/* Function prototypes */

int               windows_new_browser            (int eventcode, ToolboxEvent * event, IdBlock * idb, void * handle);
int               windows_shut_browser           (int eventcode, ToolboxEvent * event, IdBlock * idb, void * handle);
_kernel_oserror * windows_create_browser         (const char * url, browser_data * parent, BBox * size, const char * name, int save_type);

int               windows_open_browser           (int eventcode, WimpPollBlock * b, IdBlock * idb, browser_data * handle);
int               windows_remember_size          (int eventcode, WimpPollBlock * b, IdBlock * idb, void * handle);
void              windows_close_browser          (browser_data * handle);
int               windows_redraw_browser         (int eventcode, WimpPollBlock * b, IdBlock * idb, browser_data * handle);

void              windows_show_browser           (browser_data * b);
_kernel_oserror * windows_open_full_screen       (browser_data * b, int full_screen, int record, int vertsc, int horisc);

void              windows_process_icon_text      (WimpGetIconStateBlock * icon, char * text, int remove);
_kernel_oserror * windows_process_component_text (ObjectId o, ComponentId c, char * buffer, int buffsize, int iconnum, int remove);

_kernel_oserror * windows_initialise_tool_sizes  (void);
void              windows_return_tool_sizes      (int * theight, int * hheight, int * vwidth);
_kernel_oserror * windows_set_tools              (browser_data * b, BBox * box, int title, int vscroll, int hscroll, int resize);
_kernel_oserror * windows_check_tools            (browser_data * b, BBox * box);

int               windows_url_to_be_shown        (int eventcode, ToolboxEvent * event, IdBlock * idb, void * handle);
int               windows_find_to_be_shown       (int eventcode, ToolboxEvent * event, IdBlock * idb, void * handle);