The following commit has been merged in the master branch:
commit 028104e398f37a9fe48b9d95c9c9e668cbb8b7da
Author: Andrei Zavada <[email protected]>
Date:   Mon Jan 14 18:53:06 2013 +0200

    patterns WIP

diff --git a/configure.ac b/configure.ac
index c89e809..2bdf1dd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -17,13 +17,13 @@ AC_PROG_CXX([$CXX])
 AC_LANG([C++])
 AC_OPENMP()
 
-dnl Check for c++0x features
-AC_DEFUN([AC_CXX_STDCPP0X_FEATURES],
-[AC_CACHE_CHECK(whether $CXX has all required c++0x features,
-ac_cv_cxx_cpp0x_features,
+dnl Check for c++11 features
+AC_DEFUN([AC_CXX_STDCPP11_FEATURES],
+[AC_CACHE_CHECK(whether $CXX has all required c++11 features,
+ac_cv_cxx_cpp11_features,
 [AC_LANG([C++])
  old_CXX=$CXX
- CXX="$CXX -std=c++0x"
+ CXX="$CXX -std=c++11"
  AC_TRY_RUN([
     #include <vector>
     #include <algorithm>
@@ -39,14 +39,14 @@ ac_cv_cxx_cpp0x_features,
       return 0;
     }
  ],
- ac_cv_cxx_cpp0x_features=yes, ac_cv_cxx_cpp0x_features=no,
- ac_cv_cxx_cpp0x_features=yes)
+ ac_cv_cxx_cpp11_features=yes, ac_cv_cxx_cpp11_features=no,
+ ac_cv_cxx_cpp11_features=yes)
  CXX=$old_CXX
 ])
 ])
-AC_CXX_STDCPP0X_FEATURES()
-test $ac_cv_cxx_cpp0x_features = no && \
-   AC_MSG_ERROR([g++ >= 4.6 is required to build $PACKAGE as we must use 
-std=c++0x your C++ compiler doesn't seem to support], 1)
+AC_CXX_STDCPP11_FEATURES()
+test $ac_cv_cxx_cpp11_features = no && \
+   AC_MSG_ERROR([g++ >= 4.6 is required to build $PACKAGE as we must use 
-std=c++11 features your compiler doesn't seem to support], 1)
 
 dnl AC_CXX_HAVE_STL # redundant: we check for STL implicitly in 
AC_CXX_STDCPP0X_FEATURES
 
diff --git a/data/sf.glade b/data/sf.glade
index 78b072f..a914cd6 100644
--- a/data/sf.glade
+++ b/data/sf.glade
@@ -1550,7 +1550,7 @@
               </packing>
             </child>
             <child>
-              <object class="GtkButton" id="bPatternFindPrevious">
+              <object class="GtkButton" id="bPatternGotoPrevious">
                 <property name="label" translatable="yes">_Previous</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
@@ -1566,7 +1566,7 @@
               </packing>
             </child>
             <child>
-              <object class="GtkButton" id="bPatternFindNext">
+              <object class="GtkButton" id="bPatternGotoNext">
                 <property name="label" translatable="yes">_Next</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
@@ -2178,6 +2178,9 @@
                       <placeholder/>
                     </child>
                     <child>
+                      <placeholder/>
+                    </child>
+                    <child>
                       <object class="GtkLabel" id="label177">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
@@ -2209,6 +2212,9 @@
                     <child>
                       <placeholder/>
                     </child>
+                    <child>
+                      <placeholder/>
+                    </child>
                   </object>
                   <packing>
                     <property name="expand">False</property>
@@ -2225,12 +2231,12 @@
                       <placeholder/>
                     </child>
                     <child>
-                      <object class="GtkScrolledWindow" 
id="vpPatternSelection">
+                      <object class="GtkScrolledWindow" 
id="swPatternSelection">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="shadow_type">in</property>
                         <child>
-                          <object class="GtkViewport" id="vpPatternSelectioni">
+                          <object class="GtkViewport" id="vpPatternSelection">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
                             <property name="resize_mode">queue</property>
@@ -2253,6 +2259,44 @@
                       </packing>
                     </child>
                     <child>
+                      <object class="GtkScrolledWindow" id="swPatternField">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="shadow_type">in</property>
+                        <child>
+                          <object class="GtkViewport" id="vpPatternField">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <child>
+                              <object class="GtkDrawingArea" 
id="daPatternField">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">2</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkButton" id="bPatternSearch">
+                        <property name="label" 
translatable="yes">Search</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">True</property>
+                        <property name="focus_on_click">False</property>
+                      </object>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">3</property>
+                      </packing>
+                    </child>
+                    <child>
                       <object class="GtkLabel" id="lPatternSimilarity">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
@@ -2262,7 +2306,7 @@
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">True</property>
-                        <property name="position">2</property>
+                        <property name="position">5</property>
                       </packing>
                     </child>
                   </object>
@@ -2520,8 +2564,8 @@ on individual parameters</property>
     </child>
     <action-widgets>
       <action-widget response="-1">bPatternDismiss</action-widget>
-      <action-widget response="-1">bPatternFindPrevious</action-widget>
-      <action-widget response="-1">bPatternFindNext</action-widget>
+      <action-widget response="-1">bPatternGotoPrevious</action-widget>
+      <action-widget response="-1">bPatternGotoNext</action-widget>
     </action-widgets>
   </object>
   <object class="GtkDialog" id="wPatternName">
@@ -4742,15 +4786,15 @@ on individual parameters</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkButton" id="bScoreWake">
-                        <property name="label" translatable="yes">☺</property>
+                      <object class="GtkButton" id="bScoreClear">
+                        <property name="label" translatable="yes">⌫</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">True</property>
-                        <property name="tooltip_markup" 
translatable="yes">Wake (&lt;b&gt;w&lt;/b&gt;)</property>
+                        <property name="tooltip_markup" 
translatable="yes">Clear (&lt;b&gt;q&lt;/b&gt;)</property>
                         <property name="valign">center</property>
                         <property name="focus_on_click">False</property>
-                        <accelerator key="w" signal="activate"/>
+                        <accelerator key="q" signal="activate"/>
                       </object>
                       <packing>
                         <property name="expand">False</property>
@@ -4759,15 +4803,15 @@ on individual parameters</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkButton" id="bScoreClear">
-                        <property name="label" translatable="yes">⌫</property>
+                      <object class="GtkButton" id="bScoreWake">
+                        <property name="label" translatable="yes">☺</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">True</property>
-                        <property name="tooltip_markup" 
translatable="yes">Clear (&lt;b&gt;q&lt;/b&gt;)</property>
+                        <property name="tooltip_markup" 
translatable="yes">Wake (&lt;b&gt;w&lt;/b&gt;)</property>
                         <property name="valign">center</property>
                         <property name="focus_on_click">False</property>
-                        <accelerator key="q" signal="activate"/>
+                        <accelerator key="w" signal="activate"/>
                       </object>
                       <packing>
                         <property name="expand">False</property>
@@ -5002,17 +5046,18 @@ on individual parameters</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkToggleButton" 
id="bSFShowPhaseDiffDialog">
-                        <property name="label" translatable="yes">Δφ</property>
+                      <object class="GtkToggleButton" id="bSFShowFindDialog">
+                        <property name="label" 
translatable="yes">_Find</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">True</property>
                         <property name="has_tooltip">True</property>
-                        <property name="tooltip_markup" 
translatable="yes">Interchannel signal shift (&lt;b&gt;F4&lt;/b&gt;)</property>
-                        <property name="tooltip_text" 
translatable="yes">Interchannel signal shift (F4)</property>
+                        <property name="tooltip_markup" 
translatable="yes">Find/manage patterns (&lt;b&gt;F3&lt;/b&gt;)</property>
+                        <property name="tooltip_text" 
translatable="yes">Find/manage patterns (F3)</property>
                         <property name="valign">center</property>
+                        <property name="use_underline">True</property>
                         <property name="focus_on_click">False</property>
-                        <accelerator key="F4" signal="activate"/>
+                        <accelerator key="F3" signal="activate"/>
                       </object>
                       <packing>
                         <property name="expand">False</property>
@@ -5022,18 +5067,17 @@ on individual parameters</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkToggleButton" id="bSFShowFindDialog">
-                        <property name="label" 
translatable="yes">_Find</property>
+                      <object class="GtkToggleButton" 
id="bSFShowPhaseDiffDialog">
+                        <property name="label" translatable="yes">Δφ</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">True</property>
                         <property name="has_tooltip">True</property>
-                        <property name="tooltip_markup" 
translatable="yes">Find/manage patterns (&lt;b&gt;F3&lt;/b&gt;)</property>
-                        <property name="tooltip_text" 
translatable="yes">Find/manage patterns (F3)</property>
+                        <property name="tooltip_markup" 
translatable="yes">Interchannel signal shift (&lt;b&gt;F4&lt;/b&gt;)</property>
+                        <property name="tooltip_text" 
translatable="yes">Interchannel signal shift (F4)</property>
                         <property name="valign">center</property>
-                        <property name="use_underline">True</property>
                         <property name="focus_on_click">False</property>
-                        <accelerator key="F3" signal="activate"/>
+                        <accelerator key="F4" signal="activate"/>
                       </object>
                       <packing>
                         <property name="expand">False</property>
diff --git a/src/sigproc/patterns.ii b/src/sigproc/patterns.ii
index f51ee14..0e02d45 100644
--- a/src/sigproc/patterns.ii
+++ b/src/sigproc/patterns.ii
@@ -27,7 +27,7 @@ do_search( const valarray<T>& fenv_u,
 {
        size_t fsize = ftarget_freq.size();
        if ( inc == 0 || inc > fsize ) {
-               fprintf( stderr, "%s: bad search increment: %d\n", 
__FUNCTION__, inc);
+               fprintf( stderr, "%s: bad search increment: %zu\n", 
__FUNCTION__, inc);
                return -1;
        }
 
diff --git a/src/ui/sf/sf-construct.cc b/src/ui/sf/sf-construct.cc
index 07b8372..d7c1e53 100644
--- a/src/ui/sf/sf-construct.cc
+++ b/src/ui/sf/sf-construct.cc
@@ -383,9 +383,11 @@ SScoringFacilityWidgets (SExpDesignUI& _p)
        if ( !AGH_GBGETOBJ (GtkDialog,          wPattern) ||
             !AGH_GBGETOBJ (GtkDrawingArea,     daPatternSelection) ||
             !AGH_GBGETOBJ (GtkScrolledWindow,  vpPatternSelection) ||
-            !AGH_GBGETOBJ (GtkButton,          bPatternFindPrevious) ||
-            !AGH_GBGETOBJ (GtkButton,          bPatternFindNext) ||
-//          !AGH_GBGETOBJ (GtkButton,          bPatternDismiss) ||
+            !AGH_GBGETOBJ (GtkDrawingArea,     daPatternField) ||
+            !AGH_GBGETOBJ (GtkScrolledWindow,  vpPatternField) ||
+            !AGH_GBGETOBJ (GtkButton,          bPatternSearch) ||
+            !AGH_GBGETOBJ (GtkButton,          bPatternGotoPrevious) ||
+            !AGH_GBGETOBJ (GtkButton,          bPatternGotoNext) ||
             !AGH_GBGETOBJ (GtkButton,          bPatternSave) ||
             !AGH_GBGETOBJ (GtkButton,          bPatternDiscard) ||
             !AGH_GBGETOBJ (GtkSpinButton,      ePatternEnvTightness) ||
@@ -418,19 +420,16 @@ SScoringFacilityWidgets (SExpDesignUI& _p)
 
        G_CONNECT_1 (daPatternSelection, draw);
        G_CONNECT_2( daPatternSelection, scroll, event);
-       g_signal_connect( bPatternFindNext, "clicked",
-                         G_CALLBACK (bPatternFind_clicked_cb),
-                         this);
-       g_signal_connect( bPatternFindPrevious, "clicked",
-                         G_CALLBACK (bPatternFind_clicked_cb),
-                         this);
        G_CONNECT_1 (bPatternSave, clicked);
        G_CONNECT_1 (bPatternDiscard, clicked);
 
-       for ( auto& W : {ePatternEnvTightness, ePatternBandPassFrom, 
ePatternBandPassUpto,
-                        ePatternBandPassOrder, ePatternDZCDFStep, 
ePatternDZCDFSigma, ePatternDZCDFSmooth,
-                        // ePatternParameterA, ePatternParameterB, 
ePatternParameterC, ePatternParameterD
-                        } )
+       for ( auto& W : {bPatternGotoNext, bPatternGotoPrevious} )
+               g_signal_connect( W, "clicked",
+                                 (GCallback)bPatternGoto_clicked_cb,
+                                 this);
+       for ( auto& W : {ePatternEnvTightness,
+                        ePatternBandPassFrom, ePatternBandPassUpto, 
ePatternBandPassOrder,
+                        ePatternDZCDFStep, ePatternDZCDFSigma, 
ePatternDZCDFSmooth} )
                g_signal_connect( W, "value-changed",
                                  
(GCallback)ePattern_any_pattern_value_changed_cb,
                                  this);
diff --git a/src/ui/sf/sf-patterns.cc b/src/ui/sf/sf-patterns.cc
index c64204b..bc48b0c 100644
--- a/src/ui/sf/sf-patterns.cc
+++ b/src/ui/sf/sf-patterns.cc
@@ -41,6 +41,9 @@ SFindDialog (SScoringFacility& parent)
        W_V.reg( _p.ePatternParameterB,         &get<1>(criteria));
        W_V.reg( _p.ePatternParameterC,         &get<2>(criteria));
        W_V.reg( _p.ePatternParameterD,         &get<3>(criteria));
+
+       gtk_widget_set_visible( (GtkWidget*)_p.daPatternField, FALSE);
+       gtk_widget_set_visible( (GtkWidget*)_p.bPatternSearch, TRUE);
 }
 
 aghui::SScoringFacility::SFindDialog::
@@ -57,6 +60,52 @@ aghui::SScoringFacility::SFindDialog::
 
 
 
+void
+aghui::SScoringFacility::SFindDialog::
+search()
+{
+       if ( field_channel && thing.size() > 0 ) {
+               if ( !(Pp == Pp2) || field_channel != field_channel_saved) {
+                       Pp2 = Pp;
+                       field_channel_saved = field_channel;
+               }
+               cpattern = new pattern::CPattern<TFloat>
+                       ({thing, field_channel->samplerate()},
+                        context_before, context_after,
+                        Pp);
+               diff_line =
+                 (cpattern->do_search(
+                       field_channel->signal_envelope( Pp.env_tightness).first,
+                       field_channel->signal_envelope( 
Pp.env_tightness).second,
+                       field_channel->signal_bandpass( Pp.bwf_ffrom, 
Pp.bwf_fupto, Pp.bwf_order),
+                       field_channel->signal_dzcdf( Pp.dzcdf_step, 
Pp.dzcdf_sigma, Pp.dzcdf_smooth),
+                       increment * samplerate),
+                  cpattern->diff);
+
+               delete cpattern;
+               cpattern = nullptr;
+
+               gtk_widget_set_visible( (GtkWidget*)_p.daPatternField, TRUE);
+               gtk_widget_set_visible( (GtkWidget*)_p.bPatternSearch, FALSE);
+       }
+}
+
+
+size_t
+aghui::SScoringFacility::SFindDialog::
+find_occurrences()
+{
+       occurrences.resize(0);
+       for ( size_t i = 0; i < diff_line.size(); ++i )
+               if ( diff_line[i].good_enough( criteria) )
+                       occurrences.push_back(i);
+       return occurrences.size();
+}
+
+
+
+
+
 
 
 void
@@ -77,7 +126,7 @@ set_pattern_da_width( int width)
 
 void
 aghui::SScoringFacility::SFindDialog::
-draw( cairo_t *cr)
+draw_thing( cairo_t *cr)
 {
        if ( thing.size() == 0 ) {
                set_pattern_da_width( 200);
@@ -217,7 +266,11 @@ out:
        ;
 }
 
-
+void
+aghui::SScoringFacility::SFindDialog::
+draw_field( cairo_t *cr)
+{
+}
 
 
 void
@@ -392,54 +445,14 @@ discard_pattern( const char *label, bool do_globally)
 
 
 
-void
-aghui::SScoringFacility::SFindDialog::
-search()
-{
-       if ( field_channel && thing.size() > 0 ) {
-               if ( !(Pp == Pp2) || field_channel != field_channel_saved) {
-                       Pp2 = Pp;
-                       field_channel_saved = field_channel;
-               }
-               cpattern = new pattern::CPattern<TFloat>
-                       ({thing, field_channel->samplerate()},
-                        context_before, context_after,
-                        Pp);
-               diff_line =
-                 (cpattern->do_search(
-                       field_channel->signal_envelope( Pp.env_tightness).first,
-                       field_channel->signal_envelope( 
Pp.env_tightness).second,
-                       field_channel->signal_bandpass( Pp.bwf_ffrom, 
Pp.bwf_fupto, Pp.bwf_order),
-                       field_channel->signal_dzcdf( Pp.dzcdf_step, 
Pp.dzcdf_sigma, Pp.dzcdf_smooth),
-                       increment * samplerate),
-                  cpattern->diff);
-
-               delete cpattern;
-               cpattern = nullptr;
-       }
-}
-
-
-size_t
-aghui::SScoringFacility::SFindDialog::
-find_occurrences()
-{
-       occurrences.resize(0);
-       for ( size_t i = 0; i < diff_line.size(); ++i )
-               if ( diff_line[i].good_enough( criteria) )
-                       occurrences.push_back(i);
-       return occurrences.size();
-}
-
-
 
 
 void
 aghui::SScoringFacility::SFindDialog::
 enable_controls( bool indeed)
 {
-       gtk_widget_set_sensitive( (GtkWidget*)_p.bPatternFindNext, 
(gboolean)indeed);
-       gtk_widget_set_sensitive( (GtkWidget*)_p.bPatternFindPrevious, 
(gboolean)indeed);
+       gtk_widget_set_sensitive( (GtkWidget*)_p.bPatternGotoNext, 
(gboolean)indeed);
+       gtk_widget_set_sensitive( (GtkWidget*)_p.bPatternGotoPrevious, 
(gboolean)indeed);
        gtk_widget_set_sensitive( (GtkWidget*)_p.bPatternSave, 
(gboolean)indeed);
        gtk_widget_set_sensitive( (GtkWidget*)_p.bPatternDiscard, 
(gboolean)indeed);
 }
diff --git a/src/ui/sf/sf-patterns_cb.cc b/src/ui/sf/sf-patterns_cb.cc
index de95937..8a1b968 100644
--- a/src/ui/sf/sf-patterns_cb.cc
+++ b/src/ui/sf/sf-patterns_cb.cc
@@ -26,7 +26,18 @@ daPatternSelection_draw_cb( GtkWidget *wid, cairo_t *cr, 
gpointer userdata)
        auto& SF = *(SScoringFacility*)userdata;
        auto& FD = SF.find_dialog;
 
-       FD.draw( cr);
+       FD.draw_thing( cr);
+
+       return TRUE;
+}
+
+gboolean
+daPatternField_draw_cb( GtkWidget *wid, cairo_t *cr, gpointer userdata)
+{
+       auto& SF = *(SScoringFacility*)userdata;
+       auto& FD = SF.find_dialog;
+
+       FD.draw_field( cr);
 
        return TRUE;
 }
@@ -66,48 +77,37 @@ daPatternSelection_scroll_event_cb( GtkWidget *wid, 
GdkEventScroll *event, gpoin
 
 
 void
-bPatternFind_clicked_cb( GtkButton *button, gpointer userdata)
+bPatternSearch_clicked_cb( GtkButton *button, gpointer userdata)
 {
        auto& SF = *(SScoringFacility*)userdata;
        auto& FD = SF.find_dialog;
-       gboolean
-               go_forward = button == FD._p.bPatternFindNext;
-
-       size_t from;
-       if ( FD.last_find == (size_t)-1 )
-               from = go_forward
-                       ? FD.context_before
-                       : FD.field_channel->n_samples() - FD.pattern.size();
-       else
-               from = FD.last_find
-                       + (go_forward
-                          ? .2 * FD.samplerate
-                          : FD.pattern_size_essential());
-
-       aghui::SBusyBlock bb (FD._p.wPattern);
-       FD.W_V.down();
-       FD.Pp.criteria = FD.tolerance;
-
-       FD.search( from);
-       if ( FD.last_find == (size_t)-1 )
-               pop_ok_message( (GtkWindow*)FD._p.wPattern, "Not found", 
nullptr);
-       else { // reach up and out
-               auto& SF = FD.field_channel->_p;
-               SF.using_channel = FD.field_channel;
-               SF.using_channel->put_selection( FD.last_find, FD.last_find + 
FD.pattern_size_essential());
-               SF.suppress_redraw = true;
-               SF.set_cur_vpage(
-                       FD.last_find / FD.samplerate / SF.vpagesize());
-               SF.suppress_redraw = false;
-               SF.queue_redraw_all();
-
-               snprintf_buf( "at p. %zu (match: %4.2f, %4.2f, %4.2f, %4.2f)\n",
-                             SF.cur_vpage()+1, FD.match[0], FD.match[1], 
FD.match[2], FD.match[3]);
-               gtk_label_set_markup( FD._p.lPatternSimilarity, __buf__);
-
-               gtk_widget_queue_draw( (GtkWidget*)FD._p.lPatternSimilarity);
-               gtk_widget_queue_draw( (GtkWidget*)FD._p.daPatternSelection);
-       }
+
+       
+
+}
+
+void
+bPatternGoto_clicked_cb( GtkButton *button, gpointer userdata)
+{
+       auto& SF = *(SScoringFacility*)userdata;
+       auto& FD = SF.find_dialog;
+       bool    go_forward = button == FD._p.bPatternGotoNext;
+
+       SF.using_channel = FD.field_channel;
+
+       
+       double  next_at = 0.;
+       FAFA;
+       
+       SF.suppress_redraw = true;
+       SF.set_cur_vpage(
+               next_at / FD.samplerate / SF.vpagesize());
+       SF.suppress_redraw = false;
+       SF.queue_redraw_all();
+
+       snprintf_buf( "%zu match%s\n",
+                     FD.occurrences.size(), (FD.occurrences.size() == 1) ? "" 
: "es");
+       gtk_label_set_markup( FD._p.lPatternSimilarity, __buf__);
 }
 
 
diff --git a/src/ui/sf/sf-widgets.hh b/src/ui/sf/sf-widgets.hh
index a8fe26d..b44a95f 100644
--- a/src/ui/sf/sf-widgets.hh
+++ b/src/ui/sf/sf-widgets.hh
@@ -184,11 +184,14 @@ struct SScoringFacilityWidgets {
                *ePatternChannel,
                *ePatternList;
        GtkScrolledWindow
-               *vpPatternSelection;
+               *vpPatternSelection,
+               *vpPatternField;
        GtkDrawingArea
-               *daPatternSelection;
+               *daPatternSelection,
+               *daPatternField;
        GtkButton
-               *bPatternFindNext, *bPatternFindPrevious,
+               *bPatternSearch,
+               *bPatternGotoNext, *bPatternGotoPrevious,
                *bPatternSave, *bPatternDiscard;
        GtkSpinButton
                *ePatternEnvTightness,
diff --git a/src/ui/sf/sf.hh b/src/ui/sf/sf.hh
index 587dd79..48b5ef6 100644
--- a/src/ui/sf/sf.hh
+++ b/src/ui/sf/sf.hh
@@ -545,7 +545,8 @@ class SScoringFacility
 
              // draw
                bool    draw_details:1;
-               void draw( cairo_t*);
+               void draw_thing( cairo_t*);
+               void draw_field( cairo_t*);
                float   display_scale;
 
              // widgets
diff --git a/src/ui/sf/sf_cb.hh b/src/ui/sf/sf_cb.hh
index f80961c..94066b5 100644
--- a/src/ui/sf/sf_cb.hh
+++ b/src/ui/sf/sf_cb.hh
@@ -151,9 +151,11 @@ void iSFScoreClear_activate_cb( GtkMenuItem*, gpointer);
 
 void ePatternList_changed_cb( GtkComboBox*, gpointer);
 void ePatternChannel_changed_cb( GtkComboBox*, gpointer);
+gboolean daPatternField_draw_cb( GtkWidget*, cairo_t*, gpointer);
 gboolean daPatternSelection_draw_cb( GtkWidget*, cairo_t*, gpointer);
 gboolean daPatternSelection_scroll_event_cb( GtkWidget*, GdkEventScroll*, 
gpointer);
-void bPatternFind_clicked_cb( GtkButton*, gpointer);
+void bPatternSearch_clicked_cb( GtkButton*, gpointer);
+void bPatternGoto_clicked_cb( GtkButton*, gpointer);
 void bPatternSave_clicked_cb( GtkButton*, gpointer);
 void bPatternDiscard_clicked_cb( GtkButton*, gpointer);
 void ePattern_any_pattern_value_changed_cb( GtkSpinButton*, gpointer);

-- 
Sleep experiment manager

_______________________________________________
debian-med-commit mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/debian-med-commit

Reply via email to