mirror of
https://github.com/amyinspace/MagicSetEditor2.git
synced 2026-06-11 05:07:00 -04:00
Fixed sub menus
git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@94 0fc631ac-6414-0410-93d0-97cfa31319b6
This commit is contained in:
@@ -35,6 +35,8 @@ ChoiceField::ChoiceP DropDownChoiceList::getChoice(size_t item) const {
|
||||
String DropDownChoiceList::itemText(size_t item) const {
|
||||
if (isFieldDefault(item)) {
|
||||
return field().default_name;
|
||||
} else if (isGroupDefault(item)) {
|
||||
return group->default_name;
|
||||
} else {
|
||||
ChoiceField::ChoiceP choice = getChoice(item);
|
||||
return choice->name;
|
||||
@@ -43,15 +45,15 @@ String DropDownChoiceList::itemText(size_t item) const {
|
||||
bool DropDownChoiceList::lineBelow(size_t item) const {
|
||||
return isDefault(item);
|
||||
}
|
||||
DropDownList* DropDownChoiceList::submenu(size_t item) {
|
||||
DropDownList* DropDownChoiceList::submenu(size_t item) const {
|
||||
if (isDefault(item)) return nullptr;
|
||||
item -= hasDefault();
|
||||
if (item < submenus.size()) submenus.resize(item + 1);
|
||||
if (item >= submenus.size()) submenus.resize(item + 1);
|
||||
if (submenus[item]) return submenus[item].get();
|
||||
ChoiceField::ChoiceP choice = getChoice(item);
|
||||
ChoiceField::ChoiceP choice = group->choices[item];
|
||||
if (choice->isGroup()) {
|
||||
// create submenu
|
||||
submenus[item].reset(new DropDownChoiceList(GetParent(), true, cve, choice));
|
||||
submenus[item].reset(new DropDownChoiceList(const_cast<DropDownChoiceList*>(this), true, cve, choice));
|
||||
}
|
||||
return submenus[item].get();
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ class DropDownChoiceList : public DropDownList {
|
||||
virtual bool lineBelow(size_t item) const;
|
||||
virtual String itemText(size_t item) const;
|
||||
virtual void drawIcon(DC& dc, int x, int y, size_t item, bool selected) const;
|
||||
virtual DropDownList* submenu(size_t item);
|
||||
virtual DropDownList* submenu(size_t item) const;
|
||||
|
||||
virtual void select(size_t item);
|
||||
virtual size_t selection() const;
|
||||
@@ -58,7 +58,7 @@ class DropDownChoiceList : public DropDownList {
|
||||
private:
|
||||
ChoiceValueEditor& cve;
|
||||
ChoiceField::ChoiceP group; ///< Group this menu shows
|
||||
vector<DropDownListP> submenus;
|
||||
mutable vector<DropDownListP> submenus;
|
||||
|
||||
inline const ChoiceField& field() const { return cve.field(); }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user