00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef _SHEET_HXX_
00030 #define _SHEET_HXX_
00031
00032 #include "type.hxx"
00033 #include <com/sun/star/table/CellAddress.hpp>
00034 #include <com/sun/star/table/CellRangeAddress.hpp>
00035
00036 using namespace com::sun::star;
00037 using com::sun::star::uno::Reference;
00038
00039 namespace rtl { class OUString; }
00040
00041 namespace com { namespace sun { namespace star {
00042
00043 namespace uno
00044 {
00045 class XComponentContext;
00046 }
00047
00048 namespace lang
00049 {
00050 class XComponent;
00051 }
00052
00053 namespace sheet
00054 {
00055 class XSpreadsheet;
00056 class XSpreadsheets;
00057 class XRangeSelection;
00058 }
00059
00060 namespace table
00061 {
00062 class XCellRange;
00063 class XCell;
00064 }
00065
00066 }}}
00067
00068
00069 namespace scsolver {
00070
00076 class CalcInterface
00077 {
00078 public:
00079
00080 CalcInterface( const Reference< uno::XComponentContext >& );
00081 ~CalcInterface();
00082
00083
00084
00085
00086 Reference< uno::XComponentContext > getComponentContext() const { return m_xCC; }
00087 Reference< lang::XComponent > getCurrentComponent() const;
00088 void updateCurrentComponent() const;
00089 Reference< lang::XMultiComponentFactory > getServiceManager() const;
00090
00091 void setDocumentProperty( const rtl::OUString&, uno::Any );
00092 uno::Any getDocumentProperty( const rtl::OUString& ) const;
00093
00094
00095
00096
00097 Reference< sheet::XRangeSelection > getXRangeSelection() const;
00098
00099
00100
00101
00102 Reference< sheet::XSpreadsheet > getActiveSheet() const;
00103 Reference< sheet::XSpreadsheet > getSheetByIndex( const sal_uInt16 ) const;
00104 Reference< sheet::XSpreadsheet > getSheetByName( const rtl::OUString& ) const;
00105
00106
00107 rtl::OUString getCellFormula( const rtl::OUString&, const rtl::OUString& );
00108
00109
00110 table::CellAddress getCellAddress( const rtl::OUString& );
00111 table::CellAddress getCellAddress( const rtl::OUString&, const rtl::OUString& );
00112
00113 table::CellRangeAddress getCellRangeAddress( const rtl::OUString& );
00114 table::CellRangeAddress getCellRangeAddress( const rtl::OUString&, const rtl::OUString& );
00115 Reference< table::XCell > getCell( const table::CellAddress& ) const;
00116 rtl::OUString getCellFormula( const table::CellAddress& );
00117 double getCellValue( const table::CellAddress& );
00118
00119 void setCellFormula( const table::CellAddress&, const rtl::OUString& ) const;
00120 void setCellValue( const table::CellAddress&, double ) const;
00121
00122 void disableCellUpdates() const;
00123 void enableCellUpdates() const;
00124
00125 void addMenuItem() const;
00126
00127 private:
00128 Reference< uno::XComponentContext > m_xCC;
00129 mutable Reference< lang::XMultiComponentFactory > m_xSM;
00130 mutable Reference< lang::XComponent > m_xCurComp;
00131 mutable Reference< sheet::XRangeSelection > m_xRngSel;
00132
00133 void splitCellRangeAddress( const rtl::OUString&, rtl::OUString&, rtl::OUString& );
00134
00135 };
00136
00137
00138
00139 }
00140
00141 #endif