Great work Jordi, commited!

Marc

Win32 Insert Table Dialog

CVS:
----------------------------------------------------------------------
CVS: Enter Log.  Lines beginning with `CVS:' are removed automatically
CVS:
CVS: Committing in .
CVS:
CVS: Modified Files:
CVS:    Makefile src/wp/ap/win/Makefile
CVS:    src/wp/ap/win/ap_Win32Dialog_All.h
CVS:    src/wp/ap/win/ap_Win32Resources.rc2
CVS: Added Files:
CVS:    src/wp/ap/win/ap_Win32Dialog_InsertTable.cpp
CVS:    src/wp/ap/win/ap_Win32Dialog_InsertTable.h
CVS:    src/wp/ap/win/ap_Win32Res_InsertTable.rc2
CVS:
----------------------------------------------------------------------



Op wo 10-07-2002, om 16:16 schreef Jordi Mas:
> Hi guys,
> 
> I have implented the InsertTable class for win32. The  tree new files that 
> implement the class and also the diff.txt that should be applied (makefiles, etc)
> 
> Can any one commit these changes?
> 
> Best Regards,
> 
> Jordi,
> -- 
> 
> Jordi Mas
> http://www.softcatala.org
> 
> 
> 
> ----
> 

> /* AbiWord
>  * Copyright (C) 2002 Jordi Mas i Hern�ndez <[EMAIL PROTECTED]>
>  * 
>  * 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 <windows.h>
> #include <commdlg.h>
> #include <commctrl.h>
> 
> #include "ut_types.h"
> #include "ut_string.h"
> #include "ut_assert.h"
> #include "ut_debugmsg.h"
> #include "ut_Win32OS.h"
> 
> #include "xap_App.h"
> #include "xap_Win32App.h"
> #include "xap_Win32Frame.h"
> 
> #include "ap_Win32App.h"
> #include "ap_Win32Frame.h"
> #include "ap_Strings.h"
> #include "ap_Dialog_Id.h"
> 
> #include "AP_Win32Dialog_InsertTable.h"
> #include "ap_Win32Resources.rc2"
> 
> #define BUFSIZE               128
> 
> /*****************************************************************/
> 
> XAP_Dialog* AP_Win32Dialog_InsertTable::static_constructor(XAP_DialogFactory* 
>pDlgFactory, XAP_Dialog_Id id)
> {
>       AP_Win32Dialog_InsertTable* dlg = new AP_Win32Dialog_InsertTable (pDlgFactory, 
>id);
>       return dlg;
> }
> 
> //
> // Init
> //
> AP_Win32Dialog_InsertTable::AP_Win32Dialog_InsertTable (XAP_DialogFactory 
>*pDlgFactory, XAP_Dialog_Id id)
> : AP_Dialog_InsertTable (pDlgFactory, id), m_pWin32Frame(NULL), m_hwndDlg(NULL)
> {
>       
> }
> AP_Win32Dialog_InsertTable::~AP_Win32Dialog_InsertTable()
> {
> }
> 
> 
> void AP_Win32Dialog_InsertTable::runModal(XAP_Frame *pFrame)
> {
>       UT_ASSERT(pFrame);      
>       
>       // raise the dialog
>       XAP_Win32App * pWin32App = static_cast<XAP_Win32App *>(m_pApp);
>       m_pWin32Frame = static_cast<XAP_Win32Frame *>(pFrame);
> 
>       LPCTSTR lpTemplate = NULL;
> 
>       UT_ASSERT(m_id == AP_DIALOG_ID_INSERT_TABLE);
> 
>       lpTemplate = MAKEINTRESOURCE(AP_RID_DIALOG_INSERT_TABLE);
> 
>       int result = DialogBoxParam(pWin32App->getInstance(),lpTemplate,
>                                                               
>m_pWin32Frame->getTopLevelWindow(),
>                                                               
>(DLGPROC)s_dlgProc,(LPARAM)this);
>       UT_ASSERT((result != -1));
> 
> }
> 
> /*****************************************************************/
> 
> #define GWL(hwnd)             (AP_Win32Dialog_InsertTable*)GetWindowLong((hwnd), 
>DWL_USER)
> #define SWL(hwnd, d)  (AP_Win32Dialog_InsertTable*)SetWindowLong((hwnd), 
>DWL_USER,(LONG)(d))
> 
> 
> BOOL CALLBACK AP_Win32Dialog_InsertTable::s_dlgProc(HWND hWnd,UINT msg,WPARAM 
>wParam,LPARAM lParam)
> {
>               
>       AP_Win32Dialog_InsertTable * pThis;
>       
>       switch (msg)
>       {
>       case WM_INITDIALOG:
>               pThis = (AP_Win32Dialog_InsertTable *)lParam;
>               SWL(hWnd,lParam);
>               return pThis->_onInitDialog(hWnd,wParam,lParam);
>               
>       case WM_COMMAND:
>               pThis = GWL(hWnd);
>               return pThis->_onCommand(hWnd,wParam,lParam);
>       default:
>               return 0;
>       }
> }
> 
> 
> #define _DS(c,s)      
>SetDlgItemText(hWnd,AP_RID_DIALOG_INSERTTABLE_##c,pSS->getValue(AP_STRING_ID_##s))
> #define _DSX(c,s)     
>SetDlgItemText(hWnd,AP_RID_DIALOG_INSERTTABLE_##c,pSS->getValue(XAP_STRING_ID_##s))
> 
> 
> // This handles the WM_INITDIALOG message for the top-level dialog.
> BOOL AP_Win32Dialog_InsertTable::_onInitDialog(HWND hWnd, WPARAM wParam, LPARAM 
>lParam)
> {     
>       const XAP_StringSet * pSS = m_pApp->getStringSet();
>       
>       m_hwndDlg = hWnd;
>               
>       // localize controls (TODO: add the missing controls)
>       _DSX(BTN_OK,            DLG_OK);
>       _DSX(BTN_CANCEL,        DLG_Cancel);            
> 
>       // Set Spin range (TODO: check if the max value is correct, copied from the 
>unix version)
>       
>SendMessage(GetDlgItem(hWnd,AP_RID_DIALOG_INSERTTABLE_SPIN_COLUMN),UDM_SETRANGE,(WPARAM)1,(WPARAM)9999);
>       
>SendMessage(GetDlgItem(hWnd,AP_RID_DIALOG_INSERTTABLE_SPIN_ROW),UDM_SETRANGE,(WPARAM)1,(WPARAM)9999);
>       
>       // Limit to four chars
>       
>SendMessage(GetDlgItem(hWnd,AP_RID_DIALOG_INSERTTABLE_TEXT_COLUMN),EM_LIMITTEXT,(WPARAM)5,(WPARAM)0);
>       
>SendMessage(GetDlgItem(hWnd,AP_RID_DIALOG_INSERTTABLE_TEXT_ROW),EM_LIMITTEXT,(WPARAM)5,(WPARAM)0);
>       
>       return 1;               
> }
> 
> //
> // Gets the values from the spin controls
> //
> void AP_Win32Dialog_InsertTable::getCtrlValues(void)
> {     
>       char    szValue[BUFSIZE];
>               
>       if (GetDlgItemText(m_hwndDlg, AP_RID_DIALOG_INSERTTABLE_VAL_COLUMN, szValue, 
>BUFSIZE )) 
>               m_numCols = atoi(szValue);
>       
>       if (GetDlgItemText(m_hwndDlg, AP_RID_DIALOG_INSERTTABLE_VAL_ROW, szValue, 
>BUFSIZE ))    
>               m_numRows = atoi(szValue);
>       
>       
> }
> 
> BOOL AP_Win32Dialog_InsertTable::_onCommand(HWND hWnd, WPARAM wParam, LPARAM lParam)
> {
>       WORD wNotifyCode = HIWORD(wParam);
>       WORD wId = LOWORD(wParam);
>       HWND hWndCtrl = (HWND)lParam;   
> 
>       switch (wId)
>       {
>       case IDCANCEL:                                          
>               m_answer = a_CANCEL;            
>               // fall through
> 
>       case IDOK:              
>       
>               m_answer = a_OK;
>               getCtrlValues();                
>               EndDialog(hWnd,0);
>               return 1;
> 
>       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.
>       }
> }
> 
> ----
> 

> // AbiWord
> // Copyright (C) 2000 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_INSERTTABLE_BTN_CANCEL                  IDCANCEL
> #define AP_RID_DIALOG_INSERTTABLE_BTN_OK                      IDOK
> 
> #define AP_RID_DIALOG_INSERTTABLE_COLUMN                      1200
> #define AP_RID_DIALOG_INSERTTABLE_SPIN_COLUMN                 1201
> #define AP_RID_DIALOG_INSERTTABLE_VAL_COLUMN                  1202
> #define AP_RID_DIALOG_INSERTTABLE_TEXT_COLUMN                 1203
> #define AP_RID_DIALOG_INSERTTABLE_SPIN_ROW                    1204
> #define AP_RID_DIALOG_INSERTTABLE_TEXT_ROW                    1205
> #define AP_RID_DIALOG_INSERTTABLE_VAL_ROW                     1206
> 
> #ifdef RC_INVOKED
> // NOTE -- these placeholder strings get overridden at runtime 
> // NOTE -- they're just here to make sizing easier
> 
> //AP_RID_DIALOG_INSERT_TABLE DIALOG DISCARDABLE  0, 0, 200, 120
> //STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
> //CAPTION "Insert Table"
> //FONT 8, "MS Sans Serif"
> //BEGIN
> //    LTEXT           "Statistics:",          AP_RID_DIALOG_WORDCOUNT_TEXT_STATS,    
> 7,19,43,8
> //    GROUPBOX        "",                                     
>AP_RID_DIALOG_WORDCOUNT_BOX,            7,24,119,70
> //    LTEXT           "Pages",                        
>AP_RID_DIALOG_WORDCOUNT_TEXT_PAGE,      12,32,109,8
> //    LTEXT           "Words",                        
>AP_RID_DIALOG_WORDCOUNT_TEXT_WORD,      12,42,109,8
> //    LTEXT           "Characters (no spaces)",       
> //                                                                            
>AP_RID_DIALOG_WORDCOUNT_TEXT_CH,        12,52,109,8
> //    LTEXT           "Characters (with spaces)",     
> //                                                                            
>AP_RID_DIALOG_WORDCOUNT_TEXT_CHSP,      12,62,109,8
> //    LTEXT           "Paragraphs",           AP_RID_DIALOG_WORDCOUNT_TEXT_PARA,     
> 12,72,109,8
> //    LTEXT           "Lines",                        
>AP_RID_DIALOG_WORDCOUNT_TEXT_LINE,      12,82,109,8
> //    GROUPBOX        "",                                     
>AP_RID_DIALOG_WORDCOUNT_BOX,            125,24,67,70
> //    RTEXT           "100,000,000",          AP_RID_DIALOG_WORDCOUNT_VAL_PAGE,      
> 136,32,51,8
> //    RTEXT           "100,000,000",          AP_RID_DIALOG_WORDCOUNT_VAL_WORD,      
> 136,42,51,8
> //    RTEXT           "100,000,000",          AP_RID_DIALOG_WORDCOUNT_VAL_CH,        
> 136,52,51,8
> //    RTEXT           "100,000,000",          AP_RID_DIALOG_WORDCOUNT_VAL_CHSP,      
> 136,62,51,8
> //    RTEXT           "100,000,000",          AP_RID_DIALOG_WORDCOUNT_VAL_PARA,      
> 136,72,51,8
> //    RTEXT           "100,000,000",          AP_RID_DIALOG_WORDCOUNT_VAL_LINE,      
> 136,82,51,8
> //    DEFPUSHBUTTON   "&Close",                       
>AP_RID_DIALOG_WORDCOUNT_BTN_CLOSE,      130,101,62,14
> //    PUSHBUTTON      "&Update",                      
>AP_RID_DIALOG_WORDCOUNT_BTN_UPDATE,     7,101,62,14
> //    AUTOCHECKBOX    "&Auto Update", 
>AP_RID_DIALOG_WORDCOUNT_CHK_AUTOUPDATE,7,7,60,10
> //    EDITTEXT                                                
>AP_RID_DIALOG_WORDCOUNT_EDIT_RATE,69,7,23,10, ES_LEFT | WS_BORDER | WS_TABSTOP
> //    CONTROL         "Spin",                         
>AP_RID_DIALOG_WORDCOUNT_SPIN_RATE,      
> //                                                                            
>"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | 
> //                                                                            
>UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,94,7,8,8
> //    LTEXT           "Seconds between 
>updates",AP_RID_DIALOG_WORDCOUNT_TEXT_RATE,93,8,114,8
> //END
> 
> 
> AP_RID_DIALOG_INSERT_TABLE DIALOG DISCARDABLE  0, 0, 157, 87
> STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
> CAPTION "Insert Table"
> FONT 8, "MS Sans Serif"
> BEGIN
>     DEFPUSHBUTTON   "OK!",AP_RID_DIALOG_INSERTTABLE_BTN_OK,17,65,50,14
>     PUSHBUTTON      "Cancel",AP_RID_DIALOG_INSERTTABLE_BTN_CANCEL,77,65,50,14
>     EDITTEXT        AP_RID_DIALOG_INSERTTABLE_VAL_COLUMN,103,19,20,14,ES_AUTOHSCROLL
>     CONTROL         
>"Spin2",AP_RID_DIALOG_INSERTTABLE_SPIN_COLUMN,"msctls_updown32",UDS_SETBUDDYINT | 
>                     UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS ,122,19,
>                     11,14
>     LTEXT           "Number of 
>columns",AP_RID_DIALOG_INSERTTABLE_TEXT_COLUMN,13,21,82,12
>     EDITTEXT        AP_RID_DIALOG_INSERTTABLE_VAL_ROW,103,39,20,14,ES_AUTOHSCROLL
>     CONTROL         
>"Spin2",AP_RID_DIALOG_INSERTTABLE_SPIN_ROW,"msctls_updown32",UDS_SETBUDDYINT | 
>                     UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,123,39,
>                     11,14
>     LTEXT           "Number of rows", AP_RID_DIALOG_INSERTTABLE_TEXT_ROW,14,42,80,12
>     LTEXT           "Table size", -1,5,5,37,8
> END
> 
> #endif /* RC_INVOKED */
> 
> ----
> 

> /* AbiWord
>  * Copyright (C) 2001 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_InsertTable_H
> #define AP_Win32Dialog_InsertTable_H
> 
> #include "ap_Dialog_InsertTable.h"
> 
> class AP_Win32Dialog_InsertTable : public AP_Dialog_InsertTable
> {
> public:
>       
>       AP_Win32Dialog_InsertTable (XAP_DialogFactory *pDlgFactory, XAP_Dialog_Id id);
>       virtual ~AP_Win32Dialog_InsertTable (void);
> 
>       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:
> 
>       XAP_Win32Frame *        m_pWin32Frame;          
>       HWND                    m_hwndDlg;      //  dialog box Windows
>       
>       
>       BOOL                    _onInitDialog(HWND hWnd, WPARAM wParam, LPARAM lParam);
>       BOOL                    _onCommand(HWND hWnd, WPARAM wParam, LPARAM lParam);   
>       
>       void                    getCtrlValues(void);
> };
> 
> #endif
> 
> ----
> 

> Index: src/wp/ap/win/Makefile
> ===================================================================
> RCS file: /cvsroot/abi/src/wp/ap/win/Makefile,v
> retrieving revision 1.54
> diff -c -r1.54 Makefile
> *** src/wp/ap/win/Makefile    25 May 2002 17:42:33 -0000      1.54
> --- src/wp/ap/win/Makefile    10 Jul 2002 14:07:22 -0000
> ***************
> *** 29,34 ****
> --- 29,35 ----
>                       ap_$(ABI_FE)DialogFactory.cpp           \
>                       ap_$(ABI_FE)Dialog_New.cpp              \
>                       ap_$(ABI_FE)Dialog_Break.cpp            \
> +                     ap_$(ABI_FE)Dialog_InsertTable.cpp      \
>                       ap_$(ABI_FE)Dialog_Field.cpp            \
>                       ap_$(ABI_FE)Dialog_Insert_DateTime.cpp  \
>                       ap_$(ABI_FE)Dialog_Lists.cpp            \
> Index: src/wp/ap/win/ap_Win32Dialog_All.h
> ===================================================================
> RCS file: /cvsroot/abi/src/wp/ap/win/ap_Win32Dialog_All.h,v
> retrieving revision 1.47
> diff -c -r1.47 ap_Win32Dialog_All.h
> *** src/wp/ap/win/ap_Win32Dialog_All.h        25 May 2002 17:42:32 -0000      1.47
> --- src/wp/ap/win/ap_Win32Dialog_All.h        10 Jul 2002 14:07:22 -0000
> ***************
> *** 65,72 ****
>   #   include "ap_Win32Dialog_InsertBookmark.h"
>   #   include "ap_Win32Dialog_InsertHyperlink.h"
>   #   include "ap_Win32Dialog_New.h"
> ! #   include "ap_Win32Dialog_MarkRevisions.h"
> ! #   include "ap_Win32Dialog_ListRevisions.h"
>       // ... add new dialogs here ...
>   
>   #else
> --- 65,73 ----
>   #   include "ap_Win32Dialog_InsertBookmark.h"
>   #   include "ap_Win32Dialog_InsertHyperlink.h"
>   #   include "ap_Win32Dialog_New.h"
> ! #   include "ap_Win32Dialog_MarkRevisions.h"
> ! #   include "ap_Win32Dialog_ListRevisions.h"
> ! #           include "ap_Win32Dialog_InsertTable.h"
>       // ... add new dialogs here ...
>   
>   #else
> ***************
> *** 115,120 ****
> --- 116,122 ----
>       DeclareDialog(AP_DIALOG_ID_FILE_NEW,            AP_Win32Dialog_New)
>       DeclareDialog(AP_DIALOG_ID_MARK_REVISIONS,      AP_Win32Dialog_MarkRevisions)
>       DeclareDialog(AP_DIALOG_ID_LIST_REVISIONS,      AP_Win32Dialog_ListRevisions)
> +     DeclareDialog(AP_DIALOG_ID_INSERT_TABLE,        AP_Win32Dialog_InsertTable)
>       // ... also add new dialogs here ...
>   
>   #endif
> Index: src/wp/ap/win/ap_Win32Resources.rc2
> ===================================================================
> RCS file: /cvsroot/abi/src/wp/ap/win/ap_Win32Resources.rc2,v
> retrieving revision 1.31
> diff -c -r1.31 ap_Win32Resources.rc2
> *** src/wp/ap/win/ap_Win32Resources.rc2       25 May 2002 17:42:33 -0000      1.31
> --- src/wp/ap/win/ap_Win32Resources.rc2       10 Jul 2002 14:07:22 -0000
> ***************
> *** 59,64 ****
> --- 59,65 ----
>   #define AP_RID_DIALOG_NEW                                           229
>   #define AP_RID_DIALOG_MARK_REVISIONS            230
>   #define AP_RID_DIALOG_LIST_REVISIONS            231
> + #define AP_RID_DIALOG_INSERT_TABLE          232
>   
>   
>   #include "ap_Win32Res_DlgPageSetup.rc2"
> ***************
> *** 85,87 ****
> --- 86,89 ----
>   #include "ap_Win32Res_DlgNew.rc2"
>   #include "ap_Win32Res_DlgMarkRevisions.rc2"
>   #include "ap_Win32Res_DlgListRevisions.rc2"
> + #include "ap_Win32Res_InsertTable.rc2"
> 


Reply via email to