#include "xap_Module.h"
#include "xap_App.h"
#include "xap_Frame.h"
#include "ap_Menu_Id.h"
#include "ev_Menu_Actions.h"
#include "ev_Menu.h"
#include "ev_Menu_Layouts.h"
#include "ev_Menu_Labels.h"
#include "ev_EditMethod.h"
#include "xap_Menu_Layouts.h"
#include "fv_View.h"
#include "pd_Document.h"
#include "ut_vector.h"
#include "xap_DialogFactory.h"
#include "xap_Dlg_FileOpenSaveAs.h"
#include <dialogs/xp/ap_Dialog_CollaborationShare.h>
#include <dialogs/xp/ap_Dialog_CollaborationJoin.h>
#include <dialogs/xp/ap_Dialog_CollaborationAccounts.h>
#include <session/xp/AbiCollabSessionManager.h>
#include <session/xp/AbiCollab.h>
#include <session/xp/DiskSessionRecorder.h>
#include "AbiCollab_Command.h"
#include "AbiCollab_Plugin.h"
Defines | |
#define | ABIWORD_VIEW FV_View * pView = static_cast<FV_View *>(pAV_View) |
Functions | |
static void | s_abicollab_add_menus () |
static void | s_abicollab_remove_menus () |
ABI_FAR_CALL int | abi_plugin_register (XAP_ModuleInfo *mi) |
ABI_FAR_CALL int | abi_plugin_unregister (XAP_ModuleInfo *mi) |
ABI_FAR_CALL int | abi_plugin_supports_version (UT_uint32, UT_uint32, UT_uint32) |
static bool | s_abicollab_offer (AV_View *v, EV_EditMethodCallData *d) |
static bool | s_abicollab_join (AV_View *v, EV_EditMethodCallData *d) |
static bool | s_abicollab_accounts (AV_View *v, EV_EditMethodCallData *d) |
static bool | s_abicollab_authors (AV_View *v, EV_EditMethodCallData *d) |
static bool | s_abicollab_command_invoke (AV_View *v, EV_EditMethodCallData *d) |
static bool | s_any_accounts_online (bool bIncludeNonManualShareAccounts=true) |
Defun_EV_GetMenuItemState_Fn (collab_GetState_ShowAuthors) | |
Defun_EV_GetMenuItemState_Fn (collab_GetState_Recording) | |
Defun_EV_GetMenuItemState_Fn (collab_GetState_AnyActive) | |
Defun_EV_GetMenuItemState_Fn (collab_GetState_CanShare) | |
Variables | |
static const char * | szCollaboration = "&Collaborate" |
static const char * | szCollaborationTip = "Collaborate over the internet or local network" |
static const char * | szCollaborationOffer = "Share Document" |
static const char * | szCollaborationOfferTip = "Offer the current document for collaboration" |
static const char * | szCollaborationJoin = "Open Shared Document" |
static const char * | szCollaborationJoinTip = "Open a shared document" |
static const char * | szCollaborationAccounts = "Accounts" |
static const char * | szCollaborationAccountsTip = "Manage collaboration accounts" |
static const char * | szCollaborationShowAuthors = "Show Authors" |
static const char * | szCollaborationShowAuthorsTip = "Show who wrote each piece of text by with different colors" |
static const char * | szEndCollaboration = "EndCollaboration" |
ABI_FAR_CALL int abi_plugin_register | ( | XAP_ModuleInfo * | mi | ) |
ABI_FAR_CALL int abi_plugin_unregister | ( | XAP_ModuleInfo * | mi | ) |
References XAP_ModuleInfo::author, XAP_ModuleInfo::desc, AbiCollabSessionManager::destroyAccounts(), AbiCollabSessionManager::disconnectSessions(), AbiCollabSessionManager::getManager(), XAP_ModuleInfo::name, s_abicollab_remove_menus(), AbiCollabSessionManager::storeProfile(), AbiCollabSessionManager::unregisterAccountHandlers(), AbiCollabSessionManager::unregisterDialogs(), AbiCollabSessionManager::unregisterSniffers(), XAP_ModuleInfo::usage, and XAP_ModuleInfo::version.
Defun_EV_GetMenuItemState_Fn | ( | collab_GetState_CanShare | ) |
Defun_EV_GetMenuItemState_Fn | ( | collab_GetState_ShowAuthors | ) |
returns checked true if current document is marked for show authors
References EV_MIS_Gray, AbiCollabSessionManager::getManager(), AbiCollabSessionManager::isInSession(), PD_Document::isShowAuthors(), s_any_accounts_online(), UT_return_val_if_fail, and UT_UNUSED.
Defun_EV_GetMenuItemState_Fn | ( | collab_GetState_Recording | ) |
returns checked true if currently recording
References EV_MIS_Gray, EV_MIS_Toggled, AbiCollabSessionManager::getManager(), AbiCollabSessionManager::getSession(), AbiCollab::isRecording(), s_any_accounts_online(), UT_return_val_if_fail, and UT_UNUSED.
Defun_EV_GetMenuItemState_Fn | ( | collab_GetState_AnyActive | ) |
returns grayed if there are no active connections
References s_any_accounts_online(), and UT_UNUSED.
bool s_abicollab_accounts | ( | AV_View * | v, | |
EV_EditMethodCallData * | d | |||
) | [static] |
References XAP_App::getApp(), XAP_App::getDialogFactory(), XAP_App::getLastFocussedFrame(), AbiCollabSessionManager::getManager(), XAP_DialogFactory::releaseDialog(), XAP_DialogFactory::requestDialog(), AP_Dialog_CollaborationAccounts::runModal(), and UT_return_val_if_fail.
Referenced by s_abicollab_add_menus().
void s_abicollab_add_menus | ( | ) | [static] |
This implements the "Collaborate" main submenu.
References EV_Menu_ActionSet::addAction(), EV_EditMethodContainer::addEditMethod(), XAP_Menu_Factory::addNewLabel(), XAP_Menu_Factory::addNewMenuAfter(), XAP_Menu_Factory::addNewMenuBefore(), EV_MLF_BeginSubMenu, EV_MLF_EndSubMenu, EV_MLF_Normal, XAP_App::getApp(), XAP_App::getEditMethodContainer(), XAP_App::getFrame(), XAP_App::getFrameCount(), XAP_App::getMenuActionSet(), XAP_App::getMenuFactory(), XAP_Frame::rebuildMenus(), s_abicollab_accounts(), s_abicollab_authors(), s_abicollab_command_invoke(), s_abicollab_join(), s_abicollab_offer(), szCollaboration, szCollaborationAccounts, szCollaborationAccountsTip, szCollaborationJoin, szCollaborationJoinTip, szCollaborationOffer, szCollaborationOfferTip, szCollaborationShowAuthors, szCollaborationShowAuthorsTip, szCollaborationTip, and szEndCollaboration.
Referenced by abi_plugin_register().
bool s_abicollab_authors | ( | AV_View * | v, | |
EV_EditMethodCallData * | d | |||
) | [static] |
References FV_View::getDocument(), AbiCollabSessionManager::getManager(), PD_Document::isShowAuthors(), PD_Document::setShowAuthors(), and UT_return_val_if_fail.
Referenced by s_abicollab_add_menus().
bool s_abicollab_command_invoke | ( | AV_View * | v, | |
EV_EditMethodCallData * | d | |||
) | [static] |
References command, AbiCollab_Command::execute(), EV_EditMethodCallData::m_dataLength, EV_EditMethodCallData::m_pData, UT_DEBUGMSG, and UT_UTF8String::utf8_str().
Referenced by s_abicollab_add_menus().
bool s_abicollab_join | ( | AV_View * | v, | |
EV_EditMethodCallData * | d | |||
) | [static] |
References AP_Dialog_CollaborationJoin::a_CANCEL, AP_Dialog_CollaborationJoin::a_OPEN, AbiCollabSessionManager::findFrameForSession(), AP_Dialog_CollaborationJoin::getAnswer(), XAP_App::getApp(), AP_Dialog_CollaborationJoin::getBuddy(), XAP_App::getDialogFactory(), AP_Dialog_CollaborationJoin::getDocHandle(), XAP_App::getLastFocussedFrame(), AbiCollabSessionManager::getManager(), AbiCollabSessionManager::getSessionFromSessionId(), DocHandle::getSessionId(), AbiCollabSessionManager::joinSessionInitiate(), XAP_Frame::raise(), XAP_DialogFactory::releaseDialog(), XAP_DialogFactory::requestDialog(), AP_Dialog_CollaborationJoin::runModal(), UT_DEBUGMSG, and UT_return_val_if_fail.
Referenced by s_abicollab_add_menus().
bool s_abicollab_offer | ( | AV_View * | v, | |
EV_EditMethodCallData * | d | |||
) | [static] |
References AP_Dialog_CollaborationShare::a_CANCEL, AP_Dialog_CollaborationShare::a_OK, AP_Dialog_CollaborationShare::getAccount(), AP_Dialog_CollaborationShare::getAcl(), AP_Dialog_CollaborationShare::getAnswer(), XAP_App::getApp(), XAP_App::getDialogFactory(), XAP_App::getLastFocussedFrame(), AbiCollabSessionManager::getManager(), XAP_DialogFactory::releaseDialog(), XAP_DialogFactory::requestDialog(), AP_Dialog_CollaborationShare::runModal(), AP_Dialog_CollaborationShare::share(), UT_ASSERT_HARMLESS, UT_DEBUGMSG, UT_NOT_REACHED, and UT_return_val_if_fail.
Referenced by s_abicollab_add_menus().
void s_abicollab_remove_menus | ( | ) | [static] |
Remove the menu items unpon unloading the plugin.
References DELETEP, ev_EditMethod_lookup(), XAP_App::getApp(), XAP_App::getEditMethodContainer(), XAP_App::getFrame(), XAP_App::getFrameCount(), XAP_App::getMenuFactory(), XAP_Frame::rebuildMenus(), EV_EditMethodContainer::removeEditMethod(), XAP_Menu_Factory::removeMenuItem(), szCollaboration, szCollaborationAccounts, szCollaborationJoin, szCollaborationOffer, szCollaborationShowAuthors, and szEndCollaboration.
Referenced by abi_plugin_unregister().
static bool s_any_accounts_online | ( | bool | bIncludeNonManualShareAccounts = true |
) | [static] |
returns true if at least one account is online
References AccountHandler::canManuallyStartSession(), AbiCollabSessionManager::getAccounts(), AbiCollabSessionManager::getManager(), AccountHandler::isOnline(), and UT_return_val_if_fail.
Referenced by Defun_EV_GetMenuItemState_Fn().
const char* szCollaboration = "&Collaborate" [static] |
Referenced by s_abicollab_add_menus(), and s_abicollab_remove_menus().
const char* szCollaborationAccounts = "Accounts" [static] |
Referenced by s_abicollab_add_menus(), and s_abicollab_remove_menus().
const char* szCollaborationAccountsTip = "Manage collaboration accounts" [static] |
Referenced by s_abicollab_add_menus().
const char* szCollaborationJoin = "Open Shared Document" [static] |
Referenced by s_abicollab_add_menus(), and s_abicollab_remove_menus().
const char* szCollaborationJoinTip = "Open a shared document" [static] |
Referenced by s_abicollab_add_menus().
const char* szCollaborationOffer = "Share Document" [static] |
Referenced by s_abicollab_add_menus(), and s_abicollab_remove_menus().
const char* szCollaborationOfferTip = "Offer the current document for collaboration" [static] |
Referenced by s_abicollab_add_menus().
const char* szCollaborationShowAuthors = "Show Authors" [static] |
Referenced by s_abicollab_add_menus(), and s_abicollab_remove_menus().
const char* szCollaborationShowAuthorsTip = "Show who wrote each piece of text by with different colors" [static] |
Referenced by s_abicollab_add_menus().
const char* szCollaborationTip = "Collaborate over the internet or local network" [static] |
Referenced by s_abicollab_add_menus().
const char* szEndCollaboration = "EndCollaboration" [static] |
Referenced by s_abicollab_add_menus(), and s_abicollab_remove_menus().