void resized() override { Grid grid; grid.rowGap = 20_px; grid.columnGap = 20_px; using Track = Grid::TrackInfo; grid.templateRows = { Track (1_fr), Track (1_fr), Track (1_fr) }; grid.templateColumns = { Track (1_fr), Track (1_fr), Track (1_fr) }; grid.autoColumns = Track (1_fr); grid.autoRows = Track (1_fr); grid.autoFlow = Grid::AutoFlow::column; grid.items.addArray ({ GridItem (items[0]).withArea (2, 2, 4, 4), GridItem (items[1]), GridItem (items[2]).withArea ({}, 3), GridItem (items[3]), GridItem (items[4]).withArea (GridItem::Span (2), {}), GridItem (items[5]), GridItem (items[6]), GridItem (items[7]), GridItem (items[8]) }); grid.performLayout (getLocalBounds()); }
void DBGridIF::DiscreteStats() { DBInt recordID, layerID; DBFloat area, sumArea = 0.0; DBPosition pos; DBObjTableField *areaFLD = ItemTable->Field(DBrNGridArea); DBObjTableField *percentFLD = ItemTable->Field(DBrNGridPercent); DBObjRecord *layerRec, *record; for (recordID = 0; recordID < ItemTable->ItemNum(); ++recordID) { record = ItemTable->Item(recordID); areaFLD->Float(record, 0.0); percentFLD->Float(record, 0.0); } for (layerID = 0; layerID < LayerNum(); ++layerID) { layerRec = Layer(layerID); for (pos.Row = 0; pos.Row < RowNum(); ++pos.Row) for (pos.Col = 0; pos.Col < ColNum(); ++pos.Col) if ((record = GridItem(layerRec, pos)) != (DBObjRecord *) NULL) { area = CellArea(pos); sumArea += area; areaFLD->Float(record, areaFLD->Float(record) + area); } } for (recordID = 0; recordID < ItemTable->ItemNum(); ++recordID) { record = ItemTable->Item(recordID); percentFLD->Float(record, areaFLD->Float(record) * 100.0 / sumArea); } }
char *DBGridIF::ValueString(DBObjRecord *layerRec, DBPosition pos) { static char retString[DBStringLength + 1]; switch (DataPTR->Type()) { case DBTypeGridDiscrete: return (GridItem(layerRec, pos))->Name(); case DBTypeGridContinuous: { DBFloat cellVal; if (Value(layerRec, pos, &cellVal) == false) return ((char *) ""); sprintf(retString, ValueFormat(), cellVal); } break; default: CMmsgPrint(CMmsgAppError, "Invalid Data Type in: %s %d", __FILE__, __LINE__); return ((char *) NULL); } return (retString); }