diff --git a/libs/gtkmm2ext/gtkmm2ext/menu_elems.h b/libs/gtkmm2ext/gtkmm2ext/menu_elems.h new file mode 100644 index 0000000000..6079c3c9cc --- /dev/null +++ b/libs/gtkmm2ext/gtkmm2ext/menu_elems.h @@ -0,0 +1,42 @@ +/* menu_elems.h + * + * Copyright (C) 2017 Robin Gareus + * Copyright (C) 1998-2002 The gtkmm Development Team + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free + * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef _gtkmm2ext_menu_elems_h_ +#define _gtkmm2ext_menu_elems_h_ + +#include +#include "gtkmm2ext/visibility.h" + +namespace Gtkmm2ext { + +class LIBGTKMM2EXT_API MenuElemNoMnemonic : public Gtk::Menu_Helpers::Element +{ +public: + MenuElemNoMnemonic (const Glib::ustring& label, const CallSlot& slot); +}; + +class LIBGTKMM2EXT_API CheckMenuElemNoMnemonic : public Gtk::Menu_Helpers::Element +{ +public: + CheckMenuElemNoMnemonic (const Glib::ustring& label, const CallSlot& slot = CallSlot()); +}; + +} +#endif diff --git a/libs/gtkmm2ext/menu_elems.cc b/libs/gtkmm2ext/menu_elems.cc new file mode 100644 index 0000000000..5de5ac9b59 --- /dev/null +++ b/libs/gtkmm2ext/menu_elems.cc @@ -0,0 +1,44 @@ +/* menu_elems.h + * + * Copyright (C) 2017 Robin Gareus + * Copyright (C) 1998-2002 The gtkmm Development Team + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free + * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include +#include "gtkmm2ext/menu_elems.h" + +using namespace Gtkmm2ext; +using namespace Gtk; + +MenuElemNoMnemonic::MenuElemNoMnemonic (const Glib::ustring& label, const CallSlot& slot) +{ + set_child (manage (new MenuItem (label, false))); + if(slot) { + child_->signal_activate().connect(slot); + } + child_->show(); +} + +CheckMenuElemNoMnemonic::CheckMenuElemNoMnemonic (const Glib::ustring& label, const CallSlot& slot) +{ + CheckMenuItem* item = manage (new CheckMenuItem (label, false)); + set_child (item); + if(slot) { + item->signal_toggled().connect(slot); + } + child_->show(); +} diff --git a/libs/gtkmm2ext/wscript b/libs/gtkmm2ext/wscript index 78a84d544e..d97d6a1e8e 100644 --- a/libs/gtkmm2ext/wscript +++ b/libs/gtkmm2ext/wscript @@ -51,6 +51,7 @@ gtkmm2ext_sources = [ 'gtkapplication.c', 'idle_adjustment.cc', 'keyboard.cc', + 'menu_elems.cc', 'pane.cc', 'paths_dialog.cc', 'persistent_tooltip.cc',