Перейти к содержанию

Контролы диалогов и папок: виды, поля, состояния и фабрики

Редакция 2026-11-01: разделы 3.5–3.7 и 3.9 главы guide/input-dialogs.md, перенесённые без переписывания; нумерация разделов сохранена. Справочник по GuiControlDef: какие бывают контролы, какие у них поля, что означают состояния focused и active и что строят фабрики ControlFactory и ActionFactory прошивки. Источники: SDK плагинов (doc, any-documented, версия документа не указана); dune_api.php и shell_ext tv188b 260827_0003_r24 (code, android-dune-fw); код GlobalTV 260130_1351 (code, платформа не установлена). Задачи, где эти контролы используются, — в guide/input-dialogs.md §2–§4; расхождения и непроверенное по контролам — там же §5–§6. Каждое фактическое предложение ссылается на claim id.

3.5. GuiControlDef и виды контролов

Объект: GuiControlDef и GuiControlKind в SDK плагинов (doc, any-documented) и dune_api.php / ControlFactory tv188b r24 (code, android-dune-fw, 260827_0003_r24).

GuiControlDef состоит из name, title, kind, specific_def и params; виды перечислены в GuiControlKind (SDK)1. name — идентификатор, под которым текущее значение контрола передаётся действиям внутри контейнера (SDK)2. Раскладка общая для папок и диалогов: контролы идут сверху вниз с левым выравниванием колонок, title занимает первую колонку, а контрол — вторую; без title контрол стоит в первой (SDK)3. Ширина контролов во второй колонке может подбираться автоматически, если не задана явно (SDK)4.

kind (строка r24) specific_def Поля — §3.6 Где Claim
GUI_CONTROL_LABEL (label) GuiLabelDef caption; доп. params с 130820_b8 SDK; строка — r24 (код r24, SDK)5
GUI_CONTROL_COMBOBOX (combobox) GuiComboboxDef initial_value, value_caption_pairs, width, confirm_action, apply_action SDK; строка — r24 (код r24, SDK)6
GUI_CONTROL_TEXT_FIELD (text_field) GuiTextFieldDef initial_value, numeric, password, has_osk, always_active, width, confirm_action, apply_action SDK; строка — r24 (код r24, SDK)7
GUI_CONTROL_BUTTON (button) GuiButtonDef caption, width, push_action SDK; строка — r24 (код r24, SDK)8
GUI_CONTROL_VGAP (vgap) GuiVGapDef vgap SDK; строка — r24 (код r24, SDK)9
GUI_CONTROL_PROGRESS_BAR (progress_bar) GuiProgressBarDef width, progress (в ControlFactory по умолчанию 0 и 0) только r24, code; в SDK не описан (расхождение — input-dialogs.md §5) (код r24, SDK)10

3.6. Поля контролов: text field, combobox, button, label, VGap

Объект: GuiTextFieldDef, GuiComboboxDef, GuiButtonDef, GuiLabelDef, GuiVGapDef в SDK плагинов (doc, any-documented; параметры Label — с 130820_b8).

Текстовое поле GuiTextFieldDef (SDK)11. Как сочетать поля — input-dialogs.md §2.5.

Поле Что делает По умолчанию Claim
initial_value начальный текст — (SDK)11
numeric true — разрешены только числовые символы false (SDK)12
password true — все символы показываются как * false (SDK)13
has_osk true — экранная клавиатура под полем; её высота не учитывается при раскладке false (SDK)14
always_active true — при фокусе поле сразу переходит в active false (SDK)15
width ширина; без неё — предопределённая -1, auto (SDK)16
confirm_action по ENTER в active до применения: OK — текст применяется, поле в focused; иначе откат, поле остаётся в active — (SDK)17
apply_action после применения изменений; статус игнорируется — (SDK)18

Combobox GuiComboboxDef (SDK)19.

Поле Что делает Claim
value_caption_pairs пары choice_value/choice_caption: подпись на экране, значение — идентификатор выбора (SDK)20
initial_value первый выбранный choice_value (SDK)20
width не меньше стандартной; без неё — стандартная (SDK)21
confirm_action по ENTER в раскрытом меню до применения: OK — выбор применяется, контрол в focused; иначе выбор не применяется, контрол остаётся в active (SDK)22
apply_action после применения; статус игнорируется (SDK)23

Кнопка GuiButtonDef.

Поле Что делает По умолчанию Claim
caption подпись — (SDK)24
width ширина; без неё — стандартная -1, auto (SDK)25
push_action исполняется по ENTER на кнопке с фокусом null (SDK)26
GuiControlDef::params.button_caption_centered центрирует подпись вместо выравнивания влево — (SDK)27

Label GuiLabelDef. Обычный Label — фиксированная однострочная надпись caption, слишком длинный текст обрезается в середине (SDK)28. С прошивки 130820_b8 в GuiControlDef::params поддержаны ключи ниже (SDK)29.

Ключ params Что делает По умолчанию Claim
max_lines при > 1 текст разбивается на абзацы по LF (0xA) и на строки по пробелам — (SDK)30
lines_vgap промежуток между строками, пиксели 0 (SDK)31
pars_vgap промежуток между абзацами, пиксели (в коде GlobalTV — pars_vgab, расхождение — input-dialogs.md §5) lines_vgap (код, SDK)32
smart '1' — одна строка с маленькими иконками и текстом; caption — специальный XML — (SDK)33

В XML режима smart элемент icon берёт URL из тела и width/height/dy из атрибутов, text — текст из тела и color (0–23) / size (normal, small, tiny) / dy из атрибутов, а у gap есть только width (SDK)34.

VGap GuiVGapDef. Нерисуемый псевдоконтрол: положительный vgap увеличивает стандартное расстояние между соседними контролами, отрицательный — уменьшает (SDK)35.

3.7. Состояния контролов: focused и active

Объект: поведение контролов в SDK плагинов (doc, any-documented).

Фокусируемые контролы — combobox, кнопки и текстовые поля (SDK)36. Переход в active важен для плагина, потому что в нём контрол забирает клавиши себе (input-dialogs.md §2.2).

Контрол Вход в active Что перехватывает в active Выход Claim
Combobox ENTER открывает раскрытое меню стрелки, ENTER, RETURN ENTER с confirm_action OK — в focused (SDK)37
Текстовое поле ENTER; при always_active — сразу при фокусе стрелки, ENTER, RETURN и некоторые другие ENTER с confirm_action OK — в focused (SDK)38
Кнопка — (ENTER исполняет push_action) — — (SDK)39

3.9. Фабрики ControlFactory и ActionFactory в shell_ext (r24)

Объект: ControlFactory и ActionFactory в shell_ext tv188b r24 (code, android-dune-fw, 260827_0003_r24).

Встроенная библиотека shell_ext собирает GuiControlDef и диалоги фабриками; копии этих фабрик живут в плагинах и расходятся с прошивочной (input-dialogs.md §4.2). Таблица — справочник по тому, что пишет каждый метод.

Метод Что строит Claim
ControlFactory::add_label label: name, title, kind, specific_def, params; GuiLabelDef::caption (код r24)40
ControlFactory::add_vgap vgap: только kind и specific_def (GuiVGapDef::vgap) (код r24)41
ControlFactory::add_button button; button_caption_centered по умолчанию title==null; action_type=apply; timeout=60000, delay=20000 (код r24)42
ControlFactory::add_custom_button button с push_action вызывающего; button_caption_centered по умолчанию title==null (код r24)43
ControlFactory::add_close_dialog_button button с name=close, title=null; центрирование по умолчанию true (код r24)44
ControlFactory::add_close_dialog_and_apply_button button, action_type=apply, push_action обёрнут в close_dialog_and_run (код r24)45
ControlFactory::add_custom_close_dialog_and_apply_button button, push_action=close_dialog_and_run(action); центрирование по умолчанию true (код r24)46
ControlFactory::add_text_field text_field: initial_value → string; numeric, password, has_osk, always_active, width → int; apply/confirm — по отдельным флагам (по умолчанию false) (код r24)47
ControlFactory::add_combobox combobox; apply/confirm — по отдельным флагам (по умолчанию false) (код r24)48
ControlFactory::add_progress_bar progress_bar: width, progress (по умолчанию 0 и 0) (код r24)49
ActionFactory::show_dialog show_dialog; по умолчанию initial_sel_ndx=-1, actions=null, timer=null, min_item_title_width=0, max_height=0, params=null, close_by_return=false, preferred_width=0 (код r24)50
ActionFactory::show_title_dialog show_dialog с одной кнопкой OK шириной 300, закрывающей диалог перед post_action (код r24)51
ActionFactory::show_message_dialog show_dialog: label на каждое сообщение, vgap=-15 между ними, vgap=30 и кнопка OK шириной 300 (код r24)52
ActionFactory::show_yes_no_dialog show_dialog с Yes (close_dialog_and_run(yes_action)) и No (close_dialog); close_by_return по умолчанию false (код r24)53
ActionFactory::show_waiting_dialog show_dialog с timer(0) и post_action на GUI_EVENT_TIMER (код r24)54
ActionFactory::get_menu_item, get_menu_separator пункт и разделитель GuiMenuItemDef — input-dialogs.md §2.10 (код r24)55

  1. doc-sdk-plugins--controls-playback.c001 · doc · any-documented; прошивка — · Общая структура GuiControlDef содержит name, title, kind, specific_def и params; виды контролов перечислены в GuiControlKind. ↩

  2. doc-sdk-plugins--controls-playback.c005 · doc · any-documented; прошивка — · GuiControlDef::name задаёт идентификатор контрола, используемый для передачи его текущего значения действиям внутри контейнера. ↩

  3. doc-sdk-plugins--controls-playback.c002 · doc · any-documented; прошивка — · В папках и диалогах с контролами элементы располагаются сверху вниз с левым выравниванием колонок: при наличии title он занимает первую колонку, а контрол — вторую; без title контрол находится в первой колонке. ↩

  4. doc-sdk-plugins--controls-playback.c003 · doc · any-documented; прошивка — · Ширина контролов во второй колонке может подбираться автоматически, если у контрола она не задана явно. ↩

    • doc-sdk-plugins--controls-playback.c006 · doc · any-documented; прошивка — · Специфичные для Label данные GuiLabelDef содержат строковое поле caption.
    • doc-sdk-plugins--controls-playback.c008 · doc · any-documented; прошивка — · Для Label с прошивки 130820_b8+ поддержаны ключи smart, max_lines, lines_vgap и pars_vgap в GuiControlDef::params.
    • fw-tv188b-260827-0003-r24--php-framework.c104 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php задаёт перечисление GuiControlKind строковыми константами: GUI_CONTROL_LABEL='label', GUI_CONTROL_PROGRESS_BAR='progress_bar', GUI_CONTROL_COMBOBOX='combobox', GUI_CONTROL_TEXT_FIELD='text_field', GUI_CONTROL_BUTTON='button', GUI_CONTROL_VGAP='vgap'

    ↩

    • doc-sdk-plugins--controls-playback.c014 · doc · any-documented; прошивка — · GuiComboboxDef описывает combobox полями initial_value, value_caption_pairs, width, confirm_action и apply_action с необязательными значениями по умолчанию из объявления SDK.
    • fw-tv188b-260827-0003-r24--php-framework.c104 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php задаёт перечисление GuiControlKind строковыми константами: GUI_CONTROL_LABEL='label', GUI_CONTROL_PROGRESS_BAR='progress_bar', GUI_CONTROL_COMBOBOX='combobox', GUI_CONTROL_TEXT_FIELD='text_field', GUI_CONTROL_BUTTON='button', GUI_CONTROL_VGAP='vgap'

    ↩

    • doc-sdk-plugins--controls-playback.c020 · doc · any-documented; прошивка — · GuiTextFieldDef описывает текстовое поле восемью полями: initial_value, numeric, password, has_osk, always_active, width, confirm_action, apply_action.
    • fw-tv188b-260827-0003-r24--php-framework.c104 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php задаёт перечисление GuiControlKind строковыми константами: GUI_CONTROL_LABEL='label', GUI_CONTROL_PROGRESS_BAR='progress_bar', GUI_CONTROL_COMBOBOX='combobox', GUI_CONTROL_TEXT_FIELD='text_field', GUI_CONTROL_BUTTON='button', GUI_CONTROL_VGAP='vgap'

    ↩

    • doc-sdk-plugins--controls-playback.c029 · doc · any-documented; прошивка — · GuiButtonDef описывает кнопку полями caption, width (необязательное, default = -1, auto) и push_action (необязательное, default = null).
    • fw-tv188b-260827-0003-r24--php-framework.c104 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php задаёт перечисление GuiControlKind строковыми константами: GUI_CONTROL_LABEL='label', GUI_CONTROL_PROGRESS_BAR='progress_bar', GUI_CONTROL_COMBOBOX='combobox', GUI_CONTROL_TEXT_FIELD='text_field', GUI_CONTROL_BUTTON='button', GUI_CONTROL_VGAP='vgap'

    ↩

    • doc-sdk-plugins--controls-playback.c033 · doc · any-documented; прошивка — · Нерисуемый псевдоконтрол VGap с GuiVGapDef::vgap изменяет стандартное расстояние между соседними контролами: положительное значение увеличивает его, отрицательное уменьшает.
    • fw-tv188b-260827-0003-r24--php-framework.c104 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php задаёт перечисление GuiControlKind строковыми константами: GUI_CONTROL_LABEL='label', GUI_CONTROL_PROGRESS_BAR='progress_bar', GUI_CONTROL_COMBOBOX='combobox', GUI_CONTROL_TEXT_FIELD='text_field', GUI_CONTROL_BUTTON='button', GUI_CONTROL_VGAP='vgap'

    ↩

    • fw-tv188b-260827-0003-r24--php-framework.c104 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php задаёт перечисление GuiControlKind строковыми константами: GUI_CONTROL_LABEL='label', GUI_CONTROL_PROGRESS_BAR='progress_bar', GUI_CONTROL_COMBOBOX='combobox', GUI_CONTROL_TEXT_FIELD='text_field', GUI_CONTROL_BUTTON='button', GUI_CONTROL_VGAP='vgap'
    • fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c089 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ControlFactory::add_progress_bar строит GUI-элемент типа progress_bar; схема заполнения использует GuiControlDef::{name, title, kind, specific_def, params}; GuiProgressBarDef::{width, progress}. title=null, width=0, progress=0.
    • doc-sdk-plugins--controls-playback.c001 · doc · any-documented; прошивка — · Общая структура GuiControlDef содержит name, title, kind, specific_def и params; виды контролов перечислены в GuiControlKind.

    ↩

  5. doc-sdk-plugins--controls-playback.c020 · doc · any-documented; прошивка — · GuiTextFieldDef описывает текстовое поле восемью полями: initial_value, numeric, password, has_osk, always_active, width, confirm_action, apply_action. ↩↩

  6. doc-sdk-plugins--controls-playback.c022 · doc · any-documented; прошивка — · У текстового поля numeric = true разрешает добавлять только числовые символы; по умолчанию numeric = false. ↩

  7. doc-sdk-plugins--controls-playback.c023 · doc · any-documented; прошивка — · У текстового поля password = true визуализирует все символы как '*'; по умолчанию password = false. ↩

  8. doc-sdk-plugins--controls-playback.c024 · doc · any-documented; прошивка — · У текстового поля has_osk = true рисует экранную клавиатуру под полем (по умолчанию false); её высота не учитывается при раскладке, поэтому SDK предлагает добавлять VGap. ↩

  9. doc-sdk-plugins--controls-playback.c025 · doc · any-documented; прошивка — · У текстового поля always_active = true пропускает состояние focused: при получении фокуса контрол сразу переходит в active; по умолчанию always_active = false. ↩

  10. doc-sdk-plugins--controls-playback.c026 · doc · any-documented; прошивка — · Ширина текстового поля задаётся width; если он не указан, используется предопределённая ширина (в объявлении default = -1, auto). ↩

  11. doc-sdk-plugins--controls-playback.c027 · doc · any-documented; прошивка — · confirm_action текстового поля исполняется по ENTER в active до применения изменений: OK применяет текст и переводит поле в focused, иной статус откатывает изменения и оставляет поле в active. ↩

  12. doc-sdk-plugins--controls-playback.c028 · doc · any-documented; прошивка — · apply_action текстового поля исполняется после применения изменений; статус исполнения действия игнорируется. ↩

  13. doc-sdk-plugins--controls-playback.c014 · doc · any-documented; прошивка — · GuiComboboxDef описывает combobox полями initial_value, value_caption_pairs, width, confirm_action и apply_action с необязательными значениями по умолчанию из объявления SDK. ↩

  14. doc-sdk-plugins--controls-playback.c016 · doc · any-documented; прошивка — · Модель combobox value_caption_pairs состоит из пар choice_value/choice_caption: подпись показывается на экране, значение служит идентификатором выбора; initial_value задаёт первый выбранный choice_value. ↩↩

  15. doc-sdk-plugins--controls-playback.c017 · doc · any-documented; прошивка — · Ширина combobox не может быть меньше стандартной; если width не задан, используется стандартная ширина. ↩

  16. doc-sdk-plugins--controls-playback.c018 · doc · any-documented; прошивка — · confirm_action combobox исполняется по ENTER в раскрытом меню до применения выбора: статус OK применяет выбор и переводит контрол в focused, иной статус оставляет выбор неприменённым и контрол в active. ↩

  17. doc-sdk-plugins--controls-playback.c019 · doc · any-documented; прошивка — · apply_action combobox исполняется после применения изменений; статус исполнения этого действия игнорируется. ↩

  18. doc-sdk-plugins--controls-playback.c029 · doc · any-documented; прошивка — · GuiButtonDef описывает кнопку полями caption, width (необязательное, default = -1, auto) и push_action (необязательное, default = null). ↩

    • doc-sdk-plugins--controls-playback.c029 · doc · any-documented; прошивка — · GuiButtonDef описывает кнопку полями caption, width (необязательное, default = -1, auto) и push_action (необязательное, default = null).
    • doc-sdk-plugins--controls-playback.c031 · doc · any-documented; прошивка — · Если ширина кнопки width не указана, используется стандартная ширина.

    ↩

    • doc-sdk-plugins--controls-playback.c029 · doc · any-documented; прошивка — · GuiButtonDef описывает кнопку полями caption, width (необязательное, default = -1, auto) и push_action (необязательное, default = null).
    • doc-sdk-plugins--controls-playback.c030 · doc · any-documented; прошивка — · push_action кнопки, если задан, исполняется по ENTER на кнопке с фокусом.

    ↩

  19. doc-sdk-plugins--controls-playback.c032 · doc · any-documented; прошивка — · Ключ GuiControlDef::params.button_caption_centered управляет центрированием подписи кнопки вместо выравнивания влево. ↩

    • doc-sdk-plugins--controls-playback.c006 · doc · any-documented; прошивка — · Специфичные для Label данные GuiLabelDef содержат строковое поле caption.
    • doc-sdk-plugins--controls-playback.c007 · doc · any-documented; прошивка — · Обычный Label рисуется как фиксированная однострочная надпись; слишком длинный текст обрезается в середине.

    ↩

  20. doc-sdk-plugins--controls-playback.c008 · doc · any-documented; прошивка — · Для Label с прошивки 130820_b8+ поддержаны ключи smart, max_lines, lines_vgap и pars_vgap в GuiControlDef::params. ↩

  21. doc-sdk-plugins--controls-playback.c009 · doc · any-documented; прошивка — · У Label при max_lines > 1 текст автоматически разбивается на абзацы по ASCII 0xA (LF), а на строки — по пробелам. ↩

  22. doc-sdk-plugins--controls-playback.c010 · doc · any-documented; прошивка — · У Label lines_vgap задаёт вертикальный промежуток между строками в пикселях; по умолчанию он равен 0. ↩

    • doc-sdk-plugins--controls-playback.c011 · doc · any-documented; прошивка — · У Label pars_vgap задаёт вертикальный промежуток между абзацами в пикселях; по умолчанию он равен lines_vgap.
    • plg-dc-globaltv--gcomps-controls.c049 · code · unknown; прошивка — · ControlFactory содержит дополнительные методы add_smart_label (params smart=1), add_img_label (params max_lines/lines_vgab/pars_vgab), add_multiline_label (params max_lines, lines=2), add_button_close и add_close_dialog_and_apply_button_title.

    ↩

  23. doc-sdk-plugins--controls-playback.c012 · doc · any-documented; прошивка — · У Label smart = '1' включает режим одной строки с маленькими иконками и текстом, в котором caption интерпретируется как специальный XML. ↩

  24. doc-sdk-plugins--controls-playback.c013 · doc · any-documented; прошивка — · В XML smart Label элемент icon берёт URL из тела и width/height/dy из атрибутов; text берёт текст из тела и color/size/dy из атрибутов (color 0–23, size normal/small/tiny); у gap есть только width. ↩

  25. doc-sdk-plugins--controls-playback.c033 · doc · any-documented; прошивка — · Нерисуемый псевдоконтрол VGap с GuiVGapDef::vgap изменяет стандартное расстояние между соседними контролами: положительное значение увеличивает его, отрицательное уменьшает. ↩

  26. doc-sdk-plugins--gui-actions.c057 · doc · any-documented; прошивка — · initial_sel_ndx в ShowDialogAction — индекс первого выбранного контрола среди фокусируемых (combobox, кнопки, текстовые поля) ↩

    • doc-sdk-plugins--controls-playback.c015 · doc · any-documented; прошивка — · У combobox из состояния focused клавиша ENTER открывает активное раскрытое меню; в active перехватываются стрелки, ENTER и RETURN.
    • doc-sdk-plugins--controls-playback.c018 · doc · any-documented; прошивка — · confirm_action combobox исполняется по ENTER в раскрытом меню до применения выбора: статус OK применяет выбор и переводит контрол в focused, иной статус оставляет выбор неприменённым и контрол в active.

    ↩

    • doc-sdk-plugins--controls-playback.c021 · doc · any-documented; прошивка — · У текстового поля из состояния focused ENTER включает active; активный редактор перехватывает стрелки, ENTER, RETURN и некоторые другие клавиши.
    • doc-sdk-plugins--controls-playback.c025 · doc · any-documented; прошивка — · У текстового поля always_active = true пропускает состояние focused: при получении фокуса контрол сразу переходит в active; по умолчанию always_active = false.
    • doc-sdk-plugins--controls-playback.c027 · doc · any-documented; прошивка — · confirm_action текстового поля исполняется по ENTER в active до применения изменений: OK применяет текст и переводит поле в focused, иной статус откатывает изменения и оставляет поле в active.

    ↩

  27. doc-sdk-plugins--controls-playback.c030 · doc · any-documented; прошивка — · push_action кнопки, если задан, исполняется по ENTER на кнопке с фокусом. ↩

  28. fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c081 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ControlFactory::add_label строит GUI-элемент типа label; схема заполнения использует GuiControlDef::{name, title, kind, specific_def, params}; GuiLabelDef::{caption}. ↩

  29. fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c080 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ControlFactory::add_vgap строит GUI-элемент типа vgap; схема заполнения использует GuiControlDef::{kind, specific_def}; GuiVGapDef::{vgap}. ↩

  30. fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c082 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ControlFactory::add_button строит GUI-элемент типа button; схема заполнения использует GuiControlDef::{name, title, kind, specific_def, params}; GuiButtonDef::{caption, width, push_action}. button_caption_centered по умолчанию title==null; action_type=apply; timeout=60000, delay=20000. ↩

  31. fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c083 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ControlFactory::add_custom_button строит GUI-элемент типа button; схема заполнения использует GuiControlDef::{name, title, kind, specific_def, params}; GuiButtonDef::{caption, width, push_action}. button_caption_centered по умолчанию title==null; push_action передаёт вызывающий. ↩

  32. fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c084 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ControlFactory::add_close_dialog_button строит GUI-элемент типа button; схема заполнения использует GuiControlDef::{name, title, kind, specific_def, params}; GuiButtonDef::{caption, width, push_action}. name=close, title=null; центрирование по умолчанию true. ↩

  33. fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c085 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ControlFactory::add_close_dialog_and_apply_button строит GUI-элемент типа button; схема заполнения использует GuiControlDef::{name, title, kind, specific_def, params}; GuiButtonDef::{caption, width, push_action}. action_type=apply; push_action обёрнут в close_dialog_and_run. ↩

  34. fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c086 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ControlFactory::add_custom_close_dialog_and_apply_button строит GUI-элемент типа button; схема заполнения использует GuiControlDef::{name, title, kind, specific_def, params}; GuiButtonDef::{caption, width, push_action}. push_action=close_dialog_and_run(action); центрирование по умолчанию true. ↩

  35. fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c087 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ControlFactory::add_text_field строит GUI-элемент типа text_field; схема заполнения использует GuiControlDef::{name, title, kind, specific_def, params}; GuiTextFieldDef::{initial_value, numeric, password, has_osk, always_active, width, apply_action, confirm_action}. initial_value→string; numeric/password/has_osk/always_active/width→int; apply/confirm по отдельным флагам (default=false). ↩

  36. fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c088 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ControlFactory::add_combobox строит GUI-элемент типа combobox; схема заполнения использует GuiControlDef::{name, title, kind, specific_def, params}; GuiComboboxDef::{initial_value, value_caption_pairs, width, apply_action, confirm_action}. apply/confirm по отдельным флагам (default=false). ↩

  37. fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c089 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ControlFactory::add_progress_bar строит GUI-элемент типа progress_bar; схема заполнения использует GuiControlDef::{name, title, kind, specific_def, params}; GuiProgressBarDef::{width, progress}. title=null, width=0, progress=0. ↩

  38. fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c007 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::show_dialog строит действие show_dialog; схема заполнения использует ShowDialogActionData::{title, defs, close_by_return, preferred_width, min_item_title_width, max_height, initial_sel_ndx, actions, timer, params}. attrs: initial_sel_ndx=-1, actions=null, timer=null, min_item_title_width=0, max_height=0, params=null; close_by_return=false, preferred_width=0. ↩

  39. fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c011 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::show_title_dialog создаёт show_dialog с одной кнопкой ok/OK шириной 300, закрывающей диалог перед post_action. ↩

  40. fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c012 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::show_message_dialog создаёт show_dialog с label для каждого сообщения, vgap=-15 между сообщениями, vgap=30 и кнопкой ok/OK шириной 300. ↩

  41. fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c013 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::show_yes_no_dialog создаёт show_dialog с кнопками Yes (close_dialog_and_run(yes_action)) и No (close_dialog); close_by_return по умолчанию false. ↩

  42. fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c014 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::show_waiting_dialog создаёт show_dialog с timer(0) и действием post_action на GUI_EVENT_TIMER. ↩

    • fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c021 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::get_menu_item формирует или дополняет структуру с полями GuiMenuItemDef::{caption, action, icon_url}. icon_url только при истинности.
    • fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c020 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::get_menu_separator формирует или дополняет структуру с полями GuiMenuItemDef::{is_separator}. is_separator=1.

    ↩