# Generated by ffi_gen. Please do not change this file by hand.
require 'ffi'
module Libxlsxwriter
extend FFI::Library
LIB_FILENAME = if RUBY_PLATFORM =~ /darwin/
"libxlsxwriter.dylib"
else
"libxlsxwriter.so"
end
ffi_lib File.expand_path("./../../../libxlsxwriter/lib/#{LIB_FILENAME}", __FILE__)
def self.attach_function(name, *_)
begin; super; rescue FFI::NotFoundError => e
(class << self; self; end).class_eval { define_method(name) { |*_| raise e } }
end
end
def qmd_trace_elem(elem)
end
def qmd_trace_head(head)
end
def qmd_savelink(name, link)
end
def trashit(x)
end
def qmd_list_check_head(head, field)
end
def qmd_list_check_next(elm, field)
end
def qmd_list_check_prev(elm, field)
end
def qmd_tailq_check_head(head, field)
end
def qmd_tailq_check_tail(head, headname)
end
def qmd_tailq_check_next(elm, field)
end
def qmd_tailq_check_prev(elm, field)
end
SPLAY_NEGINF = -1
SPLAY_INF = 1
RB_BLACK = 0
RB_RED = 1
def rb_prototype(name, type, field, cmp)
rb_prototype_internal(name, type, field, cmp, )
end
def rb_generate(name, type, field, cmp)
rb_generate_internal(name, type, field, cmp, )
end
def rb_generate_internal(name, type, field, cmp, attr)
rb_generate_insert_color(name, type, field, attr)
rb_generate_remove_color(name, type, field, attr)
rb_generate_insert(name, type, field, cmp, attr)
rb_generate_remove(name, type, field, attr)
rb_generate_find(name, type, field, cmp, attr)
rb_generate_nfind(name, type, field, cmp, attr)
rb_generate_next(name, type, field, attr)
rb_generate_prev(name, type, field, attr)
rb_generate_minmax(name, type, field, attr)
end
RB_NEGINF = -1
RB_INF = 1
SHEETNAME_MAX = 31
MAX_COL_NAME_LENGTH = "$XFD".length
MAX_ROW_NAME_LENGTH = "$1048576".length
MAX_CELL_NAME_LENGTH = "$XFWD$1048576".length
DATETIME_LENGTH = "2016-12-12T23:00:00Z".length
EPOCH_1900 = 0
EPOCH_1904 = 1
UINT32_T_LENGTH = "4294967296".length
FILENAME_LENGTH = 128
IGNORE = 1
SCHEMA_MS = "http://schemas.microsoft.com/office/2006/relationships"
SCHEMA_ROOT = "http://schemas.openxmlformats.org"
def error(message)
fprintf(STDERR, "[ERROR][%s:%d]: \"message\"\n", FILE, LINE)
end
def mem_error()
error("Memory allocation failed.")
end
def warn(message)
fprintf(STDERR, "[WARNING]: \"message\"\n")
end
def warn_format(message)
fprintf(STDERR, "[WARNING]: \"message\"\n")
end
def warn_format1(message, var)
fprintf(STDERR, "[WARNING]: \"message\"\n", var)
end
def warn_format2(message, var1, var2)
fprintf(STDERR, "[WARNING]: \"message\"\n", var1, var2)
end
FORMAT_FIELD_LEN = 128
DEFAULT_FONT_NAME = "Calibri"
DEFAULT_FONT_FAMILY = 2
DEFAULT_FONT_THEME = 1
PROPERTY_UNSET = -1
COLOR_UNSET = -1
COLOR_MASK = 0xFFFFFF
MIN_FONT_SIZE = 1
MAX_FONT_SIZE = 409
CHART_NUM_FORMAT_LEN = 128
CHART_DEFAULT_GAP = 501
def cell(cell)
return name_to_row(cell), name_to_col(cell)
end
def cols(cols)
return name_to_col(cols), name_to_col_2(cols)
end
def range(range)
return name_to_row(range), name_to_col(range), name_to_row_2(range), name_to_col_2(range)
end
ROW_MAX = 1048576
COL_MAX = 16384
COL_META_MAX = 128
HEADER_FOOTER_MAX = 255
MAX_NUMBER_URLS = 65530
PANE_NAME_LENGTH = 12
BREAKS_MAX = 1023
DEFINED_NAME_LENGTH = 128
APP_PACKAGE = "application/vnd.openxmlformats-package."
APP_DOCUMENT = "application/vnd.openxmlformats-officedocument."
MAXU32 = 0xffffffff
ZLIB_FILEFUNC_SEEK_CUR = 1
ZLIB_FILEFUNC_SEEK_END = 2
ZLIB_FILEFUNC_SEEK_SET = 0
ZLIB_FILEFUNC_MODE_READ = 1
ZLIB_FILEFUNC_MODE_WRITE = 2
ZLIB_FILEFUNC_MODE_READWRITEFILTER = 3
ZLIB_FILEFUNC_MODE_EXISTING = 4
ZLIB_FILEFUNC_MODE_CREATE = 8
Z_BZIP2ED = 12
ZIP_OK = 0
ZIP_EOF = 0
def zip_errno(_Z_ERRNO)
end
ZIP_PARAMERROR = (-102)
ZIP_BADZIPFILE = (-103)
ZIP_INTERNALERROR = (-104)
DEF_MEM_LEVEL = 8
APPEND_STATUS_CREATE = 0
APPEND_STATUS_CREATEAFTER = 1
APPEND_STATUS_ADDINZIP = 2
ZIP_BUFFER_SIZE = 16384
TMPFILE_KEEP = 1
MAX_ATTRIBUTE_LENGTH = 256
ATTR_32 = 32
VERSION = "0.6.9"
# This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:boolean).
#
# === Options:
# :false_ ::
# False value.
# :true_ ::
# True value.
#
# @method _enum_boolean_
# @return [Symbol]
# @scope class
enum :boolean, [
:false_, 0,
:true_, 1
]
# This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:error).
#
# === Options:
# :no_error ::
# No error.
# :error_memory_malloc_failed ::
# Memory error, failed to malloc() required memory.
# :error_creating_xlsx_file ::
# Error creating output xlsx file. Usually a permissions error.
# :error_creating_tmpfile ::
# Error encountered when creating a tmpfile during file assembly.
# :error_zip_file_operation ::
# Zlib error with a file operation while creating xlsx file.
# :error_zip_file_add ::
# Zlib error when adding sub file to xlsx file.
# :error_zip_close ::
# Zlib error when closing xlsx file.
# :error_null_parameter_ignored ::
# NULL function parameter ignored.
# :error_parameter_validation ::
# Function parameter validation error.
# :error_sheetname_length_exceeded ::
# Worksheet name exceeds Excel's limit of 31 characters.
# :error_invalid_sheetname_character ::
# Worksheet name contains invalid Excel character: '():*?/\\'
# :error_sheetname_already_used ::
# Worksheet name is already in use.
# :error_128_string_length_exceeded ::
# Parameter exceeds Excel's limit of 128 characters.
# :error_255_string_length_exceeded ::
# Parameter exceeds Excel's limit of 255 characters.
# :error_max_string_length_exceeded ::
# String exceeds Excel's limit of 32,767 characters.
# :error_shared_string_index_not_found ::
# Error finding internal string index.
# :error_worksheet_index_out_of_range ::
# Worksheet row or column index out of range.
# :error_worksheet_max_number_urls_exceeded ::
# Maximum number of worksheet URLs (65530) exceeded.
# :error_image_dimensions ::
# Couldn't read image dimensions or DPI.
# :max_errno ::
#
#
# @method _enum_error_
# @return [Symbol]
# @scope class
enum :error, [
:no_error, 0,
:error_memory_malloc_failed, 1,
:error_creating_xlsx_file, 2,
:error_creating_tmpfile, 3,
:error_zip_file_operation, 4,
:error_zip_file_add, 5,
:error_zip_close, 6,
:error_null_parameter_ignored, 7,
:error_parameter_validation, 8,
:error_sheetname_length_exceeded, 9,
:error_invalid_sheetname_character, 10,
:error_sheetname_already_used, 11,
:error_128_string_length_exceeded, 12,
:error_255_string_length_exceeded, 13,
:error_max_string_length_exceeded, 14,
:error_shared_string_index_not_found, 15,
:error_worksheet_index_out_of_range, 16,
:error_worksheet_max_number_urls_exceeded, 17,
:error_image_dimensions, 18,
:max_errno, 19
]
# = Fields:
# :year ::
# (Integer) Year : 1900 - 9999
# :month ::
# (Integer) Month : 1 - 12
# :day ::
# (Integer) Day : 1 - 31
# :hour ::
# (Integer) Hour : 0 - 23
# :min ::
# (Integer) Minute : 0 - 59
# :sec ::
# (Float) Seconds : 0 - 59.999
module DatetimeWrappers
# @param [Integer] date_1904
# @return [Float]
def to_excel_date(date_1904)
Libxlsxwriter.datetime_to_excel_date(self, date_1904)
end
end
class Datetime < FFI::Struct
include DatetimeWrappers
layout :year, :int,
:month, :int,
:day, :int,
:hour, :int,
:min, :int,
:sec, :double
end
# This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:custom_property_types).
#
# === Options:
# :none ::
#
# :string ::
#
# :double ::
#
# :integer ::
#
# :boolean ::
#
# :datetime ::
#
#
# @method _enum_custom_property_types_
# @return [Symbol]
# @scope class
enum :custom_property_types, [
:none, 0,
:string, 1,
:double, 2,
:integer, 3,
:boolean, 4,
:datetime, 5
]
# = Fields:
# :stqh_first ::
# (FFI::Pointer(*Format))
# :stqh_last ::
# (FFI::Pointer(**Format))
class Formats < FFI::Struct
layout :stqh_first, :pointer,
:stqh_last, :pointer
end
# = Fields:
# :stqh_first ::
# (FFI::Pointer(*Tuple))
# :stqh_last ::
# (FFI::Pointer(**Tuple))
class Tuples < FFI::Struct
layout :stqh_first, :pointer,
:stqh_last, :pointer
end
# = Fields:
# :stqh_first ::
# (FFI::Pointer(*CustomProperty))
# :stqh_last ::
# (FFI::Pointer(**CustomProperty))
class CustomProperties < FFI::Struct
layout :stqh_first, :pointer,
:stqh_last, :pointer
end
# = Fields:
# :stqe_next ::
# (FFI::Pointer(*Tuple))
class TupleListPointers < FFI::Struct
layout :stqe_next, :pointer
end
# = Fields:
# :key ::
# (String)
# :value ::
# (String)
# :list_pointers ::
# (TupleListPointers)
class Tuple < FFI::Struct
layout :key, :string,
:value, :string,
:list_pointers, TupleListPointers.by_value
end
# = Fields:
# :string ::
# (String)
# :number ::
# (Float)
# :integer ::
# (Integer)
# :boolean ::
# (Integer)
# :datetime ::
# (Datetime)
class CustomPropertyU < FFI::Union
layout :string, :string,
:number, :double,
:integer, :int,
:boolean, :uchar,
:datetime, Datetime.by_value
end
# = Fields:
# :stqe_next ::
# (FFI::Pointer(*CustomProperty))
class CustomPropertyListPointers < FFI::Struct
layout :stqe_next, :pointer
end
# = Fields:
# :type ::
# (Symbol from _enum_custom_property_types_)
# :name ::
# (String)
# :u ::
# (CustomPropertyU)
# :list_pointers ::
# (CustomPropertyListPointers)
class CustomProperty < FFI::Struct
layout :type, :custom_property_types,
:name, :string,
:u, CustomPropertyU.by_value,
:list_pointers, CustomPropertyListPointers.by_value
end
# = Fields:
# :rbh_root ::
# (FFI::Pointer(*SstElement))
class SstRbTree < FFI::Struct
layout :rbh_root, :pointer
end
# = Fields:
# :stqh_first ::
# (FFI::Pointer(*SstElement))
# :stqh_last ::
# (FFI::Pointer(**SstElement))
class SstOrderList < FFI::Struct
layout :stqh_first, :pointer,
:stqh_last, :pointer
end
# = Fields:
# :stqe_next ::
# (FFI::Pointer(*SstElement))
class SstElementSstOrderPointers < FFI::Struct
layout :stqe_next, :pointer
end
# = Fields:
# :rbe_left ::
# (FFI::Pointer(*SstElement))
# :rbe_right ::
# (FFI::Pointer(*SstElement))
# :rbe_parent ::
# (FFI::Pointer(*SstElement))
# :rbe_color ::
# (Integer)
class SstElementSstTreePointers < FFI::Struct
layout :rbe_left, :pointer,
:rbe_right, :pointer,
:rbe_parent, :pointer,
:rbe_color, :int
end
# = Fields:
# :index ::
# (Integer)
# :string ::
# (String)
# :sst_order_pointers ::
# (SstElementSstOrderPointers)
# :sst_tree_pointers ::
# (SstElementSstTreePointers)
class SstElement < FFI::Struct
layout :index, :uint,
:string, :string,
:sst_order_pointers, SstElementSstOrderPointers.by_value,
:sst_tree_pointers, SstElementSstTreePointers.by_value
end
# = Fields:
# :file ::
# (FFI::Pointer(*FILE))
# :string_count ::
# (Integer)
# :unique_count ::
# (Integer)
# :order_list ::
# (SstOrderList)
# :rb_tree ::
# (SstRbTree)
module SstWrappers
# @return [nil]
def free()
Libxlsxwriter.sst_free(self)
end
# @return [nil]
def assemble_xml_file()
Libxlsxwriter.sst_assemble_xml_file(self)
end
end
class Sst < FFI::Struct
include SstWrappers
layout :file, :pointer,
:string_count, :uint,
:unique_count, :uint,
:order_list, SstOrderList,
:rb_tree, SstRbTree
end
# @method sst_new()
# @return [Sst]
# @scope class
attach_function :sst_new, :lxw_sst_new, [], Sst
# @method sst_free(sst)
# @param [Sst] sst
# @return [nil]
# @scope class
attach_function :sst_free, :lxw_sst_free, [Sst], :void
# @method get_sst_index(sst, string)
# @param [Sst] sst
# @param [String] string
# @return [SstElement]
# @scope class
attach_function :get_sst_index, :lxw_get_sst_index, [Sst, :string], SstElement
# @method sst_assemble_xml_file(self_)
# @param [Sst] self_
# @return [nil]
# @scope class
attach_function :sst_assemble_xml_file, :lxw_sst_assemble_xml_file, [Sst], :void
# = Fields:
# :stqh_first ::
# (FFI::Pointer(*HashElement))
# :stqh_last ::
# (FFI::Pointer(**HashElement))
class HashOrderList < FFI::Struct
layout :stqh_first, :pointer,
:stqh_last, :pointer
end
# = Fields:
# :slh_first ::
# (FFI::Pointer(*HashElement))
class HashBucketList < FFI::Struct
layout :slh_first, :pointer
end
# = Fields:
# :num_buckets ::
# (Integer)
# :used_buckets ::
# (Integer)
# :unique_count ::
# (Integer)
# :free_key ::
# (Integer)
# :free_value ::
# (Integer)
# :order_list ::
# (HashOrderList)
# :buckets ::
# (FFI::Pointer(**HashBucketList))
class HashTable < FFI::Struct
layout :num_buckets, :uint,
:used_buckets, :uint,
:unique_count, :uint,
:free_key, :uchar,
:free_value, :uchar,
:order_list, HashOrderList,
:buckets, :pointer
end
# = Fields:
# :stqe_next ::
# (FFI::Pointer(*HashElement))
class HashElementHashOrderPointers < FFI::Struct
layout :stqe_next, :pointer
end
# = Fields:
# :sle_next ::
# (FFI::Pointer(*HashElement))
class HashElementHashListPointers < FFI::Struct
layout :sle_next, :pointer
end
# = Fields:
# :key ::
# (FFI::Pointer(*Void))
# :value ::
# (FFI::Pointer(*Void))
# :hash_order_pointers ::
# (HashElementHashOrderPointers)
# :hash_list_pointers ::
# (HashElementHashListPointers)
class HashElement < FFI::Struct
layout :key, :pointer,
:value, :pointer,
:hash_order_pointers, HashElementHashOrderPointers.by_value,
:hash_list_pointers, HashElementHashListPointers.by_value
end
# @method hash_key_exists(hash, key, key_len)
# @param [HashTable] hash
# @param [FFI::Pointer(*Void)] key
# @param [Integer] key_len
# @return [HashElement]
# @scope class
attach_function :hash_key_exists, :lxw_hash_key_exists, [HashTable, :pointer, :ulong], HashElement
# @method insert_hash_element(hash, key, value, key_len)
# @param [HashTable] hash
# @param [FFI::Pointer(*Void)] key
# @param [FFI::Pointer(*Void)] value
# @param [Integer] key_len
# @return [HashElement]
# @scope class
attach_function :insert_hash_element, :lxw_insert_hash_element, [HashTable, :pointer, :pointer, :ulong], HashElement
# @method hash_new(num_buckets, free_key, free_value)
# @param [Integer] num_buckets
# @param [Integer] free_key
# @param [Integer] free_value
# @return [HashTable]
# @scope class
attach_function :hash_new, :lxw_hash_new, [:uint, :uchar, :uchar], HashTable
# @method hash_free(hash)
# @param [HashTable] hash
# @return [nil]
# @scope class
attach_function :hash_free, :lxw_hash_free, [HashTable], :void
require_relative 'binding/chart'
# = Fields:
# :stqh_first ::
# (FFI::Pointer(*DrawingObject))
# :stqh_last ::
# (FFI::Pointer(**DrawingObject))
class DrawingObjects < FFI::Struct
layout :stqh_first, :pointer,
:stqh_last, :pointer
end
# This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:drawing_types).
#
# === Options:
# :none ::
#
# :image ::
#
# :chart ::
#
# :shape ::
#
#
# @method _enum_drawing_types_
# @return [Symbol]
# @scope class
enum :drawing_types, [
:none, 0,
:image, 1,
:chart, 2,
:shape, 3
]
# This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:anchor_types).
#
# === Options:
# :type_none ::
#
# :type_image ::
#
# :type_chart ::
#
#
# @method _enum_anchor_types_
# @return [Symbol]
# @scope class
enum :anchor_types, [
:type_none, 0,
:type_image, 1,
:type_chart, 2
]
# This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:anchor_edit_types).
#
# === Options:
# :as_none ::
#
# :as_relative ::
#
# :as_one_cell ::
#
# :as_absolute ::
#
#
# @method _enum_anchor_edit_types_
# @return [Symbol]
# @scope class
enum :anchor_edit_types, [
:as_none, 0,
:as_relative, 1,
:as_one_cell, 2,
:as_absolute, 3
]
# This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:image_types).
#
# === Options:
# :unknown ::
#
# :png ::
#
# :jpeg ::
#
# :bmp ::
#
#
# @method _enum_image_types_
# @return [Symbol]
# @scope class
enum :image_types, [
:unknown, 0,
:png, 1,
:jpeg, 2,
:bmp, 3
]
# = Fields:
# :col ::
# (Integer)
# :row ::
# (Integer)
# :col_offset ::
# (Float)
# :row_offset ::
# (Float)
class DrawingCoords < FFI::Struct
layout :col, :uint,
:row, :uint,
:col_offset, :double,
:row_offset, :double
end
# = Fields:
# :stqe_next ::
# (FFI::Pointer(*DrawingObject))
class DrawingObjectListPointers < FFI::Struct
layout :stqe_next, :pointer
end
# = Fields:
# :anchor_type ::
# (Integer)
# :edit_as ::
# (Integer)
# :from ::
# (DrawingCoords)
# :to ::
# (DrawingCoords)
# :col_absolute ::
# (Integer)
# :row_absolute ::
# (Integer)
# :width ::
# (Integer)
# :height ::
# (Integer)
# :shape ::
# (Integer)
# :description ::
# (String)
# :url ::
# (String)
# :tip ::
# (String)
# :list_pointers ::
# (DrawingObjectListPointers)
class DrawingObject < FFI::Struct
layout :anchor_type, :uchar,
:edit_as, :uchar,
:from, DrawingCoords.by_value,
:to, DrawingCoords.by_value,
:col_absolute, :uint,
:row_absolute, :uint,
:width, :uint,
:height, :uint,
:shape, :uchar,
:description, :string,
:url, :string,
:tip, :string,
:list_pointers, DrawingObjectListPointers.by_value
end
# = Fields:
# :file ::
# (FFI::Pointer(*FILE))
# :embedded ::
# (Integer)
# :drawing_objects ::
# (DrawingObjects)
module DrawingWrappers
# @return [nil]
def free()
Libxlsxwriter.drawing_free(self)
end
# @return [nil]
def assemble_xml_file()
Libxlsxwriter.drawing_assemble_xml_file(self)
end
end
class Drawing < FFI::Struct
include DrawingWrappers
layout :file, :pointer,
:embedded, :uchar,
:drawing_objects, DrawingObjects
end
# @method drawing_new()
# @return [Drawing]
# @scope class
attach_function :drawing_new, :lxw_drawing_new, [], Drawing
# @method drawing_free(drawing)
# @param [Drawing] drawing
# @return [nil]
# @scope class
attach_function :drawing_free, :lxw_drawing_free, [Drawing], :void
# @method drawing_assemble_xml_file(self_)
# @param [Drawing] self_
# @return [nil]
# @scope class
attach_function :drawing_assemble_xml_file, :lxw_drawing_assemble_xml_file, [Drawing], :void
# @method free_drawing_object(drawing_object)
# @param [DrawingObject] drawing_object
# @return [nil]
# @scope class
attach_function :free_drawing_object, :lxw_free_drawing_object, [DrawingObject], :void
# @method add_drawing_object(drawing, drawing_object)
# @param [Drawing] drawing
# @param [DrawingObject] drawing_object
# @return [nil]
# @scope class
attach_function :add_drawing_object, :lxw_add_drawing_object, [Drawing, DrawingObject], :void
# @method strerror(error_num)
# @param [Symbol from _enum_error_] error_num
# @return [String]
# @scope class
attach_function :strerror, :lxw_strerror, [:error], :string
# @method quote_sheetname(str)
# @param [String] str
# @return [String]
# @scope class
attach_function :quote_sheetname, :lxw_quote_sheetname, [:string], :string
# @method col_to_name(col_name, col_num, absolute)
# @param [String] col_name
# @param [Integer] col_num
# @param [Integer] absolute
# @return [nil]
# @scope class
attach_function :col_to_name, :lxw_col_to_name, [:string, :ushort, :uchar], :void
# @method rowcol_to_cell(cell_name, row, col)
# @param [String] cell_name
# @param [Integer] row
# @param [Integer] col
# @return [nil]
# @scope class
attach_function :rowcol_to_cell, :lxw_rowcol_to_cell, [:string, :uint, :ushort], :void
# @method rowcol_to_cell_abs(cell_name, row, col, abs_row, abs_col)
# @param [String] cell_name
# @param [Integer] row
# @param [Integer] col
# @param [Integer] abs_row
# @param [Integer] abs_col
# @return [nil]
# @scope class
attach_function :rowcol_to_cell_abs, :lxw_rowcol_to_cell_abs, [:string, :uint, :ushort, :uchar, :uchar], :void
# @method rowcol_to_range(range, first_row, first_col, last_row, last_col)
# @param [String] range
# @param [Integer] first_row
# @param [Integer] first_col
# @param [Integer] last_row
# @param [Integer] last_col
# @return [nil]
# @scope class
attach_function :rowcol_to_range, :lxw_rowcol_to_range, [:string, :uint, :ushort, :uint, :ushort], :void
# @method rowcol_to_range_abs(range, first_row, first_col, last_row, last_col)
# @param [String] range
# @param [Integer] first_row
# @param [Integer] first_col
# @param [Integer] last_row
# @param [Integer] last_col
# @return [nil]
# @scope class
attach_function :rowcol_to_range_abs, :lxw_rowcol_to_range_abs, [:string, :uint, :ushort, :uint, :ushort], :void
# @method rowcol_to_formula_abs(formula, sheetname, first_row, first_col, last_row, last_col)
# @param [String] formula
# @param [String] sheetname
# @param [Integer] first_row
# @param [Integer] first_col
# @param [Integer] last_row
# @param [Integer] last_col
# @return [nil]
# @scope class
attach_function :rowcol_to_formula_abs, :lxw_rowcol_to_formula_abs, [:string, :string, :uint, :ushort, :uint, :ushort], :void
# @method name_to_row(row_str)
# @param [String] row_str
# @return [Integer]
# @scope class
attach_function :name_to_row, :lxw_name_to_row, [:string], :uint
# @method name_to_col(col_str)
# @param [String] col_str
# @return [Integer]
# @scope class
attach_function :name_to_col, :lxw_name_to_col, [:string], :ushort
# @method name_to_row_2(row_str)
# @param [String] row_str
# @return [Integer]
# @scope class
attach_function :name_to_row_2, :lxw_name_to_row_2, [:string], :uint
# @method name_to_col_2(col_str)
# @param [String] col_str
# @return [Integer]
# @scope class
attach_function :name_to_col_2, :lxw_name_to_col_2, [:string], :ushort
# @method datetime_to_excel_date(datetime, date_1904)
# @param [Datetime] datetime
# @param [Integer] date_1904
# @return [Float]
# @scope class
attach_function :datetime_to_excel_date, :lxw_datetime_to_excel_date, [Datetime, :uchar], :double
# @method strdup(str)
# @param [String] str
# @return [String]
# @scope class
attach_function :strdup, :lxw_strdup, [:string], :string
# @method utf8_strlen(str)
# @param [String] str
# @return [Integer]
# @scope class
attach_function :utf8_strlen, :lxw_utf8_strlen, [:string], :ulong
# @method str_tolower(str)
# @param [String] str
# @return [nil]
# @scope class
attach_function :str_tolower, :lxw_str_tolower, [:string], :void
# @method tmpfile(tmpdir)
# @param [String] tmpdir
# @return [FFI::Pointer(*FILE)]
# @scope class
attach_function :tmpfile, :lxw_tmpfile, [:string], :pointer
# This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:gridlines).
#
# === Options:
# :hide_all ::
# Hide screen and print gridlines.
# :show_screen ::
# Show screen gridlines.
# :show_print ::
# Show print gridlines.
# :show_all ::
# Show screen and print gridlines.
#
# @method _enum_gridlines_
# @return [Symbol]
# @scope class
enum :gridlines, [
:hide_all, 0,
:show_screen, 1,
:show_print, 2,
:show_all, 3
]
# This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:cell_types).
#
# === Options:
# :number_cell ::
#
# :string_cell ::
#
# :inline_string_cell ::
#
# :formula_cell ::
#
# :array_formula_cell ::
#
# :blank_cell ::
#
# :boolean_cell ::
#
# :hyperlink_url ::
#
# :hyperlink_internal ::
#
# :hyperlink_external ::
#
#
# @method _enum_cell_types_
# @return [Symbol]
# @scope class
enum :cell_types, [
:number_cell, 1,
:string_cell, 2,
:inline_string_cell, 3,
:formula_cell, 4,
:array_formula_cell, 5,
:blank_cell, 6,
:boolean_cell, 7,
:hyperlink_url, 8,
:hyperlink_internal, 9,
:hyperlink_external, 10
]
# This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:pane_types).
#
# === Options:
# :no_panes ::
#
# :freeze_panes ::
#
# :split_panes ::
#
# :freeze_split_panes ::
#
#
# @method _enum_pane_types_
# @return [Symbol]
# @scope class
enum :pane_types, [
:no_panes, 0,
:freeze_panes, 1,
:split_panes, 2,
:freeze_split_panes, 3
]
# = Fields:
# :stqh_first ::
# (FFI::Pointer(*MergedRange))
# :stqh_last ::
# (FFI::Pointer(**MergedRange))
class MergedRanges < FFI::Struct
layout :stqh_first, :pointer,
:stqh_last, :pointer
end
# = Fields:
# :stqh_first ::
# (FFI::Pointer(*Selection))
# :stqh_last ::
# (FFI::Pointer(**Selection))
class Selections < FFI::Struct
layout :stqh_first, :pointer,
:stqh_last, :pointer
end
# = Fields:
# :stqh_first ::
# (FFI::Pointer(*ImageOptions))
# :stqh_last ::
# (FFI::Pointer(**ImageOptions))
class ImageData < FFI::Struct
layout :stqh_first, :pointer,
:stqh_last, :pointer
end
# = Fields:
# :stqh_first ::
# (FFI::Pointer(*ImageOptions))
# :stqh_last ::
# (FFI::Pointer(**ImageOptions))
class ChartData < FFI::Struct
layout :stqh_first, :pointer,
:stqh_last, :pointer
end
# = Fields:
# :hidden ::
# (Integer) Hide the row/column
# :level ::
# (Integer)
# :collapsed ::
# (Integer)
class RowColOptions < FFI::Struct
layout :hidden, :uchar,
:level, :uchar,
:collapsed, :uchar
end
require_relative 'binding/format'
#
# = Fields:
# :firstcol ::
# (Integer)
# :lastcol ::
# (Integer)
# :width ::
# (Float)
# :format ::
# (Format)
# :hidden ::
# (Integer)
# :level ::
# (Integer)
# :collapsed ::
# (Integer)
class ColOptions < FFI::Struct
layout :firstcol, :ushort,
:lastcol, :ushort,
:width, :double,
:format, Format,
:hidden, :uchar,
:level, :uchar,
:collapsed, :uchar
end
# = Fields:
# :stqe_next ::
# (FFI::Pointer(*MergedRange))
class MergedRangeListPointers < FFI::Struct
layout :stqe_next, :pointer
end
# = Fields:
# :first_row ::
# (Integer)
# :last_row ::
# (Integer)
# :first_col ::
# (Integer)
# :last_col ::
# (Integer)
# :list_pointers ::
# (MergedRangeListPointers)
class MergedRange < FFI::Struct
layout :first_row, :uint,
:last_row, :uint,
:first_col, :ushort,
:last_col, :ushort,
:list_pointers, MergedRangeListPointers.by_value
end
# = Fields:
# :in_use ::
# (Integer)
# :first_row ::
# (Integer)
# :last_row ::
# (Integer)
class RepeatRows < FFI::Struct
layout :in_use, :uchar,
:first_row, :uint,
:last_row, :uint
end
# = Fields:
# :in_use ::
# (Integer)
# :first_col ::
# (Integer)
# :last_col ::
# (Integer)
class RepeatCols < FFI::Struct
layout :in_use, :uchar,
:first_col, :ushort,
:last_col, :ushort
end
# = Fields:
# :in_use ::
# (Integer)
# :first_row ::
# (Integer)
# :last_row ::
# (Integer)
# :first_col ::
# (Integer)
# :last_col ::
# (Integer)
class PrintArea < FFI::Struct
layout :in_use, :uchar,
:first_row, :uint,
:last_row, :uint,
:first_col, :ushort,
:last_col, :ushort
end
# = Fields:
# :in_use ::
# (Integer)
# :first_row ::
# (Integer)
# :last_row ::
# (Integer)
# :first_col ::
# (Integer)
# :last_col ::
# (Integer)
class Autofilter < FFI::Struct
layout :in_use, :uchar,
:first_row, :uint,
:last_row, :uint,
:first_col, :ushort,
:last_col, :ushort
end
# = Fields:
# :type ::
# (Integer)
# :first_row ::
# (Integer)
# :first_col ::
# (Integer)
# :top_row ::
# (Integer)
# :left_col ::
# (Integer)
# :x_split ::
# (Float)
# :y_split ::
# (Float)
class Panes < FFI::Struct
layout :type, :uchar,
:first_row, :uint,
:first_col, :ushort,
:top_row, :uint,
:left_col, :ushort,
:x_split, :double,
:y_split, :double
end
# = Fields:
# :stqe_next ::
# (FFI::Pointer(*Selection))
class SelectionListPointers < FFI::Struct
layout :stqe_next, :pointer
end
# = Fields:
# :pane ::
# (Array)
# :active_cell ::
# (Array)
# :sqref ::
# (Array)
# :list_pointers ::
# (SelectionListPointers)
class Selection < FFI::Struct
layout :pane, [:char, 12],
:active_cell, [:char, 28],
:sqref, [:char, 28],
:list_pointers, SelectionListPointers.by_value
end
# = Fields:
# :stqe_next ::
# (FFI::Pointer(*ImageOptions))
class ImageOptionsListPointers < FFI::Struct
layout :stqe_next, :pointer
end
# = Fields:
# :x_offset ::
# (Integer) Offset from the left of the cell in pixels.
# :y_offset ::
# (Integer) Offset from the top of the cell in pixels.
# :x_scale ::
# (Float) X scale of the image as a decimal.
# :y_scale ::
# (Float) Y scale of the image as a decimal.
# :row ::
# (Integer)
# :col ::
# (Integer)
# :filename ::
# (String)
# :url ::
# (String)
# :tip ::
# (String)
# :anchor ::
# (Integer)
# :stream ::
# (FFI::Pointer(*FILE)) Internal metadata.
# :image_type ::
# (Integer)
# :width ::
# (Float)
# :height ::
# (Float)
# :short_name ::
# (String)
# :extension ::
# (String)
# :x_dpi ::
# (Float)
# :y_dpi ::
# (Float)
# :chart ::
# (Chart)
# :list_pointers ::
# (ImageOptionsListPointers)
class ImageOptions < FFI::Struct
layout :x_offset, :int,
:y_offset, :int,
:x_scale, :double,
:y_scale, :double,
:row, :uint,
:col, :ushort,
:filename, :string,
:url, :string,
:tip, :string,
:anchor, :uchar,
:stream, :pointer,
:image_type, :uchar,
:width, :double,
:height, :double,
:short_name, :string,
:extension, :string,
:x_dpi, :double,
:y_dpi, :double,
:chart, Chart,
:list_pointers, ImageOptionsListPointers.by_value
end
# = Fields:
# :margin ::
# (Float) Header or footer margin in inches. Excel default is 0.3.
class HeaderFooterOptions < FFI::Struct
layout :margin, :double
end
# = Fields:
# :no_select_locked_cells ::
# (Integer) Turn off selection of locked cells. This in on in Excel by default.
# :no_select_unlocked_cells ::
# (Integer) Turn off selection of unlocked cells. This in on in Excel by default.
# :format_cells ::
# (Integer) Prevent formatting of cells.
# :format_columns ::
# (Integer) Prevent formatting of columns.
# :format_rows ::
# (Integer) Prevent formatting of rows.
# :insert_columns ::
# (Integer) Prevent insertion of columns.
# :insert_rows ::
# (Integer) Prevent insertion of rows.
# :insert_hyperlinks ::
# (Integer) Prevent insertion of hyperlinks.
# :delete_columns ::
# (Integer) Prevent deletion of columns.
# :delete_rows ::
# (Integer) Prevent deletion of rows.
# :sort ::
# (Integer) Prevent sorting data.
# :autofilter ::
# (Integer) Prevent filtering data.
# :pivot_tables ::
# (Integer) Prevent insertion of pivot tables.
# :scenarios ::
# (Integer) Protect scenarios.
# :objects ::
# (Integer) Protect drawing objects.
# :no_sheet ::
# (Integer)
# :content ::
# (Integer)
# :is_configured ::
# (Integer)
# :hash ::
# (Array)
class Protection < FFI::Struct
layout :no_select_locked_cells, :uchar,
:no_select_unlocked_cells, :uchar,
:format_cells, :uchar,
:format_columns, :uchar,
:format_rows, :uchar,
:insert_columns, :uchar,
:insert_rows, :uchar,
:insert_hyperlinks, :uchar,
:delete_columns, :uchar,
:delete_rows, :uchar,
:sort, :uchar,
:autofilter, :uchar,
:pivot_tables, :uchar,
:scenarios, :uchar,
:objects, :uchar,
:no_sheet, :uchar,
:content, :uchar,
:is_configured, :uchar,
:hash, [:char, 5]
end
require_relative 'binding/worksheet'
#
# = Fields:
# :stqh_first ::
# (Chart)
# :stqh_last ::
# (FFI::Pointer(**Chart))
class Charts < FFI::Struct
layout :stqh_first, Chart,
:stqh_last, :pointer
end
# = Fields:
# :tqh_first ::
# (FFI::Pointer(*DefinedName))
# :tqh_last ::
# (FFI::Pointer(**DefinedName))
class DefinedNames < FFI::Struct
layout :tqh_first, :pointer,
:tqh_last, :pointer
end
# = Fields:
# :tqe_next ::
# (FFI::Pointer(*DefinedName))
# :tqe_prev ::
# (FFI::Pointer(**DefinedName))
class DefinedNameListPointers < FFI::Struct
layout :tqe_next, :pointer,
:tqe_prev, :pointer
end
# = Fields:
# :index ::
# (Integer)
# :hidden ::
# (Integer)
# :name ::
# (Array)
# :app_name ::
# (Array)
# :formula ::
# (Array)
# :normalised_name ::
# (Array)
# :normalised_sheetname ::
# (Array)
# :list_pointers ::
# (DefinedNameListPointers)
class DefinedName < FFI::Struct
layout :index, :short,
:hidden, :uchar,
:name, [:char, 128],
:app_name, [:char, 128],
:formula, [:char, 128],
:normalised_name, [:char, 128],
:normalised_sheetname, [:char, 128],
:list_pointers, DefinedNameListPointers.by_value
end
# = Fields:
# :title ::
# (String) The title of the Excel Document.
# :subject ::
# (String) The subject of the Excel Document.
# :author ::
# (String) The author of the Excel Document.
# :manager ::
# (String) The manager field of the Excel Document.
# :company ::
# (String) The company field of the Excel Document.
# :category ::
# (String) The category of the Excel Document.
# :keywords ::
# (String) The keywords of the Excel Document.
# :comments ::
# (String) The comment field of the Excel Document.
# :status ::
# (String) The status of the Excel Document.
# :hyperlink_base ::
# (String) The hyperlink base url of the Excel Document.
# :created ::
# (Integer)
class DocProperties < FFI::Struct
layout :title, :string,
:subject, :string,
:author, :string,
:manager, :string,
:company, :string,
:category, :string,
:keywords, :string,
:comments, :string,
:status, :string,
:hyperlink_base, :string,
:created, :long
end
#
# = Fields:
# :stqh_first ::
# (FFI::Pointer(*HeadingPair))
# :stqh_last ::
# (FFI::Pointer(**HeadingPair))
class HeadingPairs < FFI::Struct
layout :stqh_first, :pointer,
:stqh_last, :pointer
end
# = Fields:
# :stqh_first ::
# (FFI::Pointer(*PartName))
# :stqh_last ::
# (FFI::Pointer(**PartName))
class PartNames < FFI::Struct
layout :stqh_first, :pointer,
:stqh_last, :pointer
end
# = Fields:
# :stqe_next ::
# (FFI::Pointer(*HeadingPair))
class HeadingPairListPointers < FFI::Struct
layout :stqe_next, :pointer
end
# = Fields:
# :key ::
# (String)
# :value ::
# (String)
# :list_pointers ::
# (HeadingPairListPointers)
class HeadingPair < FFI::Struct
layout :key, :string,
:value, :string,
:list_pointers, HeadingPairListPointers.by_value
end
# = Fields:
# :stqe_next ::
# (FFI::Pointer(*PartName))
class PartNameListPointers < FFI::Struct
layout :stqe_next, :pointer
end
# = Fields:
# :name ::
# (String)
# :list_pointers ::
# (PartNameListPointers)
class PartName < FFI::Struct
layout :name, :string,
:list_pointers, PartNameListPointers.by_value
end
# = Fields:
# :file ::
# (FFI::Pointer(*FILE))
# :heading_pairs ::
# (HeadingPairs)
# :part_names ::
# (PartNames)
# :properties ::
# (DocProperties)
# :num_heading_pairs ::
# (Integer)
# :num_part_names ::
# (Integer)
module AppWrappers
# @return [nil]
def free()
Libxlsxwriter.app_free(self)
end
# @return [nil]
def assemble_xml_file()
Libxlsxwriter.app_assemble_xml_file(self)
end
# @param [String] name
# @return [nil]
def add_part_name(name)
Libxlsxwriter.app_add_part_name(self, name)
end
# @param [String] key
# @param [String] value
# @return [nil]
def add_heading_pair(key, value)
Libxlsxwriter.app_add_heading_pair(self, key, value)
end
end
class App < FFI::Struct
include AppWrappers
layout :file, :pointer,
:heading_pairs, HeadingPairs,
:part_names, PartNames,
:properties, DocProperties,
:num_heading_pairs, :uint,
:num_part_names, :uint
end
# @method app_new()
# @return [App]
# @scope class
attach_function :app_new, :lxw_app_new, [], App
# @method app_free(app)
# @param [App] app
# @return [nil]
# @scope class
attach_function :app_free, :lxw_app_free, [App], :void
# @method app_assemble_xml_file(self_)
# @param [App] self_
# @return [nil]
# @scope class
attach_function :app_assemble_xml_file, :lxw_app_assemble_xml_file, [App], :void
# @method app_add_part_name(self_, name)
# @param [App] self_
# @param [String] name
# @return [nil]
# @scope class
attach_function :app_add_part_name, :lxw_app_add_part_name, [App, :string], :void
# @method app_add_heading_pair(self_, key, value)
# @param [App] self_
# @param [String] key
# @param [String] value
# @return [nil]
# @scope class
attach_function :app_add_heading_pair, :lxw_app_add_heading_pair, [App, :string, :string], :void
# = Fields:
# :file ::
# (FFI::Pointer(*FILE))
# :default_types ::
# (Tuples)
# :overrides ::
# (Tuples)
module ContentTypesWrappers
# @return [nil]
def free()
Libxlsxwriter.content_types_free(self)
end
# @return [nil]
def assemble_xml_file()
Libxlsxwriter.content_types_assemble_xml_file(self)
end
end
class ContentTypes < FFI::Struct
include ContentTypesWrappers
layout :file, :pointer,
:default_types, Tuples,
:overrides, Tuples
end
# @method content_types_new()
# @return [ContentTypes]
# @scope class
attach_function :content_types_new, :lxw_content_types_new, [], ContentTypes
# @method content_types_free(content_types)
# @param [ContentTypes] content_types
# @return [nil]
# @scope class
attach_function :content_types_free, :lxw_content_types_free, [ContentTypes], :void
# @method content_types_assemble_xml_file(content_types)
# @param [ContentTypes] content_types
# @return [nil]
# @scope class
attach_function :content_types_assemble_xml_file, :lxw_content_types_assemble_xml_file, [ContentTypes], :void
# @method ct_add_default(content_types, key, value)
# @param [ContentTypes] content_types
# @param [String] key
# @param [String] value
# @return [nil]
# @scope class
attach_function :ct_add_default, :lxw_ct_add_default, [ContentTypes, :string, :string], :void
# @method ct_add_override(content_types, key, value)
# @param [ContentTypes] content_types
# @param [String] key
# @param [String] value
# @return [nil]
# @scope class
attach_function :ct_add_override, :lxw_ct_add_override, [ContentTypes, :string, :string], :void
# @method ct_add_worksheet_name(content_types, name)
# @param [ContentTypes] content_types
# @param [String] name
# @return [nil]
# @scope class
attach_function :ct_add_worksheet_name, :lxw_ct_add_worksheet_name, [ContentTypes, :string], :void
# @method ct_add_chart_name(content_types, name)
# @param [ContentTypes] content_types
# @param [String] name
# @return [nil]
# @scope class
attach_function :ct_add_chart_name, :lxw_ct_add_chart_name, [ContentTypes, :string], :void
# @method ct_add_drawing_name(content_types, name)
# @param [ContentTypes] content_types
# @param [String] name
# @return [nil]
# @scope class
attach_function :ct_add_drawing_name, :lxw_ct_add_drawing_name, [ContentTypes, :string], :void
# @method ct_add_shared_strings(content_types)
# @param [ContentTypes] content_types
# @return [nil]
# @scope class
attach_function :ct_add_shared_strings, :lxw_ct_add_shared_strings, [ContentTypes], :void
# @method ct_add_calc_chain(content_types)
# @param [ContentTypes] content_types
# @return [nil]
# @scope class
attach_function :ct_add_calc_chain, :lxw_ct_add_calc_chain, [ContentTypes], :void
# @method ct_add_custom_properties(content_types)
# @param [ContentTypes] content_types
# @return [nil]
# @scope class
attach_function :ct_add_custom_properties, :lxw_ct_add_custom_properties, [ContentTypes], :void
# = Fields:
# :file ::
# (FFI::Pointer(*FILE))
# :properties ::
# (DocProperties)
module CoreWrappers
# @return [nil]
def free()
Libxlsxwriter.core_free(self)
end
# @return [nil]
def assemble_xml_file()
Libxlsxwriter.core_assemble_xml_file(self)
end
end
class Core < FFI::Struct
include CoreWrappers
layout :file, :pointer,
:properties, DocProperties
end
# @method core_new()
# @return [Core]
# @scope class
attach_function :core_new, :lxw_core_new, [], Core
# @method core_free(core)
# @param [Core] core
# @return [nil]
# @scope class
attach_function :core_free, :lxw_core_free, [Core], :void
# @method core_assemble_xml_file(self_)
# @param [Core] self_
# @return [nil]
# @scope class
attach_function :core_assemble_xml_file, :lxw_core_assemble_xml_file, [Core], :void
# = Fields:
# :file ::
# (FFI::Pointer(*FILE))
# :custom_properties ::
# (CustomProperties)
# :pid ::
# (Integer)
module CustomWrappers
# @return [nil]
def free()
Libxlsxwriter.custom_free(self)
end
# @return [nil]
def assemble_xml_file()
Libxlsxwriter.custom_assemble_xml_file(self)
end
end
class Custom < FFI::Struct
include CustomWrappers
layout :file, :pointer,
:custom_properties, CustomProperties,
:pid, :uint
end
# @method custom_new()
# @return [Custom]
# @scope class
attach_function :custom_new, :lxw_custom_new, [], Custom
# @method custom_free(custom)
# @param [Custom] custom
# @return [nil]
# @scope class
attach_function :custom_free, :lxw_custom_free, [Custom], :void
# @method custom_assemble_xml_file(self_)
# @param [Custom] self_
# @return [nil]
# @scope class
attach_function :custom_assemble_xml_file, :lxw_custom_assemble_xml_file, [Custom], :void
# This entry is only for documentation and no real method.
#
# @method _callback_open_file_func_(voidpf, opaque, filename, mode)
# @param [FFI::Pointer(Voidpf)] voidpf
# @param [FFI::Pointer(Voidpf)] opaque
# @param [String] filename
# @param [Integer] mode
# @return [FFI::Pointer(Voidpf)]
# @scope class
callback :open_file_func, [:pointer, :pointer, :string, :int], :pointer
# This entry is only for documentation and no real method.
#
# @method _callback_read_file_func_(u_long, opaque, stream, buf, size)
# @param [Integer] u_long
# @param [FFI::Pointer(Voidpf)] opaque
# @param [FFI::Pointer(Voidpf)] stream
# @param [FFI::Pointer(*Void)] buf
# @param [Integer] size
# @return [Integer]
# @scope class
callback :read_file_func, [:ulong, :pointer, :pointer, :pointer, :ulong], :ulong
# This entry is only for documentation and no real method.
#
# @method _callback_write_file_func_(u_long, opaque, stream, buf, size)
# @param [Integer] u_long
# @param [FFI::Pointer(Voidpf)] opaque
# @param [FFI::Pointer(Voidpf)] stream
# @param [FFI::Pointer(*Void)] buf
# @param [Integer] size
# @return [Integer]
# @scope class
callback :write_file_func, [:ulong, :pointer, :pointer, :pointer, :ulong], :ulong
# This entry is only for documentation and no real method.
#
# @method _callback_close_file_func_(opaque, stream)
# @param [FFI::Pointer(Voidpf)] opaque
# @param [FFI::Pointer(Voidpf)] stream
# @return [FFI::Pointer(Voidpf)]
# @scope class
callback :close_file_func, [:pointer, :pointer], :pointer
# This entry is only for documentation and no real method.
#
# @method _callback_testerror_file_func_(opaque, stream)
# @param [FFI::Pointer(Voidpf)] opaque
# @param [FFI::Pointer(Voidpf)] stream
# @return [FFI::Pointer(Voidpf)]
# @scope class
callback :testerror_file_func, [:pointer, :pointer], :pointer
# This entry is only for documentation and no real method.
#
# @method _callback_tell_file_func_(opaque, stream)
# @param [FFI::Pointer(Voidpf)] opaque
# @param [FFI::Pointer(Voidpf)] stream
# @return [FFI::Pointer(Voidpf)]
# @scope class
callback :tell_file_func, [:pointer, :pointer], :pointer
# This entry is only for documentation and no real method.
#
# @method _callback_seek_file_func_(opaque, stream, offset, origin)
# @param [FFI::Pointer(Voidpf)] opaque
# @param [FFI::Pointer(Voidpf)] stream
# @param [Integer] offset
# @param [Integer] origin
# @return [FFI::Pointer(Voidpf)]
# @scope class
callback :seek_file_func, [:pointer, :pointer, :ulong, :int], :pointer
# = Fields:
# :zopen_file ::
# (Proc(_callback_open_file_func_))
# :zread_file ::
# (Proc(_callback_read_file_func_))
# :zwrite_file ::
# (Proc(_callback_write_file_func_))
# :ztell_file ::
# (Proc(_callback_tell_file_func_))
# :zseek_file ::
# (Proc(_callback_seek_file_func_))
# :zclose_file ::
# (Proc(_callback_close_file_func_))
# :zerror_file ::
# (Proc(_callback_testerror_file_func_))
# :opaque ::
# (FFI::Pointer(Voidpf))
class ZlibFilefuncDefS < FFI::Struct
layout :zopen_file, :open_file_func,
:zread_file, :read_file_func,
:zwrite_file, :write_file_func,
:ztell_file, :tell_file_func,
:zseek_file, :seek_file_func,
:zclose_file, :close_file_func,
:zerror_file, :testerror_file_func,
:opaque, :pointer
end
# This entry is only for documentation and no real method.
#
# @method _callback_tell64_file_func_(zpos64_t, opaque, stream)
# @param [Integer] zpos64_t
# @param [FFI::Pointer(Voidpf)] opaque
# @param [FFI::Pointer(Voidpf)] stream
# @return [Integer]
# @scope class
callback :tell64_file_func, [:ulong_long, :pointer, :pointer], :ulong_long
# This entry is only for documentation and no real method.
#
# @method _callback_seek64_file_func_(opaque, stream, offset, origin)
# @param [FFI::Pointer(Voidpf)] opaque
# @param [FFI::Pointer(Voidpf)] stream
# @param [Integer] offset
# @param [Integer] origin
# @return [FFI::Pointer(Voidpf)]
# @scope class
callback :seek64_file_func, [:pointer, :pointer, :ulong_long, :int], :pointer
# This entry is only for documentation and no real method.
#
# @method _callback_open64_file_func_(voidpf, opaque, filename, mode)
# @param [FFI::Pointer(Voidpf)] voidpf
# @param [FFI::Pointer(Voidpf)] opaque
# @param [FFI::Pointer(*Void)] filename
# @param [Integer] mode
# @return [FFI::Pointer(Voidpf)]
# @scope class
callback :open64_file_func, [:pointer, :pointer, :pointer, :int], :pointer
# = Fields:
# :zopen64_file ::
# (Proc(_callback_open64_file_func_))
# :zread_file ::
# (Proc(_callback_read_file_func_))
# :zwrite_file ::
# (Proc(_callback_write_file_func_))
# :ztell64_file ::
# (Proc(_callback_tell64_file_func_))
# :zseek64_file ::
# (Proc(_callback_seek64_file_func_))
# :zclose_file ::
# (Proc(_callback_close_file_func_))
# :zerror_file ::
# (Proc(_callback_testerror_file_func_))
# :opaque ::
# (FFI::Pointer(Voidpf))
class ZlibFilefunc64DefS < FFI::Struct
layout :zopen64_file, :open64_file_func,
:zread_file, :read_file_func,
:zwrite_file, :write_file_func,
:ztell64_file, :tell64_file_func,
:zseek64_file, :seek64_file_func,
:zclose_file, :close_file_func,
:zerror_file, :testerror_file_func,
:opaque, :pointer
end
# @method fill_fopen64_filefunc(pzlib_filefunc_def)
# @param [ZlibFilefunc64DefS] pzlib_filefunc_def
# @return [nil]
# @scope class
attach_function :fill_fopen64_filefunc, :fill_fopen64_filefunc, [ZlibFilefunc64DefS], :void
# @method fill_fopen_filefunc(pzlib_filefunc_def)
# @param [ZlibFilefuncDefS] pzlib_filefunc_def
# @return [nil]
# @scope class
attach_function :fill_fopen_filefunc, :fill_fopen_filefunc, [ZlibFilefuncDefS], :void
# = Fields:
# :zfile_func64 ::
# (ZlibFilefunc64DefS)
# :zopen32_file ::
# (Proc(_callback_open_file_func_))
# :ztell32_file ::
# (Proc(_callback_tell_file_func_))
# :zseek32_file ::
# (Proc(_callback_seek_file_func_))
class ZlibFilefunc6432DefS < FFI::Struct
layout :zfile_func64, ZlibFilefunc64DefS.by_value,
:zopen32_file, :open_file_func,
:ztell32_file, :tell_file_func,
:zseek32_file, :seek_file_func
end
# @method call_zopen64(pfilefunc, filename, mode)
# @param [ZlibFilefunc6432DefS] pfilefunc
# @param [FFI::Pointer(*Void)] filename
# @param [Integer] mode
# @return [FFI::Pointer(Voidpf)]
# @scope class
attach_function :call_zopen64, :call_zopen64, [ZlibFilefunc6432DefS, :pointer, :int], :pointer
# @method call_zseek64(pfilefunc, filestream, offset, origin)
# @param [ZlibFilefunc6432DefS] pfilefunc
# @param [FFI::Pointer(Voidpf)] filestream
# @param [Integer] offset
# @param [Integer] origin
# @return [Integer]
# @scope class
attach_function :call_zseek64, :call_zseek64, [ZlibFilefunc6432DefS, :pointer, :ulong_long, :int], :long
# @method call_ztell64(pfilefunc, filestream)
# @param [ZlibFilefunc6432DefS] pfilefunc
# @param [FFI::Pointer(Voidpf)] filestream
# @return [Integer]
# @scope class
attach_function :call_ztell64, :call_ztell64, [ZlibFilefunc6432DefS, :pointer], :ulong_long
# @method fill_zlib_filefunc64_32_def_from_filefunc32(p_filefunc64_32, p_filefunc32)
# @param [ZlibFilefunc6432DefS] p_filefunc64_32
# @param [ZlibFilefuncDefS] p_filefunc32
# @return [nil]
# @scope class
attach_function :fill_zlib_filefunc64_32_def_from_filefunc32, :fill_zlib_filefunc64_32_def_from_filefunc32, [ZlibFilefunc6432DefS, ZlibFilefuncDefS], :void
# = Fields:
# :tm_sec ::
# (Integer) seconds after the minute - (0,59)
# :tm_min ::
# (Integer) minutes after the hour - (0,59)
# :tm_hour ::
# (Integer) hours since midnight - (0,23)
# :tm_mday ::
# (Integer) day of the month - (1,31)
# :tm_mon ::
# (Integer) months since January - (0,11)
# :tm_year ::
# (Integer) years - (1980..2044)
class TmZipS < FFI::Struct
layout :tm_sec, :uint,
:tm_min, :uint,
:tm_hour, :uint,
:tm_mday, :uint,
:tm_mon, :uint,
:tm_year, :uint
end
# = Fields:
# :tmz_date ::
# (TmZipS) date in understandable format
# :dos_date ::
# (Integer) if dos_date == 0, tmu_date is used
# :internal_fa ::
# (Integer) internal file attributes 2 bytes
# :external_fa ::
# (Integer) external file attributes 4 bytes
class ZipFileinfo < FFI::Struct
layout :tmz_date, TmZipS.by_value,
:dos_date, :ulong,
:internal_fa, :ulong,
:external_fa, :ulong
end
# @method zip_open(pathname, append)
# @param [String] pathname
# @param [Integer] append
# @return [FFI::Pointer(ZipFile)]
# @scope class
attach_function :zip_open, :zipOpen, [:string, :int], :pointer
# @method zip_open64(pathname, append)
# @param [FFI::Pointer(*Void)] pathname
# @param [Integer] append
# @return [FFI::Pointer(ZipFile)]
# @scope class
attach_function :zip_open64, :zipOpen64, [:pointer, :int], :pointer
# @method zip_open2(pathname, append, globalcomment, pzlib_filefunc_def)
# @param [String] pathname
# @param [Integer] append
# @param [FFI::Pointer(*Zipcharpc)] globalcomment
# @param [ZlibFilefuncDefS] pzlib_filefunc_def
# @return [FFI::Pointer(ZipFile)]
# @scope class
attach_function :zip_open2, :zipOpen2, [:string, :int, :pointer, ZlibFilefuncDefS], :pointer
# @method zip_open2_64(pathname, append, globalcomment, pzlib_filefunc_def)
# @param [FFI::Pointer(*Void)] pathname
# @param [Integer] append
# @param [FFI::Pointer(*Zipcharpc)] globalcomment
# @param [ZlibFilefunc64DefS] pzlib_filefunc_def
# @return [FFI::Pointer(ZipFile)]
# @scope class
attach_function :zip_open2_64, :zipOpen2_64, [:pointer, :int, :pointer, ZlibFilefunc64DefS], :pointer
# @method zip_open_new_file_in_zip(file, filename, zipfi, extrafield_local, size_extrafield_local, extrafield_global, size_extrafield_global, comment, method, level)
# @param [FFI::Pointer(ZipFile)] file
# @param [String] filename
# @param [ZipFileinfo] zipfi
# @param [FFI::Pointer(*Void)] extrafield_local
# @param [Integer] size_extrafield_local
# @param [FFI::Pointer(*Void)] extrafield_global
# @param [Integer] size_extrafield_global
# @param [String] comment
# @param [Integer] method
# @param [Integer] level
# @return [Integer]
# @scope class
attach_function :zip_open_new_file_in_zip, :zipOpenNewFileInZip, [:pointer, :string, ZipFileinfo, :pointer, :uint, :pointer, :uint, :string, :int, :int], :int
# @method zip_open_new_file_in_zip64(file, filename, zipfi, extrafield_local, size_extrafield_local, extrafield_global, size_extrafield_global, comment, method, level, zip64)
# @param [FFI::Pointer(ZipFile)] file
# @param [String] filename
# @param [ZipFileinfo] zipfi
# @param [FFI::Pointer(*Void)] extrafield_local
# @param [Integer] size_extrafield_local
# @param [FFI::Pointer(*Void)] extrafield_global
# @param [Integer] size_extrafield_global
# @param [String] comment
# @param [Integer] method
# @param [Integer] level
# @param [Integer] zip64
# @return [Integer]
# @scope class
attach_function :zip_open_new_file_in_zip64, :zipOpenNewFileInZip64, [:pointer, :string, ZipFileinfo, :pointer, :uint, :pointer, :uint, :string, :int, :int, :int], :int
# @method zip_open_new_file_in_zip2(file, filename, zipfi, extrafield_local, size_extrafield_local, extrafield_global, size_extrafield_global, comment, method, level, raw)
# @param [FFI::Pointer(ZipFile)] file
# @param [String] filename
# @param [ZipFileinfo] zipfi
# @param [FFI::Pointer(*Void)] extrafield_local
# @param [Integer] size_extrafield_local
# @param [FFI::Pointer(*Void)] extrafield_global
# @param [Integer] size_extrafield_global
# @param [String] comment
# @param [Integer] method
# @param [Integer] level
# @param [Integer] raw
# @return [Integer]
# @scope class
attach_function :zip_open_new_file_in_zip2, :zipOpenNewFileInZip2, [:pointer, :string, ZipFileinfo, :pointer, :uint, :pointer, :uint, :string, :int, :int, :int], :int
# @method zip_open_new_file_in_zip2_64(file, filename, zipfi, extrafield_local, size_extrafield_local, extrafield_global, size_extrafield_global, comment, method, level, raw, zip64)
# @param [FFI::Pointer(ZipFile)] file
# @param [String] filename
# @param [ZipFileinfo] zipfi
# @param [FFI::Pointer(*Void)] extrafield_local
# @param [Integer] size_extrafield_local
# @param [FFI::Pointer(*Void)] extrafield_global
# @param [Integer] size_extrafield_global
# @param [String] comment
# @param [Integer] method
# @param [Integer] level
# @param [Integer] raw
# @param [Integer] zip64
# @return [Integer]
# @scope class
attach_function :zip_open_new_file_in_zip2_64, :zipOpenNewFileInZip2_64, [:pointer, :string, ZipFileinfo, :pointer, :uint, :pointer, :uint, :string, :int, :int, :int, :int], :int
# @method zip_open_new_file_in_zip3(file, filename, zipfi, extrafield_local, size_extrafield_local, extrafield_global, size_extrafield_global, comment, method, level, raw, window_bits, mem_level, strategy, password, crc_for_crypting)
# @param [FFI::Pointer(ZipFile)] file
# @param [String] filename
# @param [ZipFileinfo] zipfi
# @param [FFI::Pointer(*Void)] extrafield_local
# @param [Integer] size_extrafield_local
# @param [FFI::Pointer(*Void)] extrafield_global
# @param [Integer] size_extrafield_global
# @param [String] comment
# @param [Integer] method
# @param [Integer] level
# @param [Integer] raw
# @param [Integer] window_bits
# @param [Integer] mem_level
# @param [Integer] strategy
# @param [String] password
# @param [Integer] crc_for_crypting
# @return [Integer]
# @scope class
attach_function :zip_open_new_file_in_zip3, :zipOpenNewFileInZip3, [:pointer, :string, ZipFileinfo, :pointer, :uint, :pointer, :uint, :string, :int, :int, :int, :int, :int, :int, :string, :ulong], :int
# @method zip_open_new_file_in_zip3_64(file, filename, zipfi, extrafield_local, size_extrafield_local, extrafield_global, size_extrafield_global, comment, method, level, raw, window_bits, mem_level, strategy, password, crc_for_crypting, zip64)
# @param [FFI::Pointer(ZipFile)] file
# @param [String] filename
# @param [ZipFileinfo] zipfi
# @param [FFI::Pointer(*Void)] extrafield_local
# @param [Integer] size_extrafield_local
# @param [FFI::Pointer(*Void)] extrafield_global
# @param [Integer] size_extrafield_global
# @param [String] comment
# @param [Integer] method
# @param [Integer] level
# @param [Integer] raw
# @param [Integer] window_bits
# @param [Integer] mem_level
# @param [Integer] strategy
# @param [String] password
# @param [Integer] crc_for_crypting
# @param [Integer] zip64
# @return [Integer]
# @scope class
attach_function :zip_open_new_file_in_zip3_64, :zipOpenNewFileInZip3_64, [:pointer, :string, ZipFileinfo, :pointer, :uint, :pointer, :uint, :string, :int, :int, :int, :int, :int, :int, :string, :ulong, :int], :int
# @method zip_open_new_file_in_zip4(file, filename, zipfi, extrafield_local, size_extrafield_local, extrafield_global, size_extrafield_global, comment, method, level, raw, window_bits, mem_level, strategy, password, crc_for_crypting, version_made_by, flag_base)
# @param [FFI::Pointer(ZipFile)] file
# @param [String] filename
# @param [ZipFileinfo] zipfi
# @param [FFI::Pointer(*Void)] extrafield_local
# @param [Integer] size_extrafield_local
# @param [FFI::Pointer(*Void)] extrafield_global
# @param [Integer] size_extrafield_global
# @param [String] comment
# @param [Integer] method
# @param [Integer] level
# @param [Integer] raw
# @param [Integer] window_bits
# @param [Integer] mem_level
# @param [Integer] strategy
# @param [String] password
# @param [Integer] crc_for_crypting
# @param [Integer] version_made_by
# @param [Integer] flag_base
# @return [Integer]
# @scope class
attach_function :zip_open_new_file_in_zip4, :zipOpenNewFileInZip4, [:pointer, :string, ZipFileinfo, :pointer, :uint, :pointer, :uint, :string, :int, :int, :int, :int, :int, :int, :string, :ulong, :ulong, :ulong], :int
# @method zip_open_new_file_in_zip4_64(file, filename, zipfi, extrafield_local, size_extrafield_local, extrafield_global, size_extrafield_global, comment, method, level, raw, window_bits, mem_level, strategy, password, crc_for_crypting, version_made_by, flag_base, zip64)
# @param [FFI::Pointer(ZipFile)] file
# @param [String] filename
# @param [ZipFileinfo] zipfi
# @param [FFI::Pointer(*Void)] extrafield_local
# @param [Integer] size_extrafield_local
# @param [FFI::Pointer(*Void)] extrafield_global
# @param [Integer] size_extrafield_global
# @param [String] comment
# @param [Integer] method
# @param [Integer] level
# @param [Integer] raw
# @param [Integer] window_bits
# @param [Integer] mem_level
# @param [Integer] strategy
# @param [String] password
# @param [Integer] crc_for_crypting
# @param [Integer] version_made_by
# @param [Integer] flag_base
# @param [Integer] zip64
# @return [Integer]
# @scope class
attach_function :zip_open_new_file_in_zip4_64, :zipOpenNewFileInZip4_64, [:pointer, :string, ZipFileinfo, :pointer, :uint, :pointer, :uint, :string, :int, :int, :int, :int, :int, :int, :string, :ulong, :ulong, :ulong, :int], :int
# @method zip_write_in_file_in_zip(file, buf, len)
# @param [FFI::Pointer(ZipFile)] file
# @param [FFI::Pointer(*Void)] buf
# @param [Integer] len
# @return [Integer]
# @scope class
attach_function :zip_write_in_file_in_zip, :zipWriteInFileInZip, [:pointer, :pointer, :uint], :int
# @method zip_close_file_in_zip(file)
# @param [FFI::Pointer(ZipFile)] file
# @return [Integer]
# @scope class
attach_function :zip_close_file_in_zip, :zipCloseFileInZip, [:pointer], :int
# @method zip_close_file_in_zip_raw(file, uncompressed_size, crc32)
# @param [FFI::Pointer(ZipFile)] file
# @param [Integer] uncompressed_size
# @param [Integer] crc32
# @return [Integer]
# @scope class
attach_function :zip_close_file_in_zip_raw, :zipCloseFileInZipRaw, [:pointer, :ulong, :ulong], :int
# @method zip_close_file_in_zip_raw64(file, uncompressed_size, crc32)
# @param [FFI::Pointer(ZipFile)] file
# @param [Integer] uncompressed_size
# @param [Integer] crc32
# @return [Integer]
# @scope class
attach_function :zip_close_file_in_zip_raw64, :zipCloseFileInZipRaw64, [:pointer, :ulong_long, :ulong], :int
# @method zip_close(file, global_comment)
# @param [FFI::Pointer(ZipFile)] file
# @param [String] global_comment
# @return [Integer]
# @scope class
attach_function :zip_close, :zipClose, [:pointer, :string], :int
# @method zip_remove_extra_info_block(p_data, data_len, s_header)
# @param [String] p_data
# @param [FFI::Pointer(*Int)] data_len
# @param [Integer] s_header
# @return [Integer]
# @scope class
attach_function :zip_remove_extra_info_block, :zipRemoveExtraInfoBlock, [:string, :pointer, :short], :int
# = Fields:
# :file ::
# (FFI::Pointer(*FILE))
module ThemeWrappers
# @return [nil]
def free()
Libxlsxwriter.theme_free(self)
end
# @return [nil]
def xml_declaration()
Libxlsxwriter.theme_xml_declaration(self)
end
# @return [nil]
def assemble_xml_file()
Libxlsxwriter.theme_assemble_xml_file(self)
end
end
class Theme < FFI::Struct
include ThemeWrappers
layout :file, :pointer
end
# @method theme_new()
# @return [Theme]
# @scope class
attach_function :theme_new, :lxw_theme_new, [], Theme
# @method theme_free(theme)
# @param [Theme] theme
# @return [nil]
# @scope class
attach_function :theme_free, :lxw_theme_free, [Theme], :void
# @method theme_xml_declaration(self_)
# @param [Theme] self_
# @return [nil]
# @scope class
attach_function :theme_xml_declaration, :lxw_theme_xml_declaration, [Theme], :void
# @method theme_assemble_xml_file(self_)
# @param [Theme] self_
# @return [nil]
# @scope class
attach_function :theme_assemble_xml_file, :lxw_theme_assemble_xml_file, [Theme], :void
# = Fields:
# :file ::
# (FFI::Pointer(*FILE))
# :font_count ::
# (Integer)
# :xf_count ::
# (Integer)
# :dxf_count ::
# (Integer)
# :num_format_count ::
# (Integer)
# :border_count ::
# (Integer)
# :fill_count ::
# (Integer)
# :xf_formats ::
# (Formats)
# :dxf_formats ::
# (Formats)
module StylesWrappers
# @return [nil]
def free()
Libxlsxwriter.styles_free(self)
end
# @return [nil]
def assemble_xml_file()
Libxlsxwriter.styles_assemble_xml_file(self)
end
end
class Styles < FFI::Struct
include StylesWrappers
layout :file, :pointer,
:font_count, :uint,
:xf_count, :uint,
:dxf_count, :uint,
:num_format_count, :uint,
:border_count, :uint,
:fill_count, :uint,
:xf_formats, Formats,
:dxf_formats, Formats
end
# @method styles_new()
# @return [Styles]
# @scope class
attach_function :styles_new, :lxw_styles_new, [], Styles
# @method styles_free(styles)
# @param [Styles] styles
# @return [nil]
# @scope class
attach_function :styles_free, :lxw_styles_free, [Styles], :void
# @method styles_assemble_xml_file(self_)
# @param [Styles] self_
# @return [nil]
# @scope class
attach_function :styles_assemble_xml_file, :lxw_styles_assemble_xml_file, [Styles], :void
# = Fields:
# :stqh_first ::
# (FFI::Pointer(*RelTuple))
# :stqh_last ::
# (FFI::Pointer(**RelTuple))
class RelTuples < FFI::Struct
layout :stqh_first, :pointer,
:stqh_last, :pointer
end
# = Fields:
# :stqe_next ::
# (FFI::Pointer(*RelTuple))
class RelTupleListPointers < FFI::Struct
layout :stqe_next, :pointer
end
# = Fields:
# :type ::
# (String)
# :target ::
# (String)
# :target_mode ::
# (String)
# :list_pointers ::
# (RelTupleListPointers)
class RelTuple < FFI::Struct
layout :type, :string,
:target, :string,
:target_mode, :string,
:list_pointers, RelTupleListPointers.by_value
end
# Struct to represent a relationships.
#
# = Fields:
# :file ::
# (FFI::Pointer(*FILE))
# :rel_id ::
# (Integer)
# :relationships ::
# (RelTuples)
module RelationshipsWrappers
# @return [nil]
def assemble_xml_file()
Libxlsxwriter.relationships_assemble_xml_file(self)
end
end
class Relationships < FFI::Struct
include RelationshipsWrappers
layout :file, :pointer,
:rel_id, :uint,
:relationships, RelTuples
end
# *INDENT-ON*
#
# @method relationships_new()
# @return [Relationships]
# @scope class
attach_function :relationships_new, :lxw_relationships_new, [], Relationships
# @method free_relationships(relationships)
# @param [Relationships] relationships
# @return [nil]
# @scope class
attach_function :free_relationships, :lxw_free_relationships, [Relationships], :void
# @method relationships_assemble_xml_file(self_)
# @param [Relationships] self_
# @return [nil]
# @scope class
attach_function :relationships_assemble_xml_file, :lxw_relationships_assemble_xml_file, [Relationships], :void
# @method add_document_relationship(self_, type, target)
# @param [Relationships] self_
# @param [String] type
# @param [String] target
# @return [nil]
# @scope class
attach_function :add_document_relationship, :lxw_add_document_relationship, [Relationships, :string, :string], :void
# @method add_package_relationship(self_, type, target)
# @param [Relationships] self_
# @param [String] type
# @param [String] target
# @return [nil]
# @scope class
attach_function :add_package_relationship, :lxw_add_package_relationship, [Relationships, :string, :string], :void
# @method add_ms_package_relationship(self_, type, target)
# @param [Relationships] self_
# @param [String] type
# @param [String] target
# @return [nil]
# @scope class
attach_function :add_ms_package_relationship, :lxw_add_ms_package_relationship, [Relationships, :string, :string], :void
# @method add_worksheet_relationship(self_, type, target, target_mode)
# @param [Relationships] self_
# @param [String] type
# @param [String] target
# @param [String] target_mode
# @return [nil]
# @scope class
attach_function :add_worksheet_relationship, :lxw_add_worksheet_relationship, [Relationships, :string, :string, :string], :void
require_relative 'binding/workbook'
#
# = Fields:
# :file ::
# (FFI::Pointer(*FILE))
# :workbook ::
# (Workbook)
# :buffer_size ::
# (Integer)
# :zipfile ::
# (FFI::Pointer(ZipFile))
# :zipfile_info ::
# (ZipFileinfo)
# :filename ::
# (String)
# :buffer ::
# (String)
# :tmpdir ::
# (String)
# :chart_count ::
# (Integer)
# :drawing_count ::
# (Integer)
module PackagerWrappers
# @return [nil]
def free()
Libxlsxwriter.packager_free(self)
end
end
class Packager < FFI::Struct
include PackagerWrappers
layout :file, :pointer,
:workbook, Workbook,
:buffer_size, :ulong,
:zipfile, :pointer,
:zipfile_info, ZipFileinfo.by_value,
:filename, :string,
:buffer, :string,
:tmpdir, :string,
:chart_count, :ushort,
:drawing_count, :ushort
end
# @method packager_new(filename, tmpdir)
# @param [String] filename
# @param [String] tmpdir
# @return [Packager]
# @scope class
attach_function :packager_new, :lxw_packager_new, [:string, :string], Packager
# @method packager_free(packager)
# @param [Packager] packager
# @return [nil]
# @scope class
attach_function :packager_free, :lxw_packager_free, [Packager], :void
# @method create_package(self_)
# @param [Packager] self_
# @return [Symbol from _enum_error_]
# @scope class
attach_function :create_package, :lxw_create_package, [Packager], :error
# @method tmpfileplus(dir, prefix, pathname, keep)
# @param [String] dir
# @param [String] prefix
# @param [FFI::Pointer(**CharS)] pathname
# @param [Integer] keep
# @return [FFI::Pointer(*FILE)]
# @scope class
attach_function :tmpfileplus, :tmpfileplus, [:string, :string, :pointer, :int], :pointer
# @method tmpfileplus_f(dir, prefix, pathnamebuf, pathsize, keep)
# @param [String] dir
# @param [String] prefix
# @param [String] pathnamebuf
# @param [Integer] pathsize
# @param [Integer] keep
# @return [FFI::Pointer(*FILE)]
# @scope class
attach_function :tmpfileplus_f, :tmpfileplus_f, [:string, :string, :string, :ulong, :int], :pointer
# = Fields:
# :stqe_next ::
# (FFI::Pointer(*XmlAttribute))
class XmlAttributeListEntries < FFI::Struct
layout :stqe_next, :pointer
end
# = Fields:
# :key ::
# (Array)
# :value ::
# (Array)
# :list_entries ::
# (XmlAttributeListEntries)
class XmlAttribute < FFI::Struct
layout :key, [:char, 256],
:value, [:char, 256],
:list_entries, XmlAttributeListEntries.by_value
end
# Use queue.h macros to define the xml_attribute_list type.
#
# = Fields:
# :stqh_first ::
# (XmlAttribute)
# :stqh_last ::
# (FFI::Pointer(**XmlAttribute))
class XmlAttributeList < FFI::Struct
layout :stqh_first, XmlAttribute,
:stqh_last, :pointer
end
# Create a new attribute struct to add to a xml_attribute_list.
#
# @method new_attribute_str(key, value)
# @param [String] key
# @param [String] value
# @return [XmlAttribute]
# @scope class
attach_function :new_attribute_str, :lxw_new_attribute_str, [:string, :string], XmlAttribute
# @method new_attribute_int(key, value)
# @param [String] key
# @param [Integer] value
# @return [XmlAttribute]
# @scope class
attach_function :new_attribute_int, :lxw_new_attribute_int, [:string, :uint], XmlAttribute
# @method new_attribute_dbl(key, value)
# @param [String] key
# @param [Float] value
# @return [XmlAttribute]
# @scope class
attach_function :new_attribute_dbl, :lxw_new_attribute_dbl, [:string, :double], XmlAttribute
# Create the XML declaration in an XML file.
#
# @param xmlfile A FILE pointer to the output XML file.
#
# @method xml_declaration(xmlfile)
# @param [FFI::Pointer(*FILE)] xmlfile
# @return [nil]
# @scope class
attach_function :xml_declaration, :lxw_xml_declaration, [:pointer], :void
# Write an XML start tag with optional attributes.
#
# @param xmlfile A FILE pointer to the output XML file.
# @param tag The XML tag to write.
# @param attributes An optional list of attributes to add to the tag.
#
# @method xml_start_tag(xmlfile, tag, attributes)
# @param [FFI::Pointer(*FILE)] xmlfile
# @param [String] tag
# @param [XmlAttributeList] attributes
# @return [nil]
# @scope class
attach_function :xml_start_tag, :lxw_xml_start_tag, [:pointer, :string, XmlAttributeList], :void
# Write an XML start tag with optional un-encoded attributes.
# This is a minor optimization for attributes that don't need encoding.
#
# @param xmlfile A FILE pointer to the output XML file.
# @param tag The XML tag to write.
# @param attributes An optional list of attributes to add to the tag.
#
# @method xml_start_tag_unencoded(xmlfile, tag, attributes)
# @param [FFI::Pointer(*FILE)] xmlfile
# @param [String] tag
# @param [XmlAttributeList] attributes
# @return [nil]
# @scope class
attach_function :xml_start_tag_unencoded, :lxw_xml_start_tag_unencoded, [:pointer, :string, XmlAttributeList], :void
# Write an XML end tag.
#
# @param xmlfile A FILE pointer to the output XML file.
# @param tag The XML tag to write.
#
# @method xml_end_tag(xmlfile, tag)
# @param [FFI::Pointer(*FILE)] xmlfile
# @param [String] tag
# @return [nil]
# @scope class
attach_function :xml_end_tag, :lxw_xml_end_tag, [:pointer, :string], :void
# Write an XML empty tag with optional attributes.
#
# @param xmlfile A FILE pointer to the output XML file.
# @param tag The XML tag to write.
# @param attributes An optional list of attributes to add to the tag.
#
# @method xml_empty_tag(xmlfile, tag, attributes)
# @param [FFI::Pointer(*FILE)] xmlfile
# @param [String] tag
# @param [XmlAttributeList] attributes
# @return [nil]
# @scope class
attach_function :xml_empty_tag, :lxw_xml_empty_tag, [:pointer, :string, XmlAttributeList], :void
# Write an XML empty tag with optional un-encoded attributes.
# This is a minor optimization for attributes that don't need encoding.
#
# @param xmlfile A FILE pointer to the output XML file.
# @param tag The XML tag to write.
# @param attributes An optional list of attributes to add to the tag.
#
# @method xml_empty_tag_unencoded(xmlfile, tag, attributes)
# @param [FFI::Pointer(*FILE)] xmlfile
# @param [String] tag
# @param [XmlAttributeList] attributes
# @return [nil]
# @scope class
attach_function :xml_empty_tag_unencoded, :lxw_xml_empty_tag_unencoded, [:pointer, :string, XmlAttributeList], :void
# Write an XML element containing data and optional attributes.
#
# @param xmlfile A FILE pointer to the output XML file.
# @param tag The XML tag to write.
# @param data The data section of the XML element.
# @param attributes An optional list of attributes to add to the tag.
#
# @method xml_data_element(xmlfile, tag, data, attributes)
# @param [FFI::Pointer(*FILE)] xmlfile
# @param [String] tag
# @param [String] data
# @param [XmlAttributeList] attributes
# @return [nil]
# @scope class
attach_function :xml_data_element, :lxw_xml_data_element, [:pointer, :string, :string, XmlAttributeList], :void
# @method escape_control_characters(string)
# @param [String] string
# @return [String]
# @scope class
attach_function :escape_control_characters, :lxw_escape_control_characters, [:string], :string
# @method escape_data(data)
# @param [String] data
# @return [String]
# @scope class
attach_function :escape_data, :lxw_escape_data, [:string], :string
end