gecko-dev/cmd/winfe/winproto.h

255 lines
9.3 KiB
C++
Executable File

/* -*- 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 WINPROTO_H
#define WINPROTO_H
/*
* Prototypes for functions local to the windows front end
*
* This file will be included by both C and C++ files so please
* be careful with how you do things
*/
/* Bookmark drag and drop defines*/
#define NETSCAPE_BOOKMARK_FORMAT "Netscape Bookmark"
#define NETSCAPE_BOOKMARK_FOLDER_FORMAT "Netscape Bookmark Folder"
#define NETSCAPE_SOURCETARGET_FORMAT "Netscape source-target"
#define NETSCAPE_BKMKLISTL_FORMAT "Netscape Bookmark List (Long)"
#define NETSCAPE_HTNODE_FORMAT "Netscape RDF Item"
typedef struct {
char szAnchor[1024];
char szText[1024];
} BOOKMARKITEM;
typedef BOOKMARKITEM * LPBOOKMARKITEM;
/*
* C Functions
*/
XP_BEGIN_PROTOS
extern char * wfe_LoadResourceString (LPCSTR lpszName);
XP_END_PROTOS
/*
* C++ Functions
*/
extern char * FE_Windowsify(const char * In);
extern char* XP_NetToDosFileName(const char * NetName);
extern char * fe_MiddleCutString(char *string ,int iNum, BOOL bModifyString = FALSE);
void WFE_ConvertFile2Url(CString& csUrl, const char *LocalFileName);
CString WFE_EscapeURL(const char* name);
void WFE_CondenseURL(CString& csURL, UINT uLength, BOOL bParens = TRUE);
BOOL WFE_CopyFile(const char *cpSrc, const char *cpTarg);
BOOL WFE_MoveFile(const char *cpSrc, const char *cpTarg);
#ifdef XP_WIN16
#define INVALID_HANDLE_VALUE NULL
void * FindFirstFile(const char * a, void * b);
int FindNextFile(void * a, void * b);
void FindClose(void * a);
#endif
// Draw helpers.
void WFE_DrawWindowsButtonRect(HDC hDC, LPRECT lpRect, BOOL bPushed = FALSE);
void WFE_DrawRaisedRect( HDC hDC, LPRECT lpRect );
void WFE_DrawLoweredRect( HDC hDC, LPRECT lpRect );
void WFE_Draw3DButtonRect( HDC hDC, LPRECT lpRect, BOOL bPushed );
void WFE_FillSolidRect(CDC *pDC, CRect crRect, COLORREF rgbFill);
void WFE_DrawHighlight( HDC hDC, LPRECT lpRect, COLORREF clrTopLeft, COLORREF clrBottomRight );
// Bitmap helpers
#define RGB_TRANSPARENT RGB(255,0,255)
void WFE_MakeTransparentBitmap( HDC hDC, HBITMAP hBitmap );
HBITMAP WFE_LoadSysColorBitmap( HINSTANCE hInst, LPCSTR lpszResource );
// Forces bitmap to be compatible with our palette
HBITMAP WFE_LoadBitmap( HINSTANCE hInst, HDC hDC, LPCSTR lpszResource );
HBITMAP wfe_LoadBitmap(HINSTANCE hInst, HDC hDC, LPCSTR pszBmName );
HBITMAP WFE_LoadTransparentBitmap(HINSTANCE hInstance, HDC hDC, COLORREF clrBackground, COLORREF clrTransparent,
HPALETTE hPalette, UINT nResID);
HBITMAP WFE_LoadBitmapFromFile (const char* szFileName);
void WFE_InitializeUIPalette(HDC hDC);
HPALETTE WFE_GetUIPalette(CWnd * parent);
BOOL WFE_IsGlobalPalette(HPALETTE hPal);
void WFE_DestroyUIPalette(void);
HBITMAP WFE_LookupLoadAndEnterBitmap(HDC hDC, UINT nID, BOOL bTransparent, HPALETTE hPalette,
COLORREF clrBackground, COLORREF clrTransparent);
void WFE_RemoveBitmapFromMap(UINT nID);
void WFE_DestroyBitmapMap(void);
HFONT WFE_GetUIFont(HDC hDC);
void WFE_DestroyUIFont(void);
CFrameWnd *WFE_GetOwnerFrame(CWnd *pWnd);
int WFE_FindMenu(CMenu *pMenu, CString& menuItemName);
int WFE_FindMenuItem(CMenu *pMenu, UINT nCommand);
void fe_UpdateMControlMimeTypes(void); //CRN_MIME
//
// Prompt user for a file name
//
#define HTM 1
#define TXT 2
#define EXE 3
#define ALL 4
// Editor should open ONLY html files!
#define HTM_ONLY -1
#define P12 -2
// If pPageTitle is not null, then edit box is added to allow user to enter document title for edited documents
// Caller must free *ppPageTitle
extern char * wfe_GetSaveFileName(HWND m_hWnd, char * prompt, char * initial, int * type, char **ppPageTitle = NULL);
// If pOpenIntoEditor is not null, then radio buttons are added to select window type
// set initial choice and read user's choice from this
extern char * wfe_GetExistingFileName(HWND m_hWnd, char * prompt, int type, XP_Bool bMustExist,
BOOL * pOpenIntoEditor = NULL);
// CLM: Similar above, but used to select Image Files: *.jpg, *.gif
extern char * wfe_GetExistingImageFileName(HWND m_hWnd, char * prompt, XP_Bool bMustExist);
// Copy file routine for Editor - ask user permission
// to overwrite existing file
// Params may be local file format or "file://" URL format,
// and assumes full pathnames
BOOL FE_CopyFile(const char *cpSrc, const char *cpTarg);
// try to convert a URL to 8+3
char * fe_URLtoLocalName(const char * url, const char *pMimeType);
// pop up a little box and ask the user for a filename
char * fe_GetSaveFileName(HWND m_hWnd, char * initial);
// Module level prototypes
extern void FE_DeleteFileOnExit(const char *filename, const char *pURL);
extern void FE_DeleteTempFilesNow();
extern void FE_FlushCache();
//Added pSwitcher to allow us to dictate which HINSTANCE to load the string from. if NULL, we use AfxGetResourceHandle
class ResourceSwitcher;
extern char * szLoadString (UINT iID, ResourceSwitcher *pSwticher = NULL);
// Helper application handling functions
//
extern void fe_MimeProtocolHelperInit(void);
extern void fe_StartRegistryLoop(void);
extern void fe_EndRegistryLoop(void);
extern CHelperApp * fe_AddNewFileFormatType(const char *mime_type,const char *subtype);
extern void fe_CleanupFileFormatTypes(void);
// Get a file name given a type prefix and extension
// Name is returned in static space --- user must not free
// WARNING: Unlike the older version of this routine (XP_FileName) this one
// returns a malloc'd string.
extern char * WH_TempFileName(int type, const char * prefix, const char * extension);
// Read in the user's sig
extern char * wfe_ReadUserSig(const char * msg);
// Set the display property for type to the given color
extern void wfe_SetLayoutColor(int type, COLORREF color);
class CDNSObj : public CObject
{
public:
CDNSObj();
~CDNSObj();
int i_finished;
XP_List * m_sock_list;
int m_iError;
char * m_host;
struct hostent * m_hostent;
HANDLE m_handle;
// Used by FE_DeleteDNSList in fenet.cpp
MWContext * context;
};
// Form stuff.
#define BUTTON_FUDGE 6 // extra spacing around buttons and checkboxes
#define EDIT_SPACE 2 // vertical spacing above edit and combo box fields
#define BOX(pStr) ::MessageBox(NULL, pStr, "Fancy", MB_ICONEXCLAMATION)
// CLM: Some simple functions to aid in COLORREF to LO_Color conversions
// Fill a LoColor structure
void WFE_SetLO_Color( COLORREF crColor, LO_Color *pLoColor );
// This allocates a new LoColor structure if it
// does not exist
void WFE_SetLO_ColorPtr( COLORREF crColor, LO_Color **ppLoColor );
// Convert a LO_Color structure or get the default
// default document colors
COLORREF WFE_LO2COLORREF( LO_Color * pLoColor, int iColorIndex );
// Parse a "#FFEEAA" style color string into colors make a COLORREF
BOOL WFE_ParseColor(char *pRGB, COLORREF * pCRef );
// Helper to clear data
void WFE_FreeLO_Color(LO_Color_struct **ppLo);
// Only drop target allowed is Composer
#ifdef EDITOR
// Drag drop images...
void WFE_DragDropImage(HGLOBAL h, MWContext *pMWContext);
// Fill struct with data about an image
// for drag n drop and copying to clipboard
HGLOBAL WFE_CreateCopyImageData(MWContext*pMWContext, LO_ImageStruct *pImage);
#endif /* EDITOR */
// This will hide/show caret only if enabled
// or hide/show DragDrop caret if currently dragging over the view
void WFE_HideEditCaret(MWContext * pMWContext);
void WFE_ShowEditCaret(MWContext * pMWContext);
// Return value for WFE_GetCurrentFontColor when no color is set
// Use as param with CColorComboBox::SetColor to set to default color (index 0)
#define DEFAULT_COLORREF 0xFFFFFFFF
// Return this when we have a mixed state - we don't have a single color
#define MIXED_COLORREF 0xFFFFFFF0
// Return value when Canceling out of CColorPicker
#define CANCEL_COLORREF 0xFFFFFF00
COLORREF WFE_GetCurrentFontColor(MWContext * pMWContext);
// Get a resource string and extract the tooltip portion
// if a '\n' is found in the string
// USE RESULT QUICKLY!
// (String is in our temp buffer and should not be FREEd)
char * FEU_GetToolTipText( UINT nID );
char *FE_FindFileExt(char * path);
extern int PR_CALLBACK WinFEPrefChangedFunc(const char *pref, void *data);
#ifdef MOZ_LDAP
extern int PR_CALLBACK DirServerListChanged(const char *pref, void *data);
#endif /* MOZ_LDAP */
extern void fe_InitNSPR(void *stackBase);
extern void fe_InitJava();
extern void OpenDraftExit (URL_Struct *url_struct, int status, MWContext *pContext);
extern BOOL fe_ShutdownJava();
extern BOOL fe_RegisterOLEIcon(LPSTR szCLSIDObject, LPSTR szObjectName, LPSTR szIconPath);
extern void WFE_DrawDragRect(CDC* pdc, LPCRECT lpRect, SIZE size,
LPCRECT lpRectLast, SIZE sizeLast, CBrush* pBrush, CBrush* pBrushLast);
#endif // WINPROTO_H