/* -*- 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_InitFileFormatTypes(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