Это может в конечном итоге стать отчетом об ошибке, но так как я нашел обходной путь для аналогичной проблемы с диалоговой графикой в GMS3, я надеюсь, что может быть способ заставить кнопки скоса отображаться правильно. В следующем примере сценария демонстрируется проблема:
class ModelessDialogWithBevelButton : UIFrame
{
Object Init(Object self)
{
TagGroup dialogSpec = DLGCreateDialog("");
TagGroup dialogItems = dialogSpec.DLGGetItems();
Number size = 100;
Number factor = 4 * Pi() / size;
Image graphicImage := RGBImage("Graphic", 4, size, size);
graphicImage = RGB(255 * Sin(factor * iradius) ** 2, 255 * Cos(factor * iradius) ** 2, 0);
// Add labeled box with graphic
Number scaler = 1;
TagGroup graphicBoxSpec = DLGCreateBox("Graphic");
TagGroup graphicBoxItems = graphicBoxSpec.DLGGetItems();
TagGroup graphicSpec = DLGCreateGraphic(scaler * size, scaler * size);
graphicSpec.DLGAddBitMap(graphicImage);
graphicBoxItems.DLGAddElement(graphicSpec);
dialogItems.DLGAddElement(graphicBoxSpec, "Left", "West");
// Add labeled box with bevel button
TagGroup buttonBoxSpec = DLGCreateBox("Bevel Button");
TagGroup buttonBoxItems = buttonBoxSpec.DLGGetItems();
TagGroup buttonSpec = DLGCreateBevelButton(graphicImage, graphicImage, "DoButton");
buttonBoxItems.DLGAddElement(buttonSpec);
dialogItems.DLGAddElement(buttonBoxSpec, "Left", "West");
return self.super.Init(dialogSpec);
}
void DoButton(Object self)
{
OKDialog("Button clicked");
}
}
void main()
{
Object dialog = Alloc(ModelessDialogWithBevelButton).Init();
dialog.Display("Bevel Button Test");
}
main();
В то время как растровое изображение элемента graphi c заполняет только верхнюю левую четверть указанной области graphi c, растровое изображение кнопки скоса заканчивается заполнением только центральная четверть области скоса. В случае графиков c мы можем обойти это несоответствие, установив для переменной масштабирования значение 0,5 (по крайней мере, в GMS 3.4, работающей под последней версией Win10). Однако я не нашел способа уменьшить область графика c кнопки скоса, чтобы она соответствовала растровому изображению. Кто-нибудь еще сталкивался с этим и нашел решение?