Merge remote-tracking branch 'origin/master' into YaSp
[scilab.git] / scilab / modules / history_manager / includes / HistoryManager.h
1 /*
2 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 * Copyright (C) 2007-2008 - INRIA - Allan CORNET
4 * Copyright (C) 2010 - DIGITEO - Allan CORNET
5 *
6 * This file must be used under the terms of the CeCILL.
7 * This source file is licensed as described in the file COPYING, which
8 * you should have received as part of this distribution.  The terms
9 * are also available at
10 * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
11 *
12 */
13
14 /*------------------------------------------------------------------------*/
15 #ifndef __HISTORYMANAGER_C_H__
16 #define __HISTORYMANAGER_C_H__
17 #include "BOOL.h"
18 #include "dynlib_history_manager.h"
19 /*------------------------------------------------------------------------*/
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23     /*------------------------------------------------------------------------*/
24     /**
25     * get history manager state
26     * @return TRUE or FALSE
27     */
28     HISTORY_MANAGER_IMPEXP BOOL historyIsEnabled(void);
29
30     /**
31     * append lines to History manager
32     * @param array of string
33     * @param size of the array of string
34     * @return TRUE or FALSE
35     */
36     HISTORY_MANAGER_IMPEXP BOOL appendLinesToScilabHistory(char **lines_, int numberoflines);
37     // Note it is lines_ because line is a keyword for term stuff
38
39     /**
40     * add a line to History manager
41     * @param a line to add
42     * line isn't added if it is the same as previous (FALSE)
43     * @return TRUE or FALSE
44     */
45     HISTORY_MANAGER_IMPEXP BOOL appendLineToScilabHistory(char *line);
46
47     /**
48     * Display history
49     */
50     HISTORY_MANAGER_IMPEXP void displayScilabHistory(void);
51
52     /**
53     * save history in a file
54     * @param a filename if NULL saves in default filename
55     * default filename --> SCIHOME/history.scilab
56     * @return TRUE or FALSE
57     */
58     HISTORY_MANAGER_IMPEXP BOOL writeScilabHistoryToFile(char *filename);
59
60     /**
61     * load history from a file
62     * @param a filename if NULL load from default filename
63     * default filename --> SCIHOME/history.scilab
64     * @return TRUE or FALSE
65     */
66     HISTORY_MANAGER_IMPEXP BOOL loadScilabHistoryFromFile(char *filename);
67
68     /**
69     * set filename of history
70     * @param filename of history
71     * @return TRUE or FALSE
72     */
73     HISTORY_MANAGER_IMPEXP BOOL setFilenameScilabHistory(char *filename);
74
75     /**
76     * get filename of history
77     * @return a filename
78     */
79     HISTORY_MANAGER_IMPEXP char *getFilenameScilabHistory(void);
80
81     /**
82     * set default filename of history
83     * @return TRUE or FALSE
84     */
85     HISTORY_MANAGER_IMPEXP BOOL setDefaultFilenameScilabHistory(void);
86
87     /**
88     * get info about history file was or not truncated (too big)
89     * @return TRUE (truncated) or FALSE
90     */
91     HISTORY_MANAGER_IMPEXP BOOL isScilabHistoryTruncated(void);
92
93     /**
94     * reset history manager
95     */
96     HISTORY_MANAGER_IMPEXP BOOL resetScilabHistory(void);
97
98     /**
99     * Get all lines in history
100     * @return an array of string
101     */
102     HISTORY_MANAGER_IMPEXP char **getAllLinesOfScilabHistory(void);
103
104     /**
105     * Get numbers of lines in history
106     * size of array returned by getAllLinesOfScilabHistory
107     * @return int
108     */
109     HISTORY_MANAGER_IMPEXP int getSizeAllLinesOfScilabHistory(void);
110
111     /**
112     * set new token to search in history
113     * @param token (a string)
114     * @return TRUE or FALSE
115     */
116     HISTORY_MANAGER_IMPEXP BOOL setSearchedTokenInScilabHistory(char *token);
117
118     /**
119     * reset search in history
120     * @return TRUE or FALSE
121     */
122     HISTORY_MANAGER_IMPEXP BOOL resetSearchedTokenInScilabHistory(void);
123
124     /**
125     * get token searched in history
126     * @return token (a string)
127     */
128     HISTORY_MANAGER_IMPEXP char *getSearchedTokenInScilabHistory(void);
129
130     /**
131     * Get the previous line in Scilab history
132     * @return a line or NULL
133     * after an appendLine iterator go to end
134     */
135     HISTORY_MANAGER_IMPEXP char *getPreviousLineInScilabHistory(void);
136
137     /**
138     * Get the next line in Scilab history
139     * @return a line or NULL
140     * after an appendLine iterator go to end
141     */
142     HISTORY_MANAGER_IMPEXP char *getNextLineInScilabHistory(void);
143
144     /**
145     * Get numbers of lines in history
146     * @return number of lines
147     */
148     HISTORY_MANAGER_IMPEXP int getNumberOfLinesInScilabHistory(void);
149
150     /**
151     * set consecutive duplicate lines are added
152     * @param doit (TRUE or FALSE)
153     */
154     HISTORY_MANAGER_IMPEXP void setSaveConsecutiveDuplicateLinesInScilabHistory(BOOL doit);
155
156     /**
157     * indicate if consecutive duplicate lines are added
158     * @return TRUE or FALSE
159     */
160     HISTORY_MANAGER_IMPEXP BOOL getSaveConsecutiveDuplicateLinesInScilabHistory(void);
161
162     /**
163     * Set after how many lines history is saved
164     * @param number between 0 and Max
165     * default value is 0 (disabled)
166     */
167     HISTORY_MANAGER_IMPEXP void setAfterHowManyLinesScilabHistoryIsSaved(int num);
168
169     /**
170     * Get after how many lines history is saved
171     * @return number between 0 and Max
172     * default value is 0 (disabled)
173     */
174     HISTORY_MANAGER_IMPEXP int getAfterHowManyLinesScilabHistoryIsSaved(void);
175
176     /**
177     * Get the Nth Line in history
178     * @param N
179     * @return the Nth Line
180     */
181     HISTORY_MANAGER_IMPEXP char *getNthLineInScilabHistory(int N);
182
183     /**
184     * delete the Nth Line in history
185     * @param N
186     * @return TRUE or FALSE
187     */
188     HISTORY_MANAGER_IMPEXP BOOL deleteNthLineScilabHistory(int N);
189
190     /**
191     * get number of lines of history
192     * @return a number >= 0
193     */
194     HISTORY_MANAGER_IMPEXP int getSizeScilabHistory(void);
195
196     /**
197     */
198     HISTORY_MANAGER_IMPEXP BOOL setSizeMaxScilabHistory(int nbLinesMax);
199
200     /**
201     */
202     int getSizeMaxScilabHistory(void);
203
204
205     /*------------------------------------------------------------------------*/
206 #ifdef __cplusplus
207 }
208 #endif
209 /*------------------------------------------------------------------------*/
210 #endif /* __HISTORYMANAGER_C_H__ */
211 /*------------------------------------------------------------------------*/