void SrmmMenu_Load() { StatusIconData sid = { sizeof(sid) }; sid.szModule = MODULNAME; sid.dwId = 0; sid.szTooltip = LPGEN("Popup Mode: Auto"); sid.hIcon = sid.hIconDisabled = IcoLib_GetIcon(ICO_POPUP_ON,0); Srmm_AddIcon(&sid); sid.dwId = 1; sid.szTooltip = LPGEN("Popup Mode: Favorite"); sid.hIcon = sid.hIconDisabled = IcoLib_GetIcon(ICO_FAV,0); Srmm_AddIcon(&sid); sid.dwId = 2; sid.szTooltip = LPGEN("Popup Mode: Ignore fullscreen"); sid.hIcon = sid.hIconDisabled = IcoLib_GetIcon(ICO_FULLSCREEN,0); Srmm_AddIcon(&sid); sid.dwId = 3; sid.szTooltip = LPGEN("Popup Mode: Block contact"); sid.hIcon = sid.hIconDisabled = IcoLib_GetIcon(ICO_POPUP_OFF,0); Srmm_AddIcon(&sid); HookEvent(ME_MSG_ICONPRESSED, SrmmMenu_ProcessIconClick); HookEvent(ME_MSG_WINDOWEVENT, SrmmMenu_ProcessEvent); }
int Meta_ModulesLoaded(WPARAM wParam, LPARAM lParam) { HookEvent(ME_CLIST_PREBUILDCONTACTMENU, Meta_ModifyMenu); // hook srmm window close/open events HookEvent(ME_MSG_WINDOWEVENT, Meta_MessageWindowEvent); HookEvent(ME_MSG_ICONPRESSED, Meta_SrmmIconClicked); ////////////////////////////////////////////////////////////////////////////////////// InitMenus(); // create srmm icon StatusIconData sid = { sizeof(sid) }; sid.szModule = META_PROTO; sid.hIcon = LoadSkinnedProtoIcon(META_PROTO, ID_STATUS_ONLINE); Srmm_AddIcon(&sid); // hook protocol nudge events to forward to subcontacts int numberOfProtocols; PROTOACCOUNT ** ppProtocolDescriptors; ProtoEnumAccounts(&numberOfProtocols, &ppProtocolDescriptors); for (int i = 0; i < numberOfProtocols; i++) if (strcmp(ppProtocolDescriptors[i]->szModuleName, META_PROTO)) { char str[MAXMODULELABELLENGTH + 10]; mir_snprintf(str, SIZEOF(str), "%s/Nudge", ppProtocolDescriptors[i]->szModuleName); HookEvent(str, NudgeRecieved); } return 0; }
// add icon to srmm status icons void SrmmMenu_Load() { StatusIconData sid = { sizeof(sid) }; sid.szModule = MODULE; sid.dwId = 0; sid.szTooltip = LPGEN("History Enabled"); sid.hIcon = sid.hIconDisabled = hIconKeep; Srmm_AddIcon(&sid); sid.dwId = 1; sid.szTooltip = LPGEN("History Disabled"); sid.hIcon = sid.hIconDisabled = hIconRemove; Srmm_AddIcon(&sid); // hook the window events so that we can can change the status of the icon HookEvent(ME_MSG_WINDOWEVENT, WindowEvent); HookEvent(ME_MSG_ICONPRESSED, IconPressed); }
static void RegisterStatusIcons() { StatusIconData sid = { sizeof(sid) }; sid.szModule = SRMMMOD; sid.dwId = 1; sid.hIcon = GetCachedIcon("scriver_TYPING"); sid.hIconDisabled = GetCachedIcon("scriver_TYPINGOFF"); sid.flags = MBF_HIDDEN; Srmm_AddIcon(&sid); }
int OnModulesLoaded(WPARAM, LPARAM) { int sweep = db_get_b(NULL, ModuleName, "SweepHistory", 0); StatusIconData sid = { sizeof(sid) }; sid.szModule = ModuleName; sid.hIcon = LoadIconEx("actG"); if (sweep == 0) sid.szTooltip = LPGEN("Keep all events"); else if (sweep == 1) sid.szTooltip = time_stamp_strings[db_get_b(NULL, ModuleName, "StartupShutdownOlder", 0)]; else if (sweep == 2) sid.szTooltip = keep_strings[db_get_b(NULL, ModuleName, "StartupShutdownKeep", 0)]; else if (sweep == 3) sid.szTooltip = LPGEN("Delete all events"); sid.flags = MBF_HIDDEN; Srmm_AddIcon(&sid); sid.dwId = 1; sid.hIcon = LoadIconEx("act1"); sid.szTooltip = time_stamp_strings[db_get_b(NULL, ModuleName, "StartupShutdownOlder", 0)]; sid.flags = MBF_HIDDEN; Srmm_AddIcon(&sid); sid.dwId = 2; sid.hIcon = LoadIconEx("act2"); sid.szTooltip = keep_strings[db_get_b(NULL, ModuleName, "StartupShutdownKeep", 0)]; sid.flags = MBF_HIDDEN; Srmm_AddIcon(&sid); sid.dwId = 3; sid.hIcon = LoadIconEx("actDel"); sid.szTooltip = LPGEN("Delete all events"); sid.flags = MBF_HIDDEN; Srmm_AddIcon(&sid); HookEvent(ME_MSG_WINDOWEVENT, OnWindowEvent); HookEvent(ME_MSG_ICONPRESSED, OnIconPressed); return 0; }
static int ExtraImgModulesLoaded(WPARAM wParam,LPARAM lParam) { /* Status Icon */ StatusIconData sid = { sizeof(sid) }; sid.szModule = MODULENAME; // dwID = 0 sid.flags = MBF_HIDDEN; Srmm_AddIcon(&sid); HookEvent(ME_MSG_WINDOWEVENT, MsgWndEvent); return 0; }
void SvcFlagsOnModulesLoaded() { /* Status Icon */ StatusIconData sid = { sizeof(sid) }; sid.szModule = MODNAMEFLAGS; if (!g_bShowStatusIconFlag) sid.flags = MBF_HIDDEN; Srmm_AddIcon(&sid); HookEvent(ME_DB_CONTACT_SETTINGCHANGED, OnContactSettingChanged); HookEvent(ME_CLIST_EXTRA_IMAGE_APPLY, OnCListApplyIcons); HookEvent(ME_MSG_WINDOWEVENT, OnMsgWndEvent); }
void InitSRMMIcons() { // add icon to srmm status icons StatusIconData sid = { sizeof(sid) }; sid.szModule = MODULENAME; sid.flags = MBF_DISABLED|MBF_HIDDEN; // Native sid.dwId = MODE_NATIVE; sid.hIcon = mode2icon(MODE_NATIVE|SECURED,3); sid.hIconDisabled = mode2icon(MODE_NATIVE,3); sid.szTooltip = LPGEN("SecureIM [Native]"); Srmm_AddIcon(&sid); // PGP sid.dwId = MODE_PGP; sid.hIcon = mode2icon(MODE_PGP|SECURED,3); sid.hIconDisabled = mode2icon(MODE_PGP,3); sid.szTooltip = LPGEN("SecureIM [PGP]"); Srmm_AddIcon(&sid); // GPG sid.dwId = MODE_GPG; sid.hIcon = mode2icon(MODE_GPG|SECURED,3); sid.hIconDisabled = mode2icon(MODE_GPG,3); sid.szTooltip = LPGEN("SecureIM [GPG]"); Srmm_AddIcon(&sid); // RSAAES sid.dwId = MODE_RSAAES; sid.hIcon = mode2icon(MODE_RSAAES|SECURED,3); sid.hIconDisabled = mode2icon(MODE_RSAAES,3); sid.szTooltip = LPGEN("SecureIM [RSA/AES]"); Srmm_AddIcon(&sid); // hook the window events so that we can can change the status of the icon HookEvent(ME_MSG_WINDOWEVENT, onWindowEvent); HookEvent(ME_MSG_ICONPRESSED, onIconPressed); }
int OnModulesLoaded(WPARAM, LPARAM) { HookEvent(ME_MSG_WINDOWEVENT, OnSrmmWindowEvent); HookEvent(ME_PROTO_ACK, OnProtoAck); HookEvent(ME_DB_EVENT_FILTER_ADD, OnEventFilterAdd); // IcoLib support for (size_t i = 0; i < _countof(Icons); i++) Icon_Register(g_hInst, MODULENAME, &Icons[i], 1); StatusIconData sid = { sizeof(sid) }; sid.szModule = MODULENAME; sid.flags = MBF_HIDDEN; sid.dwId = 1; Srmm_AddIcon(&sid); InitClistExtraIcon(); return 0; }
int OnModulesLoaded(WPARAM, LPARAM) { g_LPCodePage = Langpack_GetDefaultCodePage(); //Hook necessary events HookEvent(ME_SKIN2_ICONSCHANGED, OnIconsChanged); HookEvent(ME_DB_CONTACT_SETTINGCHANGED, OnContactSettingChanged); HookEvent(ME_OPT_INITIALISE, OnOptInitialise); HookEvent(ME_MSG_WINDOWEVENT, OnSrmmWindowEvent); PathToAbsoluteT(DEFAULT_SKIN_FOLDER, g_szSkinLib); RegisterIcons(); if (db_get_b(NULL, MODULENAME, "StatusBarIcon", 1)) { StatusIconData sid = { sizeof(sid) }; sid.szModule = MODULENAME; sid.flags = MBF_HIDDEN; sid.dwId = 1; Srmm_AddIcon(&sid); } return 0; }
// Called when all the modules are loaded static int ModulesLoaded(WPARAM, LPARAM) { variables_enabled = ServiceExists(MS_VARS_FORMATSTRING); // Folders plugin support if (hDictionariesFolder = FoldersRegisterCustomPathT(LPGEN("Spell Checker"), LPGEN("Dictionaries"), DICTIONARIES_FOLDER)) { dictionariesFolder = (TCHAR *)mir_alloc(sizeof(TCHAR) * MAX_PATH); FoldersGetCustomPathT(hDictionariesFolder, dictionariesFolder, MAX_PATH, _T(".")); } else dictionariesFolder = Utils_ReplaceVarsT(DICTIONARIES_FOLDER); if (hCustomDictionariesFolder = FoldersRegisterCustomPathT(LPGEN("Spell Checker"), LPGEN("Custom Dictionaries"), CUSTOM_DICTIONARIES_FOLDER)) { customDictionariesFolder = (TCHAR *)mir_alloc(sizeof(TCHAR) * MAX_PATH); FoldersGetCustomPathT(hCustomDictionariesFolder, customDictionariesFolder, MAX_PATH, _T(".")); } else customDictionariesFolder = Utils_ReplaceVarsT(CUSTOM_DICTIONARIES_FOLDER); if (hFlagsDllFolder = FoldersRegisterCustomPathT(LPGEN("Spell Checker"), LPGEN("Flags DLL"), FLAGS_DLL_FOLDER)) { flagsDllFolder = (TCHAR *)mir_alloc(sizeof(TCHAR) * MAX_PATH); FoldersGetCustomPathT(hFlagsDllFolder, flagsDllFolder, MAX_PATH, _T(".")); } else flagsDllFolder = Utils_ReplaceVarsT(FLAGS_DLL_FOLDER); InitOptions(); GetAvaibleDictionaries(languages, dictionariesFolder, customDictionariesFolder); LoadOptions(); if (opts.use_flags) { // Load flags dll TCHAR flag_file[MAX_PATH]; mir_sntprintf(flag_file, _T("%s\\flags_icons.dll"), flagsDllFolder); HMODULE hFlagsDll = LoadLibraryEx(flag_file, NULL, LOAD_LIBRARY_AS_DATAFILE); TCHAR path[MAX_PATH]; GetModuleFileName(hInst, path, MAX_PATH); SKINICONDESC sid = { 0 }; sid.flags = SIDF_ALL_TCHAR | SIDF_SORTED; sid.section.t = LPGENT("Spell Checker") _T("/") LPGENT("Flags"); // Get language flags for (int i = 0; i < languages.getCount(); i++) { Dictionary *p = languages[i]; sid.description.t = p->full_name; char lang[32]; mir_snprintf(lang, "spell_lang_%d", i); sid.pszName = lang; HICON hFlag = NULL, hFlagIcoLib = NULL; if (hFlagsDll != NULL) hFlag = (HICON)LoadImage(hFlagsDll, p->language, IMAGE_ICON, 16, 16, 0); if (hFlag != NULL) { sid.hDefaultIcon = hFlag; sid.defaultFile.t = NULL; sid.iDefaultIndex = 0; } else { hFlagIcoLib = IcoLib_GetIcon("spellchecker_unknown"); sid.hDefaultIcon = hFlagIcoLib; sid.defaultFile.t = NULL; sid.iDefaultIndex = 0; } // Oki, lets add to IcoLib, then p->hIcolib = IcoLib_AddIcon(&sid); if (hFlag != NULL) DestroyIcon(hFlag); else IcoLib_ReleaseIcon(hFlagIcoLib); } FreeLibrary(hFlagsDll); } for (int j = 0; j < languages.getCount(); j++) { Dictionary *dict = languages[j]; TCHAR filename[MAX_PATH]; mir_sntprintf(filename, _T("%s\\%s.ar"), customDictionariesFolder, dict->language); dict->autoReplace = new AutoReplaceMap(filename, dict); if (mir_tstrcmp(dict->language, opts.default_language) == 0) dict->load(); } HookEvent(ME_SKIN2_ICONSCHANGED, IconsChanged); HookEvent(ME_MSG_WINDOWEVENT, MsgWindowEvent); HookEvent(ME_MSG_WINDOWPOPUP, MsgWindowPopup); HookEvent(ME_MSG_ICONPRESSED, IconPressed); StatusIconData sid = { sizeof(sid) }; sid.szModule = MODULE_NAME; sid.hIconDisabled = IcoLib_GetIcon("spellchecker_disabled"); sid.flags = MBF_TCHAR | MBF_HIDDEN; for (int i = 0; i < languages.getCount(); i++) { sid.dwId = i; TCHAR tmp[128]; mir_sntprintf(tmp, _T("%s - %s"), TranslateT("Spell Checker"), languages[i]->full_name); sid.tszTooltip = tmp; sid.hIcon = (opts.use_flags) ? IcoLib_GetIconByHandle(languages[i]->hIcolib) : IcoLib_GetIcon("spellchecker_enabled"); Srmm_AddIcon(&sid); } HOTKEYDESC hkd = { sizeof(hkd) }; hkd.pszName = "Spell Checker/Toggle"; hkd.pszSection = LPGEN("Spell Checker"); hkd.pszDescription = LPGEN("Enable/disable spell checker"); hkd.DefHotKey = HOTKEYCODE(HOTKEYF_SHIFT | HOTKEYF_ALT, 'S'); hkd.lParam = HOTKEY_ACTION_TOGGLE; Hotkey_Register(&hkd); loaded = TRUE; return 0; }