MCPcopy Create free account
hub / github.com/Predelnik/DSpellCheck / do_plugin_menu_inclusion

Method do_plugin_menu_inclusion

src/ui/ContextMenuHandler.cpp:31–103  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

29#include "spellers/SpellerInterface.h"
30
31void ContextMenuHandler::do_plugin_menu_inclusion(bool invalidate) {
32 MENUITEMINFO mif;
33 HMENU dspellcheck_menu = get_this_plugin_menu();
34 if (dspellcheck_menu == nullptr)
35 return;
36 HMENU langs_sub_menu = get_langs_sub_menu();
37 if (langs_sub_menu != nullptr)
38 DestroyMenu(langs_sub_menu);
39 auto cur_lang = m_settings.get_active_language();
40 HMENU new_menu = CreatePopupMenu();
41 if (!invalidate) {
42 auto langs = m_speller_container.get_available_languages();
43 if (!langs.empty()) {
44 int i = 0;
45 for (auto &lang : langs) {
46 int checked = (cur_lang == lang.orig_name)
47 ? (MFT_RADIOCHECK | MF_CHECKED)
48 : MF_UNCHECKED;
49 bool res = AppendMenu(
50 new_menu, MF_STRING | checked,
51 get_use_allocated_ids()
52 ? i + get_langs_menu_id_start()
53 : MAKEWORD(i, menu_id::language_menu),
54 m_settings.data.language_name_style != LanguageNameStyle::original
55 ? lang.alias_name.c_str()
56 : lang.orig_name.c_str());
57 if (!res)
58 return;
59 ++i;
60 }
61 int checked = (cur_lang == multiple_language_alias)
62 ? (MFT_RADIOCHECK | MF_CHECKED)
63 : MF_UNCHECKED;
64 AppendMenu(new_menu, MF_STRING | checked,
65 get_use_allocated_ids()
66 ? menu_id::multiple_languages + get_langs_menu_id_start()
67 : MAKEWORD(menu_id::multiple_languages, menu_id::language_menu),
68 rc_str(IDS_MULTIPLE_LANGUAGES).c_str());
69 AppendMenu(new_menu, MF_SEPARATOR, 0, nullptr);
70 AppendMenu(new_menu, MF_STRING,
71 get_use_allocated_ids()
72 ? menu_id::customize_multiple_languages + get_langs_menu_id_start()
73 : MAKEWORD(menu_id::customize_multiple_languages, menu_id::language_menu),
74 rc_str(IDS_SET_MULTIPLE_LANG).c_str());
75 if (m_settings.data.active_speller_lib_id ==
76 SpellerId::hunspell) // Only Hunspell supported
77 {
78 AppendMenu(new_menu, MF_STRING,
79 get_use_allocated_ids()
80 ? menu_id::download_dictionaries + get_langs_menu_id_start()
81 : MAKEWORD(menu_id::download_dictionaries, menu_id::language_menu),
82 rc_str(IDS_DOWNLOAD_LANGS).c_str());
83 AppendMenu(new_menu, MF_STRING,
84 get_use_allocated_ids()
85 ? menu_id::remove_dictionaries + get_langs_menu_id_start()
86 : MAKEWORD(menu_id::remove_dictionaries, menu_id::language_menu),
87 rc_str(IDS_REMOVE_LANG).c_str());
88 }

Callers

nothing calls this directly

Calls 8

get_this_plugin_menuFunction · 0.85
get_langs_sub_menuFunction · 0.85
get_use_allocated_idsFunction · 0.85
get_langs_menu_id_startFunction · 0.85
rc_strFunction · 0.85
c_strMethod · 0.80
emptyMethod · 0.45

Tested by

no test coverage detected