[med-svn] [SCM] aghermann branch, master, updated. f0d4c0fd35bf09e7dff56ddb9a2d798ae916c2ef
andrei zavada
jh at johnhommer.com
Sun Feb 3 12:52:54 UTC 2013
The following commit has been merged in the master branch:
commit 1b4e6997dec5db76d6887ccf3388fd69e10131e8
Author: andrei zavada <jh at johnhommer.com>
Date: Thu Jan 24 19:37:55 2013 +0000
splitting sf child dialogs WIP
diff --git a/configure.ac b/configure.ac
index 3074b69..17dc7bd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -206,6 +206,7 @@ AC_OUTPUT([
src/ui/sm/Makefile
src/ui/mw/Makefile
src/ui/sf/Makefile
+ src/ui/sf/dialogs/Makefile
src/ui/mf/Makefile
src/tools/Makefile
data/Makefile
diff --git a/src/ui/sf/Makefile.am b/src/ui/sf/Makefile.am
index 5591e87..ad2d6a4 100644
--- a/src/ui/sf/Makefile.am
+++ b/src/ui/sf/Makefile.am
@@ -1,3 +1,5 @@
+SUBDIRS := dialogs
+
AM_CXXFLAGS := \
-std=c++11 -fno-rtti -Wdeprecated-declarations -Wall \
$(GTK_CFLAGS) $(UNIQUE_CFLAGS) $(CAIRO_CFLAGS) $(LIBCONFIGXX_CFLAGS) \
@@ -8,28 +10,17 @@ AM_CXXFLAGS := \
noinst_LIBRARIES := liba.a
liba_a_SOURCES := \
- sf-artifacts.cc \
- sf-artifacts_cb.cc \
- sf-channel.cc \
- sf-construct.cc \
- sf-filter.cc \
- sf-filter_cb.cc \
- sf-hypnogram.cc \
- sf-hypnogram_cb.cc \
- sf-ica.cc \
- sf-ica_cb.cc \
- sf-montage.cc \
- sf-montage-overlays.cc \
- sf-montage_cb.cc \
- sf-patterns.hh \
- sf-patterns.cc \
- sf-patterns-draw.cc \
- sf-patterns-enumerate.cc \
- sf-patterns_cb.cc \
- sf-phasediff.cc \
- sf-phasediff_cb.cc \
- sf-phasic-events.cc \
- sf-widgets.hh \
+ channel.cc \
+ construct.cc \
+ hypnogram.cc \
+ hypnogram_cb.cc \
+ ica.cc \
+ ica_cb.cc \
+ montage.cc \
+ montage-overlays.cc \
+ montage_cb.cc \
+ phasic-events.cc \
+ widgets.hh \
sf.cc \
sf.hh \
sf_cb.cc \
diff --git a/src/ui/sf/sf-channel.cc b/src/ui/sf/channel.cc
similarity index 100%
rename from src/ui/sf/sf-channel.cc
rename to src/ui/sf/channel.cc
diff --git a/src/ui/sf/sf-construct.cc b/src/ui/sf/construct.cc
similarity index 76%
rename from src/ui/sf/sf-construct.cc
rename to src/ui/sf/construct.cc
index 7d6bd44..efb307f 100644
--- a/src/ui/sf/sf-construct.cc
+++ b/src/ui/sf/construct.cc
@@ -14,7 +14,7 @@
#include "ui/mw/mw.hh"
#include "ui/ui.hh"
-#include "sf-widgets.hh"
+#include "widgets.hh"
#include "sf_cb.hh"
using namespace std;
@@ -321,56 +321,6 @@ SScoringFacilityWidgets (SExpDesignUI& _p)
mSFAnnotationsAtCursor = gtk_list_store_new(1, G_TYPE_STRING);
gtk_combo_box_set_model_properly( eSFAnnotationSelectorWhich, mSFAnnotationsAtCursor);
- // artifact detection
- if ( !(AGH_GBGETOBJ (GtkDialog, wSFAD)) ||
- !(AGH_GBGETOBJ (GtkComboBox, eSFADProfiles)) ||
- !(AGH_GBGETOBJ (GtkButton, bSFADProfileSave)) ||
- !(AGH_GBGETOBJ (GtkButton, bSFADProfileDelete)) ||
- !(AGH_GBGETOBJ (GtkSpinButton, eSFADScope)) ||
- !(AGH_GBGETOBJ (GtkSpinButton, eSFADUpperThr)) ||
- !(AGH_GBGETOBJ (GtkSpinButton, eSFADLowerThr)) ||
- !(AGH_GBGETOBJ (GtkSpinButton, eSFADF0)) ||
- !(AGH_GBGETOBJ (GtkSpinButton, eSFADFc)) ||
- !(AGH_GBGETOBJ (GtkSpinButton, eSFADBandwidth)) ||
- !(AGH_GBGETOBJ (GtkSpinButton, eSFADMCGain)) ||
- !(AGH_GBGETOBJ (GtkSpinButton, eSFADBackpolate)) ||
- !(AGH_GBGETOBJ (GtkSpinButton, eSFADEValue)) ||
- !(AGH_GBGETOBJ (GtkSpinButton, eSFADHistRangeMin)) ||
- !(AGH_GBGETOBJ (GtkSpinButton, eSFADHistRangeMax)) ||
- !(AGH_GBGETOBJ (GtkSpinButton, eSFADHistBins)) ||
- !(AGH_GBGETOBJ (GtkSpinButton, eSFADSmoothSide)) ||
- !(AGH_GBGETOBJ (GtkCheckButton, eSFADSingleChannelPreview)) ||
- !(AGH_GBGETOBJ (GtkCheckButton, eSFADEstimateE)) ||
- !(AGH_GBGETOBJ (GtkRadioButton, eSFADUseThisRange)) ||
- !(AGH_GBGETOBJ (GtkRadioButton, eSFADUseComputedRange)) ||
- !(AGH_GBGETOBJ (GtkTable, cSFADWhenEstimateEOn)) ||
- !(AGH_GBGETOBJ (GtkTable, cSFADWhenEstimateEOff)) ||
- !(AGH_GBGETOBJ (GtkLabel, lSFADInfo)) ||
- !(AGH_GBGETOBJ (GtkLabel, lSFADDirtyPercent)) ||
- !(AGH_GBGETOBJ (GtkToggleButton, bSFADPreview)) ||
- !(AGH_GBGETOBJ (GtkButton, bSFADApply)) ||
- !(AGH_GBGETOBJ (GtkButton, bSFADCancel)) ||
- !(AGH_GBGETOBJ (GtkDialog, wSFADSaveProfileName)) ||
- !(AGH_GBGETOBJ (GtkEntry, eSFADSaveProfileNameName)) )
- throw runtime_error ("Failed to construct SF widgets (7)");
-
- mSFADProfiles = gtk_list_store_new( 1, G_TYPE_STRING);
- // this GtkListStore is populated from the same source, but something
- // haunting GTK+ forbids reuse of _p.mGlobalArtifactDetectionProfiles
- gtk_combo_box_set_model_properly( eSFADProfiles, mSFADProfiles);
-
- G_CONNECT_1 (wSFAD, close);
- G_CONNECT_2 (wSFAD, delete, event);
- eSFADProfiles_changed_cb_handler_id =
- G_CONNECT_1 (eSFADProfiles, changed);
- G_CONNECT_1 (bSFADProfileSave, clicked);
- G_CONNECT_1 (bSFADProfileDelete, clicked);
- G_CONNECT_1 (eSFADEstimateE, toggled);
- G_CONNECT_1 (eSFADUseThisRange, toggled);
- G_CONNECT_1 (bSFADPreview, toggled);
- G_CONNECT_1 (bSFADApply, clicked);
- G_CONNECT_1 (bSFADCancel, clicked);
-
// simple artifact detection
if ( !AGH_GBGETOBJ (GtkDialog, wSFSimpleArtifactDetectionParams) ||
!AGH_GBGETOBJ (GtkSpinButton, eSFSimpleArtifactDetectionMinFlatRegionSize) ||
@@ -379,54 +329,6 @@ SScoringFacilityWidgets (SExpDesignUI& _p)
- // aghui::SScoringFacility::SFiltersDialog::
-
- // ------- wSFFilter
- if ( !AGH_GBGETOBJ (GtkDialog, wSFFilters) ||
- !AGH_GBGETOBJ (GtkLabel, lSFFilterCaption) ||
- !AGH_GBGETOBJ (GtkSpinButton, eSFFilterLowPassCutoff) ||
- !AGH_GBGETOBJ (GtkSpinButton, eSFFilterLowPassOrder) ||
- !AGH_GBGETOBJ (GtkSpinButton, eSFFilterHighPassCutoff) ||
- !AGH_GBGETOBJ (GtkSpinButton, eSFFilterHighPassOrder) ||
- !AGH_GBGETOBJ (GtkComboBox, eSFFilterNotchFilter) ||
- !AGH_GBGETOBJ (GtkListStore, mSFFilterNotchFilter) ||
- !AGH_GBGETOBJ (GtkButton, bSFFilterOK) )
- throw runtime_error ("Failed to construct SF widgets (10)");
-
- gtk_combo_box_set_model_properly(
- eSFFilterNotchFilter, mSFFilterNotchFilter); // can't reuse _p.mNotchFilter
-
- G_CONNECT_2 (eSFFilterHighPassCutoff, value, changed);
- G_CONNECT_2 (eSFFilterLowPassCutoff, value, changed);
-
- // ------- wPhaseDiff
- if ( !(AGH_GBGETOBJ (GtkDialog, wSFPD)) ||
- !(AGH_GBGETOBJ (GtkDrawingArea, daSFPD)) ||
- !(AGH_GBGETOBJ (GtkComboBox, eSFPDChannelA)) ||
- !(AGH_GBGETOBJ (GtkComboBox, eSFPDChannelB)) ||
- !(AGH_GBGETOBJ (GtkSpinButton, eSFPDFreqFrom)) ||
- !(AGH_GBGETOBJ (GtkSpinButton, eSFPDBandwidth)) ||
- !(AGH_GBGETOBJ (GtkScaleButton, eSFPDSmooth)) )
- throw runtime_error ("Failed to construct SF widgets (11)");
-
- gtk_combo_box_set_model_properly(
- eSFPDChannelA, _p.mEEGChannels);
- eSFPDChannelA_changed_cb_handler_id =
- G_CONNECT_1 (eSFPDChannelA, changed);
-
- gtk_combo_box_set_model_properly( eSFPDChannelB, _p.mEEGChannels);
- eSFPDChannelB_changed_cb_handler_id =
- G_CONNECT_1 (eSFPDChannelB, changed);
-
- G_CONNECT_1 (daSFPD, draw);
- G_CONNECT_2 (daSFPD, scroll, event);
- G_CONNECT_1 (eSFPDChannelA, changed);
- G_CONNECT_1 (eSFPDChannelB, changed);
- G_CONNECT_2 (eSFPDFreqFrom, value, changed);
- G_CONNECT_2 (eSFPDBandwidth, value, changed);
- G_CONNECT_2 (eSFPDSmooth, value, changed);
- G_CONNECT_1 (wSFPD, show);
- G_CONNECT_1 (wSFPD, hide);
}
diff --git a/src/ui/sf/dialogs/Makefile.am b/src/ui/sf/dialogs/Makefile.am
index ed46d5d..fd01072 100644
--- a/src/ui/sf/dialogs/Makefile.am
+++ b/src/ui/sf/dialogs/Makefile.am
@@ -8,6 +8,7 @@ AM_CXXFLAGS := \
noinst_LIBRARIES := liba.a
liba_a_SOURCES := \
+ artifacts.hh \
artifacts.cc \
artifacts-construct.cc \
artifacts_cb.cc \
diff --git a/src/ui/sf/dialogs/artifacts-construct.cc b/src/ui/sf/dialogs/artifacts-construct.cc
new file mode 100644
index 0000000..e8d60e4
--- /dev/null
+++ b/src/ui/sf/dialogs/artifacts-construct.cc
@@ -0,0 +1,79 @@
+/*
+ * File name: ui/sf/dialogs/artifacts-construct.cc
+ * Project: Aghermann
+ * Author: Andrei Zavada <johnhommer at gmail.com>
+ * Initial version: 2013-10-24
+ *
+ * Purpose: scoring facility Artifacts construct
+ *
+ * License: GPL
+ */
+
+#include <stdexcept>
+
+#include "ui/ui.hh"
+#include "artifacts.hh"
+
+using namespace std;
+
+
+aghui::SScoringFacility::SArtifactsDialogWidgets::
+SArtifactsDialogWidgets (SScoringFacility& _p)
+{
+ builder = gtk_builder_new();
+ if ( !gtk_builder_add_from_resource( builder, "/org/gtk/aghermann/sf-artifacts.glade", NULL) ) {
+ g_object_unref( (GObject*)builder);
+ throw runtime_error( "Failed to load SF::artifacts glade resource");
+ }
+ gtk_builder_connect_signals( builder, NULL);
+
+ // artifact detection
+ if ( !(AGH_GBGETOBJ (GtkDialog, wSFAD)) ||
+ !(AGH_GBGETOBJ (GtkComboBox, eSFADProfiles)) ||
+ !(AGH_GBGETOBJ (GtkButton, bSFADProfileSave)) ||
+ !(AGH_GBGETOBJ (GtkButton, bSFADProfileDelete)) ||
+ !(AGH_GBGETOBJ (GtkSpinButton, eSFADScope)) ||
+ !(AGH_GBGETOBJ (GtkSpinButton, eSFADUpperThr)) ||
+ !(AGH_GBGETOBJ (GtkSpinButton, eSFADLowerThr)) ||
+ !(AGH_GBGETOBJ (GtkSpinButton, eSFADF0)) ||
+ !(AGH_GBGETOBJ (GtkSpinButton, eSFADFc)) ||
+ !(AGH_GBGETOBJ (GtkSpinButton, eSFADBandwidth)) ||
+ !(AGH_GBGETOBJ (GtkSpinButton, eSFADMCGain)) ||
+ !(AGH_GBGETOBJ (GtkSpinButton, eSFADBackpolate)) ||
+ !(AGH_GBGETOBJ (GtkSpinButton, eSFADEValue)) ||
+ !(AGH_GBGETOBJ (GtkSpinButton, eSFADHistRangeMin)) ||
+ !(AGH_GBGETOBJ (GtkSpinButton, eSFADHistRangeMax)) ||
+ !(AGH_GBGETOBJ (GtkSpinButton, eSFADHistBins)) ||
+ !(AGH_GBGETOBJ (GtkSpinButton, eSFADSmoothSide)) ||
+ !(AGH_GBGETOBJ (GtkCheckButton, eSFADSingleChannelPreview)) ||
+ !(AGH_GBGETOBJ (GtkCheckButton, eSFADEstimateE)) ||
+ !(AGH_GBGETOBJ (GtkRadioButton, eSFADUseThisRange)) ||
+ !(AGH_GBGETOBJ (GtkRadioButton, eSFADUseComputedRange)) ||
+ !(AGH_GBGETOBJ (GtkTable, cSFADWhenEstimateEOn)) ||
+ !(AGH_GBGETOBJ (GtkTable, cSFADWhenEstimateEOff)) ||
+ !(AGH_GBGETOBJ (GtkLabel, lSFADInfo)) ||
+ !(AGH_GBGETOBJ (GtkLabel, lSFADDirtyPercent)) ||
+ !(AGH_GBGETOBJ (GtkToggleButton, bSFADPreview)) ||
+ !(AGH_GBGETOBJ (GtkButton, bSFADApply)) ||
+ !(AGH_GBGETOBJ (GtkButton, bSFADCancel)) ||
+ !(AGH_GBGETOBJ (GtkDialog, wSFADSaveProfileName)) ||
+ !(AGH_GBGETOBJ (GtkEntry, eSFADSaveProfileNameName)) )
+ throw runtime_error ("Failed to construct SF widgets (7)");
+
+ mSFADProfiles = gtk_list_store_new( 1, G_TYPE_STRING);
+ // this GtkListStore is populated from the same source, but something
+ // haunting GTK+ forbids reuse of _p.mGlobalArtifactDetectionProfiles
+ gtk_combo_box_set_model_properly( eSFADProfiles, mSFADProfiles);
+
+ G_CONNECT_1 (wSFAD, close);
+ G_CONNECT_2 (wSFAD, delete, event);
+ eSFADProfiles_changed_cb_handler_id =
+ G_CONNECT_1 (eSFADProfiles, changed);
+ G_CONNECT_1 (bSFADProfileSave, clicked);
+ G_CONNECT_1 (bSFADProfileDelete, clicked);
+ G_CONNECT_1 (eSFADEstimateE, toggled);
+ G_CONNECT_1 (eSFADUseThisRange, toggled);
+ G_CONNECT_1 (bSFADPreview, toggled);
+ G_CONNECT_1 (bSFADApply, clicked);
+ G_CONNECT_1 (bSFADCancel, clicked);
+}
diff --git a/src/ui/sf/dialogs/artifacts.hh b/src/ui/sf/dialogs/artifacts.hh
new file mode 100644
index 0000000..67a4ab3
--- /dev/null
+++ b/src/ui/sf/dialogs/artifacts.hh
@@ -0,0 +1,99 @@
+/*
+ * File name: ui/sf/dialogs/artifacts.hh
+ * Project: Aghermann
+ * Author: Andrei Zavada <johnhommer at gmail.com>
+ * Initial version: 2013-01-24
+ *
+ * Purpose: scoring facility Artifacts
+ *
+ * License: GPL
+ */
+
+#ifndef _AGH_UI_SF_ARTIFACTS_H
+#define _AGH_UI_SF_ARTIFACTS_H
+
+#include <gtk/gtk.h>
+#include "patterns/patterns.hh"
+#include "ui/forward-decls.hh"
+#include "ui/sf/sf.hh"
+
+namespace aghui {
+
+struct SArtifactsDialogWidgets;
+struct SArtifactsDialog
+ : public SArtifactsDialog {
+ DELETE_DEFAULT_METHODS (SArtifactDetectionDialog);
+
+ SArtifactsDialog (SScoringFacility&);
+ ~SArtifactsDialog ();
+
+ metrics::mc::SArtifactDetectionPP
+ P;
+ sigfile::SArtifacts
+ artifacts_backup;
+ bool orig_signal_visible_backup;
+ list<pair<SChannel*, bool>>
+ channels_visible_backup;
+ bool suppress_preview_handler;
+ SUIVarCollection
+ W_V;
+
+ SScoringFacility&
+ _p;
+};
+
+struct SArtifactsDialogWidgets {
+ DELETE_DEFAULT_METHODS (SArtifactsDialogWidgets);
+
+ SArtifactsDialogWidgets (SScoringFacility&);
+ ~SArtifactsDialogWidgets ();
+
+ GtkDialog
+ *wSFAD;
+ GtkListStore
+ *mSFADProfiles;
+ GtkComboBox
+ *eSFADProfiles;
+ gulong eSFADProfiles_changed_cb_handler_id;
+ GtkButton
+ *bSFADProfileSave,
+ *bSFADProfileDelete;
+ GtkSpinButton
+ *eSFADUpperThr,
+ *eSFADLowerThr,
+ *eSFADScope,
+ *eSFADF0,
+ *eSFADFc,
+ *eSFADBandwidth,
+ *eSFADMCGain,
+ *eSFADBackpolate,
+ *eSFADEValue,
+ *eSFADHistRangeMin,
+ *eSFADHistRangeMax,
+ *eSFADHistBins,
+ *eSFADSmoothSide;
+ GtkCheckButton
+ *eSFADEstimateE,
+ *eSFADSingleChannelPreview;
+ GtkRadioButton
+ *eSFADUseThisRange,
+ *eSFADUseComputedRange;
+ GtkTable
+ *cSFADWhenEstimateEOn,
+ *cSFADWhenEstimateEOff;
+ GtkLabel
+ *lSFADInfo,
+ *lSFADDirtyPercent;
+ GtkToggleButton
+ *bSFADPreview;
+ GtkButton
+ *bSFADApply,
+ *bSFADCancel;
+ GtkDialog
+ *wSFADSaveProfileName;
+ GtkEntry
+ *eSFADSaveProfileNameName;
+};
+
+} // namespace aghui
+
diff --git a/src/ui/sf/dialogs/sf-filter.cc b/src/ui/sf/dialogs/filter.cc
similarity index 100%
rename from src/ui/sf/dialogs/sf-filter.cc
rename to src/ui/sf/dialogs/filter.cc
diff --git a/src/ui/sf/dialogs/sf-filter_cb.cc b/src/ui/sf/dialogs/filter_cb.cc
similarity index 100%
rename from src/ui/sf/dialogs/sf-filter_cb.cc
rename to src/ui/sf/dialogs/filter_cb.cc
diff --git a/src/ui/sf/dialogs/filters-construct.cc b/src/ui/sf/dialogs/filters-construct.cc
new file mode 100644
index 0000000..4549b31
--- /dev/null
+++ b/src/ui/sf/dialogs/filters-construct.cc
@@ -0,0 +1,20 @@
+ // aghui::SScoringFacility::SFiltersDialog::
+
+ // ------- wSFFilter
+ if ( !AGH_GBGETOBJ (GtkDialog, wSFFilters) ||
+ !AGH_GBGETOBJ (GtkLabel, lSFFilterCaption) ||
+ !AGH_GBGETOBJ (GtkSpinButton, eSFFilterLowPassCutoff) ||
+ !AGH_GBGETOBJ (GtkSpinButton, eSFFilterLowPassOrder) ||
+ !AGH_GBGETOBJ (GtkSpinButton, eSFFilterHighPassCutoff) ||
+ !AGH_GBGETOBJ (GtkSpinButton, eSFFilterHighPassOrder) ||
+ !AGH_GBGETOBJ (GtkComboBox, eSFFilterNotchFilter) ||
+ !AGH_GBGETOBJ (GtkListStore, mSFFilterNotchFilter) ||
+ !AGH_GBGETOBJ (GtkButton, bSFFilterOK) )
+ throw runtime_error ("Failed to construct SF widgets (10)");
+
+ gtk_combo_box_set_model_properly(
+ eSFFilterNotchFilter, mSFFilterNotchFilter); // can't reuse _p.mNotchFilter
+
+ G_CONNECT_2 (eSFFilterHighPassCutoff, value, changed);
+ G_CONNECT_2 (eSFFilterLowPassCutoff, value, changed);
+
diff --git a/src/ui/sf/dialogs/filters.hh b/src/ui/sf/dialogs/filters.hh
new file mode 100644
index 0000000..3c7bfb2
--- /dev/null
+++ b/src/ui/sf/dialogs/filters.hh
@@ -0,0 +1,32 @@
+
+ struct SFiltersDialog {
+ DELETE_DEFAULT_METHODS (SFiltersDialog);
+
+ SFiltersDialog (SScoringFacility& parent)
+ : _p (parent)
+ {}
+ ~SFiltersDialog ();
+
+ SUIVarCollection
+ W_V;
+
+ SScoringFacility&
+ _p;
+ };
+
+
+
+ // filters dialog
+ GtkDialog
+ *wSFFilters;
+ GtkLabel
+ *lSFFilterCaption;
+ GtkSpinButton
+ *eSFFilterLowPassCutoff, *eSFFilterHighPassCutoff,
+ *eSFFilterLowPassOrder, *eSFFilterHighPassOrder;
+ GtkComboBox
+ *eSFFilterNotchFilter;
+ GtkListStore
+ *mSFFilterNotchFilter;
+ GtkButton
+ *bSFFilterOK;
diff --git a/src/ui/sf/dialogs/sf-patterns-construct.cc b/src/ui/sf/dialogs/patterns-construct.cc
similarity index 100%
rename from src/ui/sf/dialogs/sf-patterns-construct.cc
rename to src/ui/sf/dialogs/patterns-construct.cc
diff --git a/src/ui/sf/dialogs/sf-patterns-draw.cc b/src/ui/sf/dialogs/patterns-draw.cc
similarity index 100%
rename from src/ui/sf/dialogs/sf-patterns-draw.cc
rename to src/ui/sf/dialogs/patterns-draw.cc
diff --git a/src/ui/sf/dialogs/sf-patterns-enumerate.cc b/src/ui/sf/dialogs/patterns-enumerate.cc
similarity index 100%
rename from src/ui/sf/dialogs/sf-patterns-enumerate.cc
rename to src/ui/sf/dialogs/patterns-enumerate.cc
diff --git a/src/ui/sf/dialogs/sf-patterns.cc b/src/ui/sf/dialogs/patterns.cc
similarity index 100%
rename from src/ui/sf/dialogs/sf-patterns.cc
rename to src/ui/sf/dialogs/patterns.cc
diff --git a/src/ui/sf/dialogs/sf-patterns.hh b/src/ui/sf/dialogs/patterns.hh
similarity index 67%
rename from src/ui/sf/dialogs/sf-patterns.hh
rename to src/ui/sf/dialogs/patterns.hh
index 2a74536..44d9b3e 100644
--- a/src/ui/sf/dialogs/sf-patterns.hh
+++ b/src/ui/sf/dialogs/patterns.hh
@@ -1,6 +1,6 @@
// ;-*-C++-*-
/*
- * File name: ui/sf/sf-patterns.hh
+ * File name: ui/sf/dialogs/patterns.hh
* Project: Aghermann
* Author: Andrei Zavada <johnhommer at gmail.com>
* Initial version: 2013-01-24
@@ -108,6 +108,54 @@ struct SScoringFacility::SFindDialog {
_p;
};
+
+
+ // find/patterns dialog
+ GtkListStore
+ *mSFFDPatterns;
+ GtkDialog
+ *wSFFD;
+ GtkComboBox
+ *eSFFDChannel,
+ *eSFFDPatternList;
+ GtkScrolledWindow
+ *swSFFDThing,
+ *swSFFDField;
+ GtkTable
+ *cSFFDParameters,
+ *cSFFDCriteria,
+ *cSFFDSearchButton,
+ *cSFFDAgainButton;
+ GtkBox *cSFFDSearching;
+ GtkDrawingArea
+ *daSFFDThing,
+ *daSFFDField;
+ GtkMenu *iiSFFDField;
+ GtkButton
+ *bSFFDSearch, *bSFFDAgain,
+ *bSFFDProfileSave, *bSFFDProfileDiscard, *bSFFDProfileRevert;
+ GtkSpinButton
+ *eSFFDEnvTightness,
+ *eSFFDBandPassFrom, *eSFFDBandPassUpto, *eSFFDBandPassOrder,
+ *eSFFDDZCDFStep, *eSFFDDZCDFSigma, *eSFFDDZCDFSmooth,
+ *eSFFDParameterA, *eSFFDParameterB,
+ *eSFFDParameterC, *eSFFDParameterD;
+ GtkHBox
+ *cSFFDLabelBox;
+ GtkLabel
+ *lSFFDParametersBrief,
+ *lSFFDFoundInfo;
+ GtkDialog
+ *wSFFDPatternSave;
+ GtkEntry
+ *eSFFDPatternSaveName;
+ GtkToggleButton
+ *eSFFDPatternSaveOriginSubject,
+ *eSFFDPatternSaveOriginExperiment,
+ *eSFFDPatternSaveOriginUser;
+ gulong eSFFDChannel_changed_cb_handler_id,
+ eSFFDPatternList_changed_cb_handler_id;
+
} // namespace aghui
// eof
diff --git a/src/ui/sf/dialogs/sf-patterns_cb.cc b/src/ui/sf/dialogs/patterns_cb.cc
similarity index 100%
rename from src/ui/sf/dialogs/sf-patterns_cb.cc
rename to src/ui/sf/dialogs/patterns_cb.cc
diff --git a/src/ui/sf/dialogs/phasediff-construct.cc b/src/ui/sf/dialogs/phasediff-construct.cc
new file mode 100644
index 0000000..8f8b3e4
--- /dev/null
+++ b/src/ui/sf/dialogs/phasediff-construct.cc
@@ -0,0 +1,28 @@
+ // ------- wPhaseDiff
+ if ( !(AGH_GBGETOBJ (GtkDialog, wSFPD)) ||
+ !(AGH_GBGETOBJ (GtkDrawingArea, daSFPD)) ||
+ !(AGH_GBGETOBJ (GtkComboBox, eSFPDChannelA)) ||
+ !(AGH_GBGETOBJ (GtkComboBox, eSFPDChannelB)) ||
+ !(AGH_GBGETOBJ (GtkSpinButton, eSFPDFreqFrom)) ||
+ !(AGH_GBGETOBJ (GtkSpinButton, eSFPDBandwidth)) ||
+ !(AGH_GBGETOBJ (GtkScaleButton, eSFPDSmooth)) )
+ throw runtime_error ("Failed to construct SF widgets (11)");
+
+ gtk_combo_box_set_model_properly(
+ eSFPDChannelA, _p.mEEGChannels);
+ eSFPDChannelA_changed_cb_handler_id =
+ G_CONNECT_1 (eSFPDChannelA, changed);
+
+ gtk_combo_box_set_model_properly( eSFPDChannelB, _p.mEEGChannels);
+ eSFPDChannelB_changed_cb_handler_id =
+ G_CONNECT_1 (eSFPDChannelB, changed);
+
+ G_CONNECT_1 (daSFPD, draw);
+ G_CONNECT_2 (daSFPD, scroll, event);
+ G_CONNECT_1 (eSFPDChannelA, changed);
+ G_CONNECT_1 (eSFPDChannelB, changed);
+ G_CONNECT_2 (eSFPDFreqFrom, value, changed);
+ G_CONNECT_2 (eSFPDBandwidth, value, changed);
+ G_CONNECT_2 (eSFPDSmooth, value, changed);
+ G_CONNECT_1 (wSFPD, show);
+ G_CONNECT_1 (wSFPD, hide);
diff --git a/src/ui/sf/dialogs/sf-phasediff.cc b/src/ui/sf/dialogs/phasediff.cc
similarity index 100%
rename from src/ui/sf/dialogs/sf-phasediff.cc
rename to src/ui/sf/dialogs/phasediff.cc
diff --git a/src/ui/sf/dialogs/phasediff.hh b/src/ui/sf/dialogs/phasediff.hh
new file mode 100644
index 0000000..8001452
--- /dev/null
+++ b/src/ui/sf/dialogs/phasediff.hh
@@ -0,0 +1,51 @@
+ struct SPhasediffDialog {
+ DELETE_DEFAULT_METHODS (SPhasediffDialog);
+
+ SPhasediffDialog (SScoringFacility&);
+ ~SPhasediffDialog ();
+
+ const SChannel
+ *channel1,
+ *channel2;
+ bool use_original_signal;
+ float from,
+ upto;
+
+ unsigned
+ bwf_order,
+ scope;
+ float display_scale;
+
+ valarray<TFloat>
+ course;
+ size_t smooth_side;
+ void update_course();
+
+ const SChannel* channel_from_cbox( GtkComboBox *cbox);
+ void preselect_channel( GtkComboBox *cbox, const char *ch);
+
+ void draw( cairo_t* cr, int wd, int ht);
+
+ bool suspend_draw;
+
+ SScoringFacility&
+ _p;
+ };
+
+
+ // phasediff dialog
+ GtkDialog
+ *wSFPD;
+ GtkComboBox
+ *eSFPDChannelA, *eSFPDChannelB;
+ GtkDrawingArea
+ *daSFPD;
+ GtkSpinButton
+ *eSFPDFreqFrom,
+ *eSFPDBandwidth;
+ GtkScaleButton
+ *eSFPDSmooth;
+ gulong
+ eSFPDChannelA_changed_cb_handler_id,
+ eSFPDChannelB_changed_cb_handler_id;
+
diff --git a/src/ui/sf/dialogs/sf-phasediff_cb.cc b/src/ui/sf/dialogs/phasediff_cb.cc
similarity index 100%
rename from src/ui/sf/dialogs/sf-phasediff_cb.cc
rename to src/ui/sf/dialogs/phasediff_cb.cc
diff --git a/src/ui/sf/dialogs/sf-phasic-events.cc b/src/ui/sf/dialogs/phasic-events.cc
similarity index 100%
rename from src/ui/sf/dialogs/sf-phasic-events.cc
rename to src/ui/sf/dialogs/phasic-events.cc
diff --git a/src/ui/sf/sf-hypnogram.cc b/src/ui/sf/hypnogram.cc
similarity index 100%
rename from src/ui/sf/sf-hypnogram.cc
rename to src/ui/sf/hypnogram.cc
diff --git a/src/ui/sf/sf-hypnogram_cb.cc b/src/ui/sf/hypnogram_cb.cc
similarity index 100%
rename from src/ui/sf/sf-hypnogram_cb.cc
rename to src/ui/sf/hypnogram_cb.cc
diff --git a/src/ui/sf/sf-ica.cc b/src/ui/sf/ica.cc
similarity index 100%
rename from src/ui/sf/sf-ica.cc
rename to src/ui/sf/ica.cc
diff --git a/src/ui/sf/sf-ica_cb.cc b/src/ui/sf/ica_cb.cc
similarity index 100%
rename from src/ui/sf/sf-ica_cb.cc
rename to src/ui/sf/ica_cb.cc
diff --git a/src/ui/sf/sf-montage-overlays.cc b/src/ui/sf/montage-overlays.cc
similarity index 100%
rename from src/ui/sf/sf-montage-overlays.cc
rename to src/ui/sf/montage-overlays.cc
diff --git a/src/ui/sf/sf-montage.cc b/src/ui/sf/montage.cc
similarity index 100%
rename from src/ui/sf/sf-montage.cc
rename to src/ui/sf/montage.cc
diff --git a/src/ui/sf/sf-montage_cb.cc b/src/ui/sf/montage_cb.cc
similarity index 100%
rename from src/ui/sf/sf-montage_cb.cc
rename to src/ui/sf/montage_cb.cc
diff --git a/src/ui/sf/sf-widgets.hh b/src/ui/sf/sf-widgets.hh
deleted file mode 100644
index 2c65922..0000000
--- a/src/ui/sf/sf-widgets.hh
+++ /dev/null
@@ -1,321 +0,0 @@
-// ;-*-C++-*-
-/*
- * File name: ui/sf/sf-widgets.hh
- * Project: Aghermann
- * Author: Andrei Zavada <johnhommer at gmail.com>
- * Initial version: 2012-10-06
- *
- * Purpose: scoring facility widgets class
- *
- * License: GPL
- */
-
-#ifndef _AGH_UI_SCORING_FACILITY_WIDGETS_H
-#define _AGH_UI_SCORING_FACILITY_WIDGETS_H
-
-#include <gtk/gtk.h>
-#include "ui/forward-decls.hh"
-
-namespace aghui {
-
-struct SScoringFacilityWidgets {
-
- // we load and construct own widget set (wSF and all its contents)
- // ourself, for every SScoringFacility instance being created, so
- // construct_widgets below takes an arg
- GtkBuilder *builder;
- SScoringFacilityWidgets (SExpDesignUI&);
- ~SScoringFacilityWidgets ();
-
- // storage
- GtkListStore
- *mSFScoringPageSize,
- *mSFAnnotationsAtCursor;
-
- // window
- GtkWindow
- *wSF;
- // control bar
- GtkLabel
- *lSFHint;
- GtkHBox
- *cSFControlBar;
- GtkComboBox
- *eSFPageSize;
- GtkSpinButton
- *eSFCurrentPage;
- GtkAdjustment
- *jSFPageNo;
- GtkLabel
- *lSFTotalPages;
- GtkBox
- *cSFScoringModeContainer,
- *cSFICAModeContainer;
- // 1. scoring mode
- GtkButton // acting label
- *eSFCurrentPos;
- GtkButton
- *bSFBack, *bSFForward,
- *bSFScoreClear, *bSFScoreNREM1, *bSFScoreNREM2, *bSFScoreNREM3, *bSFScoreNREM4,
- *bSFScoreREM, *bSFScoreWake,
- *bSFGotoPrevUnscored, *bSFGotoNextUnscored,
- *bSFGotoPrevArtifact, *bSFGotoNextArtifact;
- GtkToggleButton
- *bSFDrawCrosshair,
- *bSFShowFindDialog, *bSFShowPhaseDiffDialog;
- GtkButton
- //*bSFResetMontage,
- *bSFRunICA;
- GtkTable
- *cSFSleepStageStats;
- GtkLabel
- *lScoreStatsNREMPercent, *lScoreStatsREMPercent, *lScoreStatsWakePercent,
- *lSFPercentScored;
- GtkStatusbar
- *sbSF;
- guint sbSFContextIdGeneral;
-
- // 2. ICA mode
- GtkComboBox
- *eSFICARemixMode,
- *eSFICANonlinearity,
- *eSFICAApproach;
- GtkListStore
- *mSFICARemixMode,
- *mSFICANonlinearity,
- *mSFICAApproach;
- GtkCheckButton
- *eSFICAFineTune,
- *eSFICAStabilizationMode;
- GtkSpinButton
- *eSFICAa1,
- *eSFICAa2,
- *eSFICAmu,
- *eSFICAepsilon,
- *eSFICANofICs,
- *eSFICAEigVecFirst,
- *eSFICAEigVecLast,
- *eSFICASampleSizePercent,
- *eSFICAMaxIterations;
- GtkAdjustment
- *jSFICANofICs,
- *jSFICAEigVecFirst,
- *jSFICAEigVecLast;
- GtkButton
- *bSFICATry,
- *bSFICAApply,
- *bSFICACancel;
- GtkToggleButton
- *bSFICAPreview,
- *bSFICAShowMatrix;
- GtkTextView
- *tSFICAMatrix;
- GtkDialog
- *wSFICAMatrix;
-
- // common controls (contd)
- GtkMenuToolButton
- *bSFAccept;
- GtkMenu
- *iiSFAccept;
-
- // montage area
- GtkDrawingArea
- *daSFMontage,
- *daSFHypnogram;
- GtkExpander
- *cSFHypnogram;
- GtkLabel
- *lSFOverChannel;
- // menus
- GtkMenu
- *iiSFPage,
- *iiSFPageSelection,
- *iiSFPageAnnotation,
- *iiSFPageProfiles,
- *iiSFPagePhasicEvents,
- *iiSFPageHidden,
- *iiSFPower,
- *iiSFScore,
- *iiSFICAPage;
- GtkCheckMenuItem
- *iSFPageShowOriginal, *iSFPageShowProcessed,
- *iSFPageUseResample, *iSFPageDrawZeroline,
- *iSFPageDrawPSDProfile,
- *iSFPageDrawPSDSpectrum,
- *iSFPageDrawSWUProfile,
- *iSFPageDrawMCProfile,
- *iSFPageDrawEMGProfile,
- *iSFPowerDrawBands,
- *iSFPowerSmooth,
- *iSFPowerAutoscale,
- *iSFPageSelectionDrawCourse,
- *iSFPageSelectionDrawEnvelope,
- *iSFPageSelectionDrawDzxdf;
- GtkMenuItem
- *iSFPageFilter,
- *iSFPageSaveChannelAsSVG, *iSFPageSaveMontageAsSVG,
- *iSFPageExportSignal, *iSFPageUseThisScale,
- *iSFPageArtifactsDetect, *iSFPageArtifactsMarkFlat, *iSFPageArtifactsClear,
- *iSFPageHide,
- *iSFPageHidden, // has a submenu
- *iSFPageSpaceEvenly,
- *iSFPageLocateSelection,
- *iSFPageAnnotationSeparator,
- *iSFPageAnnotationDelete,
- *iSFPageAnnotationEdit,
- *iSFPageSelectionMarkArtifact, *iSFPageSelectionClearArtifact,
- *iSFPageSelectionFindPattern,
- *iSFPageSelectionAnnotate,
- *iSFPowerExportAll, *iSFPowerExportRange,
- *iSFPowerUseThisScale,
- *iSFScoreAssist, *iSFScoreImport, *iSFScoreExport, *iSFScoreClear,
- *iSFAcceptAndTakeNext;
- GtkSeparatorMenuItem
- *iSFPageProfilesSubmenuSeparator;
-
- // more important dialogs
- // find/patterns dialog
- GtkListStore
- *mSFFDPatterns;
- GtkDialog
- *wSFFD;
- GtkComboBox
- *eSFFDChannel,
- *eSFFDPatternList;
- GtkScrolledWindow
- *swSFFDThing,
- *swSFFDField;
- GtkTable
- *cSFFDParameters,
- *cSFFDCriteria,
- *cSFFDSearchButton,
- *cSFFDAgainButton;
- GtkBox *cSFFDSearching;
- GtkDrawingArea
- *daSFFDThing,
- *daSFFDField;
- GtkMenu *iiSFFDField;
- GtkButton
- *bSFFDSearch, *bSFFDAgain,
- *bSFFDProfileSave, *bSFFDProfileDiscard, *bSFFDProfileRevert;
- GtkSpinButton
- *eSFFDEnvTightness,
- *eSFFDBandPassFrom, *eSFFDBandPassUpto, *eSFFDBandPassOrder,
- *eSFFDDZCDFStep, *eSFFDDZCDFSigma, *eSFFDDZCDFSmooth,
- *eSFFDParameterA, *eSFFDParameterB,
- *eSFFDParameterC, *eSFFDParameterD;
- GtkHBox
- *cSFFDLabelBox;
- GtkLabel
- *lSFFDParametersBrief,
- *lSFFDFoundInfo;
- GtkDialog
- *wSFFDPatternSave;
- GtkEntry
- *eSFFDPatternSaveName;
- GtkToggleButton
- *eSFFDPatternSaveOriginSubject,
- *eSFFDPatternSaveOriginExperiment,
- *eSFFDPatternSaveOriginUser;
- gulong eSFFDChannel_changed_cb_handler_id,
- eSFFDPatternList_changed_cb_handler_id;
-
- // filters dialog
- GtkDialog
- *wSFFilters;
- GtkLabel
- *lSFFilterCaption;
- GtkSpinButton
- *eSFFilterLowPassCutoff, *eSFFilterHighPassCutoff,
- *eSFFilterLowPassOrder, *eSFFilterHighPassOrder;
- GtkComboBox
- *eSFFilterNotchFilter;
- GtkListStore
- *mSFFilterNotchFilter;
- GtkButton
- *bSFFilterOK;
-
- // phasediff dialog
- GtkDialog
- *wSFPD;
- GtkComboBox
- *eSFPDChannelA, *eSFPDChannelB;
- GtkDrawingArea
- *daSFPD;
- GtkSpinButton
- *eSFPDFreqFrom,
- *eSFPDBandwidth;
- GtkScaleButton
- *eSFPDSmooth;
- gulong
- eSFPDChannelA_changed_cb_handler_id,
- eSFPDChannelB_changed_cb_handler_id;
-
- // artifact detection dialog
- GtkDialog
- *wSFAD;
- GtkListStore
- *mSFADProfiles;
- GtkComboBox
- *eSFADProfiles;
- gulong eSFADProfiles_changed_cb_handler_id;
- GtkButton
- *bSFADProfileSave,
- *bSFADProfileDelete;
- GtkSpinButton
- *eSFADUpperThr,
- *eSFADLowerThr,
- *eSFADScope,
- *eSFADF0,
- *eSFADFc,
- *eSFADBandwidth,
- *eSFADMCGain,
- *eSFADBackpolate,
- *eSFADEValue,
- *eSFADHistRangeMin,
- *eSFADHistRangeMax,
- *eSFADHistBins,
- *eSFADSmoothSide;
- GtkCheckButton
- *eSFADEstimateE,
- *eSFADSingleChannelPreview;
- GtkRadioButton
- *eSFADUseThisRange,
- *eSFADUseComputedRange;
- GtkTable
- *cSFADWhenEstimateEOn,
- *cSFADWhenEstimateEOff;
- GtkLabel
- *lSFADInfo,
- *lSFADDirtyPercent;
- GtkToggleButton
- *bSFADPreview;
- GtkButton
- *bSFADApply,
- *bSFADCancel;
- GtkDialog
- *wSFADSaveProfileName;
- GtkEntry
- *eSFADSaveProfileNameName;
-
- // less important dialogs
- GtkDialog
- *wSFAnnotationLabel,
- *wSFAnnotationSelector,
- *wSFSimpleArtifactDetectionParams;
- GtkEntry
- *eSFAnnotationLabel;
- GtkComboBox
- *eSFAnnotationSelectorWhich;
- GtkSpinButton
- *eSFSimpleArtifactDetectionMinFlatRegionSize,
- *eSFSimpleArtifactDetectionPad;
-
-};
-
-} // namespace aghui
-
-#endif
-
-// eof
diff --git a/src/ui/sf/sf.cc b/src/ui/sf/sf.cc
index 3e56b97..00ace08 100644
--- a/src/ui/sf/sf.cc
+++ b/src/ui/sf/sf.cc
@@ -80,10 +80,10 @@ SScoringFacility (agh::CSubject& J,
confval::SValidator<float>("montage.interchannel_gap", &interchannel_gap, confval::SValidator<float>::SVFRangeIn (0., 400.)),
confval::SValidator<float>("montage.height", &da_ht, confval::SValidator<float>::SVFRangeIn (10., 4000.)),
}),
- find_dialog (nullptr),
- filters_dialog (*this),
- phasediff_dialog (*this),
- artifact_detection_dialog (*this),
+ patterns_dialog (nullptr),
+ filters_dialog (nullptr),
+ phasediff_dialog (nullptr),
+ artifact_dialog (nullptr),
using_channel (nullptr),
da_ht (NAN) // bad value, to be estimated unless previously saved
{
@@ -265,8 +265,14 @@ aghui::SScoringFacility::
if ( ica )
delete ica;
- if ( find_dialog )
- delete find_dialog;
+ if ( artifacts_dialog )
+ delete artifacts_dialog;
+ if ( patterns_dialog )
+ delete patterns_dialog;
+ if ( phasediff_dialog )
+ delete phasediff_dialog;
+ if ( filters_dialog )
+ delete filters_dialog;
// put scores
put_hypnogram();
diff --git a/src/ui/sf/sf.hh b/src/ui/sf/sf.hh
index 47c735e..2762bcb 100644
--- a/src/ui/sf/sf.hh
+++ b/src/ui/sf/sf.hh
@@ -495,86 +495,21 @@ class SScoringFacility
void set_tooltip( TTipIdx i) const;
// child dialogs:
- struct SFindDialog;
- SFindDialog
- *find_dialog;
+ struct SPatternsDialog;
+ SPatternsDialog
+ *patterns_dialog;
- struct SFiltersDialog {
- DELETE_DEFAULT_METHODS (SFiltersDialog);
-
- SFiltersDialog (SScoringFacility& parent)
- : _p (parent)
- {}
- ~SFiltersDialog ();
-
- SUIVarCollection
- W_V;
-
- SScoringFacility&
- _p;
- };
+ struct SFiltersDialog;
SFiltersDialog
- filters_dialog;
-
- struct SPhasediffDialog {
- DELETE_DEFAULT_METHODS (SPhasediffDialog);
-
- SPhasediffDialog (SScoringFacility&);
- ~SPhasediffDialog ();
-
- const SChannel
- *channel1,
- *channel2;
- bool use_original_signal;
- float from,
- upto;
-
- unsigned
- bwf_order,
- scope;
- float display_scale;
+ *filters_dialog;
- valarray<TFloat>
- course;
- size_t smooth_side;
- void update_course();
-
- const SChannel* channel_from_cbox( GtkComboBox *cbox);
- void preselect_channel( GtkComboBox *cbox, const char *ch);
-
- void draw( cairo_t* cr, int wd, int ht);
-
- bool suspend_draw;
-
- SScoringFacility&
- _p;
- };
+ struct SPhasediffDialog;
SPhasediffDialog
- phasediff_dialog;
-
- // artifacts
- struct SArtifactDetectionDialog {
- DELETE_DEFAULT_METHODS (SArtifactDetectionDialog);
-
- SArtifactDetectionDialog (SScoringFacility&);
- ~SArtifactDetectionDialog ();
-
- metrics::mc::SArtifactDetectionPP
- P;
- sigfile::SArtifacts
- artifacts_backup;
- bool orig_signal_visible_backup;
- list<pair<SChannel*, bool>>
- channels_visible_backup;
- bool suppress_preview_handler;
- SUIVarCollection
- W_V;
+ *phasediff_dialog;
- SScoringFacility&
- _p;
- };
+ struct SArtifactDetectionDialog;
SArtifactDetectionDialog
- artifact_detection_dialog;
+ *artifact_dialog;
void populate_mSFADProfiles();
// menu support
diff --git a/src/ui/sf/sf_cb.cc b/src/ui/sf/sf_cb.cc
index 31b60e9..95dc487 100644
--- a/src/ui/sf/sf_cb.cc
+++ b/src/ui/sf/sf_cb.cc
@@ -197,9 +197,9 @@ bSFShowFindDialog_toggled_cb( GtkToggleButton *togglebutton, gpointer userdata)
SF.find_dialog =
new aghui::SScoringFacility::SFindDialog (SF);
SF.find_dialog->setup_controls_for_find();
- gtk_widget_show( (GtkWidget*)SF.wSFFD);
+ gtk_widget_show( (GtkWidget*)SF.find_dialog->wSFFD);
} else
- gtk_widget_hide( (GtkWidget*)SF.wSFFD);
+ gtk_widget_hide( (GtkWidget*)SF.find_dialog->wSFFD);
}
@@ -209,9 +209,13 @@ bSFShowPhaseDiffDialog_toggled_cb( GtkToggleButton *togglebutton, gpointer userd
{
auto& SF = *(SScoringFacility*)userdata;
if ( gtk_toggle_button_get_active( togglebutton) ) {
- gtk_widget_show( (GtkWidget*)SF.wSFPD);
+ if ( not SF.phasediff_dialog )
+ SF.phasediff_dialog =
+ new aghui::SScoringFacility::SPhasediffDialog (SF);
+ SF.phasediff_dialog->setup_controls_for_find();
+ gtk_widget_show( (GtkWidget*)SF.phasediff_dialog->wSFPD);
} else
- gtk_widget_hide( (GtkWidget*)SF.wSFPD);
+ gtk_widget_hide( (GtkWidget*)SF.phasediff_dialog->wSFPD);
}
diff --git a/src/ui/sf/widgets.hh b/src/ui/sf/widgets.hh
new file mode 100644
index 0000000..1163859
--- /dev/null
+++ b/src/ui/sf/widgets.hh
@@ -0,0 +1,198 @@
+// ;-*-C++-*-
+/*
+ * File name: ui/sf/sf-widgets.hh
+ * Project: Aghermann
+ * Author: Andrei Zavada <johnhommer at gmail.com>
+ * Initial version: 2012-10-06
+ *
+ * Purpose: scoring facility widgets class
+ *
+ * License: GPL
+ */
+
+#ifndef _AGH_UI_SCORING_FACILITY_WIDGETS_H
+#define _AGH_UI_SCORING_FACILITY_WIDGETS_H
+
+#include <gtk/gtk.h>
+#include "ui/forward-decls.hh"
+
+namespace aghui {
+
+struct SScoringFacilityWidgets {
+
+ // we load and construct own widget set (wSF and all its contents)
+ // ourself, for every SScoringFacility instance being created, so
+ // construct_widgets below takes an arg
+ GtkBuilder *builder;
+ SScoringFacilityWidgets (SExpDesignUI&);
+ ~SScoringFacilityWidgets ();
+
+ // storage
+ GtkListStore
+ *mSFScoringPageSize,
+ *mSFAnnotationsAtCursor;
+
+ // window
+ GtkWindow
+ *wSF;
+ // control bar
+ GtkLabel
+ *lSFHint;
+ GtkHBox
+ *cSFControlBar;
+ GtkComboBox
+ *eSFPageSize;
+ GtkSpinButton
+ *eSFCurrentPage;
+ GtkAdjustment
+ *jSFPageNo;
+ GtkLabel
+ *lSFTotalPages;
+ GtkBox
+ *cSFScoringModeContainer,
+ *cSFICAModeContainer;
+ // 1. scoring mode
+ GtkButton // acting label
+ *eSFCurrentPos;
+ GtkButton
+ *bSFBack, *bSFForward,
+ *bSFScoreClear, *bSFScoreNREM1, *bSFScoreNREM2, *bSFScoreNREM3, *bSFScoreNREM4,
+ *bSFScoreREM, *bSFScoreWake,
+ *bSFGotoPrevUnscored, *bSFGotoNextUnscored,
+ *bSFGotoPrevArtifact, *bSFGotoNextArtifact;
+ GtkToggleButton
+ *bSFDrawCrosshair,
+ *bSFShowFindDialog, *bSFShowPhaseDiffDialog;
+ GtkButton
+ //*bSFResetMontage,
+ *bSFRunICA;
+ GtkTable
+ *cSFSleepStageStats;
+ GtkLabel
+ *lScoreStatsNREMPercent, *lScoreStatsREMPercent, *lScoreStatsWakePercent,
+ *lSFPercentScored;
+ GtkStatusbar
+ *sbSF;
+ guint sbSFContextIdGeneral;
+
+ // 2. ICA mode
+ GtkComboBox
+ *eSFICARemixMode,
+ *eSFICANonlinearity,
+ *eSFICAApproach;
+ GtkListStore
+ *mSFICARemixMode,
+ *mSFICANonlinearity,
+ *mSFICAApproach;
+ GtkCheckButton
+ *eSFICAFineTune,
+ *eSFICAStabilizationMode;
+ GtkSpinButton
+ *eSFICAa1,
+ *eSFICAa2,
+ *eSFICAmu,
+ *eSFICAepsilon,
+ *eSFICANofICs,
+ *eSFICAEigVecFirst,
+ *eSFICAEigVecLast,
+ *eSFICASampleSizePercent,
+ *eSFICAMaxIterations;
+ GtkAdjustment
+ *jSFICANofICs,
+ *jSFICAEigVecFirst,
+ *jSFICAEigVecLast;
+ GtkButton
+ *bSFICATry,
+ *bSFICAApply,
+ *bSFICACancel;
+ GtkToggleButton
+ *bSFICAPreview,
+ *bSFICAShowMatrix;
+ GtkTextView
+ *tSFICAMatrix;
+ GtkDialog
+ *wSFICAMatrix;
+
+ // common controls (contd)
+ GtkMenuToolButton
+ *bSFAccept;
+ GtkMenu
+ *iiSFAccept;
+
+ // montage area
+ GtkDrawingArea
+ *daSFMontage,
+ *daSFHypnogram;
+ GtkExpander
+ *cSFHypnogram;
+ GtkLabel
+ *lSFOverChannel;
+ // menus
+ GtkMenu
+ *iiSFPage,
+ *iiSFPageSelection,
+ *iiSFPageAnnotation,
+ *iiSFPageProfiles,
+ *iiSFPagePhasicEvents,
+ *iiSFPageHidden,
+ *iiSFPower,
+ *iiSFScore,
+ *iiSFICAPage;
+ GtkCheckMenuItem
+ *iSFPageShowOriginal, *iSFPageShowProcessed,
+ *iSFPageUseResample, *iSFPageDrawZeroline,
+ *iSFPageDrawPSDProfile,
+ *iSFPageDrawPSDSpectrum,
+ *iSFPageDrawSWUProfile,
+ *iSFPageDrawMCProfile,
+ *iSFPageDrawEMGProfile,
+ *iSFPowerDrawBands,
+ *iSFPowerSmooth,
+ *iSFPowerAutoscale,
+ *iSFPageSelectionDrawCourse,
+ *iSFPageSelectionDrawEnvelope,
+ *iSFPageSelectionDrawDzxdf;
+ GtkMenuItem
+ *iSFPageFilter,
+ *iSFPageSaveChannelAsSVG, *iSFPageSaveMontageAsSVG,
+ *iSFPageExportSignal, *iSFPageUseThisScale,
+ *iSFPageArtifactsDetect, *iSFPageArtifactsMarkFlat, *iSFPageArtifactsClear,
+ *iSFPageHide,
+ *iSFPageHidden, // has a submenu
+ *iSFPageSpaceEvenly,
+ *iSFPageLocateSelection,
+ *iSFPageAnnotationSeparator,
+ *iSFPageAnnotationDelete,
+ *iSFPageAnnotationEdit,
+ *iSFPageSelectionMarkArtifact, *iSFPageSelectionClearArtifact,
+ *iSFPageSelectionFindPattern,
+ *iSFPageSelectionAnnotate,
+ *iSFPowerExportAll, *iSFPowerExportRange,
+ *iSFPowerUseThisScale,
+ *iSFScoreAssist, *iSFScoreImport, *iSFScoreExport, *iSFScoreClear,
+ *iSFAcceptAndTakeNext;
+ GtkSeparatorMenuItem
+ *iSFPageProfilesSubmenuSeparator;
+
+ // more important dialogs
+
+ // less important dialogs
+ GtkDialog
+ *wSFAnnotationLabel,
+ *wSFAnnotationSelector,
+ *wSFSimpleArtifactDetectionParams;
+ GtkEntry
+ *eSFAnnotationLabel;
+ GtkComboBox
+ *eSFAnnotationSelectorWhich;
+ GtkSpinButton
+ *eSFSimpleArtifactDetectionMinFlatRegionSize,
+ *eSFSimpleArtifactDetectionPad;
+
+};
+
+} // namespace aghui
+
+#endif
+
+// eof
--
Sleep experiment manager
More information about the debian-med-commit
mailing list