View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001423 | Wishes | Macro | public | 2010-06-30 07:01 | 2014-10-02 15:53 |
Reporter | Maximus | Assigned To | vskirdin | ||
Priority | normal | Severity | feature | Reproducibility | have not tried |
Status | closed | Resolution | fixed | ||
Platform | x86 | OS | Windows | OS Version | XP SP2 |
Product Version | 2.0 | ||||
Fixed in Version | 3.0 | ||||
Summary | 0001423: Узнать состояние пункта меню | ||||
Description | S=Menu.ItemStatus([N]); Вернуть состояние N-го пункта меню (N - 1-based), или текущего пункта, если N==0 или не указан. Работает в абсолютном пространстве пунктов меню (без учета фильтров пр. механизмов сокрытия) Возвращает набор флагов (битмаск): 0xFFFFFFFF - нету нишиша/ошибка (N вне диапазона наличности) 0x00000001 - Selected (текущий пункт) 0x00000002 - Checked (отображена метка выбора) 0x00000004 - Separator (пункт является разделителем) 0x00000008 - Disabled (пункт недоступен) 0x00000010 - Grayed ("серый") 0x00000020 - Hidden (не видим/скрыт фильтром) TODO (после реализации 0001422): 0x00000040 - Hotkey present (имеет хоткей) 0x00000080 - Hotkey manual (хоткей был назначен юзером) | ||||
Tags | No tags attached. | ||||
Build | 0 | ||||
|
Иногда ещё пригодилось бы 0x00000010 - Hotkeyed (имеет горячую клавишу) |
|
> 0x00000010 - Hotkeyed (имеет горячую клавишу) а какую? :-) назначенную руками или полуавтоматическую (автоматическую+из языкового ресурса) |
|
> назначенную руками или полуавтоматическую (автоматическую+из языкового ресурса) Ну значит надо ещё добавить бит(ы) для тип(а/ов) горячей клавиши. Просто я не силён во внутреннем устройстве Фара. |
|
этого пока нет (подробности 0001422) |
|
Ещё пункт меню может быть скрыт, фильтром. |
|
Раз пошла такая пьянка, то ещё * усечён в начале * усечён в конце |
|
а это нахрена про усечение? пункт меню усекается только для вывода на экран, но хранится полностью (если это не так, то это баг) |
|
добавил в "Подробности" еще 3 флага |
|
> а это нахрена про усечение? Реальной потребности пока не знаю, но нафантазировать могу легко. Например, шибко умный макрос может интеллектуально укорачивать текст пункта меню, если тот не умещается целиком. |
|
Великий и могучий: > 0x00000008 - Disabled (пункт недоступен/засерен) :) |
|
Уточнил описание |
|
build 1601 |
|
>0x00000002 - Checked (отображена метка выбора) Помимо "галки" встречаются ещё "+" и "-" (Ctrl-F12) http://forum.farmanager.com/viewtopic.php?p=68827#p68827 |
|
и? предлагаешь различать все символы пометки? а вдруг кроме галки, плюс и минус кто-то поставит еще один Checked, отличный от этих символов? |
|
> предлагаешь различать все символы пометки? А что, разве возможно в качестве пометки пункта меню влепить произвольный символ?! Речь-то идёт о том, что хочется в макросах различить как минимум 3(?4) состояния пункта меню: не помечен, помечен положительно, помечен отрицательно (?, помечен неведомым образом). |
|
Мля... :-( здря ой как здря в VMenu::VMProcess() для MCODE_F_MENU_ITEMSTATUS стоит вот эта бадяга: "RetValue >>= 16;" че будем делать? Мои предложения (одно из): 1. нихрена не сдвигать значение, но тогда флаги-состояния будут в старшем слове (меняются макросы, писание и все такое), а в младшем слове U+XXXX либо 0 (в этом случае стандартная галка, при условии что флаг чекалки выставлен) 2. в старшем слове будет U+XXXX символ пометки. ы? |
|
делаю по второму варианту. build 1673 |
|
Для энциклопедии нужен пример макроса, работающего с символом пометки. |
|
давай :-) hint macro:post CtrlF12 %s=Menu.ItemStatus(2); Esc print(%s>>16) |
|
$If(Menu.ItemStatus() & 0x00000002) Msgbox("Selected", chr(Menu.ItemStatus()>>16)) $Else Msgbox("Not Selected") $End macro:post CtrlF12 Down $If(Menu.ItemStatus() & 0x00000002) Msgbox("Selected", chr(Menu.ItemStatus()>>0x10)) $Else Msgbox("Not Selected") $End |
|
фсе? |
|
Пример в неудачном месте: после "функция возвращает значение -1 (все биты установлены)" Предлагаю разместить пример до этого замечания, либо добавить в него проверку на -1 |
|
патч твоего видения в студию |
|
Пожалуйста: http://forum.farmanager.com/viewtopic.php?p=69005#p69005 |
|
Надо закрыть |
Date Modified | Username | Field | Change |
---|---|---|---|
2010-06-30 07:01 | Maximus | New Issue | |
2010-06-30 07:52 | HaRT | Note Added: 0005512 | |
2010-06-30 08:29 | vskirdin | Note Added: 0005513 | |
2010-06-30 08:33 | HaRT | Note Added: 0005514 | |
2010-06-30 08:35 | HaRT | Note Edited: 0005514 | |
2010-06-30 08:42 | vskirdin | Note Added: 0005515 | |
2010-06-30 08:42 | vskirdin | Note Edited: 0005515 | |
2010-06-30 10:06 | JohnDoe | Note Added: 0005516 | |
2010-06-30 10:08 | HaRT | Note Added: 0005517 | |
2010-06-30 12:27 | vskirdin | Note Added: 0005518 | |
2010-06-30 12:29 | vskirdin | Note Added: 0005519 | |
2010-06-30 12:29 | vskirdin | Description Updated | |
2010-06-30 12:30 | HaRT | Note Added: 0005520 | |
2010-06-30 15:52 | JohnDoe | Note Added: 0005524 | |
2010-07-02 07:28 | vskirdin | Note Added: 0005539 | |
2010-07-02 07:28 | vskirdin | Description Updated | |
2010-07-02 07:28 | vskirdin | Description Updated | |
2010-07-02 07:29 | vskirdin | Description Updated | |
2010-07-02 07:29 | vskirdin | Assigned To | => vskirdin |
2010-07-02 07:29 | vskirdin | Status | new => assigned |
2010-07-02 08:26 | vskirdin | Note Added: 0005540 | |
2010-07-02 08:26 | vskirdin | Status | assigned => feedback |
2010-09-13 09:28 | JohnDoe | Note Added: 0005764 | |
2010-09-13 09:29 | JohnDoe | Status | feedback => assigned |
2010-09-16 12:36 | vskirdin | Note Added: 0005781 | |
2010-09-16 12:42 | HaRT | Note Added: 0005782 | |
2010-09-16 12:46 | vskirdin | Note Added: 0005783 | |
2010-09-16 14:48 | vskirdin | Note Added: 0005786 | |
2010-09-16 14:48 | vskirdin | Status | assigned => feedback |
2010-09-17 13:44 | JohnDoe | Note Added: 0005796 | |
2010-09-17 14:19 | vskirdin | Note Added: 0005799 | |
2010-09-17 15:27 | JohnDoe | Note Added: 0005801 | |
2010-09-17 15:42 | JohnDoe | Note Edited: 0005801 | |
2010-09-17 15:45 | JohnDoe | Note Edited: 0005801 | |
2010-09-17 17:48 | vskirdin | Note Added: 0005803 | |
2010-09-18 10:39 | JohnDoe | Note Added: 0005804 | |
2010-09-18 15:16 | vskirdin | Note Added: 0005805 | |
2010-09-18 22:47 | JohnDoe | Note Added: 0005806 | |
2010-09-20 10:26 | JohnDoe | Note Edited: 0005806 | |
2013-02-03 00:34 | alexy | Severity | minor => feature |
2014-08-22 16:20 | JohnDoe | Note Added: 0012919 | |
2014-10-02 15:53 | shmuel | Build | => 0 |
2014-10-02 15:53 | shmuel | Status | feedback => closed |
2014-10-02 15:53 | shmuel | Resolution | open => fixed |
2014-10-02 15:53 | shmuel | Fixed in Version | => 3.0 |