[Libreoffice-commits] .: 4 commits - sc/inc sc/source
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Sat Dec 1 21:16:34 PST 2012
sc/inc/colorscale.hxx | 2
sc/inc/sc.hrc | 7 -
sc/source/core/data/colorscale.cxx | 129 ++++++++++++++++++
sc/source/filter/inc/orcusinterface.hxx | 23 +++
sc/source/filter/orcus/interface.cxx | 101 +++++++++++++-
sc/source/ui/condformat/condformatdlg.cxx | 9 +
sc/source/ui/condformat/condformatdlgentry.cxx | 172 +++++++++++++++++++++++++
sc/source/ui/inc/condformatdlg.hrc | 7 +
sc/source/ui/inc/condformatdlgentry.hxx | 40 +++++
sc/source/ui/src/condformatdlg.src | 71 ++++++++++
sc/source/ui/view/output.cxx | 121 -----------------
11 files changed, 547 insertions(+), 135 deletions(-)
New commits:
commit 704fdf2b23d0e0480f29e0e56f631c2835eed02b
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date: Sun Dec 2 05:57:33 2012 +0100
create icon sets in UI
Change-Id: I6c55cc1d1a1dbd4839b823df08f8c42a7b880132
diff --git a/sc/source/ui/condformat/condformatdlgentry.cxx b/sc/source/ui/condformat/condformatdlgentry.cxx
index 3d41971..86dec0d 100644
--- a/sc/source/ui/condformat/condformatdlgentry.cxx
+++ b/sc/source/ui/condformat/condformatdlgentry.cxx
@@ -1259,6 +1259,40 @@ ScIconSetFrmtEntry::ScIconSetFrmtDataEntry::ScIconSetFrmtDataEntry( Window* pPar
FreeResource();
}
+ScColorScaleEntry* ScIconSetFrmtEntry::ScIconSetFrmtDataEntry::CreateEntry(ScDocument* pDoc, const ScAddress& rPos) const
+{
+ sal_Int32 nPos = maLbEntryType.GetSelectEntryPos();
+ rtl::OUString aText = maEdEntry.GetText();
+ ScColorScaleEntry* pEntry = new ScColorScaleEntry();
+
+ sal_uInt32 nIndex = 0;
+ double nVal = 0;
+ SvNumberFormatter* pNumberFormatter = pDoc->GetFormatTable();
+ pNumberFormatter->IsNumberFormat(aText, nIndex, nVal);
+ pEntry->SetValue(nVal);
+
+ switch(nPos)
+ {
+ case 0:
+ pEntry->SetType(COLORSCALE_VALUE);
+ break;
+ case 1:
+ pEntry->SetType(COLORSCALE_PERCENT);
+ break;
+ case 2:
+ pEntry->SetType(COLORSCALE_PERCENTILE);
+ break;
+ case 3:
+ pEntry->SetType(COLORSCALE_FORMULA);
+ pEntry->SetFormula(aText, pDoc, rPos, pDoc->GetGrammar());
+ break;
+ default:
+ assert(false);
+ }
+
+ return pEntry;
+}
+
ScIconSetFrmtEntry::ScIconSetFrmtEntry( Window* pParent, ScDocument* pDoc, const ScAddress& rPos, const ScIconSetFormat* pFormat ):
ScCondFrmtEntry( pParent, pDoc, rPos ),
maLbColorFormat( this, ScResId( LB_COLOR_FORMAT ) ),
@@ -1317,7 +1351,7 @@ IMPL_LINK_NOARG( ScIconSetFrmtEntry, IconSetTypeHdl )
OUString ScIconSetFrmtEntry::GetExpressionString()
{
- return OUString("");
+ return ScCondFormatHelper::GetExpression(ICONSET, 0);
}
void ScIconSetFrmtEntry::SetActive()
@@ -1348,7 +1382,18 @@ void ScIconSetFrmtEntry::SetInactive()
ScFormatEntry* ScIconSetFrmtEntry::GetEntry() const
{
- return NULL;
+ ScIconSetFormat* pFormat = new ScIconSetFormat(mpDoc);
+
+ ScIconSetFormatData* pData = new ScIconSetFormatData;
+ pData->eIconSetType = static_cast<ScIconSetType>(maLbIconSetType.GetSelectEntryPos());
+ for(ScIconSetFrmtDateEntriesType::const_iterator itr = maEntries.begin(),
+ itrEnd = maEntries.end(); itr != itrEnd; ++itr)
+ {
+ pData->maEntries.push_back(itr->CreateEntry(mpDoc, maPos));
+ }
+ pFormat->SetIconSetData(pData);
+
+ return pFormat;
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/inc/condformatdlgentry.hxx b/sc/source/ui/inc/condformatdlgentry.hxx
index 7017cd9..99d602c 100644
--- a/sc/source/ui/inc/condformatdlgentry.hxx
+++ b/sc/source/ui/inc/condformatdlgentry.hxx
@@ -258,6 +258,8 @@ class ScIconSetFrmtEntry : public ScCondFrmtEntry
public:
ScIconSetFrmtDataEntry( Window* pParent, ScIconSetType eType, sal_Int32 i, const ScColorScaleEntry* pEntry = NULL );
+
+ ScColorScaleEntry* CreateEntry(ScDocument* pDoc, const ScAddress& rPos) const;
};
typedef boost::ptr_vector<ScIconSetFrmtDataEntry> ScIconSetFrmtDateEntriesType;
ScIconSetFrmtDateEntriesType maEntries;
commit f7cd8c619ef3db4b3a41b25eb9c4e5e798f2c155
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date: Sun Dec 2 04:25:27 2012 +0100
correctly show existing icon sets in the UI
Change-Id: I8970d3b0cc3263f46cfda45ae3b919a441bc0228
diff --git a/sc/source/ui/condformat/condformatdlgentry.cxx b/sc/source/ui/condformat/condformatdlgentry.cxx
index b039493..3d41971 100644
--- a/sc/source/ui/condformat/condformatdlgentry.cxx
+++ b/sc/source/ui/condformat/condformatdlgentry.cxx
@@ -1224,7 +1224,7 @@ IMPL_LINK_NOARG( ScDateFrmtEntry, StyleSelectHdl )
return 0;
}
-ScIconSetFrmtEntry::ScIconSetFrmtDataEntry::ScIconSetFrmtDataEntry( Window* pParent, ScIconSetType eType, sal_Int32 i ):
+ScIconSetFrmtEntry::ScIconSetFrmtDataEntry::ScIconSetFrmtDataEntry( Window* pParent, ScIconSetType eType, sal_Int32 i, const ScColorScaleEntry* pEntry ):
Control( pParent, ScResId( RID_ICON_SET_ENTRY ) ),
maImgIcon( this, ScResId( IMG_ICON ) ),
maFtEntry( this, ScResId( FT_ICON_SET_ENTRY_TEXT ) ),
@@ -1232,6 +1232,30 @@ ScIconSetFrmtEntry::ScIconSetFrmtDataEntry::ScIconSetFrmtDataEntry( Window* pPar
maLbEntryType( this, ScResId( LB_ICON_SET_ENTRY_TYPE ) )
{
maImgIcon.SetImage(ScIconSetFormat::getBitmap( eType, i ));
+ if(pEntry)
+ {
+ switch(pEntry->GetType())
+ {
+ case COLORSCALE_VALUE:
+ maLbEntryType.SelectEntryPos(0);
+ maEdEntry.SetText(OUString::valueOf(pEntry->GetValue()));
+ break;
+ case COLORSCALE_PERCENTILE:
+ maLbEntryType.SelectEntryPos(2);
+ maEdEntry.SetText(OUString::valueOf(pEntry->GetValue()));
+ break;
+ case COLORSCALE_PERCENT:
+ maLbEntryType.SelectEntryPos(1);
+ maEdEntry.SetText(OUString::valueOf(pEntry->GetValue()));
+ break;
+ case COLORSCALE_FORMULA:
+ maLbEntryType.SelectEntryPos(3);
+ maEdEntry.SetText(pEntry->GetFormula(formula::FormulaGrammar::GRAM_DEFAULT));
+ break;
+ default:
+ assert(false);
+ }
+ }
FreeResource();
}
@@ -1245,10 +1269,22 @@ ScIconSetFrmtEntry::ScIconSetFrmtEntry( Window* pParent, ScDocument* pDoc, const
if(pFormat)
{
+ const ScIconSetFormatData* pIconSetFormatData = pFormat->GetIconSetData();
+ ScIconSetType eType = pIconSetFormatData->eIconSetType;
+ sal_Int32 nType = static_cast<sal_Int32>(eType);
+ maLbIconSetType.SelectEntryPos(nType);
+ for(size_t i = 0, n = pIconSetFormatData->maEntries.size();
+ i < n; ++i)
+ {
+ maEntries.push_back( new ScIconSetFrmtDataEntry( this, eType, i, &pIconSetFormatData->maEntries[i] ) );
+ Point aPos = maEntries[0].GetPosPixel();
+ aPos.Y() += maEntries[0].GetSizePixel().Height() * i * 1.2;
+ maEntries[i].SetPosPixel( aPos );
+ }
}
-
- IconSetTypeHdl(NULL);
+ else
+ IconSetTypeHdl(NULL);
}
void ScIconSetFrmtEntry::Init()
@@ -1291,7 +1327,7 @@ void ScIconSetFrmtEntry::SetActive()
for(ScIconSetFrmtDateEntriesType::iterator itr = maEntries.begin(),
itrEnd = maEntries.end(); itr != itrEnd; ++itr)
{
- maEntries[0].Show();
+ itr->Show();
}
Select();
@@ -1304,7 +1340,7 @@ void ScIconSetFrmtEntry::SetInactive()
for(ScIconSetFrmtDateEntriesType::iterator itr = maEntries.begin(),
itrEnd = maEntries.end(); itr != itrEnd; ++itr)
{
- maEntries[0].Hide();
+ itr->Hide();
}
Deselect();
diff --git a/sc/source/ui/inc/condformatdlgentry.hxx b/sc/source/ui/inc/condformatdlgentry.hxx
index 9ef6184..7017cd9 100644
--- a/sc/source/ui/inc/condformatdlgentry.hxx
+++ b/sc/source/ui/inc/condformatdlgentry.hxx
@@ -257,7 +257,7 @@ class ScIconSetFrmtEntry : public ScCondFrmtEntry
ListBox maLbEntryType;
public:
- ScIconSetFrmtDataEntry( Window* pParent, ScIconSetType eType, sal_Int32 i );
+ ScIconSetFrmtDataEntry( Window* pParent, ScIconSetType eType, sal_Int32 i, const ScColorScaleEntry* pEntry = NULL );
};
typedef boost::ptr_vector<ScIconSetFrmtDataEntry> ScIconSetFrmtDateEntriesType;
ScIconSetFrmtDateEntriesType maEntries;
commit 6efd796a303d631b263ad2177438248251c6d98e
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date: Sun Dec 2 03:49:28 2012 +0100
initial support for icon sets in the dialog
Change-Id: I5da2500b96ba3b03bf822cf428c001204010989e
diff --git a/sc/inc/colorscale.hxx b/sc/inc/colorscale.hxx
index 5907c6e..e7b611b 100644
--- a/sc/inc/colorscale.hxx
+++ b/sc/inc/colorscale.hxx
@@ -44,6 +44,7 @@ class ScDocument;
class ScFormulaCell;
class ScTokenArray;
struct ScDataBarInfo;
+class BitmapEx;
// don't change the order
// they are also used in the dialog to determine the position
@@ -335,6 +336,7 @@ public:
virtual condformat::ScFormatEntryType GetType() const;
static ScIconSetMap* getIconSetMap();
+ static BitmapEx& getBitmap( ScIconSetType eType, sal_Int32 nIndex );
typedef boost::ptr_vector<ScColorScaleEntry>::iterator iterator;
typedef boost::ptr_vector<ScColorScaleEntry>::const_iterator const_iterator;
diff --git a/sc/inc/sc.hrc b/sc/inc/sc.hrc
index 1bb2b8c..2a1113b 100644
--- a/sc/inc/sc.hrc
+++ b/sc/inc/sc.hrc
@@ -1094,11 +1094,12 @@
#define RID_SCDLG_DATABAR (SC_DIALOGS_START + 155)
#define RID_COND_ENTRY (SC_DIALOGS_START + 156)
#define RID_SCDLG_FORMULA_CALCOPTIONS (SC_DIALOGS_START + 157)
+#define RID_ICON_SET_ENTRY (SC_DIALOGS_START + 158)
-#define RID_SCDLG_COND_FORMAT_MANAGER (SC_DIALOGS_START + 158)
-#define RID_SCDLG_XML_SOURCE (SC_DIALOGS_START + 159)
+#define RID_SCDLG_COND_FORMAT_MANAGER (SC_DIALOGS_START + 159)
+#define RID_SCDLG_XML_SOURCE (SC_DIALOGS_START + 160)
-#define SC_DIALOGS_END (SC_DIALOGS_START + 160)
+#define SC_DIALOGS_END (SC_DIALOGS_START + 161)
#ifndef STD_MASKCOLOR
#define STD_MASKCOLOR Color { Red = 0xFF00; Green = 0x0000; Blue = 0xFF00; }
diff --git a/sc/source/core/data/colorscale.cxx b/sc/source/core/data/colorscale.cxx
index 897f1b8..2adf507 100644
--- a/sc/source/core/data/colorscale.cxx
+++ b/sc/source/core/data/colorscale.cxx
@@ -30,6 +30,8 @@
#include "document.hxx"
#include "cell.hxx"
#include "fillinfo.hxx"
+#include "iconsets.hrc"
+#include "scresid.hxx"
#if DUMP_FORMAT_INFO
#include <iostream>
#endif
@@ -1047,4 +1049,131 @@ ScIconSetMap* ScIconSetFormat::getIconSetMap()
return aIconSetMap;
}
+namespace {
+
+sal_Int32 a3TrafficLights1[] = {
+ BMP_ICON_SET_CIRCLES1_RED, BMP_ICON_SET_CIRCLES1_YELLOW, BMP_ICON_SET_CIRCLES1_GREEN
+};
+
+sal_Int32 a3TrafficLights2[] = {
+ BMP_ICON_SET_TRAFFICLIGHTS_RED, BMP_ICON_SET_TRAFFICLIGHTS_YELLOW, BMP_ICON_SET_TRAFFICLIGHTS_GREEN
+};
+
+sal_Int32 a3Arrows[] = {
+ BMP_ICON_SET_COLORARROWS_DOWN, BMP_ICON_SET_COLORARROWS_SAME, BMP_ICON_SET_COLORARROWS_UP
+};
+
+sal_Int32 a3ArrowsGray[] = {
+ BMP_ICON_SET_GRAYARROWS_DOWN, BMP_ICON_SET_GRAYARROWS_SAME, BMP_ICON_SET_GRAYARROWS_UP
+};
+
+sal_Int32 a3Flags[] = {
+ BMP_ICON_SET_FLAGS_RED, BMP_ICON_SET_FLAGS_YELLOW, BMP_ICON_SET_FLAGS_GREEN
+};
+
+sal_Int32 a4Arrows[] = {
+ BMP_ICON_SET_COLORARROWS_DOWN, BMP_ICON_SET_COLORARROWS_SLIGHTLY_DOWN, BMP_ICON_SET_COLORARROWS_SLIGHTLY_UP, BMP_ICON_SET_COLORARROWS_UP
+};
+
+sal_Int32 a4ArrowsGray[] = {
+ BMP_ICON_SET_GRAYARROWS_DOWN, BMP_ICON_SET_GRAYARROWS_SLIGHTLY_DOWN, BMP_ICON_SET_GRAYARROWS_SLIGHTLY_UP, BMP_ICON_SET_GRAYARROWS_UP
+};
+
+sal_Int32 a5Arrows[] = {
+ BMP_ICON_SET_COLORARROWS_DOWN, BMP_ICON_SET_COLORARROWS_SLIGHTLY_DOWN,
+ BMP_ICON_SET_COLORARROWS_SAME, BMP_ICON_SET_COLORARROWS_SLIGHTLY_UP, BMP_ICON_SET_COLORARROWS_UP
+};
+
+sal_Int32 a5ArrowsGray[] = {
+ BMP_ICON_SET_GRAYARROWS_DOWN, BMP_ICON_SET_GRAYARROWS_SLIGHTLY_DOWN,
+ BMP_ICON_SET_GRAYARROWS_SAME, BMP_ICON_SET_GRAYARROWS_SLIGHTLY_UP, BMP_ICON_SET_GRAYARROWS_UP
+};
+
+sal_Int32 a4TrafficLights[] = {
+ BMP_ICON_SET_CIRCLES1_GRAY, BMP_ICON_SET_CIRCLES1_RED,
+ BMP_ICON_SET_CIRCLES1_YELLOW, BMP_ICON_SET_CIRCLES1_GREEN
+};
+
+sal_Int32 a5Quarters[] = {
+ BMP_ICON_SET_PIES_EMPTY, BMP_ICON_SET_PIES_ONE_QUARTER, BMP_ICON_SET_PIES_HALF,
+ BMP_ICON_SET_PIES_THREE_QUARTER, BMP_ICON_SET_PIES_FULL,
+};
+
+sal_Int32 a3Symbols1[] = {
+ BMP_ICON_SET_SYMBOLS1_CHECK, BMP_ICON_SET_SYMBOLS1_EXCLAMATION_MARK, BMP_ICON_SET_SYMBOLS1_CROSS
+};
+
+sal_Int32 a3Signs[] = {
+ BMP_ICON_SET_SHAPES_DIAMOND, BMP_ICON_SET_SHAPES_TRIANGLE, BMP_ICON_SET_SHAPES_CIRCLE
+};
+
+sal_Int32 a4RedToBlack[] = {
+ BMP_ICON_SET_CIRCLES2_DARK_GRAY, BMP_ICON_SET_CIRCLES2_LIGHT_GRAY,
+ BMP_ICON_SET_CIRCLES2_LIGHT_RED, BMP_ICON_SET_CIRCLES2_DARK_RED
+};
+
+sal_Int32 a4Ratings[] = {
+ BMP_ICON_SET_BARS_ONE_QUARTER, BMP_ICON_SET_BARS_HALF,
+ BMP_ICON_SET_BARS_THREE_QUARTER, BMP_ICON_SET_BARS_FULL
+};
+
+sal_Int32 a5Ratings[] = {
+ BMP_ICON_SET_BARS_EMPTY, BMP_ICON_SET_BARS_ONE_QUARTER, BMP_ICON_SET_BARS_HALF,
+ BMP_ICON_SET_BARS_THREE_QUARTER, BMP_ICON_SET_BARS_FULL
+};
+
+struct ScIconSetBitmapMap {
+ ScIconSetType eType;
+ sal_Int32* nBitmaps;
+};
+
+static ScIconSetBitmapMap aBitmapMap[] = {
+ { IconSet_3Arrows, a3Arrows },
+ { IconSet_3ArrowsGray, a3ArrowsGray },
+ { IconSet_3Flags, a3Flags },
+ { IconSet_3Signs, a3Signs },
+ { IconSet_3Symbols, a3Symbols1 },
+ { IconSet_3Symbols2, a3Symbols1 },
+ { IconSet_3TrafficLights1, a3TrafficLights1 },
+ { IconSet_3TrafficLights2, a3TrafficLights2 },
+ { IconSet_4Arrows, a4Arrows },
+ { IconSet_4ArrowsGray, a4ArrowsGray },
+ { IconSet_4Rating, a4Ratings },
+ { IconSet_4RedToBlack, a4RedToBlack },
+ { IconSet_4TrafficLights, a4TrafficLights },
+ { IconSet_5Arrows, a5Arrows },
+ { IconSet_5ArrowsGray, a5ArrowsGray },
+ { IconSet_5Quarters, a5Quarters },
+ { IconSet_5Ratings, a5Ratings }
+};
+
+}
+
+BitmapEx& ScIconSetFormat::getBitmap( ScIconSetType eType, sal_Int32 nIndex )
+{
+ static std::map< sal_Int32, BitmapEx > aIconSetBitmaps;
+
+ sal_Int32 nBitmap = -1;
+
+ for(size_t i = 0; i < SAL_N_ELEMENTS(aBitmapMap); ++i)
+ {
+ if(aBitmapMap[i].eType == eType)
+ {
+ nBitmap = *(aBitmapMap[i].nBitmaps + nIndex);
+ }
+ }
+ assert( nBitmap != -1 );
+
+ std::map<sal_Int32, BitmapEx>::iterator itr = aIconSetBitmaps.find( nBitmap );
+ if(itr != aIconSetBitmaps.end())
+ return itr->second;
+
+ BitmapEx aBitmap = BitmapEx(ScResId(nBitmap));
+ std::pair<sal_Int32, BitmapEx> aPair( nBitmap, aBitmap );
+ std::pair<std::map<sal_Int32, BitmapEx>::iterator, bool> itrNew = aIconSetBitmaps.insert(aPair);
+ assert(itrNew.second);
+
+ return itrNew.first->second;
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/condformat/condformatdlg.cxx b/sc/source/ui/condformat/condformatdlg.cxx
index 5212f62..8780647 100644
--- a/sc/source/ui/condformat/condformatdlg.cxx
+++ b/sc/source/ui/condformat/condformatdlg.cxx
@@ -90,6 +90,7 @@ ScCondFormatList::ScCondFormatList(Window* pParent, const ResId& rResId, ScDocum
maEntries.push_back(new ScDataBarFrmtEntry( this, mpDoc, maPos, static_cast<const ScDataBarFormat*>( pEntry ) ) );
break;
case condformat::ICONSET:
+ maEntries.push_back(new ScIconSetFrmtEntry( this, mpDoc, maPos, static_cast<const ScIconSetFormat*>( pEntry ) ) );
break;
case condformat::DATE:
maEntries.push_back(new ScDateFrmtEntry( this, mpDoc, static_cast<const ScCondDateFormatEntry*>( pEntry ) ) );
@@ -224,6 +225,12 @@ IMPL_LINK(ScCondFormatList, ColFormatTypeHdl, ListBox*, pBox)
maEntries.replace( itr, new ScDataBarFrmtEntry( this, mpDoc, maPos ) );
break;
+ case 3:
+ if(itr->GetType() == condformat::entry::ICONSET)
+ return 0;
+
+ maEntries.replace( itr, new ScIconSetFrmtEntry( this, mpDoc, maPos ) );
+ break;
default:
break;
}
@@ -257,6 +264,7 @@ IMPL_LINK(ScCondFormatList, TypeListHdl, ListBox*, pBox)
case condformat::entry::COLORSCALE2:
case condformat::entry::COLORSCALE3:
case condformat::entry::DATABAR:
+ case condformat::entry::ICONSET:
return 0;
}
maEntries.replace( itr, new ScColorScale3FrmtEntry(this, mpDoc, maPos));
@@ -287,6 +295,7 @@ IMPL_LINK(ScCondFormatList, TypeListHdl, ListBox*, pBox)
static_cast<ScCondFormatDlg*>(GetParent())->InvalidateRefData();
itr->SetActive();
break;
+
}
RecalcAll();
return 0;
diff --git a/sc/source/ui/condformat/condformatdlgentry.cxx b/sc/source/ui/condformat/condformatdlgentry.cxx
index 59cfb92..b039493 100644
--- a/sc/source/ui/condformat/condformatdlgentry.cxx
+++ b/sc/source/ui/condformat/condformatdlgentry.cxx
@@ -1224,4 +1224,95 @@ IMPL_LINK_NOARG( ScDateFrmtEntry, StyleSelectHdl )
return 0;
}
+ScIconSetFrmtEntry::ScIconSetFrmtDataEntry::ScIconSetFrmtDataEntry( Window* pParent, ScIconSetType eType, sal_Int32 i ):
+ Control( pParent, ScResId( RID_ICON_SET_ENTRY ) ),
+ maImgIcon( this, ScResId( IMG_ICON ) ),
+ maFtEntry( this, ScResId( FT_ICON_SET_ENTRY_TEXT ) ),
+ maEdEntry( this, ScResId( ED_ICON_SET_ENTRY_VALUE ) ),
+ maLbEntryType( this, ScResId( LB_ICON_SET_ENTRY_TYPE ) )
+{
+ maImgIcon.SetImage(ScIconSetFormat::getBitmap( eType, i ));
+ FreeResource();
+}
+
+ScIconSetFrmtEntry::ScIconSetFrmtEntry( Window* pParent, ScDocument* pDoc, const ScAddress& rPos, const ScIconSetFormat* pFormat ):
+ ScCondFrmtEntry( pParent, pDoc, rPos ),
+ maLbColorFormat( this, ScResId( LB_COLOR_FORMAT ) ),
+ maLbIconSetType( this, ScResId( LB_ICONSET_TYPE ) )
+{
+ Init();
+ FreeResource();
+
+ if(pFormat)
+ {
+
+ }
+
+ IconSetTypeHdl(NULL);
+}
+
+void ScIconSetFrmtEntry::Init()
+{
+ maLbColorFormat.SelectEntryPos(3);
+ maLbType.SelectEntryPos(0);
+ maLbIconSetType.SelectEntryPos(0);
+
+ maLbIconSetType.SetSelectHdl( LINK( this, ScIconSetFrmtEntry, IconSetTypeHdl ) );
+}
+
+IMPL_LINK_NOARG( ScIconSetFrmtEntry, IconSetTypeHdl )
+{
+ ScIconSetMap* pMap = ScIconSetFormat::getIconSetMap();
+
+ sal_Int32 nPos = maLbIconSetType.GetSelectEntryPos();
+ sal_uInt32 nElements = pMap[nPos].nElements;
+ maEntries.clear();
+
+ for(size_t i = 0; i < nElements; ++i)
+ {
+ maEntries.push_back( new ScIconSetFrmtDataEntry( this, static_cast<ScIconSetType>(nPos), i ) );
+ Point aPos = maEntries[0].GetPosPixel();
+ aPos.Y() += maEntries[0].GetSizePixel().Height() * i * 1.2;
+ maEntries[i].SetPosPixel( aPos );
+ }
+
+ return 0;
+}
+
+OUString ScIconSetFrmtEntry::GetExpressionString()
+{
+ return OUString("");
+}
+
+void ScIconSetFrmtEntry::SetActive()
+{
+ maLbColorFormat.Show();
+ maLbIconSetType.Show();
+ for(ScIconSetFrmtDateEntriesType::iterator itr = maEntries.begin(),
+ itrEnd = maEntries.end(); itr != itrEnd; ++itr)
+ {
+ maEntries[0].Show();
+ }
+
+ Select();
+}
+
+void ScIconSetFrmtEntry::SetInactive()
+{
+ maLbColorFormat.Hide();
+ maLbIconSetType.Hide();
+ for(ScIconSetFrmtDateEntriesType::iterator itr = maEntries.begin(),
+ itrEnd = maEntries.end(); itr != itrEnd; ++itr)
+ {
+ maEntries[0].Hide();
+ }
+
+ Deselect();
+}
+
+ScFormatEntry* ScIconSetFrmtEntry::GetEntry() const
+{
+ return NULL;
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/inc/condformatdlg.hrc b/sc/source/ui/inc/condformatdlg.hrc
index b1ede3c..607404e 100644
--- a/sc/source/ui/inc/condformatdlg.hrc
+++ b/sc/source/ui/inc/condformatdlg.hrc
@@ -69,4 +69,11 @@
#define LB_TYPE_COL_SCALE_MAX 44
#define LB_DATE_TYPE 45
+
+#define IMG_ICON 46
+#define LB_ICONSET_TYPE 47
+#define LB_ICON_SET_ENTRY_TYPE 48
+#define FT_ICON_SET_ENTRY_TEXT 49
+#define ED_ICON_SET_ENTRY_VALUE 50
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/inc/condformatdlgentry.hxx b/sc/source/ui/inc/condformatdlgentry.hxx
index b842ed2..9ef6184 100644
--- a/sc/source/ui/inc/condformatdlgentry.hxx
+++ b/sc/source/ui/inc/condformatdlgentry.hxx
@@ -22,6 +22,7 @@ enum ScCondFrmtEntryType
COLORSCALE2,
COLORSCALE3,
DATABAR,
+ ICONSET,
DATE
};
@@ -239,4 +240,41 @@ private:
SvxFontPrevWindow maWdPreview;
};
+class ScIconSetFrmtEntry : public ScCondFrmtEntry
+{
+ //color format ui elements
+ ListBox maLbColorFormat;
+
+ // icon set ui elements
+ ListBox maLbIconSetType;
+
+ class ScIconSetFrmtDataEntry : public Control
+ {
+ private:
+ FixedImage maImgIcon;
+ FixedText maFtEntry;
+ Edit maEdEntry;
+ ListBox maLbEntryType;
+
+ public:
+ ScIconSetFrmtDataEntry( Window* pParent, ScIconSetType eType, sal_Int32 i );
+ };
+ typedef boost::ptr_vector<ScIconSetFrmtDataEntry> ScIconSetFrmtDateEntriesType;
+ ScIconSetFrmtDateEntriesType maEntries;
+
+ ScFormatEntry* createIconSetEntry();
+ virtual rtl::OUString GetExpressionString();
+
+ void Init();
+
+ DECL_LINK( IconSetTypeHdl, void* );
+
+public:
+ ScIconSetFrmtEntry( Window* pParent, ScDocument* pDoc, const ScAddress& rPos, const ScIconSetFormat* pFormat = NULL );
+ virtual ScFormatEntry* GetEntry() const;
+ virtual void SetActive();
+ virtual void SetInactive();
+ virtual condformat::entry::ScCondFrmtEntryType GetType() { return condformat::entry::ICONSET; }
+};
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/src/condformatdlg.src b/sc/source/ui/src/condformatdlg.src
index ab98866..e0a5f25 100644
--- a/sc/source/ui/src/condformatdlg.src
+++ b/sc/source/ui/src/condformatdlg.src
@@ -177,14 +177,16 @@ Control RID_COND_ENTRY
ListBox LB_COLOR_FORMAT
{
Pos = MAP_APPFONT( 100, 15 );
- Size = MAP_APPFONT( 100, 60);
+ Size = MAP_APPFONT( 80, 60);
Border = TRUE;
DropDown = TRUE;
+ DDExtraWidth = TRUE;
StringList [ en-US ] =
{
"Color Scale (2 Entries)";
"Color Scale (3 Entries)";
"Data Bar";
+ "Icon Set";
};
};
FixedText FT_STYLE
@@ -334,6 +336,73 @@ Control RID_COND_ENTRY
"Next year";
};
};
+ ListBox LB_ICONSET_TYPE
+ {
+ Pos = MAP_APPFONT( 200, 15 );
+ Size = MAP_APPFONT( 80, 50 );
+ Border = TRUE;
+ DropDown = TRUE;
+ DDExtraWidth = TRUE;
+ StringList [ en-US ] =
+ {
+ "3 Arrows";
+ "3 Gray Arrows";
+ "3 Flags";
+ "3 Traffic Lights 1";
+ "3 Traffic Lights 2";
+ "3 Signs";
+ "3 Symbols 1";
+ "3 Symbols 2";
+ "4 Arrows";
+ "4 Gray Arrows";
+ "4 Circles Red to Black";
+ "4 Ratings";
+ "4 Traffic Lights";
+ "5 Arrows";
+ "5 Gray Arrows";
+ "5 Ratings";
+ "5 Quarters";
+ };
+ };
+};
+
+Control RID_ICON_SET_ENTRY
+{
+ Pos = MAP_APPFONT( 0, 35 );
+ Size = MAP_APPFONT(300, 16);
+ // Picture of the Icon
+ FixedImage IMG_ICON
+ {
+ Pos = MAP_APPFONT( 5, 0 );
+ Size = MAP_APPFONT( 16, 16 );
+ };
+ FixedText FT_ICON_SET_ENTRY_TEXT
+ {
+ Pos = MAP_APPFONT( 40, 0 );
+ Size = MAP_APPFONT(40, 14);
+ Text [en-US] = " <= ";
+ };
+ Edit ED_ICON_SET_ENTRY_VALUE
+ {
+ Pos = MAP_APPFONT( 90, 0 );
+ Size = MAP_APPFONT( 40, 14 );
+ Border = TRUE;
+ };
+ ListBox LB_ICON_SET_ENTRY_TYPE
+ {
+ Pos = MAP_APPFONT( 140, 0 );
+ Size = MAP_APPFONT( 60, 40 );
+ Border = TRUE;
+ DropDown = TRUE;
+ DDExtraWidth = TRUE;
+ StringList [ en-US ] =
+ {
+ "Value";
+ "Percent";
+ "Percentile";
+ "Formula";
+ };
+ };
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/view/output.cxx b/sc/source/ui/view/output.cxx
index 16e253f..fd897f1 100644
--- a/sc/source/ui/view/output.cxx
+++ b/sc/source/ui/view/output.cxx
@@ -72,7 +72,6 @@
#include "postit.hxx"
#include "scresid.hxx"
-#include "iconsets.hrc"
#include "colorscale.hxx"
#include <math.h>
@@ -93,103 +92,6 @@ static ColorData nAuthorColor[ SC_AUTHORCOLORCOUNT ] = {
COL_GREEN, COL_RED, COL_BLUE,
COL_BROWN, COL_MAGENTA, COL_CYAN };
-sal_Int32 a3TrafficLights1[] = {
- BMP_ICON_SET_CIRCLES1_RED, BMP_ICON_SET_CIRCLES1_YELLOW, BMP_ICON_SET_CIRCLES1_GREEN
-};
-
-sal_Int32 a3TrafficLights2[] = {
- BMP_ICON_SET_TRAFFICLIGHTS_RED, BMP_ICON_SET_TRAFFICLIGHTS_YELLOW, BMP_ICON_SET_TRAFFICLIGHTS_GREEN
-};
-
-sal_Int32 a3Arrows[] = {
- BMP_ICON_SET_COLORARROWS_DOWN, BMP_ICON_SET_COLORARROWS_SAME, BMP_ICON_SET_COLORARROWS_UP
-};
-
-sal_Int32 a3ArrowsGray[] = {
- BMP_ICON_SET_GRAYARROWS_DOWN, BMP_ICON_SET_GRAYARROWS_SAME, BMP_ICON_SET_GRAYARROWS_UP
-};
-
-sal_Int32 a3Flags[] = {
- BMP_ICON_SET_FLAGS_RED, BMP_ICON_SET_FLAGS_YELLOW, BMP_ICON_SET_FLAGS_GREEN
-};
-
-sal_Int32 a4Arrows[] = {
- BMP_ICON_SET_COLORARROWS_DOWN, BMP_ICON_SET_COLORARROWS_SLIGHTLY_DOWN, BMP_ICON_SET_COLORARROWS_SLIGHTLY_UP, BMP_ICON_SET_COLORARROWS_UP
-};
-
-sal_Int32 a4ArrowsGray[] = {
- BMP_ICON_SET_GRAYARROWS_DOWN, BMP_ICON_SET_GRAYARROWS_SLIGHTLY_DOWN, BMP_ICON_SET_GRAYARROWS_SLIGHTLY_UP, BMP_ICON_SET_GRAYARROWS_UP
-};
-
-sal_Int32 a5Arrows[] = {
- BMP_ICON_SET_COLORARROWS_DOWN, BMP_ICON_SET_COLORARROWS_SLIGHTLY_DOWN,
- BMP_ICON_SET_COLORARROWS_SAME, BMP_ICON_SET_COLORARROWS_SLIGHTLY_UP, BMP_ICON_SET_COLORARROWS_UP
-};
-
-sal_Int32 a5ArrowsGray[] = {
- BMP_ICON_SET_GRAYARROWS_DOWN, BMP_ICON_SET_GRAYARROWS_SLIGHTLY_DOWN,
- BMP_ICON_SET_GRAYARROWS_SAME, BMP_ICON_SET_GRAYARROWS_SLIGHTLY_UP, BMP_ICON_SET_GRAYARROWS_UP
-};
-
-sal_Int32 a4TrafficLights[] = {
- BMP_ICON_SET_CIRCLES1_GRAY, BMP_ICON_SET_CIRCLES1_RED,
- BMP_ICON_SET_CIRCLES1_YELLOW, BMP_ICON_SET_CIRCLES1_GREEN
-};
-
-sal_Int32 a5Quarters[] = {
- BMP_ICON_SET_PIES_EMPTY, BMP_ICON_SET_PIES_ONE_QUARTER, BMP_ICON_SET_PIES_HALF,
- BMP_ICON_SET_PIES_THREE_QUARTER, BMP_ICON_SET_PIES_FULL,
-};
-
-sal_Int32 a3Symbols1[] = {
- BMP_ICON_SET_SYMBOLS1_CHECK, BMP_ICON_SET_SYMBOLS1_EXCLAMATION_MARK, BMP_ICON_SET_SYMBOLS1_CROSS
-};
-
-sal_Int32 a3Signs[] = {
- BMP_ICON_SET_SHAPES_DIAMOND, BMP_ICON_SET_SHAPES_TRIANGLE, BMP_ICON_SET_SHAPES_CIRCLE
-};
-
-sal_Int32 a4RedToBlack[] = {
- BMP_ICON_SET_CIRCLES2_DARK_GRAY, BMP_ICON_SET_CIRCLES2_LIGHT_GRAY,
- BMP_ICON_SET_CIRCLES2_LIGHT_RED, BMP_ICON_SET_CIRCLES2_DARK_RED
-};
-
-sal_Int32 a4Ratings[] = {
- BMP_ICON_SET_BARS_ONE_QUARTER, BMP_ICON_SET_BARS_HALF,
- BMP_ICON_SET_BARS_THREE_QUARTER, BMP_ICON_SET_BARS_FULL
-};
-
-sal_Int32 a5Ratings[] = {
- BMP_ICON_SET_BARS_EMPTY, BMP_ICON_SET_BARS_ONE_QUARTER, BMP_ICON_SET_BARS_HALF,
- BMP_ICON_SET_BARS_THREE_QUARTER, BMP_ICON_SET_BARS_FULL
-};
-
-struct ScIconSetBitmapMap {
- ScIconSetType eType;
- sal_Int32* nBitmaps;
-};
-
-static ScIconSetBitmapMap aBitmapMap[] = {
- { IconSet_3Arrows, a3Arrows },
- { IconSet_3ArrowsGray, a3ArrowsGray },
- { IconSet_3Flags, a3Flags },
- { IconSet_3Signs, a3Signs },
- { IconSet_3Symbols, a3Symbols1 },
- { IconSet_3Symbols2, a3Symbols1 },
- { IconSet_3TrafficLights1, a3TrafficLights1 },
- { IconSet_3TrafficLights2, a3TrafficLights2 },
- { IconSet_4Arrows, a4Arrows },
- { IconSet_4ArrowsGray, a4ArrowsGray },
- { IconSet_4Rating, a4Ratings },
- { IconSet_4RedToBlack, a4RedToBlack },
- { IconSet_4TrafficLights, a4TrafficLights },
- { IconSet_5Arrows, a5Arrows },
- { IconSet_5ArrowsGray, a5ArrowsGray },
- { IconSet_5Quarters, a5Quarters },
- { IconSet_5Ratings, a5Ratings }
-};
-
-static std::map< sal_Int32, BitmapEx > aIconSetBitmaps;
// Hilfsklasse, fuer die Farbzuordnung,
// um nicht mehrfach hintereinander denselben User aus der Liste zu suchen
@@ -984,28 +886,7 @@ void drawDataBars( const ScDataBarInfo* pOldDataBarInfo, OutputDevice* pDev, con
BitmapEx& getIcon( ScIconSetType eType, sal_Int32 nIndex )
{
- sal_Int32 nBitmap = -1;
-
- for(size_t i = 0; i < SAL_N_ELEMENTS(aBitmapMap); ++i)
- {
- if(aBitmapMap[i].eType == eType)
- {
- nBitmap = *(aBitmapMap[i].nBitmaps + nIndex);
- }
- }
-
- assert( nBitmap != -1 );
-
- std::map<sal_Int32, BitmapEx>::iterator itr = aIconSetBitmaps.find( nBitmap );
- if(itr != aIconSetBitmaps.end())
- return itr->second;
-
- BitmapEx aBitmap = BitmapEx(ScResId(nBitmap));
- std::pair<sal_Int32, BitmapEx> aPair( nBitmap, aBitmap );
- std::pair<std::map<sal_Int32, BitmapEx>::iterator, bool> itrNew = aIconSetBitmaps.insert(aPair);
- assert(itrNew.second);
-
- return itrNew.first->second;
+ return ScIconSetFormat::getBitmap( eType, nIndex );
}
void drawIconSets( const ScIconSetInfo* pOldIconSetInfo, OutputDevice* pDev, const Rectangle& rRect )
commit 8c4719fd489ab70d5ae77e5f257254ef653a1f25
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date: Thu Nov 29 13:59:43 2012 +0100
support shared strings enough for gnumeric import
Change-Id: I1cedf79d0465e8b8e4b8e85bea65bd35174e51a2
diff --git a/sc/source/filter/inc/orcusinterface.hxx b/sc/source/filter/inc/orcusinterface.hxx
index e2c9c08..6bf3311 100644
--- a/sc/source/filter/inc/orcusinterface.hxx
+++ b/sc/source/filter/inc/orcusinterface.hxx
@@ -20,10 +20,30 @@
class ScDocument;
class ScOrcusSheet;
+class ScOrcusSharedStrings : public orcus::spreadsheet::iface::import_shared_strings
+{
+ std::vector<OUString> maSharedStrings;
+
+public:
+ virtual size_t append(const char* s, size_t n);
+ virtual size_t add(const char* s, size_t n);
+
+ virtual void set_segment_bold(bool b);
+ virtual void set_segment_italic(bool b);
+ virtual void set_segment_font_name(const char* s, size_t n);
+ virtual void set_segment_font_size(double point);
+ virtual void append_segment(const char* s, size_t n);
+
+ virtual size_t commit_segments();
+
+ const OUString& getByIndex(size_t index) const;
+};
+
class ScOrcusFactory : public orcus::spreadsheet::iface::import_factory
{
ScDocument& mrDoc;
boost::ptr_vector<ScOrcusSheet> maSheets;
+ ScOrcusSharedStrings maSharedStrings;
public:
ScOrcusFactory(ScDocument& rDoc);
@@ -38,8 +58,9 @@ class ScOrcusSheet : public orcus::spreadsheet::iface::import_sheet
{
ScDocument& mrDoc;
SCTAB mnTab;
+ ScOrcusSharedStrings& mrSharedStrings;
public:
- ScOrcusSheet(ScDocument& rDoc, SCTAB nTab);
+ ScOrcusSheet(ScDocument& rDoc, SCTAB nTab, ScOrcusSharedStrings& rSharedStrings);
// Orcus import interface
virtual void set_auto(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, const char* p, size_t n);
diff --git a/sc/source/filter/orcus/interface.cxx b/sc/source/filter/orcus/interface.cxx
index d22c208..52072ad 100644
--- a/sc/source/filter/orcus/interface.cxx
+++ b/sc/source/filter/orcus/interface.cxx
@@ -10,6 +10,7 @@
#include "orcusinterface.hxx"
#include "document.hxx"
+#include "cell.hxx"
using orcus::spreadsheet::row_t;
using orcus::spreadsheet::col_t;
@@ -24,7 +25,7 @@ orcus::spreadsheet::iface::import_sheet* ScOrcusFactory::append_sheet(const char
return NULL;
SCTAB nTab = mrDoc.GetTableCount() - 1;
- maSheets.push_back(new ScOrcusSheet(mrDoc, nTab));
+ maSheets.push_back(new ScOrcusSheet(mrDoc, nTab, maSharedStrings));
return &maSheets.back();
}
@@ -56,14 +57,13 @@ orcus::spreadsheet::iface::import_sheet* ScOrcusFactory::get_sheet(const char* s
return &(*it);
// Create a new orcus sheet instance for this.
- maSheets.push_back(new ScOrcusSheet(mrDoc, nTab));
+ maSheets.push_back(new ScOrcusSheet(mrDoc, nTab, maSharedStrings));
return &maSheets.back();
}
orcus::spreadsheet::iface::import_shared_strings* ScOrcusFactory::get_shared_strings()
{
- // We don't support it yet.
- return NULL;
+ return &maSharedStrings;
}
orcus::spreadsheet::iface::import_styles* ScOrcusFactory::get_styles()
@@ -72,8 +72,8 @@ orcus::spreadsheet::iface::import_styles* ScOrcusFactory::get_styles()
return NULL;
}
-ScOrcusSheet::ScOrcusSheet(ScDocument& rDoc, SCTAB nTab) :
- mrDoc(rDoc), mnTab(nTab) {}
+ScOrcusSheet::ScOrcusSheet(ScDocument& rDoc, SCTAB nTab, ScOrcusSharedStrings& rSharedStrings) :
+ mrDoc(rDoc), mnTab(nTab), mrSharedStrings(rSharedStrings) {}
void ScOrcusSheet::set_auto(row_t row, col_t col, const char* p, size_t n)
{
@@ -86,12 +86,40 @@ void ScOrcusSheet::set_format(row_t /*row*/, col_t /*col*/, size_t /*xf_index*/)
}
void ScOrcusSheet::set_formula(
- row_t /*row*/, col_t /*col*/, formula_grammar_t /*grammar*/, const char* /*p*/, size_t /*n*/)
+ row_t row, col_t col, formula_grammar_t grammar, const char* p, size_t n)
{
+ OUString aFormula(p, n, RTL_TEXTENCODING_UTF8);
+ formula::FormulaGrammar::Grammar eGrammar;
+ switch(grammar)
+ {
+ case orcus::spreadsheet::ods:
+ eGrammar = formula::FormulaGrammar::GRAM_ODFF;
+ break;
+ case orcus::spreadsheet::xlsx_2007:
+ case orcus::spreadsheet::xlsx_2010:
+ eGrammar = formula::FormulaGrammar::GRAM_ENGLISH_XL_A1;
+ break;
+ case orcus::spreadsheet::gnumeric:
+ eGrammar = formula::FormulaGrammar::GRAM_ENGLISH_XL_A1;
+ break;
+ }
+
+ ScFormulaCell* pCell = new ScFormulaCell(&mrDoc, ScAddress(col, row, mnTab), aFormula, eGrammar);
+ mrDoc.PutCell(col, row, mnTab, pCell);
}
-void ScOrcusSheet::set_formula_result(row_t /*row*/, col_t /*col*/, const char* /*p*/, size_t /*n*/)
+void ScOrcusSheet::set_formula_result(row_t row, col_t col, const char* p, size_t n)
{
+ ScBaseCell* pCell;
+ mrDoc.GetCell( col, row, mnTab, pCell );
+ if(!pCell || pCell->GetCellType() != CELLTYPE_FORMULA)
+ {
+ SAL_WARN("sc", "trying to set formula result for non formula \
+ cell! Col: " << col << ";Row: " << row << ";Tab: " << mnTab);
+ return;
+ }
+ OUString aResult( p, n, RTL_TEXTENCODING_UTF8);
+ static_cast<ScFormulaCell*>(pCell)->SetHybridString(aResult);
}
void ScOrcusSheet::set_shared_formula(
@@ -110,12 +138,65 @@ void ScOrcusSheet::set_shared_formula(row_t /*row*/, col_t /*col*/, size_t /*sin
{
}
-void ScOrcusSheet::set_string(row_t /*row*/, col_t /*col*/, size_t /*sindex*/)
+void ScOrcusSheet::set_string(row_t row, col_t col, size_t sindex)
+{
+ // Calc does not yet support shared strings so we have to
+ // workaround by importing shared strings into a temporary
+ // shared string container and writing into calc model as
+ // normal string
+
+ const OUString& rSharedString = mrSharedStrings.getByIndex(sindex);
+ ScBaseCell* pCell = ScBaseCell::CreateTextCell( rSharedString, &mrDoc );
+ mrDoc.PutCell(col, row, mnTab, pCell);
+}
+
+void ScOrcusSheet::set_value(row_t row, col_t col, double value)
+{
+ mrDoc.SetValue( col, row, mnTab, value );
+}
+
+size_t ScOrcusSharedStrings::append(const char* s, size_t n)
+{
+ OUString aNewString(s, n, RTL_TEXTENCODING_UTF8);
+ maSharedStrings.push_back(aNewString);
+
+ return maSharedStrings.size() - 1;
+}
+
+size_t ScOrcusSharedStrings::add(const char* s, size_t n)
+{
+ OUString aNewString(s, n, RTL_TEXTENCODING_UTF8);
+ maSharedStrings.push_back(aNewString);
+
+ return maSharedStrings.size() - 1;
+}
+
+const OUString& ScOrcusSharedStrings::getByIndex(size_t nIndex) const
{
+ if(nIndex < maSharedStrings.size())
+ return maSharedStrings[nIndex];
+
+ throw std::exception();
}
-void ScOrcusSheet::set_value(row_t /*row*/, col_t /*col*/, double /*value*/)
+void ScOrcusSharedStrings::set_segment_bold(bool /*b*/)
+{
+}
+void ScOrcusSharedStrings::set_segment_italic(bool /*b*/)
+{
+}
+void ScOrcusSharedStrings::set_segment_font_name(const char* /*s*/, size_t /*n*/)
+{
+}
+void ScOrcusSharedStrings::set_segment_font_size(double /*point*/)
+{
+}
+void ScOrcusSharedStrings::append_segment(const char* /*s*/, size_t /*n*/)
{
}
+size_t ScOrcusSharedStrings::commit_segments()
+{
+ return 0;
+}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
More information about the Libreoffice-commits
mailing list