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__
|