Initial QSfera import
This commit is contained in:
+79
@@ -0,0 +1,79 @@
|
||||
package tw
|
||||
|
||||
// CellFormatting holds formatting options for table cells.
|
||||
type CellFormatting struct {
|
||||
AutoWrap int // Wrapping behavior (e.g., WrapTruncate, WrapNormal)
|
||||
AutoFormat State // Enables automatic formatting (e.g., title case for headers)
|
||||
|
||||
// Deprecated: Kept for backward compatibility. Use CellConfig.CellMerging.Mode instead.
|
||||
// This will be removed in a future version.
|
||||
MergeMode int
|
||||
|
||||
// Deprecated: Kept for backward compatibility. Use CellConfig.Alignment instead.
|
||||
// This will be removed in a future version.
|
||||
Alignment Align
|
||||
}
|
||||
|
||||
// CellMerging holds the configuration for how cells should be merged.
|
||||
// This new struct replaces the deprecated MergeMode.
|
||||
type CellMerging struct {
|
||||
// Mode is a bitmask specifying the type of merge (e.g., MergeHorizontal, MergeVertical).
|
||||
Mode int
|
||||
|
||||
// ByColumnIndex specifies which column indices should be considered for merging.
|
||||
// If the mapper is nil or empty, merging applies to all columns (if Mode is set).
|
||||
// Otherwise, only columns with an index present as a key will be merged.
|
||||
ByColumnIndex Mapper[int, bool]
|
||||
|
||||
// ByRowIndex is reserved for future features to specify merging on specific rows.
|
||||
ByRowIndex Mapper[int, bool]
|
||||
}
|
||||
|
||||
// CellPadding defines padding settings for table cells.
|
||||
type CellPadding struct {
|
||||
Global Padding // Default padding applied to all cells
|
||||
PerColumn []Padding // Column-specific padding overrides
|
||||
}
|
||||
|
||||
// CellFilter defines filtering functions for cell content.
|
||||
type CellFilter struct {
|
||||
Global func([]string) []string // Processes the entire row
|
||||
PerColumn []func(string) string // Processes individual cells by column
|
||||
}
|
||||
|
||||
// CellCallbacks holds callback functions for cell processing.
|
||||
// Note: These are currently placeholders and not fully implemented.
|
||||
type CellCallbacks struct {
|
||||
Global func() // Global callback applied to all cells
|
||||
PerColumn []func() // Column-specific callbacks
|
||||
}
|
||||
|
||||
// CellAlignment defines alignment settings for table cells.
|
||||
type CellAlignment struct {
|
||||
Global Align // Default alignment applied to all cells
|
||||
PerColumn []Align // Column-specific alignment overrides
|
||||
}
|
||||
|
||||
// CellConfig combines formatting, padding, and callback settings for a table section.
|
||||
type CellConfig struct {
|
||||
Formatting CellFormatting // Cell formatting options
|
||||
Padding CellPadding // Padding configuration
|
||||
Callbacks CellCallbacks // Callback functions (unused)
|
||||
Filter CellFilter // Function to filter cell content (renamed from Filter Filter)
|
||||
Alignment CellAlignment // Alignment configuration for cells
|
||||
ColMaxWidths CellWidth // Per-column maximum width overrides
|
||||
Merging CellMerging // Merging holds all configuration related to cell merging.
|
||||
|
||||
// Deprecated: use Alignment.PerColumn instead. Will be removed in a future version.
|
||||
// will be removed soon
|
||||
ColumnAligns []Align // Per-column alignment overrides
|
||||
}
|
||||
|
||||
type CellWidth struct {
|
||||
Global int
|
||||
PerColumn Mapper[int, int]
|
||||
}
|
||||
|
||||
func (c CellWidth) Constrained() bool {
|
||||
return c.Global > 0 || c.PerColumn.Len() > 0
|
||||
}
|
||||
Reference in New Issue
Block a user