const widget_factory_t& default_asl_widget_factory() { static bool inited(false); static widget_factory_t default_factory_s; if (!inited) { name_t name_row("row"_name); name_t name_column("column"_name); name_t name_overlay("overlay"_name); name_t name_reveal("reveal"_name); name_t name_preset("preset"_name); name_t name_preview("preview"_name); name_t name_static_text("static_text"_name); name_t name_control_button("control_button"_name); default_factory_s.reg(name_column, &column_factory, true, column_layout_attributes()); default_factory_s.reg(name_overlay, &overlay_factory, true, overlay_layout_attributes()); default_factory_s.reg(name_row, &row_factory, true, row_layout_attributes()); default_factory_s.reg(name_button, &make_button); default_factory_s.reg(name_checkbox, &make_checkbox); default_factory_s.reg(name_control_button, &make_control_button); default_factory_s.reg(name_dialog, &make_window, true, window_layout_attributes()); default_factory_s.reg(name_display_number, &implementation::make_display_number); default_factory_s.reg(name_edit_number, &make_edit_number); default_factory_s.reg(name_edit_text, &implementation::make_edit_text); default_factory_s.reg(name_group, &make_group, true, group_layout_attributes()); #ifndef ADOBE_PLATFORM_NO_IMAGE default_factory_s.reg(name_image, &implementation::make_image_hack); #endif default_factory_s.reg(name_toggle, &make_toggle); default_factory_s.reg(name_label, &implementation::make_label_hack); #ifndef ADOBE_PLATFORM_NO_LINK default_factory_s.reg(name_link, &make_link, false, link_layout_attributes()); #endif default_factory_s.reg(name_optional, &make_optional_panel, true, optional_panel_layout_attributes()); default_factory_s.reg(name_panel, &make_panel, true, panel_layout_attributes()); default_factory_s.reg(name_popup, &make_popup); #ifndef ADOBE_PLATFORM_NO_PRESETS default_factory_s.reg(name_preset, &make_presets); #endif default_factory_s.reg(name_preview, &make_preview); default_factory_s.reg(name_progress_bar, &make_progress_bar); default_factory_s.reg(name_radio_button, &make_radio_button); default_factory_s.reg(name_reveal, &make_reveal); default_factory_s.reg(name_separator, &make_separator, false, separator_layout_attributes()); default_factory_s.reg(name_slider, &make_slider); default_factory_s.reg(name_static_text, &implementation::make_label_hack); default_factory_s.reg(name_tab_group, &make_tab_group, true, tab_group_layout_attributes()); inited = true; } return default_factory_s; }