NumeRe v1.1.4
NumeRe: Framework für Numerische Rechnungen
datastructures.h
Go to the documentation of this file.
1/*****************************************************************************
2 NumeRe: Framework fuer Numerische Rechnungen
3 Copyright (C) 2019 Erik Haenel et al.
4
5 This program is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, either version 3 of the License, or
8 (at your option) any later version.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>.
17******************************************************************************/
18
19
20// Datastructures.h - common data structures for the Chameleon project
21#ifndef DATASTRUCTURES__H
22#define DATASTRUCTURES__H
23
24#define CHAMELEON_VERSION_NUM " 0.1beta4 "
25
26#include <wx/wx.h>
27#include <wx/hashmap.h>
28#include <wx/string.h>
29#include <wx/dynarray.h>
30#include <wx/filename.h>
31//#include <wx/treectrl.h>
32
33class wxWindow;
34class NumeReEditor;
35class wxTextOutputStream;
36
38{
42};
43
45{
56};
57
58
60{
61 // menu items
64
65 // File menu
108
112
122
126
132
133 // Search menu
139
151
152 // tools menu items
171
174
178
183
185
187
189
198
204
205 // major widgets
225
226 // Variable viewer context menu
235
236 // Revision dialog IDs
242
243 // Dependency dialog IDs
249
250 // edit menu items
255
259
261
265
272
275
276 // debugging command IDs
284
302
306
309
311
315
316 // ImagePanel Ids
321
322 // Graph window IDs
334
335 // Graph draw tool ids
342
343 // Package creator ids
351
352 // Plugin repo browser ids
356
357
363{
371
372
373// This enum should match the order of items in the wxImageList
374// used for the project tree, as created in RemoteFileDialog's constructor
376{
388};
389
392 CR_OK = 0,
394};
395
396// IMPORTANT!!! Any changes to this enum need to be reflected in the
397// PermStrings array in p.cpp.
398
399
400WX_DEFINE_ARRAY(wxWindow*, WindowPointerArray);
401WX_DEFINE_ARRAY(NumeReEditor*, EditorPointerArray);
402WX_DEFINE_ARRAY_INT(bool, BoolArray);
403
404
405enum PathID {
415
416
417typedef struct
418{
419 wxArrayInt gdbNumbers;
420 wxArrayInt lineNumbers;
422
423//typedef struct
424//{
425// bool functionHasBeenVisited;
426// BoolArray variableDisplayed;
427// wxArrayString variableNames;
428//} FunctionVariablesInfo;
429
430typedef struct
431{
432 wxString type;
433 wxString name;
434 wxString functionName;
435 wxString value;
436 wxString regexKey;
438
439typedef struct
440{
441 wxArrayString dirNames;
442 wxArrayString fileNames;
443} DirListing;
444
446 int,
447 wxIntegerHash,
448 wxIntegerEqual,
449 IntIntHashmap );
450
452 int,
453 wxStringHash,
454 wxStringEqual,
455 StringIntHashmap);
456
459 wxStringHash,
460 wxStringEqual,
461 DebugBreakHash);
462
464 wxArrayInt,
465 wxStringHash,
466 wxStringEqual,
467 FileBreakpointHash);
468
471 wxIntegerHash,
472 wxIntegerEqual,
473 VariableInfoHash);
474
475//WX_DECLARE_HASH_MAP(wxString,
476// FunctionVariablesInfo,
477// wxStringHash,
478// wxStringEqual,
479// FunctionVariablesHash);
480
482 StringStringHashmap);
483
484WX_DECLARE_STRING_HASH_MAP(wxFileName, StringFilenameHash);
485
487
488enum PCConnState { // this is used exclusively inside ProcessInfo
489
490 PC_STARTING, // Waiting for Login confirmation
491 PC_READY, // Connection has been established. Nothing going
492 // on. Just waiting to be used.
493 PC_EXECUTING, // Very short phase between sending the command
494 // and getting the starttoken
495 PC_BUSY, // Have received the starttoken, so all output is
496 // sent to the "owner"
497 PC_ENDING // Have received the endtoken. Now in doing term
498 // sequence
500
501typedef struct
502{
503 long pid;
504 wxProcess* proc;
506 wxTextOutputStream* stdinStream;
507 wxString outputBuf;
508 wxEvtHandler* owner;
511
512WX_DECLARE_LIST(ProcessInfo, ProcessInfoList);
513WX_DEFINE_ARRAY(ProcessInfo*, ProcessInfoArray);
514
516{
517 NET_STARTING = -1, // NEVER used externally
519 NET_UNKNOWN_HOST, // host finger print not in cache
520 NET_CONN_REFUSED, // host wouldn't allow a connection
521 NET_AUTH_FAILED, // user+pass did not work on host
522 NET_ERROR_MESSAGE, // default/catch-all
523};
524
526{
530};
531
533{
552};
553
555{
559};
560
561#endif
The class of the editor window.
Definition: editor.h:53
CompileResult
@ CR_TERMINATED
@ CR_OK
@ CR_ERROR
WX_DECLARE_STRING_HASH_MAP(wxString, StringStringHashmap)
WX_DEFINE_ARRAY(wxWindow *, WindowPointerArray)
WX_DECLARE_LIST(ProcessInfo, ProcessInfoList)
WX_DECLARE_OBJARRAY(VariableInfo, VariableInfoArray)
NetworkCallResult
@ NETCALL_WORKED
@ NETCALL_FAILED
@ NETCALL_REDO
MarkerTypes
@ MARKER_DUPLICATEINDICATOR_TWO
@ MARKER_BREAKPOINT
@ MARKER_DUPLICATEINDICATOR_ONE
@ MARKER_HIDDEN
@ MARKER_BOOKMARK
@ MARKER_SAVED
@ MARKER_HIDDEN_MARGIN
@ MARKER_FOCUSEDLINE
@ MARKER_SECTION
@ MARKER_MODIFIED
WindowType
This enumeration defines all terminal- closable window types.
@ WT_CUSTOM
@ WT_IMAGEVIEWER
@ WT_DOCVIEWER
@ WT_GRAPH
@ WT_TABLEVIEWER
@ WT_ALL
PathID
@ SCRIPTPATH
@ EXEPATH
@ LOADPATH
@ PLOTPATH
@ PATH_LAST
@ WORKPATH
@ PROCPATH
@ SAVEPATH
WX_DECLARE_HASH_MAP(int, int, wxIntegerHash, wxIntegerEqual, IntIntHashmap)
WX_DEFINE_ARRAY_INT(bool, BoolArray)
PCConnState
@ PC_ENDING
@ PC_BUSY
@ PC_EXECUTING
@ PC_STARTING
@ PC_READY
VariableNames
@ VN_CLICKEDTAB
@ VN_NUMPAGES
@ VN_CURRENTPAGE
IconIndex
@ ICON_FOLDERCLOSED
@ ICON_FOLDEROPEN
@ ICON_DISABLED_SOURCE_CPP
@ ICON_LIBRARY
@ ICON_DISABLED_SOURCE_H
@ ICON_DISABLED_SOURCE_C
@ ICON_SOURCE_H
@ ICON_SOURCE_CPP
@ ICON_PROJECT
@ ICON_SOURCE_C
@ ICON_DEFAULT
FileFilterType
@ FILE_SUPPORTEDFILES
@ FILE_NONSOURCE
@ FILE_LASTTYPE
@ FILE_CPP
@ FILE_DATAFILES
@ FILE_PLUGIN
@ FILE_ALLFILES
@ FILE_NPRC
@ FILE_XML
@ FILE_TEXSOURCE
@ FILE_NSCR
@ FILE_NUMERE
@ FILE_NOTYPE
@ FILE_NLYT
@ FILE_MATLAB
@ FILE_IMAGEFILES
@ FILE_ALLSOURCETYPES
@ FILE_DIFF
ModifiedFileAction
@ MODIFIEDFILE_CLOSE
@ MODIFIEDFILE_RELOAD
@ MODIFIEDFILE_COMPILE
NetworkStatus
@ NET_AUTH_FAILED
@ NET_GOOD
@ NET_CONN_REFUSED
@ NET_ERROR_MESSAGE
@ NET_STARTING
@ NET_UNKNOWN_HOST
WindowID
@ ID_MENU_UNFOLD_ALL
@ ID_STATUSTIMER
@ ID_ABSTRAHIZE_SECTION
@ ID_FIND_INCLUDE
@ ID_DEBUGTERMINAL
@ ID_MENU_TOGGLE_COMMENT_SELECTION
@ ID_MENU_NEW_FOLDER_IN_TREE
@ ID_TEST
@ ID_PROJECT_REMOVE_HEADERFILE
@ ID_MENU_CLOSETAB
@ ID_DELETE_FROM_HISTORY
@ ID_MENU_BOOKMARK_CLEARMENU
@ ID_REPODLG_INSTALL
@ ID_FILEEVENTTIMER
@ ID_MENU_REPLACE
@ ID_MENU_TOGGLE_HISTORY
@ ID_VARVIEWER_REMOVE
@ ID_TAB_ED
@ ID_DEBUG_DISPLAY_SELECTION
@ ID_PROJECT_ADD_SOURCEFILE
@ ID_GRAPH_ALPHA
@ ID_MENU_TOGGLE_FILETREE
@ ID_MENU_AUTOINDENT
@ ID_GRAPH_DRAW_FIRST
@ ID_MENU_TOGGLE_NOTEBOOK_MULTIROW
@ ID_MENU_OPEN_FILE_FROM_TREE
@ ID_VARVIEWER_SAVEAS
@ ID_MENU_BOOKMARK_TOGGLE
@ EVENTID_HELP_START
@ ID_MENU_NEW_PLUGIN
@ ID_MENU_PASTE
@ ID_MENU_INSTALLPLUGINFROMFILE
@ ID_DEBUG_IDS_LAST
@ ID_NOTEBOOK_TERM
@ ID_MENU_SORT_SELECTION_DESC
@ ID_PROJECT_REMOVE_SOURCEFILE
@ ID_MENU_AUTOFORMAT
@ ID_CONTAINER_DEBUGTERM
@ ID_MENU_SAVE_SOURCE_REMOTE
@ ID_OPTIONSDIALOG
@ ID_MENU_COPY
@ ID_GRAPH_ROTATE
@ ID_DEBUG_MODIFYBREAKPOINTS
@ ID_MENU_RENAME_SYMBOL
@ ID_PKGDLG_REMOVE
@ ID_MENU_NEW_LAYOUT
@ ID_MENU_RENAME_FILE_IN_TREE
@ ID_GRAPH_ZOOM
@ ID_REFACTORING_MENU
@ ID_SPLITEDITOROUTPUT
@ ID_BOOKMARK_ADD
@ ID_MENU_RUN_FROM_TAB
@ ID_HELP_GO_BACK
@ ID_MENU_TOGGLE_DEBUGGER
@ ID_UPPERCASE
@ ID_MENU_FOLD_ALL
@ ID_SELECTLINE
@ ID_HELP_GO_FORWARD
@ ID_MENU_ADDEDITORBREAKPOINT
@ ID_MENU_BOOKMARK_PREVIOUS
@ ID_FUNCTIONTREE
@ ID_MENU_REMOVEEDITORBREAKPOINT
@ ID_OPEN_PROJECT_REMOTE
@ ID_PROJECT_EXCLUDE_FILE
@ ID_MENU_FIND
@ ID_REVISIONDIALOG_SHOW
@ ID_MENU_SORT_SELECTION_ASC
@ ID_DEPENDENCYDIALOG_FOLDALL
@ ID_MENU_PLUGINBROWSER
@ ID_MENU_NEW_ASK
@ ID_SPLITPROJECTEDITOR
@ ID_REVISIONDIALOG_RESTORE
@ ID_COMPILEROUTPUT
@ ID_SAVEIMAGE
@ ID_DEBUG_CONTINUE
@ ID_BOOKMARK_CLEAR
@ ID_MENU_COPY_FILE_FROM_TREE
@ ID_PREVIOUSIMAGE
@ ID_CONTAINER_TERM
@ ID_MENU_FIND_INCLUDE
@ ID_DEBUG_STEPOVER
@ ID_MENU_STRIP_SPACES_BOTH
@ ID_MENU_USESECTIONS
@ ID_MENU_CREATE_LATEX_FILE
@ ID_MENU_BOOKMARK_NEXT
@ ID_MENU_INSERT_IN_CONSOLE_FROM_TREE
@ ID_MENU_CREATE_DOCUMENTATION
@ ID_DEPENDENCYDIALOG_UNFOLDALL
@ ID_CLOSE_PROJECT
@ ID_MENU_QUIT
@ ID_MENU_RUN_LATEX
@ ID_GRAPH_CIRCLE
@ ID_ANALYZERTIMER
@ ID_MENU_ABOUT
@ ID_MENU_DELETE_FILE_FROM_TREE
@ ID_MENU_CLOSEALL
@ ID_GRAPH_STOP
@ ID_MENU_DISPCTRLCHARS
@ ID_REPODLG_UNINSTALL
@ ID_MENU_INDENTONTYPE
@ ID_MENU_CLEAREDITORBREAKPOINTS
@ ID_NEXTIMAGE
@ ID_SELECTALL
@ ID_COMPILERTEXTBOX
@ ID_MENU_SHOW_DESCRIPTION
@ ID_MENU_TRANSPOSESELECTION
@ ID_PROJECT_ADD_LIBRARYFILE
@ ID_REVISIONDIALOG_COMPARE
@ ID_ED
@ ID_MENU_NEW_SCRIPT
@ ID_DEBUG_ADD_WATCH
@ ID_OPEN_PROJECT_LOCAL
@ ID_PROJECTTREE
@ ID_MENU_SAVE
@ ID_MENU_STOP_EXECUTION
@ ID_PROJECT_SETTINGS
@ ID_VARVIEWER_NEW
@ ID_MENU_CREATE_PACKAGE
@ ID_PKGDLG_ADD
@ ID_MENU_CLOSETABFORCE
@ ID_MENU_OPEN_FOLDER
@ ID_MENU_EXPORT_FORMATTED
@ ID_MENU_REDO
@ ID_MENU_UNDO
@ ID_REVISIONDIALOG_TAG
@ ID_GRAPH_TEXT
@ ID_MENU_REMOVE_FOLDER_FROM_TREE
@ ID_PROJECT_REMOVE_LIBRARYFILE
@ ID_DEBUG_CLEAR_ALL_BREAKPOINTS
@ ID_MENU_OPEN_IN_EXPLORER
@ ID_DEPENDENCYDIALOG_EXPORTDOT
@ ID_MENU_EXPORT_AS_HTML
@ ID_DEBUG_REMOVE_BREAKPOINT
@ ID_GRAPH_LIGHT
@ ID_DEBUG_EXIT_NORMAL
@ ID_DEBUG_RUNTOCURSOR
@ ID_MENU_EXECUTE
@ ID_GRAPH_DRAW_LAST
@ ID_PROJECT_INCLUDE_FILE
@ ID_MENU_OPTIONS
@ ID_DEBUG_BREAKPOINT
@ ID_MENU_USETXTADV
@ ID_MENU_COPY_AS_PATH
@ ID_PKGDLG_SAVEPROJECT
@ EVENTID_PLUGIN_MENU_END
@ ID_MENU_NEW_EMPTY
@ ID_MENU_STRIP_SPACES_BACK
@ ID_MENU_TOGGLE_CONSOLE
@ ID_PANEL_ED
@ ID_MENU_GOTOLINE
@ ID_FIND_PROCEDURE
@ ID_HELP_HOME
@ ID_COPYIMAGE
@ ID_DEBUG_VARINFO
@ ID_MENU_SELECTION_UP
@ ID_GRAPH_COPY
@ ID_PROJECT_ADD_HEADERFILE
@ ID_INDENT
@ ID_PKGDLG_ABORT
@ ID_DEBUG_WATCH_SELECTION
@ ID_MENU_FIND_DUPLICATES
@ ID_HIDE_SELECTION
@ ID_MENU_OPEN_SOURCE_LOCAL
@ ID_MENU_INSERT_IN_EDITOR_FROM_TREE
@ ID_DEBUG_STEPOUT
@ EVENTID_PLUGIN_MENU_START
@ ID_REVISIONDIALOG_REFRESH
@ ID_MENU_PRINT_SETUP
@ ID_DEBUG_IDS_FIRST
@ ID_MENU_HELP
@ ID_NEW_PROJECT
@ ID_MENU_OPEN_SOURCE_REMOTE
@ ID_GRAPH_LINE
@ ID_RENAME_SYMBOLS
@ ID_MENU_SHOW_DEPENDENCY_REPORT
@ ID_TERMINAL
@ ID_MENU_PRINT_PAGE
@ ID_VARVIEWER_SAVE
@ ID_MENU_INSERT_FILE_INTO_TREE
@ ID_FIX_TYPE
@ ID_PKGDLG_LOADPROJECT
@ ID_MENU_UNHIDE_ALL
@ ID_PROJECT_ADDFILE
@ ID_VARVIEWER_SHOW
@ ID_DEBUG_EXIT_ERROR
@ ID_DEBUG_REMOVE_WATCH
@ ID_VARVIEWER_RENAME
@ ID_MENU_UNSPLIT_TAB
@ ID_MENU_TAG_CURRENT_REVISION
@ ID_MENU_CLOSEOTHERS
@ ID_FOLD_CURRENT_BLOCK
@ ID_GRAPH_PREVIOUS
@ ID_COPY_FROM_HISTORY
@ ID_GRAPH_RUN
@ ID_GRAPH_EXPORT
@ ID_UNINDENT
@ ID_MENU_NEW_PROCEDURE
@ ID_HELP_PRINT_PREVIEW
@ ID_PKGDLG_CREATEPACKAGE
@ ID_GRAPH_RESET
@ ID_MENU_ABSTRAHIZE_SECTION
@ ID_MENU_COMPARE_FILES
@ ID_MENU_EDIT_FILE_FROM_TREE
@ ID_MENU_TOGGLE_COMMENT_LINE
@ ID_VARVIEWER_EDIT
@ EVENTID_MENU_END
@ ID_DEPENDENCYDIALOG_UNFOLDITEM
@ EVENTID_MENU_START
@ ID_LOWERCASE
@ ID_MENU_FIND_PROCEDURE
@ ID_VARWATCHPANEL
@ ID_MENU_SELECTION_DOWN
@ ID_MENU_COMPILE_LATEX
@ ID_VARVIEWER_COPYVALUE
@ ID_PKGDLG_AUTODETECT
@ ID_GRAPH_NEXT
@ ID_GRAPH_RECT
@ ID_HELP_PRINT
@ ID_NOTEBOOK_ED
@ ID_MENU_HELP_ON_ITEM
@ ID_MENU_SAVE_SOURCE_LOCAL
@ ID_MENU_CUT
@ ID_MENU_LINEWRAP
@ ID_REMOTEFILEDIALOG
@ ID_MENU_STRIP_SPACES_FRONT
@ ID_MENU_SHOW_REVISIONS_FROM_TAB
@ ID_MENU_SPLIT_TAB_H
@ ID_MENU_SHOW_REVISIONS
@ ID_DEBUG_ADD_BREAKPOINT
@ EVENTID_HELP_END
@ ID_HELP_INDEX
@ ID_MENU_SPLIT_TAB_V
@ ID_BOOKMARK_REMOVE
@ ID_DEPENDENCYDIALOG_FOLDITEM
@ ID_MENU_CLOSEPAGE
@ ID_MENU_USEANALYZER
@ ID_MENU_OPEN_FILE_FROM_TREE_TO_TABLE
@ ID_COMPILERLISTCTRL
@ ID_MENU_OPEN_IMAGE_FROM_TREE
@ ID_MENU_PRINT_PREVIEW
@ ID_PROJECT_REMOVEFILE
@ ID_DEBUG_STEPNEXT
wxArrayInt gdbNumbers
wxArrayInt lineNumbers
wxArrayString dirNames
wxArrayString fileNames
wxEvtHandler * owner
wxString outputBuf
PCConnState state
wxTextOutputStream * stdinStream
wxProcess * proc
wxString regexKey
wxString value
wxString functionName