469
468
/* create exit button */
470
469
pBuf = create_themeicon(pTheme->Small_CANCEL_Icon, pWindow->dst,
471
WF_WIDGET_HAS_INFO_LABEL | WF_RESTORE_BACKGROUND);
472
pBuf->string16 = create_str16_from_char(_("Close Dialog (Esc)"), adj_font(12));
470
WF_WIDGET_HAS_INFO_LABEL | WF_RESTORE_BACKGROUND);
471
pBuf->info_label = create_str16_from_char(_("Close Dialog (Esc)"),
473
473
pBuf->action = cancel_SLD_cma_callback;
474
474
set_wstate(pBuf, FC_WS_NORMAL);
475
475
pBuf->key = SDLK_ESCAPE;
597
597
static int run_cma_once_callback(struct widget *pWidget)
599
599
if (Main.event.button.button == SDL_BUTTON_LEFT) {
600
struct cm_result result;
602
update_city_cma_dialog();
600
struct cm_result *result;
602
update_city_cma_dialog();
603
603
/* fill in result label */
604
cm_query_result(pCma->pCity, &pCma->edited_cm_parm, &result);
605
cma_apply_result(pCma->pCity, &result);
604
result = cm_result_new(pCma->pCity);
605
cm_query_result(pCma->pCity, &pCma->edited_cm_parm, result);
606
cma_apply_result(pCma->pCity, result);
607
cm_result_destroy(result);
684
679
bool cma_presets_exist = cmafec_preset_num() > 0;
685
680
bool client_under_control = can_client_issue_orders();
686
681
bool controlled = cma_is_city_under_agent(pCma->pCity, NULL);
687
struct cm_result result;
682
struct cm_result *result = cm_result_new(pCma->pCity);;
689
684
/* redraw window background and exit button */
690
685
redraw_group(pBuf->prev, pBuf, 0);
692
687
/* fill in result label */
693
cm_result_from_main_map(&result, pCma->pCity, TRUE);
695
if(result.found_a_valid) {
696
/* redraw resources */
697
pCma->pResult = &result;
699
refresh_city_resource_map(pBuf->dst->surface, pBuf->area.x + adj_size(22),
700
pBuf->area.y + adj_size(31), pCma->pCity, is_worker);
702
pCma->pResult = NULL;
688
cm_result_from_main_map(result, pCma->pCity);
690
if(result->found_a_valid) {
704
691
/* redraw Citizens */
705
692
count = pCma->pCity->size;
716
703
dst.x = pBuf->area.x + adj_size(7);
719
i < count - (result.specialists[SP_ELVIS]
720
+ result.specialists[SP_SCIENTIST]
721
+ result.specialists[SP_TAXMAN]); i++) {
706
i < count - (result->specialists[SP_ELVIS]
707
+ result->specialists[SP_SCIENTIST]
708
+ result->specialists[SP_TAXMAN]); i++) {
722
709
pText = adj_surf(get_citizen_surface(CITIZEN_CONTENT, i));
723
710
alphablit(pText, NULL, pBuf->dst->surface, &dst);
727
714
pText = get_tax_surface(O_LUXURY);
728
for (i = 0; i < result.specialists[SP_ELVIS]; i++) {
715
for (i = 0; i < result->specialists[SP_ELVIS]; i++) {
729
716
alphablit(pText, NULL, pBuf->dst->surface, &dst);
733
720
pText = get_tax_surface(O_GOLD);
734
for (i = 0; i < result.specialists[SP_TAXMAN]; i++) {
721
for (i = 0; i < result->specialists[SP_TAXMAN]; i++) {
735
722
alphablit(pText, NULL, pBuf->dst->surface, &dst);
739
726
pText = get_tax_surface(O_SCIENCE);
740
for (i = 0; i < result.specialists[SP_SCIENTIST]; i++) {
727
for (i = 0; i < result->specialists[SP_SCIENTIST]; i++) {
741
728
alphablit(pText, NULL, pBuf->dst->surface, &dst);
801
789
pBuf = pBuf->prev;
802
if(client_under_control && result.found_a_valid && !controlled) {
790
if(client_under_control && result->found_a_valid && !controlled) {
803
791
set_wstate(pBuf, FC_WS_NORMAL);
805
793
set_wstate(pBuf, FC_WS_DISABLED);
809
797
pBuf = pBuf->prev;
810
if(client_under_control && result.found_a_valid && !controlled) {
798
if(client_under_control && result->found_a_valid && !controlled) {
811
799
set_wstate(pBuf, FC_WS_NORMAL);
813
801
set_wstate(pBuf, FC_WS_DISABLED);
848
838
pCma->pCity = pCity;
849
839
pCma->pDlg = fc_calloc(1, sizeof(struct SMALL_DLG));
850
840
pCma->pAdv = NULL;
851
pCma->pResult = NULL;
852
841
pCity_Map = get_scaled_city_map(pCity);
854
843
cmafec_get_fe_parameter(pCity, &pCma->edited_cm_parm);
856
845
/* --------------------------- */
858
my_snprintf(cBuf, sizeof(cBuf),
847
fc_snprintf(cBuf, sizeof(cBuf),
859
848
_("City of %s (Population %s citizens) : %s"),
860
849
city_name(pCity),
861
850
population_to_text(city_population(pCity)),
877
866
/* create exit button */
878
867
pBuf = create_themeicon(pTheme->Small_CANCEL_Icon, pWindow->dst,
879
WF_WIDGET_HAS_INFO_LABEL | WF_RESTORE_BACKGROUND);
880
pBuf->string16 = create_str16_from_char(_("Close Dialog (Esc)"), adj_font(12));
868
WF_WIDGET_HAS_INFO_LABEL | WF_RESTORE_BACKGROUND);
869
pBuf->info_label = create_str16_from_char(_("Close Dialog (Esc)"),
881
871
pBuf->action = exit_cma_dialog_callback;
882
872
set_wstate(pBuf, FC_WS_NORMAL);
883
873
pBuf->key = SDLK_ESCAPE;
971
961
/* save as ... */
972
962
pBuf = create_themeicon(pTheme->SAVE_Icon, pWindow->dst,
973
(WF_RESTORE_BACKGROUND|WF_WIDGET_HAS_INFO_LABEL|WF_FREE_STRING));
963
WF_RESTORE_BACKGROUND |WF_WIDGET_HAS_INFO_LABEL);
975
964
pBuf->action = save_cma_callback;
976
pBuf->string16 = create_str16_from_char(_("Save settings as..."), adj_font(10));
965
pBuf->info_label = create_str16_from_char(_("Save settings as..."),
978
968
add_to_gui_list(ID_ICON, pBuf);
980
970
/* load settings */
981
971
pBuf = create_themeicon(pTheme->LOAD_Icon, pWindow->dst,
982
(WF_RESTORE_BACKGROUND|WF_WIDGET_HAS_INFO_LABEL|WF_FREE_STRING));
972
WF_RESTORE_BACKGROUND | WF_WIDGET_HAS_INFO_LABEL);
984
973
pBuf->action = load_cma_callback;
985
pBuf->string16 = create_str16_from_char(_("Load settings"), adj_font(10));
974
pBuf->info_label = create_str16_from_char(_("Load settings"),
987
977
add_to_gui_list(ID_ICON, pBuf);
989
979
/* del settings */
990
980
pBuf = create_themeicon(pTheme->DELETE_Icon, pWindow->dst,
991
(WF_RESTORE_BACKGROUND|WF_WIDGET_HAS_INFO_LABEL|WF_FREE_STRING));
981
WF_RESTORE_BACKGROUND | WF_WIDGET_HAS_INFO_LABEL);
993
982
pBuf->action = del_cma_callback;
994
pBuf->string16 = create_str16_from_char(_("Delete settings"), adj_font(10));
983
pBuf->info_label = create_str16_from_char(_("Delete settings"),
996
986
add_to_gui_list(ID_ICON, pBuf);
999
989
pBuf = create_themeicon(pTheme->QPROD_Icon, pWindow->dst,
1000
(WF_RESTORE_BACKGROUND|WF_WIDGET_HAS_INFO_LABEL|WF_FREE_STRING));
990
WF_RESTORE_BACKGROUND | WF_WIDGET_HAS_INFO_LABEL);
1002
991
pBuf->action = run_cma_callback;
1003
pBuf->string16 = create_str16_from_char(_("Control city"), adj_font(10));
992
pBuf->info_label = create_str16_from_char(_("Control city"), adj_font(10));
1005
994
add_to_gui_list(ID_ICON, pBuf);
1007
996
/* run cma onece */
1008
997
pBuf = create_themeicon(pTheme->FindCity_Icon, pWindow->dst,
1009
(WF_RESTORE_BACKGROUND|WF_WIDGET_HAS_INFO_LABEL|WF_FREE_STRING));
998
WF_RESTORE_BACKGROUND | WF_WIDGET_HAS_INFO_LABEL);
1011
999
pBuf->action = run_cma_once_callback;
1012
pBuf->string16 = create_str16_from_char(_("Apply once"), adj_font(10));
1000
pBuf->info_label = create_str16_from_char(_("Apply once"), adj_font(10));
1014
1002
add_to_gui_list(ID_ICON, pBuf);
1016
1004
/* del settings */
1017
pBuf = create_themeicon(pTheme->Support_Icon, pWindow->dst,
1018
(WF_RESTORE_BACKGROUND|WF_WIDGET_HAS_INFO_LABEL|WF_FREE_STRING));
1005
pBuf = create_themeicon(pTheme->Support_Icon, pWindow->dst,
1006
WF_RESTORE_BACKGROUND | WF_WIDGET_HAS_INFO_LABEL);
1020
1007
pBuf->action = stop_cma_callback;
1021
pBuf->string16 = create_str16_from_char(_("Release city"), adj_font(10));
1008
pBuf->info_label = create_str16_from_char(_("Release city"), adj_font(10));
1023
1010
add_to_gui_list(ID_ICON, pBuf);
1025
1012
/* -------------------------------- */