world.tile_y = floorf( world.tile_pos[1] );
// Tilemap editing
- if( !world.simulating )
+ if( !world.simulating && !gui_want_mouse() )
{
v2_copy( vg_mouse_ws, drag_to_co );
ui_global_ctx.cursor[1] = 0;
ui_global_ctx.cursor[2] = 256;
- ui_fill_y( &ui_global_ctx );
+ gui_fill_y();
- ui_new_node( &ui_global_ctx );
+ ui_global_ctx.id_base = 4 << 16;
+
+ gui_new_node();
{
- ui_fill_rect( &ui_global_ctx, ui_global_ctx.cursor, 0xff5577ff );
+ gui_fill_rect( ui_global_ctx.cursor, 0xff5577ff );
- ui_text( &ui_global_ctx, "MARBLE COMPUTING", 4, 0 );
+ gui_text( "MARBLE COMPUTING", 4, 0 );
ui_global_ctx.cursor[1] += 45;
ui_global_ctx.cursor[3] = 709;
// Level scroll view
- ui_new_node( &ui_global_ctx );
+ gui_new_node();
{
- ui_fill_rect( &ui_global_ctx, ui_global_ctx.cursor, 0xffff7729 );
- ui_set_clip( &ui_global_ctx, ui_global_ctx.cursor );
+ gui_fill_rect( ui_global_ctx.cursor, 0xffff7729 );
+ gui_set_clip( ui_global_ctx.cursor );
+
+ ui_global_ctx.cursor[2] = 16;
+ gui_align_right();
+
+ static struct ui_scrollbar sb = {
+ .bar_height = 400
+ };
+ ui_scrollbar( &ui_global_ctx, &sb, 0 );
- ui_global_ctx.cursor[3] = 50;
ui_global_ctx.cursor[2] = 240;
+ ui_global_ctx.cursor[3] = 50;
+ gui_align_left();
+
+ ui_px content_height = vg_list_size(cmp_levels_basic)*ui_global_ctx.cursor[3];
+ ui_global_ctx.cursor[1] -= ui_calculate_content_scroll( &sb, content_height );
for( int i = 0; i < vg_list_size(cmp_levels_basic); i ++ )
{
struct cmp_level *lvl_info = &cmp_levels_basic[i];
- ui_new_node( &ui_global_ctx );
+ gui_new_node();
{
- ui_fill_rect( &ui_global_ctx, ui_global_ctx.cursor, i&0x1?0xff23fce45:0xff8722f8 );
- ui_text( &ui_global_ctx, lvl_info->title, 3, 0 );
+ gui_fill_rect( ui_global_ctx.cursor, i&0x1?0xff23fce45:0xff8722f8 );
+ gui_text( lvl_info->title, 3, 0 );
}
- ui_end_down( &ui_global_ctx );
+ gui_end_down();
}
- ui_release_clip( &ui_global_ctx );
+ gui_release_clip();
}
- ui_end_down( &ui_global_ctx );
+ gui_end_down();
}
- ui_end( &ui_global_ctx );
+ gui_end();
}