OpendTect  6.3
uimainwin.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: 31/05/2000
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "uibasemod.h"
14 #include "uiparent.h"
15 #include "mousecursor.h"
16 #include "uistring.h"
17 
18 mFDQtclass(QWidget)
19 class uiDockWin;
20 class uiGroup;
21 class uiMainWinBody;
22 class uiMenuBar;
23 class uiObject;
24 class uiMenu;
25 class uiStatusBar;
26 class uiToolBar;
27 class Timer;
28 class BufferStringSet;
29 
34 mExpClass(uiBase) uiMainWin : public uiParent
36 friend class uiMainWinBody;
37 public:
38  mExpClass(uiBase) Setup
39  { mODTextTranslationClass(Setup);
40  public:
41  Setup( const uiString& capt )
42  : caption_(capt)
43  , icontxt_(capt)
44  , modal_(false)
45  , withmenubar_(true)
46  , deleteonclose_(true)
47  , nrstatusflds_(1)
48  {}
49 
50  mDefSetupMemb(uiString,caption)
51  mDefSetupMemb(uiString,icontxt)
52  mDefSetupMemb(bool,modal)
53  mDefSetupMemb(bool,withmenubar)
54  mDefSetupMemb(bool,deleteonclose)
55  mDefSetupMemb(int,nrstatusflds)
56  };
57 
58  uiMainWin(uiParent*,const uiMainWin::Setup&);
59  uiMainWin(uiParent*,const uiString&
60  caption=uiString::emptyString(),
61  int nrstatusflds=1,bool withmenubar=true,
62  bool modal=false);
63  virtual ~uiMainWin();
64 
66  enum Dock
67  {
68  Top,
71  Left,
72  Minimized,
75  TornOff,
77  Unmanaged
78  };
79 
80  uiStatusBar* statusBar();
81  uiMenuBar* menuBar();
82 
83  static uiMainWin* activeWindow();
84 
85  void setCaption(const uiString&);
86  const uiString& caption(bool unique=false) const;
87  void setIcon(const uiPixmap&);
89  void setIconText(const uiString&);
90 
91  virtual void show();
92  void close();
93  void raise();
94 
95  void showMaximized();
96  void showMinimized();
97  void showNormal();
98 
99  bool isMaximized() const;
100  bool isMinimized() const;
101  bool isHidden() const;
102  bool isModal() const;
103 
104  void setSensitive(bool yn);
105 
106  void toStatusBar(const uiString&,int fldidx=0,int msecs=-1);
107 
108  virtual void reDraw(bool deep);
109  uiGroup* topGroup();
110 
111  void setShrinkAllowed(bool yn);
112  bool shrinkAllowed();
113 
115  void setExitAppOnClose(bool yn);
116  void setDeleteOnClose(bool yn);
117 
118  void removeDockWindow(uiDockWin*);
119  void addDockWindow(uiDockWin&,Dock);
120  void addToolBar(uiToolBar*);
121  uiToolBar* findToolBar(const char*);
122  uiToolBar* removeToolBar(uiToolBar*);
123  void addToolBarBreak();
124 
125  uiMenu& getToolbarsMenu() const;
126 
127  const ObjectSet<uiToolBar>& toolBars() const;
128  const ObjectSet<uiDockWin>& dockWins() const;
129 
132 
134  static uiMainWin* gtUiWinIfIsBdy(mQtclass(QWidget*) mwimpl);
135 
136  enum PopupArea { TopLeft, TopRight, BottomLeft, BottomRight,
137  Middle, Auto };
138  void setPopupArea( PopupArea pa ) { popuparea_ = pa; }
139  PopupArea getPopupArea() const { return popuparea_; }
140  void setCornerPos(int x,int y);
142  uiRect geometry(bool frame=true) const;
143 
144  bool poppedUp() const;
145  bool resetPopupTimerIfNotPoppedUp();
146  bool finalised() const;
147  virtual uiMainWin* mainwin() { return this; }
148  int getNrWidgets() const { return 1; }
149  mQtclass(QWidget*) getWidget(int);
150  uiParent* parent() { return parent_; }
151  const uiParent* parent() const { return parent_; }
152 
153  enum ActModalTyp { None=0, Main, Message, File, Colour, Font, Unknown };
154  static ActModalTyp activeModalType();
155  static uiMainWin* activeModalWindow();
156  static const char* activeModalQDlgTitle();
157  static const char* activeModalQDlgButTxt(int butnr);
158  static int activeModalQDlgRetVal(int butnr);
159  static void closeActiveModalQDlg(int retval);
160 
161  static void getModalSignatures(BufferStringSet&);
162  static void getTopLevelWindows(ObjectSet<uiMainWin>&,
163  bool visibleonly=true);
164 
165  static uiString uniqueWinTitle(const uiString&,
166  mQtclass(QWidget*) forwindow=0,
167  BufferString* addendum = 0);
168 
169  void translateText();
170 
171 
172  bool grab(const char* filenm,int zoom=1,
173  const char* format=0,int quality=-1) const;
180  static bool grabScreen(const char* filenm,const char* format=0,
181  int quality=-1,int screen=0);
182 
183  void activateInGUIThread(const CallBack&,
184  bool busywait=true);
185  void saveImage(const char* fnm,int w,int h,int res);
186  void saveAsPDF(const char* fnm,int w,int h,int res)
187  { saveAsPDF_PS( fnm, true, w, h, res ); }
188  void saveAsPS(const char* fnm,int w,int h,int res)
189  { saveAsPDF_PS( fnm, false, w, h, res ); }
193  void copyToClipBoard();
194 
196  void runScript(const char* filename);
197  const char* getScriptToRun() const;
198 
199 protected:
200 
201  virtual bool closeOK() {return true;}
202 
203  uiMainWin(uiString,uiParent*);
204  uiObject* mainobject();
205 
206  void saveSettings();
207  void readSettings();
208  void saveAsPDF_PS(const char* fnm,bool aspdf,int w,int h,
209  int res);
210 
211  void copyToClipBoardCB(CallBacker*);
212  void aftPopupCB(CallBacker*);
213  void languageChangeCB(CallBacker*);
214 
215  uiMainWinBody* body_;
216  uiParent* parent_;
218 
220 
221  void updateCaption();
225 
227 
228 public:
229  // Not for casual use
230  static void programActiveWindow(uiMainWin*);
231  static uiMainWin* programmedActiveWindow();
232 };
Definition: uigroup.h:53
Definition: uitoolbar.h:30
#define mExpClass(module)
Definition: commondefs.h:157
User interface main window.
Definition: uimainwin.h:34
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: uigeom.h:40
#define mQtclass(cls)
Definition: commondefs.h:232
Notifier< uiMainWin > runScriptRequest
Definition: uimainwin.h:195
Definition: uimainwin.h:137
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
bool isHidden(const char *)
ActModalTyp
Definition: uimainwin.h:153
void saveAsPS(const char *fnm, int w, int h, int res)
Definition: uimainwin.h:188
static const uiString & emptyString()
Definition: uistring.h:107
Timer * afterpopuptimer_
Definition: uimainwin.h:217
PopupArea
Definition: uimainwin.h:136
The base class for most UI elements.
Definition: uiobj.h:35
Definition: uistring.h:88
Definition: uiparent.h:24
Set of BufferString objects.
Definition: bufstringset.h:25
PopupArea popuparea_
Definition: uimainwin.h:219
Notifier< uiMainWin > ctrlCPressed
Definition: uimainwin.h:191
FixedString None()
Definition: keystrs.h:90
Definition: uistatusbar.h:24
Setup(const uiString &capt)
Definition: uimainwin.h:41
Definition: uimainwin.h:38
uiParent * parent_
Definition: uimainwin.h:216
int getNrWidgets() const
Definition: uimainwin.h:148
Dock
Dock Selector.
Definition: uimainwin.h:66
Definition: uimainwin.h:70
virtual uiMainWin * mainwin()
Definition: uimainwin.h:147
#define mDefSetupMemb(typ, memb)
Definition: commondefs.h:129
PopupArea getPopupArea() const
Definition: uimainwin.h:139
Definition: uimainwin.h:71
Definition: uimenu.h:64
uiString uniquecaption_
Definition: uimainwin.h:223
Off-screen pixel-based paint device.
Definition: uipixmap.h:33
void saveAsPDF(const char *fnm, int w, int h, int res)
Definition: uimainwin.h:186
Notifier< uiMainWin > afterPopup
Definition: uimainwin.h:192
Definition: uimainwin.h:68
Definition: uimainwin.h:136
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
BufferString scripttorun_
Definition: uimainwin.h:226
const uiParent * parent() const
Definition: uimainwin.h:151
uiMainWinBody * body_
Definition: uimainwin.h:215
virtual bool closeOK()
confirm window close
Definition: uimainwin.h:201
mFDQtclass(QWidget) class uiDockWin
Definition: uibody.h:16
uiParent * parent()
Definition: uimainwin.h:150
Definition: uimainwin.h:69
Notifier< uiMainWin > activatedone
Definition: uimainwin.h:190
Timer class.
Definition: timer.h:24
CallBacks object-oriented (object + method).
Definition: callback.h:62
Notifier< uiMainWin > windowClosed
triggered when window exits
Definition: uimainwin.h:130
uiString caption_
Definition: uimainwin.h:222
int languagechangecount_
Definition: uimainwin.h:224
void setPopupArea(PopupArea pa)
Definition: uimainwin.h:138

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