Контролы диалогов и папок: виды, поля, состояния и фабрики¶
Редакция 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_exttv188b260827_0003_r24(code,android-dune-fw); код GlobalTV260130_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 |
-
doc-sdk-plugins--controls-playback.c001 · doc · any-documented; прошивка — · Общая структура GuiControlDef содержит name, title, kind, specific_def и params; виды контролов перечислены в GuiControlKind. ↩
-
doc-sdk-plugins--controls-playback.c005 · doc · any-documented; прошивка — · GuiControlDef::name задаёт идентификатор контрола, используемый для передачи его текущего значения действиям внутри контейнера. ↩
-
doc-sdk-plugins--controls-playback.c002 · doc · any-documented; прошивка — · В папках и диалогах с контролами элементы располагаются сверху вниз с левым выравниванием колонок: при наличии title он занимает первую колонку, а контрол — вторую; без title контрол находится в первой колонке. ↩
-
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.
-
doc-sdk-plugins--controls-playback.c020 · doc · any-documented; прошивка — · GuiTextFieldDef описывает текстовое поле восемью полями: initial_value, numeric, password, has_osk, always_active, width, confirm_action, apply_action. ↩↩
-
doc-sdk-plugins--controls-playback.c022 · doc · any-documented; прошивка — · У текстового поля numeric = true разрешает добавлять только числовые символы; по умолчанию numeric = false. ↩
-
doc-sdk-plugins--controls-playback.c023 · doc · any-documented; прошивка — · У текстового поля password = true визуализирует все символы как '*'; по умолчанию password = false. ↩
-
doc-sdk-plugins--controls-playback.c024 · doc · any-documented; прошивка — · У текстового поля has_osk = true рисует экранную клавиатуру под полем (по умолчанию false); её высота не учитывается при раскладке, поэтому SDK предлагает добавлять VGap. ↩
-
doc-sdk-plugins--controls-playback.c025 · doc · any-documented; прошивка — · У текстового поля always_active = true пропускает состояние focused: при получении фокуса контрол сразу переходит в active; по умолчанию always_active = false. ↩
-
doc-sdk-plugins--controls-playback.c026 · doc · any-documented; прошивка — · Ширина текстового поля задаётся width; если он не указан, используется предопределённая ширина (в объявлении default = -1, auto). ↩
-
doc-sdk-plugins--controls-playback.c027 · doc · any-documented; прошивка — · confirm_action текстового поля исполняется по ENTER в active до применения изменений: OK применяет текст и переводит поле в focused, иной статус откатывает изменения и оставляет поле в active. ↩
-
doc-sdk-plugins--controls-playback.c028 · doc · any-documented; прошивка — · apply_action текстового поля исполняется после применения изменений; статус исполнения действия игнорируется. ↩
-
doc-sdk-plugins--controls-playback.c014 · doc · any-documented; прошивка — · GuiComboboxDef описывает combobox полями initial_value, value_caption_pairs, width, confirm_action и apply_action с необязательными значениями по умолчанию из объявления SDK. ↩
-
doc-sdk-plugins--controls-playback.c016 · doc · any-documented; прошивка — · Модель combobox value_caption_pairs состоит из пар choice_value/choice_caption: подпись показывается на экране, значение служит идентификатором выбора; initial_value задаёт первый выбранный choice_value. ↩↩
-
doc-sdk-plugins--controls-playback.c017 · doc · any-documented; прошивка — · Ширина combobox не может быть меньше стандартной; если width не задан, используется стандартная ширина. ↩
-
doc-sdk-plugins--controls-playback.c018 · doc · any-documented; прошивка — · confirm_action combobox исполняется по ENTER в раскрытом меню до применения выбора: статус OK применяет выбор и переводит контрол в focused, иной статус оставляет выбор неприменённым и контрол в active. ↩
-
doc-sdk-plugins--controls-playback.c019 · doc · any-documented; прошивка — · apply_action combobox исполняется после применения изменений; статус исполнения этого действия игнорируется. ↩
-
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 на кнопке с фокусом.
-
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 рисуется как фиксированная однострочная надпись; слишком длинный текст обрезается в середине.
-
doc-sdk-plugins--controls-playback.c008 · doc · any-documented; прошивка — · Для Label с прошивки 130820_b8+ поддержаны ключи smart, max_lines, lines_vgap и pars_vgap в GuiControlDef::params. ↩
-
doc-sdk-plugins--controls-playback.c009 · doc · any-documented; прошивка — · У Label при max_lines > 1 текст автоматически разбивается на абзацы по ASCII 0xA (LF), а на строки — по пробелам. ↩
-
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.
-
doc-sdk-plugins--controls-playback.c012 · doc · any-documented; прошивка — · У Label smart = '1' включает режим одной строки с маленькими иконками и текстом, в котором caption интерпретируется как специальный XML. ↩
-
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. ↩
-
doc-sdk-plugins--controls-playback.c033 · doc · any-documented; прошивка — · Нерисуемый псевдоконтрол VGap с GuiVGapDef::vgap изменяет стандартное расстояние между соседними контролами: положительное значение увеличивает его, отрицательное уменьшает. ↩
-
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.
-
doc-sdk-plugins--controls-playback.c030 · doc · any-documented; прошивка — · push_action кнопки, если задан, исполняется по ENTER на кнопке с фокусом. ↩
-
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}. ↩
-
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}. ↩
-
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. ↩
-
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 передаёт вызывающий. ↩
-
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. ↩
-
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. ↩
-
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. ↩
-
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). ↩
-
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). ↩
-
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. ↩
-
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. ↩
-
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. ↩
-
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. ↩
-
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. ↩
-
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.