BMenuItem::SetTrigger() and SetAutomaticTrigger() now also update fTriggerIndex.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17006 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -1804,13 +1804,8 @@ BMenu::CalcTriggers()
|
|||||||
BMenuItem *item = ItemAt(i);
|
BMenuItem *item = ItemAt(i);
|
||||||
if (item->Trigger() == 0) {
|
if (item->Trigger() == 0) {
|
||||||
const char *newTrigger = ChooseTrigger(item->Label(), &triggersList);
|
const char *newTrigger = ChooseTrigger(item->Label(), &triggersList);
|
||||||
if (newTrigger != NULL) {
|
if (newTrigger != NULL)
|
||||||
item->SetAutomaticTrigger(*newTrigger);
|
item->SetAutomaticTrigger(*newTrigger);
|
||||||
// TODO: This is crap. I'd prefer to have
|
|
||||||
// BMenuItem::SetSysTrigger(const char *) update fTriggerIndex.
|
|
||||||
// This isn't the case on beos, but it will probably be like that on haiku.
|
|
||||||
item->fTriggerIndex = newTrigger - item->Label();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -276,10 +276,14 @@ BMenuItem::SetTrigger(char trigger)
|
|||||||
{
|
{
|
||||||
fUserTrigger = trigger;
|
fUserTrigger = trigger;
|
||||||
|
|
||||||
if (strchr(fLabel, trigger) != 0)
|
const char* pos = strchr(Label(), trigger);
|
||||||
|
if (pos != NULL) {
|
||||||
fAutomaticTrigger = trigger;
|
fAutomaticTrigger = trigger;
|
||||||
else
|
fTriggerIndex = pos - Label();
|
||||||
fAutomaticTrigger = -1;
|
} else {
|
||||||
|
fAutomaticTrigger = 0;
|
||||||
|
fTriggerIndex = -1;
|
||||||
|
}
|
||||||
|
|
||||||
if (fSuper != NULL)
|
if (fSuper != NULL)
|
||||||
fSuper->InvalidateLayout();
|
fSuper->InvalidateLayout();
|
||||||
@@ -821,7 +825,13 @@ BMenuItem::_DrawControlChar(char shortcut, BPoint where)
|
|||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
BMenuItem::SetAutomaticTrigger(char ch)
|
BMenuItem::SetAutomaticTrigger(char trigger)
|
||||||
{
|
{
|
||||||
fAutomaticTrigger = ch;
|
fAutomaticTrigger = trigger;
|
||||||
|
|
||||||
|
const char* pos = strchr(Label(), trigger);
|
||||||
|
if (pos != NULL)
|
||||||
|
fTriggerIndex = pos - Label();
|
||||||
|
else
|
||||||
|
fTriggerIndex = -1;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user