2002-07-20 Jean-Marc Lasgouttes <lasgouttes@freesurf.fr>
+ * ui/default.ui: cleanup after change of Menu syntax. the
+ foo_nobuffer menus are gone
+
* bind/sv_menus.bind:
* bind/sciword.bind: remove some cruft
# This is the default LyX user interface definition file. -*- text -*-
-# The syntax should be straightforward enough. The menubar
-# "main_nobuffer" (if it exists) is used when there is no buffer open;
-# otherwise, the menubar "main" is used.
+# The syntax should be straightforward enough.
Menuset
- Menubar "main_nobuffer"
- Submenu "File|F" "file_nobuffer"
- Submenu "Edit|E" "edit_nobuffer"
- Submenu "Help|H" "help"
- End
-
- Menubar "main"
+ Menubar
Submenu "File|F" "file"
Submenu "Edit|E" "edit"
Submenu "Insert|I" "insert"
#
# FILE MENU
#
- Menu "file_nobuffer"
- Item "New|N" "buffer-new"
- Item "New from Template...|T" "buffer-new-template"
- Item "Open...|O" "file-open"
- Separator
- Submenu "Import|I" "file_import"
- Separator
- Item "Exit|x" "lyx-quit"
- Separator
- Lastfiles
- End
Menu "file"
Item "New|N" "buffer-new"
#
# EDIT MENU
#
- Menu "edit_nobuffer"
- Item "Preferences|P" "dialog-preferences"
- Item "Reconfigure|R" "reconfigure"
- End
Menu "edit"
Item "Undo|U" "undo"
2002-07-20 Jean-Marc Lasgouttes <lasgouttes@freesurf.fr>
+ * MenuBackend.C (getMenubar): new method: return the menubar of
+ this menu set
+ (read): treat differently reading of menu and menubar (in
+ particular, the menubar has no name now)
+ (Menu::menubar): remove
+
* lyxfunc.C (dispatch): add 'done' message to minibuffer when
saving is finished
break;
default:
- lex.printError("menubar::read: "
+ lex.printError("Menu::read: "
"Unknown menu tag: `$$Token'");
break;
}
lex.printTable(lyxerr);
bool quit = false;
- bool menubar = false;
while (lex.isOK() && !quit) {
switch (lex.lex()) {
case md_menubar:
- menubar = true;
- // fallback to md_menu
+ menubar_.read(lex);
+ break;
case md_menu: {
lex.next(true);
string const name = lex.getString();
if (hasMenu(name)) {
- if (getMenu(name).menubar() == menubar) {
- getMenu(name).read(lex);
- } else {
- lex.printError("Cannot append to menu `$$Token' unless it is of the same type");
- return;
- }
+ getMenu(name).read(lex);
} else {
- Menu menu(name, menubar);
+ Menu menu(name);
menu.read(lex);
add(menu);
}
- menubar = false;
break;
}
case md_endmenuset:
documents.add(MenuItem(MenuItem::Documents));
add(documents);
- Menu main("main", true);
- main
- .add(MenuItem(MenuItem::Submenu, _("File|F"), "file"))
+ menubar_.add(MenuItem(MenuItem::Submenu, _("File|F"), "file"))
.add(MenuItem(MenuItem::Submenu, _("Edit|E"), "edit"))
.add(MenuItem(MenuItem::Submenu,
_("Documents|D"), "documents"));
- add(main);
-
- Menu main_nobuffer("main_nobuffer", true);
- main_nobuffer.add(MenuItem(MenuItem::Submenu, _("File|F"), "file"));
- add(main_nobuffer);
-
- if (lyxerr.debugging(Debug::GUI)) {
- for (const_iterator cit = begin();
- cit != end() ; ++cit)
- lyxerr << "Menu name: " << cit->name()
- << ", Menubar: " << cit->menubar()
- << endl;
- }
+
}
lyx::Assert(it != menulist_.end());
return (*it);
}
+
+
+Menu const & MenuBackend::getMenubar() const
+{
+ return menubar_;
+}
///
typedef ItemList::const_iterator const_iterator;
///
- explicit Menu(string const & name = string(), bool mb = false)
- : menubar_(mb), name_(name) {}
+ explicit Menu(string const & name = string())
+ : name_(name) {}
///
Menu & add(MenuItem const &);
///
*/
void expand(Menu & tomenu, Buffer *) const;
///
- bool menubar() const { return menubar_; }
- ///
string const & name() const { return name_; }
///
bool empty() const { return items_.empty(); }
///
ItemList items_;
///
- bool menubar_;
- ///
string name_;
};
Menu & getMenu (string const &);
///
Menu const & getMenu (string const &) const;
- //
+ ///
+ Menu const & getMenubar() const;
+ ///
bool empty() const { return menulist_.empty(); }
///
const_iterator begin() const {
private:
///
MenuList menulist_;
+ ///
+ Menu menubar_;
};
///
+2002-07-20 Jean-Marc Lasgouttes <lasgouttes@freesurf.fr>
+
+ * LyXView.C (updateMenubar): remove code to set different menubars
+
+ * Menubar.C (set): remove
+
2002-07-19 John Levon <moz@compsoc.man.ac.uk>
* LyXView.h:
void LyXView::updateMenubar()
{
- if (!view()->buffer() && menubackend.hasMenu("main_nobuffer")) {
- menubar_->set("main_nobuffer");
- } else {
- menubar_->set("main");
- }
-
menubar_->update();
}
}
-void Menubar::set(string const & name)
-{
- pimpl_->set(name);
-}
-
-
void Menubar::openByName(string const & name)
{
pimpl_->openByName(name);
Menubar(LyXView * o, MenuBackend const &);
///
~Menubar();
- ///
- void set(string const &);
/// Opens a top-level submenu given its name
void openByName(string const &);
/// update the state of the menuitems
+2002-07-20 Jean-Marc Lasgouttes <lasgouttes@freesurf.fr>
+
+ * Menubar_pimpl.[Ch]: remove support for multiple menubars
+
2002-07-20 John Levon <moz@compsoc.man.ac.uk>
* XMiniBuffer.h:
Menubar::Pimpl::Pimpl(LyXView * view, MenuBackend const & mb)
- : owner_(static_cast<XFormsView*>(view)), menubackend_(&mb),
- current_group_(0)
+ : owner_(static_cast<XFormsView*>(view)), menubackend_(&mb)
{
- for (MenuBackend::const_iterator menu = menubackend_->begin();
- menu != menubackend_->end() ; ++menu) {
- if (menu->menubar()) {
- FL_OBJECT * group = fl_bgn_group();
- makeMenubar(*menu);
- fl_end_group();
- fl_hide_object(group);
- lyxerr[Debug::GUI]
- << "Menubar::Pimpl::Pimpl: "
- << "creating and hiding group " << group
- << " for menubar " << menu->name() << endl;
- menubarmap_[menu->name()] = group;
- }
- }
+ makeMenubar(menubackend_->getMenubar());
}
}
-void Menubar::Pimpl::set(string const & menu_name)
+void Menubar::Pimpl::update()
{
- if (menu_name == current_menu_name_)
- return;
-
- MenubarMap::iterator mbit = menubarmap_.find(menu_name);
-
- if (mbit == menubarmap_.end()) {
- lyxerr << "ERROR:set: Unknown menu `" << menu_name
- << "'" << endl;
- return;
- }
-
- if (current_group_) {
- lyxerr[Debug::GUI] << " hiding group "
- << current_group_ << endl;
- fl_hide_object(current_group_);
- }
-
- lyxerr[Debug::GUI] << " showing group "
- << mbit->second << endl;
- fl_show_object(mbit->second);
- current_menu_name_ = menu_name;
- current_group_ = mbit->second;
- lyxerr[Debug::GUI] << "Menubar::Pimpl::set: Menubar set."
- << endl;
+ // nothing yet
}
void Menubar::Pimpl::openByName(string const & name)
{
- if (menubackend_->getMenu(current_menu_name_).hasSubmenu(name)) {
- for (ButtonList::const_iterator cit = buttonlist_.begin();
- cit != buttonlist_.end(); ++cit) {
- if ((*cit)->item_->submenu() == name) {
- MenuCallback((*cit)->obj_, 1);
- return;
- }
+ for (ButtonList::const_iterator cit = buttonlist_.begin();
+ cit != buttonlist_.end(); ++cit) {
+ if ((*cit)->item_->submenu() == name) {
+ MenuCallback((*cit)->obj_, 1);
+ return;
}
}
+
lyxerr << "Menubar::Pimpl::openByName: menu "
<< name << " not found" << endl;
}
public:
///
Pimpl(LyXView *, MenuBackend const &);
- ///
- void set(string const &);
+
+ /// update the state of the menuitems
+ void update();
+
/// Opens a top-level submenu given its name
void openByName(string const &);
///
static void MenuCallback(FL_OBJECT *, long);
+private:
///
void add_toc(int menu, string const & extra_label,
std::vector<int> & smn, Window win);
string const & menuname,
std::vector<int> & smn);
- /// update the state of the menuitems
- void update() {}
-private:
//
void makeMenubar(Menu const &menu);
typedef std::vector<boost::shared_ptr<ItemInfo> > ButtonList;
///
ButtonList buttonlist_;
-
- ///
- typedef std::map<string, FL_OBJECT *> MenubarMap;
- ///
- MenubarMap menubarmap_;
- ///
- string current_menu_name_;
- ///
- FL_OBJECT * current_group_;
};
#endif