OpendTect  6.3
uitextedit.h
Go to the documentation of this file.
1 #pragma once
2 
3 /*+
4 ________________________________________________________________________
5 
6  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
7  Author: A.H. Lammertink
8  Date: 09/02/2001
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "uibasemod.h"
14 #include "uiobj.h"
15 #include "undefval.h"
16 
17 class uiTextEditBody;
18 class uiTextBrowserBody;
19 mFDQtclass(QTextEdit)
21 namespace File { class Monitor; }
22 
24 {
25 public:
26  void readFromFile(const char*,int linecutlen=0);
27  bool saveToFile(const char*,int linelen=0,bool newlns=true);
28 
29  const char* text() const;
30  int nrLines() const;
31  bool verticalSliderIsDown() const;
33 
34  int defaultWidth() { return defaultwidth_; }
35  void setDefaultWidth( int w ) { defaultwidth_ = w; }
36 
37  int defaultHeight() { return defaultheight_; }
38  void setDefaultHeight( int h ) { defaultheight_ = h; }
39 
40  bool isModified() const;
41  void allowTextSelection(bool);
42 
43  void hideFrame();
44  void hideScrollBar(bool vertical);
45  void scrollToBottom();
46 
51 
52 protected:
53  uiTextEditBase(uiParent*,const char*,uiObjectBody&);
54 
56 
57 private:
58 
59  virtual mQtclass(QTextEdit&) qte() = 0;
60  const mQtclass(QTextEdit&) qte() const
61  { return const_cast<uiTextEditBase*>(this)->qte(); }
62 
63  virtual int maxLines() const { return -1; }
64 
67 
68  friend class i_ScrollBarMessenger;
69 };
70 
71 
72 
74 {
75 public:
76  uiTextEdit(uiParent* parnt,const char* nm="Text editor",
77  bool readonly=false);
78 
79  void setText(const char* txt) { setText( txt, false ); }
81  void setText(const OD::String& txt);
83  void setText(const uiString&);
86  void setText(const char*,bool trigger_notif);
87  void append(const char*);
88 
89 private:
90 
91  virtual mQtclass(QTextEdit&) qte();
92 
93  uiTextEditBody* body_;
94  uiTextEditBody& mkbody(uiParent*,const char*,bool);
95 };
96 
97 
98 
101 friend class i_BrowserMessenger;
102 public:
103 
104  uiTextBrowser(uiParent*,const char* nm="File browser",
105  int maxlns=mUdf(int),
106  bool forceplaintext=true,
107  bool logmode=false);
108  ~uiTextBrowser();
109 
110  void setText(const char*);
111  void setHtmlText(const char*);
112  void getHtmlText(BufferString&) const;
113  const char* source() const;
114  void setSource(const char*);
115  void setMaxLines(int);
116 
117  enum LinkBehavior { None, FollowLocal, FollowAll };
118  void setLinkBehavior( LinkBehavior );
119 
120  void backward();
121  void forward();
122  void home();
123  void reload();
124  void showToolTip(const char*);
125  void recordScrollPos();
126  void restoreScrollPos();
127 
128  bool canGoForward() { return cangoforw_; }
129  bool canGoBackward() { return cangobackw_; }
130  const char* lastLink() { return lastlink_; }
131 
136 
137 private:
138 
145 
146  virtual int maxLines() const { return maxlines_; }
147 
148  void fileChgCB(CallBacker*);
149  void sliderPressedCB(CallBacker*);
150  void sliderReleasedCB(CallBacker*);
151  void copyAvailableCB(CallBacker*);
152  void enableTailRead(bool yn);
153 
158 
159  virtual mQtclass(QTextEdit&) qte();
160 
162  uiTextBrowserBody& mkbody(uiParent*,const char*,bool);
163 };
#define mExpClass(module)
Definition: commondefs.h:157
Interface for several file and directory related services.
Definition: file.h:29
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:182
Definition: uitextedit.h:73
BufferString textsrc_
Definition: uitextedit.h:139
virtual int maxLines() const
Definition: uitextedit.h:63
Notifier< uiTextEditBase > textChanged
Definition: uitextedit.h:47
#define mQtclass(cls)
Definition: commondefs.h:232
File::Monitor * filemon_
Definition: uitextedit.h:154
void setText(const char *txt)
Does not trigger notification.
Definition: uitextedit.h:79
Notifier< uiTextEditBase > sliderReleased
Definition: uitextedit.h:49
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
#define od_int64
Definition: plftypes.h:34
Notifier< uiTextBrowser > linkHighlighted
Definition: uitextedit.h:133
The base class for most UI elements.
Definition: uiobj.h:35
bool canGoForward()
Definition: uitextedit.h:128
Definition: uistring.h:88
Definition: uiparent.h:24
int maxlines_
Definition: uitextedit.h:144
void setDefaultWidth(int w)
Definition: uitextedit.h:35
bool cangobackw_
Definition: uitextedit.h:142
friend class uiTextBrowserBody
Definition: i_qtextedit.h:101
void setDefaultHeight(int h)
Definition: uitextedit.h:38
Monitors files and directories for changes.
Definition: filemonitor.h:25
bool append(TypeSetBase< T, I > &to, const TypeSetBase< S, J > &from)
append allowing a different type to be merged into set
Definition: typeset.h:205
bool canGoBackward()
Definition: uitextedit.h:129
BufferString lastlink_
Definition: uitextedit.h:140
bool cangoforw_
Definition: uitextedit.h:141
mFDQtclass(QTextEdit) class i_ScrollBarMessenger
#define mUdf(type)
Use this macro to get the undefined for simple types.
Definition: undefval.h:270
encapsulates the read-access-only part of strings in OD.
Definition: odstring.h:29
Definition: uitextedit.h:23
bool forceplaintxt_
Definition: uitextedit.h:143
Notifier< uiTextEditBase > sliderPressed
Definition: uitextedit.h:48
Definition: uitextedit.h:117
virtual int maxLines() const
Definition: uitextedit.h:146
int defaultwidth_
Definition: uitextedit.h:65
Definition: i_qtextedit.h:60
CNotifier< uiTextEditBase, bool > copyAvailable
Definition: uitextedit.h:50
Definition: uitextedit.h:99
Notifier< uiTextBrowser > linkClicked
Definition: uitextedit.h:134
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
int defaultHeight()
Definition: uitextedit.h:37
int defaultheight_
Definition: uitextedit.h:66
bool logviewmode_
Definition: uitextedit.h:155
BufferString result_
Definition: uitextedit.h:55
Helper class for uiTextBrowser to relay Qt&#39;s messages.
Definition: i_qtextedit.h:98
int defaultWidth()
Definition: uitextedit.h:34
uiTextEditBody * body_
Definition: uitextedit.h:93
LinkBehavior
Definition: uitextedit.h:117
od_int64 lastlinestartpos_
Definition: uitextedit.h:156
const char * lastLink()
Definition: uitextedit.h:130
Notifier< uiTextBrowser > goneForwardOrBack
Definition: uitextedit.h:132
Notifier< uiTextBrowser > fileReOpened
Definition: uitextedit.h:135
BufferString lastline_
Definition: uitextedit.h:157

Generated at for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B. V. 2017