summaryrefslogtreecommitdiff
path: root/automation/source/inc
diff options
context:
space:
mode:
Diffstat (limited to 'automation/source/inc')
-rw-r--r--automation/source/inc/cmdbasestream.hxx88
-rw-r--r--automation/source/inc/icommstream.hxx67
-rw-r--r--automation/source/inc/rcontrol.hxx499
-rw-r--r--automation/source/inc/sttresid.hxx45
-rw-r--r--automation/source/inc/svcommstream.hxx59
-rw-r--r--automation/source/inc/testapp.hxx198
-rw-r--r--automation/source/inc/testtool.hxx75
7 files changed, 1031 insertions, 0 deletions
diff --git a/automation/source/inc/cmdbasestream.hxx b/automation/source/inc/cmdbasestream.hxx
new file mode 100644
index 000000000000..9af701f4fc25
--- /dev/null
+++ b/automation/source/inc/cmdbasestream.hxx
@@ -0,0 +1,88 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: cmdbasestream.hxx,v $
+ * $Revision: 1.6 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org 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 Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+/*************************************************************************
+ *
+ * ATTENTION
+ * This file is intended to work inside and outside the StarOffice environment.
+ * Only adaption of file commtypes.hxx should be necessary. Else it is a bug!
+ *
+ ************************************************************************/
+
+#ifndef _CMDBASESTREAM_HXX_
+#define _CMDBASESTREAM_HXX_
+
+#include <automation/commtypes.hxx>
+#include "icommstream.hxx"
+
+class CmdBaseStream
+{
+protected:
+ ICommStream* pCommStream;
+ CmdBaseStream();
+ virtual ~CmdBaseStream();
+
+public:
+
+ void GenError( SmartId *pUId, comm_String *pString );
+
+ void GenReturn( comm_USHORT nRet, comm_ULONG nNr );
+ void GenReturn( comm_USHORT nRet, SmartId *pUId, comm_ULONG nNr );
+ void GenReturn( comm_USHORT nRet, SmartId *pUId, comm_String *pString );
+ void GenReturn( comm_USHORT nRet, SmartId *pUId, comm_BOOL bBool );
+ void GenReturn( comm_USHORT nRet, SmartId *pUId, comm_ULONG nNr, comm_String *pString, comm_BOOL bBool );
+
+// MacroRecorder
+ void GenReturn( comm_USHORT nRet, SmartId *pUId, comm_USHORT nMethod );
+ void GenReturn( comm_USHORT nRet, SmartId *pUId, comm_USHORT nMethod, comm_String *pString );
+ void GenReturn( comm_USHORT nRet, SmartId *pUId, comm_USHORT nMethod, comm_String *pString, comm_BOOL bBool );
+ void GenReturn( comm_USHORT nRet, SmartId *pUId, comm_USHORT nMethod, comm_BOOL bBool );
+ void GenReturn( comm_USHORT nRet, SmartId *pUId, comm_USHORT nMethod, comm_ULONG nNr );
+
+ void Read ( comm_USHORT &nNr );
+ void Read ( comm_ULONG &nNr );
+ void Read (comm_UniChar* &aString, comm_USHORT &nLenInChars );
+ void Read ( comm_BOOL &bBool );
+ comm_USHORT GetNextType();
+
+ void Write( comm_USHORT nNr );
+ void Write( comm_ULONG nNr );
+ void Write( const comm_UniChar* aString, comm_USHORT nLenInChars );
+ void Write( comm_BOOL bBool );
+
+// Complex Datatypes to be handled system dependent
+ virtual void Read ( comm_String *&pString );
+ virtual void Read ( SmartId* &pId );
+
+ virtual void Write( comm_String *pString );
+ virtual void Write( SmartId* pId );
+};
+
+#endif
diff --git a/automation/source/inc/icommstream.hxx b/automation/source/inc/icommstream.hxx
new file mode 100644
index 000000000000..9e0c0a44df47
--- /dev/null
+++ b/automation/source/inc/icommstream.hxx
@@ -0,0 +1,67 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: icommstream.hxx,v $
+ * $Revision: 1.4 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org 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 Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+/*************************************************************************
+ *
+ * ATTENTION
+ * This file is intended to work inside and outside the StarOffice environment.
+ * Only adaption of file commtypes.hxx should be necessary. Else it is a bug!
+ *
+ ************************************************************************/
+
+#ifndef _AUTOMATION_ICOMMSTREAM_HXX_
+#define _AUTOMATION_ICOMMSTREAM_HXX_
+
+#include <automation/commtypes.hxx>
+
+class ICommStream
+{
+public:
+
+ ICommStream(){}
+ virtual ~ICommStream(){}
+
+ virtual ICommStream& operator>>( comm_USHORT& rUShort )=0;
+ virtual ICommStream& operator>>( comm_ULONG& rULong )=0;
+ virtual ICommStream& operator>>( comm_BOOL& rChar )=0;
+
+ virtual ICommStream& operator<<( comm_USHORT nUShort )=0;
+ virtual ICommStream& operator<<( comm_ULONG nULong )=0;
+ virtual ICommStream& operator<<( comm_BOOL nChar )=0;
+
+ virtual comm_ULONG Read( void* pData, comm_ULONG nSize )=0;
+ virtual comm_ULONG Write( const void* pData, comm_ULONG nSize )=0;
+
+ virtual comm_BOOL IsEof() const=0;
+ virtual comm_ULONG SeekRel( long nPos )=0;
+
+};
+
+#endif
diff --git a/automation/source/inc/rcontrol.hxx b/automation/source/inc/rcontrol.hxx
new file mode 100644
index 000000000000..8a5750284578
--- /dev/null
+++ b/automation/source/inc/rcontrol.hxx
@@ -0,0 +1,499 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: rcontrol.hxx,v $
+ * $Revision: 1.10 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org 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 Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+/*************************************************************************
+ *
+ * ATTENTION
+ * This file is intended to work inside and outside the StarOffice environment.
+ * Only adaption of file commtypes.hxx should be necessary. Else it is a bug!
+ *
+ ************************************************************************/
+
+#ifndef _RCONTROL_HXX
+#define _RCONTROL_HXX
+
+
+#define UID_ACTIVE 0
+
+
+#define SI_IPCCommandBlock 1
+#define SI_SocketCommandBlock SI_IPCCommandBlock // Zumindest erstmal
+#define SI_DirectCommandBlock 2
+#define SIControl 3
+#define SISlot 4
+#define SIFlow 5
+#define SICommand 6
+#define SIUnoSlot 7
+#define SIStringControl 8
+
+#define SIReturnBlock 11
+#define SIReturn 12
+#define SIReturnError 13
+
+// Typisierung im Stream
+#define BinUSHORT 11
+#define BinULONG 14
+#define BinString 12
+#define BinBool 13
+#define BinSbxValue 15
+
+
+// Classes
+// !!!Diese Defines duerfen niemals geaendert werden!!!
+#define C_NoType -1
+// Maximale 32 einfache Controls
+#define C_TabControl 0
+#define C_RadioButton 1
+#define C_CheckBox 2
+#define C_TriStateBox 3
+#define C_Edit 4
+#define C_MultiLineEdit 5
+#define C_MultiListBox 6
+#define C_ListBox 7
+#define C_ComboBox 8
+#define C_PushButton 9
+
+#define C_SpinField 10
+#define C_PatternField 11
+#define C_NumericField 12
+#define C_MetricField 13
+#define C_CurrencyField 14
+#define C_DateField 15
+#define C_TimeField 16
+
+#define C_ImageRadioButton 17
+#define C_NumericBox 18
+#define C_MetricBox 19
+#define C_CurrencyBox 20
+#define C_DateBox 21
+#define C_TimeBox 22
+
+#define C_ImageButton 23
+#define C_MenuButton 24
+#define C_MoreButton 25
+
+// Maximale 7 Container
+#define C_TabPage 32
+#define C_ModalDlg 33
+#define C_FloatWin 34
+#define C_ModelessDlg 35
+#define C_WorkWin 36
+#define C_DockingWin 37
+
+// Diese Defines koennen geaendert werden
+#define C_MessBox 40
+#define C_InfoBox 41
+#define C_WarningBox 42
+#define C_ErrorBox 43
+#define C_QueryBox 44
+
+#define C_TabDlg 45
+#define C_SingleTabDlg 46
+
+#define C_Window 47
+
+
+#define C_PatternBox 60
+#define C_ToolBox 61
+#define C_ValueSet 62
+#define C_Control 63
+#define C_TreeListBox 64 // Hurray the TreeListBox finally got its own Window Type
+
+#define C_OkButton 65
+#define C_CancelButton 66
+#define C_ButtonDialog 67
+
+#define C_Dialog 68
+
+
+
+
+#define M_WITH_RETURN 0x0200 // Die Variable wird zum Aufnehmen des Wertes gespeichert
+#define M_KEY_STRING 0x0400 // Key Befehle werden umgewandelt i.e. "<return><up>"
+#define M_SOFFICE 0x0800 // Command valid for Star/Open Office
+#define M_MOZILLA 0x1000 // Command valid for Mozilla
+// for MacroRecorder
+#define M_RET_NUM_CONTROL 0x2000 // decode ULong as Control (For Tabpages, Toolboxes, ... )
+
+// Methoden
+#define M_Select 21
+#define M_SetNoSelection 22
+#define M_SetText 23
+#define M_More 24
+#define M_Less 25
+#define M_ToMin 26
+#define M_ToMax 27
+#define M_Check 28
+#define M_UnCheck 29
+#define M_TriState 30
+#define M_SetPage 31
+#define M_Click 32
+
+#define M_Close 33 // Push Buttons on Dialog (Auch More Button)
+#define M_Cancel 34
+#define M_OK 35
+#define M_Help 36
+#define M_Default 37 // Push defaultbutton on Dialog
+
+#define M_Yes 38
+#define M_No 39
+#define M_Repeat 40
+
+#define M_Open 41
+#define M_Pick 42
+#define M_Move 43
+#define M_Size 44
+#define M_Minimize 45
+#define M_Maximize 46
+#define M_Dock 47
+#define M_Undock 48
+
+
+
+#define M_TypeKeys ( M_KEY_STRING | 50 )
+#define M_MouseDown 51
+#define M_MouseUp 52
+#define M_MouseMove 53
+#define M_MouseDoubleClick 54
+#define M_SnapShot 55
+#define M_SetNextToolBox 56
+#define M_OpenContextMenu 57
+#define M_MultiSelect 58
+
+// Filedialog
+#define M_SetPath 60
+#define M_SetCurFilter 61
+
+// Printdialog
+#define M_SetPrinter 70
+#define M_CheckRange 71
+#define M_SetRangeText 72
+#define M_SetFirstPage 73
+#define M_SetLastPage 74
+#define M_CheckCollate 75
+#define M_SetPageId 76
+#define M_SetPageNr 77
+
+#define M_AnimateMouse 78
+#define M_TearOff 79
+
+#define M_FadeIn 80
+#define M_FadeOut 81
+#define M_Pin 82
+
+#define M_UseMenu 83 // Use the menu of the next possible parent of given Window
+
+#define M_OpenMenu 84 // MenuButtons and Menus in ToolBoxes
+
+#define M_Restore 85 // Window Control together with M_Maximize and M_Minimize
+
+#define M_DisplayPercent 200 // Zum Anzeigen der Prozente des Windows
+
+#define M_LAST_NO_RETURN 200
+
+#if ( M_LAST_NO_RETURN >= M_WITH_RETURN )
+#error "Bereich überschritten"
+#endif
+
+#define M_Exists ( M_WITH_RETURN | 1 )
+#define M_NotExists ( M_WITH_RETURN | 2 )
+#define M_IsEnabled ( M_WITH_RETURN | 3 )
+#define M_IsVisible ( M_WITH_RETURN | 4 )
+#define M_IsWritable ( M_WITH_RETURN | 5 )
+
+#define M_GetPage ( M_WITH_RETURN | 6 )
+#define M_IsChecked ( M_WITH_RETURN | 7 )
+#define M_IsTristate ( M_WITH_RETURN | 8 )
+#define M_GetState ( M_WITH_RETURN | 9 )
+#define M_GetText ( M_WITH_RETURN | 10 )
+#define M_GetSelCount ( M_WITH_RETURN | 11 )
+#define M_GetSelIndex ( M_WITH_RETURN | 12 )
+#define M_GetSelText ( M_WITH_RETURN | 13 )
+#define M_GetItemCount ( M_WITH_RETURN | 14 )
+#define M_GetItemText ( M_WITH_RETURN | 15 )
+#define M_IsOpen ( M_WITH_RETURN | 16 )
+#define M_Caption ( M_WITH_RETURN | 17 )
+#define M_IsMax ( M_WITH_RETURN | 18 )
+#define M_IsDocked ( M_WITH_RETURN | 19 )
+#define M_GetRT ( M_WITH_RETURN | 20 )
+#define M_GetPageId ( M_WITH_RETURN | 21 )
+#define M_GetPageCount ( M_WITH_RETURN | 22 )
+#define M_GetPosX ( M_WITH_RETURN | 23 )
+#define M_GetPosY ( M_WITH_RETURN | 24 )
+#define M_GetSizeX ( M_WITH_RETURN | 25 )
+#define M_GetSizeY ( M_WITH_RETURN | 26 )
+#define M_GetNextToolBox ( M_WITH_RETURN | 27 )
+#define M_GetButtonCount ( M_WITH_RETURN | 28 )
+#define M_GetButtonId ( M_WITH_RETURN | 29 )
+
+#define M_IsFadeIn ( M_WITH_RETURN | 30 )
+#define M_IsPin ( M_WITH_RETURN | 31 )
+
+// Statusbar
+#define M_StatusGetText ( M_WITH_RETURN | 32 )
+#define M_StatusIsProgress ( M_WITH_RETURN | 33 )
+#define M_StatusGetItemCount ( M_WITH_RETURN | 34 )
+#define M_StatusGetItemId ( M_WITH_RETURN | 35 )
+
+//
+#define M_GetMouseStyle ( M_WITH_RETURN | 36 )
+
+// support for Messagebox with checkbox
+#define M_GetCheckBoxText ( M_WITH_RETURN | 37 )
+
+// Scrollbars
+#define M_HasScrollBar ( M_WITH_RETURN | 38 )
+#define M_IsScrollBarEnabled ( M_WITH_RETURN | 39 )
+
+// Dieser befehl wird nur intern im Controller (sts library) verwendet. Sie tauchen nicht im Testtool auf!
+#define _M_IsEnabled ( M_WITH_RETURN | 50 )
+
+
+#define M_GetFixedTextCount ( M_WITH_RETURN | 51 )
+#define M_GetFixedText ( M_WITH_RETURN | 52 )
+
+
+#define M_IsMin ( M_WITH_RETURN | 53 )
+#define M_IsRestore ( M_WITH_RETURN | 54 )
+
+#define M_GetItemType ( M_WITH_RETURN | 55 )
+
+// Commands for (Edit)BrowseBox
+#define M_GetColumnCount ( M_WITH_RETURN | 56 )
+#define M_GetRowCount ( M_WITH_RETURN | 57 )
+#define M_IsEditing ( M_WITH_RETURN | 58 )
+
+#define M_IsItemEnabled ( M_WITH_RETURN | 59 )
+
+//#define M_SOFFICE 0x0800 // Command valid for Star/Open Office
+//#define M_MOZILLA 0x1000 // Command valid for Mozilla
+
+
+// RemoteCommands
+#define RC_AppAbort ( M_SOFFICE | M_MOZILLA | 1 )
+#define RC_SetClipboard ( M_SOFFICE | M_MOZILLA | 2 )
+#define RC_NoDebug ( M_SOFFICE | M_MOZILLA | 3 )
+#define RC_Debug ( M_SOFFICE | M_MOZILLA | 4 )
+#define RC_GPF ( M_SOFFICE | M_MOZILLA | 5 )
+#define RC_DisplayHid ( M_SOFFICE | M_MOZILLA | 6 )
+#define RC_AppDelay ( M_SOFFICE | M_MOZILLA | 7 )
+#define RC_UseBindings ( M_SOFFICE | 8 )
+#define RC_Profile ( M_SOFFICE | M_MOZILLA | 9 )
+// (Popup)Menu
+#define RC_MenuSelect ( M_SOFFICE | M_MOZILLA | 10 )
+#define RC_SetControlType ( M_SOFFICE | 11 )
+// RemoteFileAccess
+#define RC_Kill ( M_SOFFICE | 12 )
+#define RC_RmDir ( M_SOFFICE | 13 )
+#define RC_MkDir ( M_SOFFICE | 14 )
+#define RC_FileCopy ( M_SOFFICE | 15 )
+#define RC_Name ( M_SOFFICE | 16 )
+
+#define RC_CaptureAssertions (M_SOFFICE | M_MOZILLA | 17 )
+#define RC_Assert ( M_SOFFICE | M_MOZILLA | 18 )
+
+#define RC_MenuOpen ( M_SOFFICE | M_MOZILLA | 19 )
+
+#define RC_TypeKeysDelay ( M_SOFFICE | M_MOZILLA | 20 )
+
+#define RC_ShowBar ( M_MOZILLA | 21 )
+
+#define RC_LoadURL ( M_MOZILLA | 22 )
+
+#define RC_CloseSysDialog ( M_SOFFICE | 23 )
+
+#define RC_SAXRelease ( M_SOFFICE | 24 )
+
+#define RC_RecordMacro ( M_SOFFICE | 25 )
+
+#define RC_ActivateDocument ( M_SOFFICE | 26 )
+
+#define RC_CatchGPF ( M_SOFFICE | 27 )
+
+#define _RC_LAST_NO_RETURN 27
+
+#if ( _RC_LAST_NO_RETURN >= M_WITH_RETURN )
+#error "Bereich überschritten"
+#endif
+
+// Befehle mit Returnwert
+#define RC_GetClipboard ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 1 )
+#define RC_WinTree ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 2 )
+#define RC_ResetApplication ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 3 )
+#define RC_GetNextCloseWindow ( M_SOFFICE | M_WITH_RETURN | 4 )
+#define RC_ApplicationBusy ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 5 )
+// (Popup)Menu
+#define RC_MenuGetItemCount ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 6 )
+#define RC_MenuGetItemId ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 7 )
+#define RC_MenuGetItemPos ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 8 )
+#define RC_MenuIsSeperator ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 9 )
+#define RC_MenuIsItemChecked ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 10 )
+#define RC_MenuIsItemEnabled ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 11 )
+#define RC_MenuGetItemText ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 12 )
+// RemoteFileAccess
+#define RC_Dir ( M_SOFFICE | M_WITH_RETURN | 18 )
+#define RC_FileLen ( M_SOFFICE | M_WITH_RETURN | 19 )
+#define RC_FileDateTime ( M_SOFFICE | M_WITH_RETURN | 20 )
+
+#define RC_Translate ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 21 )
+#define RC_GetMouseStyle ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 22 )
+#define RC_UnpackStorage ( M_SOFFICE | M_WITH_RETURN | 23 )
+
+#define RC_IsBarVisible ( M_MOZILLA | M_WITH_RETURN | 24 )
+
+#define RC_MenuGetItemCommand ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 25 )
+
+#define RC_ExistsSysDialog ( M_SOFFICE | M_WITH_RETURN | 26 )
+
+#define RC_SAXCheckWellformed ( M_SOFFICE | M_WITH_RETURN | 27 )
+#define RC_SAXReadFile ( M_SOFFICE | M_WITH_RETURN | 28 )
+
+#define RC_SAXGetNodeType ( M_SOFFICE | M_WITH_RETURN | 29 )
+#define RC_SAXGetElementName ( M_SOFFICE | M_WITH_RETURN | 30 )
+#define RC_SAXGetChars ( M_SOFFICE | M_WITH_RETURN | 31 )
+#define RC_SAXGetChildCount ( M_SOFFICE | M_WITH_RETURN | 32 )
+#define RC_SAXGetAttributeCount ( M_SOFFICE | M_WITH_RETURN | 33 )
+#define RC_SAXGetAttributeName ( M_SOFFICE | M_WITH_RETURN | 34 )
+#define RC_SAXGetAttributeValue ( M_SOFFICE | M_WITH_RETURN | 35 )
+#define RC_SAXSeekElement ( M_SOFFICE | M_WITH_RETURN | 36 )
+#define RC_SAXHasElement ( M_SOFFICE | M_WITH_RETURN | 37 )
+#define RC_SAXGetElementPath ( M_SOFFICE | M_WITH_RETURN | 38 )
+
+#define RC_GetDocumentCount ( M_SOFFICE | M_WITH_RETURN | 39 )
+
+#define RC_GetSystemLanguage ( M_SOFFICE | M_WITH_RETURN | 40 )
+
+#define RC_IsProduct ( M_SOFFICE | M_WITH_RETURN | 41 )
+
+#define RC_MenuHasSubMenu ( M_SOFFICE | M_WITH_RETURN | 42 )
+
+#define RC_UsePostEvents ( M_SOFFICE | M_WITH_RETURN | 43 )
+
+#define RC_WaitSlot ( M_SOFFICE | M_WITH_RETURN | 44 )
+
+// Flow Control
+#define F_EndCommandBlock 101 // Initiiert Rückmeldung des Status
+#define F_Sequence 102 // Übergibt Sequence Nummer (1. in jedem Stream)
+
+// Return codes
+#define RET_Sequence 132 // Übergibt Sequence Nummer (1. in jedem Stream)
+#define RET_Value 133 // Übergibt Return-wert
+#define RET_WinInfo 134 // Information über aktuelles Fenster/Control
+#define RET_ProfileInfo 135 // Profile Information
+#define RET_DirectLoging 136 // Direktes Übertragen von Informationen in das Log
+#define RET_MacroRecorder 137 // MakroRecorder Befehl übertragen
+
+
+
+// Subcodes die in nUId geliefert werden
+// für F_ProfileInfo
+#define S_ProfileReset 201 // nNr1 = Anzahl Borders
+ // Achtung!! Diese Defines müssen aufeinanderfolgende Nummern haben!!
+#define S_ProfileBorder1 202 // nNr1 = Border1 in ms
+#define S_ProfileBorder2 203 // nNr1 = Border2 in ms
+#define S_ProfileBorder3 204 // nNr1 = Border3 in ms
+#define S_ProfileBorder4 205 // nNr1 = Border4 in ms
+ // Achtung Ende
+#define S_ProfileTime 210 // nNr1 = remote Zeit des Befehls
+#define S_ProfileDump 211 // Gibt die daten aus.
+
+// für F_DirectLoging
+#define S_AssertError 220
+#define S_AssertWarning 221
+#define S_AssertTrace 222
+#define S_QAError 223
+
+
+
+// Konstanten die im Basic zur Verfügung stehen sollen
+
+// Verschiedene Typen von Controls für den Befehl SetControlType
+// !!!!!!!!!!! Müssen alle bei SetControlType eingetragen werden !!!!!!!!!!!!
+#define CONST_CTBrowseBox 100
+#define CONST_CTValueSet 103
+#define CONST_CTORoadmap 104
+#define CONST_CTIExtensionListBox 105
+#define CONST_CTUnknown 199
+
+// Konstanten für das ALignment des gesuchten Splitters
+#define CONST_ALIGN_LEFT 120
+#define CONST_ALIGN_TOP 121
+#define CONST_ALIGN_RIGHT 122
+#define CONST_ALIGN_BOTTOM 123
+
+/// What dialog to use in RC_CloseSysDialog or RC_ExistsSysDialog
+#define CONST_FilePicker 301
+#define CONST_FolderPicker 302
+
+/// NodeTypes of the SAX Parser
+#define CONST_NodeTypeCharacter 555
+#define CONST_NodeTypeElement 556
+#define CONST_NodeTypeComment 557
+
+/// ItemTypes for TreeListBox and maybe others
+#define CONST_ItemTypeText 602
+#define CONST_ItemTypeBMP 601
+#define CONST_ItemTypeCheckbox 600
+#define CONST_ItemTypeContextBMP 603
+#define CONST_ItemTypeUnknown 604
+
+/// Return values for WaitSlot
+#define CONST_WSTimeout 701
+#define CONST_WSAborted 702
+#define CONST_WSFinished 703
+
+// Beschreibt die Parametertypen als Bitfeld Reihenfolge immer!
+// wie hier Aufgelistet
+#define PARAM_NONE 0x0000
+#define PARAM_USHORT_1 0x0001
+#define PARAM_USHORT_2 0x0002
+#define PARAM_USHORT_3 0x0100 // Nicht in der Reihe!!
+#define PARAM_USHORT_4 0x0200 // Nicht in der Reihe!!
+#define PARAM_ULONG_1 0x0004
+#define PARAM_ULONG_2 0x0008
+#define PARAM_STR_1 0x0010
+#define PARAM_STR_2 0x0020
+#define PARAM_BOOL_1 0x0040
+#define PARAM_BOOL_2 0x0080
+#define PARAM_SBXVALUE_1 0x0400 // hier mit 0x0400 Weiter!!! Siehe Oben!
+
+// Zusätzliche Beschreibung!! wird auch mit dem Rest verodert
+//#define PARAM_STR_RAW 0x8000 // Der Zeichensatz der Strings wird nicht konvertiert(für Fareastern)
+
+
+#define ERR_SEND_TIMEOUT 100
+#define ERR_EXEC_TIMEOUT 101
+#define ERR_RESTART_FAIL 102
+#define ERR_RESTART 103
+#define ERR_NO_WIN 104 // Keine *.Win Dateien gefunden
+#define ERR_NO_SID 105 // Keine *.Sid Dateien gefunden
+#define ERR_NO_FILE 106 // Datei nicht gefunden
+
+#endif
diff --git a/automation/source/inc/sttresid.hxx b/automation/source/inc/sttresid.hxx
new file mode 100644
index 000000000000..cd84e72ae9a1
--- /dev/null
+++ b/automation/source/inc/sttresid.hxx
@@ -0,0 +1,45 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: sttresid.hxx,v $
+ * $Revision: 1.3 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org 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 Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _STTRESID_HXX_
+#define _STTRESID_HXX_
+
+#include <tools/resmgr.hxx>
+#include <tools/resid.hxx>
+
+class SttResId : public ResId
+{
+ static ResMgr* getSttResMgr();
+ public:
+ SttResId( sal_uInt32 nId ) : ResId( nId, *getSttResMgr() ) {}
+};
+
+
+#endif
diff --git a/automation/source/inc/svcommstream.hxx b/automation/source/inc/svcommstream.hxx
new file mode 100644
index 000000000000..9474009824fd
--- /dev/null
+++ b/automation/source/inc/svcommstream.hxx
@@ -0,0 +1,59 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: svcommstream.hxx,v $
+ * $Revision: 1.5 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org 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 Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <tools/stream.hxx>
+
+#include <automation/commtypes.hxx>
+#include "icommstream.hxx"
+
+
+class SvCommStream : public ICommStream
+{
+protected:
+ SvStream* pStream;
+public:
+
+ SvCommStream( SvStream* pIO );
+ ~SvCommStream();
+
+ ICommStream& operator>>( comm_USHORT& rUShort );
+ ICommStream& operator>>( comm_ULONG& rULong );
+ ICommStream& operator>>( comm_BOOL& rChar );
+
+ ICommStream& operator<<( comm_USHORT nUShort );
+ ICommStream& operator<<( comm_ULONG nULong );
+ ICommStream& operator<<( comm_BOOL nChar );
+
+ comm_ULONG Read( void* pData, comm_ULONG nSize );
+ comm_ULONG Write( const void* pData, comm_ULONG nSize );
+
+ comm_BOOL IsEof() const;
+ comm_ULONG SeekRel( long nPos );
+};
diff --git a/automation/source/inc/testapp.hxx b/automation/source/inc/testapp.hxx
new file mode 100644
index 000000000000..cf76571a81de
--- /dev/null
+++ b/automation/source/inc/testapp.hxx
@@ -0,0 +1,198 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: testapp.hxx,v $
+ * $Revision: 1.12.24.1 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org 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 Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef TESTAPP_HXX
+#define TESTAPP_HXX
+
+#include <basic/sbmod.hxx>
+#include <basic/testtool.hxx>
+#include <vcl/smartid.hxx>
+
+class CommunicationLink;
+class CommunicationManagerClientViaSocketTT;
+class CNames;
+class ControlItemUId;
+class CRevNames;
+//class SbxTransportVariableRef;
+class ControlsRef;
+class CmdStream;
+class FloatingLoadConf;
+class TestToolObj;
+class ControlDef;
+
+class SbxTransportMethod;
+class Application;
+
+class SotStorage;
+
+class ImplTestToolObj;
+class MyBasic;
+
+class ErrorEntry
+{
+public:
+ ErrorEntry(ULONG nNr, String aStr = String()) : nError(nNr),aText(aStr),nLine(0),nCol1(0),nCol2(0) {}
+ ErrorEntry(ULONG nNr, String aStr, xub_StrLen l, xub_StrLen c1, xub_StrLen c2 )
+ : nError(nNr),aText(aStr),nLine(l),nCol1(c1),nCol2(c2) {}
+ ULONG nError;
+ String aText;
+ xub_StrLen nLine;
+ xub_StrLen nCol1;
+ xub_StrLen nCol2;
+};
+
+SV_DECL_PTRARR_DEL(CErrors, ErrorEntry*, 1, 1)
+
+struct ControlDefLoad {
+ const char* Kurzname;
+ ULONG nUId;
+};
+
+class TestToolObj: public SbxObject
+{
+ friend class TTBasic;
+ friend class Controls;
+public:
+ TestToolObj( String aName, String aFilePath ); // Alle Dateien in FilePath, Kein IPC
+ TestToolObj( String aName, MyBasic* pBas ); // Pfade aus INI, IPC benutzen
+ ~TestToolObj();
+ void LoadIniFile(); // Laden der IniEinstellungen, die durch den ConfigDialog geändert werden können
+ void DebugFindNoErrors( BOOL bDebugFindNoErrors );
+
+private:
+ BOOL bWasPrecompilerError; // True wenn beim letzten Precompile ein Fehler auftrat
+ BOOL CError( ULONG, const String&, xub_StrLen, xub_StrLen, xub_StrLen );
+ void CalcPosition( String const &aSource, xub_StrLen nPos, xub_StrLen &l, xub_StrLen &c );
+ xub_StrLen ImplSearch( const String &aSource, const xub_StrLen nStart, const xub_StrLen nEnd, const String &aSearch, const xub_StrLen nSearchStart = 0 );
+ xub_StrLen PreCompilePart( String &aSource, xub_StrLen nStart, xub_StrLen nEnd, String aFinalErrorLabel, USHORT &nLabelCount );
+ void PreCompileDispatchParts( String &aSource, String aStart, String aEnd, String aFinalLable );
+public:
+ String GetRevision(String const &aSourceIn); // find Revision in the sourcecode
+ String PreCompile(String const &aSourceIn); // try catch; testcase endcase ..
+ BOOL WasPrecompilerError(); // True wenn beim letzten Precompile ein Fehler auftrat
+ void SFX_NOTIFY( SfxBroadcaster&, const TypeId&, const SfxHint& rHint, const TypeId& );
+ virtual SbxVariable* Find( const String&, SbxClassType );
+// String aKeyPlusClasses; // Pfad für keycodes & classes & res_type (Aus Configdatei)
+ DECL_LINK( ReturnResultsLink, CommunicationLink* );
+ BOOL ReturnResults( SvStream *pIn ); // Rücklieferung des Antwortstreams über IPC oder TCP/IP oder direkt
+
+ void SetLogHdl( const Link& rLink ) { aLogHdl = rLink; }
+ const Link& GetLogHdl() const { return aLogHdl; }
+
+ void SetWinInfoHdl( const Link& rLink ) { aWinInfoHdl = rLink; }
+ const Link& GetWinInfoHdl() const { return aWinInfoHdl; }
+
+ void SetModuleWinExistsHdl( const Link& rLink ) { aModuleWinExistsHdl = rLink; }
+ const Link& GetModuleWinExistsHdl() const { return aModuleWinExistsHdl; }
+
+ void SetCErrorHdl( const Link& rLink ) { aCErrorHdl = rLink; }
+ const Link& GetCErrorHdl() const { return aCErrorHdl; }
+
+ void SetWriteStringHdl( const Link& rLink ) { aWriteStringHdl = rLink; }
+ const Link& GetWriteStringHdl() const { return aWriteStringHdl; }
+
+ SfxBroadcaster& GetTTBroadcaster();
+
+private:
+ ImplTestToolObj *pImpl; // Alles was von der Implementation abhängt
+ static const CErrors* GetFehlerListe() { return pFehlerListe; }
+ BOOL bUseIPC;
+ Link aLogHdl; // Zum Logen der Fehlermeldungen im Testtool
+ Link aWinInfoHdl; // Anzeigen der Windows/Controls der zu testenden App
+ Link aModuleWinExistsHdl; // Prüft ob das Modul schon im Editor geladen ist
+ Link aCErrorHdl; // Melden von Compilererror
+ Link aWriteStringHdl; // Schreiben von text (e.g. MakroRecorder)
+ BOOL bReturnOK; // Bricht WaitForAnswer ab
+ CRevNames *pShortNames; // Aktuell verwendete Controls, zur gewinnung des Namens aus Fehlermeldung
+ ULONG nSequence; // Sequence um Antwort und Anfrage zu syncronisieren
+ SmartId aNextReturnId; // Id des Returnwertes i.e. UId
+ void ReplaceNumbers(String &aText); // Zahlen im String mit speziellem Format in Namen umwandeln
+
+ String aLastRecordedKontext;// Keeps the last kontext recorded by the Macro Recorder
+
+#define FLAT TRUE
+ String ProgPath; // Dateiname der zu Testenden APP; Gesetzt über Start
+ String aLogFileName; // Momentaner Logfilename (Wie Programmdatei aber mit .res)
+ BOOL IsBlock; // Innerhalb Begin/EndBlock
+ BOOL SingleCommandBlock; // Implizit um jedes kommando ein Begin/EndBlock
+ CmdStream *In;
+
+ void AddName(String &aBisher, String &aNeu ); // Name eventuell mit / anhängen
+ void AddToListByNr( CNames *&pControls, ControlItemUId *&pNewItem ); //
+ CNames *m_pControls;
+ CNames *m_pNameKontext; // Zeigt auf den aktuellen Namenskontext, der über 'Kontext' gesetzt wurde
+ CNames *m_pSIds;
+ CNames *m_pReverseSlots; // Slots mit Kurznamen nach Nummer
+ CNames *m_pReverseControls; // Controls mit Kurznamen nach Nummer
+ CNames *m_pReverseControlsSon;// Controls mit Kurznamen nach Nummer nach Fenstern (Son)
+ CNames *m_pReverseUIds; // Langnamen nach Nummer
+
+
+ USHORT nMyVar; // Wievielte Var aus Pool ist dran
+
+ void InitTestToolObj();
+ CommunicationManagerClientViaSocketTT *pCommunicationManager;
+ void SendViaSocket();
+
+ BOOL Load( String aFileName, SbModule *pMod );
+
+ void ReadNames( String Filename, CNames *&pNames, CNames *&pUIds, BOOL bIsFlat = FALSE );
+ void ReadFlat( String Filename, CNames *&pNames, BOOL bSortByName );
+ BOOL ReadNamesBin( String Filename, CNames *&pSIds, CNames *&pControls );
+ BOOL WriteNamesBin( String Filename, CNames *pSIds, CNames *pControls );
+ void ReadHidLstByNumber();
+ void SortControlsByNumber( BOOL bIncludeActive = FALSE );
+
+ String GetMethodName( ULONG nMethodId );
+ String GetKeyName( USHORT nKeyCode );
+
+ void WaitForAnswer ();
+ DECL_LINK( IdleHdl, Application* );
+ DECL_LINK( CallDialogHandler, Application* );
+ String aDialogHandlerName;
+ USHORT nWindowHandlerCallLevel;
+
+ USHORT nIdleCount;
+ // wenn DialogHandler gesetzt wird er im IdleHandler inkrementiert und
+ // in WaitForAnswer rückgesetzt. Übersteigt er einen gewissen wert, gehe ich davon aus,
+ // daß WaitForAnswer still ligt und rufe die DialogHander Sub im BASIC auf.
+
+ void BeginBlock();
+ void EndBlock();
+
+ SbTextType GetSymbolType( const String &rSymbol, BOOL bWasControl );
+ static ControlDefLoad const arR_Cmds[];
+ static CNames *pRCommands;
+
+ static CErrors *pFehlerListe; // Hier werden die Fehler des Testtools gespeichert
+
+};
+
+#endif
diff --git a/automation/source/inc/testtool.hxx b/automation/source/inc/testtool.hxx
new file mode 100644
index 000000000000..3acf66b05d9d
--- /dev/null
+++ b/automation/source/inc/testtool.hxx
@@ -0,0 +1,75 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: testtool.hxx,v $
+ * $Revision: 1.6 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org 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 Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef SVTOOLS_TESTTOOL_HXX
+#define SVTOOLS_TESTTOOL_HXX
+
+#include <tools/solar.h>
+#include <tools/link.hxx>
+#include <vcl/timer.hxx>
+
+class Application;
+class SvStream;
+
+class StatementFlow;
+class CommunicationManager;
+class CommunicationLink;
+#if OSL_DEBUG_LEVEL > 1
+class EditWindow;
+#endif
+class ImplRC;
+
+class ImplRemoteControl
+{
+ friend class StatementFlow;
+
+ BOOL m_bIdleInserted;
+ AutoTimer m_aIdleTimer;
+ BOOL m_bInsideExecutionLoop;
+#if OSL_DEBUG_LEVEL > 1
+ EditWindow *m_pDbgWin;
+#endif
+
+public:
+ ImplRemoteControl();
+ ~ImplRemoteControl();
+ BOOL QueCommands( ULONG nServiceId, SvStream *pIn );
+ SvStream* GetReturnStream();
+
+ DECL_LINK( IdleHdl, Application* );
+ DECL_LINK( CommandHdl, Application* );
+
+ DECL_LINK( QueCommandsEvent, CommunicationLink* );
+
+protected:
+ CommunicationManager *pServiceMgr;
+ SvStream *pRetStream;
+};
+
+#endif // SVTOOLS_TESTTOOL_HXX