NAME

PDF::Make::Builder::Form::Field - Base class for form field components

DESCRIPTION

Base class for all Builder form field types. Provides shared layout logic (label rendering, cursor management, styled borders) and delegates field creation to subclasses via _create_field.

Do not use this class directly. Use the specific field type classes:

PDF::Make::Builder::Form::Field::Text
PDF::Make::Builder::Form::Field::Checkbox
PDF::Make::Builder::Form::Field::Radio
PDF::Make::Builder::Form::Field::Combo
PDF::Make::Builder::Form::Field::Listbox
PDF::Make::Builder::Form::Field::Button

Or use $builder->add_field(type => '...', name => '...', ...) which dispatches to the correct subclass automatically.

SHARED PROPERTIES

field_name (Str, required) - PDF field name (unique within the form)
x (Num) - Left edge X coordinate (defaults to page content area)
y (Num) - Bottom Y coordinate (used by raw mode)
w (Num, default 200) - Field width in points
h (Num, default 24) - Field height in points
label (Str) - Label text drawn above (or beside) the field
label_colour (Str, default '#444') - Label text colour
label_size (Num, default 9) - Label font size
default_value (Str) - Initial field value
da (Str) - Raw PDF default appearance string (overrides font_name/font_size)
font_size (Num, default 10) - Font size for field text
font_name (Str, default 'Helv') - PDF font resource name
border_colour (Str, default '#aaa') - Field border colour
bg_colour (Str, default '#fff') - Field background colour
readonly (Bool, default 0) - Make field read-only
required (Bool, default 0) - Mark field as required (appends * to label)
inline_label (Bool, default 0) - Place label beside the field instead of above
raw_mode (Bool, default 0) - Skip builder layout/chrome; place widget directly at x/y/w/h
margin_top (Num, default 4) - Space above the field in points
margin_bottom (Num, default 8) - Space below the field in points

SEE ALSO

PDF::Make::Builder, PDF::Make::Form, PDF::Make::Field