Skip to content

Commit 46986d5

Browse files
committed
refactor terminal code into its own header and source
1 parent cfe61bb commit 46986d5

File tree

5 files changed

+1262
-1242
lines changed

5 files changed

+1262
-1242
lines changed

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ set(CFLTK_SRCS
7070
src/cfl_utils.cpp
7171
src/cfl_prefs.cpp
7272
src/Fl_Simple_Terminal.cxx
73+
src/cfl_term.cpp
7374
)
7475

7576
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")

include/cfl_group.h

Lines changed: 0 additions & 323 deletions
Original file line numberDiff line numberDiff line change
@@ -167,329 +167,6 @@ void Fl_Grid_debug(Fl_Grid *self, int level);
167167

168168
GROUP_DECLARE(Fl_Grid)
169169

170-
WIDGET_DECLARE(Fl_Terminal)
171-
172-
int Fl_Terminal_ansi(Fl_Terminal const *self);
173-
174-
void Fl_Terminal_set_ansi(Fl_Terminal *self, int boolean);
175-
176-
void Fl_Terminal_append(Fl_Terminal *self, const char *txt);
177-
178-
void Fl_Terminal_append_u8(Fl_Terminal *self, const char *txt, int len);
179-
180-
void Fl_Terminal_append_ascii(Fl_Terminal *self, const char *txt);
181-
182-
void Fl_Terminal_append_utf8(Fl_Terminal *self, const char *txt);
183-
184-
void Fl_Terminal_append_utf8_u8(Fl_Terminal *self, const char *txt, int len);
185-
186-
void Fl_Terminal_clear_mouse_selection(Fl_Terminal *self);
187-
188-
void Fl_Terminal_clear_to_color(Fl_Terminal *self, unsigned set);
189-
190-
void Fl_Terminal_clear_history(Fl_Terminal *self);
191-
192-
void Fl_Terminal_clear_screen(Fl_Terminal *self, int boolean);
193-
194-
void Fl_Terminal_clear_screen_home(Fl_Terminal *self, int boolean);
195-
196-
int Fl_Terminal_cursor_col(Fl_Terminal const *self);
197-
198-
void Fl_Terminal_set_cursor_col(Fl_Terminal *self, int val);
199-
200-
void Fl_Terminal_cursor_home(Fl_Terminal *self);
201-
202-
int Fl_Terminal_cursor_row(Fl_Terminal const *self);
203-
204-
void Fl_Terminal_set_cursor_row(Fl_Terminal *self, int val);
205-
206-
void Fl_Terminal_cursor_up(Fl_Terminal *self, int count, int do_scroll);
207-
208-
void Fl_Terminal_cursor_down(Fl_Terminal *self, int count, int do_scroll);
209-
210-
void Fl_Terminal_cursor_left(Fl_Terminal *self, int count);
211-
212-
void Fl_Terminal_cursor_right(Fl_Terminal *self, int count, int do_scroll);
213-
214-
void Fl_Terminal_scroll(Fl_Terminal *self, int count);
215-
216-
void Fl_Terminal_clear_eod(Fl_Terminal *self);
217-
218-
void Fl_Terminal_clear_eol(Fl_Terminal *self);
219-
220-
void Fl_Terminal_clear_cur_line(Fl_Terminal *self);
221-
222-
void Fl_Terminal_clear_line(Fl_Terminal *self, int drow);
223-
224-
void Fl_Terminal_clear_sod(Fl_Terminal *self);
225-
226-
void Fl_Terminal_clear_sol(Fl_Terminal *self);
227-
228-
void Fl_Terminal_insert_char(Fl_Terminal *self, char c, int rep);
229-
230-
void Fl_Terminal_insert_char_eol(Fl_Terminal *self, char c, int drow, int dcol, int rep);
231-
232-
void Fl_Terminal_insert_rows(Fl_Terminal *self, int count);
233-
234-
void Fl_Terminal_delete_chars(Fl_Terminal *self, int drow, int dcol, int count);
235-
236-
void Fl_Terminal_delete_cur_chars(Fl_Terminal *self, int count);
237-
238-
void Fl_Terminal_delete_rows(Fl_Terminal *self, int count);
239-
240-
241-
unsigned Fl_Terminal_cursor_bg_color(Fl_Terminal const *self
242-
); // Actually Fl_Color
243-
244-
void Fl_Terminal_set_cursor_bg_color(Fl_Terminal *self, unsigned set);
245-
246-
unsigned Fl_Terminal_cursor_fg_color(Fl_Terminal const *self
247-
); // Actually Fl_Color
248-
249-
void Fl_Terminal_set_cursor_fg_color(Fl_Terminal *self, unsigned set);
250-
251-
int Fl_Terminal_display_columns(Fl_Terminal const *self);
252-
253-
void Fl_Terminal_set_display_columns(Fl_Terminal *self, int set);
254-
255-
int Fl_Terminal_display_rows(Fl_Terminal const *self);
256-
257-
int Fl_Terminal_history_rows(Fl_Terminal const *self);
258-
259-
void Fl_Terminal_set_history_rows(Fl_Terminal *self, int set);
260-
261-
int Fl_Terminal_get_selection(Fl_Terminal const *self, int *retval);
262-
263-
int Fl_Terminal_history_use(Fl_Terminal const *self);
264-
265-
int Fl_Terminal_margin_bottom(Fl_Terminal const *self);
266-
267-
void Fl_Terminal_set_margin_bottom(Fl_Terminal *self, int set);
268-
269-
int Fl_Terminal_margin_left(Fl_Terminal const *self);
270-
271-
void Fl_Terminal_set_margin_left(Fl_Terminal *self, int set);
272-
273-
int Fl_Terminal_margin_right(Fl_Terminal const *self);
274-
275-
void Fl_Terminal_set_margin_right(Fl_Terminal *self, int set);
276-
277-
int Fl_Terminal_margin_top(Fl_Terminal const *self);
278-
279-
void Fl_Terminal_set_margin_top(Fl_Terminal *self, int set);
280-
281-
unsigned Fl_Terminal_output_translate(Fl_Terminal const *self
282-
); // Returns OutFlags
283-
284-
void Fl_Terminal_set_output_translate(Fl_Terminal *self, unsigned set);
285-
286-
void Fl_Terminal_print_char(Fl_Terminal *self, char c);
287-
288-
void Fl_Terminal_print_char_utf8(Fl_Terminal *self, const char *txt, int len);
289-
290-
// Note: Fl_Terminal_printf not supported for Rust
291-
void Fl_Terminal_printf(Fl_Terminal *self, const char *fmt, ...);
292-
293-
void Fl_Terminal_plot_char(Fl_Terminal *self, char c, int row, int col);
294-
295-
void Fl_Terminal_plot_char_utf8(
296-
Fl_Terminal *self, const char *txt, int len, int row, int col
297-
);
298-
299-
float Fl_Terminal_redraw_rate(Fl_Terminal const *self);
300-
301-
void Fl_Terminal_set_redraw_rate(Fl_Terminal *self, float set);
302-
303-
int Fl_Terminal_redraw_style(Fl_Terminal const *self
304-
); // Actually enum RedrawStyle
305-
306-
void Fl_Terminal_set_redraw_style(Fl_Terminal *self, int set);
307-
308-
void Fl_Terminal_reset_terminal(Fl_Terminal *self);
309-
310-
int Fl_Terminal_scrollbar_actual_size(Fl_Terminal const *self);
311-
312-
int Fl_Terminal_scrollbar_size(Fl_Terminal const *self);
313-
314-
void Fl_Terminal_set_scrollbar_size(Fl_Terminal *self, int set);
315-
316-
// int Fl_Terminal_hscrollbar_actual_size(Fl_Terminal const *self);
317-
318-
// int Fl_Terminal_hscrollbar_size(Fl_Terminal const *self);
319-
320-
// void Fl_Terminal_set_hscrollbar_size(Fl_Terminal *self, int set);
321-
322-
// int Fl_Terminal_hscroll_col(Fl_Terminal const *self);
323-
324-
// void Fl_Terminal_set_hscroll_col(Fl_Terminal *self, int set);
325-
326-
int Fl_Terminal_hscrollbar_style(Fl_Terminal const *self); // Actually returns enum HScrollbarStyle
327-
328-
void Fl_Terminal_set_hscrollbar_style(Fl_Terminal *self, int set);
329-
330-
unsigned Fl_Terminal_selection_bg_color(Fl_Terminal const *self
331-
); // Actually Fl_Color
332-
333-
void Fl_Terminal_set_selection_bg_color(Fl_Terminal *self, unsigned set);
334-
335-
unsigned Fl_Terminal_selection_fg_color(Fl_Terminal const *self
336-
); // Actually Fl_Color
337-
338-
void Fl_Terminal_set_selection_fg_color(Fl_Terminal *self, unsigned set);
339-
340-
int Fl_Terminal_show_unknown(Fl_Terminal const *self);
341-
342-
void Fl_Terminal_set_show_unknown(Fl_Terminal *self, int boolean);
343-
344-
unsigned char Fl_Terminal_text_attrib(Fl_Terminal const *self); // Actually returns Attrib
345-
346-
void Fl_Terminal_set_text_attrib(
347-
Fl_Terminal *self,
348-
unsigned char set
349-
); // Actually Attrib
350-
351-
unsigned Fl_Terminal_text_bg_color(Fl_Terminal const *self
352-
); // Actually Fl_Color
353-
354-
void Fl_Terminal_set_text_bg_color(Fl_Terminal *self, unsigned set);
355-
356-
unsigned Fl_Terminal_text_bg_color_default(Fl_Terminal const *self
357-
); // Actually Fl_Color
358-
359-
void Fl_Terminal_set_text_bg_color_default(Fl_Terminal *self, unsigned set);
360-
361-
void Fl_Terminal_set_text_bg_color_xterm(Fl_Terminal *self, unsigned char set);
362-
363-
void Fl_Terminal_set_text_color(Fl_Terminal *self, unsigned set);
364-
365-
unsigned Fl_Terminal_text_fg_color(Fl_Terminal const *self
366-
); // Actually Fl_Color
367-
368-
void Fl_Terminal_set_text_fg_color(Fl_Terminal *self, unsigned set);
369-
370-
unsigned Fl_Terminal_text_fg_color_default(Fl_Terminal const *self
371-
); // Actually Fl_Color
372-
373-
void Fl_Terminal_set_text_fg_color_default(Fl_Terminal *self, unsigned set);
374-
375-
void Fl_Terminal_set_text_fg_color_xterm(Fl_Terminal *self, unsigned char set);
376-
377-
int Fl_Terminal_text_font(Fl_Terminal const *self); // Actually Fl_Font
378-
379-
void Fl_Terminal_set_text_font(Fl_Terminal *self, int set);
380-
381-
int Fl_Terminal_text_size(Fl_Terminal const *self);
382-
383-
void Fl_Terminal_set_text_size(Fl_Terminal *self, int set);
384-
385-
const char* Fl_Terminal_text(Fl_Terminal const *self, int lines_below_cursor); // Argument is bool
386-
387-
const char *Fl_Terminal_selection_text(Fl_Terminal const *self);
388-
int Fl_Terminal_selection_text_len(Fl_Terminal const *self);
389-
390-
//----------------------------------------------------------------------
391-
/// Access to terminal widget's vertical and horizontal scrollbar
392-
typedef void Fl_Terminal_Scrollbar;
393-
Fl_Terminal_Scrollbar * Fl_Terminal_scrollbar(Fl_Terminal *self);
394-
Fl_Terminal_Scrollbar * Fl_Terminal_hscrollbar(Fl_Terminal *self);
395-
396-
//----------------------------------------------------------------------
397-
/// Utf8Char class, used to describe characters in the terminal ring buffer
398-
typedef void Fl_Terminal_Utf8Char;
399-
400-
unsigned Fl_Terminal_Utf8Char_attr_bgcolor(
401-
Fl_Terminal_Utf8Char const *self, const Fl_Terminal *grp); // Actually returns Fl_Color
402-
403-
unsigned Fl_Terminal_Utf8Char_attr_fgcolor(
404-
Fl_Terminal_Utf8Char const *self, const Fl_Terminal *grp); // Actually returns Fl_Color
405-
406-
unsigned char Fl_Terminal_Utf8Char_attrib(Fl_Terminal_Utf8Char const *self);
407-
408-
unsigned Fl_Terminal_Utf8Char_bgcolor(Fl_Terminal_Utf8Char const *self
409-
); // Actually returns Fl_Color
410-
411-
unsigned Fl_Terminal_Utf8Char_fgcolor(Fl_Terminal_Utf8Char const *self
412-
); // Actually returns Fl_Color
413-
414-
int Fl_Terminal_Utf8Char_is_char(Fl_Terminal_Utf8Char const *self,
415-
char c); // boolean
416-
417-
int Fl_Terminal_Utf8Char_length(Fl_Terminal_Utf8Char const *self);
418-
419-
int Fl_Terminal_Utf8Char_max_utf8(Fl_Terminal_Utf8Char const *self);
420-
421-
double Fl_Terminal_Utf8Char_pwidth(Fl_Terminal_Utf8Char const *self);
422-
423-
int Fl_Terminal_Utf8Char_pwidth_int(Fl_Terminal_Utf8Char const *self);
424-
425-
const unsigned char *
426-
Fl_Terminal_Utf8Char_text_utf8(Fl_Terminal_Utf8Char const *self);
427-
428-
unsigned char Fl_Terminal_Utf8Char_charflags(Fl_Terminal_Utf8Char const *self);
429-
430-
int Fl_Terminal_Utf8Char_length(Fl_Terminal_Utf8Char const *self);
431-
432-
// Construct a new Utf8Char, useful for testing
433-
Fl_Terminal_Utf8Char *Fl_Terminal_Utf8Char_new_obj(unsigned char c);
434-
435-
//----------------------------------------------------------------------
436-
// The following are protected functions used to access ring buffer text:
437-
438-
int Fl_Terminal_disp_erow(Fl_Terminal const *self);
439-
440-
int Fl_Terminal_disp_srow(Fl_Terminal const *self);
441-
442-
int Fl_Terminal_hist_erow(Fl_Terminal const *self);
443-
444-
int Fl_Terminal_hist_srow(Fl_Terminal const *self);
445-
446-
int Fl_Terminal_hist_use(Fl_Terminal const *self);
447-
448-
int Fl_Terminal_hist_use_srow(Fl_Terminal const *self);
449-
450-
int Fl_Terminal_h_to_row(Fl_Terminal const *self, int H);
451-
452-
int Fl_Terminal_w_to_col(Fl_Terminal const *self, int W);
453-
454-
int Fl_Terminal_is_inside_selection(
455-
Fl_Terminal const *self, int row, int col
456-
); // Actual return type is bool
457-
458-
int Fl_Terminal_is_selection(Fl_Terminal const *self
459-
); // Actual return type is bool
460-
461-
int Fl_Terminal_offset(Fl_Terminal const *self);
462-
463-
int Fl_Terminal_ring_erow(Fl_Terminal const *self);
464-
465-
int Fl_Terminal_ring_srow(Fl_Terminal const *self);
466-
467-
int Fl_Terminal_ring_rows(Fl_Terminal const *self);
468-
469-
const Fl_Terminal_Utf8Char *
470-
Fl_Terminal_u8c_cursor(Fl_Terminal const *self);
471-
472-
const Fl_Terminal_Utf8Char *
473-
Fl_Terminal_u8c_disp_row(Fl_Terminal const *self, int drow);
474-
475-
const Fl_Terminal_Utf8Char *
476-
Fl_Terminal_u8c_hist_row(Fl_Terminal const *self, int hrow);
477-
478-
const Fl_Terminal_Utf8Char *
479-
Fl_Terminal_u8c_hist_use_row(Fl_Terminal const *self, int hurow);
480-
481-
const Fl_Terminal_Utf8Char *
482-
Fl_Terminal_u8c_ring_row(Fl_Terminal const *self, int grow);
483-
484-
const unsigned Fl_Terminal_Utf8Char_size(void);
485-
486-
void Fl_free_str(const char *str);
487-
488-
// todo: Protected methods still unimplemented here:
489-
// current_style, h_to_row, selection_extend, w_to_col, walk_selection, vscroll_width
490-
491-
GROUP_DECLARE(Fl_Terminal)
492-
493170
#ifdef __cplusplus
494171
}
495172
#endif

0 commit comments

Comments
 (0)