]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/gnome/Menubar_pimpl.C
Clean-up of the button controller.
[lyx.git] / src / frontends / gnome / Menubar_pimpl.C
index 1d627e116386548ee18f754bcd64b15cf12d9452..e5eb7d8c8ce3e52d5f7be174e4f3a414f4211c8a 100644 (file)
@@ -1,4 +1,3 @@
-// -*- C++ -*-
 /* This file is part of
  * ====================================================== 
  * 
 
 #include <gtk--/menu.h>
 
-using SigC::slot;
-using SigC::bind;
-
 using std::endl;
 
 // temporary solution for LyXView
 extern GLyxAppWin * mainAppWin;
 
 // Some constants
-extern kb_keymap * toplevel_keymap;
+extern boost::scoped_ptr<kb_keymap> toplevel_keymap;
 extern LyXAction lyxaction;
 extern BufferList bufferlist;
 extern LastFiles * lastfiles; 
@@ -66,7 +62,7 @@ Menubar::Pimpl::~Pimpl()
 void Menubar::Pimpl::set(string const & menu_name) 
 {
   // if (current_menu_name_ != menu_name)  // disabled until Lastfiles and Documents are added dynamically to menu
-    {
+       //{
       current_menu_name_ = menu_name;
 
       // clean up the lists
@@ -90,20 +86,26 @@ void Menubar::Pimpl::set(string const & menu_name)
       // update state of the items
       update();
       updateAllLists();
-    }
+      //}
 }
 
 void Menubar::Pimpl::updateAllLists()
 {
+#ifdef WITH_WARNINGS
+#warning Implement me! (be 20010324)
+#endif
+#if 0
   // update lists
   if (toc_.size() > 0)
     {
       vector<Buffer::TocItem> toclist = (owner_->view()->buffer()->getTocList())[Buffer::TOC_TOC];
       updateList(&toclist, &toc_);
     }
+#endif
 }
 
 int const max_number_of_items = 25;
+
 void Menubar::Pimpl::updateList(vector<Buffer::TocItem> * toclist, vector<ListsHolder> * pgui) 
 {
   vector<ListsHolder> & gui = *pgui;
@@ -116,7 +118,7 @@ void Menubar::Pimpl::updateList(vector<Buffer::TocItem> * toclist, vector<ListsH
       string label;
 
       menu.push_back(Gnome::UI::Item(Gnome::UI::Icon(GNOME_STOCK_MENU_REFRESH),
-                                    _("Refresh"), slot(this, &Menubar::Pimpl::updateAllLists)));
+                                    _("Refresh"), SigC::slot(this, &Menubar::Pimpl::updateAllLists)));
 
       if (toclist->size() > max_number_of_items)
        composeTocUIInfo(menu, *toclist, toclist->begin(), 0);
@@ -130,7 +132,7 @@ void Menubar::Pimpl::updateList(vector<Buffer::TocItem> * toclist, vector<ListsH
              label = string(4*(*it).depth,' ')+(*it).str;
              
              menu.push_back(Gnome::UI::Item(label,
-                                            bind<Buffer::TocItem>(slot(this, &Menubar::Pimpl::callbackToc), (*it)),
+                                            SigC::bind<Buffer::TocItem>(SigC::slot(this, &Menubar::Pimpl::callbackToc), (*it)),
                                             label));
            }
        }
@@ -157,7 +159,7 @@ Menubar::Pimpl::composeTocUIInfo(vector<Gnome::UI::Info> & menu,
        {
          label = (*it).str;
          menu.push_back(Gnome::UI::Item(label,
-                                      bind<Buffer::TocItem>(slot(this, &Menubar::Pimpl::callbackToc), (*it)),
+                                      SigC::bind<Buffer::TocItem>(SigC::slot(this, &Menubar::Pimpl::callbackToc), (*it)),
                                         label));
        }
       else
@@ -167,7 +169,7 @@ Menubar::Pimpl::composeTocUIInfo(vector<Gnome::UI::Info> & menu,
            {
              label = (*it).str;
              submenu.push_back(Gnome::UI::Item(label,
-                                               bind<Buffer::TocItem>(slot(this, &Menubar::Pimpl::callbackToc), (*it)),
+                                               SigC::bind<Buffer::TocItem>(SigC::slot(this, &Menubar::Pimpl::callbackToc), (*it)),
                                                label));
              ++it;    
            }
@@ -191,12 +193,16 @@ void Menubar::Pimpl::callback(int action)
 
 void Menubar::Pimpl::callbackToc(Buffer::TocItem tg)
 {
+#if 0 
   if (!owner_->view()->available()) return;
   
   owner_->view()->beforeChange();
   owner_->view()->text->SetCursor( owner_->view(), tg.par, 0 );
   owner_->view()->text->sel_cursor = owner_->view()->text->cursor;
   owner_->view()->update(BufferView::SELECT|BufferView::FITCUR);
+#endif
+
+  owner_->getLyXFunc()->Dispatch(LFUN_GOTO_PARAGRAPH, tg.str);
 }
 
 void Menubar::Pimpl::composeUIInfo(string const & menu_name, vector<Gnome::UI::Info> & Menus, string rootpath)
@@ -229,7 +235,7 @@ void Menubar::Pimpl::composeUIInfo(string const & menu_name, vector<Gnome::UI::I
        LyXFunc::func_status flag = owner_->getLyXFunc()->getStatus(item.action());
 
        Gnome::UI::Info gitem;
-       SigC::Slot0<void> cback = bind<int>(slot(this, &Menubar::Pimpl::callback),item.action());
+       SigC::Slot0<void> cback = SigC::bind<int>(SigC::slot(this, &Menubar::Pimpl::callback),item.action());
 
        {
          using namespace Gnome::MenuItems;
@@ -242,7 +248,7 @@ void Menubar::Pimpl::composeUIInfo(string const & menu_name, vector<Gnome::UI::I
            action = static_cast<kb_action>(ac);
 
          switch(action) {
-         case LFUN_MENUOPEN:
+         case LFUN_FILE_OPEN:
            gitem = Open(cback);
            break;
          case LFUN_QUIT:
@@ -254,7 +260,7 @@ void Menubar::Pimpl::composeUIInfo(string const & menu_name, vector<Gnome::UI::I
          case LFUN_MENUWRITE:
            gitem = Save(cback);
            break;
-         case LFUN_MENUWRITEAS:
+         case LFUN_WRITEAS:
            gitem = SaveAs(cback);
            break;
          case LFUN_BUFFER_PRINT:
@@ -359,9 +365,9 @@ void Menubar::Pimpl::connectWidgetToAction(GnomeUIInfo * guinfo)
     {
       if ( ( guinfo->type == GnomeUIInfoType(GNOME_APP_UI_ITEM) ||
             guinfo->type == GnomeUIInfoType(GNOME_APP_UI_TOGGLEITEM) ) &&
-          guinfo->moreinfo != NULL )
+          guinfo->moreinfo != 0 )
        {
-         (*((void(*)(void *, void *))(guinfo->moreinfo)))(NULL, guinfo->user_data);
+         (*((void(*)(void *, void *))(guinfo->moreinfo)))(0, guinfo->user_data);
          wid_act_.push_back( GtkWidgetToAction( guinfo->widget, action_ ) );
        }
       else if ( guinfo->type == GnomeUIInfoType(GNOME_APP_UI_SUBTREE) ||