| 700 | } |
| 701 | |
| 702 | cc_result Window_OpenFileDialog(const struct OpenFileDialogArgs* args) { |
| 703 | const char* const* fileExts = args->filters; |
| 704 | cc_string filters; char buffer[NATIVE_STR_LEN]; |
| 705 | int i; |
| 706 | |
| 707 | /* Filter tokens are \0 separated - e.g. "Maps (*.cw;*.dat)\0*.cw;*.dat\0 */ |
| 708 | String_InitArray(filters, buffer); |
| 709 | String_Format1(&filters, "%c (", args->description); |
| 710 | for (i = 0; fileExts[i]; i++) |
| 711 | { |
| 712 | if (i) String_Append(&filters, ';'); |
| 713 | String_Format1(&filters, "*%c", fileExts[i]); |
| 714 | } |
| 715 | String_Append(&filters, ')'); |
| 716 | String_Append(&filters, '\0'); |
| 717 | |
| 718 | for (i = 0; fileExts[i]; i++) |
| 719 | { |
| 720 | if (i) String_Append(&filters, ';'); |
| 721 | String_Format1(&filters, "*%c", fileExts[i]); |
| 722 | } |
| 723 | String_Append(&filters, '\0'); |
| 724 | |
| 725 | return OpenSaveFileDialog(&filters, args->Callback, true, fileExts, &String_Empty); |
| 726 | } |
| 727 | |
| 728 | cc_result Window_SaveFileDialog(const struct SaveFileDialogArgs* args) { |
| 729 | const char* const* titles = args->titles; |
nothing calls this directly
no test coverage detected