// Hook called after init static int MainInit(WPARAM wparam,LPARAM lparam) { InitProtocolData(); // Add options to menu CLISTMENUITEM mi = { sizeof(mi) }; mi.popupPosition = 500050000; mi.flags = CMIF_ROOTPOPUP | CMIF_TCHAR; mi.icolibItem = LoadSkinnedIconHandle(SKINICON_OTHER_USERDETAILS); mi.ptszName = LPGENT("My Details"); HANDLE hMenuRoot = Menu_AddMainMenuItem(&mi); mi.flags = CMIF_CHILDPOPUP | CMIF_TCHAR; mi.ptszPopupName = (TCHAR *)hMenuRoot; mi.popupPosition = 0; mi.icolibItem = NULL; if (protocols->CanSetAvatars()) { mi.position = 100001; mi.ptszName = LPGENT("Set My Avatar..."); CreateServiceFunction("MENU_" MS_MYDETAILS_SETMYAVATARUI, Menu_SetMyAvatarUI); mi.pszService = "MENU_" MS_MYDETAILS_SETMYAVATARUI; Menu_AddMainMenuItem(&mi); } mi.position = 100002; mi.ptszName = LPGENT("Set My Nickname..."); CreateServiceFunction("MENU_" MS_MYDETAILS_SETMYNICKNAMEUI, Menu_SetMyNicknameUI); mi.pszService = "MENU_" MS_MYDETAILS_SETMYNICKNAMEUI; Menu_AddMainMenuItem(&mi); mi.position = 100003; mi.ptszName = LPGENT("Set My Status Message..."); CreateServiceFunction("MENU_" MS_MYDETAILS_SETMYSTATUSMESSAGEUI, Menu_SetMyStatusMessageUI); mi.pszService = "MENU_" MS_MYDETAILS_SETMYSTATUSMESSAGEUI; Menu_AddMainMenuItem(&mi); // Set protocols to show frame mi.position = 200001; mi.ptszName = LPGENT("Show next account"); mi.pszService = MS_MYDETAILS_SHOWNEXTPROTOCOL; Menu_AddMainMenuItem(&mi); InitFrames(); if ( Skin_GetIcon("LISTENING_TO_ICON") == NULL) Icon_Register(hInst, LPGEN("Contact List"), iconList, 1); Icon_Register(hInst, LPGEN("My Details"), iconList+1, SIZEOF(iconList)-1); return 0; }
// Hook called after init static int MainInit(WPARAM, LPARAM) { g_bAvsExist = ServiceExists(MS_AV_GETMYAVATAR) != 0; g_bFramesExist = ServiceExists(MS_CLIST_FRAMES_ADDFRAME) != 0; InitProtocolData(); // Add options to menu CLISTMENUITEM mi = { sizeof(mi) }; mi.popupPosition = 500050000; mi.flags = CMIF_ROOTPOPUP | CMIF_TCHAR; mi.icolibItem = LoadSkinnedIconHandle(SKINICON_OTHER_USERDETAILS); mi.ptszName = LPGENT("My details"); HANDLE hMenuRoot = Menu_AddMainMenuItem(&mi); mi.flags = CMIF_CHILDPOPUP | CMIF_TCHAR; mi.ptszPopupName = (TCHAR *)hMenuRoot; mi.popupPosition = 0; mi.icolibItem = NULL; if (protocols->CanSetAvatars()) { mi.position = 100001; mi.ptszName = LPGENT("Set my avatar..."); CreateServiceFunction("MENU_" MS_MYDETAILS_SETMYAVATARUI, Menu_SetMyAvatarUI); mi.pszService = "MENU_" MS_MYDETAILS_SETMYAVATARUI; Menu_AddMainMenuItem(&mi); } mi.position = 100002; mi.ptszName = LPGENT("Set my nickname..."); CreateServiceFunction("MENU_" MS_MYDETAILS_SETMYNICKNAMEUI, Menu_SetMyNicknameUI); mi.pszService = "MENU_" MS_MYDETAILS_SETMYNICKNAMEUI; Menu_AddMainMenuItem(&mi); mi.position = 100003; mi.ptszName = LPGENT("Set my status message..."); CreateServiceFunction("MENU_" MS_MYDETAILS_SETMYSTATUSMESSAGEUI, Menu_SetMyStatusMessageUI); mi.pszService = "MENU_" MS_MYDETAILS_SETMYSTATUSMESSAGEUI; Menu_AddMainMenuItem(&mi); // Set protocols to show frame mi.position = 200001; mi.ptszName = LPGENT("Show next account"); mi.pszService = MS_MYDETAILS_SHOWNEXTPROTOCOL; Menu_AddMainMenuItem(&mi); InitFrames(); return 0; }
// Hook called after init static int MainInit(WPARAM wparam,LPARAM lparam) { if ( mir_skins_getInterface(&mski) != 0 ) { MessageBox(NULL, _T("MyDetails needs Skins plugin in order to work"), _T("MyDetails"), MB_OK | MB_ICONERROR); return 0; } if (CallService(MS_SKIN2_GETICON, 0, (LPARAM) "LISTENING_TO_ICON") == NULL) { SKINICONDESC sid = {0}; sid.cbSize = sizeof(SKINICONDESC); sid.ptszSection = "Contact List"; sid.ptszDescription = "Listening to"; sid.pszName = "LISTENING_TO_ICON"; sid.hDefaultIcon = LoadIcon(hInst, MAKEINTRESOURCE(IDI_LISTENINGTO)); CallService(MS_SKIN2_ADDICON, 0, (LPARAM)&sid); } { SKINICONDESC sid = {0}; sid.cbSize = sizeof(SKINICONDESC); sid.ptszSection = "My Details"; sid.ptszDescription = "Email"; sid.pszName = "MYDETAILS_EMAIL"; sid.hDefaultIcon = LoadIcon(hInst, MAKEINTRESOURCE(IDI_EMAIL)); CallService(MS_SKIN2_ADDICON, 0, (LPARAM)&sid); } { SKINICONDESC sid = {0}; sid.cbSize = sizeof(SKINICONDESC); sid.ptszSection = "My Details"; sid.ptszDescription = "Previous protocol"; sid.pszName = "MYDETAILS_PREV_PROTOCOL"; sid.hDefaultIcon = LoadIcon(hInst, MAKEINTRESOURCE(IDI_LEFT_ARROW)); CallService(MS_SKIN2_ADDICON, 0, (LPARAM)&sid); } { SKINICONDESC sid = {0}; sid.cbSize = sizeof(SKINICONDESC); sid.ptszSection = "My Details"; sid.ptszDescription = "Next protocol"; sid.pszName = "MYDETAILS_NEXT_PROTOCOL"; sid.hDefaultIcon = LoadIcon(hInst, MAKEINTRESOURCE(IDI_RIGHT_ARROW)); CallService(MS_SKIN2_ADDICON, 0, (LPARAM)&sid); } { ColourID cid = {0}; cid.cbSize = sizeof(ColourID); lstrcpynA(cid.group, "My Details", sizeof(cid.group)); lstrcpynA(cid.name, "Background", sizeof(cid.name)); lstrcpynA(cid.dbSettingsGroup, MODULE_NAME, sizeof(cid.dbSettingsGroup)); lstrcpynA(cid.setting, "BackgroundColor", sizeof(cid.setting)); cid.defcolour = GetSysColor(COLOR_BTNFACE); CallService(MS_COLOUR_REGISTER, (WPARAM) &cid, 0); ColorChanged(0,0); hColorChangedHook = HookEvent(ME_COLOUR_RELOAD, ColorChanged); } dialog = new SkinDialog("MyDetails", "My Details", MODULE_NAME); if (!dialog->isValid()) { MessageBox(NULL, _T("MyDetails could not create dialog. Check if default skin is installed"), _T("MyDetails"), MB_OK | MB_ICONERROR); return 0; } dialog->addImageField("avatar", "Avatar"); dialog->addTextField("nickname", "Nickname"); dialog->addTextField("protocol", "Protocol"); dialog->addIconField("email_icon", "Unread Email Count Icon"); dialog->addTextField("email", "Unread Email Count"); dialog->addIconField("status_icon", "Status Icon"); dialog->addTextField("status_name", "Status"); dialog->addTextField("status_msg", "Status Message"); dialog->addIconField("listening_icon", "Listening To Icon"); dialog->addTextField("listening", "Listening To"); dialog->addIconField("next_proto", "Next Protocol"); dialog->addIconField("prev_proto", "Previous Protocol"); dialog->setSkinChangedCallback(SkinChanged, NULL); dialog->finishedConfiguring(); InitProtocolData(); // Add options to menu CLISTMENUITEM mi; if (protocols->CanSetAvatars()) { ZeroMemory(&mi,sizeof(mi)); mi.cbSize = sizeof(mi); mi.flags = 0; mi.popupPosition = 500050000; mi.pszPopupName = Translate("My Details"); mi.position = 100001; mi.pszName = Translate("Set My Avatar..."); CreateServiceFunction("MENU_" MS_MYDETAILS_SETMYAVATARUI, Menu_SetMyAvatarUI); mi.pszService = "MENU_" MS_MYDETAILS_SETMYAVATARUI; CallService(MS_CLIST_ADDMAINMENUITEM,0,(LPARAM)&mi); } ZeroMemory(&mi,sizeof(mi)); mi.cbSize = sizeof(mi); mi.flags = 0; mi.popupPosition = 500050000; mi.pszPopupName = Translate("My Details"); mi.position = 100002; mi.pszName = Translate("Set My Nickname..."); CreateServiceFunction("MENU_" MS_MYDETAILS_SETMYNICKNAMEUI, Menu_SetMyNicknameUI); mi.pszService = "MENU_" MS_MYDETAILS_SETMYNICKNAMEUI; CallService(MS_CLIST_ADDMAINMENUITEM,0,(LPARAM)&mi); ZeroMemory(&mi,sizeof(mi)); mi.cbSize = sizeof(mi); mi.flags = 0; mi.popupPosition = 500050000; mi.pszPopupName = Translate("My Details"); mi.position = 100003; mi.pszName = Translate("Set My Status Message..."); CreateServiceFunction("MENU_" MS_MYDETAILS_SETMYSTATUSMESSAGEUI, Menu_SetMyStatusMessageUI); mi.pszService = "MENU_" MS_MYDETAILS_SETMYSTATUSMESSAGEUI; CallService(MS_CLIST_ADDMAINMENUITEM,0,(LPARAM)&mi); // Set protocols to show frame ZeroMemory(&mi,sizeof(mi)); mi.cbSize = sizeof(mi); mi.flags = 0; mi.popupPosition = 500050000; mi.pszPopupName = Translate("My Details"); mi.position = 200001; mi.pszName = Translate("Show next protocol"); mi.pszService = MS_MYDETAILS_SHOWNEXTPROTOCOL; CallService(MS_CLIST_ADDMAINMENUITEM,0,(LPARAM)&mi); InitFrames(); // updater plugin support if(ServiceExists(MS_UPDATE_REGISTER)) { Update upd = {0}; char szCurrentVersion[30]; upd.cbSize = sizeof(upd); upd.szComponentName = pluginInfo.shortName; upd.szUpdateURL = UPDATER_AUTOREGISTER; upd.szBetaVersionURL = "http://svn.berlios.de/svnroot/repos/mgoodies/trunk/mydetails/Docs/mydetails_version.txt"; upd.szBetaChangelogURL = "http://svn.berlios.de/svnroot/repos/mgoodies/trunk/mydetails/Docs/mydetails_changelog.txt"; upd.pbBetaVersionPrefix = (BYTE *)"My Details "; upd.cpbBetaVersionPrefix = strlen((char *)upd.pbBetaVersionPrefix); upd.szBetaUpdateURL = "http://pescuma.googlecode.com/files/mydetails.%VERSION%.zip"; upd.pbVersion = (BYTE *)CreateVersionStringPlugin((PLUGININFO*) &pluginInfo, szCurrentVersion); upd.cpbVersion = strlen((char *)upd.pbVersion); CallService(MS_UPDATE_REGISTER, 0, (LPARAM)&upd); } return 0; }