[med-svn] [SCM] aghermann branch, master, updated. f0d4c0fd35bf09e7dff56ddb9a2d798ae916c2ef
Andrei Zavada
johnhommer at gmail.com
Sun Feb 3 12:52:55 UTC 2013
The following commit has been merged in the master branch:
commit 39002cbc24011368a4ff53f8062f2aed28bf0bf6
Author: Andrei Zavada <johnhommer at gmail.com>
Date: Fri Jan 25 19:45:36 2013 +0200
WIP
diff --git a/src/Makefile.am b/src/Makefile.am
index 1e2726f..3136dde 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -22,6 +22,7 @@ aghermann_LDADD := \
ui/sm/liba.a \
ui/mw/liba.a \
ui/sf/liba.a \
+ ui/sf/d/liba.a \
ui/mf/liba.a \
ui/liba.a \
model/liba.a \
diff --git a/src/ui/sf/Makefile.am b/src/ui/sf/Makefile.am
index 40b8a7b..c241642 100644
--- a/src/ui/sf/Makefile.am
+++ b/src/ui/sf/Makefile.am
@@ -24,14 +24,12 @@ liba_a_SOURCES := \
widgets.hh \
sf.cc \
sf.hh \
- sf_cb.cc \
- sf_cb.hh
+ sf_cb.cc
if DO_PCH
BUILT_SOURCES = \
sf.hh.gch \
- widgets.hh.gch \
- sf_cb.hh.gch
+ widgets.hh.gch
%.hh.gch: %.hh
$(CXXCOMPILE) -c $<
CLEANFILES := \
diff --git a/src/ui/sf/channel.cc b/src/ui/sf/channel.cc
index 2316a4f..e47c8c6 100644
--- a/src/ui/sf/channel.cc
+++ b/src/ui/sf/channel.cc
@@ -18,6 +18,8 @@
#include "sigproc/exstrom.hh"
#include "ui/globals.hh"
#include "sf.hh"
+#include "d/artifacts.hh"
+#include "d/patterns.hh"
using namespace std;
@@ -463,11 +465,8 @@ void
aghui::SScoringFacility::SChannel::
mark_region_as_pattern()
{
- if ( not _p.find_dialog )
- _p.find_dialog =
- new aghui::SScoringFacility::SFindDialog (_p);
- _p.find_dialog.import_from_selection( *this);
- gtk_widget_show( (GtkWidget*)_p.wSFFD);
+ _p.patterns_d().import_from_selection( *this);
+ gtk_widget_show( (GtkWidget*)_p.patterns_d().wSFFD);
}
@@ -574,8 +573,8 @@ aghui::SScoringFacility::SChannel::
_put_selection()
{
if ( selection_end_time - selection_start_time > 1. ) {
- _p.artifact_detection_dialog.W_V.down();
- auto& P = _p.artifact_detection_dialog.P;
+ _p.artifacts_d().W_V.down();
+ auto& P = _p.artifacts_d().P;
auto sssu =
metrics::mc::do_sssu_reduction(
valarray<TFloat> {signal_filtered[ slice (selection_start, (selection_end - selection_start), 1) ]},
diff --git a/src/ui/sf/construct.cc b/src/ui/sf/construct.cc
index 3dc2fc8..8d3a124 100644
--- a/src/ui/sf/construct.cc
+++ b/src/ui/sf/construct.cc
@@ -14,14 +14,13 @@
#include "ui/mw/mw.hh"
#include "ui/ui.hh"
-#include "widgets.hh"
-#include "sf_cb.hh"
+#include "sf.hh"
using namespace std;
aghui::SScoringFacilityWidgets::
-SScoringFacilityWidgets (SExpDesignUI& _p)
+SScoringFacilityWidgets ()
{
builder = gtk_builder_new();
if ( !gtk_builder_add_from_resource( builder, "/org/gtk/aghermann/sf.glade", NULL) )
diff --git a/src/ui/sf/d/Makefile.am b/src/ui/sf/d/Makefile.am
index 628b1bf..027a390 100644
--- a/src/ui/sf/d/Makefile.am
+++ b/src/ui/sf/d/Makefile.am
@@ -1,6 +1,6 @@
AM_CXXFLAGS := \
-std=c++11 -fno-rtti -Wdeprecated-declarations -Wall \
- $(GTK_CFLAGS) $(CAIRO_CFLAGS) \
+ $(GTK_CFLAGS) $(UNIQUE_CFLAGS) $(CAIRO_CFLAGS) \
-DPACKAGE_DATADIR=\"$(datadir)\" \
$(OPENMP_CXXFLAGS) \
-I$(top_srcdir)/src
diff --git a/src/ui/sf/d/artifacts-construct.cc b/src/ui/sf/d/artifacts-construct.cc
index 2170f25..6537180 100644
--- a/src/ui/sf/d/artifacts-construct.cc
+++ b/src/ui/sf/d/artifacts-construct.cc
@@ -17,8 +17,8 @@
using namespace std;
-aghui::SScoringFacility::SArtifactsDialogWidgets::
-SArtifactsDialogWidgets (SScoringFacility& _p)
+aghui::SArtifactsDialogWidgets::
+SArtifactsDialogWidgets ()
{
builder = gtk_builder_new();
if ( !gtk_builder_add_from_resource( builder, "/org/gtk/aghermann/sf-artifacts.glade", NULL) )
@@ -76,6 +76,15 @@ SArtifactsDialogWidgets (SScoringFacility& _p)
G_CONNECT_1 (bSFADCancel, clicked);
}
+
+aghui::SArtifactsDialogWidgets::
+~SArtifactsDialogWidgets ()
+{
+ gtk_widget_destroy( (GtkWidget*)wSFAD);
+ g_object_unref( (GObject*)builder);
+}
+
+
// Local Variables:
// indent-tabs-mode: 8
// End:
diff --git a/src/ui/sf/d/artifacts.cc b/src/ui/sf/d/artifacts.cc
index 71de3a4..70cbf3e 100644
--- a/src/ui/sf/d/artifacts.cc
+++ b/src/ui/sf/d/artifacts.cc
@@ -42,25 +42,21 @@ SArtifactsDialog (aghui::SScoringFacility& p_)
W_V.reg( eSFADHistBins, (int*)&P.sssu_hist_size);
W_V.reg( eSFADSmoothSide, (int*)&P.smooth_side);
W_V.reg( eSFADUseThisRange, &P.use_range);
+
+ populate_mSFADProfiles();
}
-aghui::SScoringFacility::SArtifactDetectionDialog::
-~SArtifactDetectionDialog ()
-{
- gtk_widget_destroy( (GtkWidget*)_p.wSFAD);
- g_object_unref( (GObject*)builder);
-}
// maybe it's not needed in GTK+ 3?
void
-aghui::SScoringFacility::
+aghui::SScoringFacility::SArtifactsDialog::
populate_mSFADProfiles()
{
g_signal_handler_block( eSFADProfiles, eSFADProfiles_changed_cb_handler_id);
gtk_list_store_clear( mSFADProfiles);
- for ( auto &P : _p.global_artifact_detection_profiles ) {
+ for ( auto &P : _p._p.global_artifact_detection_profiles ) {
GtkTreeIter iter;
gtk_list_store_append( mSFADProfiles, &iter);
gtk_list_store_set( mSFADProfiles, &iter,
diff --git a/src/ui/sf/d/artifacts.hh b/src/ui/sf/d/artifacts.hh
index 3a695c6..ae54428 100644
--- a/src/ui/sf/d/artifacts.hh
+++ b/src/ui/sf/d/artifacts.hh
@@ -29,31 +29,6 @@ using namespace std;
namespace aghui {
-struct SArtifactsDialogWidgets;
-
-struct SScoringFacility::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<SScoringFacility::SChannel*, bool>>
- channels_visible_backup;
- bool suppress_preview_handler;
- SUIVarCollection
- W_V;
-
- SScoringFacility&
- _p;
-};
-
struct SArtifactsDialogWidgets {
SArtifactsDialogWidgets ();
@@ -108,6 +83,32 @@ struct SArtifactsDialogWidgets {
*eSFADSaveProfileNameName;
};
+struct SScoringFacility::SArtifactsDialog
+ : public SArtifactsDialogWidgets {
+
+ DELETE_DEFAULT_METHODS (SArtifactsDialog);
+
+ SArtifactsDialog (SScoringFacility&);
+ ~SArtifactsDialog ();
+
+ metrics::mc::SArtifactDetectionPP
+ P;
+ sigfile::SArtifacts
+ artifacts_backup;
+ bool orig_signal_visible_backup;
+ list<pair<SScoringFacility::SChannel*, bool>>
+ channels_visible_backup;
+ bool suppress_preview_handler;
+ SUIVarCollection
+ W_V;
+
+ SScoringFacility&
+ _p;
+
+ void populate_mSFADProfiles();
+};
+
+
} // namespace aghui
@@ -125,6 +126,8 @@ void bSFADApply_clicked_cb( GtkButton*, gpointer);
void bSFADCancel_clicked_cb( GtkButton*, gpointer);
}
+#endif // _AGH_UI_SF_ARTIFACTS_H
+
// Local Variables:
// indent-tabs-mode: 8
// End:
diff --git a/src/ui/sf/d/artifacts_cb.cc b/src/ui/sf/d/artifacts_cb.cc
index 4229cc9..a4d98f6 100644
--- a/src/ui/sf/d/artifacts_cb.cc
+++ b/src/ui/sf/d/artifacts_cb.cc
@@ -10,8 +10,7 @@
*/
#include "ui/misc.hh"
-#include "sf.hh"
-#include "sf_cb.hh"
+#include "artifacts.hh"
using namespace std;
using namespace aghui;
@@ -21,10 +20,11 @@ using namespace aghui;
void
eSFADProfiles_changed_cb( GtkComboBox* w, gpointer userdata)
{
- auto& SD = *(SScoringFacility::SArtifactsDialog*)userdata;
+ auto& AD = *(SScoringFacility::SArtifactsDialog*)userdata;
+ auto& SF = AD._p;
if ( gtk_combo_box_get_active( w) != -1 ) {
- AD.P = AD._p._p.global_artifact_detection_profiles[
+ AD.P = SF._p.global_artifact_detection_profiles[
gtk_combo_box_get_active_id(w)];
AD.W_V.up();
gtk_widget_set_sensitive( (GtkWidget*)AD.bSFADProfileDelete, TRUE);
@@ -36,19 +36,20 @@ void
bSFADProfileSave_clicked_cb( GtkButton*, gpointer userdata)
{
auto& AD = *(SScoringFacility::SArtifactsDialog*)userdata;
+ auto& SF = AD._p;
if ( GTK_RESPONSE_OK ==
gtk_dialog_run( AD.wSFADSaveProfileName) ) {
AD.W_V.down();
- AD._p._p.global_artifact_detection_profiles[
- gtk_entry_get_text( SF.eSFADSaveProfileNameName)] = AD.P;
+ SF._p.global_artifact_detection_profiles[
+ gtk_entry_get_text( AD.eSFADSaveProfileNameName)] = AD.P;
- AD._p._p.populate_mGlobalADProfiles();
+ SF._p.populate_mGlobalADProfiles();
AD.populate_mSFADProfiles(); // stupid
- int now_active = AD._p._p.global_artifact_detection_profiles.size()-1;
+ int now_active = SF._p.global_artifact_detection_profiles.size()-1;
gtk_combo_box_set_active( AD.eSFADProfiles, now_active);
- gtk_combo_box_set_active( AD._p._p.eGlobalADProfiles, now_active);
+ gtk_combo_box_set_active( SF._p.eGlobalADProfiles, now_active);
}
}
@@ -56,16 +57,17 @@ void
bSFADProfileDelete_clicked_cb( GtkButton*, gpointer userdata)
{
auto& AD = *(SScoringFacility::SArtifactsDialog*)userdata;
+ auto& SF = AD._p;
const gchar *deleting_id = gtk_combo_box_get_active_id( AD.eSFADProfiles);
int deleting = gtk_combo_box_get_active( AD.eSFADProfiles);
- AD._p._p.global_artifact_detection_profiles.erase( deleting_id);
+ SF._p.global_artifact_detection_profiles.erase( deleting_id);
- AD._p._p.populate_mGlobalADProfiles();
- AD._p.populate_mSFADProfiles(); // stupid
+ SF._p.populate_mGlobalADProfiles();
+ AD.populate_mSFADProfiles(); // stupid
- if ( AD._p._p.global_artifact_detection_profiles.size() > 0 &&
- deleting > (int)AD._p._p.global_artifact_detection_profiles.size()-1 )
+ if ( SF._p.global_artifact_detection_profiles.size() > 0 &&
+ deleting > (int)SF._p.global_artifact_detection_profiles.size()-1 )
gtk_combo_box_set_active( AD.eSFADProfiles, deleting-1);
g_signal_emit_by_name( AD.eSFADProfiles, "changed");
@@ -76,6 +78,7 @@ void
eSFADEstimateE_toggled_cb( GtkToggleButton *b, gpointer userdata)
{
auto& AD = *(SScoringFacility::SArtifactsDialog*)userdata;
+
auto state = gtk_toggle_button_get_active( b);
gtk_widget_set_visible(
(GtkWidget*)AD.cSFADWhenEstimateEOn,
@@ -89,6 +92,7 @@ void
eSFADUseThisRange_toggled_cb( GtkToggleButton *b, gpointer userdata)
{
auto& AD = *(SScoringFacility::SArtifactsDialog*)userdata;
+
auto state = gtk_toggle_button_get_active( b);
gtk_widget_set_sensitive(
(GtkWidget*)AD.eSFADHistRangeMin,
@@ -109,6 +113,7 @@ void
bSFADApply_clicked_cb( GtkButton*, gpointer userdata)
{
auto& AD = *(SScoringFacility::SArtifactsDialog*)userdata;
+ auto& SF = AD._p;
gtk_widget_hide( (GtkWidget*)AD.wSFAD);
@@ -117,23 +122,24 @@ bSFADApply_clicked_cb( GtkButton*, gpointer userdata)
AD.channels_visible_backup.clear();
AD.artifacts_backup.clear_all();
- gtk_widget_queue_draw( (GtkWidget*)AD.daSFMontage);
- gtk_widget_queue_draw( (GtkWidget*)AD.daSFHypnogram);
+ gtk_widget_queue_draw( (GtkWidget*)SF.daSFMontage);
+ gtk_widget_queue_draw( (GtkWidget*)SF.daSFHypnogram);
}
void
bSFADCancel_clicked_cb( GtkButton*, gpointer userdata)
{
auto& AD = *(SScoringFacility::SArtifactsDialog*)userdata;
+ auto& SF = AD._p;
gtk_widget_hide( (GtkWidget*)AD.wSFAD);
if ( gtk_toggle_button_get_active(AD.bSFADPreview) ) {
- AD._p.using_channel -> artifacts = AD.artifacts_backup;
- AD._p.using_channel -> get_signal_filtered();
+ SF.using_channel -> artifacts = AD.artifacts_backup;
+ SF.using_channel -> get_signal_filtered();
- gtk_widget_queue_draw( (GtkWidget*)AD.daSFMontage);
- gtk_widget_queue_draw( (GtkWidget*)AD.daSFHypnogram);
+ gtk_widget_queue_draw( (GtkWidget*)SF.daSFMontage);
+ gtk_widget_queue_draw( (GtkWidget*)SF.daSFHypnogram);
}
for ( auto& H : AD.channels_visible_backup )
@@ -146,6 +152,7 @@ void
bSFADPreview_toggled_cb( GtkToggleButton *b, gpointer userdata)
{
auto& AD = *(SScoringFacility::SArtifactsDialog*)userdata;
+ auto& SF = AD._p;
if ( AD.suppress_preview_handler )
return;
@@ -153,16 +160,16 @@ bSFADPreview_toggled_cb( GtkToggleButton *b, gpointer userdata)
if ( gtk_toggle_button_get_active(b) ) {
aghui::SBusyBlock bb (AD.wSFAD);
- AD.orig_signal_visible_backup = AD._p.using_channel->draw_original_signal;
- AD.artifacts_backup = AD._p.using_channel->artifacts;
+ AD.orig_signal_visible_backup = SF.using_channel->draw_original_signal;
+ AD.artifacts_backup = SF.using_channel->artifacts;
- AD._p.using_channel -> detect_artifacts( (AD.W_V.down(), AD.P));
- AD._p.using_channel -> draw_original_signal = true;
+ SF.using_channel -> detect_artifacts( (AD.W_V.down(), AD.P));
+ SF.using_channel -> draw_original_signal = true;
gtk_widget_set_sensitive( (GtkWidget*)AD.bSFADApply, TRUE);
AD.channels_visible_backup.clear();
if ( gtk_toggle_button_get_active( (GtkToggleButton*)AD.eSFADSingleChannelPreview) )
- for ( auto& H : AD._p.channels ) {
+ for ( auto& H : SF.channels ) {
AD.channels_visible_backup.emplace_back(
&H, H.hidden);
if ( &H != SF.using_channel )
@@ -170,20 +177,20 @@ bSFADPreview_toggled_cb( GtkToggleButton *b, gpointer userdata)
}
} else {
- AD._p.using_channel->artifacts = AD.artifacts_backup;
+ SF.using_channel->artifacts = AD.artifacts_backup;
for ( auto& H : AD.channels_visible_backup )
H.first->hidden = H.second;
- AD._p.using_channel->draw_original_signal = AD.orig_signal_visible_backup;
+ SF.using_channel->draw_original_signal = AD.orig_signal_visible_backup;
gtk_widget_set_sensitive( (GtkWidget*)AD.bSFADApply, FALSE);
}
- AD._p.using_channel -> get_signal_filtered();
+ SF.using_channel -> get_signal_filtered();
- snprintf_buf( "%4.2f%% marked", AD._p.using_channel->calculate_dirty_percent() * 100);
+ snprintf_buf( "%4.2f%% marked", SF.using_channel->calculate_dirty_percent() * 100);
gtk_label_set_markup( AD.lSFADDirtyPercent, __buf__);
- gtk_widget_queue_draw( (GtkWidget*)AD.daSFMontage);
- gtk_widget_queue_draw( (GtkWidget*)AD.daSFHypnogram);
+ gtk_widget_queue_draw( (GtkWidget*)SF.daSFMontage);
+ gtk_widget_queue_draw( (GtkWidget*)SF.daSFHypnogram);
}
@@ -195,7 +202,7 @@ wSFAD_show_cb( GtkWidget*, gpointer userdata)
auto& SF = AD._p;
AD.W_V.up();
- SF.populate_mSFADProfiles();
+ AD.populate_mSFADProfiles();
g_signal_emit_by_name( AD.eSFADProfiles, "changed");
g_signal_emit_by_name( AD.eSFADEstimateE, "toggled");
diff --git a/src/ui/sf/d/filters-construct.cc b/src/ui/sf/d/filters-construct.cc
index e5b3eda..301b078 100644
--- a/src/ui/sf/d/filters-construct.cc
+++ b/src/ui/sf/d/filters-construct.cc
@@ -16,9 +16,8 @@
using namespace std;
-
-aghui::SScoringFacility::SFiltersDialogWidgets::
-SFiltersDialogWidgets (SScoringFacility& _p)
+aghui::SFiltersDialogWidgets::
+SFiltersDialogWidgets ()
{
builder = gtk_builder_new();
if ( !gtk_builder_add_from_resource( builder, "/org/gtk/aghermann/sf-filters.glade", NULL) )
@@ -43,6 +42,15 @@ SFiltersDialogWidgets (SScoringFacility& _p)
G_CONNECT_2 (eSFFilterLowPassCutoff, value, changed);
}
+aghui::SFiltersDialogWidgets::
+~SFiltersDialogWidgets ()
+{
+ // destroy toplevels
+ gtk_widget_destroy( (GtkWidget*)wSFFilters);
+ g_object_unref( (GObject*)builder);
+}
+
+
// Local Variables:
// indent-tabs-mode: 8
// End:
diff --git a/src/ui/sf/d/filters.cc b/src/ui/sf/d/filters.cc
index e6b0b60..d26dfd0 100644
--- a/src/ui/sf/d/filters.cc
+++ b/src/ui/sf/d/filters.cc
@@ -26,22 +26,15 @@ filters_d()
aghui::SScoringFacility::SFiltersDialog::
SFiltersDialog (SScoringFacility& p_)
- : _p (parent)
+ : _p (p_)
{
- W_V.reg( eSFFilterLowPassCutoff, P.low_pass_cutoff);
- W_V.reg( eSFFilterLowPassOrder, P.low_pass_order);
- W_V.reg( eSFFilterHighPassCutoff, P.high_pass_cutoff);
- W_V.reg( eSFFilterHighPassOrder, P.high_pass_order);
+ W_V.reg( eSFFilterLowPassCutoff, &P.low_pass_cutoff);
+ W_V.reg( eSFFilterLowPassOrder, (int*)&P.low_pass_order);
+ W_V.reg( eSFFilterHighPassCutoff, &P.high_pass_cutoff);
+ W_V.reg( eSFFilterHighPassOrder, (int*)&P.high_pass_order);
W_V.reg( eSFFilterNotchFilter, (int*)&P.notch_filter);
}
-aghui::SScoringFacility::SFiltersDialogWidgets::
-~SScoringFacilityWidgets ()
-{
- // destroy toplevels
- gtk_widget_destroy( (GtkWidget*)wSFFilters);
- g_object_unref( (GObject*)builder);
-}
// Local Variables:
// indent-tabs-mode: 8
diff --git a/src/ui/sf/d/filters.hh b/src/ui/sf/d/filters.hh
index ea18945..8b868e0 100644
--- a/src/ui/sf/d/filters.hh
+++ b/src/ui/sf/d/filters.hh
@@ -25,27 +25,6 @@ using namespace std;
namespace aghui {
-struct SFiltersDialogWidgets;
-
-struct SScoringFacility::SFiltersDialog
- : public SFiltersDialogWidgets {
-
- DELETE_DEFAULT_METHODS (SFiltersDialog);
-
- SFiltersDialog (SScoringFacility&);
- ~SFiltersDialog ();
-
- sigfile::SFilterPack&
- P;
-
- SUIVarCollection
- W_V;
-
- SScoringFacility&
- _p;
-};
-
-
struct SFiltersDialogWidgets {
SFiltersDialogWidgets ();
@@ -68,11 +47,33 @@ struct SFiltersDialogWidgets {
*bSFFilterOK;
};
+struct SScoringFacility::SFiltersDialog
+ : public SFiltersDialogWidgets {
+
+ DELETE_DEFAULT_METHODS (SFiltersDialog);
+
+ SFiltersDialog (SScoringFacility&);
+ ~SFiltersDialog ();
+
+ sigfile::SFilterPack
+ P;
+
+ SUIVarCollection
+ W_V;
+
+ SScoringFacility&
+ _p;
+};
+
+} // namespace aghui
+
extern "C" {
void eSFFilterHighPassCutoff_value_changed_cb( GtkSpinButton*, gpointer);
void eSFFilterLowPassCutoff_value_changed_cb( GtkSpinButton*, gpointer);
}
+#endif // _AGH_UI_SF_FILTERS_H
+
// Local Variables:
// indent-tabs-mode: 8
// End:
diff --git a/src/ui/sf/d/filters_cb.cc b/src/ui/sf/d/filters_cb.cc
index b8f7c8e..c60abcb 100644
--- a/src/ui/sf/d/filters_cb.cc
+++ b/src/ui/sf/d/filters_cb.cc
@@ -31,7 +31,7 @@ eSFFilterHighPassCutoff_value_changed_cb( GtkSpinButton *spinbutton, gpointer us
void
eSFFilterLowPassCutoff_value_changed_cb( GtkSpinButton *spinbutton, gpointer userdata)
{
- auto& FD = *(SScoringFacility::SFiltersDialogWidgets*)userdata;
+ auto& FD = *(SScoringFacility::SFiltersDialog*)userdata;
gdouble other_freq = gtk_spin_button_get_value( FD.eSFFilterHighPassCutoff);
gtk_widget_set_sensitive( (GtkWidget*)FD.bSFFilterOK,
fdim( other_freq, 0.) < 1e-5 || gtk_spin_button_get_value( spinbutton) > other_freq);
diff --git a/src/ui/sf/d/patterns-construct.cc b/src/ui/sf/d/patterns-construct.cc
index 97712fc..e32f627 100644
--- a/src/ui/sf/d/patterns-construct.cc
+++ b/src/ui/sf/d/patterns-construct.cc
@@ -1,6 +1,5 @@
-// ;-*-C++-*-
/*
- * File name: ui/sf/sf-patterns-construct.cc
+ * File name: ui/sf/d/patterns-construct.cc
* Project: Aghermann
* Author: Andrei Zavada <johnhommer at gmail.com>
* Initial version: 2013-01-24
@@ -11,7 +10,17 @@
*/
#include <stdexcept>
+#include "patterns.hh"
+using namespace std;
+
+aghui::SPatternsDialogWidgets::
+SPatternsDialogWidgets (SScoringFacility& SF)
+{
+ builder = gtk_builder_new();
+ if ( !gtk_builder_add_from_resource( builder, "/org/gtk/aghermann/sf-patterns.glade", NULL) )
+ throw runtime_error( "Failed to load SF::patterns glade resource");
+ gtk_builder_connect_signals( builder, NULL);
mSFFDPatterns =
gtk_list_store_new( 1, G_TYPE_STRING);
@@ -59,7 +68,7 @@
eSFFDPatternList_changed_cb_handler_id =
G_CONNECT_1 (eSFFDPatternList, changed);
- gtk_combo_box_set_model_properly( eSFFDChannel, _p.mAllChannels);
+ gtk_combo_box_set_model_properly( eSFFDChannel, SF._p.mAllChannels);
eSFFDChannel_changed_cb_handler_id =
G_CONNECT_1 (eSFFDChannel, changed);
@@ -89,5 +98,18 @@
G_CONNECT_1 (wSFFD, show);
G_CONNECT_1 (wSFFD, hide);
+}
+aghui::SPatternsDialogWidgets::
+~SPatternsDialogWidgets ()
+{
+ // destroy toplevels
+ gtk_widget_destroy( (GtkWidget*)wSFFD);
+ g_object_unref( (GObject*)builder);
}
+
+
+// Local Variables:
+// Mode: c++
+// indent-tabs-mode: 8
+// End:
diff --git a/src/ui/sf/d/patterns-draw.cc b/src/ui/sf/d/patterns-draw.cc
index ac7d413..5364641 100644
--- a/src/ui/sf/d/patterns-draw.cc
+++ b/src/ui/sf/d/patterns-draw.cc
@@ -11,26 +11,26 @@
*/
#include "ui/misc.hh"
-#include "sf.hh"
+#include "patterns.hh"
using namespace std;
void
-aghui::SScoringFacility::SFindDialog::
+aghui::SScoringFacility::SPatternsDialog::
set_thing_da_width( int width)
{
- g_object_set( (GObject*)_p.daSFFDThing,
+ g_object_set( (GObject*)daSFFDThing,
"width-request", da_thing_wd = max( width+5, 600),
"height-request", da_thing_ht,
NULL);
}
void
-aghui::SScoringFacility::SFindDialog::
+aghui::SScoringFacility::SPatternsDialog::
set_field_da_width( int width)
{
- g_object_set( (GObject*)_p.daSFFDField,
+ g_object_set( (GObject*)daSFFDField,
"width-request", da_field_wd = max( width+5, 600),
"height-request", da_field_ht,
NULL);
@@ -39,7 +39,7 @@ set_field_da_width( int width)
void
-aghui::SScoringFacility::SFindDialog::
+aghui::SScoringFacility::SPatternsDialog::
draw_thing( cairo_t *cr)
{
if ( current_pattern == patterns.end() ) {
@@ -156,7 +156,7 @@ out:
}
void
-aghui::SScoringFacility::SFindDialog::
+aghui::SScoringFacility::SPatternsDialog::
draw_field( cairo_t *cr)
{
// field
diff --git a/src/ui/sf/d/patterns-enumerate.cc b/src/ui/sf/d/patterns-enumerate.cc
index d1fdb13..173655a 100644
--- a/src/ui/sf/d/patterns-enumerate.cc
+++ b/src/ui/sf/d/patterns-enumerate.cc
@@ -1,6 +1,5 @@
-// ;-*-C++-*-
/*
- * File name: ui/sf/sf-patterns-enumerate.cc
+ * File name: ui/sf/d/patterns-enumerate.cc
* Project: Aghermann
* Author: Andrei Zavada <johnhommer at gmail.com>
* Initial version: 2013-01-16
@@ -12,13 +11,13 @@
#include <tuple>
#include "ui/misc.hh"
-#include "sf.hh"
+#include "patterns.hh"
using namespace std;
void
-aghui::SScoringFacility::SFindDialog::
+aghui::SScoringFacility::SPatternsDialog::
import_from_selection( SScoringFacility::SChannel& field)
{
// double check, possibly redundant after due check in callback
@@ -57,7 +56,7 @@ import_from_selection( SScoringFacility::SChannel& field)
setup_controls_for_find();
- gtk_widget_queue_draw( (GtkWidget*)_p.daSFFDThing);
+ gtk_widget_queue_draw( (GtkWidget*)daSFFDThing);
}
@@ -107,7 +106,7 @@ make_subject_patterns_location(const agh::CExpDesign& ED, const agh::CSubject& J
void
-aghui::SScoringFacility::SFindDialog::
+aghui::SScoringFacility::SPatternsDialog::
load_patterns()
{
patterns.clear();
@@ -134,35 +133,35 @@ load_patterns()
void
-aghui::SScoringFacility::SFindDialog::
+aghui::SScoringFacility::SPatternsDialog::
populate_combo()
{
- g_signal_handler_block( _p.eSFFDPatternList, _p.eSFFDPatternList_changed_cb_handler_id);
- gtk_list_store_clear( _p.mSFFDPatterns);
+ g_signal_handler_block( eSFFDPatternList, eSFFDPatternList_changed_cb_handler_id);
+ gtk_list_store_clear( mSFFDPatterns);
if ( not patterns.empty() ) {
GtkTreeIter iter, current_pattern_iter;
for ( auto I = patterns.begin(); I != patterns.end(); ++I ) {
snprintf_buf( "%s %s", origin_markers[I->origin], I->name.c_str());
- gtk_list_store_append( _p.mSFFDPatterns, &iter);
- gtk_list_store_set( _p.mSFFDPatterns, &iter,
+ gtk_list_store_append( mSFFDPatterns, &iter);
+ gtk_list_store_set( mSFFDPatterns, &iter,
0, __buf__,
-1);
if ( I == current_pattern )
current_pattern_iter = iter;
}
- gtk_combo_box_set_active_iter( _p.eSFFDPatternList, ¤t_pattern_iter);
+ gtk_combo_box_set_active_iter( eSFFDPatternList, ¤t_pattern_iter);
} else
- gtk_combo_box_set_active_iter( _p.eSFFDPatternList, NULL);
+ gtk_combo_box_set_active_iter( eSFFDPatternList, NULL);
- g_signal_handler_unblock( _p.eSFFDPatternList, _p.eSFFDPatternList_changed_cb_handler_id);
+ g_signal_handler_unblock( eSFFDPatternList, eSFFDPatternList_changed_cb_handler_id);
}
void
-aghui::SScoringFacility::SFindDialog::
+aghui::SScoringFacility::SPatternsDialog::
save_patterns()
{
for ( auto& P : patterns )
@@ -187,7 +186,7 @@ save_patterns()
void
-aghui::SScoringFacility::SFindDialog::
+aghui::SScoringFacility::SPatternsDialog::
discard_current_pattern()
{
if ( current_pattern == patterns.end() )
@@ -201,4 +200,7 @@ discard_current_pattern()
-// eof
+// Local Variables:
+// Mode: c++
+// indent-tabs-mode: 8
+// End:
diff --git a/src/ui/sf/d/patterns.cc b/src/ui/sf/d/patterns.cc
index a96ce5e..fca1524 100644
--- a/src/ui/sf/d/patterns.cc
+++ b/src/ui/sf/d/patterns.cc
@@ -11,7 +11,7 @@
*/
#include "ui/misc.hh"
-#include "sf.hh"
+#include "patterns.hh"
using namespace std;
@@ -24,9 +24,10 @@ patterns_d()
return *_patterns_d;
}
-aghui::SScoringFacility::SFindDialog::
-SFindDialog (SScoringFacility& parent)
- : Pp2 {.25, 0., 1.5, 1, .1, .5, 3},
+aghui::SScoringFacility::SPatternsDialog::
+SPatternsDialog (SScoringFacility& parent)
+ : SPatternsDialogWidgets (parent),
+ Pp2 {.25, 0., 1.5, 1, .1, .5, 3},
cpattern (nullptr),
increment (.05),
field_profile_type (metrics::TType::mc),
@@ -34,18 +35,18 @@ SFindDialog (SScoringFacility& parent)
_p (parent)
{
suppress_w_v = true;
- W_V.reg( _p.eSFFDEnvTightness, &Pp2.env_scope);
- W_V.reg( _p.eSFFDBandPassOrder, &Pp2.bwf_order);
- W_V.reg( _p.eSFFDBandPassFrom, &Pp2.bwf_ffrom);
- W_V.reg( _p.eSFFDBandPassUpto, &Pp2.bwf_fupto);
- W_V.reg( _p.eSFFDDZCDFStep, &Pp2.dzcdf_step);
- W_V.reg( _p.eSFFDDZCDFSigma, &Pp2.dzcdf_sigma);
- W_V.reg( _p.eSFFDDZCDFSmooth, &Pp2.dzcdf_smooth);
-
- W_V.reg( _p.eSFFDParameterA, &get<0>(criteria));
- W_V.reg( _p.eSFFDParameterB, &get<1>(criteria));
- W_V.reg( _p.eSFFDParameterC, &get<2>(criteria));
- W_V.reg( _p.eSFFDParameterD, &get<3>(criteria));
+ W_V.reg( eSFFDEnvTightness, &Pp2.env_scope);
+ W_V.reg( eSFFDBandPassOrder, &Pp2.bwf_order);
+ W_V.reg( eSFFDBandPassFrom, &Pp2.bwf_ffrom);
+ W_V.reg( eSFFDBandPassUpto, &Pp2.bwf_fupto);
+ W_V.reg( eSFFDDZCDFStep, &Pp2.dzcdf_step);
+ W_V.reg( eSFFDDZCDFSigma, &Pp2.dzcdf_sigma);
+ W_V.reg( eSFFDDZCDFSmooth, &Pp2.dzcdf_smooth);
+
+ W_V.reg( eSFFDParameterA, &get<0>(criteria));
+ W_V.reg( eSFFDParameterB, &get<1>(criteria));
+ W_V.reg( eSFFDParameterC, &get<2>(criteria));
+ W_V.reg( eSFFDParameterD, &get<3>(criteria));
W_V.up();
suppress_w_v = false;
@@ -53,22 +54,22 @@ SFindDialog (SScoringFacility& parent)
load_patterns();
}
-aghui::SScoringFacility::SFindDialog::
-~SFindDialog ()
+aghui::SScoringFacility::SPatternsDialog::
+~SPatternsDialog ()
{
save_patterns();
assert ( cpattern == nullptr );
// g_object_unref( mPatterns);
- gtk_widget_destroy( (GtkWidget*)_p.wSFFDPatternSave);
- gtk_widget_destroy( (GtkWidget*)_p.wSFFD);
+ gtk_widget_destroy( (GtkWidget*)wSFFDPatternSave);
+ gtk_widget_destroy( (GtkWidget*)wSFFD);
}
list<pattern::SPattern<TFloat>>::iterator
-aghui::SScoringFacility::SFindDialog::
+aghui::SScoringFacility::SPatternsDialog::
pattern_by_idx( size_t idx)
{
size_t i = 0;
@@ -84,7 +85,7 @@ pattern_by_idx( size_t idx)
void
-aghui::SScoringFacility::SFindDialog::
+aghui::SScoringFacility::SPatternsDialog::
search()
{
if ( unlikely
@@ -113,7 +114,7 @@ search()
size_t
-aghui::SScoringFacility::SFindDialog::
+aghui::SScoringFacility::SPatternsDialog::
find_occurrences()
{
if ( unlikely (current_pattern == patterns.end()) )
@@ -136,7 +137,7 @@ find_occurrences()
void
-aghui::SScoringFacility::SFindDialog::
+aghui::SScoringFacility::SPatternsDialog::
occurrences_to_annotations()
{
for ( size_t o = 0; o < occurrences.size(); ++o )
@@ -148,7 +149,7 @@ occurrences_to_annotations()
}
void
-aghui::SScoringFacility::SFindDialog::
+aghui::SScoringFacility::SPatternsDialog::
save_annotations()
{
saved_annotations = field_channel->annotations;
@@ -156,7 +157,7 @@ save_annotations()
}
void
-aghui::SScoringFacility::SFindDialog::
+aghui::SScoringFacility::SPatternsDialog::
restore_annotations()
{
field_channel->annotations = saved_annotations;
@@ -168,76 +169,76 @@ restore_annotations()
void
-aghui::SScoringFacility::SFindDialog::
+aghui::SScoringFacility::SPatternsDialog::
setup_controls_for_find()
{
bool have_any = current_pattern != patterns.end();
- gtk_widget_set_visible( (GtkWidget*)_p.cSFFDSearchButton, have_any and TRUE);
- gtk_widget_set_visible( (GtkWidget*)_p.cSFFDSearching, FALSE);
- gtk_widget_set_visible( (GtkWidget*)_p.cSFFDAgainButton, FALSE);
+ gtk_widget_set_visible( (GtkWidget*)cSFFDSearchButton, have_any and TRUE);
+ gtk_widget_set_visible( (GtkWidget*)cSFFDSearching, FALSE);
+ gtk_widget_set_visible( (GtkWidget*)cSFFDAgainButton, FALSE);
- gtk_widget_set_visible( (GtkWidget*)_p.cSFFDParameters, have_any and TRUE);
+ gtk_widget_set_visible( (GtkWidget*)cSFFDParameters, have_any and TRUE);
- gtk_widget_set_visible( (GtkWidget*)_p.swSFFDField, FALSE);
- gtk_widget_set_visible( (GtkWidget*)_p.cSFFDCriteria, FALSE);
+ gtk_widget_set_visible( (GtkWidget*)swSFFDField, FALSE);
+ gtk_widget_set_visible( (GtkWidget*)cSFFDCriteria, FALSE);
- gtk_label_set_markup( _p.lSFFDFoundInfo, "");
+ gtk_label_set_markup( lSFFDFoundInfo, "");
}
void
-aghui::SScoringFacility::SFindDialog::
+aghui::SScoringFacility::SPatternsDialog::
setup_controls_for_wait()
{
- gtk_widget_set_visible( (GtkWidget*)_p.cSFFDSearchButton, FALSE);
- gtk_widget_set_visible( (GtkWidget*)_p.cSFFDSearching, TRUE);
- gtk_widget_set_visible( (GtkWidget*)_p.cSFFDAgainButton, FALSE);
+ gtk_widget_set_visible( (GtkWidget*)cSFFDSearchButton, FALSE);
+ gtk_widget_set_visible( (GtkWidget*)cSFFDSearching, TRUE);
+ gtk_widget_set_visible( (GtkWidget*)cSFFDAgainButton, FALSE);
- gtk_widget_set_visible( (GtkWidget*)_p.cSFFDParameters, TRUE);
+ gtk_widget_set_visible( (GtkWidget*)cSFFDParameters, TRUE);
- gtk_widget_set_visible( (GtkWidget*)_p.swSFFDField, FALSE);
- gtk_widget_set_visible( (GtkWidget*)_p.cSFFDCriteria, FALSE);
+ gtk_widget_set_visible( (GtkWidget*)swSFFDField, FALSE);
+ gtk_widget_set_visible( (GtkWidget*)cSFFDCriteria, FALSE);
}
void
-aghui::SScoringFacility::SFindDialog::
+aghui::SScoringFacility::SPatternsDialog::
setup_controls_for_tune()
{
- gtk_widget_set_visible( (GtkWidget*)_p.cSFFDSearchButton, FALSE);
- gtk_widget_set_visible( (GtkWidget*)_p.cSFFDSearching, FALSE);
- gtk_widget_set_visible( (GtkWidget*)_p.cSFFDAgainButton, TRUE);
+ gtk_widget_set_visible( (GtkWidget*)cSFFDSearchButton, FALSE);
+ gtk_widget_set_visible( (GtkWidget*)cSFFDSearching, FALSE);
+ gtk_widget_set_visible( (GtkWidget*)cSFFDAgainButton, TRUE);
- gtk_widget_set_visible( (GtkWidget*)_p.cSFFDParameters, FALSE);
+ gtk_widget_set_visible( (GtkWidget*)cSFFDParameters, FALSE);
- gtk_widget_set_visible( (GtkWidget*)_p.swSFFDField, TRUE);
- gtk_widget_set_visible( (GtkWidget*)_p.cSFFDCriteria, TRUE);
+ gtk_widget_set_visible( (GtkWidget*)swSFFDField, TRUE);
+ gtk_widget_set_visible( (GtkWidget*)cSFFDCriteria, TRUE);
}
void
-aghui::SScoringFacility::SFindDialog::
+aghui::SScoringFacility::SPatternsDialog::
set_profile_manage_buttons_visibility()
{
bool have_any = current_pattern != patterns.end(),
is_transient = have_any && current_pattern->origin == pattern::TOrigin::transient,
is_modified = have_any && not (current_pattern->Pp == Pp2);
- gtk_widget_set_visible( (GtkWidget*)_p.bSFFDProfileSave, have_any and is_transient);
- gtk_widget_set_visible( (GtkWidget*)_p.bSFFDProfileRevert, have_any and not is_transient and is_modified);
- gtk_widget_set_visible( (GtkWidget*)_p.bSFFDProfileDiscard, have_any and not is_transient);
+ gtk_widget_set_visible( (GtkWidget*)bSFFDProfileSave, have_any and is_transient);
+ gtk_widget_set_visible( (GtkWidget*)bSFFDProfileRevert, have_any and not is_transient and is_modified);
+ gtk_widget_set_visible( (GtkWidget*)bSFFDProfileDiscard, have_any and not is_transient);
}
void
-aghui::SScoringFacility::SFindDialog::
+aghui::SScoringFacility::SPatternsDialog::
preselect_channel( const char *ch)
{
if ( ch == NULL ) {
- gtk_combo_box_set_active_iter( _p.eSFFDChannel, NULL);
+ gtk_combo_box_set_active_iter( eSFFDChannel, NULL);
return;
}
- GtkTreeModel *model = gtk_combo_box_get_model( _p.eSFFDChannel);
+ GtkTreeModel *model = gtk_combo_box_get_model( eSFFDChannel);
GtkTreeIter iter;
gboolean valid;
valid = gtk_tree_model_get_iter_first( model, &iter);
@@ -247,7 +248,7 @@ preselect_channel( const char *ch)
0, &entry,
-1);
if ( strcmp( entry, ch) == 0 ) {
- gtk_combo_box_set_active_iter( _p.eSFFDChannel, &iter);
+ gtk_combo_box_set_active_iter( eSFFDChannel, &iter);
return;
}
valid = gtk_tree_model_iter_next( model, &iter);
@@ -257,7 +258,7 @@ preselect_channel( const char *ch)
size_t
-aghui::SScoringFacility::SFindDialog::
+aghui::SScoringFacility::SPatternsDialog::
nearest_occurrence( double x) const
{
double shortest = INFINITY;
diff --git a/src/ui/sf/d/patterns.hh b/src/ui/sf/d/patterns.hh
index 44d9b3e..3f1af20 100644
--- a/src/ui/sf/d/patterns.hh
+++ b/src/ui/sf/d/patterns.hh
@@ -1,6 +1,5 @@
-// ;-*-C++-*-
/*
- * File name: ui/sf/dialogs/patterns.hh
+ * File name: ui/sf/d/patterns.hh
* Project: Aghermann
* Author: Andrei Zavada <johnhommer at gmail.com>
* Initial version: 2013-01-24
@@ -14,7 +13,7 @@
#define _AGH_UI_SF_PATTERNS_H
#include "patterns/patterns.hh"
-#include "sf.hh"
+#include "ui/sf/sf.hh"
#if HAVE_CONFIG_H && !defined(VERSION)
# include "config.h"
@@ -24,12 +23,70 @@ using namespace std;
namespace aghui {
-struct SScoringFacility::SFindDialog {
- DELETE_DEFAULT_METHODS (SFindDialog);
+
+struct SPatternsDialogWidgets {
+
+ SPatternsDialogWidgets (SScoringFacility&); // need access to mAllChannels
+ ~SPatternsDialogWidgets ();
+
+ GtkBuilder *builder;
+
+ // 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;
+};
+
+
+struct SScoringFacility::SPatternsDialog
+ : public SPatternsDialogWidgets{
+
+ DELETE_DEFAULT_METHODS (SPatternsDialog);
// ctor, dtor
- SFindDialog (SScoringFacility& parent);
- ~SFindDialog ();
+ SPatternsDialog (SScoringFacility& parent);
+ ~SPatternsDialog ();
// saved patterns
list<pattern::SPattern<TFloat>>
@@ -109,53 +166,29 @@ struct SScoringFacility::SFindDialog {
};
-
- // 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
+extern "C" {
+void eSFFDPatternList_changed_cb( GtkComboBox*, gpointer);
+void eSFFDChannel_changed_cb( GtkComboBox*, gpointer);
+gboolean daSFFDField_draw_cb( GtkWidget*, cairo_t*, gpointer);
+gboolean daSFFDField_scroll_event_cb( GtkWidget*, GdkEventScroll*, gpointer);
+gboolean daSFFDField_button_press_event_cb( GtkWidget*, GdkEventButton*, gpointer);
+gboolean daSFFDField_motion_notify_event_cb( GtkWidget*, GdkEventMotion*, gpointer);
+gboolean daSFFDThing_draw_cb( GtkWidget*, cairo_t*, gpointer);
+gboolean daSFFDThing_scroll_event_cb( GtkWidget*, GdkEventScroll*, gpointer);
+void bSFFDSearch_clicked_cb( GtkButton*, gpointer);
+void bSFFDAgain_clicked_cb( GtkButton*, gpointer);
+void bSFFDProfileSave_clicked_cb( GtkButton*, gpointer);
+void bSFFDProfileDiscard_clicked_cb( GtkButton*, gpointer);
+void bSFFDProfileRevert_clicked_cb( GtkButton*, gpointer);
+void eSFFD_any_pattern_value_changed_cb( GtkSpinButton*, gpointer);
+void eSFFD_any_criteria_value_changed_cb( GtkSpinButton*, gpointer);
+void wSFFD_show_cb( GtkWidget*, gpointer);
+void wSFFD_hide_cb( GtkWidget*, gpointer);
+gboolean wSFFD_configure_event_cb( GtkWidget*, GdkEventConfigure*, gpointer);
+}
+
+#endif // _AGH_UI_SF_PATTERNS_H
+
// eof
diff --git a/src/ui/sf/d/patterns_cb.cc b/src/ui/sf/d/patterns_cb.cc
index 10b172b..db6486b 100644
--- a/src/ui/sf/d/patterns_cb.cc
+++ b/src/ui/sf/d/patterns_cb.cc
@@ -13,7 +13,7 @@
#include <sys/time.h>
#include "ui/misc.hh"
-#include "sf.hh"
+#include "patterns.hh"
using namespace std;
@@ -24,8 +24,7 @@ extern "C" {
gboolean
daSFFDThing_draw_cb( GtkWidget *wid, cairo_t *cr, gpointer userdata)
{
- auto& SF = *(SScoringFacility*)userdata;
- auto& FD = *SF.find_dialog;
+ auto& FD = *(SScoringFacility::SPatternsDialog*)userdata;
FD.draw_thing( cr);
@@ -35,8 +34,7 @@ daSFFDThing_draw_cb( GtkWidget *wid, cairo_t *cr, gpointer userdata)
gboolean
daSFFDField_draw_cb( GtkWidget *wid, cairo_t *cr, gpointer userdata)
{
- auto& SF = *(SScoringFacility*)userdata;
- auto& FD = *SF.find_dialog;
+ auto& FD = *(SScoringFacility::SPatternsDialog*)userdata;
FD.draw_field( cr);
@@ -49,8 +47,7 @@ daSFFDField_draw_cb( GtkWidget *wid, cairo_t *cr, gpointer userdata)
gboolean
daSFFDThing_scroll_event_cb( GtkWidget *wid, GdkEventScroll *event, gpointer userdata)
{
- auto& SF = *(SScoringFacility*)userdata;
- auto& FD = *SF.find_dialog;
+ auto& FD = *(SScoringFacility::SPatternsDialog*)userdata;
switch ( event->direction ) {
case GDK_SCROLL_UP:
@@ -78,8 +75,7 @@ daSFFDThing_scroll_event_cb( GtkWidget *wid, GdkEventScroll *event, gpointer use
gboolean
daSFFDField_scroll_event_cb( GtkWidget *wid, GdkEventScroll *event, gpointer userdata)
{
- auto& SF = *(SScoringFacility*)userdata;
- auto& FD = *SF.find_dialog;
+ auto& FD = *(SScoringFacility::SPatternsDialog*)userdata;
switch ( event->direction ) {
case GDK_SCROLL_UP:
@@ -107,8 +103,8 @@ daSFFDField_scroll_event_cb( GtkWidget *wid, GdkEventScroll *event, gpointer use
gboolean
daSFFDField_button_press_event_cb( GtkWidget *wid, GdkEventButton *event, gpointer userdata)
{
- auto& SF = *(SScoringFacility*)userdata;
- auto& FD = *SF.find_dialog;
+ auto& FD = *(SScoringFacility::SPatternsDialog*)userdata;
+ auto& SF = FD._p;
switch ( event->button ) {
case 1:
@@ -117,7 +113,7 @@ daSFFDField_button_press_event_cb( GtkWidget *wid, GdkEventButton *event, gpoint
((double)FD.occurrences[FD.highlighted_occurrence] / FD.diff_line.size()) * SF.total_vpages());
break;
case 3:
- gtk_menu_popup( SF.iiSFFDField,
+ gtk_menu_popup( FD.iiSFFDField,
NULL, NULL, NULL, NULL, 3, event->time);
break;
}
@@ -130,8 +126,7 @@ daSFFDField_button_press_event_cb( GtkWidget *wid, GdkEventButton *event, gpoint
gboolean
daSFFDField_motion_notify_event_cb( GtkWidget *wid, GdkEventMotion *event, gpointer userdata)
{
- auto& SF = *(SScoringFacility*)userdata;
- auto& FD = *SF.find_dialog;
+ auto& FD = *(SScoringFacility::SPatternsDialog*)userdata;
FD.highlighted_occurrence = FD.nearest_occurrence( event->x);
@@ -145,10 +140,10 @@ daSFFDField_motion_notify_event_cb( GtkWidget *wid, GdkEventMotion *event, gpoin
void
bSFFDSearch_clicked_cb( GtkButton *button, gpointer userdata)
{
- auto& SF = *(SScoringFacility*)userdata;
- auto& FD = *SF.find_dialog;
+ auto& FD = *(SScoringFacility::SPatternsDialog*)userdata;
+ auto& SF = FD._p;
- aghui::SBusyBlock bb (SF.wSFFD);
+ aghui::SBusyBlock bb (FD.wSFFD);
FD.setup_controls_for_wait();
gtk_flush();
@@ -176,14 +171,13 @@ bSFFDSearch_clicked_cb( GtkButton *button, gpointer userdata)
FD.Pp2.env_scope,
FD.Pp2.bwf_ffrom, FD.Pp2.bwf_fupto, FD.Pp2.bwf_order,
FD.Pp2.dzcdf_step, FD.Pp2.dzcdf_sigma, FD.Pp2.dzcdf_smooth);
- gtk_label_set_markup( SF.lSFFDParametersBrief, __buf__);
+ gtk_label_set_markup( FD.lSFFDParametersBrief, __buf__);
}
void
bSFFDAgain_clicked_cb( GtkButton *button, gpointer userdata)
{
- auto& SF = *(SScoringFacility*)userdata;
- auto& FD = *SF.find_dialog;
+ auto& FD = *(SScoringFacility::SPatternsDialog*)userdata;
FD.restore_annotations();
FD.occurrences.clear();
@@ -195,8 +189,8 @@ bSFFDAgain_clicked_cb( GtkButton *button, gpointer userdata)
void
eSFFD_any_pattern_value_changed_cb( GtkSpinButton *spinbutton, gpointer userdata)
{
- auto& SF = *(SScoringFacility*)userdata;
- auto& FD = *SF.find_dialog;
+ auto& FD = *(SScoringFacility::SPatternsDialog*)userdata;
+
if ( FD.suppress_w_v )
return;
@@ -205,7 +199,7 @@ eSFFD_any_pattern_value_changed_cb( GtkSpinButton *spinbutton, gpointer userdata
FD.set_profile_manage_buttons_visibility();
- gtk_widget_queue_draw( (GtkWidget*)FD._p.daSFFDThing);
+ gtk_widget_queue_draw( (GtkWidget*)FD.daSFFDThing);
}
inline namespace {
@@ -220,8 +214,8 @@ timeval_elapsed( const struct timeval &x, const struct timeval &y)
void
eSFFD_any_criteria_value_changed_cb( GtkSpinButton *spinbutton, gpointer userdata)
{
- auto& SF = *(SScoringFacility*)userdata;
- auto& FD = *SF.find_dialog;
+ auto& FD = *(SScoringFacility::SPatternsDialog*)userdata;
+
if ( FD.suppress_w_v )
return;
@@ -236,11 +230,11 @@ eSFFD_any_criteria_value_changed_cb( GtkSpinButton *spinbutton, gpointer userdat
snprintf_buf( "%zu match%s\n",
FD.occurrences.size(), (FD.occurrences.size() == 1) ? "" : "es");
- gtk_label_set_markup( FD._p.lSFFDFoundInfo, __buf__);
+ gtk_label_set_markup( FD.lSFFDFoundInfo, __buf__);
FD.set_profile_manage_buttons_visibility();
- gtk_widget_queue_draw( (GtkWidget*)FD._p.daSFFDField);
+ gtk_widget_queue_draw( (GtkWidget*)FD.daSFFDField);
}
}
@@ -252,8 +246,7 @@ eSFFD_any_criteria_value_changed_cb( GtkSpinButton *spinbutton, gpointer userdat
void
eSFFDPatternList_changed_cb( GtkComboBox *combo, gpointer userdata)
{
- auto& SF = *(SScoringFacility*)userdata;
- auto& FD = *SF.find_dialog;
+ auto& FD = *(SScoringFacility::SPatternsDialog*)userdata;
if ( FD.current_pattern != FD.patterns.end() ) {
FD.current_pattern->Pp = FD.Pp2;
@@ -270,7 +263,7 @@ eSFFDPatternList_changed_cb( GtkComboBox *combo, gpointer userdata)
FD.set_profile_manage_buttons_visibility();
- gtk_widget_queue_draw( (GtkWidget*)SF.daSFFDThing);
+ gtk_widget_queue_draw( (GtkWidget*)FD.daSFFDThing);
}
@@ -278,17 +271,16 @@ eSFFDPatternList_changed_cb( GtkComboBox *combo, gpointer userdata)
void
bSFFDProfileSave_clicked_cb( GtkButton *button, gpointer userdata)
{
- auto& SF = *(SScoringFacility*)userdata;
- auto& FD = *SF.find_dialog;
+ auto& FD = *(SScoringFacility::SPatternsDialog*)userdata;
assert (FD.current_pattern->origin == pattern::TOrigin::transient );
auto& P = *FD.current_pattern;
- if ( gtk_dialog_run( SF.wSFFDPatternSave) == GTK_RESPONSE_OK ) {
- P.name = gtk_entry_get_text( SF.eSFFDPatternSaveName);
- P.origin = gtk_toggle_button_get_active( SF.eSFFDPatternSaveOriginSubject)
+ if ( gtk_dialog_run( FD.wSFFDPatternSave) == GTK_RESPONSE_OK ) {
+ P.name = gtk_entry_get_text( FD.eSFFDPatternSaveName);
+ P.origin = gtk_toggle_button_get_active( FD.eSFFDPatternSaveOriginSubject)
? pattern::TOrigin::subject
- : gtk_toggle_button_get_active( SF.eSFFDPatternSaveOriginExperiment)
+ : gtk_toggle_button_get_active( FD.eSFFDPatternSaveOriginExperiment)
? pattern::TOrigin::experiment
: pattern::TOrigin::user;
P.Pp = FD.Pp2;
@@ -303,10 +295,9 @@ bSFFDProfileSave_clicked_cb( GtkButton *button, gpointer userdata)
void
bSFFDProfileDiscard_clicked_cb( GtkButton *button, gpointer userdata)
{
- auto& SF = *(SScoringFacility*)userdata;
- auto& FD = *SF.find_dialog;
+ auto& FD = *(SScoringFacility::SPatternsDialog*)userdata;
- gint ci = gtk_combo_box_get_active( SF.eSFFDPatternList);
+ gint ci = gtk_combo_box_get_active( FD.eSFFDPatternList);
assert ( FD.current_pattern != FD.patterns.end() );
assert ( FD.current_pattern->origin != pattern::TOrigin::transient );
@@ -332,8 +323,7 @@ bSFFDProfileDiscard_clicked_cb( GtkButton *button, gpointer userdata)
void
bSFFDProfileRevert_clicked_cb( GtkButton *button, gpointer userdata)
{
- auto& SF = *(SScoringFacility*)userdata;
- auto& FD = *SF.find_dialog;
+ auto& FD = *(SScoringFacility::SPatternsDialog*)userdata;
assert ( FD.current_pattern != FD.patterns.end() );
assert ( FD.current_pattern->origin != pattern::TOrigin::transient );
@@ -353,8 +343,8 @@ bSFFDProfileRevert_clicked_cb( GtkButton *button, gpointer userdata)
void
eSFFDChannel_changed_cb( GtkComboBox *combo, gpointer userdata)
{
- auto& SF = *(SScoringFacility*)userdata;
- auto& FD = *SF.find_dialog;
+ auto& FD = *(SScoringFacility::SPatternsDialog*)userdata;
+ auto& SF = FD._p;
GtkTreeIter iter;
if ( gtk_combo_box_get_active_iter( combo, &iter) == FALSE )
@@ -377,8 +367,7 @@ eSFFDChannel_changed_cb( GtkComboBox *combo, gpointer userdata)
void
wSFFD_show_cb( GtkWidget *widget, gpointer userdata)
{
- auto& SF = *(SScoringFacility*)userdata;
- auto& FD = *SF.find_dialog;
+ auto& FD = *(SScoringFacility::SPatternsDialog*)userdata;
FD.setup_controls_for_find();
FD.populate_combo();
@@ -394,8 +383,8 @@ wSFFD_show_cb( GtkWidget *widget, gpointer userdata)
void
wSFFD_hide_cb( GtkWidget *widget, gpointer userdata)
{
- auto& SF = *(SScoringFacility*)userdata;
- auto& FD = *SF.find_dialog;
+ auto& FD = *(SScoringFacility::SPatternsDialog*)userdata;
+ auto& SF = FD._p;
if ( not FD.occurrences.empty() ) // closing while dialog is in matching state
if ( GTK_RESPONSE_YES !=
@@ -414,13 +403,14 @@ wSFFD_configure_event_cb( GtkWidget *widget,
GdkEventConfigure *event,
gpointer userdata)
{
- if ( event->type == GDK_CONFIGURE ) {
- auto& SF = *(SScoringFacility*)userdata;
- int marijke = gtk_widget_get_allocated_width( (GtkWidget*)SF.swSFFDThing);
- SF.find_dialog.set_thing_da_width( marijke);
- SF.find_dialog.set_field_da_width( marijke);
- }
- return FALSE;
+ auto& FD = *(SScoringFacility::SPatternsDialog*)userdata;
+
+ if ( event->type == GDK_CONFIGURE ) {
+ int marijke = gtk_widget_get_allocated_width( (GtkWidget*)FD.swSFFDThing);
+ FD.set_thing_da_width( marijke);
+ FD.set_field_da_width( marijke);
+ }
+ return FALSE;
}
} // extern "C"
diff --git a/src/ui/sf/d/phasediff-construct.cc b/src/ui/sf/d/phasediff-construct.cc
index 8f8b3e4..fb81861 100644
--- a/src/ui/sf/d/phasediff-construct.cc
+++ b/src/ui/sf/d/phasediff-construct.cc
@@ -1,4 +1,27 @@
- // ------- wPhaseDiff
+/*
+ * File name: ui/sf/d/phasediff-construct.cc
+ * Project: Aghermann
+ * Author: Andrei Zavada <johnhommer at gmail.com>
+ * Initial version: 2013-01-25
+ *
+ * Purpose: scoring facility Patterns widget construction
+ *
+ * License: GPL
+ */
+
+#include <stdexcept>
+#include "phasediff.hh"
+
+using namespace std;
+
+aghui::SPhasediffDialogWidgets::
+SPhasediffDialogWidgets (SScoringFacility& SF)
+{
+ builder = gtk_builder_new();
+ if ( !gtk_builder_add_from_resource( builder, "/org/gtk/aghermann/sf-patterns.glade", NULL) )
+ throw runtime_error( "Failed to load SF::patterns glade resource");
+ gtk_builder_connect_signals( builder, NULL);
+
if ( !(AGH_GBGETOBJ (GtkDialog, wSFPD)) ||
!(AGH_GBGETOBJ (GtkDrawingArea, daSFPD)) ||
!(AGH_GBGETOBJ (GtkComboBox, eSFPDChannelA)) ||
@@ -9,11 +32,11 @@
throw runtime_error ("Failed to construct SF widgets (11)");
gtk_combo_box_set_model_properly(
- eSFPDChannelA, _p.mEEGChannels);
+ eSFPDChannelA, SF._p.mEEGChannels);
eSFPDChannelA_changed_cb_handler_id =
G_CONNECT_1 (eSFPDChannelA, changed);
- gtk_combo_box_set_model_properly( eSFPDChannelB, _p.mEEGChannels);
+ gtk_combo_box_set_model_properly( eSFPDChannelB, SF._p.mEEGChannels);
eSFPDChannelB_changed_cb_handler_id =
G_CONNECT_1 (eSFPDChannelB, changed);
@@ -26,3 +49,9 @@
G_CONNECT_2 (eSFPDSmooth, value, changed);
G_CONNECT_1 (wSFPD, show);
G_CONNECT_1 (wSFPD, hide);
+}
+
+// Local Variables:
+// Mode: c++
+// indent-tabs-mode: 8
+// End:
diff --git a/src/ui/sf/d/phasediff.cc b/src/ui/sf/d/phasediff.cc
index 4eec6d5..4acff20 100644
--- a/src/ui/sf/d/phasediff.cc
+++ b/src/ui/sf/d/phasediff.cc
@@ -1,6 +1,5 @@
-// ;-*-C++-*-
/*
- * File name: ui/sf/sf-phasediff.cc
+ * File name: ui/sf/d/phasediff.cc
* Project: Aghermann
* Author: Andrei Zavada <johnhommer at gmail.com>
* Initial version: 2011-01-29
@@ -12,7 +11,7 @@
#include "common/lang.hh"
#include "ui/misc.hh"
-#include "sf.hh"
+#include "phasediff.hh"
using namespace std;
@@ -20,14 +19,15 @@ aghui::SScoringFacility::SPhasediffDialog&
aghui::SScoringFacility::phasediff_d()
{
if ( not _phasediff_d )
- _phasediff_d = new SPhasediffDialog(*this);
+ _phasediff_d = new SScoringFacility::SPhasediffDialog(*this);
return *_phasediff_d;
}
aghui::SScoringFacility::SPhasediffDialog::
SPhasediffDialog (aghui::SScoringFacility& parent)
- : channel1 (nullptr),
+ : SPhasediffDialogWidgets (parent),
+ channel1 (nullptr),
channel2 (nullptr),
use_original_signal (false),
from (1.), upto (2.),
@@ -43,7 +43,7 @@ SPhasediffDialog (aghui::SScoringFacility& parent)
aghui::SScoringFacility::SPhasediffDialog::
~SPhasediffDialog ()
{
- gtk_widget_destroy( (GtkWidget*)_p.wSFPD);
+ gtk_widget_destroy( (GtkWidget*)wSFPD);
}
@@ -243,4 +243,7 @@ draw( cairo_t* cr, int wd, int ht)
}
-// eof
+// Local Variables:
+// Mode: c++
+// indent-tabs-mode: 8
+// End:
diff --git a/src/ui/sf/d/phasediff.hh b/src/ui/sf/d/phasediff.hh
index 8001452..d2ebbcd 100644
--- a/src/ui/sf/d/phasediff.hh
+++ b/src/ui/sf/d/phasediff.hh
@@ -1,37 +1,33 @@
- struct SPhasediffDialog {
- DELETE_DEFAULT_METHODS (SPhasediffDialog);
+/*
+ * File name: ui/sf/d/phasediff.hh
+ * Project: Aghermann
+ * Author: Andrei Zavada <johnhommer at gmail.com>
+ * Initial version: 2013-01-24
+ *
+ * Purpose: scoring facility Phasediff child dialog
+ *
+ * License: GPL
+ */
- SPhasediffDialog (SScoringFacility&);
- ~SPhasediffDialog ();
+#ifndef _AGH_UI_SF_PHASEDIFF_H
+#define _AGH_UI_SF_PHASEDIFF_H
- const SChannel
- *channel1,
- *channel2;
- bool use_original_signal;
- float from,
- upto;
+#include "ui/sf/sf.hh"
- unsigned
- bwf_order,
- scope;
- float display_scale;
+#if HAVE_CONFIG_H && !defined(VERSION)
+# include "config.h"
+#endif
- valarray<TFloat>
- course;
- size_t smooth_side;
- void update_course();
+using namespace std;
- const SChannel* channel_from_cbox( GtkComboBox *cbox);
- void preselect_channel( GtkComboBox *cbox, const char *ch);
+namespace aghui {
- void draw( cairo_t* cr, int wd, int ht);
+struct SPhasediffDialogWidgets {
- bool suspend_draw;
-
- SScoringFacility&
- _p;
- };
+ SPhasediffDialogWidgets (SScoringFacility&);
+ ~SPhasediffDialogWidgets ();
+ GtkBuilder *builder;
// phasediff dialog
GtkDialog
@@ -48,4 +44,64 @@
gulong
eSFPDChannelA_changed_cb_handler_id,
eSFPDChannelB_changed_cb_handler_id;
+};
+
+struct SScoringFacility::SPhasediffDialog
+ : public SPhasediffDialogWidgets {
+
+ DELETE_DEFAULT_METHODS (SPhasediffDialog);
+
+ SPhasediffDialog (SScoringFacility&);
+ ~SPhasediffDialog ();
+
+ const SScoringFacility::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 SScoringFacility::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;
+};
+
+} // namespace aghui
+
+extern "C" {
+void eSFPDChannelA_changed_cb( GtkComboBox*, gpointer);
+void eSFPDChannelB_changed_cb( GtkComboBox*, gpointer);
+gboolean daSFPD_draw_cb( GtkWidget*, cairo_t*, gpointer);
+gboolean daSFPD_scroll_event_cb( GtkWidget*, GdkEventScroll*, gpointer);
+void eSFPDChannelA_changed_cb( GtkComboBox*, gpointer);
+void eSFPDChannelB_changed_cb( GtkComboBox*, gpointer);
+void eSFPDFreqFrom_value_changed_cb( GtkSpinButton*, gpointer);
+void eSFPDBandwidth_value_changed_cb( GtkSpinButton*, gpointer);
+void eSFPDSmooth_value_changed_cb( GtkScaleButton*, gdouble, gpointer);
+void wSFPD_show_cb( GtkWidget*, gpointer);
+void wSFPD_hide_cb( GtkWidget*, gpointer);
+}
+
+
+#endif // _AGH_UI_SF_PHASEDIFF_H
+// Local Variables:
+// Mode: c++
+// indent-tabs-mode: 8
+// End:
diff --git a/src/ui/sf/d/phasediff_cb.cc b/src/ui/sf/d/phasediff_cb.cc
index 7821d11..786db83 100644
--- a/src/ui/sf/d/phasediff_cb.cc
+++ b/src/ui/sf/d/phasediff_cb.cc
@@ -12,7 +12,7 @@
#include "common/lang.hh"
#include "ui/misc.hh"
-#include "sf.hh"
+#include "phasediff.hh"
using namespace std;
using namespace aghui;
@@ -22,15 +22,16 @@ extern "C" {
gboolean
daSFPD_draw_cb( GtkWidget *wid, cairo_t *cr, gpointer userdata)
{
- auto& SF = *(SScoringFacility*)userdata;
- auto& PD = SF.phasediff_dialog;
+ auto& PD = *(SScoringFacility::SPhasediffDialog*)userdata;
if ( PD.suspend_draw )
return TRUE;
- aghui::SBusyBlock bb (PD._p.wSFPD);
+ aghui::SBusyBlock bb (PD.wSFPD);
- PD.draw( cr, gtk_widget_get_allocated_width( wid), gtk_widget_get_allocated_height( wid));
+ PD.draw( cr,
+ gtk_widget_get_allocated_width( wid),
+ gtk_widget_get_allocated_height( wid));
return TRUE;
}
@@ -39,8 +40,7 @@ daSFPD_draw_cb( GtkWidget *wid, cairo_t *cr, gpointer userdata)
gboolean
daSFPD_scroll_event_cb( GtkWidget *wid, GdkEventScroll *event, gpointer userdata)
{
- auto& SF = *(SScoringFacility*)userdata;
- auto& PD = SF.phasediff_dialog;
+ auto& PD = *(SScoringFacility::SPhasediffDialog*)userdata;
switch ( event->direction ) {
case GDK_SCROLL_UP:
@@ -63,8 +63,7 @@ daSFPD_scroll_event_cb( GtkWidget *wid, GdkEventScroll *event, gpointer userdata
void
eSFPDChannelA_changed_cb( GtkComboBox *cbox, gpointer userdata)
{
- auto& SF = *(SScoringFacility*)userdata;
- auto& PD = SF.phasediff_dialog;
+ auto& PD = *(SScoringFacility::SPhasediffDialog*)userdata;
if ( PD.suspend_draw )
return;
@@ -72,14 +71,13 @@ eSFPDChannelA_changed_cb( GtkComboBox *cbox, gpointer userdata)
PD.channel1 = PD.channel_from_cbox( cbox);
PD.update_course();
- gtk_widget_queue_draw( (GtkWidget*)PD._p.daSFPD);
+ gtk_widget_queue_draw( (GtkWidget*)PD.daSFPD);
}
void
eSFPDChannelB_changed_cb( GtkComboBox *cbox, gpointer userdata)
{
- auto& SF = *(SScoringFacility*)userdata;
- auto& PD = SF.phasediff_dialog;
+ auto& PD = *(SScoringFacility::SPhasediffDialog*)userdata;
if ( PD.suspend_draw )
return;
@@ -87,7 +85,7 @@ eSFPDChannelB_changed_cb( GtkComboBox *cbox, gpointer userdata)
PD.channel2 = PD.channel_from_cbox( cbox);
PD.update_course();
- gtk_widget_queue_draw( (GtkWidget*)PD._p.daSFPD);
+ gtk_widget_queue_draw( (GtkWidget*)PD.daSFPD);
}
@@ -97,25 +95,23 @@ void
eSFPDFreqFrom_value_changed_cb( GtkSpinButton *spinbutton,
gpointer userdata)
{
- auto& SF = *(SScoringFacility*)userdata;
- auto& PD = SF.phasediff_dialog;
+ auto& PD = *(SScoringFacility::SPhasediffDialog*)userdata;
if ( PD.suspend_draw )
return;
PD.from = gtk_spin_button_get_value( spinbutton);
- PD.upto = PD.from + gtk_spin_button_get_value( PD._p.eSFPDBandwidth);
+ PD.upto = PD.from + gtk_spin_button_get_value( PD.eSFPDBandwidth);
PD.update_course();
- gtk_widget_queue_draw( (GtkWidget*)PD._p.daSFPD);
+ gtk_widget_queue_draw( (GtkWidget*)PD.daSFPD);
}
void
eSFPDBandwidth_value_changed_cb( GtkSpinButton *spinbutton,
gpointer userdata)
{
- auto& SF = *(SScoringFacility*)userdata;
- auto& PD = SF.phasediff_dialog;
+ auto& PD = *(SScoringFacility::SPhasediffDialog*)userdata;
if ( PD.suspend_draw )
return;
@@ -123,7 +119,7 @@ eSFPDBandwidth_value_changed_cb( GtkSpinButton *spinbutton,
PD.upto = PD.from + gtk_spin_button_get_value( spinbutton);
PD.update_course();
- gtk_widget_queue_draw( (GtkWidget*)PD._p.daSFPD);
+ gtk_widget_queue_draw( (GtkWidget*)PD.daSFPD);
}
@@ -133,8 +129,7 @@ eSFPDSmooth_value_changed_cb( GtkScaleButton *b,
gdouble v,
gpointer userdata)
{
- auto& SF = *(SScoringFacility*)userdata;
- auto& PD = SF.phasediff_dialog;
+ auto& PD = *(SScoringFacility::SPhasediffDialog*)userdata;
snprintf_buf( "Smooth: %zu",
PD.smooth_side = v);
@@ -142,7 +137,7 @@ eSFPDSmooth_value_changed_cb( GtkScaleButton *b,
if ( PD.suspend_draw )
return;
- gtk_widget_queue_draw( (GtkWidget*)PD._p.daSFPD);
+ gtk_widget_queue_draw( (GtkWidget*)PD.daSFPD);
}
@@ -150,37 +145,36 @@ eSFPDSmooth_value_changed_cb( GtkScaleButton *b,
void
wSFPD_show_cb( GtkWidget *wid, gpointer userdata)
{
- auto& SF = *(SScoringFacility*)userdata;
- auto& PD = SF.phasediff_dialog;
+ auto& PD = *(SScoringFacility::SPhasediffDialog*)userdata;
+ auto& SF = PD._p;
PD.suspend_draw = true;
- if ( gtk_combo_box_get_active( PD._p.eSFPDChannelA) == -1 ||
- gtk_combo_box_get_active( PD._p.eSFPDChannelB) == -1 ) {
- PD.channel1 = &*PD._p.channels.begin();
- PD.channel2 = &*next(PD._p.channels.begin());
- PD.preselect_channel( PD._p.eSFPDChannelA, PD.channel1->name);
- PD.preselect_channel( PD._p.eSFPDChannelB, PD.channel2->name);
+ if ( gtk_combo_box_get_active( PD.eSFPDChannelA) == -1 ||
+ gtk_combo_box_get_active( PD.eSFPDChannelB) == -1 ) {
+ PD.channel1 = &*SF.channels.begin();
+ PD.channel2 = &*next(SF.channels.begin());
+ PD.preselect_channel( PD.eSFPDChannelA, PD.channel1->name);
+ PD.preselect_channel( PD.eSFPDChannelB, PD.channel2->name);
} else {
// they have been nicely set before, havent't they
// PD.channel1 = PD.channel_from_cbox( eSFPDChannelA);
// PD.channel2 = PD.channel_from_cbox( eSFPDChannelB);
}
- gtk_spin_button_set_value( PD._p.eSFPDFreqFrom, PD.from);
- gtk_spin_button_set_value( PD._p.eSFPDBandwidth, PD.upto - PD.from);
+ gtk_spin_button_set_value( PD.eSFPDFreqFrom, PD.from);
+ gtk_spin_button_set_value( PD.eSFPDBandwidth, PD.upto - PD.from);
snprintf_buf( "Smooth: %zu", PD.smooth_side);
- gtk_button_set_label( (GtkButton*)PD._p.eSFPDSmooth, __buf__);
+ gtk_button_set_label( (GtkButton*)PD.eSFPDSmooth, __buf__);
PD.update_course();
PD.suspend_draw = false;
- gtk_widget_queue_draw( (GtkWidget*)PD._p.daSFPD);
+ gtk_widget_queue_draw( (GtkWidget*)PD.daSFPD);
}
void
wSFPD_hide_cb( GtkWidget *wid, gpointer userdata)
{
- auto& SF = *(SScoringFacility*)userdata;
- auto& PD = SF.phasediff_dialog;
+ auto& PD = *(SScoringFacility::SPhasediffDialog*)userdata;
gtk_toggle_button_set_active( PD._p.bSFShowPhaseDiffDialog, FALSE);
}
diff --git a/src/ui/sf/ica.cc b/src/ui/sf/ica.cc
index 462f602..d922ddc 100644
--- a/src/ui/sf/ica.cc
+++ b/src/ui/sf/ica.cc
@@ -16,7 +16,6 @@
#include "ica/ica.hh"
#include "ui/misc.hh"
#include "sf.hh"
-#include "sf_cb.hh"
using namespace std;
diff --git a/src/ui/sf/ica_cb.cc b/src/ui/sf/ica_cb.cc
index bc04275..aad1164 100644
--- a/src/ui/sf/ica_cb.cc
+++ b/src/ui/sf/ica_cb.cc
@@ -12,7 +12,7 @@
#include "ui/misc.hh"
#include "sf.hh"
-#include "sf-widgets.hh"
+#include "widgets.hh"
using namespace std;
using namespace aghui;
diff --git a/src/ui/sf/montage.cc b/src/ui/sf/montage.cc
index 3e3d0c9..d0545b1 100644
--- a/src/ui/sf/montage.cc
+++ b/src/ui/sf/montage.cc
@@ -15,6 +15,7 @@
#include "common/lang.hh"
#include "ui/misc.hh"
#include "sf.hh"
+#include "d/patterns.hh"
using namespace std;
@@ -254,7 +255,7 @@ draw_page( cairo_t *cr,
if ( selection_end - selection_start > 5 ) { // don't mark end if selection is too short
// signal properties
- auto& Pp = _p.find_dialog.Pp2;
+ auto& Pp = _p.patterns_d().Pp2;
if ( draw_selection_envelope ) {
valarray<TFloat>
selection {(draw_filtered_signal
diff --git a/src/ui/sf/montage_cb.cc b/src/ui/sf/montage_cb.cc
index a7d6cc8..1ca55ee 100644
--- a/src/ui/sf/montage_cb.cc
+++ b/src/ui/sf/montage_cb.cc
@@ -15,7 +15,8 @@
#include "ui/misc.hh"
#include "sf.hh"
-#include "sf_cb.hh"
+#include "d/artifacts.hh"
+#include "d/filters.hh"
using namespace std;
@@ -124,7 +125,7 @@ daSFMontage_button_press_event_cb( GtkWidget *wid, GdkEventButton *event, gpoint
break;
case 3:
Ch->update_power_check_menu_items();
- gtk_menu_popup( SF.iiSFPaower,
+ gtk_menu_popup( SF.iiSFPower,
NULL, NULL, NULL, NULL, 3, event->time);
break;
}
@@ -627,7 +628,7 @@ iSFPageFilter_activate_cb( GtkMenuItem *menuitem, gpointer userdata)
FD.P = H.filters;
FD.W_V.up();
- snprintf_buf( "<big>Filters for channel <b>%s</b></big>", FDusing_channel->name);
+ snprintf_buf( "<big>Filters for channel <b>%s</b></big>", SF.using_channel->name);
gtk_label_set_markup( FD.lSFFilterCaption,
__buf__);
diff --git a/src/ui/sf/sf.hh b/src/ui/sf/sf.hh
index 6d6a712..3ecc19a 100644
--- a/src/ui/sf/sf.hh
+++ b/src/ui/sf/sf.hh
@@ -520,8 +520,7 @@ class SScoringFacility
SPhasediffDialog
*_phasediff_d;
SArtifactsDialog
- *_artifact_d;
- void populate_mSFADProfiles();
+ *_artifacts_d;
public:
// menu support
@@ -709,6 +708,131 @@ SScoringFacility::channel_y0( const T& h) const
} // namespace aghui
+
+extern "C" {
+
+//gboolean wScoringFacility_configure_event_cb( GtkWidget*, GdkEventConfigure*, gpointer);
+gboolean daSFMontage_configure_event_cb( GtkWidget*, GdkEventConfigure*, gpointer);
+
+gboolean daSFMontage_draw_cb( GtkWidget*, cairo_t*, gpointer);
+gboolean daSFMontage_button_press_event_cb( GtkWidget*, GdkEventButton*, gpointer);
+gboolean daSFMontage_button_release_event_cb( GtkWidget*, GdkEventButton*, gpointer);
+gboolean daSFMontage_motion_notify_event_cb( GtkWidget*, GdkEventMotion*, gpointer);
+gboolean daSFMontage_leave_notify_event_cb( GtkWidget*, GdkEventMotion*, gpointer);
+gboolean daSFMontage_scroll_event_cb( GtkWidget*, GdkEventScroll*, gpointer);
+
+void eSFPageSize_changed_cb( GtkComboBox*, gpointer);
+void eSFCurrentPage_value_changed_cb( GtkSpinButton*, gpointer);
+
+void bSFScoreClear_clicked_cb( GtkButton*, gpointer);
+void bSFScoreNREM1_clicked_cb( GtkButton*, gpointer);
+void bSFScoreNREM2_clicked_cb( GtkButton*, gpointer);
+void bSFScoreNREM3_clicked_cb( GtkButton*, gpointer);
+void bSFScoreNREM4_clicked_cb( GtkButton*, gpointer);
+void bSFScoreREM_clicked_cb ( GtkButton*, gpointer);
+void bSFScoreWake_clicked_cb ( GtkButton*, gpointer);
+
+void eSFCurrentPos_clicked_cb( GtkButton*, gpointer);
+void bSFForward_clicked_cb( GtkButton*, gpointer);
+void bSFBack_clicked_cb( GtkButton*, gpointer);
+void bSFGotoPrevUnscored_clicked_cb( GtkButton*, gpointer);
+void bSFGotoNextUnscored_clicked_cb( GtkButton*, gpointer);
+void bSFGotoPrevArtifact_clicked_cb( GtkButton*, gpointer);
+void bSFGotoNextArtifact_clicked_cb( GtkButton*, gpointer);
+void bSFDrawCrosshair_toggled_cb( GtkToggleButton*, gpointer);
+void bSFShowFindDialog_toggled_cb( GtkToggleButton*, gpointer);
+void bSFShowPhaseDiffDialog_toggled_cb( GtkToggleButton*, gpointer);
+void bSFRunICA_clicked_cb( GtkButton*, gpointer);
+//void bSFResetMontage_clicked_cb( GtkButton*, gpointer);
+
+
+void eSFICARemixMode_changed_cb( GtkComboBox*, gpointer);
+void eSFICANonlinearity_changed_cb( GtkComboBox*, gpointer);
+void eSFICAApproach_changed_cb( GtkComboBox*, gpointer);
+void eSFICAFineTune_toggled_cb( GtkCheckButton*, gpointer);
+void eSFICAStabilizationMode_toggled_cb( GtkCheckButton*, gpointer);
+void eSFICAa1_value_changed_cb( GtkSpinButton*, gpointer);
+void eSFICAa2_value_changed_cb( GtkSpinButton*, gpointer);
+void eSFICAmu_value_changed_cb( GtkSpinButton*, gpointer);
+void eSFICAepsilon_value_changed_cb( GtkSpinButton*, gpointer);
+void eSFICASampleSizePercent_value_changed_cb( GtkSpinButton*, gpointer);
+void eSFICANofICs_value_changed_cb( GtkSpinButton*, gpointer);
+void eSFICAEigVecFirst_value_changed_cb( GtkSpinButton*, gpointer);
+void eSFICAEigVecLast_value_changed_cb( GtkSpinButton*, gpointer);
+void eSFICAMaxIterations_value_changed_cb( GtkSpinButton*, gpointer);
+void bSFICATry_clicked_cb( GtkButton*, gpointer);
+void bSFICAPreview_toggled_cb( GtkToggleButton*, gpointer);
+void bSFICAShowMatrix_toggled_cb( GtkToggleButton*, gpointer);
+void wSFICAMatrix_hide_cb( GtkWidget*, gpointer);
+void bSFICAApply_clicked_cb( GtkButton*, gpointer);
+void bSFICACancel_clicked_cb( GtkButton*, gpointer);
+
+
+void bSFAccept_clicked_cb( GtkToolButton*, gpointer);
+void iSFAcceptAndTakeNext_activate_cb( GtkMenuItem*, gpointer);
+
+void iSFPageShowOriginal_toggled_cb( GtkCheckMenuItem*, gpointer);
+void iSFPageShowProcessed_toggled_cb( GtkCheckMenuItem*, gpointer);
+void iSFPageUseResample_toggled_cb( GtkCheckMenuItem*, gpointer);
+void iSFPageDrawZeroline_toggled_cb( GtkCheckMenuItem*, gpointer);
+void iSFPageArtifactsDetect_activate_cb( GtkMenuItem*, gpointer);
+void iSFPageArtifactsMarkFlat_activate_cb( GtkMenuItem*, gpointer);
+void iSFPageArtifactsClear_activate_cb( GtkMenuItem*, gpointer);
+void iSFPageFilter_activate_cb( GtkMenuItem*, gpointer);
+void iSFPageSaveChannelAsSVG_activate_cb( GtkMenuItem*, gpointer);
+void iSFPageSaveMontageAsSVG_activate_cb( GtkMenuItem*, gpointer);
+void iSFPageExportSignal_activate_cb( GtkMenuItem*, gpointer);
+void iSFPageUseThisScale_activate_cb( GtkMenuItem*, gpointer);
+void iSFPageClearArtifacts_activate_cb( GtkMenuItem*, gpointer);
+void iSFPageHide_activate_cb( GtkMenuItem*, gpointer);
+void iSFPageHidden_select_cb( GtkMenuItem*, gpointer);
+void iSFPageHidden_deselect_cb( GtkMenuItem*, gpointer);
+void iSFPageShowHidden_activate_cb( GtkMenuItem*, gpointer);
+void iSFPageSpaceEvenly_activate_cb( GtkMenuItem*, gpointer);
+void iSFPageLocateSelection_activate_cb( GtkMenuItem*, gpointer);
+void iSFPageDrawPSDProfile_toggled_cb( GtkCheckMenuItem*, gpointer);
+void iSFPageDrawPSDSpectrum_toggled_cb( GtkCheckMenuItem*, gpointer);
+void iSFPageDrawSWUProfile_toggled_cb( GtkCheckMenuItem*, gpointer);
+void iSFPageDrawMCProfile_toggled_cb( GtkCheckMenuItem*, gpointer);
+void iSFPageDrawEMGProfile_toggled_cb( GtkCheckMenuItem*, gpointer);
+
+void iSFPageSelectionDrawCourse_toggled_cb( GtkCheckMenuItem*, gpointer);
+void iSFPageSelectionDrawEnvelope_toggled_cb( GtkCheckMenuItem*, gpointer);
+void iSFPageSelectionDrawDzxdf_toggled_cb( GtkCheckMenuItem*, gpointer);
+
+void iSFICAPageMapIC_activate_cb( GtkRadioMenuItem*, gpointer);
+
+void iSFPageAnnotationDelete_activate_cb( GtkMenuItem*, gpointer);
+void iSFPageAnnotationEdit_activate_cb( GtkMenuItem*, gpointer);
+
+void iSFPageSelectionMarkArtifact_activate_cb( GtkMenuItem*, gpointer);
+void iSFPageSelectionClearArtifact_activate_cb( GtkMenuItem*, gpointer);
+void iSFPageSelectionFindPattern_activate_cb( GtkMenuItem*, gpointer);
+void iSFPageSelectionAnnotate_activate_cb( GtkMenuItem*, gpointer);
+
+void iSFPowerExportRange_activate_cb( GtkMenuItem*, gpointer);
+void iSFPowerExportAll_activate_cb( GtkMenuItem*, gpointer);
+void iSFPowerSmooth_toggled_cb( GtkCheckMenuItem*, gpointer);
+void iSFPowerDrawBands_toggled_cb( GtkCheckMenuItem*, gpointer);
+void iSFPowerUseThisScale_activate_cb( GtkMenuItem*, gpointer);
+void iSFPowerAutoscale_toggled_cb( GtkCheckMenuItem*, gpointer);
+
+gboolean daSFHypnogram_draw_cb( GtkWidget*, cairo_t*, gpointer);
+gboolean daSFHypnogram_button_press_event_cb( GtkWidget*, GdkEventButton*, gpointer);
+gboolean daSFHypnogram_button_release_event_cb( GtkWidget*, GdkEventButton*, gpointer);
+gboolean daSFHypnogram_motion_notify_event_cb( GtkWidget*, GdkEventMotion*, gpointer);
+
+void iSFScoreAssist_activate_cb( GtkMenuItem*, gpointer);
+void iSFScoreImport_activate_cb( GtkMenuItem*, gpointer);
+void iSFScoreExport_activate_cb( GtkMenuItem*, gpointer);
+void iSFScoreClear_activate_cb( GtkMenuItem*, gpointer);
+
+gboolean wSF_delete_event_cb( GtkWidget*, GdkEvent*, gpointer);
+
+} // extern "C"
+
+
+
#endif
// eof
diff --git a/src/ui/sf/sf_cb.hh b/src/ui/sf/sf_cb.hh
deleted file mode 100644
index 873ce9d..0000000
--- a/src/ui/sf/sf_cb.hh
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * File name: ui/sf/sf_cb.hh
- * Project: Aghermann
- * Author: Andrei Zavada <johnhommer at gmail.com>
- * Initial version: 2012-06-25
- *
- * Purpose: forward declarations of SF callbacks
- *
- * License: GPL
- */
-
-#ifndef _AGH_UI_SF_CB_H
-#define _AGH_UI_SF_CB_H
-
-#include <gtk/gtk.h>
-
-#if HAVE_CONFIG_H && !defined(VERSION)
-# include "config.h"
-#endif
-
-extern "C" {
-
-//gboolean wScoringFacility_configure_event_cb( GtkWidget*, GdkEventConfigure*, gpointer);
-gboolean daSFMontage_configure_event_cb( GtkWidget*, GdkEventConfigure*, gpointer);
-
-gboolean daSFMontage_draw_cb( GtkWidget*, cairo_t*, gpointer);
-gboolean daSFMontage_button_press_event_cb( GtkWidget*, GdkEventButton*, gpointer);
-gboolean daSFMontage_button_release_event_cb( GtkWidget*, GdkEventButton*, gpointer);
-gboolean daSFMontage_motion_notify_event_cb( GtkWidget*, GdkEventMotion*, gpointer);
-gboolean daSFMontage_leave_notify_event_cb( GtkWidget*, GdkEventMotion*, gpointer);
-gboolean daSFMontage_scroll_event_cb( GtkWidget*, GdkEventScroll*, gpointer);
-
-void eSFPageSize_changed_cb( GtkComboBox*, gpointer);
-void eSFCurrentPage_value_changed_cb( GtkSpinButton*, gpointer);
-
-void bSFScoreClear_clicked_cb( GtkButton*, gpointer);
-void bSFScoreNREM1_clicked_cb( GtkButton*, gpointer);
-void bSFScoreNREM2_clicked_cb( GtkButton*, gpointer);
-void bSFScoreNREM3_clicked_cb( GtkButton*, gpointer);
-void bSFScoreNREM4_clicked_cb( GtkButton*, gpointer);
-void bSFScoreREM_clicked_cb ( GtkButton*, gpointer);
-void bSFScoreWake_clicked_cb ( GtkButton*, gpointer);
-
-void eSFCurrentPos_clicked_cb( GtkButton*, gpointer);
-void bSFForward_clicked_cb( GtkButton*, gpointer);
-void bSFBack_clicked_cb( GtkButton*, gpointer);
-void bSFGotoPrevUnscored_clicked_cb( GtkButton*, gpointer);
-void bSFGotoNextUnscored_clicked_cb( GtkButton*, gpointer);
-void bSFGotoPrevArtifact_clicked_cb( GtkButton*, gpointer);
-void bSFGotoNextArtifact_clicked_cb( GtkButton*, gpointer);
-void bSFDrawCrosshair_toggled_cb( GtkToggleButton*, gpointer);
-void bSFShowFindDialog_toggled_cb( GtkToggleButton*, gpointer);
-void bSFShowPhaseDiffDialog_toggled_cb( GtkToggleButton*, gpointer);
-void bSFRunICA_clicked_cb( GtkButton*, gpointer);
-//void bSFResetMontage_clicked_cb( GtkButton*, gpointer);
-
-
-void eSFICARemixMode_changed_cb( GtkComboBox*, gpointer);
-void eSFICANonlinearity_changed_cb( GtkComboBox*, gpointer);
-void eSFICAApproach_changed_cb( GtkComboBox*, gpointer);
-void eSFICAFineTune_toggled_cb( GtkCheckButton*, gpointer);
-void eSFICAStabilizationMode_toggled_cb( GtkCheckButton*, gpointer);
-void eSFICAa1_value_changed_cb( GtkSpinButton*, gpointer);
-void eSFICAa2_value_changed_cb( GtkSpinButton*, gpointer);
-void eSFICAmu_value_changed_cb( GtkSpinButton*, gpointer);
-void eSFICAepsilon_value_changed_cb( GtkSpinButton*, gpointer);
-void eSFICASampleSizePercent_value_changed_cb( GtkSpinButton*, gpointer);
-void eSFICANofICs_value_changed_cb( GtkSpinButton*, gpointer);
-void eSFICAEigVecFirst_value_changed_cb( GtkSpinButton*, gpointer);
-void eSFICAEigVecLast_value_changed_cb( GtkSpinButton*, gpointer);
-void eSFICAMaxIterations_value_changed_cb( GtkSpinButton*, gpointer);
-void bSFICATry_clicked_cb( GtkButton*, gpointer);
-void bSFICAPreview_toggled_cb( GtkToggleButton*, gpointer);
-void bSFICAShowMatrix_toggled_cb( GtkToggleButton*, gpointer);
-void wSFICAMatrix_hide_cb( GtkWidget*, gpointer);
-void bSFICAApply_clicked_cb( GtkButton*, gpointer);
-void bSFICACancel_clicked_cb( GtkButton*, gpointer);
-
-
-void bSFAccept_clicked_cb( GtkToolButton*, gpointer);
-void iSFAcceptAndTakeNext_activate_cb( GtkMenuItem*, gpointer);
-
-void iSFPageShowOriginal_toggled_cb( GtkCheckMenuItem*, gpointer);
-void iSFPageShowProcessed_toggled_cb( GtkCheckMenuItem*, gpointer);
-void iSFPageUseResample_toggled_cb( GtkCheckMenuItem*, gpointer);
-void iSFPageDrawZeroline_toggled_cb( GtkCheckMenuItem*, gpointer);
-void iSFPageArtifactsDetect_activate_cb( GtkMenuItem*, gpointer);
-void iSFPageArtifactsMarkFlat_activate_cb( GtkMenuItem*, gpointer);
-void iSFPageArtifactsClear_activate_cb( GtkMenuItem*, gpointer);
-void iSFPageFilter_activate_cb( GtkMenuItem*, gpointer);
-void iSFPageSaveChannelAsSVG_activate_cb( GtkMenuItem*, gpointer);
-void iSFPageSaveMontageAsSVG_activate_cb( GtkMenuItem*, gpointer);
-void iSFPageExportSignal_activate_cb( GtkMenuItem*, gpointer);
-void iSFPageUseThisScale_activate_cb( GtkMenuItem*, gpointer);
-void iSFPageClearArtifacts_activate_cb( GtkMenuItem*, gpointer);
-void iSFPageHide_activate_cb( GtkMenuItem*, gpointer);
-void iSFPageHidden_select_cb( GtkMenuItem*, gpointer);
-void iSFPageHidden_deselect_cb( GtkMenuItem*, gpointer);
-void iSFPageShowHidden_activate_cb( GtkMenuItem*, gpointer);
-void iSFPageSpaceEvenly_activate_cb( GtkMenuItem*, gpointer);
-void iSFPageLocateSelection_activate_cb( GtkMenuItem*, gpointer);
-void iSFPageDrawPSDProfile_toggled_cb( GtkCheckMenuItem*, gpointer);
-void iSFPageDrawPSDSpectrum_toggled_cb( GtkCheckMenuItem*, gpointer);
-void iSFPageDrawSWUProfile_toggled_cb( GtkCheckMenuItem*, gpointer);
-void iSFPageDrawMCProfile_toggled_cb( GtkCheckMenuItem*, gpointer);
-void iSFPageDrawEMGProfile_toggled_cb( GtkCheckMenuItem*, gpointer);
-
-void iSFPageSelectionDrawCourse_toggled_cb( GtkCheckMenuItem*, gpointer);
-void iSFPageSelectionDrawEnvelope_toggled_cb( GtkCheckMenuItem*, gpointer);
-void iSFPageSelectionDrawDzxdf_toggled_cb( GtkCheckMenuItem*, gpointer);
-
-
-
-void iSFICAPageMapIC_activate_cb( GtkRadioMenuItem*, gpointer);
-
-void iSFPageAnnotationDelete_activate_cb( GtkMenuItem*, gpointer);
-void iSFPageAnnotationEdit_activate_cb( GtkMenuItem*, gpointer);
-
-void iSFPageSelectionMarkArtifact_activate_cb( GtkMenuItem*, gpointer);
-void iSFPageSelectionClearArtifact_activate_cb( GtkMenuItem*, gpointer);
-void iSFPageSelectionFindPattern_activate_cb( GtkMenuItem*, gpointer);
-void iSFPageSelectionAnnotate_activate_cb( GtkMenuItem*, gpointer);
-
-void iSFPowerExportRange_activate_cb( GtkMenuItem*, gpointer);
-void iSFPowerExportAll_activate_cb( GtkMenuItem*, gpointer);
-void iSFPowerSmooth_toggled_cb( GtkCheckMenuItem*, gpointer);
-void iSFPowerDrawBands_toggled_cb( GtkCheckMenuItem*, gpointer);
-void iSFPowerUseThisScale_activate_cb( GtkMenuItem*, gpointer);
-void iSFPowerAutoscale_toggled_cb( GtkCheckMenuItem*, gpointer);
-
-gboolean daSFHypnogram_draw_cb( GtkWidget*, cairo_t*, gpointer);
-gboolean daSFHypnogram_button_press_event_cb( GtkWidget*, GdkEventButton*, gpointer);
-gboolean daSFHypnogram_button_release_event_cb( GtkWidget*, GdkEventButton*, gpointer);
-gboolean daSFHypnogram_motion_notify_event_cb( GtkWidget*, GdkEventMotion*, gpointer);
-
-void iSFScoreAssist_activate_cb( GtkMenuItem*, gpointer);
-void iSFScoreImport_activate_cb( GtkMenuItem*, gpointer);
-void iSFScoreExport_activate_cb( GtkMenuItem*, gpointer);
-void iSFScoreClear_activate_cb( GtkMenuItem*, gpointer);
-
-void eSFFDPatternList_changed_cb( GtkComboBox*, gpointer);
-void eSFFDChannel_changed_cb( GtkComboBox*, gpointer);
-gboolean daSFFDField_draw_cb( GtkWidget*, cairo_t*, gpointer);
-gboolean daSFFDField_scroll_event_cb( GtkWidget*, GdkEventScroll*, gpointer);
-gboolean daSFFDField_button_press_event_cb( GtkWidget*, GdkEventButton*, gpointer);
-gboolean daSFFDField_motion_notify_event_cb( GtkWidget*, GdkEventMotion*, gpointer);
-gboolean daSFFDThing_draw_cb( GtkWidget*, cairo_t*, gpointer);
-gboolean daSFFDThing_scroll_event_cb( GtkWidget*, GdkEventScroll*, gpointer);
-void bSFFDSearch_clicked_cb( GtkButton*, gpointer);
-void bSFFDAgain_clicked_cb( GtkButton*, gpointer);
-void bSFFDProfileSave_clicked_cb( GtkButton*, gpointer);
-void bSFFDProfileDiscard_clicked_cb( GtkButton*, gpointer);
-void bSFFDProfileRevert_clicked_cb( GtkButton*, gpointer);
-void eSFFD_any_pattern_value_changed_cb( GtkSpinButton*, gpointer);
-void eSFFD_any_criteria_value_changed_cb( GtkSpinButton*, gpointer);
-void wSFFD_show_cb( GtkWidget*, gpointer);
-void wSFFD_hide_cb( GtkWidget*, gpointer);
-gboolean wSFFD_configure_event_cb( GtkWidget*, GdkEventConfigure*, gpointer);
-
-void eSFPDChannelA_changed_cb( GtkComboBox*, gpointer);
-void eSFPDChannelB_changed_cb( GtkComboBox*, gpointer);
-gboolean daSFPD_draw_cb( GtkWidget*, cairo_t*, gpointer);
-gboolean daSFPD_scroll_event_cb( GtkWidget*, GdkEventScroll*, gpointer);
-void eSFPDChannelA_changed_cb( GtkComboBox*, gpointer);
-void eSFPDChannelB_changed_cb( GtkComboBox*, gpointer);
-void eSFPDFreqFrom_value_changed_cb( GtkSpinButton*, gpointer);
-void eSFPDBandwidth_value_changed_cb( GtkSpinButton*, gpointer);
-void eSFPDSmooth_value_changed_cb( GtkScaleButton*, gdouble, gpointer);
-void wSFPD_show_cb( GtkWidget*, gpointer);
-void wSFPD_hide_cb( GtkWidget*, gpointer);
-
-gboolean wSF_delete_event_cb( GtkWidget*, GdkEvent*, gpointer);
-
-} // extern "C"
-
-#endif // _AGH_UI_SF_
-
-
-// Local Variables:
-// indent-tabs-mode: 8
-// End:
diff --git a/src/ui/sf/widgets.hh b/src/ui/sf/widgets.hh
index 2af83da..c11d2df 100644
--- a/src/ui/sf/widgets.hh
+++ b/src/ui/sf/widgets.hh
@@ -22,10 +22,11 @@ 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 ();
~SScoringFacilityWidgets ();
+ GtkBuilder *builder;
+
// storage
GtkListStore
*mSFScoringPageSize,
--
Sleep experiment manager
More information about the debian-med-commit
mailing list