744 lines
18 KiB
C++
744 lines
18 KiB
C++
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
|
*
|
|
* The contents of this file are subject to the Netscape Public License
|
|
* Version 1.0 (the "NPL"); you may not use this file except in
|
|
* compliance with the NPL. You may obtain a copy of the NPL at
|
|
* http://www.mozilla.org/NPL/
|
|
*
|
|
* Software distributed under the NPL is distributed on an "AS IS" basis,
|
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
|
|
* for the specific language governing rights and limitations under the
|
|
* NPL.
|
|
*
|
|
* The Initial Developer of this code under the NPL is Netscape
|
|
* Communications Corporation. Portions created by Netscape are
|
|
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
|
|
* Reserved.
|
|
*/
|
|
/*
|
|
AddrBookFrame.cpp -- address book window stuff.
|
|
Created: Chris Toshok <toshok@netscape.com>, 29-Aug-96.
|
|
Revised: Tao Cheng <tao@netscape.com>, 01-nov-96
|
|
*/
|
|
|
|
#include "rosetta.h"
|
|
#include "AddrBookFrame.h"
|
|
#include "LdapSearchFrame.h"
|
|
|
|
#include "AB2PaneView.h"
|
|
#include "AddrBookView.h"
|
|
|
|
#include "ComposeView.h"
|
|
#include "ComposeFolderView.h"
|
|
#include "Dashboard.h"
|
|
#include <Xfe/Xfe.h>
|
|
|
|
#include "xpassert.h"
|
|
|
|
#include "prefs.h"
|
|
#include "prefapi.h"
|
|
|
|
#include <Xm/Form.h>
|
|
#include <Xm/Label.h>
|
|
#include <Xm/PushB.h>
|
|
#include <Xm/TextF.h>
|
|
#include <Xm/DialogS.h>
|
|
#include <Xm/FileSB.h>
|
|
|
|
#include "DtWidgets/ComboBox.h"
|
|
|
|
extern "C" {
|
|
#include "xfe.h"
|
|
|
|
XP_List* FE_GetDirServers();
|
|
};
|
|
|
|
#if defined(USE_ABCOM)
|
|
MenuSpec XFE_AddrBookFrame::new_sub_menu_spec[] = {
|
|
{ xfeCmdOpenBrowser, PUSHBUTTON },
|
|
{ xfeCmdComposeMessage, PUSHBUTTON },
|
|
MENU_PUSHBUTTON(xfeCmdNewBlank),
|
|
MENU_SEPARATOR,
|
|
{ xfeCmdAddToAddressBook, PUSHBUTTON },
|
|
{ xfeCmdABNewList, PUSHBUTTON },
|
|
{ xfeCmdABNewPAB, PUSHBUTTON },
|
|
{ xfeCmdABNewLDAPDirectory, PUSHBUTTON },
|
|
{ NULL }
|
|
};
|
|
|
|
MenuSpec XFE_AddrBookFrame::file_menu_spec[] = {
|
|
{ "newSubmenu", CASCADEBUTTON,
|
|
(MenuSpec*)&new_sub_menu_spec },
|
|
MENU_SEPARATOR,
|
|
{ xfeCmdImport, PUSHBUTTON },
|
|
{ xfeCmdSaveAs, PUSHBUTTON },
|
|
MENU_SEPARATOR,
|
|
{ xfeCmdABCall, PUSHBUTTON },
|
|
MENU_SEPARATOR,
|
|
{ xfeCmdClose, PUSHBUTTON },
|
|
{ xfeCmdExit, PUSHBUTTON },
|
|
{ NULL }
|
|
};
|
|
#else
|
|
MenuSpec XFE_AddrBookFrame::file_menu_spec[] = {
|
|
{ "newSubmenu", CASCADEBUTTON,
|
|
(MenuSpec*)&XFE_Frame::new_menu_spec },
|
|
{ xfeCmdAddToAddressBook, PUSHBUTTON },
|
|
{ xfeCmdABNewList, PUSHBUTTON },
|
|
#if defined(USE_ABCOM)
|
|
{ xfeCmdABNewPAB, PUSHBUTTON },
|
|
{ xfeCmdABNewLDAPDirectory, PUSHBUTTON },
|
|
#else
|
|
{ xfeCmdImport, PUSHBUTTON },
|
|
#endif /* USE_ABCOM */
|
|
MENU_SEPARATOR,
|
|
{ xfeCmdImport, PUSHBUTTON },
|
|
{ xfeCmdSaveAs, PUSHBUTTON },
|
|
MENU_SEPARATOR,
|
|
{ xfeCmdABCall, PUSHBUTTON },
|
|
MENU_SEPARATOR,
|
|
{ xfeCmdClose, PUSHBUTTON },
|
|
{ xfeCmdExit, PUSHBUTTON },
|
|
{ NULL }
|
|
};
|
|
#endif /* USE_ABCOM */
|
|
|
|
MenuSpec XFE_AddrBookFrame::edit_menu_spec[] = {
|
|
{ xfeCmdUndo, PUSHBUTTON },
|
|
{ xfeCmdRedo, PUSHBUTTON },
|
|
MENU_SEPARATOR,
|
|
#if 0
|
|
/* do not take out yet */
|
|
{ xfeCmdCut, PUSHBUTTON },
|
|
{ xfeCmdCopy, PUSHBUTTON },
|
|
{ xfeCmdPaste, PUSHBUTTON },
|
|
#endif
|
|
{ xfeCmdABDeleteEntry,PUSHBUTTON },
|
|
#if defined(USE_ABCOM)
|
|
{ xfeCmdABDeleteAllEntries,PUSHBUTTON },
|
|
#endif /* USE_ABCOM */
|
|
{ xfeCmdSelectAll, PUSHBUTTON },
|
|
MENU_SEPARATOR,
|
|
{ xfeCmdDisplayHTMLDomainsDialog, PUSHBUTTON },
|
|
{ xfeCmdViewProperties, PUSHBUTTON },
|
|
{ xfeCmdEditPreferences, PUSHBUTTON },
|
|
{ NULL }
|
|
};
|
|
|
|
MenuSpec XFE_AddrBookFrame::view_menu_spec[] = {
|
|
{ xfeCmdToggleNavigationToolbar, PUSHBUTTON },
|
|
MENU_SEPARATOR,
|
|
{ xfeCmdABByType,
|
|
TOGGLEBUTTON, NULL, "AddrBookViewSortTypeGroup" },
|
|
{ xfeCmdABByName,
|
|
TOGGLEBUTTON, NULL, "AddrBookViewSortTypeGroup" },
|
|
{ xfeCmdABByEmailAddress,
|
|
TOGGLEBUTTON, NULL, "AddrBookViewSortTypeGroup" },
|
|
{ xfeCmdABByNickName,
|
|
TOGGLEBUTTON, NULL, "AddrBookViewSortTypeGroup" },
|
|
{ xfeCmdABByCompany,
|
|
TOGGLEBUTTON, NULL, "AddrBookViewSortTypeGroup" },
|
|
{ xfeCmdABByLocality,
|
|
TOGGLEBUTTON, NULL, "AddrBookViewSortTypeGroup" },
|
|
MENU_SEPARATOR,
|
|
{ xfeCmdSortAscending,
|
|
TOGGLEBUTTON, NULL, "AddrBookViewSortOrderGroup" },
|
|
{ xfeCmdSortDescending,
|
|
TOGGLEBUTTON, NULL, "AddrBookViewSortOrderGroup" },
|
|
MENU_SEPARATOR,
|
|
{ xfeCmdABvCard, PUSHBUTTON },
|
|
{ NULL }
|
|
};
|
|
|
|
MenuSpec XFE_AddrBookFrame::menu_bar_spec[] = {
|
|
{ xfeMenuFile, CASCADEBUTTON,
|
|
(MenuSpec*)&XFE_AddrBookFrame::file_menu_spec },
|
|
{ xfeMenuEdit, CASCADEBUTTON,
|
|
(MenuSpec*)&XFE_AddrBookFrame::edit_menu_spec },
|
|
{ xfeMenuView, CASCADEBUTTON,
|
|
(MenuSpec*)&XFE_AddrBookFrame::view_menu_spec },
|
|
{ "bookmarksSubmenu", CASCADEBUTTON, XFE_Frame::bookmark_submenu_spec },
|
|
{ xfeMenuWindow, CASCADEBUTTON,
|
|
(MenuSpec*)&XFE_Frame::window_menu_spec },
|
|
{ xfeMenuHelp, CASCADEBUTTON,
|
|
(MenuSpec*)&XFE_Frame::help_menu_spec },
|
|
{ NULL }
|
|
};
|
|
|
|
ToolbarSpec XFE_AddrBookFrame::toolbar_spec[] = {
|
|
{ xfeCmdAddToAddressBook, PUSHBUTTON, &MNAB_NewPerson_group},
|
|
{ xfeCmdABNewList, PUSHBUTTON, &MNAB_NewList_group},
|
|
{ xfeCmdABEditEntry, PUSHBUTTON, &MNAB_Properties_group},
|
|
|
|
{ // XX mail only
|
|
xfeCmdComposeMessage,
|
|
CASCADEBUTTON,
|
|
&MNTB_Compose_group, NULL, NULL, NULL, // Icons
|
|
compose_message_submenu_spec, // Submenu spec
|
|
NULL, NULL, // Generate proc/arg
|
|
XFE_TOOLBAR_DELAY_LONG // Popup delay
|
|
},
|
|
|
|
{ xfeCmdABCall, PUSHBUTTON, &MNAB_Call_group},
|
|
{ xfeCmdABDeleteEntry, PUSHBUTTON, &MNTB_Trash_group},
|
|
{ xfeCmdStopLoading, PUSHBUTTON, &TB_Stop_group },
|
|
{ NULL }
|
|
};
|
|
|
|
MenuSpec XFE_AddrBookFrame::frame_popup_spec[] = {
|
|
{ xfeCmdAddToAddressBook, PUSHBUTTON },
|
|
{ xfeCmdABNewList, PUSHBUTTON },
|
|
{ NULL }
|
|
};
|
|
|
|
|
|
extern "C" {
|
|
Widget fe_CreateFileSelectionBox(Widget, char*, Arg*, Cardinal);
|
|
const char *FE_UsersFullName (void);
|
|
};
|
|
|
|
#include "xpgetstr.h"
|
|
|
|
extern int XFE_AB_FRAME_TITLE;
|
|
/* Hack:
|
|
* pixmaps for the address book.
|
|
*/
|
|
XFE_Frame* XFE_AddrBookFrame::m_theFrame = 0;
|
|
//
|
|
XFE_AddrBookFrame::XFE_AddrBookFrame(Widget toplevel,
|
|
XFE_Frame *parent_frame,
|
|
Chrome *chromespec)
|
|
: XFE_Frame("AddressBook",
|
|
toplevel,
|
|
parent_frame,
|
|
FRAME_ADDRESSBOOK,
|
|
chromespec,
|
|
False /* HTML */,
|
|
True /* menuBar */,
|
|
True /* toolBar */,
|
|
True /* dashBoard */,
|
|
True /* destroyOnClose */),
|
|
m_popup(0)
|
|
{
|
|
m_abView = 0;
|
|
setToolbar(toolbar_spec);
|
|
/* create the addressbook view;
|
|
* import from XFE_BookmarkFrame::XFE_BookmarkFrame
|
|
*/
|
|
XFE_AB2PaneView *view = new XFE_AB2PaneView(this,
|
|
getChromeParent(),
|
|
NULL,
|
|
m_context,
|
|
AB_BOOK);
|
|
m_abView = (XFE_AddrBookView *) view->getEntriesListView();
|
|
|
|
/* Attachment
|
|
*/
|
|
XtVaSetValues(view->getBaseWidget(),
|
|
XmNleftAttachment, XmATTACH_FORM,
|
|
XmNtopAttachment, XmATTACH_FORM,
|
|
XmNrightAttachment, XmATTACH_FORM,
|
|
XmNbottomAttachment, XmATTACH_FORM,
|
|
NULL);
|
|
|
|
setView(view);
|
|
setMenubar(menu_bar_spec);
|
|
|
|
char title[kMaxFullNameLength+64];
|
|
PR_snprintf(title, sizeof(title),
|
|
XP_GetString(XFE_AB_FRAME_TITLE),
|
|
FE_UsersFullName());
|
|
setTitle(title);
|
|
|
|
/* show
|
|
*/
|
|
view->show();
|
|
|
|
m_dashboard->setShowStatusBar(True);
|
|
m_dashboard->setShowProgressBar(True);
|
|
//
|
|
HG01283
|
|
|
|
// Configure the toolbox for the first time
|
|
configureToolbox();
|
|
}
|
|
|
|
XFE_AddrBookFrame::~XFE_AddrBookFrame()
|
|
{
|
|
m_theFrame = 0;
|
|
}
|
|
|
|
XP_Bool XFE_AddrBookFrame::handlesCommand(CommandType cmd,
|
|
void */* calldata */,
|
|
XFE_CommandInfo* /* info */)
|
|
{
|
|
#if defined(USE_ABCOM)
|
|
if (cmd == xfeCmdShowPopup
|
|
|| cmd == xfeCmdStopLoading
|
|
|| cmd == xfeCmdDisplayHTMLDomainsDialog
|
|
|| cmd == xfeCmdEditPreferences
|
|
)
|
|
return TRUE;
|
|
#else
|
|
if (cmd == xfeCmdShowPopup
|
|
|| cmd == xfeCmdImport
|
|
|| cmd == xfeCmdSaveAs
|
|
|| cmd == xfeCmdStopLoading
|
|
|| cmd == xfeCmdUndo
|
|
|| cmd == xfeCmdRedo
|
|
|| cmd == xfeCmdFindInObject
|
|
|| cmd == xfeCmdFindAgain
|
|
|| cmd == xfeCmdSearchAddress
|
|
|| cmd == xfeCmdEditPreferences
|
|
|| cmd == xfeCmdABByType
|
|
|| cmd == xfeCmdABByName
|
|
|| cmd == xfeCmdABByEmailAddress
|
|
|| cmd == xfeCmdABByCompany
|
|
|| cmd == xfeCmdABByLocality
|
|
|| cmd == xfeCmdABByNickName
|
|
|| cmd == xfeCmdSortAscending
|
|
|| cmd == xfeCmdSortDescending
|
|
|| cmd == xfeCmdAddToAddressBook
|
|
|| cmd == xfeCmdABNewList
|
|
|| cmd == xfeCmdABNewPAB
|
|
|| cmd == xfeCmdABNewLDAPDirectory
|
|
|| cmd == xfeCmdViewProperties
|
|
|| cmd == xfeCmdDisplayHTMLDomainsDialog
|
|
|| cmd == xfeCmdABEditEntry
|
|
|| cmd == xfeCmdABDeleteEntry
|
|
|| cmd == xfeCmdABDeleteAllEntries
|
|
|| cmd == xfeCmdABCall
|
|
|| cmd == xfeCmdABvCard)
|
|
return TRUE;
|
|
#endif /* USE_ABCOM */
|
|
else
|
|
/* Default
|
|
*/
|
|
return XFE_Frame::handlesCommand(cmd);
|
|
}
|
|
|
|
char *XFE_AddrBookFrame::commandToString(CommandType cmd,
|
|
void *calldata, XFE_CommandInfo* info)
|
|
{
|
|
XFE_Command* handler = getCommand(cmd);
|
|
|
|
if (handler != NULL)
|
|
return handler->getLabel(this, info);
|
|
|
|
if (cmd == xfeCmdToggleNavigationToolbar) {
|
|
char *res = NULL;
|
|
|
|
if (m_toolbar->isShown())
|
|
res = "hideNavToolbarCmdString";
|
|
else
|
|
res = "showNavToolbarCmdString";
|
|
return stringFromResource(res);
|
|
}
|
|
else
|
|
return XFE_Frame::commandToString(cmd, calldata, info);
|
|
}
|
|
|
|
XP_Bool
|
|
XFE_AddrBookFrame::isCommandEnabled(CommandType cmd, void *, XFE_CommandInfo*)
|
|
{
|
|
/* first we handle the commands we know about..
|
|
* xfeCmdClose xfeCmdEditPreferences
|
|
*/
|
|
if (cmd == xfeCmdOpenInbox
|
|
|| cmd == xfeCmdOpenNewsgroups
|
|
|| cmd == xfeCmdOpenFolders
|
|
|
|
|| cmd == xfeCmdEditPreferences
|
|
|
|
|| cmd == xfeCmdOpenBookmarks
|
|
|
|
#ifdef JAVA
|
|
|| cmd == xfeCmdJavaConsole
|
|
#endif /* JAVA */
|
|
|
|
|| cmd == xfeCmdSelectAll
|
|
|
|
#if !defined(USE_ABCOM)
|
|
|| cmd == xfeCmdSearchAddress
|
|
|| cmd == xfeCmdABvCard
|
|
#else
|
|
|| cmd == xfeCmdABvCard
|
|
#endif /* USE_ABCOM */
|
|
|
|
|| cmd == xfeCmdDisplayHTMLDomainsDialog) {
|
|
return TRUE;
|
|
}/* if */
|
|
else if (cmd == xfeCmdOpenAddressBook) {
|
|
return FALSE;
|
|
}/* else if */
|
|
else if (cmd == xfeCmdStopLoading) {
|
|
return m_abView?m_abView->isSearching():False;
|
|
}/* else if */
|
|
else {
|
|
return XFE_Frame::isCommandEnabled(cmd);
|
|
}/* else */
|
|
}
|
|
|
|
char *XFE_AddrBookFrame::getDocString(CommandType cmd)
|
|
{
|
|
if ((cmd == xfeCmdComposeMessage ||
|
|
(cmd == xfeCmdComposeMessageHTML) ||
|
|
(cmd == xfeCmdComposeMessagePlain) ||
|
|
cmd == xfeCmdABCall) && m_abView)
|
|
return m_abView->getDocString(cmd);
|
|
return XFE_Frame::getDocString(cmd);
|
|
}
|
|
|
|
char *XFE_AddrBookFrame::getTipString(CommandType /* cmd */)
|
|
{
|
|
return NULL;
|
|
}
|
|
|
|
void XFE_AddrBookFrame::doCommand(CommandType cmd,
|
|
void *calldata, XFE_CommandInfo* info)
|
|
{
|
|
#if defined(USE_ABCOM)
|
|
/* first we handle the commands we know about.
|
|
*/
|
|
if (cmd == xfeCmdComposeMessage)
|
|
composeMessage();
|
|
else if (cmd == xfeCmdStopLoading)
|
|
m_abView->stopSearch();
|
|
else if (cmd == xfeCmdComposeMessageHTML)
|
|
{
|
|
CONTEXT_DATA(m_context)->stealth_cmd =
|
|
(fe_globalPrefs.send_html_msg == False);
|
|
composeMessage();
|
|
}
|
|
else if ( cmd == xfeCmdComposeMessagePlain)
|
|
{
|
|
CONTEXT_DATA(m_context)->stealth_cmd =
|
|
(fe_globalPrefs.send_html_msg == True);
|
|
composeMessage();
|
|
}
|
|
else if (cmd == xfeCmdShowPopup) {
|
|
// Finish up the popup
|
|
XEvent *event = info->event;
|
|
|
|
if (m_popup)
|
|
delete m_popup;
|
|
|
|
m_popup =
|
|
new XFE_PopupMenu("popup",(XFE_Frame *) this,
|
|
XfeAncestorFindApplicationShell(getBaseWidget()));
|
|
m_popup->addMenuSpec(frame_popup_spec);
|
|
m_popup->position (event);
|
|
m_popup->show();
|
|
}/* else if */
|
|
else if (cmd == xfeCmdEditPreferences)
|
|
fe_showMailNewsPreferences(this, (MWContext*)m_view->getContext());
|
|
|
|
else if (cmd == xfeCmdDisplayHTMLDomainsDialog)
|
|
|
|
MSG_DisplayHTMLDomainsDialog((MWContext*)m_view->getContext());
|
|
/* ToolBar
|
|
*/
|
|
else
|
|
/* Default
|
|
*/
|
|
XFE_Frame::doCommand(cmd, calldata, info);
|
|
#else
|
|
/* first we handle the commands we know about.
|
|
*/
|
|
if (cmd == xfeCmdComposeMessage)
|
|
composeMessage();
|
|
else if (cmd == xfeCmdStopLoading)
|
|
m_abView->stopSearch();
|
|
else if (cmd == xfeCmdComposeMessageHTML)
|
|
{
|
|
CONTEXT_DATA(m_context)->stealth_cmd =
|
|
(fe_globalPrefs.send_html_msg == False);
|
|
composeMessage();
|
|
}
|
|
else if ( cmd == xfeCmdComposeMessagePlain)
|
|
{
|
|
CONTEXT_DATA(m_context)->stealth_cmd =
|
|
(fe_globalPrefs.send_html_msg == True);
|
|
composeMessage();
|
|
}
|
|
else if (cmd == xfeCmdImport) {
|
|
import();
|
|
}
|
|
else if (cmd == xfeCmdSaveAs)
|
|
saveAs();
|
|
/* edit_menu_spec
|
|
*/
|
|
else if (cmd == xfeCmdUndo)
|
|
undo();
|
|
else if (cmd == xfeCmdRedo)
|
|
redo();
|
|
else if (cmd == xfeCmdABDeleteEntry)
|
|
abDelete();
|
|
else if (cmd == xfeCmdABDeleteAllEntries)
|
|
abDeleteAllEntries();
|
|
else if (cmd == xfeCmdFindInObject)
|
|
printf("\n %s", xfeCmdComposeMessage);
|
|
else if (cmd == xfeCmdFindAgain)
|
|
printf("\n %s", xfeCmdComposeMessage);
|
|
else if (cmd == xfeCmdSearchAddress) {
|
|
fe_showLdapSearch(XfeAncestorFindApplicationShell(getBaseWidget()), this, (Chrome*)NULL);
|
|
}/* else if */
|
|
else if (cmd == xfeCmdEditPreferences)
|
|
fe_showMailNewsPreferences(this, (MWContext*)m_view->getContext());
|
|
|
|
/* view_menu_spec
|
|
*/
|
|
else if (cmd == xfeCmdABByType) {
|
|
m_abView->setSortType(AB_SortByTypeCmd);
|
|
}
|
|
else if (cmd == xfeCmdABByName) {
|
|
m_abView->setSortType(AB_SortByFullNameCmd);
|
|
}
|
|
else if (cmd == xfeCmdABByEmailAddress) {
|
|
m_abView->setSortType(AB_SortByEmailAddress);
|
|
}
|
|
else if (cmd == xfeCmdABByCompany) {
|
|
m_abView->setSortType(AB_SortByCompanyName);
|
|
}
|
|
else if (cmd == xfeCmdABByLocality) {
|
|
m_abView->setSortType(AB_SortByLocality);
|
|
}
|
|
else if (cmd == xfeCmdABByNickName) {
|
|
m_abView->setSortType(AB_SortByNickname);
|
|
}
|
|
else if (cmd == xfeCmdSortAscending) {
|
|
m_abView->setAscending(True);
|
|
}
|
|
else if (cmd == xfeCmdSortDescending) {
|
|
m_abView->setAscending(False);
|
|
}
|
|
/* item_menu_spec
|
|
*/
|
|
else if (cmd == xfeCmdAddToAddressBook)
|
|
/* Add new user
|
|
*/
|
|
addToAddressBook();
|
|
else if (cmd == xfeCmdABNewList)
|
|
/* Add new list
|
|
*/
|
|
newList();
|
|
else if (cmd == xfeCmdViewProperties)
|
|
/* Edit property
|
|
*/
|
|
viewProperties();
|
|
|
|
else if (cmd == xfeCmdDisplayHTMLDomainsDialog)
|
|
|
|
MSG_DisplayHTMLDomainsDialog((MWContext*)m_view->getContext());
|
|
/* ToolBar
|
|
*/
|
|
else if (cmd == xfeCmdABEditEntry)
|
|
/* Edit property
|
|
*/
|
|
viewProperties();
|
|
else if (cmd == xfeCmdABDeleteEntry)
|
|
abDelete();
|
|
else if (cmd == xfeCmdABCall)
|
|
abCall();
|
|
else if (cmd == xfeCmdABvCard)
|
|
abVCard();
|
|
else if (cmd == xfeCmdShowPopup) {
|
|
// Finish up the popup
|
|
XEvent *event = info->event;
|
|
|
|
if (m_popup)
|
|
delete m_popup;
|
|
|
|
m_popup = new XFE_PopupMenu("popup",(XFE_Frame *) this,
|
|
XfeAncestorFindApplicationShell(getBaseWidget()));
|
|
m_popup->addMenuSpec(frame_popup_spec);
|
|
m_popup->position (event);
|
|
m_popup->show();
|
|
}/* else if */
|
|
else
|
|
/* Default
|
|
*/
|
|
XFE_Frame::doCommand(cmd, calldata, info);
|
|
#endif /* USE_ABCOM */
|
|
}/* XFE_AddrBookFrame::doCommand() */
|
|
|
|
|
|
void XFE_AddrBookFrame::openBrowser() {
|
|
|
|
}
|
|
|
|
void XFE_AddrBookFrame::composeMessage() {
|
|
MSG_Pane *pane = NULL;
|
|
pane = MSG_Mail((MWContext*)m_abView->getContext());
|
|
|
|
ABAddrMsgCBProcStruc *pairs = ((XFE_AddrBookView*)m_abView)->getSelections();
|
|
|
|
if (pairs && pairs->m_count) {
|
|
XFE_ComposeView *composeView = (XFE_ComposeView *)MSG_GetFEData(pane);
|
|
|
|
if (composeView) {
|
|
XFE_ComposeFolderView *composeFolderView =
|
|
(XFE_ComposeFolderView *)composeView->getComposeFolderView();
|
|
|
|
if (composeFolderView)
|
|
composeFolderView->getAddrFolderView()->addrMsgCB(pairs);
|
|
}/* if */
|
|
}/* if */
|
|
}
|
|
|
|
void XFE_AddrBookFrame::abAddToMessage()
|
|
{
|
|
}
|
|
|
|
void XFE_AddrBookFrame::import()
|
|
{
|
|
|
|
AB_ImportFromFile(((XFE_AddrBookView *)m_abView)->getABPane(),
|
|
(MWContext *)m_abView->getContext());
|
|
|
|
}/* XFE_AddrBookFrame::import() */
|
|
|
|
void XFE_AddrBookFrame::saveAs()
|
|
{
|
|
|
|
AB_ExportToFile(((XFE_AddrBookView *)m_view)->getABPane(),
|
|
(MWContext *)m_abView->getContext());
|
|
|
|
}
|
|
|
|
XP_Bool XFE_AddrBookFrame::isOkToClose()
|
|
{
|
|
XFE_ABListSearchView *searchView = (XFE_ABListSearchView *) m_abView;
|
|
searchView->unRegisterInterested();
|
|
return TRUE;
|
|
}/* XFE_AddrBookFrame::isOkToClose() */
|
|
|
|
void XFE_AddrBookFrame::close() {
|
|
delete_response();
|
|
}
|
|
|
|
void XFE_AddrBookFrame::undo() {
|
|
m_abView->undo();
|
|
}
|
|
|
|
void XFE_AddrBookFrame::redo() {
|
|
m_abView->redo();
|
|
}
|
|
|
|
void XFE_AddrBookFrame::abDelete() {
|
|
m_abView->abDelete();
|
|
}
|
|
|
|
void XFE_AddrBookFrame::abDeleteAllEntries() {
|
|
m_abView->abDeleteAllEntries();
|
|
}
|
|
|
|
void XFE_AddrBookFrame::addToAddressBook() {
|
|
/* shall this be new user ??
|
|
*/
|
|
m_abView->newUser();
|
|
}
|
|
|
|
void XFE_AddrBookFrame::abVCard() {
|
|
/* shall this be new user ??
|
|
*/
|
|
m_abView->abVCard();
|
|
}
|
|
|
|
void XFE_AddrBookFrame::newList() {
|
|
/* popup new lsit
|
|
*/
|
|
m_abView->newList();
|
|
}
|
|
|
|
void XFE_AddrBookFrame::viewProperties() {
|
|
/* edit property
|
|
*/
|
|
m_abView->editProperty();
|
|
}
|
|
|
|
void XFE_AddrBookFrame::abCall() {
|
|
m_abView->abCall();
|
|
}
|
|
|
|
/* C API
|
|
*/
|
|
extern "C" MWContext*
|
|
fe_showAddrBook(Widget toplevel, XFE_Frame *parent_frame, Chrome *chromespec)
|
|
{
|
|
|
|
if (!XFE_AddrBookFrame::m_theFrame)
|
|
XFE_AddrBookFrame::m_theFrame =
|
|
new XFE_AddrBookFrame(toplevel, parent_frame, chromespec);
|
|
|
|
XFE_AddrBookFrame::m_theFrame->show();
|
|
|
|
return XFE_AddrBookFrame::m_theFrame->getContext();
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Toolbox methods
|
|
//
|
|
//////////////////////////////////////////////////////////////////////////
|
|
void
|
|
XFE_AddrBookFrame::toolboxItemClose(XFE_ToolboxItem * item)
|
|
{
|
|
XP_ASSERT( item != NULL );
|
|
|
|
// Address_Book_Toolbar
|
|
if (item == m_toolbar)
|
|
{
|
|
fe_globalPrefs.address_book_address_book_toolbar_open = False;
|
|
}
|
|
}
|
|
//////////////////////////////////////////////////////////////////////////
|
|
void
|
|
XFE_AddrBookFrame::toolboxItemOpen(XFE_ToolboxItem * item)
|
|
{
|
|
XP_ASSERT( item != NULL );
|
|
|
|
// Address_Book_Toolbar
|
|
if (item == m_toolbar)
|
|
{
|
|
fe_globalPrefs.address_book_address_book_toolbar_open = True;
|
|
}
|
|
}
|
|
//////////////////////////////////////////////////////////////////////////
|
|
void
|
|
XFE_AddrBookFrame::toolboxItemChangeShowing(XFE_ToolboxItem * item)
|
|
{
|
|
XP_ASSERT( item != NULL );
|
|
|
|
// Address_Book_Toolbar
|
|
if (item == m_toolbar)
|
|
{
|
|
fe_globalPrefs.address_book_address_book_toolbar_showing = item->isShown();
|
|
}
|
|
}
|
|
//////////////////////////////////////////////////////////////////////////
|
|
void
|
|
XFE_AddrBookFrame::configureToolbox()
|
|
{
|
|
// If a the frame was constructed with a chromespec, then we ignore
|
|
// all the preference magic.
|
|
if (m_chromespec_provided)
|
|
{
|
|
return;
|
|
}
|
|
|
|
// Make sure the toolbox is alive
|
|
if (!m_toolbox || (m_toolbox && !m_toolbox->isAlive()))
|
|
{
|
|
return;
|
|
}
|
|
|
|
// Address_Book_Toolbar
|
|
if (m_toolbar)
|
|
{
|
|
m_toolbar->setShowing(fe_globalPrefs.address_book_address_book_toolbar_showing);
|
|
m_toolbar->setOpen(fe_globalPrefs.address_book_address_book_toolbar_open);
|
|
}
|
|
}
|
|
//////////////////////////////////////////////////////////////////////////
|