pub struct ColumnSettings {
pub column_type: ColumnType,
pub layout_mode: ColumnLayoutMode,
pub columns: Vec<ColumnDef>,
}Expand description
Multi-column layout settings for a section.
Maps to HWPX <hp:ctrl><hp:colPr>. Single-column layout is
represented as None on Section
rather than a ColumnSettings with one column.
§Examples
use hwpforge_core::column::{ColumnSettings, ColumnType, ColumnLayoutMode};
use hwpforge_foundation::HwpUnit;
let cs = ColumnSettings::equal_columns(3, HwpUnit::from_mm(4.0).unwrap()).unwrap();
assert_eq!(cs.columns.len(), 3);
assert_eq!(cs.column_type, ColumnType::Newspaper);
assert_eq!(cs.layout_mode, ColumnLayoutMode::Left);Fields§
§column_type: ColumnTypeColumn flow type.
layout_mode: ColumnLayoutModeColumn balance strategy.
columns: Vec<ColumnDef>Individual column definitions. Length = number of columns (>= 2).
Implementations§
Source§impl ColumnSettings
impl ColumnSettings
Sourcepub fn equal_columns(count: u32, gap: HwpUnit) -> Result<Self, &'static str>
pub fn equal_columns(count: u32, gap: HwpUnit) -> Result<Self, &'static str>
Creates an equal-width N-column layout with the given gap.
All columns get the same gap value (last column gap is set to zero
by the encoder). Uses ColumnType::Newspaper and
ColumnLayoutMode::Left as defaults.
§Errors
Returns an error if count < 2 (single-column should be None).
§Examples
use hwpforge_core::column::ColumnSettings;
use hwpforge_foundation::HwpUnit;
let cs = ColumnSettings::equal_columns(2, HwpUnit::from_mm(4.0).unwrap()).unwrap();
assert_eq!(cs.columns.len(), 2);Sourcepub fn custom(columns: Vec<ColumnDef>) -> Result<Self, &'static str>
pub fn custom(columns: Vec<ColumnDef>) -> Result<Self, &'static str>
Creates a variable-width column layout from explicit definitions.
Uses ColumnType::Newspaper and ColumnLayoutMode::Left as defaults.
§Errors
Returns an error if columns.len() < 2 (single-column should be None).
§Examples
use hwpforge_core::column::{ColumnSettings, ColumnDef};
use hwpforge_foundation::HwpUnit;
let cs = ColumnSettings::custom(vec![
ColumnDef { width: HwpUnit::new(14000).unwrap(), gap: HwpUnit::new(1134).unwrap() },
ColumnDef { width: HwpUnit::new(27000).unwrap(), gap: HwpUnit::ZERO },
]).unwrap();
assert_eq!(cs.columns.len(), 2);Sourcepub fn is_equal_width(&self) -> bool
pub fn is_equal_width(&self) -> bool
Returns true if all columns have the same width (or width is zero,
meaning 한글 calculates equal widths).
Trait Implementations§
Source§impl Clone for ColumnSettings
impl Clone for ColumnSettings
Source§fn clone(&self) -> ColumnSettings
fn clone(&self) -> ColumnSettings
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ColumnSettings
impl Debug for ColumnSettings
Source§impl<'de> Deserialize<'de> for ColumnSettings
impl<'de> Deserialize<'de> for ColumnSettings
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Display for ColumnSettings
impl Display for ColumnSettings
Source§impl JsonSchema for ColumnSettings
impl JsonSchema for ColumnSettings
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read more