当前位置: 首页 > article >正文

Chromium HTML Input 类型radio 对应c++

一、单选按钮(Radio Buttons)

<input type="radio"> 标签定义了表单的单选框选项:

<form action="">
<input type="radio" name="sex" value="male">男<br>
<input type="radio" name="sex" value="female">女
</form>

二、 radio c++接口定义:

third_party\blink\renderer\core\html\forms\radio_input_type.h

third_party\blink\renderer\core\html\forms\radio_input_type.cc

namespace blink {

class RadioInputType final : public BaseCheckableInputType {
 public:
  CORE_EXPORT static HTMLInputElement* NextRadioButtonInGroup(HTMLInputElement*,
                                                              bool forward);

  RadioInputType(HTMLInputElement& element)
      : BaseCheckableInputType(Type::kRadio, element) {}
  bool ValueMissing(const String&) const;

 private:
  void CountUsage() override;
  ControlPart AutoAppearance() const override;
  void WillUpdateCheckedness(bool new_checked) override;
  String ValueMissingText() const override;
  void HandleClickEvent(MouseEvent&) override;
  void HandleKeydownEvent(KeyboardEvent&) override;
  void HandleKeyupEvent(KeyboardEvent&) override;
  bool IsKeyboardFocusable(
      Element::UpdateBehavior update_behavior =
          Element::UpdateBehavior::kStyleAndLayout) const override;
  bool ShouldSendChangeEventAfterCheckedChanged() override;
  ClickHandlingState* WillDispatchClick() override;
  void DidDispatchClick(Event&, const ClickHandlingState&) override;
  bool ShouldAppearIndeterminate() const override;

  HTMLInputElement* FindNextFocusableRadioButtonInGroup(HTMLInputElement*,
                                                        bool);
  HTMLInputElement* CheckedRadioButtonForGroup() const;
};

template <>
struct DowncastTraits<RadioInputType> {
  static bool AllowFrom(const InputType& type) {
    return type.IsRadioInputType();
  }
};

}  // namespace blink


http://www.kler.cn/a/374018.html

相关文章:

  • Docker-基础
  • 在Bash脚本中 set -e 是什么意思
  • 入门 | Kafka数据使用vector消费到Loki中使用grafana展示
  • 为什么要使用Golang以及如何入门
  • 【iOS】YYModel初学习
  • 利用摄像机实时接入分析平台LiteAIServer视频智能分析软件进行视频监控:过亮过暗检测算法详解
  • 大厂面试真题-简单说说中台的架构设计
  • 如何统一管理枚举类?
  • ASPICE 4.0引领自动驾驶未来:机器学习模型的特点与实践
  • JS面试八股文(三)
  • 四足机器人实战篇之三:四足机器人嵌入式硬件设计
  • 013:无人机航线规划的概念
  • 华为OD机试真题---获得完美走位
  • 细说 ThreadPool(线程池)使用与优势以及实现方式
  • 微软官方 .NET 混淆软件 Dotfuscator
  • Nginx 网关解决 Geoserver 图层访问控制
  • idm扩展自动更新,导致不能正常使用处理方法
  • 企业应该采用和支持网络安全的几个实践
  • 高考相关 APP 案例分享
  • 【安全性分析】正式安全分析与非正式安全分析
  • 使用API有效率地管理Dynadot域名,将域名移动至某一文件夹中
  • 【瑞吉外卖】-day03
  • Qt 实战(10)模型视图 | 10.5、代理
  • 音视频入门基础:FLV专题(21)——FFmpeg源码中,获取FLV文件音频信息的实现(上)
  • 组件封装思路
  • JDBC——获取DBMS连接、优化与工具类封装