- ImageScroller WIP commit.

This commit is contained in:
Christoph Oelckers 2020-10-08 22:20:41 +02:00
parent 15eaf86f5a
commit 6ba06f5ed0
11 changed files with 540 additions and 37 deletions

View file

@ -122,6 +122,7 @@ bool OkForLocalization(FTextureID texnum, const char* substitute);
IMPLEMENT_CLASS(DMenuDescriptor, false, false)
IMPLEMENT_CLASS(DListMenuDescriptor, false, false)
IMPLEMENT_CLASS(DOptionMenuDescriptor, false, false)
IMPLEMENT_CLASS(DImageScrollerDescriptor, false, false)
DMenuDescriptor *GetMenuDescriptor(int name)
{
@ -136,6 +137,13 @@ DEFINE_ACTION_FUNCTION_NATIVE(DMenuDescriptor, GetDescriptor, GetMenuDescriptor)
ACTION_RETURN_OBJECT(GetMenuDescriptor(name.GetIndex()));
}
size_t DMenuDescriptor::PropagateMark()
{
for (auto item : mItems) GC::Mark(item);
return 0;
}
void DListMenuDescriptor::Reset()
{
// Reset the default settings (ignore all other values in the struct)
@ -162,12 +170,6 @@ DEFINE_ACTION_FUNCTION(DListMenuDescriptor, Reset)
}
size_t DListMenuDescriptor::PropagateMark()
{
for (auto item : mItems) GC::Mark(item);
return 0;
}
void DOptionMenuDescriptor::Reset()
{
// Reset the default settings (ignore all other values in the struct)
@ -178,12 +180,6 @@ void DOptionMenuDescriptor::Reset()
mFont = BigUpper;
}
size_t DOptionMenuDescriptor::PropagateMark()
{
for (auto item : mItems) GC::Mark(item);
return 0;
}
void M_MarkMenus()
{
MenuDescriptorList::Iterator it(MenuDescriptors);
@ -1045,6 +1041,15 @@ DEFINE_FIELD(FOptionMenuSettings, mFontColorHighlight)
DEFINE_FIELD(FOptionMenuSettings, mFontColorSelection)
DEFINE_FIELD(FOptionMenuSettings, mLinespacing)
DEFINE_FIELD(DImageScrollerDescriptor, mItems)
DEFINE_FIELD(DImageScrollerDescriptor, textBackground)
DEFINE_FIELD(DImageScrollerDescriptor, textBackgroundBrightness)
DEFINE_FIELD(DImageScrollerDescriptor,textFont)
DEFINE_FIELD(DImageScrollerDescriptor, textScale)
DEFINE_FIELD(DImageScrollerDescriptor, mAnimatedTransition)
DEFINE_FIELD(DImageScrollerDescriptor, virtWidth)
DEFINE_FIELD(DImageScrollerDescriptor, virtHeight)
struct IJoystickConfig;
// These functions are used by dynamic menu creation.