platform_display_type insert<checkbox_t>(display_t&             display,
                                         platform_display_type& parent,
                                         checkbox_t&            element)
{
    ::HIViewRef parent_ref(parent);

    initialize(element, parent_ref);

    return display.insert(parent, element.control_m);
}
platform_display_type insert<label_t>(display_t&             display,
                                             platform_display_type& parent,
                                             label_t&        element)
{
    ::HIViewRef parent_ref(parent);

    initialize(element, parent_ref);

    ::HIViewRef ref(element.control_m.get());

    platform_display_type result(display.insert(parent, ref));

    element.subevent_m.handler_m.install(ref);

    return result;
}              
Beispiel #3
0
platform_display_type insert<button_t>(display_t&             display,
                                       platform_display_type& parent,
                                       button_t&              element)
{
    static const ::Rect bounds_s = { 0, 0, 1024, 1024 };

    assert(element.control_m == false);

    button_state_set_t::iterator state(button_default_state(element.state_set_m));
    ::HIViewRef                  parent_ref(parent);
    ::WindowRef                  window(::GetControlOwner(parent_ref));

    ADOBE_REQUIRE_STATUS(::CreatePushButtonControl(window,
                                                   &bounds_s,
                                                   explicit_cast<auto_cfstring_t>(state->name_m).get(),
                                                   &element.control_m));

    implementation::set_theme(element.control_m, element.theme_m);
    implementation::set_active(element.control_m, element.enabled_m);

    if (state->alt_text_m.empty() == false)
        implementation::set_control_alt_text(element.control_m, state->alt_text_m);

    element.hit_handler_m.handler_m.install(element.control_m);

    implementation::set_widget_data(element.control_m,
                                    kControlEntireControl,
                                    kControlPushButtonDefaultTag,
                                    static_cast< ::Boolean >(element.is_default_m));

    implementation::set_widget_data(element.control_m,
                                    kControlEntireControl,
                                    kControlPushButtonCancelTag,
                                    static_cast< ::Boolean >(element.is_cancel_m));

    assert(element.mod_key_handler_m.handler_m.is_installed() == false);

    if (element.state_set_m.size() > 1)
        element.mod_key_handler_m.handler_m.install(window);

    return display.insert(parent, element.control_m);
}