Пример #1
0
void WriteSetting(MCONTACT hContact, char* module1, char* setting1, char* module2, char* setting2)
{
	CMStringA newString;
	char text[MAX_STRING_LENGTH];
	int error = 0, status = GetLCStatus(0, 0);
	if (db_get_static(hContact, module1, setting1, text, _countof(text))) {
		switch (stringReplacer(text, newString, hContact)) {
		case ERROR_NO_LINE_AFTER_VAR_F:
			newString.Format(Translate("%s - ERROR: no line specified or line not found (in %s)"), text, setting1);
			error = 1;
			break;
		case ERROR_LINE_NOT_READ:
			newString.Format(Translate("%s - ERROR: file couldn't be opened (in %s)"), text, setting1);
			error = 1;
			break;
		case ERROR_NO_FILE:
			newString.Format(Translate("%s - ERROR: no file specified in settings (in %s)"), text, setting1);
			error = 1;
			break;
		default:
			error = 0;
			break;
		}
		// strip the tab and new lines from all except the tooltip
		if (!error && mir_strcmp(setting1, "ToolTip"))
			newString.TrimRight();
		db_set_s(hContact, module2, setting2, newString);
	}
	else db_set_s(hContact, module2, setting2, "");
	
	if (!error) {
		if ((status == ID_STATUS_ONLINE) || (status == ID_STATUS_AWAY) ||
			 (status == db_get_w(hContact, MODNAME, "Icon", ID_STATUS_ONLINE)) ||
			 db_get_b(hContact, MODNAME, "AlwaysVisible", 0))
			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);
	}
	else db_set_w(hContact, MODNAME, "Status", ID_STATUS_OFFLINE);
}
Пример #2
0
INT_PTR CALLBACK TestWindowDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM)
{
	switch (msg) {
	case WM_INITDIALOG:
		TranslateDialogDefault(hwnd);
		return TRUE;

	case WM_COMMAND:
		switch (LOWORD(wParam)) {
		case IDC_HELPMSG:
			CreateDialog(g_hInst, MAKEINTRESOURCE(IDD_HELP), 0, HelpWindowDlgProc);
			break;

		case IDCANCEL:
			DestroyWindow(hwnd);
			break;

		case IDC_STRING:
			if (HIWORD(wParam) == EN_CHANGE) {
				char tmp[MAX_STRING_LENGTH];
				int i = 0, j;
				if (GetWindowTextLength(GetDlgItem(hwnd, IDC_STRING))) {
					GetDlgItemTextA(hwnd, IDC_STRING, tmp, _countof(tmp));
					if (tmp[mir_strlen(tmp) - 1] == '(') {
						for (i = 0; i < VARS; i++) {
							if (!mir_strcmp(braceList[i].var, &tmp[mir_strlen(tmp) - mir_strlen(braceList[i].var)])) {
								for (j = 0; j < MAX_BRACES; j++) {
									if (!braceOrder[j]) {
										braceOrder[j] = i;
										EnableWindow(GetDlgItem(hwnd, braceList[i].idCtrl), 1);
										if (j)
											EnableWindow(GetDlgItem(hwnd, braceList[braceOrder[j - 1]].idCtrl), 0);
										break;
									}
								}
								break;
							}
						}
					}
					else if (tmp[mir_strlen(tmp) - 1] == ')') {
						for (j = 0; j < MAX_BRACES; j++) {
							if (!braceOrder[j]) {
								EnableWindow(GetDlgItem(hwnd, braceList[braceOrder[j - 1]].idCtrl), 0);
								if (j > 1)
									EnableWindow(GetDlgItem(hwnd, braceList[braceOrder[j - 2]].idCtrl), 1);
								braceOrder[j - 1] = 0;
								break;
							}
						}
					}
				}
				else {
					for (j = 0; j < MAX_BRACES; j++) {
						if (!braceOrder[j]) break;
						EnableWindow(GetDlgItem(hwnd, braceList[braceOrder[j]].idCtrl), 0);
					}
				}
			}
			break;

		case IDOK:
			CMStringA replacedString;
			char str2replace[MAX_STRING_LENGTH];
			int error;
			if (GetWindowTextLength(GetDlgItem(hwnd, IDC_STRING))) {
				GetDlgItemTextA(hwnd, IDC_STRING, str2replace, _countof(str2replace));
				switch (stringReplacer(str2replace, replacedString, NULL)) {
				case ERROR_NO_LINE_AFTER_VAR_F:
					replacedString.Format("ERROR: no %s", "%line or %wholeline or %lastline after %fn");
					error = 1;
					break;
				case ERROR_LINE_NOT_READ:
					replacedString.Format("ERROR: file couldnt be opened ");
					error = 1;
					break;
				case ERROR_NO_FILE:
					replacedString.Format("ERROR: no file specified in settings");
					error = 1;
					break;
				default:
					error = 0;
				}
				SetDlgItemTextA(hwnd, IDC_ANSWER, replacedString);
			}
		}
		break;
	}
	return FALSE;
}