[med-svn] [SCM] aghermann branch, master, updated. 4f7a3b774136ffffbaf9b05d90bd568347bc5461
andrei zavada
johnhommer at gmail.com
Fri Nov 16 00:50:35 UTC 2012
The following commit has been merged in the master branch:
commit b32ee56e23c1003be741395a8abd97f4fcfc2b2d
Author: andrei zavada <johnhommer at gmail.com>
Date: Sat Oct 27 16:12:50 2012 +0300
move some common code to ui/libcommon.cc
diff --git a/src/ui/libcommon.cc b/src/ui/libcommon.cc
index 52582d7..52731a8 100644
--- a/src/ui/libcommon.cc
+++ b/src/ui/libcommon.cc
@@ -224,6 +224,21 @@ cairo_draw_signal( cairo_t *cr, const valarray<TFloat>& V,
// gtk
+
+void
+aghui::
+gtk_combo_box_set_model_properly( GtkComboBox *cb, GtkListStore *m)
+{
+ gtk_combo_box_set_model( cb, (GtkTreeModel*)m);
+ gtk_combo_box_set_id_column( cb, 0);
+ GtkCellRenderer *r = gtk_cell_renderer_text_new();
+ gtk_cell_layout_pack_start( (GtkCellLayout*)cb, r, FALSE);
+ gtk_cell_layout_set_attributes( (GtkCellLayout*)cb, r,
+ "text", 0,
+ NULL);
+}
+
+
void
aghui::
pop_ok_message( GtkWindow *parent, const char* primary_text, const char *fmt, ...)
diff --git a/src/ui/mw/mw-construct.cc b/src/ui/mw/mw-construct.cc
index dddd2ad..dd11be2 100644
--- a/src/ui/mw/mw-construct.cc
+++ b/src/ui/mw/mw-construct.cc
@@ -177,43 +177,25 @@ SExpDesignUIWidgets ()
this);
- // ------------- eMsmtSession
- if ( !AGH_GBGETOBJ (GtkComboBox, eMsmtSession) )
+ // ------------- eMsmtSession, eMsmtChannel
+ if ( !AGH_GBGETOBJ (GtkComboBox, eMsmtSession) ||
+ !AGH_GBGETOBJ ( GtkComboBox, eMsmtChannel) )
throw runtime_error ("Failed to construct widgets");
- gtk_combo_box_set_model( eMsmtSession,
- (GtkTreeModel*)mSessions);
- gtk_combo_box_set_id_column( eMsmtSession, 0);
-
+ gtk_combo_box_set_model_properly(
+ eMsmtSession, mSessions);
eMsmtSession_changed_cb_handler_id =
g_signal_connect( eMsmtSession, "changed",
(GCallback)eMsmtSession_changed_cb,
this);
- renderer = gtk_cell_renderer_text_new();
- gtk_cell_layout_pack_start( (GtkCellLayout*)eMsmtSession, renderer, FALSE);
- gtk_cell_layout_set_attributes( (GtkCellLayout*)eMsmtSession, renderer,
- "text", 0,
- NULL);
-
- // ------------- eMsmtChannel
- if ( !AGH_GBGETOBJ ( GtkComboBox, eMsmtChannel) )
- throw runtime_error ("Failed to construct widgets");
-
- gtk_combo_box_set_model( eMsmtChannel,
- (GtkTreeModel*)mEEGChannels);
- gtk_combo_box_set_id_column( eMsmtChannel, 0);
+ gtk_combo_box_set_model_properly(
+ eMsmtChannel, mEEGChannels);
eMsmtChannel_changed_cb_handler_id =
g_signal_connect( eMsmtChannel, "changed",
(GCallback)eMsmtChannel_changed_cb,
this);
- renderer = gtk_cell_renderer_text_new();
- gtk_cell_layout_pack_start( (GtkCellLayout*)eMsmtChannel, renderer, FALSE);
- gtk_cell_layout_set_attributes( (GtkCellLayout*)eMsmtChannel, renderer,
- "text", 0,
- NULL);
-
// ------------- eMsmtProfile*
if ( !AGH_GBGETOBJ (GtkToggleButton, eMsmtProfileAutoscale) ||
!AGH_GBGETOBJ (GtkScaleButton, eMsmtProfileSmooth) ||
@@ -234,6 +216,8 @@ SExpDesignUIWidgets ()
gtk_cell_layout_set_attributes( (GtkCellLayout*)eMsmtProfileType, renderer,
"text", 0,
NULL);
+ // and when was the list store attached to it, eh?
+
g_signal_connect( eMsmtProfileType, "changed",
(GCallback)eMsmtProfileType_changed_cb,
this);
@@ -651,9 +635,10 @@ SExpDesignUIWidgets ()
gtk_widget_override_font( (GtkWidget*)lEdfImportFileInfo, font_desc);
g_object_set( lEdfImportFileInfo,
- "tabs", pango_tab_array_new_with_positions( 2, TRUE,
- PANGO_TAB_LEFT, 130,
- PANGO_TAB_LEFT, 190),
+ "tabs", pango_tab_array_new_with_positions(
+ 2, TRUE,
+ PANGO_TAB_LEFT, 130,
+ PANGO_TAB_LEFT, 190),
NULL);
g_signal_connect( eEdfImportGroupEntry,
@@ -704,6 +689,8 @@ SExpDesignUIWidgets ()
!AGH_GBGETOBJ (GtkListStore, mGlobalFiltersNotchFilter) ||
!AGH_GBGETOBJ (GtkComboBox, eGlobalFiltersNotchFilter) )
throw runtime_error ("Failed to construct widgets");
+ gtk_combo_box_set_model_properly(
+ eGlobalFiltersNotchFilter, mGlobalFiltersNotchFilter);
// ----------- wGlobalAnnotations
if ( !AGH_GBGETOBJ (GtkDialog, wGlobalAnnotations) ||
@@ -746,16 +733,8 @@ SExpDesignUIWidgets ()
!AGH_GBGETOBJ (GtkButton, bGlobalADOK) )
throw runtime_error ("Failed to construct widgets");
- gtk_combo_box_set_model( eGlobalADProfiles,
- (GtkTreeModel*)mGlobalADProfiles);
- gtk_combo_box_set_id_column( eGlobalADProfiles, 0);
-
- renderer = gtk_cell_renderer_text_new();
- gtk_cell_layout_pack_start( (GtkCellLayout*)eGlobalADProfiles, renderer, FALSE);
- gtk_cell_layout_set_attributes( (GtkCellLayout*)eGlobalADProfiles, renderer,
- "text", 0,
- NULL);
-
+ gtk_combo_box_set_model_properly(
+ eGlobalADProfiles, mGlobalADProfiles);
g_signal_connect( eGlobalADProfiles, "changed",
(GCallback)eGlobalADProfiles_changed_cb,
this);
diff --git a/src/ui/sf/sf-construct.cc b/src/ui/sf/sf-construct.cc
index e667969..41450a2 100644
--- a/src/ui/sf/sf-construct.cc
+++ b/src/ui/sf/sf-construct.cc
@@ -31,8 +31,6 @@ SScoringFacilityWidgets (SExpDesignUI& _p)
gtk_builder_connect_signals( builder, NULL);
// we do it all mostly ourself, except for some delete-event binding to gtk_true()
- GtkCellRenderer *renderer;
-
// general & montage page navigation
if ( !(AGH_GBGETOBJ (GtkWindow, wScoringFacility)) ||
!(AGH_GBGETOBJ (GtkLabel, lSFHint)) ||
@@ -65,15 +63,8 @@ SScoringFacilityWidgets (SExpDesignUI& _p)
(GCallback)wScoringFacility_delete_event_cb,
this);
- gtk_combo_box_set_model( eSFPageSize,
- (GtkTreeModel*)mScoringPageSize);
- gtk_combo_box_set_id_column( eSFPageSize, 0);
-
- renderer = gtk_cell_renderer_text_new();
- gtk_cell_layout_pack_start( (GtkCellLayout*)eSFPageSize, renderer, FALSE);
- gtk_cell_layout_set_attributes( (GtkCellLayout*)eSFPageSize, renderer,
- "text", 0,
- NULL);
+ gtk_combo_box_set_model_properly(
+ eSFPageSize, mScoringPageSize);
g_signal_connect( eSFPageSize, "changed",
(GCallback)eSFPageSize_changed_cb,
@@ -240,32 +231,9 @@ SScoringFacilityWidgets (SExpDesignUI& _p)
!(AGH_GBGETOBJ (GtkTextView, tSFICAMatrix)) )
throw runtime_error ("Failed to construct SF widgets");
- gtk_combo_box_set_model( eSFICANonlinearity,
- (GtkTreeModel*)mSFICANonlinearity);
- gtk_combo_box_set_id_column( eSFICANonlinearity, 0);
- renderer = gtk_cell_renderer_text_new();
- gtk_cell_layout_pack_start( (GtkCellLayout*)eSFICANonlinearity, renderer, FALSE);
- gtk_cell_layout_set_attributes( (GtkCellLayout*)eSFICANonlinearity, renderer,
- "text", 0,
- NULL);
-
- gtk_combo_box_set_model( eSFICAApproach,
- (GtkTreeModel*)mSFICAApproach);
- gtk_combo_box_set_id_column( eSFICAApproach, 0);
- renderer = gtk_cell_renderer_text_new();
- gtk_cell_layout_pack_start( (GtkCellLayout*)eSFICAApproach, renderer, FALSE);
- gtk_cell_layout_set_attributes( (GtkCellLayout*)eSFICAApproach, renderer,
- "text", 0,
- NULL);
-
- gtk_combo_box_set_model( eSFICARemixMode,
- (GtkTreeModel*)mSFICARemixMode);
- gtk_combo_box_set_id_column( eSFICARemixMode, 0);
- renderer = gtk_cell_renderer_text_new();
- gtk_cell_layout_pack_start( (GtkCellLayout*)eSFICARemixMode, renderer, FALSE);
- gtk_cell_layout_set_attributes( (GtkCellLayout*)eSFICARemixMode, renderer,
- "text", 0,
- NULL);
+ gtk_combo_box_set_model_properly( eSFICANonlinearity, mSFICANonlinearity);
+ gtk_combo_box_set_model_properly( eSFICAApproach, mSFICAApproach);
+ gtk_combo_box_set_model_properly( eSFICARemixMode, mSFICARemixMode);
auto tabarray = pango_tab_array_new( 20, FALSE); // 20 channels is good enough
for ( int t = 1; t < 20; ++t )
@@ -524,15 +492,8 @@ SScoringFacilityWidgets (SExpDesignUI& _p)
throw runtime_error ("Failed to construct widgets");
mAnnotationsAtCursor = gtk_list_store_new(1, G_TYPE_STRING);
- gtk_combo_box_set_model( eAnnotationSelectorWhich,
- (GtkTreeModel*)mAnnotationsAtCursor);
- gtk_combo_box_set_id_column( eAnnotationSelectorWhich, 0);
-
- renderer = gtk_cell_renderer_text_new();
- gtk_cell_layout_pack_start( (GtkCellLayout*)eAnnotationSelectorWhich, renderer, FALSE);
- gtk_cell_layout_set_attributes( (GtkCellLayout*)eAnnotationSelectorWhich, renderer,
- "text", 0,
- NULL);
+ gtk_combo_box_set_model_properly( eAnnotationSelectorWhich, mAnnotationsAtCursor);
+
// artifact detection
if ( !(AGH_GBGETOBJ (GtkDialog, wSFArtifactDetection)) ||
!(AGH_GBGETOBJ (GtkComboBox, eSFADProfiles)) ||
@@ -569,15 +530,7 @@ SScoringFacilityWidgets (SExpDesignUI& _p)
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( eSFADProfiles,
- (GtkTreeModel*)mSFADProfiles);
- gtk_combo_box_set_id_column( eSFADProfiles, 0);
-
- renderer = gtk_cell_renderer_text_new();
- gtk_cell_layout_pack_start( (GtkCellLayout*)eSFADProfiles, renderer, FALSE);
- gtk_cell_layout_set_attributes( (GtkCellLayout*)eSFADProfiles, renderer,
- "text", 0,
- NULL);
+ gtk_combo_box_set_model_properly( eSFADProfiles, mSFADProfiles);
g_signal_connect( wSFArtifactDetection, "close",
(GCallback)wSFArtifactDetection_close_cb,
@@ -643,28 +596,13 @@ SScoringFacilityWidgets (SExpDesignUI& _p)
!AGH_GBGETOBJ (GtkCheckButton, ePatternNameSaveGlobally) )
throw runtime_error ("Failed to construct SF widgets");
- gtk_combo_box_set_model( ePatternList,
- (GtkTreeModel*)mPatterns);
- gtk_combo_box_set_id_column( ePatternList, 0);
- renderer = gtk_cell_renderer_text_new();
- gtk_cell_layout_pack_start( (GtkCellLayout*)ePatternList, renderer, FALSE);
- gtk_cell_layout_set_attributes( (GtkCellLayout*)ePatternList, renderer,
- "text", 0,
- NULL);
+ gtk_combo_box_set_model_properly( ePatternList, mPatterns);
ePatternList_changed_cb_handler_id =
g_signal_connect( ePatternList, "changed",
G_CALLBACK (ePatternList_changed_cb),
this);
- gtk_combo_box_set_model( ePatternChannel,
- (GtkTreeModel*)_p.mAllChannels);
- gtk_combo_box_set_id_column( ePatternChannel, 0);
- renderer = gtk_cell_renderer_text_new();
- gtk_cell_layout_pack_start( (GtkCellLayout*)ePatternChannel, renderer, FALSE);
- gtk_cell_layout_set_attributes( (GtkCellLayout*)ePatternChannel, renderer,
- "text", 0,
- NULL);
-
+ gtk_combo_box_set_model_properly( ePatternChannel, _p.mAllChannels);
ePatternChannel_changed_cb_handler_id =
g_signal_connect( ePatternChannel, "changed",
G_CALLBACK (ePatternChannel_changed_cb),
@@ -739,14 +677,8 @@ SScoringFacilityWidgets (SExpDesignUI& _p)
!AGH_GBGETOBJ (GtkButton, bFilterOK) )
throw runtime_error ("Failed to construct SF widgets");
- gtk_combo_box_set_model( eFilterNotchFilter,
- (GtkTreeModel*)mFilterNotchFilter); // can't reuse _p.mNotchFilter
- gtk_combo_box_set_id_column( eFilterNotchFilter, 0);
- renderer = gtk_cell_renderer_text_new();
- gtk_cell_layout_pack_start( (GtkCellLayout*)eFilterNotchFilter, renderer, FALSE);
- gtk_cell_layout_set_attributes( (GtkCellLayout*)eFilterNotchFilter, renderer,
- "text", 0,
- NULL);
+ gtk_combo_box_set_model_properly(
+ eFilterNotchFilter, mFilterNotchFilter); // can't reuse _p.mNotchFilter
g_signal_connect( (GObject*)eFilterHighPassCutoff, "value-changed",
(GCallback)eFilterHighPassCutoff_value_changed_cb,
@@ -765,25 +697,14 @@ SScoringFacilityWidgets (SExpDesignUI& _p)
!(AGH_GBGETOBJ (GtkScaleButton, eSFPDSmooth)) )
throw runtime_error ("Failed to construct SF widgets");
- gtk_combo_box_set_model( eSFPDChannelA,
- (GtkTreeModel*)_p.mEEGChannels);
- renderer = gtk_cell_renderer_text_new();
- gtk_cell_layout_pack_start( (GtkCellLayout*)eSFPDChannelA, renderer, FALSE);
- gtk_cell_layout_set_attributes( (GtkCellLayout*)eSFPDChannelA, renderer,
- "text", 0,
- NULL);
+ gtk_combo_box_set_model_properly(
+ eSFPDChannelA, _p.mEEGChannels);
eSFPDChannelA_changed_cb_handler_id =
g_signal_connect( eSFPDChannelA, "changed",
G_CALLBACK (eSFPDChannelA_changed_cb),
this);
- gtk_combo_box_set_model( eSFPDChannelB,
- (GtkTreeModel*)_p.mEEGChannels);
- renderer = gtk_cell_renderer_text_new();
- gtk_cell_layout_pack_start( (GtkCellLayout*)eSFPDChannelB, renderer, FALSE);
- gtk_cell_layout_set_attributes( (GtkCellLayout*)eSFPDChannelB, renderer,
- "text", 0,
- NULL);
+ gtk_combo_box_set_model_properly( eSFPDChannelB, _p.mEEGChannels);
eSFPDChannelB_changed_cb_handler_id =
g_signal_connect( eSFPDChannelB, "changed",
G_CALLBACK (eSFPDChannelB_changed_cb),
diff --git a/src/ui/ui.hh b/src/ui/ui.hh
index 4afe8e5..635abba 100644
--- a/src/ui/ui.hh
+++ b/src/ui/ui.hh
@@ -113,6 +113,10 @@ gtk_flush()
gtk_main_iteration();
}
+void gtk_combo_box_set_model_properly( GtkComboBox*, GtkListStore*);
+
+
+
enum TDrawSignalDirection { Forward, Backward };
void
cairo_draw_signal( cairo_t *cr,
--
Sleep experiment manager
More information about the debian-med-commit
mailing list