void CPDF_FormField::SyncFieldFlags() { CFX_ByteString type_name = FPDF_GetFieldAttr(m_pDict, "FT") ? FPDF_GetFieldAttr(m_pDict, "FT")->GetString() : CFX_ByteString(); uint32_t flags = FPDF_GetFieldAttr(m_pDict, "Ff") ? FPDF_GetFieldAttr(m_pDict, "Ff")->GetInteger() : 0; m_Flags = 0; if (flags & 1) m_Flags |= kFormFieldReadOnly; if (flags & 2) m_Flags |= kFormFieldRequired; if (flags & 4) m_Flags |= kFormFieldNoExport; if (type_name == "Btn") { if (flags & 0x8000) { m_Type = RadioButton; if (flags & 0x4000) m_Flags |= kFormRadioNoToggleOff; if (flags & 0x2000000) m_Flags |= kFormRadioUnison; } else if (flags & 0x10000) { m_Type = PushButton; } else { m_Type = CheckBox; } } else if (type_name == "Tx") { if (flags & 0x100000) { m_Type = File; } else if (flags & 0x2000000) { m_Type = RichText; } else { m_Type = Text; if (flags & 0x1000) m_Flags |= kFormTextMultiLine; if (flags & 0x2000) m_Flags |= kFormTextPassword; if (flags & 0x800000) m_Flags |= kFormTextNoScroll; if (flags & 0x100000) m_Flags |= kFormTextComb; } LoadDA(); } else if (type_name == "Ch") { if (flags & 0x20000) { m_Type = ComboBox; if (flags & 0x40000) m_Flags |= kFormComboEdit; } else { m_Type = ListBox; if (flags & 0x200000) m_Flags |= kFormListMultiSelect; } LoadDA(); } else if (type_name == "Sig") { m_Type = Sign; } }
void CPDF_FormField::SyncFieldFlags() { CFX_ByteString type_name = FPDF_GetFieldAttr(m_pDict, "FT") ? FPDF_GetFieldAttr(m_pDict, "FT")->GetString() : CFX_ByteString(); uint32_t flags = FPDF_GetFieldAttr(m_pDict, "Ff") ? FPDF_GetFieldAttr(m_pDict, "Ff")->GetInteger() : 0; m_Flags = 0; if (flags & 1) { m_Flags |= FORMFIELD_READONLY; } if (flags & 2) { m_Flags |= FORMFIELD_REQUIRED; } if (flags & 4) { m_Flags |= FORMFIELD_NOEXPORT; } if (type_name == "Btn") { if (flags & 0x8000) { m_Type = RadioButton; if (flags & 0x4000) { m_Flags |= FORMRADIO_NOTOGGLEOFF; } if (flags & 0x2000000) { m_Flags |= FORMRADIO_UNISON; } } else if (flags & 0x10000) { m_Type = PushButton; } else { m_Type = CheckBox; } } else if (type_name == "Tx") { if (flags & 0x100000) { m_Type = File; } else if (flags & 0x2000000) { m_Type = RichText; } else { m_Type = Text; if (flags & 0x1000) { m_Flags |= FORMTEXT_MULTILINE; } if (flags & 0x2000) { m_Flags |= FORMTEXT_PASSWORD; } if (flags & 0x800000) { m_Flags |= FORMTEXT_NOSCROLL; } if (flags & 0x100000) { m_Flags |= FORMTEXT_COMB; } } LoadDA(); } else if (type_name == "Ch") { if (flags & 0x20000) { m_Type = ComboBox; if (flags & 0x40000) { m_Flags |= FORMCOMBO_EDIT; } } else { m_Type = ListBox; if (flags & 0x200000) { m_Flags |= FORMLIST_MULTISELECT; } } LoadDA(); } else if (type_name == "Sig") { m_Type = Sign; } }