Skip to content

Commit 275b979

Browse files
committed
input element properties
1 parent 69215e7 commit 275b979

File tree

2 files changed

+242
-8
lines changed

2 files changed

+242
-8
lines changed

src/browser/html/elements.zig

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -626,6 +626,85 @@ pub const HTMLInputElement = struct {
626626
pub const Self = parser.Input;
627627
pub const prototype = *HTMLElement;
628628
pub const subtype = .node;
629+
630+
pub fn get_defaultValue(self: *parser.Input) ![]const u8 {
631+
return try parser.inputGetDefaultValue(self);
632+
}
633+
pub fn set_defaultValue(self: *parser.Input, default_value: []const u8) !void {
634+
try parser.inputSetDefaultValue(self, default_value);
635+
}
636+
pub fn get_defaultChecked(self: *parser.Input) !bool {
637+
return try parser.inputGetDefaultChecked(self);
638+
}
639+
pub fn set_defaultChecked(self: *parser.Input, default_checked: bool) !void {
640+
try parser.inputSetDefaultChecked(self, default_checked);
641+
}
642+
pub fn get_from(self: *parser.Input) !?*parser.Form {
643+
return try parser.inputGetForm(self);
644+
}
645+
pub fn get_accept(self: *parser.Input) ![]const u8 {
646+
return try parser.inputGetAccept(self);
647+
}
648+
pub fn set_accept(self: *parser.Input, accept: []const u8) !void {
649+
try parser.inputSetAccept(self, accept);
650+
}
651+
pub fn get_alt(self: *parser.Input) ![]const u8 {
652+
return try parser.inputGetAlt(self);
653+
}
654+
pub fn set_alt(self: *parser.Input, alt: []const u8) !void {
655+
try parser.inputSetAlt(self, alt);
656+
}
657+
pub fn get_checked(self: *parser.Input) !bool {
658+
return try parser.inputGetChecked(self);
659+
}
660+
pub fn set_checked(self: *parser.Input, checked: bool) !void {
661+
try parser.inputSetChecked(self, checked);
662+
}
663+
pub fn get_disabled(self: *parser.Input) !bool {
664+
return try parser.inputGetDisabled(self);
665+
}
666+
pub fn set_disabled(self: *parser.Input, disabled: bool) !void {
667+
try parser.inputSetDisabled(self, disabled);
668+
}
669+
pub fn get_maxLength(self: *parser.Input) !i32 {
670+
return try parser.inputGetMaxLength(self);
671+
}
672+
pub fn set_maxLength(self: *parser.Input, max_length: u32) !void {
673+
try parser.inputSetMaxLength(self, max_length);
674+
}
675+
pub fn get_name(self: *parser.Input) ![]const u8 {
676+
return try parser.inputGetName(self);
677+
}
678+
pub fn set_name(self: *parser.Input, name: []const u8) !void {
679+
try parser.inputSetName(self, name);
680+
}
681+
pub fn get_readOnly(self: *parser.Input) !bool {
682+
return try parser.inputGetReadOnly(self);
683+
}
684+
pub fn set_readOnly(self: *parser.Input, read_only: bool) !void {
685+
try parser.inputSetReadOnly(self, read_only);
686+
}
687+
pub fn get_size(self: *parser.Input) !u32 {
688+
return try parser.inputGetSize(self);
689+
}
690+
pub fn set_size(self: *parser.Input, size: u32) !void {
691+
try parser.inputSetSize(self, size);
692+
}
693+
pub fn get_src(self: *parser.Input) ![]const u8 {
694+
return try parser.inputGetSrc(self);
695+
}
696+
pub fn set_src(self: *parser.Input, src: []const u8) !void {
697+
try parser.inputSetSrc(self, src);
698+
}
699+
pub fn get_type(self: *parser.Input) ![]const u8 {
700+
return try parser.inputGetType(self);
701+
}
702+
pub fn get_value(self: *parser.Input) ![]const u8 {
703+
return try parser.inputGetValue(self);
704+
}
705+
pub fn set_value(self: *parser.Input, value: []const u8) !void {
706+
try parser.inputSetValue(self, value);
707+
}
629708
};
630709

631710
pub const HTMLLIElement = struct {

src/browser/netsurf.zig

Lines changed: 163 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2498,14 +2498,6 @@ pub fn optionSetSelected(option: *Option, selected: bool) !void {
24982498
try DOMErr(err);
24992499
}
25002500

2501-
// Input
2502-
pub fn inputGetChecked(input: *Input) !bool {
2503-
var b: bool = false;
2504-
const err = c.dom_html_input_element_get_checked(input, &b);
2505-
try DOMErr(err);
2506-
return b;
2507-
}
2508-
25092501
// HtmlCollection
25102502
pub fn htmlCollectionGetLength(collection: *HTMLCollection) !u32 {
25112503
var len: u32 = 0;
@@ -2601,3 +2593,166 @@ pub fn imageSetIsMap(image: *Image, is_map: bool) !void {
26012593
const err = c.dom_html_image_element_set_is_map(image, is_map);
26022594
try DOMErr(err);
26032595
}
2596+
2597+
// Input
2598+
// - Input.align is deprecated
2599+
// - Input.useMap is deprecated
2600+
// - HTMLElement.access_key
2601+
// - HTMLElement.tabIndex
2602+
// TODO methods:
2603+
// - HTMLElement.blur
2604+
// - HTMLElement.focus
2605+
// - select
2606+
// - HTMLElement.click
2607+
2608+
pub fn inputGetDefaultValue(input: *Input) ![]const u8 {
2609+
var s_: ?*String = null;
2610+
const err = c.dom_html_input_element_get_default_value(input, &s_);
2611+
try DOMErr(err);
2612+
const s = s_ orelse return "";
2613+
return strToData(s);
2614+
}
2615+
pub fn inputSetDefaultValue(input: *Input, default_value: []const u8) !void {
2616+
const err = c.dom_html_input_element_set_default_value(input, try strFromData(default_value));
2617+
try DOMErr(err);
2618+
}
2619+
2620+
pub fn inputGetDefaultChecked(input: *Input) !bool {
2621+
var default_checked: bool = false;
2622+
const err = c.dom_html_input_element_get_default_checked(input, &default_checked);
2623+
try DOMErr(err);
2624+
return default_checked;
2625+
}
2626+
pub fn inputSetDefaultChecked(input: *Input, default_checked: bool) !void {
2627+
const err = c.dom_html_input_element_set_default_checked(input, default_checked);
2628+
try DOMErr(err);
2629+
}
2630+
2631+
pub fn inputGetForm(input: *Input) !?*Form {
2632+
var form: ?*Form = null;
2633+
const err = c.dom_html_input_element_get_form(input, &form);
2634+
try DOMErr(err);
2635+
return form;
2636+
}
2637+
2638+
pub fn inputGetAccept(input: *Input) ![]const u8 {
2639+
var s_: ?*String = null;
2640+
const err = c.dom_html_input_element_get_accept(input, &s_);
2641+
try DOMErr(err);
2642+
const s = s_ orelse return "";
2643+
return strToData(s);
2644+
}
2645+
pub fn inputSetAccept(input: *Input, accept: []const u8) !void {
2646+
const err = c.dom_html_input_element_set_accept(input, try strFromData(accept));
2647+
try DOMErr(err);
2648+
}
2649+
2650+
pub fn inputGetAlt(input: *Input) ![]const u8 {
2651+
var s_: ?*String = null;
2652+
const err = c.dom_html_input_element_get_alt(input, &s_);
2653+
try DOMErr(err);
2654+
const s = s_ orelse return "";
2655+
return strToData(s);
2656+
}
2657+
pub fn inputSetAlt(input: *Input, alt: []const u8) !void {
2658+
const err = c.dom_html_input_element_set_alt(input, try strFromData(alt));
2659+
try DOMErr(err);
2660+
}
2661+
2662+
pub fn inputGetChecked(input: *Input) !bool {
2663+
var checked: bool = false;
2664+
const err = c.dom_html_input_element_get_checked(input, &checked);
2665+
try DOMErr(err);
2666+
return checked;
2667+
}
2668+
pub fn inputSetChecked(input: *Input, checked: bool) !void {
2669+
const err = c.dom_html_input_element_set_checked(input, checked);
2670+
try DOMErr(err);
2671+
}
2672+
2673+
pub fn inputGetDisabled(input: *Input) !bool {
2674+
var disabled: bool = false;
2675+
const err = c.dom_html_input_element_get_disabled(input, &disabled);
2676+
try DOMErr(err);
2677+
return disabled;
2678+
}
2679+
pub fn inputSetDisabled(input: *Input, disabled: bool) !void {
2680+
const err = c.dom_html_input_element_set_disabled(input, disabled);
2681+
try DOMErr(err);
2682+
}
2683+
2684+
pub fn inputGetMaxLength(input: *Input) !i32 {
2685+
var max_length: i32 = 0;
2686+
const err = c.dom_html_input_element_get_max_length(input, &max_length);
2687+
try DOMErr(err);
2688+
return max_length;
2689+
}
2690+
pub fn inputSetMaxLength(input: *Input, max_length: u32) !void {
2691+
const err = c.dom_html_input_element_set_max_length(input, max_length);
2692+
try DOMErr(err);
2693+
}
2694+
2695+
pub fn inputGetName(input: *Input) ![]const u8 {
2696+
var s_: ?*String = null;
2697+
const err = c.dom_html_input_element_get_name(input, &s_);
2698+
try DOMErr(err);
2699+
const s = s_ orelse return "";
2700+
return strToData(s);
2701+
}
2702+
pub fn inputSetName(input: *Input, name: []const u8) !void {
2703+
const err = c.dom_html_input_element_set_name(input, try strFromData(name));
2704+
try DOMErr(err);
2705+
}
2706+
pub fn inputGetReadOnly(input: *Input) !bool {
2707+
var read_only: bool = false;
2708+
const err = c.dom_html_input_element_get_read_only(input, &read_only);
2709+
try DOMErr(err);
2710+
return read_only;
2711+
}
2712+
pub fn inputSetReadOnly(input: *Input, read_only: bool) !void {
2713+
const err = c.dom_html_input_element_set_read_only(input, read_only);
2714+
try DOMErr(err);
2715+
}
2716+
pub fn inputGetSize(input: *Input) !u32 {
2717+
var size: u32 = 0;
2718+
const err = c.dom_html_input_element_get_size(input, &size);
2719+
try DOMErr(err);
2720+
if (size == ulongNegativeOne) return 20; // 20
2721+
return size;
2722+
}
2723+
pub fn inputSetSize(input: *Input, size: u32) !void {
2724+
const err = c.dom_html_input_element_set_size(input, size);
2725+
try DOMErr(err);
2726+
}
2727+
2728+
pub fn inputGetSrc(input: *Input) ![]const u8 {
2729+
var s_: ?*String = null;
2730+
const err = c.dom_html_input_element_get_src(input, &s_);
2731+
try DOMErr(err);
2732+
const s = s_ orelse return "";
2733+
return strToData(s);
2734+
}
2735+
pub fn inputSetSrc(input: *Input, src: []const u8) !void {
2736+
const err = c.dom_html_input_element_set_src(input, try strFromData(src));
2737+
try DOMErr(err);
2738+
}
2739+
2740+
pub fn inputGetType(input: *Input) ![]const u8 {
2741+
var s_: ?*String = null;
2742+
const err = c.dom_html_input_element_get_type(input, &s_);
2743+
try DOMErr(err);
2744+
const s = s_ orelse return "";
2745+
return strToData(s);
2746+
}
2747+
2748+
pub fn inputGetValue(input: *Input) ![]const u8 {
2749+
var s_: ?*String = null;
2750+
const err = c.dom_html_input_element_get_value(input, &s_);
2751+
try DOMErr(err);
2752+
const s = s_ orelse return "";
2753+
return strToData(s);
2754+
}
2755+
pub fn inputSetValue(input: *Input, value: []const u8) !void {
2756+
const err = c.dom_html_input_element_set_value(input, try strFromData(value));
2757+
try DOMErr(err);
2758+
}

0 commit comments

Comments
 (0)