int main(int argc, char** argv)
{
    UApplicationOptions* options = u_application_options_new_from_cmd_line(argc, argv);

    UApplicationDescription* desc = u_application_description_new();
    UApplicationId* id = u_application_id_new_from_stringn("UbuntuApplicationCAPI", 21);
    u_application_description_set_application_id(desc, id);
    UApplicationInstance* instance = u_application_instance_new_from_description_with_options(desc, options);

    UAUiSessionProperties* props = ua_ui_session_properties_new();
    ua_ui_session_properties_set_type(props, U_USER_SESSION);

    UAUiSession* ua_ui_session_new_with_properties(props);

    UAUiDisplay* display = ua_ui_display_new_with_index(0);

    printf("Display resolution: (x,y) = (%d,%d)\n",
           ua_ui_display_query_horizontal_res(display),
           ua_ui_display_query_vertical_res(display));
   
    UAUiWindowProperties* wprops = ua_ui_window_properties_new_for_normal_window();
    ua_ui_window_properties_set_titlen(wprops, "Window 1", 8);
    ua_ui_window_properties_set_role(wprops, U_MAIN_ROLE);
    ua_ui_window_properties_set_input_cb_and_ctx(wprops, on_new_event, NULL);
   
    UAUiWindow* surface = ua_ui_window_new_for_application_with_properties(instance, wprops);
    
    View view(surface);
    while(true)
    {
        view.render();
        view.step();
    }   
}
static struct display *
create_display (void)
{
    struct display *display;
    display = malloc (sizeof *display);

    display->display = ua_ui_display_new_with_index (0);
    if (display->display == NULL) {
        free (display);
        return NULL;
    }

    display->height = ua_ui_display_query_vertical_res (display->display);
    display->width = ua_ui_display_query_horizontal_res (display->display);

    GST_DEBUG ("Display resolution: (%d,%d)\n", display->height, display->width);

    return display;
}