1/* 2 * Copyright 2019-2024, Andrew Lindesay <apl@lindesay.co.nz>. 3 * All rights reserved. Distributed under the terms of the MIT License. 4 */ 5#ifndef LANGUAGE_MENU_UTILS_H 6#define LANGUAGE_MENU_UTILS_H 7 8 9#include <vector> 10 11#include <Menu.h> 12 13#include "Model.h" 14#include "PackageInfo.h" 15 16 17class LanguageMenuUtils { 18 19public: 20 static void AddLanguagesToMenu( 21 const LanguageModel* languagesModel, 22 BMenu* menu); 23 static void MarkLanguageInMenu( 24 const BString& languageId, 25 BMenu* menu); 26 27private: 28 static int32 _AddLanguagesToMenu( 29 const std::vector<LanguageRef>& languages, 30 BMenu* menu, bool isPopular); 31 static void _AddLanguageToMenu( 32 const LanguageRef& language, 33 BMenu* menu); 34 static void _AddLanguageToMenu( 35 const BString& code, 36 const BString& name, BMenu* menu); 37 38 static int _LanguagesPresentationCompareFn(const LanguageRef& l1, 39 const LanguageRef& l2); 40 static bool _IsLanguagePresentationBefore(const LanguageRef& l1, 41 const LanguageRef& l2); 42}; 43 44 45#endif // LANGUAGE_MENU_UTILS_H 46