SWMMVis  6.0.0-alpha.4
Qt6/C++ GIS-based graphical user interface for the SWMMVis engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
ribbonlayoutsolver.h File Reference
#include <QVector>
#include <QtGlobal>
Include dependency graph for ribbonlayoutsolver.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  openswmmvis::ui::RibbonGroupWidths
 

Namespaces

namespace  openswmmvis
 
namespace  openswmmvis::ui
 

Enumerations

enum class  openswmmvis::ui::RibbonMode {
  openswmmvis::ui::Collapsed = 0 ,
  openswmmvis::ui::Compact = 1 ,
  openswmmvis::ui::Full = 2
}
 

Functions

int openswmmvis::ui::ribbonRowWidth (const QVector< RibbonGroupWidths > &groups, const QVector< RibbonMode > &modes, int spacing)
 
QVector< RibbonModeopenswmmvis::ui::solveRibbonModes (int availableWidth, const QVector< RibbonGroupWidths > &groups, int spacing)
 
QVector< RibbonModeopenswmmvis::ui::applyRibbonHysteresis (const QVector< RibbonMode > &previous, int availableWidth, const QVector< RibbonGroupWidths > &groups, int spacing, int deadBand=32)
 

Detailed Description

UI redesign iteration 2 (R2) — pure width solver for the captioned ribbon groups. Given how wide each group would be in each display mode, pick per-group modes that fit the available row width by demoting groups from the trailing end first (Full → Compact, then Compact → Collapsed), the way ArcGIS Pro sheds detail.

Pure functions over plain data — no widgets — so the demotion order, the two-pass shape and the promotion hysteresis are unit-testable headlessly.