/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
*
|
* This file is part of xlslib -- A multiplatform, C/C++ library
|
* for dynamic generation of Excel(TM) files.
|
*
|
* Copyright 2004 Yeico S. A. de C. V. All Rights Reserved.
|
* Copyright 2008-2011 David Hoerl All Rights Reserved.
|
*
|
* Redistribution and use in source and binary forms, with or without modification, are
|
* permitted provided that the following conditions are met:
|
*
|
* 1. Redistributions of source code must retain the above copyright notice, this list of
|
* conditions and the following disclaimer.
|
*
|
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
* of conditions and the following disclaimer in the documentation and/or other materials
|
* provided with the distribution.
|
*
|
* THIS SOFTWARE IS PROVIDED BY David Hoerl ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL David Hoerl OR
|
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
*
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
#ifndef EXTFORMAT_H
|
#define EXTFORMAT_H
|
|
#include "../common/xlsys.h"
|
#include "../common/systype.h"
|
|
#include "../xlslib/colors.h" // need enums
|
#include "../xlslib/format.h" // need enums
|
|
// #include "common/xls_pshpack2.h"
|
|
namespace xlslib_core
|
{
|
// COMMON
|
class font_t;
|
|
// The Cell Properties bit or-masks:
|
#define XF_PROP_SHIFTPOS_PARENT 4
|
|
#define XF_PROP_LOCKED 0x0001
|
#define XF_PROP_HIDDEN 0x0002
|
#define XF_PROP_STYLE 0x0004
|
//#define XF_PROP_123PREFIX 0x0008
|
#define XF_PROP_XFPARENT 0xFFF0
|
#define XF_PROP_XFPARENT_VALUE4STYLE 0x0FFF
|
#define XF_PROP_XF_DEFAULT_CELL 15
|
|
// The Alignment field bit or-masks:
|
#define XF_ALIGN_HORIZONTAL 0x0007
|
#define XF_ALIGN_WRAP 0x0008
|
#define XF_ALIGN_VERTICAL 0x0070
|
#define XF_ALIGN_JUSTLAST 0x0080
|
/* BIFF8: Used only in far-east versions of excel */
|
|
// Style options
|
#define XF_FILL_NONE 0x00
|
#define XF_FILL_SOLID 0x01
|
#define XF_FILL_ATEN75 0x03
|
#define XF_FILL_ATEN50 0x02
|
#define XF_FILL_ATEN25 0x04
|
#define XF_FILL_ATEN12 0x11
|
#define XF_FILL_ATEN06 0x12
|
#define XF_FILL_HORIZ_LIN 0x05
|
#define XF_FILL_VERTICAL_LIN 0x06
|
#define XF_FILL_DIAG 0x07
|
#define XF_FILL_INV_DIAG 0x08
|
#define XF_FILL_INTER_DIAG 0x09
|
#define XF_FILL_DIAG_THICK_INTER 0x0a
|
#define XF_FILL_HORIZ_LINES_THIN 0x0b
|
#define XF_FILL_VERTICAL_LINES_THIN 0x0c
|
#define XF_FILL_DIAG_THIN 0x0d
|
#define XF_FILL_INV_DIAG_THIN 0x0e
|
#define XF_FILL_HORIZ_INT_THIN 0x0f
|
#define XF_FILL_HORIZ_INTER_THICK 0x10
|
typedef enum
|
{
|
FILL_NONE = 0,
|
FILL_SOLID,
|
FILL_ATEN75,
|
FILL_ATEN50,
|
FILL_ATEN25,
|
FILL_ATEN12,
|
FILL_ATEN06,
|
FILL_HORIZ_LIN,
|
FILL_VERTICAL_LIN,
|
FILL_DIAG,
|
FILL_INV_DIAG,
|
FILL_INTER_DIAG,
|
FILL_DIAG_THICK_INTER,
|
FILL_HORIZ_LINES_THIN,
|
FILL_VERTICAL_LINES_THIN,
|
FILL_DIAG_THIN,
|
FILL_INV_DIAG_THIN,
|
FILL_HORIZ_INT_THIN,
|
FILL_HORIZ_INTER_THICK,
|
_NUM_FILL_OPTIONS
|
} fill_option_t;
|
|
// Border Options
|
#define XF_BRDOPTION_NONE 0x00
|
#define XF_BRDOPTION_THIN 0x01
|
#define XF_BRDOPTION_MEDIUM 0x02
|
#define XF_BRDOPTION_DASHED 0x03
|
#define XF_BRDOPTION_DOTTED 0x04
|
#define XF_BRDOPTION_THICK 0x05
|
#define XF_BRDOPTION_DOUBLE 0x06
|
#define XF_BRDOPTION_HAIR 0x07
|
typedef enum
|
{
|
BORDER_NONE = 0,
|
BORDER_THIN,
|
BORDER_MEDIUM,
|
BORDER_DASHED,
|
BORDER_DOTTED,
|
BORDER_THICK,
|
BORDER_DOUBLE,
|
BORDER_HAIR,
|
_NUM_BORDER_STYLES
|
} border_style_t;
|
|
// Border options
|
#define XF_BORDER_BOTTOM 0
|
#define XF_BORDER_TOP 1
|
#define XF_BORDER_LEFT 2
|
#define XF_BORDER_RIGHT 3
|
typedef enum
|
{
|
BORDER_BOTTOM = 0,
|
BORDER_TOP,
|
BORDER_LEFT,
|
BORDER_RIGHT,
|
DIAGONALS, // BIFF8
|
_NUM_BORDERS
|
} border_side_t;
|
// Horizontal Align options
|
#define XF_HALIGN_GENERAL 0
|
#define XF_HALIGN_LEFT 1
|
#define XF_HALIGN_CENTER 2
|
#define XF_HALIGN_RIGHT 3
|
#define XF_HALIGN_FILL 4
|
#define XF_HALIGN_JUSTIFY 5
|
#define XF_HALIGN_CENTERACCROSS 6
|
typedef enum
|
{
|
HALIGN_GENERAL = 0,
|
HALIGN_LEFT,
|
HALIGN_CENTER,
|
HALIGN_RIGHT,
|
HALIGN_FILL,
|
HALIGN_JUSTIFY,
|
HALIGN_CENTERACCROSS,
|
_NUM_HALIGN_OPTIONS
|
} halign_option_t;
|
|
// Vertical Align options
|
#define XF_VALIGN_TOP 0
|
#define XF_VALIGN_CENTER 1
|
#define XF_VALIGN_BOTTOM 2
|
#define XF_VALIGN_JUSTIFY 3
|
typedef enum
|
{
|
VALIGN_TOP = 0,
|
VALIGN_CENTER,
|
VALIGN_BOTTOM,
|
VALIGN_JUSTIFY,
|
_NUM_VALIGN_OPTIONS
|
} valign_option_t;
|
|
#define XF_LOCKED true
|
#define XF_NO_LOCKED false
|
|
#define XF_HIDDEN true
|
#define XF_NO_HIDDEN false
|
|
#define XF_WRAPPED true
|
#define XF_NO_WRAPPED false
|
|
#define XF_IS_CELL true
|
#define XF_IS_STYLE false
|
|
#define XF_OFFSET_FONT 4
|
#define XF_OFFSET_FORMAT 6
|
#define XF_OFFSET_PROP 8
|
#define XF_OFFSET_ALIGN 10
|
// 4 bytes
|
#define XF_OFFSET_BORDERA 14
|
// 4 bytes
|
#define XF_OFFSET_BORDERB 18
|
// 4 bytes
|
#define XF_OFFSET_COLOR 22
|
|
// Geometric Align options
|
#define XF_ALIGN_SHIFTPOS_HALIGN 0
|
#define XF_ALIGN_SHIFTPOS_VALIGN 4
|
|
// XF_USED_ATTRIB
|
#define XF_ALIGN_ATR_SHIFT 24
|
|
#define XF_ALIGN_ATRNUM 0x04
|
#define XF_ALIGN_ATRFONT 0x08
|
#define XF_ALIGN_ATRALC 0x10
|
#define XF_ALIGN_ATRBDR 0x20
|
#define XF_ALIGN_ATRPAT 0x40
|
#define XF_ALIGN_ATRPROT 0x80
|
#define XF_ALIGN_ALL (XF_ALIGN_ATRPROT|XF_ALIGN_ATRPAT|XF_ALIGN_ATRBDR|XF_ALIGN_ATRALC|XF_ALIGN_ATRFONT|XF_ALIGN_ATRNUM)
|
#define XF_ALIGN_ATR_MASK 0xFC000000
|
|
// Text Orientation Options
|
#define XF_ORI_SHIFTPOS 8
|
#define XF_ORI_NONE 0
|
#define XF_ORI_90NOCLOCKTXT 90
|
#define XF_ORI_90CLOCKTXT 180
|
#define XF_ORI_TOPBOTTOMTXT 255
|
#define XF_ORI_MASK 0x0000FF00
|
typedef enum
|
{
|
ORI_NONE = 0,
|
ORI_TOPBOTTOMTXT,
|
ORI_90NOCLOCKTXT,
|
ORI_90CLOCKTXT,
|
_NUM_TXTORI_OPTIONS
|
} txtori_option_t;
|
|
// Indent field
|
#define XF_INDENT_SHIFTPOS 16
|
#define XF_INDENT_LVL 0x0F
|
#define XF_INDENT_0 0x00
|
#define XF_INDENT_1 0x01
|
#define XF_INDENT_2 0x02
|
#define XF_INDENT_3 0x03
|
#define XF_INDENT_4 0x04
|
#define XF_INDENT_5 0x05
|
#define XF_INDENT_6 0x06
|
#define XF_INDENT_7 0x07
|
#define XF_INDENT_8 0x08
|
#define XF_INDENT_9 0x09
|
#define XF_INDENT_10 0x0a
|
#define XF_INDENT_11 0x0b
|
#define XF_INDENT_12 0x0c
|
#define XF_INDENT_13 0x0d
|
#define XF_INDENT_14 0x0e
|
#define XF_INDENT_15 0x0f
|
#define XF_INDENT_SHRINK2FIT 0x10
|
#define XF_INDENT_DIR 0xC0
|
#define XF_INDENT_CONTEXT 0x00
|
#define XF_INDENT_L2R 0x40
|
#define XF_INDENT_R2L 0x80
|
typedef enum
|
{
|
INDENT_0 = 0,
|
INDENT_1,
|
INDENT_2,
|
INDENT_3,
|
INDENT_4,
|
INDENT_5,
|
INDENT_6,
|
INDENT_7,
|
INDENT_8,
|
INDENT_9,
|
INDENT_10,
|
INDENT_11,
|
INDENT_12,
|
INDENT_13,
|
INDENT_14,
|
INDENT_15,
|
INDENT_SHRINK2FIT,
|
INDENT_L2R,
|
INDENT_R2L,
|
_NUM_INDENT_OPTIONS
|
} indent_option_t;
|
|
// XF_USED_ATTRIB
|
#define XF_ATTRIB_SHIFTPOS 16
|
// bits shifted by 8 already
|
|
// The Border A field bit or-masks:
|
|
#define XF_STYLE_SHIFTPOS_LEFT 0
|
#define XF_STYLE_SHIFTPOS_RIGHT 4
|
#define XF_STYLE_SHIFTPOS_TOP 8
|
#define XF_STYLE_SHIFTPOS_BOTTOM 12
|
|
// The BorderA field bit or-masks:
|
#define XF_COLOR_SHIFTPOS_LEFT 16
|
#define XF_COLOR_SHIFTPOS_RIGHT 23
|
|
#define XF_BORDER_LEFTSTYLE 0x0000000F
|
#define XF_BORDER_RIGHTSTYLE 0x000000F0
|
#define XF_BORDER_TOPSTYLE 0x00000F00
|
#define XF_BORDER_BOTTOMSTYLE 0x0000F000
|
|
#define XF_BORDER_LEFTCOLOR 0x007f0000
|
#define XF_BORDER_RIGHTCOLOR 0x3f800000
|
#define XF_DIAG_TL2BR 0x40000000
|
// diagonal down (part of 'grbitDiag' in BIFF8 spec)
|
#define XF_DIAG_BL2TR 0x80000000
|
// diagonal up (part of 'grbitDiag' in BIFF8 spec)
|
|
// BORDER B
|
|
#define XF_COLOR_SHIFTPOS_TOP 0
|
#define XF_COLOR_SHIFTPOS_BOTTOM 7
|
#define XF_COLOR_SHIFTPOS_DIAG 14
|
#define XF_STYLE_SHIFTPOS_DIAG 21
|
#define XF_SHIFTPOS_FILLPATTERN 26
|
|
#define XF_BORDER_TOPCOLOR 0x0000007f
|
#define XF_BORDER_BOTTOMCOLOR 0x00003f80
|
#define XF_BORDER_DIAGCOLOR 0x001fc000
|
#define XF_BORDER_DIAGSTYLE 0x01e00000
|
#define XF_BORDER_FILLPATTERN 0xFC000000
|
|
//#define XF_STYLE_SHIFTPOS_LEFT 3
|
//#define XF_STYLE_SHIFTPOS_RIGHT 6
|
//#define XF_COLOR_SHIFTPOS_TOP 9
|
//#define XF_BORDER1_TOPSTYLE 0x0007
|
//#define XF_BORDER1_LEFTSTYLE 0x0038
|
//#define XF_BORDER1_RIGHTSTYLE 0x01c0
|
|
// The Color field bit or-masks:
|
#define XF_COLOR_SHIFTPOS_FG 0
|
#define XF_COLOR_SHIFTPOS_BG 7
|
#define XF_COLOR_FOREGROUND 0x007f
|
#define XF_COLOR_BACKGROUND 0x3f80
|
#define XF_COLOR_DIAG 0xc000
|
|
/*
|
******************************
|
************************************************************CExtFormat class declaration
|
******************************
|
*/
|
class xf_init_t
|
{
|
friend class xf_t;
|
|
public:
|
xf_init_t();
|
~xf_init_t();
|
|
font_t* font;
|
//format_number_t format; problem is user formats are in their own space
|
unsigned16_t formatIndex;
|
|
bool locked : 1;
|
bool hidden : 1;
|
bool wrap : 1;
|
|
halign_option_t halign;
|
valign_option_t valign;
|
indent_option_t indent;
|
txtori_option_t txt_orient;
|
|
fill_option_t fillstyle;
|
color_name_t fill_fgcolor;
|
color_name_t fill_bgcolor;
|
|
border_style_t border_style[_NUM_BORDERS];
|
color_name_t border_color[_NUM_BORDERS];
|
|
bool operator==(const xf_init_t& right);
|
|
private:
|
xf_init_t(const xf_init_t &that);
|
xf_init_t(const xf_init_t *that);
|
xf_init_t& operator=(const xf_init_t& right);
|
};
|
|
//class xf_t;
|
|
class xf_i
|
{
|
public:
|
xf_i() { }
|
virtual ~xf_i() { }
|
|
virtual void font(font_t* fontidx) = 0;
|
virtual void format(format_number_t formatidx) = 0;
|
virtual void format(format_t* format) = 0;
|
virtual void halign(halign_option_t ha_option) = 0;
|
virtual void valign(valign_option_t va_option) = 0;
|
virtual void indent(indent_option_t indent_opt) = 0;
|
virtual void orientation(txtori_option_t ori_option) = 0;
|
virtual void fillfgcolor(color_name_t color) = 0;
|
virtual void fillfgcolor(unsigned8_t color) = 0;
|
virtual void fillbgcolor(color_name_t color) = 0;
|
virtual void fillbgcolor(unsigned8_t color) = 0;
|
virtual void fillstyle(fill_option_t fill) = 0;
|
virtual void locked(bool locked_opt) = 0;
|
virtual void hidden(bool hidden_opt) = 0;
|
virtual void wrap(bool wrap_opt) = 0;
|
virtual void borderstyle(border_side_t side, border_style_t style) = 0;
|
virtual void bordercolor(border_side_t side, color_name_t color) = 0;
|
virtual void bordercolor(border_side_t side, unsigned8_t color) = 0;
|
};
|
|
|
class xf_t
|
{
|
// The reason for these is to advise end users on which methods they should use.
|
//friend xf_t* workbook::xformat(void);
|
friend class workbook;
|
friend class worksheet;
|
friend class range;
|
friend class CGlobalRecords;
|
friend class CExtFormat;
|
friend class cell_t;
|
friend class xfSorter;
|
|
private:
|
xf_t(CGlobalRecords& gRecords, bool userXF=true, bool isCell=true, bool isMasterXF=false);
|
xf_t(CGlobalRecords& gRecords, const xf_init_t& xfinit);
|
xf_t(const xf_t& orig);
|
|
virtual ~xf_t();
|
|
static const xf_init_t xfiInit;
|
|
xf_t& operator=(const xf_t& right);
|
|
#if 0
|
// [i_a] xls C i/f & C++ facade export these?
|
private:
|
#else
|
public:
|
#endif
|
void SetFormatIndex(unsigned16_t formatidx);
|
unsigned16_t GetFormatIndex(void) const;
|
format_number_t GetFormat(void) const;
|
|
public:
|
void UnMarkUsed(void);
|
void MarkUsed(void);
|
unsigned32_t Usage() const;
|
|
private:
|
/* XF Index wrappers*/
|
void SetIndex(unsigned16_t xfidx){index = xfidx; }
|
std::string Description() const;
|
|
static const xf_init_t &GetDefaultXFshadow(CGlobalRecords& gRecords, bool userXF, bool isCell);
|
const xf_init_t &GetXFshadow() const { return xfi; }
|
|
public:
|
// end user copy method
|
static xf_t* xfDup(const xf_t* orig)
|
{
|
xf_t* xft = new xf_t(*orig);
|
return xft;
|
}
|
|
bool operator==(const xf_t& right);
|
|
unsigned16_t GetIndex(void) const {return index; }
|
|
void SetParent(const xf_t* parent);
|
unsigned16_t GetParentIndex(void) const;
|
const xf_t* GetParent(void) const;
|
|
// XF_ALIGN_ATRNUM
|
/* Format Index wrappers*/
|
void SetFormat(format_number_t formatidx);
|
void SetFormat(format_t *fmt);
|
|
// XF_ALIGN_ATRFONT
|
/* Font Index wrappers*/
|
void SetFont(font_t* newfont);
|
unsigned16_t GetFontIndex(void) const;
|
font_t* GetFont(void) const;
|
|
// XF_ALIGN_ATRALC controlled attributes (all set in one Excel pane)
|
/* Horizontal Align option wrappers*/
|
void SetHAlign(halign_option_t ha_option);
|
unsigned8_t GetHAlign(void) const;
|
|
/* Vertical Align option wrappers*/
|
void SetVAlign(valign_option_t va_option);
|
unsigned8_t GetVAlign(void) const;
|
|
/* Wrap option wrappers*/
|
void SetWrap(bool wrap_opt);
|
bool IsWrap(void) const;
|
|
/* Horizontal alignment options */
|
void SetIndent(indent_option_t indent_option);
|
unsigned8_t GetIndent(void) const;
|
|
/* Text orientation option wrappers*/
|
void SetTxtOrientation(txtori_option_t ori_option);
|
unsigned8_t GetTxtOrientation(void) const;
|
// END XF_ALIGN_ATRALC
|
|
// XF_ALIGN_ATRBDR - border
|
/* Cell option wrappers*/
|
void SetBorderStyle(border_side_t side, border_style_t style);
|
unsigned8_t GetBorderStyle(border_side_t side) const;
|
|
void SetBorderColor(border_side_t side, color_name_t color);
|
void SetBorderColor(border_side_t side, unsigned8_t color);
|
unsigned16_t GetBorderColorIdx(border_side_t side) const;
|
// END XF_ALIGN_ATRBDR
|
|
// XF_ALIGN_ATRPAT
|
/* Fill Foreground color option wrappers*/
|
void SetFillFGColor(color_name_t color);
|
void SetFillFGColor(unsigned8_t color);
|
unsigned16_t GetFillFGColorIdx(void) const;
|
|
/* Fill Background color option wrappers*/
|
void SetFillBGColor(color_name_t color);
|
void SetFillBGColor(unsigned8_t color);
|
unsigned16_t GetFillBGColorIdx(void) const;
|
|
/* Fill Style option wrappers*/
|
void SetFillStyle(fill_option_t fill);
|
unsigned8_t GetFillStyle(void) const;
|
// END XF_ALIGN_ATRPAT
|
|
// XF_ALIGN_ATRPROT
|
/* Locked option wrappers*/
|
void SetLocked(bool locked_opt);
|
bool IsLocked(void) const;
|
|
/* Hidden option wrappers*/
|
void SetHidden(bool hidden_opt);
|
bool IsHidden(void) const;
|
// END XF_ALIGN_ATRPROT
|
|
#if 0
|
// [i_a] xls C i/f & C++ facade export these?
|
private:
|
#else
|
public:
|
#endif
|
/* Cell option wrappers*/
|
void SetCellMode(bool cellmode);
|
bool IsCell(void) const;
|
|
private:
|
unsigned8_t GetFlags() const;
|
void SetFlag(unsigned8_t flag);
|
void ClearFlag(unsigned8_t flag);
|
|
void AtuneXF(void); // make sure the XF is set up properly so the Excel output will be flawless.
|
|
private:
|
//xlslib_core::CGlobalRecords *m_GlobalRecords;
|
CGlobalRecords& m_GlobalRecords;
|
xf_init_t xfi; // shadow options used to create this object
|
|
unsigned32_t m_usage_counter;
|
unsigned16_t index;
|
unsigned16_t parent_index;
|
|
unsigned16_t formatIndex;
|
font_t* font;
|
format_t *format;
|
|
unsigned8_t halign;
|
unsigned8_t valign;
|
unsigned8_t indent;
|
unsigned8_t txt_orient;
|
|
unsigned8_t fillstyle;
|
unsigned8_t fill_fgcolor;
|
unsigned8_t fill_bgcolor;
|
|
bool locked : 1;
|
bool hidden : 1;
|
bool wrap : 1;
|
bool is_cell : 1;
|
bool is_userXF : 1;
|
|
unsigned8_t border_style[_NUM_BORDERS];
|
unsigned8_t border_color[_NUM_BORDERS];
|
|
unsigned8_t flags;
|
|
// Lookup tables for options
|
static const unsigned8_t HALIGN_OPTIONS_TABLE[_NUM_HALIGN_OPTIONS];
|
static const unsigned8_t VALIGN_OPTIONS_TABLE[_NUM_VALIGN_OPTIONS];
|
static const unsigned8_t INDENT_OPTIONS_TABLE[_NUM_INDENT_OPTIONS];
|
static const unsigned8_t TXTORI_OPTIONS_TABLE[_NUM_TXTORI_OPTIONS];
|
static const unsigned8_t COLOR_OPTIONS_TABLE[_NUM_COLOR_NAMES];
|
static const unsigned8_t FILL_OPTIONS_TABLE[_NUM_FILL_OPTIONS];
|
static const unsigned8_t BORDERSTYLE_OPTIONS_TABLE[_NUM_BORDER_STYLES];
|
|
public:
|
CGlobalRecords& GetGlobalRecords(void) const { return m_GlobalRecords; }
|
};
|
|
typedef std::vector<xlslib_core::xf_t* XLSLIB_DFLT_ALLOCATOR> XF_Vect_t;
|
typedef XF_Vect_t::iterator XF_Vect_Itor_t;
|
|
// forward ref
|
class CDataStorage;
|
|
class CExtFormat : public CRecord
|
{
|
friend class CDataStorage;
|
|
private:
|
void InitDummy(bool is_cell);
|
|
protected:
|
CExtFormat(CDataStorage &datastore, const xf_t* xfdef);
|
private:
|
virtual ~CExtFormat();
|
|
public:
|
bool IsCell();
|
|
int SetFontIndex(unsigned16_t fontindex);
|
unsigned16_t GetFontIndex(void);
|
|
int SetFormatIndex(unsigned16_t formatindex);
|
unsigned16_t GetFormatIndex(void);
|
|
void SetLocked(bool locked);
|
void SetHidden(bool hidden);
|
void SetHorizAlign(unsigned8_t alignval);
|
void SetWrap(bool wrap);
|
void SetIndent(unsigned8_t indentval);
|
void SetVertAlign(unsigned8_t alignval);
|
void SetTxtOrientation(unsigned8_t alignval);
|
void SetFGColorIndex(unsigned16_t color);
|
void SetBGColorIndex(unsigned16_t color);
|
void SetFillPattern(unsigned8_t color);
|
void SetBorder(border_side_t border, unsigned16_t style, unsigned16_t color);
|
void SetFlags(unsigned8_t flags);
|
void SetXFParent(unsigned16_t parent);
|
};
|
}
|
|
// #include "common/xls_poppack.h"
|
|
#endif
|