bool LM::Presentity::populate_menu (Ekiga::MenuBuilder& builder) { const gchar* subscription = lm_message_node_get_attribute (item, "subscription"); const gchar* ask = lm_message_node_get_attribute (item, "ask"); if ( !has_chat) { builder.add_action ("im-message-new", _("Start chat"), boost::ref (chat_requested)); } else { builder.add_action ("im-message-new", _("Continue chat"), boost::ref (chat_requested)); } builder.add_separator (); builder.add_action ("edit", _("_Edit"), boost::bind (&LM::Presentity::edit_presentity, this)); if (g_strcmp0 (subscription, "none") == 0) { builder.add_action ("ask", _("Ask him/her to see his/her status"), boost::bind (&LM::Presentity::ask_to, this)); } if (g_strcmp0 (subscription, "from") == 0) { builder.add_action ("stop", _("Forbid him/her to see my status"), boost::bind (&LM::Presentity::revoke_from, this)); if (ask == NULL) builder.add_action ("ask", _("Ask him/her to see his/her status"), boost::bind (&LM::Presentity::ask_to, this)); else builder.add_ghost ("ask", _("Ask him/her to see his/her status (pending)")); } if (g_strcmp0 (subscription, "to") == 0) { builder.add_action ("stop", _("Stop getting his/her status"), boost::bind (&LM::Presentity::stop_to, this)); } if (g_strcmp0 (subscription, "both") == 0) { builder.add_action ("stop", _("Forbid him/her to see my status"), boost::bind (&LM::Presentity::revoke_from, this)); builder.add_action ("stop", _("Stop getting his/her status"), boost::bind (&LM::Presentity::stop_to, this)); } builder.add_action ("remove", _("_Remove"), boost::bind (&LM::Presentity::remove_presentity, this)); return true; }
bool RL::Presentity::populate_menu (Ekiga::MenuBuilder &builder) { bool populated = false; boost::shared_ptr<Ekiga::PresenceCore> presence_core(services.get<Ekiga::PresenceCore> ("presence-core")); populated = presence_core->populate_presentity_menu (PresentityPtr (this, null_deleter ()), uri, builder); if (writable) { if (populated) builder.add_separator (); builder.add_action ("edit", _("_Edit"), boost::bind (&RL::Presentity::edit_presentity, this)); builder.add_action ("remove", _("_Remove"), boost::bind (&RL::Presentity::remove, this)); } return true; }
bool LM::Account::populate_menu (Ekiga::MenuBuilder& builder) { if (lm_connection_is_open (connection)) { builder.add_action ("user-offline", _("_Disable"), boost::bind (&LM::Account::disable, this)); } else { builder.add_action ("user-available", _("_Enable"), boost::bind (&LM::Account::enable, this)); } builder.add_separator (); builder.add_action ("gtk-edit", _("Edit"), boost::bind (&LM::Account::edit, this)); builder.add_action ("gtk-remove", _("_Remove"), boost::bind (&LM::Account::remove, this)); return true; }
bool Local::Presentity::populate_menu (Ekiga::MenuBuilder &builder) { bool populated = false; boost::shared_ptr<Ekiga::PresenceCore> pcore = presence_core.lock (); if (!pcore) return false; populated = pcore->populate_presentity_menu (PresentityPtr(this, null_deleter ()), get_uri (), builder); if (populated) builder.add_separator (); builder.add_action ("edit", _("_Edit"), boost::bind (&Local::Presentity::edit_presentity, this)); builder.add_action ("remove", _("_Remove"), boost::bind (&Local::Presentity::remove, this)); return true; }
bool populate_menu (Ekiga::MenuBuilder& builder) { builder.add_separator (); return false; }