13
0

Add a convenience MenuHelper c'tor

This is pretty much Gtkmm's
  * CheckMenuElem::CheckMenuElem
  * MenuElem::MenuElem
except MenuItems are created with bool mnemonic = false;
This commit is contained in:
Robin Gareus 2017-06-28 23:24:06 +02:00
parent a9224abcf4
commit 972e01f9c7
3 changed files with 87 additions and 0 deletions

View File

@ -0,0 +1,42 @@
/* menu_elems.h
*
* Copyright (C) 2017 Robin Gareus <robin@gareus.org>
* 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 <gtkmm/menu_elems.h>
#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

View File

@ -0,0 +1,44 @@
/* menu_elems.h
*
* Copyright (C) 2017 Robin Gareus <robin@gareus.org>
* 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 <gtk/gtk.h>
#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();
}

View File

@ -51,6 +51,7 @@ gtkmm2ext_sources = [
'gtkapplication.c',
'idle_adjustment.cc',
'keyboard.cc',
'menu_elems.cc',
'pane.cc',
'paths_dialog.cc',
'persistent_tooltip.cc',