Skip to content

[WIP] NeoUI - Table headers + main table API + section X-axis scrolling#1871

Draft
nullsystem wants to merge 1 commit intoNeotokyoRebuild:masterfrom
nullsystem:NeoUITable
Draft

[WIP] NeoUI - Table headers + main table API + section X-axis scrolling#1871
nullsystem wants to merge 1 commit intoNeotokyoRebuild:masterfrom
nullsystem:NeoUITable

Conversation

@nullsystem
Copy link
Collaborator

@nullsystem nullsystem commented Mar 20, 2026

Description

NeoUI table headers and main table API implemented, now have Begin/EndTable and NextTableRow implementation replacing the previous custom paint + button. Now can just layout the table cells with widgets, although at the moment only NeoUI::Label are properly utilized and dealt with. Other widgets are not refactored up for tables yet.

The table headers now have dragable resizing and the server browser now have tags column. There's also right-click on the header to show/hide columns.

Sections now have X-axis scrolling, mainly used for table and header scrolling support.

OTHERS:

  • Fix SDR/Steam networking server bot vs player number count
  • Fix border in smaller resolutions

TODOs:

  • Fixup tab X scrolling
  • Section X-scrollbar controls options/flags
    • Modes:
      • No X-scrollbar
      • Indicator/thin X-scrollbar
      • Dragable/thick X-scrollbar
    • Using BeginTable will automatically put the section into Dragable/thick X-scrollbar mode
  • Some TODOs in source code
    • Extra filtering
    • Change from only header to any sections to reference other section's scrolls
  • More columns parity to legacy browser

FUTURE TODOs:

  • Refactor painting of widgets to utilize vgui viewports
  • Possible split of painting (and colors) from NeoUI internals
  • Vertical layouting that expands horizontally as oppose to the default horizontal layouting that expands vertically

Toolchain

  • Linux GCC Distro Native GCC 15/Arch Linux

Linked Issues

NeoUI table headers and main table API implemented, now have
Begin/EndTable and NextTableRow implementation replacing the
previous custom paint + button. Now can just layout the table
cells with widgets, although at the moment only NeoUI::Label
are properly utilized and dealt with. Other widgets are not
refactored up for tables yet.

The table headers now have dragable resizing and the server
browser now have tags column. There's also right-click on
the header to show/hide columns.

Sections now have X-axis scrolling, mainly used for table and
header scrolling support.

OTHERS:
* Fix SDR/Steam networking server bot vs player number count
* Fix border in smaller resolutions

TODOs:
* Fixup tab X scrolling
* Section X-scrollbar controls options/flags
  * Modes:
    * No X-scrollbar
    * Indicator/thin X-scrollbar
    * Dragable/thick X-scrollbar
  * Using BeginTable will automatically put
    the section into Dragable/thick X-scrollbar
    mode
* Some TODOs in source code
  * Extra filtering
  * Change from only header to any sections to reference other
    section's scrolls
* More columns parity to legacy browser

FUTURE TODOs:
* Refactor painting of widgets to utilize vgui viewports
* Possible split of painting (and colors) from NeoUI internals
* Vertical layouting that expands horizontally as oppose to the
  default horizontal layouting that expands vertically

* fixes NeotokyoRebuild#1566
* fixes NeotokyoRebuild#994
* fixes NeotokyoRebuild#1815
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant