Пример #1
0
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);
}
Пример #2
0
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;
}
Пример #3
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);
}
Пример #4
0
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);
}
Пример #5
0
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;
}
Пример #6
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;
}
Пример #7
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);
}
Пример #8
0
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);
}
Пример #9
0
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;
}
Пример #10
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;
}
Пример #11
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;
}