]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/gnome/FormToc.C
Clean-up of the button controller.
[lyx.git] / src / frontends / gnome / FormToc.C
index 6d0827c361f456f1d96d730fc16f2604f5a5f182..31efa078bef60e19f673d35ca5536da08f882080 100644 (file)
@@ -1,4 +1,3 @@
-// -*- C++ -*-
 /* This file is part of
  * ====================================================== 
  *
@@ -23,6 +22,7 @@
 #include "LyXView.h"
 #include "form_toc.h"
 #include "lyxtext.h"
+#include "lyxfunc.h"
 
 extern "C" {
 #include "diatoc_interface.h"
@@ -36,16 +36,15 @@ extern "C" {
 #include <gtk--/menu.h>
 #include <gtk--/menuitem.h>
 
-using SigC::bind;
-
 FormToc::FormToc(LyXView * lv, Dialogs * d)
-  : lv_(lv), d_(d), inset_(0), u_(0), h_(0), ih_(0), dialog_(0), ignore_callback_(false)
+  : lv_(lv), d_(d), inset_(0), u_(0), h_(0), ih_(0), dialog_(0),
+    ignore_callback_(false)
 {
   // let the dialog be shown
   // These are permanent connections so we won't bother
   // storing a copy because we won't be disconnecting.
-  d->showTOC.connect(slot(this, &FormToc::showInset));
-  d->createTOC.connect(slot(this, &FormToc::createInset));
+  d->showTOC.connect(SigC::slot(this, &FormToc::showInset));
+  d->createTOC.connect(SigC::slot(this, &FormToc::createInset));
 }
 
 
@@ -56,10 +55,10 @@ FormToc::~FormToc()
 
 void FormToc::showInset( InsetCommand * const inset )
 {
-  if( dialog_!=0 || inset == 0 ) return;
+  if ( dialog_!=0 || inset == 0 ) return;
   
   inset_ = inset;
-  ih_ = inset_->hide.connect(slot(this, &FormToc::hide));
+  ih_ = inset_->hideDialog.connect(SigC::slot(this, &FormToc::hide));
   
   params = inset->params();
   show();
@@ -98,31 +97,31 @@ void FormToc::show()
       choice_->get_menu()->items().clear();
       
       e = manage( new Gtk::MenuItem(_("Table of Contents")) );
-      e->activate.connect(bind<Buffer::TocType>(slot(this, &FormToc::changeList), Buffer::TOC_TOC));
+      e->activate.connect(SigC::bind<Buffer::TocType>(SigC::slot(this, &FormToc::changeList), Buffer::TOC_TOC));
       choice_->get_menu()->append( *e );
 
       e = manage( new Gtk::MenuItem(_("List of Figures")) );
-      e->activate.connect(bind<Buffer::TocType>(slot(this, &FormToc::changeList), Buffer::TOC_LOF));
+      e->activate.connect(SigC::bind<Buffer::TocType>(SigC::slot(this, &FormToc::changeList), Buffer::TOC_LOF));
       choice_->get_menu()->append( *e );
 
       e = manage( new Gtk::MenuItem(_("List of Tables")) );
-      e->activate.connect(bind<Buffer::TocType>(slot(this, &FormToc::changeList), Buffer::TOC_LOT));
+      e->activate.connect(SigC::bind<Buffer::TocType>(SigC::slot(this, &FormToc::changeList), Buffer::TOC_LOT));
       choice_->get_menu()->append( *e );
 
       e = manage( new Gtk::MenuItem(_("List of Algorithms")) );
-      e->activate.connect(bind<Buffer::TocType>(slot(this, &FormToc::changeList), Buffer::TOC_LOA));
+      e->activate.connect(SigC::bind<Buffer::TocType>(SigC::slot(this, &FormToc::changeList), Buffer::TOC_LOA));
       choice_->get_menu()->append( *e );
 
       // wrap buttons and connect slots
       b_refresh = Gtk::wrap( GTK_BUTTON( lookup_widget(pd, "button_refresh") ) );
       b_close   = Gtk::wrap( GTK_BUTTON( lookup_widget(pd, "button_close") ) );
       
-      b_refresh->clicked.connect(bind<bool>(slot(this, &FormToc::updateSlot),false));
+      b_refresh->clicked.connect(SigC::bind<bool>(SigC::slot(this, &FormToc::updateSlot),false));
       b_close->clicked.connect(dialog_->destroy.slot());
-      dialog_->destroy.connect(slot(this, &FormToc::free));
+      dialog_->destroy.connect(SigC::slot(this, &FormToc::free));
 
-      u_ = d_->updateBufferDependent.connect(slot(this, &FormToc::updateSlot));
-      h_ = d_->hideBufferDependent.connect(slot(this, &FormToc::hide));
+      u_ = d_->updateBufferDependent.connect(SigC::slot(this, &FormToc::updateSlot));
+      h_ = d_->hideBufferDependent.connect(SigC::slot(this, &FormToc::hide));
 
       if (!dialog_->is_visible()) dialog_->show_all();
 
@@ -213,42 +212,40 @@ void FormToc::updateSlot(bool)
 
 void FormToc::apply(Buffer::TocItem tg)
 {
+#if 0  
+  // Doesn't compile anymore...
   if (!lv_->view()->available()) return;
-  
+
   lv_->view()->beforeChange();
   lv_->view()->text->SetCursor( lv_->view(), tg.par, 0 );
   lv_->view()->text->sel_cursor = lv_->view()->text->cursor;
   lv_->view()->update(BufferView::SELECT|BufferView::FITCUR);
+#endif
+
+  string const str = tg.str;
+  lv_->getLyXFunc()->Dispatch(LFUN_GOTO_PARAGRAPH, str);
 }
 
 void FormToc::changeList(Buffer::TocType type)
 {
-  if (!ignore_callback_)
-    {
-      switch (type) {
-      case Buffer::TOC_TOC :
-       {
-         params.setCmdName("tableofcontents");
-         break;
+       if (!ignore_callback_) {
+               switch (type) {
+               case Buffer::TOC_TOC :
+                       params.setCmdName("tableofcontents");
+                       break;
+               case Buffer::TOC_LOF :
+                       params.setCmdName("listoffigures");
+                       break;
+               case Buffer::TOC_LOT :
+                       params.setCmdName("listoftabels");
+                       break;
+               case Buffer::TOC_LOA :
+                       params.setCmdName("listofalgorithms");
+                       break;
+               };
+
+               updateSlot();
        }
-      case Buffer::TOC_LOF :
-       {
-         params.setCmdName("listoffigures");
-         break;
-       }
-      case Buffer::TOC_LOT :
-       {
-         params.setCmdName("listoftabels");
-         break;
-       }
-      case Buffer::TOC_LOA :
-       {
-         params.setCmdName("listofalgorithms");
-         break;
-       }
-      };
-      updateSlot();
-    }
 }
 
 void FormToc::hide()