+static void workshop_form_gui_sidebar( ui_rect sidebar )
+{
+ ui_fill( sidebar, ui_colour( k_ui_bg+2 ) );
+
+ ui_rect title;
+ ui_split( sidebar, k_ui_axis_h, 28, 0, title, sidebar );
+
+ if( workshop_form.page == k_workshop_form_edit ){
+ ui_text( title, "Editing", 1, k_ui_align_middle_center, 0 );
+ ui_split( sidebar, k_ui_axis_h, 28, 0, title, sidebar );
+
+ if( workshop_form.submission.type != k_addon_type_none ){
+ char buf[512];
+ vg_str str;
+ vg_strnull( &str, buf, 512 );
+
+ if( workshop_form.submission.file_id )
+ vg_strcat( &str, "Editing an existing " );
+ else
+ vg_strcat( &str, "Creating a new " );
+
+ if( workshop_form.submission.type == k_addon_type_board )
+ vg_strcat( &str, "skateboard." );
+ else if( workshop_form.submission.type == k_addon_type_world )
+ vg_strcat( &str, "world." );
+ else if( workshop_form.submission.type == k_addon_type_player )
+ vg_strcat( &str, "playermodel." );
+ else
+ vg_strcat( &str, "???." );
+
+ ui_text( title, buf, 1, k_ui_align_middle_center,
+ ui_colour(k_ui_fg+4) );
+ }
+ return;
+ }
+
+ /*
+ * sidebar existing entries panel
+ */
+ ui_text( title, "Your submissions", 1, k_ui_align_middle_center, 0 );
+
+ ui_rect controls, btn_create_new;
+ ui_split( sidebar, k_ui_axis_h, 32, 0, controls, sidebar );
+ ui_split( sidebar, k_ui_axis_h, -32, 0, sidebar, btn_create_new );
+ ui_fill( controls, ui_colour( k_ui_bg+1 ) );
+
+ char buf[32];
+ vg_str str;
+ vg_strnull( &str, buf, sizeof(buf) );
+ vg_strcat( &str, "page " );
+ vg_strcati32( &str, workshop_form.view_published_page_id+1 );
+ vg_strcatch( &str, '/' );
+ vg_strcati32( &str, workshop_form.view_published_page_count );
+
+ ui_rect_pad( controls, (ui_px[2]){0,4} );
+ ui_rect info;
+ ui_split_ratio( controls, k_ui_axis_v, 0.25f, 0, info, controls );
+ ui_text( info, buf, 1, k_ui_align_middle_center, 0 );
+
+ ui_rect btn_left, btn_right;
+ ui_split_ratio( controls, k_ui_axis_v, 0.5f, 2, btn_left, btn_right );
+
+ if( ui_button_text( btn_left, "newer", 1 ) == 1 ){
+ workshop_view_page( workshop_form.view_published_page_id-1 );
+ }
+
+ if( ui_button_text( btn_right, "older", 1 ) == 1 ){
+ workshop_view_page( workshop_form.view_published_page_count+1 );
+ }
+
+ if( ui_button_text( btn_create_new, "Create New Item", 1 ) == 1 ){
+ workshop_reset_submission_data();
+ workshop_form.submission.submit_title = 1;
+ workshop_form.submission.submit_description = 1;
+ workshop_form.submission.submit_file_and_image = 1;
+ workshop_form.page = k_workshop_form_edit;
+ }
+
+ for( int i=0; i<workshop_form.published_files_list_length; i++ ){
+ ui_rect item;
+ ui_split( sidebar, k_ui_axis_h, 28, 0, item, sidebar );
+ ui_rect_pad( item, (ui_px[2]){4,4} );
+
+ struct published_file *pfile = &workshop_form.published_files_list[i];
+ if( ui_button_text( item, pfile->title, 1 ) == 1 ){
+ if( pfile->result == k_EResultOK ){
+ vg_info( "Select index: %d\n", pfile->result_index );
+ workshop_op_download_and_view_submission( pfile->result_index );
+ }
+ else{
+ vg_warn( "Cannot select that item, result not OK\n" );
+ }
+ }
+ }
+}
+
+void workshop_form_gui(void)
+{
+ enum workshop_form_page stable_page = workshop_form.page;
+ if( stable_page == k_workshop_form_hidden ) return;
+
+ ui_rect null;
+ ui_rect screen = { 0, 0, vg.window_x, vg.window_y };
+ ui_rect window = { 0, 0, 1000, 700 };
+ ui_rect_center( screen, window );
+ vg_ui.wants_mouse = 1;
+
+ ui_fill( window, ui_colour( k_ui_bg+1 ) );
+ ui_outline( window, 1, ui_colour( k_ui_bg+7 ), 0 );