/usr/include/odinqt/jdxwidget.h is in libodin-dev 1.8.8-2ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 | /***************************************************************************
jdxwidget.h - description
-------------------
begin : Mon Apr 15 2002
copyright : (C) 2000-2014 by Thies H. Jochimsen
email : thies@jochimsen.de
***************************************************************************/
/***************************************************************************
* *
* This program 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. *
* *
***************************************************************************/
#ifndef JDXWIDGET_H
#define JDXWIDGET_H
#include <qwidget.h>
#include "odinqt.h"
#include <tjutils/tjarray.h>
#include <odinpara/jdxbase.h>
///////////////////////////////////////////////////////////////
#define _MAX_SLIDER_STEPS_ 100
#define _MAX_LABEL_LENGTH_ 15
#define _FLOAT_DIGITS_ 3
#define _INFOBOX_LINEWIDTH_ 50
#define _MAX_SUBWIDGETS_FOR_ALIGNCENT_ 5
///////////////////////////////////////////////////////////////
// forward declarations to decouple headers as far as possible
class JcampDxClass;
class intScientSlider;
class intLineBox;
class floatScientSlider;
class floatLineBox;
class enumBox;
class buttonBox;
class floatBox1D;
class floatBox3D;
class complexfloatBox1D;
class stringBox;
class floatLineBox3D;
class JDXwidgetDialog;
class JcampDxBlockWidget;
class JDXeditCaller;
///////////////////////////////////////////////////////////////
/**
*
* This class produces a widget according to a given JCAMP-DX parameter or a block
* of them so that the parameter(s) can be edited interactively
*/
class JDXwidget : public QWidget {
Q_OBJECT
public:
/**
*
*Constructs a widget for the parameter(s) 'ldr' with the following additional options:
* - columns: If creating a widget for a block of parameters they will be grouped in the given number of columns
* - parent: The parent widget
* - doneButton: If creating a widget for a block of parameters a 'Done' push button will be added if this option is set to 'true'
* The push button will then emit the doneButtonPressed() signal if clicked
* - omittext: Text to blind out in the label of each parameter
* - storeLoadButtons: Add buttons to store/load the parameters to/from file
*
*/
JDXwidget(JcampDxClass& ldr,unsigned int columns=1, QWidget *parent=0, bool doneButton=false, const char* omittext="", bool storeLoadButtons=false);
~JDXwidget();
// members for 2D/3D plot
void write_pixmap(const char* fname, const char* format, bool dump_all=false) const;
void write_legend(const char* fname, const char* format) const;
void write_map_legend(const char* fname, const char* format) const;
signals:
/**
* This signal will be emitted whenever one of the parameters is changed
*/
void valueChanged();
/**
* This signal will be emitted whenever the 'Done' button is clicked
*/
void doneButtonPressed();
// signals for 2D/3D plot
void clicked(int x, int y, int z);
void newProfile(const float *data, int npts, bool horizontal, int position);
void newMask(const float* data, int slice);
// private:
void updateSubWidget();
void deleteSubDialogs();
void newintval(int);
void newfloatval(float);
void newenumval(int);
void newboolval(bool);
void newfloatArr1( const float*, int, float, float);
// void newdoubleArr1( const double*, int, float, float);
void newfloatArr2( const float*, float, float);
void newfloatArrMap(const float*, float, float, float);
void newcomplexArr( const float*, const float*, int, float, float);
void newfuncval(int);
void newstringval(const char*);
void newfilenameval(const char*);
void newformulaval(const char*);
void newtripleval(float,float,float);
public slots:
/**
* Tell the widget that the parameter(s) were changed outside and that it has to update its view
*/
void updateWidget();
/**
* Delete all dialogs that may have popped up during editing the parameters
*/
void deleteDialogs();
private slots:
void emitValueChanged();
void emitDone();
void emitClicked(int x, int y, int z) {emit clicked(x,y,z);}
void emitNewProfile(const float *data, int npts, bool horizontal, int position) {emit newProfile(data, npts, horizontal, position);}
void emitNewMask(const float *data, int slice) {emit newMask(data,slice);}
void changeJDXint( int );
void changeJDXfloat( float );
void changeJDXenum( int );
void changeJDXbool ( bool );
void changeJDXaction();
void changeJDXfunction( int );
void changeJDXstring(const char*);
void changeJDXfileName(const char*);
void browseJDXfileName();
void changeJDXformula(const char*);
void changeJDXtriple(float,float,float);
void infoJDXformula();
void editJDXfunction();
void infoJDXfunction();
public:
STD_string get_label() const;
unsigned int get_rows() const {return rows;}
unsigned int get_cols() const {return cols;}
private:
void set_widget(QWidget *widget, GuiGridLayout::Alignment alignment = GuiGridLayout::Default, bool override_enabled=false);
unsigned int get_sizedfarray_size_and_factor(unsigned int& nx, unsigned int& ny, unsigned int& nz) const;
void create_or_update_floatArrwidget(const farray& arr, bool initial);
GuiGridLayout* grid;
QWidget* widget_cache;
JcampDxBlockWidget* blockwidget;
intScientSlider* intslider;
intLineBox* intedit;
floatScientSlider* floatslider;
floatLineBox* floatedit;
enumBox* enumwidget;
buttonBox* boolwidget;
buttonBox* actionwidget;
QLabel* floatArrempty;
floatBox1D* floatArrwidget1;
floatLineBox* floatArredit;
floatBox3D* floatArrwidget2;
complexfloatBox1D* complexArrwidget;
stringBox* stringwidget;
stringBox* filenamewidget;
enumBox* funcwidget;
stringBox* formulawidget;
floatLineBox3D* triplewidget;
// float 2D/3D stuff
farray sizedfarray;
farray mapfarray;
ndim oldfarraysize;
farray overlay_map;
QWidget* vport;
JcampDxClass& val;
STD_string ldrlabel;
STD_string ldrlabel_uncut;
bool label_cut;
STD_list<JDXwidgetDialog*> subdialogs;
unsigned int rows,cols;
};
#endif
|