Re: How can I show tooltips from menuitems in the statusbar
- From: Juan Angel Moreno <jamf gm gmail com>
- To: "Moh B." <mohgtkmm gmail com>
- Cc: gtkmm-list gnome org
- Subject: Re: How can I show tooltips from menuitems in the statusbar
- Date: Sun, 7 Oct 2012 16:45:54 +0200
Thank you Moh, I will try this.
2012/10/6 Moh B.
<mohgtkmm gmail com>
On Tue, 2012-10-02 at 10:36 +0200, Juan Angel Moreno wrote:
> Hi!
>
> I want to show the tooltips that each of my menuitems has, in the
> statusbar of a window.
> How can I do this??
>
> Greetings
> jamf
>
> _______________________________________________
Hi, these are the crazy tips to get tooltips working
//In the mainwin.cpp add:
//start example code
====================================================
mpActionGroup = Gtk::ActionGroup::create();
mpActionGroup->add(Gtk::Action::create("fileMenu", "_File"));
mpActionGroup->add(Gtk::Action::create("fileOpen",
"Open ISO file", "Open ISO file to examine
content"),
sigc::mem_fun(*this,
&mainwin::on_selectIsoFileButton_click));
mpActionGroup->add(Gtk::Action::create("fileQuit", "_Exit", "Exit /
terminate the application"),
sigc::mem_fun(*this,
&mainwin::on_exitButton_click));
mpActionGroup->add(Gtk::Action::create("helpMenu", "_Help"));
mpActionGroup->add(Gtk::Action::create("helpHowTo", "_How to", "Search
for help"),
sigc::mem_fun(*this, &mainwin::on_howTo_click));
mpActionGroup->add(Gtk::Action::create("helpAbout", "_About", "This
shows the about dialog: Ver. 1.0.0"),
sigc::mem_fun(*this, &mainwin::on_about_click));
mpUiManager = Gtk::UIManager::create();
mpUiManager->insert_action_group(mpActionGroup);
mpUiManager->add_ui_from_file("ui.xml");
mpUiManager->signal_connect_proxy().connect(sigc::mem_fun(this,
&mainwin::install_menu_hints));
//add accelerators to the main window:
add_accel_group(mpUiManager->get_accel_group()) ;
mpptrmenuBar = mpUiManager->get_widget("/menuBar");
HBoxMenuBar.pack_start(*mpptrmenuBar, true, true, 15);
//3- The related functions are as follows:
void mainwin::install_menu_hints(const Glib::RefPtr<Gtk::Action>&
action, Gtk::Widget* widget)
{
if(dynamic_cast<Gtk::MenuItem*>(widget))
{
(static_cast<Gtk::MenuItem*>(widget))->signal_select().connect(sigc::bind(sigc::mem_fun(*this, &mainwin::on_show_menu_tip), action));
(static_cast<Gtk::MenuItem*>(widget))->signal_deselect().connect(sigc::mem_fun(*this, &mainwin::on_clear_menu_tip));
}
}
void mainwin::on_show_menu_tip(const Glib::RefPtr<Gtk::Action>& action)
{
Glib::ustring tip = action->property_tooltip();
if (tip == "") tip = " ";
m_statusBar.push(" " + tip);
}
void mainwin::on_clear_menu_tip()
{
m_statusBar.pop();
}
// end of example code to add in the mainwin.cpp
==============================
//The ui.xml file is as follows:
<ui>
<menubar name='menuBar'>
<menu action="">
<menuitem action="">
<separator/>
<menuitem action="">
</menu>
<menu action="">
<menuitem action="">
<menuitem action="">
</menu>
</menubar>
</ui>
//++++++++++And my mainwin.h is as follows: ++++++++++++++
#include <gtkmm.h>
#include <gtkmm/menu.h>
#include <gtkmm/menubar.h>
#include <gtkmm/menuitem.h>
class mainwin : public Gtk::Window
{
private:
protected:
Gtk::Box HBoxMenuBar;
Gtk::Box VBox1;
Gtk::Box HBoxSelectFile;
Gtk::Box HBoxDestination;
Gtk::Box HBoxActionButtons;
/****
/*** other widgets here...
====> Glib::RefPtr<Gtk::ActionGroup> mpActionGroup;
====> Glib::RefPtr<Gtk::UIManager> mpUiManager;
====> Gtk::Widget *mpptrmenuBar;
====> Gtk::Statusbar m_statusBar;
//SIGNAL HANDLERS:
/****
/*** my handling functions here...
public:
mainwin(); // Connstructor
virtual ~mainwin(); // Destructor
====> void install_menu_hints(const Glib::RefPtr<Gtk::Action>& action,
Gtk::Widget* widget);
====> void on_show_menu_tip(const Glib::RefPtr<Gtk::Action>& action) ;
====> void on_clear_menu_tip();
};
--
Atentamente:
Juan Ángel Moreno Fernández
jamf gm gmail com------------------------------
Proyecto Gelide
http://gelide.sf.net
------------------------------
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]