Skip to content

Commit c05e1b7

Browse files
author
s.kushnirenko
committed
Register figure info windows from JS and unify section() API.
Move animal figure panel to script registration, collapse help/close ES handlers onto parent tags, and route get_section() through section().
1 parent 362c612 commit c05e1b7

24 files changed

Lines changed: 97 additions & 69 deletions

docs/ui_es_only_migration.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -226,8 +226,11 @@ Empire override works anytime without this.
226226

227227
- [x] **H6a** Initially kept named JS defaults; superseded by H6b.
228228
- [x] **H6b** `help_button` / `close_button` default to `onclick_event: "help"` /
229-
`"go_back"`; shared multi-section ES in `ui_common.js` calls
230-
`window_show_help` / `window_go_back`. Custom windows keep own handlers
229+
`"go_back"`; shared parent ES in `ui_common.js`
230+
(`building_info_window` / `advisor_window` / `modal_window` / `window` /
231+
`terrain_info_window` / `figure_info_window` / `ui_window`) calls `window_show_help` /
232+
`window_go_back`. Tag new windows with one of those parents instead of
233+
extending per-section lists. Custom windows keep own handlers
231234
(empire `close`/`help`, messages help, resource settings help, festival help).
232235
- [x] **H6c** CI: `.github/workflows/akhenaten_ui_es_only.yml` greps
233236
`onclick:\s*function`, `\.onclick\s*=`, `onclick:\s*\w+\(`.

src/graphics/elements/ui.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1084,7 +1084,8 @@ namespace ui {
10841084
}
10851085

10861086
/** Script/autoconfig window id; empty if this root widget was never load()'d. */
1087-
virtual xstring get_section() const { return io.name; }
1087+
virtual xstring section() const { return io.name; }
1088+
virtual xstring get_section() const { return section(); }
10881089
};
10891090

10901091
widget* get_current_widget();

src/scripts/ui.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import ui_logo_screen
77
import ui_advisors_window
88
import ui_terrain_info
99
import ui_figure_info
10+
import ui_figure_animal_window
1011
import ui_hold_festival_window
1112
import ui_festival_square_window
1213
import ui_advisor_entertainment

src/scripts/ui_batalion_window.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
log_info("akhenaten: ui batalion info window started")
22

3+
[es=ui_window]
34
batalion_info_window {
45
ui {
56
background : outer_panel({size [34, 24]}),

src/scripts/ui_common.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -221,13 +221,12 @@ function next_button(config) { var i = image_button({size[27, 27], pack:PACK_GEN
221221
function advisor_button(config) { var i = image_button({pack:PACK_GENERAL, id:106, offset:12, tooltip[68, 41]}); return ui_extend(i, config) }
222222

223223

224-
// H6b: default help/close ES for helper buttons (override per window when needed).
225-
[es=(advisor_chief_window, help), es=(advisor_education_window, help), es=(advisor_entertainment_window, help), es=(advisor_financial_window, help), es=(advisor_health_window, help), es=(advisor_housing_window, help), es=(advisor_imperial_window, help), es=(advisor_labors_window, help), es=(advisor_military_window, help), es=(advisor_monuments_window, help), es=(advisor_population_window, help), es=(advisor_ratings_window, help), es=(advisor_religion_window, help), es=(advisor_trade_window, help), es=(artisans_guild_info_window, help), es=(batalion_info_window, help), es=(bazaar_info_window, help), es=(bazaar_orders_window, help), es=(bricklayers_guild_info_window, help), es=(brickworks_info_window, help), es=(building_info_window, help), es=(carpenters_guild_info_window, help), es=(dock_orders_window, help), es=(festival_square_info_window, help), es=(figure_enemy_info_window, help), es=(figure_info_window, help), es=(figure_market_buyer_window, help), es=(figure_trader_info_window, help), es=(figure_transport_ship_info_window, help), es=(figure_warship_info_window, help), es=(granary_orders_window, help), es=(health_info_window, help), es=(industry_office_info_window, help), es=(info_window_abu_simbel, help), es=(info_window_alexandria_library, help), es=(info_window_architect_post, help), es=(info_window_bandstand, help), es=(info_window_booth, help), es=(info_window_bullfight, help), es=(info_window_burning_ruin, help), es=(info_window_caesareum, help), es=(info_window_courthouse, help), es=(info_window_dock, help), es=(info_window_education, help), es=(info_window_entertainment, help), es=(info_window_farm, help), es=(info_window_ferry, help), es=(info_window_fishing_wharf, help), es=(info_window_food_mill, help), es=(info_window_fort, help), es=(info_window_gatehouse, help), es=(info_window_granary, help), es=(info_window_house, help), es=(info_window_hunting_lodge, help), es=(info_window_lamp_workshop, help), es=(info_window_mansion, help), es=(info_window_mausoleum, help), es=(info_window_milacademy, help), es=(info_window_mission_post, help), es=(info_window_mortuary, help), es=(info_window_native_crops, help), es=(info_window_native_hut, help), es=(info_window_native_meeting, help), es=(info_window_obelisk, help), es=(info_window_oracle, help), es=(info_window_palace, help), es=(info_window_pavilion, help), es=(info_window_pharos_lighthouse, help), es=(info_window_police_station, help), es=(info_window_pyramid, help), es=(info_window_recruiter, help), es=(info_window_roadblock, help), es=(info_window_senet_house, help), es=(info_window_shrine, help), es=(info_window_sphinx, help), es=(info_window_statue, help), es=(info_window_storageyard, help), es=(info_window_sun_temple, help), es=(info_window_temple, help), es=(info_window_temple_complex, help), es=(info_window_tower, help), es=(info_window_triumphal_arch, help), es=(info_window_vacant_lot, help), es=(info_window_water_lift, help), es=(info_window_water_supply, help), es=(info_window_work_camp, help), es=(info_window_zoo, help), es=(infrastructure_common_info_window, help), es=(message_dialog_window_disaster, help), es=(message_dialog_window_emigration, help), es=(message_dialog_window_general, help), es=(message_dialog_window_god, help), es=(message_dialog_window_image, help), es=(message_dialog_window_imperial, help), es=(message_dialog_window_invasion, help), es=(message_dialog_window_price_change, help), es=(message_dialog_window_trade_change, help), es=(message_dialog_window_troop_request, help), es=(message_dialog_window_tutorial, help), es=(mortuary_info_window, help), es=(raw_material_info_window, help), es=(roadblock_orders_window, help), es=(scribal_school_info_window, help), es=(shipyard_info_window, help), es=(stonemason_guild_info_window, help), es=(storage_yard_orders_window, help), es=(taxcollector_info_window, help), es=(terrain_info_window, help), es=(warshipwharf_info_window, help), es=(well_info_window, help), es=(workshop_info_window, help)]
224+
[es=(building_info_window, help), es=(advisor_window, help), es=(modal_window, help), es=(window, help), es=(terrain_info_window, help), es=(figure_info_window, help), es=(ui_window, help)]
226225
function ui_help_button_on_help(window) {
227226
window_show_help()
228227
}
229228

230-
[es=(artisans_guild_info_window, go_back), es=(batalion_info_window, go_back), es=(bazaar_info_window, go_back), es=(bazaar_orders_window, go_back), es=(bricklayers_guild_info_window, go_back), es=(brickworks_info_window, go_back), es=(building_info_window, go_back), es=(carpenters_guild_info_window, go_back), es=(dock_orders_window, go_back), es=(festival_square_info_window, go_back), es=(figure_enemy_info_window, go_back), es=(figure_info_window, go_back), es=(figure_market_buyer_window, go_back), es=(figure_trader_info_window, go_back), es=(figure_transport_ship_info_window, go_back), es=(figure_warship_info_window, go_back), es=(granary_orders_window, go_back), es=(health_info_window, go_back), es=(industry_office_info_window, go_back), es=(info_window_abu_simbel, go_back), es=(info_window_alexandria_library, go_back), es=(info_window_architect_post, go_back), es=(info_window_bandstand, go_back), es=(info_window_booth, go_back), es=(info_window_bullfight, go_back), es=(info_window_burning_ruin, go_back), es=(info_window_caesareum, go_back), es=(info_window_courthouse, go_back), es=(info_window_dock, go_back), es=(info_window_education, go_back), es=(info_window_entertainment, go_back), es=(info_window_farm, go_back), es=(info_window_ferry, go_back), es=(info_window_fishing_wharf, go_back), es=(info_window_food_mill, go_back), es=(info_window_fort, go_back), es=(info_window_gatehouse, go_back), es=(info_window_granary, go_back), es=(info_window_house, go_back), es=(info_window_hunting_lodge, go_back), es=(info_window_lamp_workshop, go_back), es=(info_window_mansion, go_back), es=(info_window_mausoleum, go_back), es=(info_window_milacademy, go_back), es=(info_window_mission_post, go_back), es=(info_window_mortuary, go_back), es=(info_window_native_crops, go_back), es=(info_window_native_hut, go_back), es=(info_window_native_meeting, go_back), es=(info_window_obelisk, go_back), es=(info_window_oracle, go_back), es=(info_window_palace, go_back), es=(info_window_pavilion, go_back), es=(info_window_pharos_lighthouse, go_back), es=(info_window_police_station, go_back), es=(info_window_pyramid, go_back), es=(info_window_recruiter, go_back), es=(info_window_roadblock, go_back), es=(info_window_senet_house, go_back), es=(info_window_shrine, go_back), es=(info_window_sphinx, go_back), es=(info_window_statue, go_back), es=(info_window_storageyard, go_back), es=(info_window_sun_temple, go_back), es=(info_window_temple, go_back), es=(info_window_temple_complex, go_back), es=(info_window_tower, go_back), es=(info_window_triumphal_arch, go_back), es=(info_window_vacant_lot, go_back), es=(info_window_water_lift, go_back), es=(info_window_water_supply, go_back), es=(info_window_work_camp, go_back), es=(info_window_zoo, go_back), es=(infrastructure_common_info_window, go_back), es=(message_dialog_window_disaster, go_back), es=(message_dialog_window_emigration, go_back), es=(message_dialog_window_general, go_back), es=(message_dialog_window_god, go_back), es=(message_dialog_window_image, go_back), es=(message_dialog_window_imperial, go_back), es=(message_dialog_window_invasion, go_back), es=(message_dialog_window_price_change, go_back), es=(message_dialog_window_trade_change, go_back), es=(message_dialog_window_troop_request, go_back), es=(message_dialog_window_tutorial, go_back), es=(message_list_window, go_back), es=(mortuary_info_window, go_back), es=(raw_material_info_window, go_back), es=(roadblock_orders_window, go_back), es=(scribal_school_info_window, go_back), es=(shipyard_info_window, go_back), es=(stonemason_guild_info_window, go_back), es=(storage_yard_orders_window, go_back), es=(taxcollector_info_window, go_back), es=(terrain_info_window, go_back), es=(trade_resource_settings_window, go_back), es=(warshipwharf_info_window, go_back), es=(well_info_window, go_back), es=(workshop_info_window, go_back)]
229+
[es=(building_info_window, go_back), es=(modal_window, go_back), es=(window, go_back), es=(terrain_info_window, go_back), es=(figure_info_window, go_back), es=(ui_window, go_back)]
231230
function ui_close_button_on_go_back(window) {
232231
window_go_back()
233-
}
232+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
log_info("akhenaten: ui figure animal window started")
2+
3+
[es=figure_info_window]
4+
figure_animal_info_window {
5+
related_figures [FIGURE_BIRDS, FIGURE_OSTRICH, FIGURE_ANTELOPE]
6+
ui : baseui(figure_info_window, {
7+
})
8+
}

src/scripts/ui_figure_enemy_window.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
log_info("akhenaten: city sounds started")
22

3+
[es=ui_window]
34
figure_enemy_info_window = {
45
ui : {
56
background : outer_panel({size: [29, 22]}),

src/scripts/ui_figure_info.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ def_object_info {
77
]
88
}
99

10+
[es=ui_window]
1011
figure_info_window {
1112
ui {
1213
background : outer_panel({size [29, 22]})

src/scripts/ui_figure_trader_window.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
log_info("akhenaten: ui trader info window started")
22

3+
[es=ui_window]
34
figure_trader_info_window {
45
related_figures [FIGURE_TRADE_SHIP, FIGURE_TRADE_CARAVAN, FIGURE_TRADE_CARAVAN_DONKEY]
56
ui {

src/scripts/ui_market_buyer_window.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
log_info("akhenaten: ui market buyer window started")
22

3+
[es=ui_window]
34
figure_market_buyer_window {
45
related_figures [FIGURE_MARKET_BUYER]
56
ui {

0 commit comments

Comments
 (0)