Lower create group button when vehicle dragged over it
This commit is contained in:
@@ -1123,6 +1123,21 @@ public:
|
||||
this->group_sel = INVALID_GROUP;
|
||||
this->group_over = INVALID_GROUP;
|
||||
this->SetWidgetDirty(WID_GL_LIST_VEHICLE);
|
||||
this->SetVehicleDraggedOverCreateGroupButton(false);
|
||||
}
|
||||
|
||||
void SetVehicleDraggedOverCreateGroupButton(bool dragged)
|
||||
{
|
||||
NWidgetCore *create_group = this->GetWidget<NWidgetCore>(WID_GL_CREATE_GROUP);
|
||||
if (dragged && (create_group->type & WWB_PUSHBUTTON)) {
|
||||
create_group->type = static_cast<WidgetType>(create_group->type & ~WWB_PUSHBUTTON);
|
||||
create_group->SetLowered(true);
|
||||
create_group->SetDirty(this);
|
||||
} else if (!dragged && !(create_group->type & WWB_PUSHBUTTON)) {
|
||||
create_group->type = static_cast<WidgetType>(create_group->type | WWB_PUSHBUTTON);
|
||||
create_group->SetLowered(false);
|
||||
create_group->SetDirty(this);
|
||||
}
|
||||
}
|
||||
|
||||
void OnMouseDrag(Point pt, int widget) override
|
||||
@@ -1131,6 +1146,8 @@ public:
|
||||
|
||||
/* A vehicle is dragged over... */
|
||||
GroupID new_group_over = INVALID_GROUP;
|
||||
|
||||
bool create_group_drag_over = false;
|
||||
switch (widget) {
|
||||
case WID_GL_DEFAULT_VEHICLES: // ... the 'default' group.
|
||||
new_group_over = DEFAULT_GROUP;
|
||||
@@ -1141,8 +1158,15 @@ public:
|
||||
new_group_over = id_g >= this->groups.size() ? NEW_GROUP : this->groups[id_g]->index;
|
||||
break;
|
||||
}
|
||||
|
||||
case WID_GL_CREATE_GROUP: {
|
||||
if (this->vehicle_sel != INVALID_VEHICLE) create_group_drag_over = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
this->SetVehicleDraggedOverCreateGroupButton(create_group_drag_over);
|
||||
|
||||
/* Do not highlight when dragging over the current group */
|
||||
if (this->vehicle_sel != INVALID_VEHICLE) {
|
||||
if (Vehicle::Get(vehicle_sel)->group_id == new_group_over) new_group_over = INVALID_GROUP;
|
||||
|
Reference in New Issue
Block a user