File: GuiCaptureWindowImageDialog.h

package info (click to toggle)
caret 5.6.4~dfsg.1-3
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd, wheezy
  • size: 31,904 kB
  • ctags: 28,901
  • sloc: cpp: 378,050; python: 6,718; ansic: 5,507; makefile: 333; sh: 46
file content (243 lines) | stat: -rw-r--r-- 8,010 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243

#ifndef __GUI_CAPTURE_WINDOW_IMAGE_DIALOG_H__
#define __GUI_CAPTURE_WINDOW_IMAGE_DIALOG_H__

/*LICENSE_START*/
/*
 *  Copyright 1995-2002 Washington University School of Medicine
 *
 *  http://brainmap.wustl.edu
 *
 *  This file is part of CARET.
 *
 *  CARET is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  CARET is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with CARET; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 */
/*LICENSE_END*/


#include "BrainModel.h"
#include "WuQDialog.h"

class GuiImageFormatComboBox;
class QCheckBox;
class QComboBox;
class QLineEdit;
class QPushButton;
class QSpinBox;
class QTabWidget;
class WuQWidgetGroup;

/// dialog for capturing images of caret windows
class GuiCaptureWindowImageDialog : public WuQDialog {
   Q_OBJECT
   
   public:
      // constructor
      GuiCaptureWindowImageDialog(QWidget* parent);
   
      // destructor
      ~GuiCaptureWindowImageDialog();
      
      // show the dialog
      virtual void show();
      
   protected slots:
      // capture an image of the main window
      void slotCaptureImage();
   
      // image file name selection
      void slotImageFileNameDialog();
      
      // image capture type selected
      void slotWindowSelectionComboBox(int indx);
      
      // close the dialog
      void closeDialog();
      
      // called when help button pressed
      void slotHelpPushButton();
      
   protected:
      /// window to capture
      enum WINDOW {
         /// capture main window graphics area
         WINDOW_MAIN_GRAPHICS_AREA,
         /// capture part of main window graphics area using mouse
         WINDOW_MAIN_SELECT_PART_OF_GRAPHICS_AREA,
         /// capture viewing window 2 graphics area
         WINDOW_VIEWING_WINDOW_2_GRAPHICS_AREA,
         /// capture viewing window 3 graphics area
         WINDOW_VIEWING_WINDOW_3_GRAPHICS_AREA,
         /// capture viewing window 4 graphics area
         WINDOW_VIEWING_WINDOW_4_GRAPHICS_AREA,
         /// capture viewing window 5 graphics area
         WINDOW_VIEWING_WINDOW_5_GRAPHICS_AREA,
         /// capture viewing window 6 graphics area
         WINDOW_VIEWING_WINDOW_6_GRAPHICS_AREA,
         /// capture viewing window 7 graphics area
         WINDOW_VIEWING_WINDOW_7_GRAPHICS_AREA,
         /// capture viewing window 8 graphics area
         WINDOW_VIEWING_WINDOW_8_GRAPHICS_AREA,
         /// capture viewing window 9 graphics area
         WINDOW_VIEWING_WINDOW_9_GRAPHICS_AREA,
         /// capture viewing window 10 graphics area
         WINDOW_VIEWING_WINDOW_10_GRAPHICS_AREA,
         /// main window and open viewing window graphics areas
         WINDOW_MAIN_AND_OPEN_VIEWING_WINDOW_GRAPHICS,
         /// copy image from clipboard
         WINDOW_CLIPBOARD,
         /// capture image of desktop
         WINDOW_DESKTOP,
         /// capture display control dialog
         WINDOW_DISPLAY_CONTROL_DIALOG,
         /// capture draw border dialog
         WINDOW_DRAW_BORDER_DIALOG,
         /// capture identify dialog
         WINDOW_IDENTIFY_DIALOG,
         /// capture image capture dialog
         WINDOW_IMAGE_CAPTURE_DIALOG,
         /// main window including toolbar
         WINDOW_MAIN_WINDOW,
         /// main window toolbar
         WINDOW_MAIN_WINDOW_TOOLBAR,
         /// capture map stereotaxic focus dialog
         WINDOW_MAP_STEREOTAXIC_FOCUS_DIALOG,
         /// capture recording dialog
         WINDOW_RECORDING_DIALOG,
         /// capture study metadata editor dialog
         WINDOW_STUDY_METADATA_EDITOR_DIALOG,
         /// capture surface region of interest dialog
         WINDOW_SURFACE_REGION_OF_INTEREST_DIALOG,
         /// viewing window 2 including toolbar
         WINDOW_VIEWING_WINDOW_2,
         /// viewing window 2 toolbar
         WINDOW_VIEWING_WINDOW_2_TOOLBAR
      };
      
      // create capture type group
      QWidget* createCaptureGroup();
      
      // create capture options group
      QWidget* captureOptionsGroup();
      
      // create image destination group
      QWidget* createImageDestinationGroup();
      
      // create standard views group
      QWidget* createStandardViewsGroup();
      
      // capture a normal image
      void captureNormalImage();
      
      // capture images of standard view
      void captureStandardViewImages();
      
      // capture an image of a viewing window (true if image valid)
      bool captureViewingWindowGraphicsArea(const BrainModel::BRAIN_MODEL_VIEW_NUMBER windowNumber,
                                            QImage& image);
                                            
      // load window selection combo box items
      void loadWindowSelectionComboBoxItems();
      
      // capture image of a widget
      bool captureImageOfWidget(QWidget* w, 
                                QImage& image,
                                const bool captureWidgetsWindowFlag);
      
      // capture image of main and viewing window graphics
      bool captureMainAndViewingWindowGraphics(QImage& image,
                                               const bool cropImagesFlag,
                                               const int cropMargin);
      
      // crop the image
      void cropImage(QImage& image,
                     const int margin);
                     
      /// capture push button
      QPushButton* capturePushButton;
      
      /// tab for std views vs image dest
      QTabWidget* tabWidget;
      
      /// combo box for window selection
      QComboBox* windowSelectionComboBox;
      
      /// multi image wrapping spin box
      QSpinBox* multiImageWrappingSpinBox;
      
      /// widget group for multi image wrapping widgets
      WuQWidgetGroup* multiImageWrappingWidgetGroup;
      
      /// capture and image destination group widget
      QWidget* captureAndDestinationWidget;
      
      /// standard view group widget
      QWidget* standardViewGroupWidget;
      
      /// copy to clipboard check box
      QCheckBox* copyToClipBoardCheckBox;
      
      /// add to spec file check box
      QCheckBox* addToSpecFileCheckBox;
      
      /// add to loaded images check box
      QCheckBox* addToLoadedImagesCheckBox;
      
      /// print image checkb box
      QCheckBox* printImageCheckBox;
      
      /// save to file check box
      QCheckBox* saveToFileCheckBox;
      
      /// save file name line edit
      QLineEdit* saveFileNameLineEdit;
      
      /// image format combo box
      GuiImageFormatComboBox* imageFormatComboBox;
      
      /// std view image file names line edit
      QLineEdit* medialViewLineEdit;
      
      /// std view image file names line edit
      QLineEdit* lateralViewLineEdit;
      
      /// std view image file names line edit
      QLineEdit* posteriorViewLineEdit;
      
      /// std view image file names line edit
      QLineEdit* anteriorViewLineEdit;
      
      /// std view image file names line edit
      QLineEdit* ventralViewLineEdit;
      
      /// std view image file names line edit
      QLineEdit* dorsalViewLineEdit;
      
      /// adjust captured image size check box
      QCheckBox* adjustCapturedImageSizeCheckBox;
      
      /// auto crop image check box
      QCheckBox* autoCropImageCheckBox;
      
      /// auto crop image margin spin box
      QSpinBox* autoCropImageMarginSpinBox;
      
      /// widget group for auto crop options
      WuQWidgetGroup* autoCropWidgetGroup;
};

#endif // __GUI_CAPTURE_WINDOW_IMAGE_DIALOG_H__