gecko-dev/lib/layout/lo_funcs.h
mjudge%netscape.com fd42334be0 ender carpool
1998-10-14 20:24:50 +00:00

185 lines
6.6 KiB
C

/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef _LayoutFunctions_
#define _LayoutFunctions_
/*
* The idea is for the FE to create and fill in one of these
* structures, and then pass it to layout when creating the
* DocumentContext. The document context will keep
* a pointer to this structure, and use the functions in it to
* interface with the FE. The fe_context which is the first parameter
* of each of these functions, is the opaque object that the FE will
* use to determine which window this command is directed at, the fe_context
* object is passed as a separate value to LO_CreateDocumentContext() so
* that multiple fe_context objects can share the same fe_functions
* structure.
*
* Eventually this should be replaced with a JMC interface.
*/
#include "lo_ele.h"
#include "URL.h"
typedef struct fe_functions {
void (*ShiftImage)(void *fe_context,
LO_ImageStruct *image);
void (*GetJavaAppSize)(void *fe_context,
LO_JavaAppStruct *java, URL_ReloadMethod force_reload);
void (*GetEmbedSize)(void *fe_context,
LO_EmbedStruct *embed, URL_ReloadMethod force_reload);
void (*GetImageInfo)(void *fe_context,
LO_ImageStruct *image, URL_ReloadMethod force_reload);
int (*GetTextInfo)(void *fe_context,
LO_TextStruct *text, LO_TextInfo *text_info);
char *(*TranslateISOText)(void *fe_context,
int charset, char *ISO_Text);
void (*DisplayText)(void *fe_context,
int iLocation, LO_TextStruct *text, XP_Bool need_bg);
void (*DisplaySubtext)(void *fe_context,
int iLocation, LO_TextStruct *text,
int32 start_pos, int32 end_pos, XP_Bool need_bg);
void (*DisplayEmbed)(void *fe_context,
int iLocation, LO_EmbedStruct *embed);
void (*DisplayBuiltin)(void *fe_context,
int iLocation, LO_BuiltinStruct *builtin);
void (*DisplayJavaApp)(void *fe_context,
int iLocation, LO_JavaAppStruct *java_app);
void (*DisplayImage)(void *fe_context,
int iLocation, LO_ImageStruct *image);
void (*DisplaySubImage)(void *fe_context,
int iLocation, LO_ImageStruct *image,
int32 x, int32 y, uint32 width, uint32 height);
void (*DisplayEdge)(void *fe_context,
int iLocation, LO_EdgeStruct *edge);
void (*DisplayTable)(void *fe_context,
int iLocation, LO_TableStruct *table);
void (*DisplaySubDoc)(void *fe_context,
int iLocation, LO_SubDocStruct *subdoc);
void (*DisplayCell)(void *fe_context,
int iLocation, LO_CellStruct *cell);
void (*DisplayLineFeed)(void *fe_context,
int iLocation, LO_LinefeedStruct *lfeed, XP_Bool need_bg);
void (*DisplayHR)(void *fe_context,
int iLocation, LO_HorizRuleStruct *hrule);
void (*DisplayBullet)(void *fe_context,
int iLocation, LO_BulletStruct *bullet);
void (*DisplayFormElement)(void *fe_context,
int iLocation, LO_FormElementStruct *form_element);
void (*GetFormElementInfo)(void *fe_context,
LO_FormElementStruct *form_element);
void (*GetFormElementValue)(void *fe_context,
LO_FormElementStruct *form_element, XP_Bool hide, XP_Bool submit);
void (*FormTextIsSubmit)(void *fe_context,
LO_FormElementStruct *single_text_ele);
void (*FreeFormElement)(void *fe_context,
LO_FormElementData *form_data);
void (*ResetFormElement)(void *fe_context,
LO_FormElementStruct *form_element);
void (*SetFormElementToggle)(void *fe_context,
LO_FormElementStruct *form_element, XP_Bool toggle);
void (*FreeEdgeElement)(void *fe_context,
LO_EdgeStruct *edge);
void (*FreeEmbedElement)(void *fe_context,
LO_EmbedStruct *embed);
void (*FreeBuiltinElement)(void *fe_context,
LO_BuiltlinStruct *builtin);
void (*HideJavaAppElement)(void *fe_context,
void *session_data);
void (*FreeImageElement)(void *fe_context,
LO_ImageStruct *image);
void (*GetFullWindowSize)(void *fe_context,
int32 *width, int32 *height);
void (*GetEdgeMinSize)(void *fe_context,
int32 *size
#if defined(XP_WIN) || defined(XP_OS2)
, Bool no_edge
#endif
);
void (*LoadGridCellFromHistory)(void *fe_context,
void *hist, URL_ReloadMethod force_reload);
/* The void * return value here is an opaque fe_context
* object for the newly created grid window. */
void *(*MakeGridWindow)(void *fe_context,
void *history,
int32 x, int32 y, int32 width, int32 height,
char *url_str, char *window_name, int8 scrolling,
URL_ReloadMethod force_reload
#if defined (XP_WIN) || defined (XP_MAC) || defined(XP_OS2)
, Bool no_edge
#endif
);
void (*RestructureGridWindow)(void *fe_context,
int32 x, int32 y, int32 width, int32 height);
void *(*FreeGridWindow)(void *fe_context,
XP_Bool save_history);
Bool (*SecurityDialog)(void *fe_context,
int message);
void (*GetDocPosition)(void *fe_context,
int location, int32 *x, int32 *y);
void (*SetDocPosition)(void *fe_context,
int location, int32 x, int32 y);
void (*ScrollDocTo)(void *fe_context,
int location, int32 x, int32 y);
void (*SetDocDimension)(void *fe_context,
int location, int32 width, int32 height);
void (*ClearView)(void *fe_context,
int location);
void (*SetDocTitle)(void *fe_context,
char *title);
void (*SetBackgroundColor)(void *fe_context,
uint8 red, uint8 green, uint8 blue);
void (*SetProgressBarPercent)(void *fe_context,
int32 percent);
void (*LayoutNewDocument)(void *fe_context,
URL *url_struct, int32 *width, int32 *height, /* tj */
int32 *margin_width, int32 *margin_height);
void (*FinishedLayout)(void *fe_context);
void (*BeginPreSection)(void *fe_context);
void (*EndPreSection)(void *fe_context);
void (*GetTextFrame)(void *fe_context,
LO_TextStruct *text, int32 start, int32 end, XP_Rect *frame);
void (*EraseBackground)(void *fe_context,
int location, int32 x, int32 y,
uint32 width, uint32 height,
LO_Color *bg, LO_ImageStruct *image);
PRBool (*HandleLayerEvent)(void *fe_context,
CL_Layer *layer, CL_Event *event);
void (*GetOrigin)(void *fe_context,
int location, int32 *x, int32 *y);
void (*SetOrigin)(void *fe_context,
int location, int32 x, int32 y);
} FE_Functions; /* tj */
#endif /* _LayoutFunctions_ */