⛏️ index : haiku.git

/*
 * Copyright 2019-2025, Andrew Lindesay <apl@lindesay.co.nz>.
 * All rights reserved. Distributed under the terms of the MIT License.
 */
#ifndef LANGUAGE_MENU_UTILS_H
#define LANGUAGE_MENU_UTILS_H


#include <vector>

#include <Array.h>
#include <Menu.h>

#include "Model.h"
#include "PackageInfo.h"


class LanguageMenuUtils {

public:
	static	void			AddLanguagesToMenu(
								const std::vector<LanguageRef>& languages,
								BMenu* menu);
	static	void			MarkLanguageInMenu(
								const BString& languageId,
								BMenu* menu);

private:
	static	int32			_AddLanguagesToMenu(
								const std::vector<LanguageRef>& languages,
								BMenu* menu, bool isPopular);
	static	void			_AddLanguageToMenu(
								const LanguageRef& language,
								BMenu* menu);
	static	void			_AddLanguageToMenu(
								const BString& code,
								const BString& name, BMenu* menu);

	static	int				_LanguagesPresentationCompareFn(const LanguageRef& l1,
								const LanguageRef& l2);
	static	bool			_IsLanguagePresentationBefore(const LanguageRef& l1,
								const LanguageRef& l2);
};


#endif // LANGUAGE_MENU_UTILS_H