1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147
|
/*******************************************************************************
* pvedit.h
*
* This file contains editor support code.
*
* Author: Christopher J. Cason.
*
* ---------------------------------------------------------------------------
* Persistence of Vision Ray Tracer ('POV-Ray') version 3.7.
* Copyright 1991-2013 Persistence of Vision Raytracer Pty. Ltd.
*
* POV-Ray is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* POV-Ray is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
* ---------------------------------------------------------------------------
* POV-Ray is based on the popular DKB raytracer version 2.12.
* DKBTrace was originally written by David K. Buck.
* DKBTrace Ver 2.0-2.12 were written by David K. Buck & Aaron A. Collins.
* ---------------------------------------------------------------------------
* $File: //depot/public/povray/3.x/windows/pvedit.h $
* $Revision: #1 $
* $Change: 6069 $
* $DateTime: 2013/11/06 11:59:40 $
* $Author: chrisc $
*******************************************************************************/
#ifndef PVEDIT_H_INCLUDED
#define PVEDIT_H_INCLUDED
#define EDITDLLVERSION 0x0302
#define MAX_EDITORS 32
#define EDIT_CAN_OPEN 0x01
#define EDIT_CAN_CLOSE 0x02
#define EDIT_CAN_WRITE 0x04
#define EDIT_CAN_UNDO 0x08
#define EDIT_CAN_REDO 0x10
#define EDIT_MSG_SELECTED 0x20
#define EDIT_CURRENT_MODIFIED 0x40
#define EDIT_ANY_MODIFIED 0x80
#define EDIT_DRAG_ACTIVE 0x100
#define RENDER_MESSAGE WM_USER + 1000
#define CREATE_RENDERWIN_MESSAGE WM_USER + 1005
#define CLOSE_EDITOR_MESSAGE WM_USER + 1010
#define CREATE_EDITOR_MESSAGE WM_USER + 1015
#define EDITOR_RENDER_MESSAGE WM_USER + 1020
#define SHOW_MESSAGES_MESSAGE WM_USER + 1025
#define KEYWORD_LOOKUP_MESSAGE WM_USER + 1030
#define RENDERWIN_CLOSE_MESSAGE WM_USER + 1035
#define HIDE_NEWUSER_HELP_MESSAGE WM_USER + 1040
#define COPY_COMMANDLINE_MESSAGE WM_USER + 1045
#define POVMS_QUEUE_MESSAGE WM_USER + 1050
#define TASKBAR_NOTIFY_MESSAGE WM_USER + 1100 // reserved 1100-1199
#define GUIEXT_CREATE_EDITOR WM_USER + 1200 // reserved 1200-1299
// NOTE: REGKEY and REGVERKEY are also used to construct the default path to the
// documents directory if it is not found in the registry, hence must be valid
// path components as well as valid registry keys.
#define REGKEY "POV-Ray"
#define REGVERKEY "v3.7"
namespace povwin
{
enum
{
GetFileMenu,
GetEditMenu,
GetSearchMenu,
GetTextMenu,
GetInsertMenu,
GetOptionsMenu,
GetAppearanceMenu,
GetWindowMenu
} ;
enum
{
NotifyTabChange,
NotifyEditStateChange,
NotifyModifiedChange,
NotifyExitRequest,
NotifyFocusSaveModified
} ;
typedef enum
{
StatusMessage,
StatusMem,
StatusLine,
StatusCol,
StatusIns,
StatusModified,
StatusPPS,
StatusRendertime,
StatusLast
} StatusBarSection ;
bool LoadEditorDLL (char *path, bool missingOK) ;
HWND InitialiseEditor (HWND ParentWindow, HWND StatusWindow, const char *BinariesPath, const char *DocumentsPath) ;
void SetEditorPosition (int x, int y, int w, int h) ;
void EditSetMessageWindow (HWND MessageWindow) ;
void EditRestoreState (int RestoreFiles) ;
void EditSaveState (void) ;
bool EditSelectFile (char *FileName) ;
bool EditBrowseFile (bool CreateNewWindow) ;
bool EditOpenFile (char *FileName) ;
bool EditCloseFile (char *FileName) ;
bool EditSaveFile (char *FileName) ;
bool EditExternalOpenFile (char *ParamString) ;
DWORD EditGetTab (void) ;
DWORD EditGetFlags (void) ;
char *EditGetFilename (bool IncludeModifiedIndicator) ;
void EditNextTab (bool Forward) ;
bool EditCanClose (bool AllFiles) ;
bool EditSaveModified (char *FileName) ;
bool EditEnabled (void) ;
void EditSetState (bool on) ;
bool EditShowMessages (bool on) ;
void EditDispatchMenuId (DWORD id) ;
void EditSetVisible (bool visible) ;
HMENU EditGetMenu (int which) ;
void EditUnload (void) ;
void EditSetNotifyBase (HWND WindowHandle, int MessageBase) ;
void EditUpdateMenus (HMENU MenuHandle) ;
void EditContextHelp (void) ;
void EditSetFocus (void) ;
bool EditShowParseError (const char *FileName, const char *Message, int Line, int Col) ;
bool EditPassOnMessage (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam, DWORD *rVal) ;
void EditSetKeywords (LPCSTR SDLKeywords, LPCSTR INIKeywords) ;
const char **EditGetWindowList(void);
}
#endif // PVEDIT_H_INCLUDED
|