diff -urNwb -x CVS -x WIN32_4.0_i386_DBG -x WIN32_20.1_i386_OBJ -x abidiff.cmd -x patch.txt -x .#*.* ..\abi.org\src\/af/xap/win/xap_Win32Dlg_FontChooser.cpp src/af/xap/win/xap_Win32Dlg_FontChooser.cpp --- ..\abi.org\src\/af/xap/win/xap_Win32Dlg_FontChooser.cpp Wed Dec 29 16:12:41 1999 +++ src/af/xap/win/xap_Win32Dlg_FontChooser.cpp Sat Jan 15 12:24:48 2000 @@ -188,7 +188,7 @@ m_bChangedUnderline = (lf.lfUnderline != m_bUnderline); m_bChangedStrikeOut = (lf.lfStrikeOut != m_bStrikeOut); if (m_bChangedUnderline || m_bChangedStrikeOut) - setFontDecoration(lf.lfUnderline,lf.lfStrikeOut); + setFontDecoration(lf.lfUnderline,UT_FALSE,lf.lfStrikeOut); } UT_DEBUGMSG(("FontChooserEnd: Family[%s%s] Size[%s%s] Weight[%s%s] Style[%s%s] Color[%s%s] Underline[%d%s] StrikeOut[%d%s]\n", diff -urNwb -x CVS -x WIN32_4.0_i386_DBG -x WIN32_20.1_i386_OBJ -x abidiff.cmd -x patch.txt -x .#*.* ..\abi.org\src\/wp/ap/Makefile src/wp/ap/Makefile --- ..\abi.org\src\/wp/ap/Makefile Wed Dec 29 18:34:43 1999 +++ src/wp/ap/Makefile Wed Jan 05 18:21:13 2000 @@ -33,6 +33,7 @@ $(OBJDIR)/ap_$(ABI_FE)Dialog_Options.$(OBJ_SUFFIX) \ $(OBJDIR)/ap_$(ABI_FE)Dialog_Paragraph.$(OBJ_SUFFIX) \ $(OBJDIR)/ap_$(ABI_FE)Dialog_Replace.$(OBJ_SUFFIX) \ + $(OBJDIR)/ap_$(ABI_FE)Dialog_Insert_DateTime.$(OBJ_SUFFIX) \ $(OBJDIR)/ap_$(ABI_FE)Dialog_Spell.$(OBJ_SUFFIX) \ $(OBJDIR)/ap_$(ABI_FE)Frame.$(OBJ_SUFFIX) \ $(OBJDIR)/ap_$(ABI_FE)LeftRuler.$(OBJ_SUFFIX) \ @@ -76,6 +77,7 @@ $(OBJDIR)/ap_Dialog_Paragraph.$(OBJ_SUFFIX) \ $(OBJDIR)/ap_Dialog_Replace.$(OBJ_SUFFIX) \ $(OBJDIR)/ap_Dialog_Spell.$(OBJ_SUFFIX) \ + $(OBJDIR)/ap_Dialog_Insert_DateTime.$(OBJ_SUFFIX) \ $(OBJDIR)/ap_EditMethods.$(OBJ_SUFFIX) \ $(OBJDIR)/ap_FrameData.$(OBJ_SUFFIX) \ $(OBJDIR)/ap_LeftRuler.$(OBJ_SUFFIX) \ diff -urNwb -x CVS -x WIN32_4.0_i386_DBG -x WIN32_20.1_i386_OBJ -x abidiff.cmd -x patch.txt -x .#*.* ..\abi.org\src\/wp/ap/win/Makefile src/wp/ap/win/Makefile --- ..\abi.org\src\/wp/ap/win/Makefile Wed Dec 29 19:12:19 1999 +++ src/wp/ap/win/Makefile Thu Jan 06 14:52:29 2000 @@ -32,6 +32,7 @@ ap_$(ABI_FE)Dialog_Replace.cpp \ ap_$(ABI_FE)Dialog_Paragraph.cpp \ ap_$(ABI_FE)Dialog_Spell.cpp \ + ap_$(ABI_FE)Dialog_Insert_DateTime.cpp \ ap_$(ABI_FE)Frame.cpp \ ap_$(ABI_FE)LeftRuler.cpp \ ap_$(ABI_FE)Prefs.cpp \ diff -urNwb -x CVS -x WIN32_4.0_i386_DBG -x WIN32_20.1_i386_OBJ -x abidiff.cmd -x patch.txt -x .#*.* ..\abi.org\src\/wp/ap/win/ap_Win32Dialog_All.h src/wp/ap/win/ap_Win32Dialog_All.h --- ..\abi.org\src\/wp/ap/win/ap_Win32Dialog_All.h Wed Dec 29 19:12:46 1999 +++ src/wp/ap/win/ap_Win32Dialog_All.h Thu Jan 06 15:05:23 2000 @@ -43,6 +43,7 @@ # include "ap_Win32Dialog_Options.h" # include "ap_Win32Dialog_Paragraph.h" # include "ap_Win32Dialog_Spell.h" +# include "ap_Win32Dialog_Insert_DateTime.h" // ... add new dialogs here ... @@ -64,6 +65,7 @@ DeclareDialog(AP_DIALOG_ID_SPELL, AP_Win32Dialog_Spell) DeclareDialog(AP_DIALOG_ID_OPTIONS, AP_Win32Dialog_Options) DeclareDialog(AP_DIALOG_ID_PARAGRAPH, AP_Win32Dialog_Paragraph) + DeclareDialog(AP_DIALOG_ID_INSERT_DATETIME, AP_Win32Dialog_Insert_DateTime) // ... also add new dialogs here ... diff -urNwb -x CVS -x WIN32_4.0_i386_DBG -x WIN32_20.1_i386_OBJ -x abidiff.cmd -x patch.txt -x .#*.* ..\abi.org\src\/wp/ap/win/ap_Win32Dialog_Insert_DateTime.cpp src/wp/ap/win/ap_Win32Dialog_Insert_DateTime.cpp --- ..\abi.org\src\/wp/ap/win/ap_Win32Dialog_Insert_DateTime.cpp Thu Jan 01 03:00:00 1970 +++ src/wp/ap/win/ap_Win32Dialog_Insert_DateTime.cpp Thu Jan 13 17:03:30 2000 @@ -0,0 +1,158 @@ +/* AbiWord + * Copyright (C) 1998 AbiSource, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + */ + +#include +#include + +#include "ut_string.h" +#include "ut_assert.h" +#include "ut_debugmsg.h" + +#include "xap_App.h" +#include "xap_Win32App.h" +#include "xap_Win32Frame.h" + +#include "ap_Strings.h" +#include "ap_Dialog_Id.h" +#include "ap_Dialog_Insert_DateTime.h" +#include "ap_Win32Dialog_Insert_DateTime.h" + +#include "ap_Win32Resources.rc2" + +/*****************************************************************/ + +AP_Win32Dialog_Insert_DateTime::AP_Win32Dialog_Insert_DateTime(XAP_DialogFactory * pDlgFactory, + XAP_Dialog_Id id) + : AP_Dialog_Insert_DateTime(pDlgFactory,id) +{ +} + +/*****************************************************************/ + +XAP_Dialog * AP_Win32Dialog_Insert_DateTime::static_constructor(XAP_DialogFactory * pFactory, + XAP_Dialog_Id id) +{ + AP_Win32Dialog_Insert_DateTime * p = new AP_Win32Dialog_Insert_DateTime(pFactory,id); + return p; +} + +/*****************************************************************/ + +void AP_Win32Dialog_Insert_DateTime::runModal(XAP_Frame * pFrame) +{ + // raise the dialog + XAP_Win32App * pWin32App = static_cast(m_pApp); + XAP_Win32Frame * pWin32Frame = static_cast(pFrame); + + LPCTSTR lpTemplate = NULL; + + UT_ASSERT(m_id == AP_DIALOG_ID_INSERT_DATETIME); + + lpTemplate = MAKEINTRESOURCE(AP_RID_DIALOG_INSERT_DATETIME); + + int result = DialogBoxParam(pWin32App->getInstance(),lpTemplate, + pWin32Frame->getTopLevelWindow(), + (DLGPROC)s_dlgProc,(LPARAM)this); + UT_ASSERT((result != -1)); +} + +BOOL CALLBACK AP_Win32Dialog_Insert_DateTime::s_dlgProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam) +{ + // This is a static function. + + AP_Win32Dialog_Insert_DateTime * pThis; + + + switch (msg){ + case WM_INITDIALOG: + pThis = (AP_Win32Dialog_Insert_DateTime *)lParam; + SetWindowLong(hWnd,DWL_USER,lParam); + return pThis->_onInitDialog(hWnd,wParam,lParam); + + case WM_COMMAND: + pThis = (AP_Win32Dialog_Insert_DateTime *)GetWindowLong(hWnd,DWL_USER); + return pThis->_onCommand(hWnd,wParam,lParam); + + default: + return 0; + } +} + +void AP_Win32Dialog_Insert_DateTime::SetFormatsList(void) +{ + int i; + char szCurrentDateTime[CURRENT_DATE_TIME_SIZE]; + time_t tim = time(NULL); + struct tm *pTime = localtime(&tim); + + for (i = 0;InsertDateTimeFmts[i] != NULL;i++) { + strftime(szCurrentDateTime, CURRENT_DATE_TIME_SIZE, InsertDateTimeFmts[i], pTime); + SendMessage(m_hwndFormats, LB_ADDSTRING, 0, (LPARAM)szCurrentDateTime); + } +} + +BOOL AP_Win32Dialog_Insert_DateTime::_onInitDialog(HWND hWnd, WPARAM wParam, LPARAM lParam) +{ + m_hwndFormats = GetDlgItem(hWnd, AP_RID_DIALOG_INSERT_DATETIME_FORMAT_LISTBOX); + SetFormatsList(); + SendMessage(m_hwndFormats,LB_SETCURSEL,(WPARAM)0,(LPARAM)0); + return 1; // 1 == we did not call SetFocus() +} + +BOOL AP_Win32Dialog_Insert_DateTime::_onCommand(HWND hWnd, WPARAM wParam, LPARAM lParam) +{ + WORD wNotifyCode = HIWORD(wParam); + WORD wId = LOWORD(wParam); + HWND hWndCtrl = (HWND)lParam; + + switch (wId){ + case IDCANCEL: // also AP_RID_DIALOG_BREAK_BTN_CANCEL + m_answer = a_CANCEL; + // fall through + + case IDOK: // also AP_RID_DIALOG_BREAK_BTN_OK + EndDialog(hWnd,0); + return 1; + case AP_RID_DIALOG_INSERT_DATETIME_FORMAT_LISTBOX: + switch (HIWORD(wParam)){ + case LBN_SELCHANGE: + _FormatListBoxChange(); + return 1; + + case LBN_DBLCLK: + EndDialog(hWnd,0); + return 1; + + default: + return 0; + } + break; + default: // we did not handle this notification + UT_DEBUGMSG(("WM_Command for id %ld\n",wId)); + return 0; // return zero to let windows take care of it. + } +} + + +void AP_Win32Dialog_Insert_DateTime::_FormatListBoxChange(void) +{ + m_iFormatIndex = SendMessage(m_hwndFormats, LB_GETCURSEL, 0, 0); +// SendMessage(m_hwndFormats,LB_GETTEXT,iSelectedRow,(LPARAM)m_szCurrentDateTime); +} + diff -urNwb -x CVS -x WIN32_4.0_i386_DBG -x WIN32_20.1_i386_OBJ -x abidiff.cmd -x patch.txt -x .#*.* ..\abi.org\src\/wp/ap/win/ap_Win32Dialog_Insert_DateTime.h src/wp/ap/win/ap_Win32Dialog_Insert_DateTime.h --- ..\abi.org\src\/wp/ap/win/ap_Win32Dialog_Insert_DateTime.h Thu Jan 01 03:00:00 1970 +++ src/wp/ap/win/ap_Win32Dialog_Insert_DateTime.h Thu Jan 13 16:59:54 2000 @@ -0,0 +1,45 @@ +/* AbiWord + * Copyright (C) 1998 AbiSource, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + */ + +#ifndef AP_WIN32DIALOG_INSERT_DATETIME_H +#define AP_WIN32DIALOG_INSERT_DATETIME_H + +#include "ap_Dialog_Insert_DateTime.h" + +class XAP_Win32Frame; + +class AP_Win32Dialog_Insert_DateTime : public AP_Dialog_Insert_DateTime +{ +public: + AP_Win32Dialog_Insert_DateTime(XAP_DialogFactory * pDlgFactory,XAP_Dialog_Id id); + + virtual void runModal(XAP_Frame * pFrame); + + static XAP_Dialog * static_constructor(XAP_DialogFactory *, XAP_Dialog_Id id); + static BOOL CALLBACK s_dlgProc(HWND,UINT,WPARAM,LPARAM); +protected: + BOOL _onInitDialog(HWND hWnd, WPARAM wParam, LPARAM lParam); + BOOL _onCommand(HWND hWnd, WPARAM wParam, LPARAM lParam); +private: + HWND m_hwndFormats; + void SetFormatsList(void); + void _FormatListBoxChange(void); +}; + +#endif /* AP_WIN32DIALOG_INSERT_DATETIME_H */ diff -urNwb -x CVS -x WIN32_4.0_i386_DBG -x WIN32_20.1_i386_OBJ -x abidiff.cmd -x patch.txt -x .#*.* ..\abi.org\src\/wp/ap/win/ap_Win32Res_DlgInsert_DateTime.rc2 src/wp/ap/win/ap_Win32Res_DlgInsert_DateTime.rc2 --- ..\abi.org\src\/wp/ap/win/ap_Win32Res_DlgInsert_DateTime.rc2 Thu Jan 01 03:00:00 1970 +++ src/wp/ap/win/ap_Win32Res_DlgInsert_DateTime.rc2 Wed Jan 05 18:53:31 2000 @@ -0,0 +1,56 @@ +// AbiWord +// Copyright (C) 1998 AbiSource, Inc. +// +// This program is free software; you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation; either version 2 +// of the License, or (at your option) any later version. +// +// This program 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +// 02111-1307, USA. +////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////// +// THIS FILE IS INCLUDED BY .cpp AND .rc FILES. +// +// *** RC.exe IS BRAIN-DAMAGED. GIVING THIS FILE AN .rc2 +// *** EXTENSION MAKES #INCLUDING THIS FILE FROM Win32Main.rc +// *** WORK -- IF THE SUFFIX IS .h ONLY THE #DEFINES WORK, THE +// *** DIALOGS DO NOT GET COMPILED. +// +////////////////////////////////////////////////////////////////// + +#define AP_RID_DIALOG_INSERT_DATETIME_AVAILABALE_FORMATS 1001 +#define AP_RID_DIALOG_INSERT_DATETIME_FORMAT_LISTBOX 1002 +//#define AP_RID_DIALOG_INSERT_DATETIME_BTN_DEFAULT 1003 +#define AP_RID_DIALOG_INSERT_DATETIME_BTN_OK IDOK +#define AP_RID_DIALOG_INSERT_DATETIME_BTN_CANCEL IDCANCEL + +#ifdef RC_INVOKED +// NOTE -- these placeholder strings get overridden at runtime +// NOTE -- they're just here to make sizing easier + + +AP_RID_DIALOG_INSERT_DATETIME DIALOG DISCARDABLE 0, 0, 170, 143 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Date and Time" +FONT 8, "MS Sans Serif" +BEGIN + LISTBOX AP_RID_DIALOG_INSERT_DATETIME_FORMAT_LISTBOX,7,20,101,116,LBS_USETABSTOPS | + LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | + WS_TABSTOP + DEFPUSHBUTTON "OK",AP_RID_DIALOG_INSERT_DATETIME_BTN_OK,113,7,50,14 + PUSHBUTTON "Cancel",AP_RID_DIALOG_INSERT_DATETIME_BTN_CANCEL,113,24,50,14 +// PUSHBUTTON "Default...",AP_RID_DIALOG_INSERT_DATETIME_BTN_DEFAULT,113,41,50,14 + LTEXT "Available Formats",AP_RID_DIALOG_INSERT_DATETIME_AVAILABALE_FORMATS,7,7,56,8 +END + + +#endif /* RC_INVOKED */ diff -urNwb -x CVS -x WIN32_4.0_i386_DBG -x WIN32_20.1_i386_OBJ -x abidiff.cmd -x patch.txt -x .#*.* ..\abi.org\src\/wp/ap/win/ap_Win32Resources.rc2 src/wp/ap/win/ap_Win32Resources.rc2 --- ..\abi.org\src\/wp/ap/win/ap_Win32Resources.rc2 Wed Dec 29 19:16:12 1999 +++ src/wp/ap/win/ap_Win32Resources.rc2 Thu Jan 06 15:00:48 2000 @@ -38,11 +38,13 @@ #define AP_RID_DIALOG_OPT_SPL 208 // tab-sub-dlg #define AP_RID_DIALOG_OPT_PREF 209 // tab-sub-dlg #define AP_RID_DIALOG_OPT_VIEW 210 // tab-sub-dlg +#define AP_RID_DIALOG_INSERT_DATETIME 211 #include "ap_Win32Resources_DialogReplace.rc2" #include "ap_Win32Res_DlgBreak.rc2" #include "ap_Win32Res_DlgSpell.rc2" #include "ap_Win32Res_DlgParagraph.rc2" #include "ap_Win32Res_DlgOptions.rc2" +#include "ap_Win32Res_DlgInsert_DateTime.rc2" #include "ap_Win32Res_Icons.rc2" diff -urNwb -x CVS -x WIN32_4.0_i386_DBG -x WIN32_20.1_i386_OBJ -x abidiff.cmd -x patch.txt -x .#*.* ..\abi.org\src\/wp/ap/xp/Makefile src/wp/ap/xp/Makefile --- ..\abi.org\src\/wp/ap/xp/Makefile Wed Dec 29 19:17:07 1999 +++ src/wp/ap/xp/Makefile Wed Jan 05 18:19:09 2000 @@ -30,6 +30,7 @@ ap_Dialog_Paragraph.cpp \ ap_Dialog_Replace.cpp \ ap_Dialog_Spell.cpp \ + ap_Dialog_Insert_DateTime.cpp \ ap_EditMethods.cpp \ ap_FrameData.cpp \ ap_LeftRuler.cpp \ diff -urNwb -x CVS -x WIN32_4.0_i386_DBG -x WIN32_20.1_i386_OBJ -x abidiff.cmd -x patch.txt -x .#*.* ..\abi.org\src\/wp/ap/xp/ap_Dialog_Id.h src/wp/ap/xp/ap_Dialog_Id.h --- ..\abi.org\src\/wp/ap/xp/ap_Dialog_Id.h Wed Dec 29 19:17:20 1999 +++ src/wp/ap/xp/ap_Dialog_Id.h Thu Jan 06 14:33:01 2000 @@ -37,6 +37,7 @@ AP_DIALOG_ID_SPELL, /* spell check */ AP_DIALOG_ID_PARAGRAPH, /* paragraph settings dialog */ AP_DIALOG_ID_OPTIONS, /* edit|options settings dialog */ + AP_DIALOG_ID_INSERT_DATETIME, /* insert date and time dialog */ /* ... add others here ... */ AP_DIALOG_ID__LAST__ /* must be last */ diff -urNwb -x CVS -x WIN32_4.0_i386_DBG -x WIN32_20.1_i386_OBJ -x abidiff.cmd -x patch.txt -x .#*.* ..\abi.org\src\/wp/ap/xp/ap_Dialog_Insert_DateTime.cpp src/wp/ap/xp/ap_Dialog_Insert_DateTime.cpp --- ..\abi.org\src\/wp/ap/xp/ap_Dialog_Insert_DateTime.cpp Thu Jan 01 03:00:00 1970 +++ src/wp/ap/xp/ap_Dialog_Insert_DateTime.cpp Sat Jan 15 12:34:58 2000 @@ -0,0 +1,47 @@ +/* AbiWord + * Copyright (C) 1998 AbiSource, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + */ + +#include +#include +#include +#include "ut_assert.h" +#include "ut_string.h" +#include "ut_debugmsg.h" + +#include "xap_Dialog_Id.h" +#include "xap_DialogFactory.h" +#include "xap_Dlg_MessageBox.h" + +#include "ap_Dialog_Insert_DateTime.h" + +AP_Dialog_Insert_DateTime::AP_Dialog_Insert_DateTime(XAP_DialogFactory * pDlgFactory, XAP_Dialog_Id id) + : XAP_Dialog_NonPersistent(pDlgFactory,id) +{ + m_answer = a_OK; +} + +AP_Dialog_Insert_DateTime::tAnswer AP_Dialog_Insert_DateTime::getAnswer(void) const +{ + return m_answer; +} + +const char *AP_Dialog_Insert_DateTime::GetDateTimeFormat(void) const +{ + return (const char *)InsertDateTimeFmts[m_iFormatIndex]; +} diff -urNwb -x CVS -x WIN32_4.0_i386_DBG -x WIN32_20.1_i386_OBJ -x abidiff.cmd -x patch.txt -x .#*.* ..\abi.org\src\/wp/ap/xp/ap_Dialog_Insert_DateTime.h src/wp/ap/xp/ap_Dialog_Insert_DateTime.h --- ..\abi.org\src\/wp/ap/xp/ap_Dialog_Insert_DateTime.h Thu Jan 01 03:00:00 1970 +++ src/wp/ap/xp/ap_Dialog_Insert_DateTime.h Sat Jan 15 12:35:18 2000 @@ -0,0 +1,70 @@ +/* AbiWord + * Copyright (C) 1998 AbiSource, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + */ + +#ifndef AP_DIALOG_INSERT_DATETIME_H +#define AP_DIALOG_INSERT_DATETIME_H + +#include "xap_Frame.h" +#include "xap_Dialog.h" +#include "xav_View.h" + +/* +M/d/yy +dddd, MMMM dd, yyyy +MMMM d, yyyy +M/d/yyyy +yyyy-MM-dd +d-MMM-yy +M.d.yy +MMM. d, yy +d MMMM, yyyy +MMMM, yyyy +MMM-yy +M/d/yy h:mm +M/d/yy h:mm:ss +h:mm +h:mm:ss +HH:mm +HH:mm:ss +*/ + +#define CURRENT_DATE_TIME_SIZE 256 + +static const char *InsertDateTimeFmts[] = { + "%m/%d/%y","%A, %B %d, %Y","%B %d, %Y","%m/%d/%Y","%Y-%m-%d","%d-%b-%y", + "%m.%d.%y","%b. %d, %y","%d %B, %Y","%B, %Y","%b-%y","%m/%d/%y %H:%M", + "%m/%d/%y %H:%M:%S","%H:%M","%H:%M:%S",NULL +}; + +class XAP_Frame; + +class AP_Dialog_Insert_DateTime : public XAP_Dialog_NonPersistent +{ +public: + typedef enum { a_OK, a_CANCEL } tAnswer; + + AP_Dialog_Insert_DateTime(XAP_DialogFactory * pDlgFactory, XAP_Dialog_Id id); + AP_Dialog_Insert_DateTime::tAnswer getAnswer(void) const; + const char *GetDateTimeFormat(void) const; +protected: + AP_Dialog_Insert_DateTime::tAnswer m_answer; + int m_iFormatIndex; +}; + +#endif /* AP_DIALOG_INSERT_DATETIME_H */ diff -urNwb -x CVS -x WIN32_4.0_i386_DBG -x WIN32_20.1_i386_OBJ -x abidiff.cmd -x patch.txt -x .#*.* ..\abi.org\src\/wp/ap/xp/ap_EditMethods.cpp src/wp/ap/xp/ap_EditMethods.cpp --- ..\abi.org\src\/wp/ap/xp/ap_EditMethods.cpp Fri Jan 14 21:17:17 2000 +++ src/wp/ap/xp/ap_EditMethods.cpp Sat Jan 15 12:28:16 2000 @@ -20,6 +20,7 @@ #include #include #include +#include #include "ut_debugmsg.h" #include "ut_string.h" #include "ut_bytebuf.h" @@ -47,6 +48,7 @@ #include "ap_Dialog_Paragraph.h" #include "ap_Dialog_Options.h" #include "ap_Dialog_Spell.h" +#include "ap_Dialog_Insert_DateTime.h" #include "xap_DialogFactory.h" #include "xap_Dlg_About.h" @@ -3786,6 +3788,45 @@ return s_doZoomDlg(pView); } +static UT_Bool s_doInsertDateTime(FV_View * pView) +{ + XAP_Frame * pFrame = (XAP_Frame *) pView->getParentData(); + UT_ASSERT(pFrame); + + pFrame->raise(); + + XAP_DialogFactory * pDialogFactory + = (XAP_DialogFactory *)(pFrame->getDialogFactory()); + + AP_Dialog_Insert_DateTime * pDialog + = (AP_Dialog_Insert_DateTime *)(pDialogFactory->requestDialog(AP_DIALOG_ID_INSERT_DATETIME)); + UT_ASSERT(pDialog); + + pDialog->runModal(pFrame); + + if (pDialog->getAnswer() == AP_Dialog_Insert_DateTime::a_OK) + { + time_t tim = time(NULL); + struct tm *pTime = localtime(&tim); + UT_UCSChar *CurrentDateTime = NULL; + char szCurrentDateTime[CURRENT_DATE_TIME_SIZE]; + + strftime(szCurrentDateTime,CURRENT_DATE_TIME_SIZE,pDialog->GetDateTimeFormat(),pTime); + UT_UCS_cloneString_char(&CurrentDateTime,szCurrentDateTime); + pView->cmdCharInsert(CurrentDateTime,UT_UCS_strlen(CurrentDateTime)); + FREEP(CurrentDateTime); + } + + pDialogFactory->releaseDialog(pDialog); + + return UT_TRUE; +} + +Defun1(insDateTime) +{ + ABIWORD_VIEW; + return s_doInsertDateTime(pView); +} /*****************************************************************/ /*****************************************************************/ @@ -3805,15 +3846,6 @@ return UT_TRUE; } -Defun1(insDateTime) -{ - XAP_Frame * pFrame = (XAP_Frame *) pAV_View->getParentData(); - UT_ASSERT(pFrame); - - s_TellNotImplemented(pFrame, "Insert date/time dialog", __LINE__); - return UT_TRUE; -} - Defun1(insField) { XAP_Frame * pFrame = (XAP_Frame *) pAV_View->getParentData();