4 * $TOG: DtEditor.hh /main/9 1998/02/03 10:28:23 mgreess $
6 * RESTRICTED CONFIDENTIAL INFORMATION:
8 * The information in this document is subject to special
9 * restrictions in a confidential disclosure agreement between
10 * HP, IBM, Sun, USL, SCO and Univel. Do not distribute this
11 * document outside HP, IBM, Sun, USL, SCO, or Univel without
12 * Sun's specific written approval. This document and all copies
13 * and derivative works thereof must be returned or destroyed at
16 * Copyright 1993 Sun Microsystems, Inc. All rights reserved.
24 // Include the DtWidgetEditor .h file given by HP.
26 #include <Dt/Editor.h>
29 #include "DtMailEditor.hh"
31 class CDEM_DtWidgetEditor : public Editor
37 DtMailEditor *owner_of_editor);
38 ~CDEM_DtWidgetEditor();
40 // Pure virtual functions of class Editor
42 virtual void initialize();
44 virtual void set_contents(
46 const unsigned long len
49 virtual void set_contents(const char *path);
51 virtual char* get_contents();
53 virtual void append_to_contents(
54 const char *new_contents,
55 const unsigned long len
58 virtual void append_to_contents(const char *path);
60 virtual void append_at_cursor(const char *path);
62 virtual void append_at_cursor(
64 const unsigned long len
67 virtual void clear_contents();
68 virtual int no_text();
70 virtual Widget get_text_widget();
71 virtual Pixel get_text_foreground();
72 virtual Pixel get_text_background();
73 virtual Dimension get_text_width();
74 virtual XmFontList get_text_fontList();
75 virtual Widget get_editor();
77 virtual int get_columns();
78 virtual int get_rows();
79 virtual void set_columns(int ncolumns);
80 virtual void set_editable(Boolean value);
81 virtual void set_rows(int nrows);
83 virtual void auto_show_cursor_off();
84 virtual void auto_show_cursor_restore();
86 virtual void set_to_top();
87 virtual void set_to_bottom();
89 virtual void cut_selection();
90 virtual void copy_selection();
91 virtual void paste_from_clipboard();
92 virtual void paste_special_from_clipboard(Editor::InsertFormat);
93 virtual void clear_selection();
94 virtual void delete_selection();
95 virtual void select_all();
97 virtual void disable_redisplay();
98 virtual void enable_redisplay();
101 // End of Pure virtual functions for class Editor.
103 // Pure virtual functions of class AbstractEditorParent
104 virtual void text_selected();
105 virtual void text_unselected();
107 // Functions specific to DtEditor
108 virtual void set_word_wrap(Boolean value);
109 virtual void undo_edit();
110 virtual void find_change();
111 virtual void spell();
112 virtual void format();
114 static void MenuButtonHandler(Widget, XtPointer, XEvent *, Boolean *);
118 // modify verify callback used during Paste Special
119 static void modify_verify_callback(Widget, XtPointer, XtPointer);
121 static void text_selected_callback(Widget, void *, void *);
122 static void text_unselected_callback(Widget, void *, void *);
126 struct PSClientData {
127 CDEM_DtWidgetEditor *obj;
128 Editor::InsertFormat insert_format;
130 XmTextBlockRec *_modified_text;
131 size_t _modified_text_buflen;
132 enum PasteSpecBuf { MAXBUFSZ = 2048, BUFINC = 512};
133 void modifyData(char *, int, Editor::InsertFormat);
134 void reallocPasteBuf(size_t size_req) {
135 _modified_text->ptr =
136 (char *)realloc((void *)_modified_text->ptr, size_req);
137 _modified_text_buflen = size_req;
140 const char *indent_str;
141 const char *begin_ins_bracket;
142 const char *end_ins_bracket;
148 DtMailEditor *my_owner;
149 Boolean text_already_selected;
150 Boolean _auto_show_cursor;
153 unsigned long _buf_len;
157 #endif // DTEDITOR_HH