00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef JDXBLOCKWIDGET_H
00019 #define JDXBLOCKWIDGET_H
00020
00021 #include <qgroupbox.h>
00022
00023 #include "odinqt.h"
00024
00025 #include <odinpara/jdxblock.h>
00026
00027 class JDXwidgetDialog;
00028
00030
00031 class JcampDxBlockGrid : public QWidget {
00032
00033 Q_OBJECT
00034
00035 public:
00036 JcampDxBlockGrid(JcampDxBlock& block,unsigned int columns=1,QWidget *parent=0,const char* omittext="");
00037
00038 signals:
00039
00040 void valueChanged();
00041
00042
00043 void updateSubWidget();
00044 void deleteSubDialogs();
00045
00046 public slots:
00047 void updateWidget();
00048 void deleteDialogs();
00049 void swapSliderTracking() {}
00050 void emitValueChanged() {emit valueChanged();}
00051
00052
00053 private:
00054 friend class JcampDxBlockScrollView;
00055
00056 void createDialog();
00057
00058 GuiGridLayout* grid;
00059
00060 JcampDxBlock& val;
00061 STD_list<JDXwidgetDialog*> subdialogs;
00062
00063 };
00064
00066
00067 class JcampDxBlockScrollView : public QObject {
00068 Q_OBJECT
00069
00070 public:
00071 JcampDxBlockScrollView(JcampDxBlock& block, unsigned int columns=1, QWidget *parent=0, const char* omittext="");
00072 ~JcampDxBlockScrollView();
00073
00074
00075
00076 QWidget* get_widget() {return scroll->get_widget();}
00077
00078 signals:
00079 void valueChanged();
00080
00081 public slots:
00082 void updateWidget() {jdxgrid->updateWidget();}
00083 void deleteDialogs() {jdxgrid->deleteDialogs();}
00084 void swapSliderTracking() {jdxgrid->swapSliderTracking();}
00085 void emitValueChanged() {emit valueChanged();}
00086
00087 private:
00088 friend class JcampDxBlockWidget;
00089
00090 void createDialog() {jdxgrid->createDialog();}
00091
00092 GuiScroll* scroll;
00093 JcampDxBlockGrid* jdxgrid;
00094
00095 };
00096
00098
00099 class JcampDxBlockWidget : public QGroupBox {
00100
00101 Q_OBJECT
00102
00103 public:
00104 JcampDxBlockWidget(JcampDxBlock& jdxblock,unsigned int columns=1,QWidget *parent=0,bool doneButton=false,bool is_dialog=false,const char* omittext="", bool storeLoadButtons=false, bool readonly=false);
00105 ~JcampDxBlockWidget();
00106
00107
00108
00109 signals:
00110 void valueChanged();
00111 void doneButtonPressed();
00112
00113
00114 public slots:
00115 void updateWidget() {if(jdxscroll) jdxscroll->updateWidget();}
00116 void deleteDialogs() {if(jdxscroll) jdxscroll->deleteDialogs();}
00117 void swapSliderTracking() {if(jdxscroll) jdxscroll->swapSliderTracking();}
00118 void createDialog();
00119 void emitValueChanged() {emit valueChanged();}
00120
00121 private slots:
00122 void emitDone();
00123 void storeBlock();
00124 void loadBlock();
00125
00126 private:
00127
00128 GuiGridLayout *grid;
00129 GuiButton *pb_done;
00130 GuiButton *pb_edit;
00131 GuiButton *pb_store;
00132 GuiButton *pb_load;
00133
00134 JcampDxBlock& parblock;
00135
00136 JcampDxBlockScrollView* jdxscroll;
00137
00138 GuiListView* noeditlist;
00139 STD_vector<GuiListItem*> noedititems;
00140 };
00141
00143
00144
00145
00146
00147
00148 class JDXwidgetDialog : public QObject, public GuiDialog {
00149 Q_OBJECT
00150 public:
00151 JDXwidgetDialog(JcampDxBlock& ldr,unsigned int columns=1,QWidget *parent=0, bool modal=false, bool readonly=false);
00152 ~JDXwidgetDialog();
00153
00154 public slots:
00155 void updateWidget();
00156 void emitChanged();
00157
00158 private:
00159 GuiGridLayout *grid;
00160 JcampDxBlockWidget *jdx;
00161
00162
00163 private slots:
00164 void callDone();
00165
00166 signals:
00167 void finished();
00168 void valueChanged();
00169
00170
00171 };
00172
00173
00174 #endif