26 #include "table/strings.h" 
  113         int size = spec == NULL ? 0 : spec->
size;
 
  127         for (uint i = 0; i < ObjectClass::GetClassCount(); i++) {
 
  132         size->width += padding.width;
 
  149           if (spec->
views >= 2) size->width  += resize->width;
 
  150           if (spec->
views >= 4) size->height += resize->height;
 
  158         bool two_wide = 
false;  
 
  165           two_wide |= spec->
views >= 2;
 
  170         for (
size_t i = 0; i < 
lengthof(height); i++) {
 
  179         size->height = 
max(height[0], height[1] * 2 + 2);
 
  189           if (spec->
views >= 2) size->width  = size->width  / 2 - 1;
 
  190           if (spec->
views >= 4) size->height = size->height / 2 - 1;
 
  215     switch (
GB(widget, 0, 16)) {
 
  219         for (uint i = 0; i < ObjectClass::GetClassCount(); i++) {
 
  232         if (spec == NULL) 
break;
 
  243         if (
FillDrawPixelInfo(&tmp_dpi, r.left, r.top, r.right - r.left + 1, r.bottom - r.top + 1)) {
 
  260         int obj_index = objclass->GetIndexFromUI(
GB(widget, 16, 16));
 
  261         if (obj_index < 0) 
break;
 
  262         const ObjectSpec *spec = objclass->GetSpec(obj_index);
 
  263         if (spec == NULL) 
break;
 
  270         if (
FillDrawPixelInfo(&tmp_dpi, r.left + 1, r.top, (r.right - 1) - (r.left + 1) + 1, r.bottom - r.top + 1)) {
 
  288         if (spec == NULL) 
break;
 
  294             if (callback_res > 0x400) {
 
  298               if (message != STR_NULL && message != STR_UNDEFINED) {
 
  303                 int y = 
DrawStringMultiLine(r.left, r.right, r.top, UINT16_MAX, message, TC_ORANGE) - r.top;
 
  350   void UpdateSelectSize()
 
  370     int view_number, object_number;
 
  371     if (sel_index == -1) {
 
  375       view_number = sel_view;
 
  381     this->UpdateSelectSize();
 
  392     switch (
GB(widget, 0, 16)) {
 
  395         if (num_clicked >= (
int)ObjectClass::GetUIClassCount()) 
break;
 
  404         int num_clicked = objclass->GetIndexFromUI(
GB(widget, 16, 16));
 
  405         if (num_clicked >= 0 && objclass->GetSpec(num_clicked)->IsAvailable()) this->
SelectOtherObject(num_clicked);
 
  438     for (uint i = 0; i < sel_objclass->
GetSpecCount(); i++) {
 
  439       const ObjectSpec *spec = sel_objclass->GetSpec(i);
 
  451           const ObjectSpec *spec = objclass->GetSpec(i);
 
  474 static const NWidgetPart _nested_build_object_widgets[] = {
 
  507       NWidget(
WWT_EMPTY, INVALID_COLOUR, 
WID_BO_INFO), 
SetPadding(2, 5, 0, 5), 
SetFill(1, 0), 
SetResize(1, 0),
 
  520   _nested_build_object_widgets, 
lengthof(_nested_build_object_widgets)
 
  530   if (ObjectClass::GetUIClassCount() > 0) {
 
  531     AllocateWindowDescFront<BuildObjectWindow>(&_build_object_desc, 0);