/* Rwv2 -- Microsoft Word Parser extension
   Copyright (C) 2003 Hannes Wyss, ywesee

   This library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   This library 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 for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with this library; if not, write to the Free Software
   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

   ywesee - intellectual capital connected
	 Winterthurerstrasse 52, CH-8006 Zürich, Switzerland
   hwyss@ywesee.com
*/

#ifndef RWV2_CHARACTER_PROPERTIES_H
#define RWV2_CHARACTER_PROPERTIES_H

#include "word97_generated.h"
#include "paragraphproperties.h"

extern "C" {

typedef struct rwv2_sep {
	wvWare::SharedPtr<const wvWare::Word97::SEP> wv_sep;
} Rwv2Sep;

VALUE rwv2_sep_break_code(VALUE self);
VALUE rwv2_sep_title_page(VALUE self);
VALUE rwv2_sep_page_number_format(VALUE self);
VALUE rwv2_sep_unlocked(VALUE self);
VALUE rwv2_sep_page_number_restart(VALUE self);
VALUE rwv2_sep_endnote(VALUE self);
VALUE rwv2_sep_line_numbering_code(VALUE self);
VALUE rwv2_sep_line_numbering_modulus(VALUE self);
VALUE rwv2_sep_columns(VALUE self);
	
void rwv2_sep_free(Rwv2Sep * stub);

typedef struct rwv2_pap {
	wvWare::SharedPtr<const wvWare::ParagraphProperties> wv_pap;
} Rwv2Pap;

VALUE rwv2_pap_justify(VALUE self);
VALUE rwv2_pap_keep(VALUE self);
VALUE rwv2_pap_keep_follow(VALUE self);
VALUE rwv2_pap_page_break_before(VALUE self);
VALUE rwv2_pap_widow_control(VALUE self);
VALUE rwv2_pap_indent_right(VALUE self);
VALUE rwv2_pap_indent_left(VALUE self);
VALUE rwv2_pap_indent_first_line(VALUE self);

typedef struct rwv2_chp {
	wvWare::SharedPtr<const wvWare::Word97::CHP> wv_chp;
} Rwv2Chp;

VALUE rwv2_chp_bold(VALUE self);
VALUE rwv2_chp_italic(VALUE self);
VALUE rwv2_chp_rev_mark(VALUE self);
VALUE rwv2_chp_rev_mark_del(VALUE self);
VALUE rwv2_chp_outline(VALUE self);
VALUE rwv2_chp_small_caps(VALUE self);
VALUE rwv2_chp_caps(VALUE self);
VALUE rwv2_chp_special_char(VALUE self);
VALUE rwv2_chp_strikethrough(VALUE self);
VALUE rwv2_chp_shadow(VALUE self);
VALUE rwv2_chp_lowercase(VALUE self);
VALUE rwv2_chp_emboss(VALUE self);
VALUE rwv2_chp_imprint(VALUE self);
VALUE rwv2_chp_double_strikethrough(VALUE self);
VALUE rwv2_chp_position(VALUE self);
VALUE rwv2_chp_underline(VALUE self);

void rwv2_chp_free(Rwv2Chp * stub);

typedef struct rwv2_tap {
	wvWare::SharedPtr<const wvWare::Word97::TAP> wv_tap;
} Rwv2Tap;

VALUE rwv2_tap_justify(VALUE self);
VALUE rwv2_tap_gap_half(VALUE self);
VALUE rwv2_tap_row_height(VALUE self);
VALUE rwv2_tap_cant_split(VALUE self);
VALUE rwv2_tap_table_header(VALUE self);
VALUE rwv2_tap_row_cells(VALUE self);
VALUE rwv2_tap_cell_boundaries(VALUE self);
VALUE rwv2_tap_cell_descriptors(VALUE self);

void rwv2_tap_free(Rwv2Tap * stub);

typedef struct rwv2_tc {
	wvWare::Word97::TC * wv_tc;
} Rwv2Tc;

VALUE rwv2_tc_first_merged(VALUE self);
VALUE rwv2_tc_merged(VALUE self);
VALUE rwv2_tc_vertical(VALUE self);
VALUE rwv2_tc_backward(VALUE self);
VALUE rwv2_tc_rotate_font(VALUE self);
VALUE rwv2_tc_vertical_merged(VALUE self);
VALUE rwv2_tc_vertical_restart(VALUE self);
VALUE rwv2_tc_vertical_align(VALUE self);

void rwv2_tc_free(Rwv2Tc * stub);

} // extern "C"

#endif
