pjs/cmd/qtfe/qtbind.cpp

1621 строка
32 KiB
C++

/* $Id: qtbind.cpp,v 1.3 1998-10-20 02:40:44 cls%seawood.org Exp $
*
* 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. Portions
* created by Warwick Allison, Kalle Dalheimer, Eirik Eng, Matthias
* Ettrich, Arnt Gulbrandsen, Haavard Nord and Paul Olav Tvete are
* Copyright (C) 1998 Warwick Allison, Kalle Dalheimer, Eirik Eng,
* Matthias Ettrich, Arnt Gulbrandsen, Haavard Nord and Paul Olav
* Tvete. All Rights Reserved.
*/
#include <fe_proto.h>
#include "structs.h"
#include "ntypes.h"
#if 0
#include "bkmks.h"
#endif
#include "QtContext.h"
#include "QtBookmarksContext.h"
static void useArgs( const char *fn, ... )
{
if (0&&fn)
printf( "%s\n", fn );
}
/* From ./xfe.c: */
extern "C"
MWContext *
FE_GetInitContext(void)
{
// context->funcs = fe_BuildDisplayFunctionTable();
useArgs("Ooops... FE_GetInitContext not yet implemented....\n");
return 0;
}
extern "C"
void
QTFE_HandleClippingView(MWContext *pContext, struct LJAppletData *appletD, int x, int y, int width, int height)
{
useArgs( "QTFE_HandleClippingView", pContext, appletD, x, y, width, height);
}
/* From ./xfe.c: */
/* Return the copy of the current state of the cipher preference item.
* Caller is expected to free the returned string.
*/
extern "C"
char *
FE_GetCipherPrefs(void)
{
useArgs("FE_GetCipherPrefs()");
return "from FE_GetCipherPrefs";
}
extern "C"
PUBLIC Bool
QTFE_PromptUsernameAndPassword (MWContext * window_id,
const char * message,
char ** username,
char ** password)
{
useArgs("QTFE_PromptUsernameAndPassword (%p,%s,...,...)", window_id, message);
*username = 0;
*password = 0;
return FALSE;
}
/* From ./icons.c: */
/*
* Return builtin strings for about: displaying
*/
extern "C"
void *
FE_AboutData(const char *which,
char **data_ret, int32 *length_ret, char **content_type_ret)
{
static QString about =
"<html>"
"<title>QtMozilla</title>"
"<body>"
"<h1>QtMozilla</h1>"
"QtMozilla is based on Mozilla!"
;
*data_ret = about.data();
*length_ret = about.length();
*content_type_ret = "text/html";
return 0;
}
/* From ./icons.c: */
extern "C"
void
FE_FreeAboutData(void *fe_data, const char *which)
{
// It's static.
}
// This one actually needs to be extern - it's used in qtmoz.cpp
extern "C"
Bool QTFE_Confirm(MWContext * context, const char * Msg)
{
return QtContext::confirm( context ? QtContext::qt(context) : 0, Msg );
}
extern "C"
Bool
QTFE_UseFancyFTP (MWContext * window_id){
useArgs( "QTFE_UseFancyFTP ", window_id);
return 0;
}
extern "C"
Bool
QTFE_UseFancyNewsgroupListing(MWContext *window_id){
useArgs( "QTFE_UseFancyNewsgroupListing", window_id);
return 0;
}
extern "C"
XP_Bool
QTFE_ShowAllNewsArticles(MWContext *window_id){
useArgs( "QTFE_ShowAllNewsArticles", window_id);
return 0;
}
/* From somewhere... */
extern "C"
MWContext *
QTFE_CreateNewDocWindow(MWContext * calling_context,URL_Struct * URL){
useArgs( "QTFE_CreateNewDocWindow %p, %p \n", calling_context, URL );
return 0;
}
extern "C"
Bool
FE_SecurityDialog(MWContext* context, int state, XP_Bool *prefs_toggle)
{
return QtContext::qt(context)->securityDialog(state, 0 /* prefs_toggle */);
}
extern "C"
void
FE_SetPasswordEnabled(MWContext* context, PRBool usePW)
{
QtContext::qt(context)->setPasswordEnabled(usePW);
}
extern "C"
void
FE_SetPasswordAskPrefs(MWContext* context, int askPW, int timeout)
{
QtContext::qt(context)->setPasswordAskPrefs(askPW, timeout);
}
extern "C"
void
FE_SetCipherPrefs(MWContext* context, char *cipher)
{
QtContext::qt(context)->setCipherPrefs(cipher);
}
extern "C"
void
FE_Alert(MWContext* context, const char *message)
{
if ( context )
QtContext::qt(context)->alert(message);
}
extern "C"
void
QTFE_Alert(MWContext* context, const char *message)
{
QtContext::qt(context)->alert(message);
}
#if !defined(XP_WIN)
/* FE_Message is same as FE_Alert */
extern "C"
void
FE_Message(MWContext* context, const char* message)
{
QtContext::qt(context)->message(message);
}
#endif
extern "C"
char *
FE_PromptMessageSubject(MWContext* context)
{
return QtContext::qt(context)->promptMessageSubject();
}
extern "C"
void
FE_RememberPopPassword(MWContext* context, const char *password)
{
QtContext::qt(context)->rememberPopPassword(password);
}
extern "C"
int
FE_PromptForFileName(MWContext* context, const char *prompt_string,
const char *default_path,
XP_Bool file_must_exist_p,
XP_Bool directories_allowed_p,
ReadFileNameCallbackFunction fn,
void *closure)
{
return QtContext::qt(context)->promptForFileName(prompt_string, default_path, file_must_exist_p, directories_allowed_p, fn, closure);
}
extern "C"
char *
QTFE_Prompt(MWContext* context, const char *message, const char *deflt)
{
return QtContext::qt(context)->prompt(message, deflt);
}
extern "C"
char *
QTFE_PromptWithCaption(MWContext* context, const char *caption,
const char *message, const char *deflt)
{
return QtContext::qt(context)->promptWithCaption(caption, message, deflt);
}
extern "C"
char *
QTFE_PromptPassword(MWContext* context, const char *message)
{
return QtContext::qt(context)->promptPassword(message);
}
extern "C"
MWContext *
FE_MakeNewWindow(MWContext* context, URL_Struct *url,
char *window_name,
Chrome *chrome)
{
return QtContext::makeNewWindow(url, window_name, chrome, context);
}
extern "C"
MWContext *
FE_MakeBlankWindow(MWContext *old_context, URL_Struct *url, char *window_name)
{
return QtContext::makeNewWindow(url, window_name, 0, old_context);
}
extern "C"
void
FE_SetRefreshURLTimer(MWContext* context, URL_Struct *url)
{
QtContext::qt(context)->setRefreshURLTimer(url->refresh, url->address);
}
extern "C"
void
FE_ConnectToRemoteHost(MWContext* context, int url_type, char *hostname,
char *port, char *username)
{
QtContext::qt(context)->connectToRemoteHost(url_type, hostname, port, username);
}
extern "C"
int32
FE_GetContextID(MWContext* context)
{
return QtContext::qt(context)->getContextID();
}
extern "C"
void
QTFE_CreateEmbedWindow(MWContext* context, NPEmbeddedApp *app)
{
QtContext::qt(context)->createEmbedWindow(app);
}
extern "C"
void
QTFE_SaveEmbedWindow(MWContext* context, NPEmbeddedApp *app)
{
QtContext::qt(context)->saveEmbedWindow(app);
}
extern "C"
void
QTFE_RestoreEmbedWindow(MWContext* context, NPEmbeddedApp *app)
{
QtContext::qt(context)->restoreEmbedWindow(app);
}
extern "C"
void
QTFE_DestroyEmbedWindow(MWContext* context, NPEmbeddedApp *app)
{
QtContext::qt(context)->destroyEmbedWindow(app);
}
extern "C"
void
QTFE_SetDrawable(MWContext* context, CL_Drawable *drawable)
{
QtContext::qt(context)->setDrawable(drawable);
}
extern "C"
void
QTFE_Progress(MWContext* context, const char * message)
{
QtContext::qt(context)->progress(message);
}
extern "C"
void
QTFE_SetCallNetlibAllTheTime(MWContext* context)
{
QtContext::qt(context)->setCallNetlibAllTheTime();
}
extern "C"
void
QTFE_ClearCallNetlibAllTheTime(MWContext* context)
{
QtContext::qt(context)->clearCallNetlibAllTheTime();
}
extern "C"
void
QTFE_GraphProgressInit(MWContext* context, URL_Struct *url,
int32 content_length)
{
QtContext::qt(context)->graphProgressInit(url, content_length);
}
extern "C"
void
QTFE_GraphProgressDestroy(MWContext* context, URL_Struct *url,
int32 content_length,
int32 total_bytes_read)
{
QtContext::qt(context)->graphProgressDestroy(url, content_length, total_bytes_read);
}
extern "C"
void
QTFE_GraphProgress(MWContext* context, URL_Struct *url,
int32 p2,
int32 bytes_since_last_time,
int32 p4)
{
QtContext::qt(context)->graphProgress(url,
p2 , bytes_since_last_time,
p4 );
}
extern "C"
int
QTFE_FileSortMethod(MWContext* context)
{
return QtContext::qt(context)->fileSortMethod();
}
extern "C"
void
QTFE_LayoutNewDocument(MWContext* context, URL_Struct *url,
int32 *iWidth, int32 *iHeight,
int32 *mWidth, int32 *mHeight)
{
QtContext::qt(context)->layoutNewDocument(url, iWidth, iHeight, mWidth, mHeight);
}
extern "C"
void
QTFE_SetDocTitle(MWContext* context, char *title)
{
QtContext::qt(context)->setDocTitle(title);
}
extern "C"
void
QTFE_FinishedLayout(MWContext* context)
{
QtContext::qt(context)->finishedLayout();
}
extern "C"
void
QTFE_BeginPreSection(MWContext* context)
{
QtContext::qt(context)->beginPreSection();
}
extern "C"
void
QTFE_EndPreSection(MWContext* context)
{
QtContext::qt(context)->endPreSection();
}
extern "C"
char *
QTFE_TranslateISOText(MWContext* context, int charset, char *ISO_Text)
{
return QtContext::qt(context)->translateISOText(charset, ISO_Text);
}
extern "C"
int
QTFE_GetTextInfo(MWContext* context, LO_TextStruct *text,
LO_TextInfo *text_info)
{
QtContext::qt(context)->getTextInfo(text, text_info);
return 1; // Netscape expects a return value, so fake one.
}
extern "C"
void
QTFE_GetTextFrame(MWContext* context, LO_TextStruct *text, int32 start,
int32 end, XP_Rect *frame)
{
QtContext::qt(context)->getTextFrame(text, start, end, frame);
}
extern "C"
void
QTFE_GetEmbedSize(MWContext* context, LO_EmbedStruct *embed_struct,
NET_ReloadMethod force_reload)
{
QtContext::qt(context)->getEmbedSize(embed_struct, force_reload);
}
extern "C"
void
QTFE_GetJavaAppSize(MWContext* context, LO_JavaAppStruct *java_struct,
NET_ReloadMethod reloadMethod)
{
QtContext::qt(context)->getJavaAppSize(java_struct, reloadMethod);
}
extern "C"
void
QTFE_GetFormElementInfo(MWContext* context, LO_FormElementStruct *form)
{
QtContext::qt(context)->getFormElementInfo(form);
}
extern "C"
void
QTFE_GetFormElementValue(MWContext* context, LO_FormElementStruct *form,
XP_Bool delete_p, XP_Bool submit_p)
{
QtContext::qt(context)->getFormElementValue(form, delete_p, submit_p);
}
extern "C"
void
QTFE_ResetFormElement(MWContext* context, LO_FormElementStruct *form)
{
QtContext::qt(context)->resetFormElement(form);
}
extern "C"
void
QTFE_SetFormElementToggle(MWContext* context, LO_FormElementStruct *form,
XP_Bool state)
{
QtContext::qt(context)->setFormElementToggle(form, state);
}
extern "C"
void
QTFE_FreeEmbedElement(MWContext* context, LO_EmbedStruct *embed_struct)
{
QtContext::qt(context)->freeEmbedElement(embed_struct);
}
extern "C"
void
QTFE_FreeJavaAppElement(MWContext* context, struct LJAppletData *appletData)
{
QtContext::qt(context)->freeJavaAppElement(appletData);
}
extern "C"
void
QTFE_HideJavaAppElement(MWContext* context, struct LJAppletData *appletData)
{
QtContext::qt(context)->hideJavaAppElement(appletData);
}
extern "C"
void
QTFE_FreeEdgeElement(MWContext* context, LO_EdgeStruct *edge)
{
QtContext::qt(context)->freeEdgeElement(edge);
}
extern "C"
void
QTFE_FormTextIsSubmit(MWContext* context, LO_FormElementStruct *form)
{
QtContext::qt(context)->formTextIsSubmit(form);
}
extern "C"
void
QTFE_SetProgressBarPercent(MWContext* context, int32 percent)
{
QtContext::qt(context)->setProgressBarPercent(percent);
}
extern "C"
void
QTFE_SetBackgroundColor(MWContext* context, uint8 red, uint8 green,
uint8 blue)
{
QtContext::qt(context)->setBackgroundColor(red, green, blue);
}
extern "C"
void
QTFE_DisplaySubtext(MWContext* context, int iLocation,
LO_TextStruct *text, int32 start_pos, int32 end_pos,
XP_Bool need_bg)
{
QtContext::qt(context)->displaySubtext(iLocation, text, start_pos, end_pos, need_bg);
}
extern "C"
void
QTFE_DisplayText(MWContext* context, int iLocation, LO_TextStruct *text,
XP_Bool need_bg)
{
QtContext::qt(context)->displayText(iLocation, text, need_bg);
}
extern "C"
void
QTFE_DisplayEmbed(MWContext* context, int iLocation, LO_EmbedStruct *embed_struct)
{
QtContext::qt(context)->displayEmbed(iLocation, embed_struct);
}
extern "C"
void
QTFE_DisplayJavaApp(MWContext* context, int iLocation, LO_JavaAppStruct *java_struct)
{
QtContext::qt(context)->displayJavaApp(iLocation, java_struct);
}
extern "C"
void
QTFE_DisplayEdge(MWContext* context, int loc, LO_EdgeStruct *edge)
{
QtContext::qt(context)->displayEdge(loc, edge);
}
extern "C"
void
QTFE_DisplayTable(MWContext* context, int loc, LO_TableStruct *ts)
{
QtContext::qt(context)->displayTable(loc, ts);
}
extern "C"
void
QTFE_DisplayCell(MWContext* context, int loc, LO_CellStruct *cell)
{
QtContext::qt(context)->displayCell(loc, cell);
}
extern "C"
void
QTFE_DisplaySubDoc(MWContext* context, int loc, LO_SubDocStruct *sd)
{
QtContext::qt(context)->displaySubDoc(loc, sd);
}
extern "C"
void
QTFE_DisplayLineFeed(MWContext* context, int iLocation, LO_LinefeedStruct *line_feed, XP_Bool need_bg)
{
QtContext::qt(context)->displayLineFeed(iLocation, line_feed, need_bg);
}
extern "C"
void
QTFE_DisplayHR(MWContext* context, int iLocation, LO_HorizRuleStruct *hr)
{
QtContext::qt(context)->displayHR(iLocation, hr);
}
extern "C"
void
QTFE_DisplayBullet(MWContext* context, int iLocation, LO_BulletStruct *bullet)
{
QtContext::qt(context)->displayBullet(iLocation, bullet);
}
extern "C"
void
QTFE_DisplayFormElement(MWContext* context, int iLocation,
LO_FormElementStruct *form)
{
QtContext::qt(context)->displayFormElement(iLocation, form);
}
extern "C"
void
QTFE_DisplayBorder(MWContext* context, int iLocation, int x, int y, int width,
int height, int bw, LO_Color *color, LO_LineStyle style)
{
QtContext::qt(context)->displayBorder(iLocation, x, y, width, height, bw, color, style);
}
extern "C"
void
QTFE_DisplayFeedback(MWContext* context, int iLocation, LO_Element *element)
{
QtContext::qt(context)->displayFeedback(iLocation, element);
}
extern "C"
void
QTFE_EraseBackground(MWContext* context, int iLocation, int32 x, int32 y,
uint32 width, uint32 height, LO_Color *bg)
{
QtContext::qt(context)->eraseBackground(iLocation, x, y, width, height, bg);
}
extern "C"
void
QTFE_ClearView(MWContext* context, int which)
{
QtContext::qt(context)->clearView(which);
}
extern "C"
void
QTFE_SetDocDimension(MWContext* context, int iLocation, int32 iWidth, int32 iLength)
{
QtContext::qt(context)->setDocDimension(iLocation, iWidth, iLength);
}
extern "C"
void
QTFE_SetDocPosition(MWContext* context, int iLocation, int32 x, int32 y)
{
QtContext::qt(context)->setDocPosition(iLocation, x, y);
}
extern "C"
void
QTFE_GetDocPosition(MWContext* context, int iLocation,
int32 *iX, int32 *iY)
{
QtContext::qt(context)->getDocPosition(iLocation, iX, iY);
}
extern "C"
void
QTFE_EnableClicking(MWContext* context)
{
QtContext::qt(context)->enableClicking();
}
extern "C"
void
QTFE_DrawJavaApp(MWContext* context, int iLocation, LO_JavaAppStruct *java_struct)
{
QtContext::qt(context)->drawJavaApp(iLocation, java_struct);
}
extern "C"
void
QTFE_AllConnectionsComplete(MWContext* context)
{
QtContext::qt(context)->allConnectionsComplete();
}
extern "C"
void
QTFE_FreeBuiltinElement(MWContext *, LO_BuiltinStruct *)
{
}
extern "C"
void
QTFE_DisplayBuiltin(MWContext *, int ,LO_BuiltinStruct *)
{
}
extern "C"
void
FE_ReleaseTextAttrFeData(MWContext* context, LO_TextAttr *attr)
{
QtContext::qt(context)->releaseTextAttrFeData(attr);
}
extern "C"
void
FE_FreeFormElement(MWContext* context, LO_FormElementData *form_data)
{
QtContext::qt(context)->freeFormElement(form_data);
}
extern "C"
int
FE_EnableBackButton(MWContext* context)
{
return QtContext::qt(context)->enableBackButton();
}
extern "C"
int
FE_EnableForwardButton(MWContext* context)
{
return QtContext::qt(context)->enableForwardButton();
}
extern "C"
int
FE_DisableBackButton(MWContext* context)
{
return QtContext::qt(context)->disableBackButton();
}
extern "C"
int
FE_DisableForwardButton(MWContext* context)
{
return QtContext::qt(context)->disableForwardButton();
}
extern "C"
void
FE_UpdateStopState(MWContext* context)
{
QtContext::qt(context)->updateStopState();
}
extern "C"
void *
FE_FreeGridWindow(MWContext* context, XP_Bool save_history)
{
return QtContext::qt(context)->freeGridWindow(save_history);
}
extern "C"
void
FE_RestructureGridWindow(MWContext* context, int32 x, int32 y,
int32 width, int32 height)
{
QtContext::qt(context)->restructureGridWindow(x, y, width, height);
}
extern "C"
void
FE_GetFullWindowSize(MWContext* context, int32 *width, int32 *height)
{
QtContext::qt(context)->getFullWindowSize(width, height);
}
#if defined(XP_UNIX)
extern "C"
void
FE_GetEdgeMinSize(MWContext* context, int32 *size_p)
{
QtContext::qt(context)->getEdgeMinSize(size_p);
}
#endif
#if defined(XP_WIN)
extern "C"
void
FE_GetEdgeMinSize(MWContext *context, int32 *size_p, Bool /* no_edge */ )
{
QtContext::qt(context)->getEdgeMinSize(size_p);
}
#endif
extern "C"
void
FE_LoadGridCellFromHistory(MWContext* context, void *hist,
NET_ReloadMethod force_reload)
{
QtContext::qt(context)->loadGridCellFromHistory(hist, force_reload);
}
extern "C"
void
FE_ShiftImage(MWContext* context, LO_ImageStruct *lo_image)
{
QtContext::qt(context)->shiftImage(lo_image);
}
extern "C"
void
FE_ScrollDocTo(MWContext* context, int iLocation, int32 x, int32 y)
{
QtContext::qt(context)->scrollDocTo(iLocation, x, y);
}
extern "C"
void
FE_ScrollDocBy(MWContext* context, int iLocation, int32 deltax, int32 deltay)
{
QtContext::qt(context)->scrollDocBy(iLocation, deltax, deltay);
}
extern "C"
void
FE_BackCommand(MWContext* context)
{
QtContext::qt(context)->backCommand();
}
extern "C"
void
FE_ForwardCommand(MWContext* context)
{
QtContext::qt(context)->forwardCommand();
}
extern "C"
void
FE_HomeCommand(MWContext* context)
{
QtContext::qt(context)->homeCommand();
}
extern "C"
void
FE_PrintCommand(MWContext* context)
{
QtContext::qt(context)->printCommand();
}
extern "C"
void
FE_GetWindowOffset(MWContext* context, int32 *sx, int32 *sy)
{
QtContext::qt(context)->getWindowOffset(sx, sy);
}
extern "C"
void
FE_GetScreenSize(MWContext* context, int32 *sx, int32 *sy)
{
QtContext::qt(context)->getScreenSize(sx, sy);
}
extern "C"
void
FE_GetAvailScreenRect (MWContext *context, int32 *sx, int32 *sy,
int32 *left, int32 *top)
{
QtContext::qt(context)->getAvailScreenRect(sx, sy,left,top);
}
extern "C"
void
FE_GetPixelAndColorDepth(MWContext* context, int32 *pixelDepth,
int32 *colorDepth)
{
QtContext::qt(context)->getPixelAndColorDepth(pixelDepth, colorDepth);
}
extern "C"
void
FE_SetWindowLoading(MWContext* context, URL_Struct *url,
Net_GetUrlExitFunc **exit_func_p)
{
QtContext::qt(context)->setWindowLoading(url, exit_func_p);
}
extern "C"
void
FE_RaiseWindow(MWContext* context)
{
QtContext::qt(context)->raiseWindow();
}
extern "C"
void
FE_DestroyWindow(MWContext* context)
{
QtContext::qt(context)->destroyWindow();
}
extern "C"
void
FE_GetDocAndWindowPosition(MWContext* context, int32 *pX, int32 *pY,
int32 *pWidth, int32 *pHeight )
{
QtContext::qt(context)->getDocAndWindowPosition(pX, pY, pWidth, pHeight);
}
extern "C"
PUBLIC void
FE_DisplayTextCaret(MWContext* context, int iLocation, LO_TextStruct* text,
int char_offset)
{
QtContext::qt(context)->displayTextCaret(iLocation, text, char_offset);
}
extern "C"
void
FE_DisplayImageCaret(MWContext* context, LO_ImageStruct* image,
ED_CaretObjectPosition caretPos)
{
QtContext::qt(context)->displayImageCaret(image, caretPos);
}
extern "C"
void
FE_DisplayGenericCaret(MWContext* context, LO_Any * image,
ED_CaretObjectPosition caretPos )
{
QtContext::qt(context)->displayGenericCaret(image,
caretPos );
}
extern "C"
Bool
FE_GetCaretPosition(MWContext* context, LO_Position* where,
int32* caretX, int32* caretYLow, int32* caretYHigh
)
{
return QtContext::qt(context)->getCaretPosition(where, caretX, caretYLow, caretYHigh);
}
extern "C"
PUBLIC void
FE_DestroyCaret(MWContext* context)
{
QtContext::qt(context)->destroyCaret();
}
extern "C"
PUBLIC void
FE_ShowCaret(MWContext* context)
{
QtContext::qt(context)->showCaret();
}
extern "C"
PUBLIC void
FE_DocumentChanged(MWContext* context, int32 p_y, int32 p_height)
{
QtContext::qt(context)->documentChanged(p_y, p_height);
}
extern "C"
void
FE_SetNewDocumentProperties(MWContext* context)
{
QtContext::qt(context)->setNewDocumentProperties();
}
extern "C"
void
FE_ImageLoadDialog(MWContext* context)
{
QtContext::qt(context)->imageLoadDialog();
}
extern "C"
void
FE_ImageLoadDialogDestroy(MWContext* context)
{
QtContext::qt(context)->imageLoadDialogDestroy();
}
extern "C"
void
FE_SaveDialogCreate(MWContext* context, int nfiles, ED_SaveDialogType saveType)
{
QtContext::qt(context)->saveDialogCreate(nfiles, saveType);
}
extern "C"
void
FE_SaveDialogSetFilename(MWContext* context, char* filename)
{
QtContext::qt(context)->saveDialogSetFilename(filename);
}
extern "C"
void
FE_FinishedSave(MWContext* context, int status,
char *pDestURL, int iFileNumber)
{
QtContext::qt(context)->finishedSave(status, pDestURL, iFileNumber);
}
extern "C"
void
FE_SaveDialogDestroy(MWContext* context, int status, char* file_url)
{
QtContext::qt(context)->saveDialogDestroy(status, file_url);
}
extern "C"
Bool
FE_SaveErrorContinueDialog(MWContext* context, char* filename,
ED_FileError error)
{
return QtContext::qt(context)->saveErrorContinueDialog(filename, error);
}
extern "C"
void
FE_ClearBackgroundImage(MWContext* context)
{
QtContext::qt(context)->clearBackgroundImage();
}
extern "C"
void
FE_EditorDocumentLoaded(MWContext* context)
{
QtContext::qt(context)->editorDocumentLoaded();
}
extern "C"
void
FE_DisplayAddRowOrColBorder(MWContext* context, XP_Rect *pRect,
XP_Bool bErase)
{
QtContext::qt(context)->displayAddRowOrColBorder(pRect, bErase);
}
extern "C"
void
FE_DisplayEntireTableOrCell(MWContext* context, LO_Element* pLoElement)
{
QtContext::qt(context)->displayEntireTableOrCell(pLoElement);
}
extern "C"
int
FE_GetURL(MWContext* context, URL_Struct *url)
{
return QtContext::qt(context)->getURL(url);
}
extern "C"
void
FE_FocusInputElement(MWContext* context, LO_Element *element)
{
QtContext::qt(context)->focusInputElement(element);
}
extern "C"
void
FE_BlurInputElement(MWContext* context, LO_Element *element)
{
QtContext::qt(context)->blurInputElement(element);
}
extern "C"
void
FE_SelectInputElement(MWContext* context, LO_Element *element)
{
QtContext::qt(context)->selectInputElement(element);
}
extern "C"
void
FE_ChangeInputElement(MWContext* context, LO_Element *element)
{
QtContext::qt(context)->changeInputElement(element);
}
extern "C"
void
FE_SubmitInputElement(MWContext* context, LO_Element *element)
{
QtContext::qt(context)->submitInputElement(element);
}
extern "C"
void
FE_ClickInputElement(MWContext* context, LO_Element *xref)
{
QtContext::qt(context)->clickInputElement(xref);
}
extern "C"
PRBool
FE_HandleLayerEvent(MWContext* context, CL_Layer *layer,
CL_Event *layer_event)
{
return (PRBool)QtContext::qt(context)->handleLayerEvent(layer, layer_event);
}
extern "C"
PRBool
FE_HandleEmbedEvent(MWContext* context, LO_EmbedStruct *embed,
CL_Event *event)
{
return (PRBool)QtContext::qt(context)->handleEmbedEvent(embed, event);
}
extern "C"
void
FE_UpdateChrome(MWContext* context, Chrome *chrome)
{
QtContext::qt(context)->updateChrome(chrome);
}
extern "C"
void
FE_QueryChrome(MWContext* context, Chrome * chrome)
{
QtContext::qt(context)->queryChrome(chrome);
}
extern "C"
MWContext *
FE_MakeGridWindow(MWContext* context, void *hist_list, void *history,
int32 x, int32 y, int32 width, int32 height,
char *url_str, char *window_name, int8 scrolling,
NET_ReloadMethod force_reload, Bool no_edge)
{
//debug("makeGridWindow");
return QtContext::qt(context)->makeGridWindow(hist_list, history, x, y, width, height, url_str, window_name, scrolling,
force_reload, no_edge);
}
extern "C"
void
FE_ClearDNSSelect(MWContext* context, int socket)
{
QtContext::qt(context)->clearDNSSelect(socket);
}
extern "C"
void
FE_SetReadSelect(MWContext* context, int fd)
{
QtContext::qt(context)->setReadSelect(fd);
}
extern "C"
void
FE_ClearReadSelect(MWContext* context, int fd)
{
QtContext::qt(context)->clearReadSelect(fd);
}
extern "C"
void
FE_SetConnectSelect(MWContext* context, int fd)
{
QtContext::qt(context)->setConnectSelect(fd);
}
extern "C"
void
FE_ClearConnectSelect(MWContext* context, int fd)
{
QtContext::qt(context)->clearConnectSelect(fd);
}
extern "C"
void
FE_SetFileReadSelect(MWContext* context, int fd)
{
QtContext::qt(context)->setFileReadSelect(fd);
}
extern "C"
void
FE_ClearFileReadSelect(MWContext* context, int fd)
{
QtContext::qt(context)->clearFileReadSelect(fd);
}
extern "C"
char*
FE_GetTempFileFor(MWContext* /*context*/, const char* fname,
XP_FileType ftype, XP_FileType* rettype)
{
char* actual = WH_FileName(fname, ftype);
int len;
char* result;
if (!actual) return NULL;
len = strlen(actual) + 10;
result = (char*)XP_ALLOC(len);
if (!result) return NULL;
PR_snprintf(result, len, "%s-XXXXXX", actual);
XP_FREE(actual);
mktemp(result);
*rettype = xpMailFolder; /* Ought to be harmless enough. */
return result;
}
extern "C"
XP_Bool
QTFE_CheckConfirm (MWContext *pContext, const char *pConfirmMessage,
const char *pCheckMessage, const char *pOKMessage,
const char *pCancel, XP_Bool *pChecked)
{
XP_Bool userHasAccepted = QTFE_Confirm (pContext, pConfirmMessage);
*pChecked = QTFE_Confirm (pContext, pCheckMessage);
return userHasAccepted;
}
extern "C"
XP_Bool
QTFE_SelectDialog (MWContext *pContext, const char *pMessage,
const char **pList, int16 *pCount)
{
int i;
char *message = 0;
for (i = 0; i < *pCount; i++) {
StrAllocCopy(message, pMessage);
StrAllocCat(message, " = ");
StrAllocCat(message, pList[i]);
if (QTFE_Confirm(pContext, message)) {
/* user selected this one */
XP_FREE(message);
*pCount = i;
return TRUE;
}
}
/* user rejected all */
XP_FREE(message);
return FALSE;
}
ContextFuncs qtbind= {
#define FE_DEFINE(func, returns, args) QTFE##_##func,
#include "mk_cx_fn.h"
};
/* Binding of BMFE (bookmark functions) starts here. */
extern "C"
void BMFE_RefreshCells (MWContext* context, int32 first, int32 last,
XP_Bool now)
{
QtBookmarksContext *bm = QtBookmarksContext::qt(context);
if ( bm )
bm->refreshCells( first,last, now );
}
extern "C"
void BMFE_SyncDisplay (MWContext* context)
{
QtBookmarksContext *bm = QtBookmarksContext::qt(context);
if ( bm )
bm->syncDisplay();
}
extern "C"
void BMFE_MeasureEntry (MWContext* context, BM_Entry* entry,
uint32* width, uint32* height)
{
QtBookmarksContext *bm = QtBookmarksContext::qt(context);
if ( bm )
bm->measureEntry( entry, width, height );
}
extern "C"
void BMFE_SetClipContents (MWContext* context, void* buffer,
int32 length)
{
QtBookmarksContext *bm = QtBookmarksContext::qt(context);
if ( bm )
bm->setClipContents( buffer, length );
}
extern "C"
void* BMFE_GetClipContents (MWContext* context, int32* length)
{
QtBookmarksContext *bm = QtBookmarksContext::qt(context);
return bm ? bm->getClipContents( length ) : 0;
}
extern "C"
void BMFE_OpenBookmarksWindow (MWContext* context)
{
QtBookmarksContext *bm = QtBookmarksContext::qt(context);
if ( bm )
bm->openBookmarksWindow();
}
extern "C"
void BMFE_EditItem (MWContext* context, BM_Entry* entry)
{
QtBookmarksContext *bm = QtBookmarksContext::qt(context);
if ( bm )
bm->editItem( entry );
}
extern "C"
void BMFE_EntryGoingAway (MWContext* context, BM_Entry* entry)
{
QtBookmarksContext *bm = QtBookmarksContext::qt(context);
if ( bm )
bm->entryGoingAway( entry );
}
extern "C"
void BMFE_GotoBookmark (MWContext* context,
const char* url, const char* target)
{
QtBookmarksContext *bm = QtBookmarksContext::qt(context);
if ( bm )
bm->gotoBookmark( url, target );
}
extern "C"
void* BMFE_OpenFindWindow (MWContext* context, BM_FindInfo* findInfo)
{
QtBookmarksContext *bm = QtBookmarksContext::qt(context);
return bm ? bm->openFindWindow( findInfo ) : 0;
}
extern "C"
void BMFE_ScrollIntoView (MWContext* context, BM_Entry* entry)
{
QtBookmarksContext *bm = QtBookmarksContext::qt(context);
if ( bm )
bm->scrollIntoView( entry );
}
extern "C"
void BMFE_BookmarkMenuInvalid (MWContext* context)
{
QtBookmarksContext *bm = QtBookmarksContext::qt(context);
if ( bm )
bm->bookmarkMenuInvalid();
}
extern "C"
void BMFE_UpdateWhatsChanged (MWContext* context,
const char* url, /* If NULL, just display
"Checking..." */
int32 done, int32 total,
const char* totaltime)
{
QtBookmarksContext *bm = QtBookmarksContext::qt(context);
if ( bm )
bm->updateWhatsChanged( url, done, total, totaltime );
}
extern "C"
void BMFE_FinishedWhatsChanged (MWContext* context, int32 totalchecked,
int32 numreached, int32 numchanged)
{
QtBookmarksContext *bm = QtBookmarksContext::qt(context);
if ( bm )
bm->finishedWhatsChanged( totalchecked, numreached, numchanged );
}
extern "C"
void BMFE_StartBatch (MWContext* context)
{
QtBookmarksContext *bm = QtBookmarksContext::qt(context);
if ( bm )
bm->startBatch();
}
extern "C"
void BMFE_EndBatch (MWContext* context)
{
QtBookmarksContext *bm = QtBookmarksContext::qt(context);
if ( bm )
bm->endBatch();
}
extern "C"
ED_CharsetEncode FE_EncodingDialog(MWContext* context, char* newCharset)
{
ED_CharsetEncode retval = ED_ENCODE_CANCEL;
/* Write me */
assert( 0 );
return retval;
}
// Mail specific FE functions
// Included because of compilation problems
#include <msgcom.h>
extern "C"
MSG_Pane*
FE_CreateCompositionPane(MWContext* old_context,
MSG_CompositionFields* fields,
const char* initialText,
MSG_EditorType editorType)
{
return 0;
}
extern "C"
void
FE_UpdateCompToolbar(MSG_Pane* comppane)
{
}
extern "C"
const char *
FE_UsersOrganization()
{
return 0;
}
extern "C"
void
FE_DestroyMailCompositionContext(MWContext* context)
{
}
extern "C"
void
FE_MsgShowHeaders(MSG_Pane *pPane,
MSG_HEADER_SET mhsHeaders)
{
}
extern "C"
const char *
FE_UsersRealMailAddress()
{
return 0;
}
#ifdef XP_UNIX
extern "C"
void XFE_InitializePrintSetup (PrintSetup *p)
{
}
#endif /* XP_UNIX */
/* If we're set up to deliver mail/news by running a program rather
than by talking to SMTP/NNTP, this does it.
Returns positive if delivery via program was successful;
Returns negative if delivery failed;
Returns 0 if delivery was not attempted (in which case we
should use SMTP/NNTP instead.)
$NS_MSG_DELIVERY_HOOK names a program which is invoked with one argument,
a tmp file containing a message. (Lines are terminated with CRLF.)
This program is expected to parse the To, CC, BCC, and Newsgroups headers,
and effect delivery to mail and/or news. It should exit with status 0
iff successful.
#### This really wants to be defined in libmsg, but it wants to
be able to use fe_perror, so...
*/
extern "C"
int
msg_DeliverMessageExternally(MWContext *context, const char *msg_file)
{
}