diff options
| author | George Hazan <george.hazan@gmail.com> | 2013-04-04 15:43:57 +0000 | 
|---|---|---|
| committer | George Hazan <george.hazan@gmail.com> | 2013-04-04 15:43:57 +0000 | 
| commit | 730614e82be2d2edb81f59d26d899329be0db2f9 (patch) | |
| tree | d24204abf43a85ec11cf83b2da9c3398477d9169 /plugins | |
| parent | 1705dfe26353057e4fa274280ff9552840ea9aab (diff) | |
Non-IM Contact:
- plugin's menu item returned back to the contact's popup menu;
- Unicode group names
git-svn-id: http://svn.miranda-ng.org/main/trunk@4302 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins')
| -rw-r--r-- | plugins/Non-IM Contact/src/contactinfo.cpp | 72 | ||||
| -rw-r--r-- | plugins/Non-IM Contact/src/main.cpp | 2 | 
2 files changed, 33 insertions, 41 deletions
| diff --git a/plugins/Non-IM Contact/src/contactinfo.cpp b/plugins/Non-IM Contact/src/contactinfo.cpp index ac4f57cb5f..002f7fe1ad 100644 --- a/plugins/Non-IM Contact/src/contactinfo.cpp +++ b/plugins/Non-IM Contact/src/contactinfo.cpp @@ -78,34 +78,30 @@ LRESULT CALLBACK ButtWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lPar  	return res;
  }
 -void checkGroups(char* group)
 +void checkGroups(TCHAR* group)
  {
 -	int i;
 -	char str[50], name[256];
 -	DBVARIANT dbv;
 -
 -	if (lstrlenA(group) < 1)
 +	if (lstrlen(group) < 1)
  		return;
 -	for (i = 0;; i++) {
 +	char str[50];
 +	int i;
 +	for (i=0;; i++) {
  		_itoa(i, str, 10);
 -		if (DBGetContactSetting(NULL, "CListGroups", str, &dbv))
 +		DBVARIANT dbv;
 +		if (db_get_ts(NULL, "CListGroups", str, &dbv))
  			break;
 -		if (dbv.type == DBVT_ASCIIZ) {
 -			if (dbv.pszVal[0] != '\0' && !lstrcmpiA(dbv.pszVal + 1, group)) {
 -				db_free(&dbv);
 -				return;
 -			}
 -
 -			db_free(&dbv);
 -		}
 +		bool bFound = lstrcmpi(dbv.ptszVal+1, group) == 0;
 +		db_free(&dbv);
 +		if (bFound)
 +			return;
  	}
 +
 +	TCHAR name[256];
  	name[0] = 1 | GROUPF_EXPANDED;
 -	strncpy(name + 1, group, sizeof(name) - 1);
 -	name[strlen(group) + 1] = '\0';
 -	db_set_s(NULL, "CListGroups", str, name);
 -	CallService(MS_CLUI_GROUPADDED, i + 1, 0);
 +	_tcsncpy(name+1, group, SIZEOF(name)-1);
 +	db_set_ts(NULL, "CListGroups", str, name);
 +	CallService(MS_CLUI_GROUPADDED, i+1, 0);
  }
  int BrowseForFolder(HWND hwnd,char *szPath)
 @@ -252,48 +248,43 @@ INT_PTR CALLBACK DlgProcOtherStuff(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lP  			case PSN_APPLY:
  				int status = GetLCStatus(0,0);
  				HANDLE hContact = (HANDLE)GetWindowLongPtr(hwnd, GWLP_USERDATA);
 -				int i;
 -				if (GetWindowTextLength(GetDlgItem(hwnd,IDC_LINK))) 
 -				{
 +
 +				if (GetWindowTextLength(GetDlgItem(hwnd,IDC_LINK))) {
  					char text[512];
  					GetDlgItemTextA(hwnd,IDC_LINK,text,sizeof(text));
  					db_set_s(hContact, MODNAME, "ProgramString", text);
  					WriteSetting(hContact, MODNAME, "ProgramString", MODNAME, "Program");
  				}
  				else db_unset(hContact, MODNAME, "ProgramString");
 -				if (GetWindowTextLength(GetDlgItem(hwnd,IDC_PARAMS))) 
 -				{
 +
 +				if (GetWindowTextLength(GetDlgItem(hwnd,IDC_PARAMS))) {
  					char text[512];
  					GetDlgItemTextA(hwnd,IDC_PARAMS,text,sizeof(text));
  					db_set_s(hContact, MODNAME, "ProgramParamsString", text);
  					WriteSetting(hContact, MODNAME, "ProgramParamsString", MODNAME, "ProgramParams");
  				}
  				else db_unset(hContact, MODNAME, "ProgramParamsString");
 -				if (GetWindowTextLength(GetDlgItem(hwnd,IDC_GROUP))) 
 -				{
 -					char text[512];
 -					GetDlgItemTextA(hwnd,IDC_GROUP,text,sizeof(text));
 +
 +				if (GetWindowTextLength(GetDlgItem(hwnd,IDC_GROUP))) {
 +					TCHAR text[512];
 +					GetDlgItemText(hwnd, IDC_GROUP, text, SIZEOF(text));
  					checkGroups(text);
 -					db_set_s(hContact, "CList", "Group", text);
 +					db_set_ts(hContact, "CList", "Group", text);
  				}
  				else db_unset(hContact, "CList", "Group");
 -				for (i = ID_STATUS_ONLINE; i<=ID_STATUS_OUTTOLUNCH; i++)
 -				{
 +
 +				for (int i = ID_STATUS_ONLINE; i<=ID_STATUS_OUTTOLUNCH; i++)
  					if (IsDlgButtonChecked(hwnd, i))
  						db_set_w(hContact, MODNAME, "Icon", (WORD)i);
 -				}
 +
  				/* set correct status */
 -				if ( (status == ID_STATUS_ONLINE) || (status == ID_STATUS_AWAY) || 
 -					(status == db_get_w(hContact, MODNAME, "Icon", ID_STATUS_ONLINE) )
 -					)
 +				if (status == ID_STATUS_ONLINE || status == ID_STATUS_AWAY || (status == db_get_w(hContact, MODNAME, "Icon", ID_STATUS_ONLINE)))
  					db_set_w(hContact, MODNAME, "Status", (WORD)db_get_w(hContact, MODNAME, "Icon", ID_STATUS_ONLINE));
  				else
  					db_set_w(hContact, MODNAME, "Status", ID_STATUS_OFFLINE);
 -				if (IsDlgButtonChecked(hwnd, CHK_USE_TIMER))
 -				{
 -					if (GetWindowTextLength(GetDlgItem(hwnd,IDC_TIMER))) 
 -					{
 +				if (IsDlgButtonChecked(hwnd, CHK_USE_TIMER)) {
 +					if (GetWindowTextLength(GetDlgItem(hwnd,IDC_TIMER))) {
  						char text[512];
  						GetDlgItemTextA(hwnd,IDC_TIMER,text,sizeof(text));
  						db_set_w(hContact, MODNAME, "Timer", (WORD)atoi(text));
 @@ -301,6 +292,7 @@ INT_PTR CALLBACK DlgProcOtherStuff(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lP  					else db_set_w(hContact, MODNAME, "Timer", 15);
  				}
  				else db_set_w(hContact, MODNAME, "Timer", 0);
 +
  				// always visible
  				db_set_b(hContact, MODNAME, "AlwaysVisible", (BYTE)IsDlgButtonChecked(hwnd, IDC_ALWAYS_VISIBLE));
  				db_set_b(hContact, MODNAME, "VisibleUnlessOffline", (BYTE)IsDlgButtonChecked(hwnd, IDC_VISIBLE_UNLESS_OFFLINE));
 diff --git a/plugins/Non-IM Contact/src/main.cpp b/plugins/Non-IM Contact/src/main.cpp index ebefd3ce12..4aca53a150 100644 --- a/plugins/Non-IM Contact/src/main.cpp +++ b/plugins/Non-IM Contact/src/main.cpp @@ -183,7 +183,7 @@ extern "C" __declspec(dllexport) int Load()  	mi.pszContactOwner = MODNAME;
  	mi.pszName = LPGEN("E&dit Contact Settings");
  	mi.pszService = "EditLCcontact";
 -	Menu_AddMainMenuItem(&mi);
 +	Menu_AddContactMenuItem(&mi);
  	HookEvent(ME_SYSTEM_MODULESLOADED, ModulesLoaded);
 | 
