Exemplo n.º 1
0
static BOOL CALLBACK DlgProcOptsQun(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
	CNetwork* network=(CNetwork*)GetWindowLong(GetParent(hwndDlg),GWL_USERDATA);

	switch (msg) {
		case WM_INITDIALOG:	// Options dialog is being initialized
			{
				TranslateDialogDefault(hwndDlg);

				if (network) {
					// Check Options
					CHECK_CONTROL(IDC_SUPPRESSQUN,QQ_SUPPRESSQUNMSG);
					//CHECK_CONTROL(IDC_NEWCHAT,QQ_NEWCHAT);
					CHECK_CONTROL(IDC_ADDQUNNUMBER,QQ_ADDQUNNUMBER);
					CHECK_CONTROL(IDC_NOLOADQUNIMAGE,QQ_NOLOADQUNIMAGE);
					CHECK_CONTROL(IDC_NOSILENTQUNHISTORY,QQ_NOSILENTQUNHISTORY);
				}

				return TRUE;
			}

		case WM_COMMAND:	// When a control is toggled
			SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
			break;

		case WM_NOTIFY:		// When a notify is sent by Options Dialog (Property Sheet)
			if (network) {
				switch (((LPNMHDR)lParam)->code)
					case PSN_APPLY:	// Apply Settings/ネキ。ヲノ靹テ
					{
						int reconnectRequired=0;

						// Check Options/シ・簷。マ・
						CHECK_BYTE_SETTING(QQ_SUPPRESSQUNMSG,IDC_SUPPRESSQUN);
						WRITE_CHECK_SETTING(QQ_SUPPRESSQUNMSG,IDC_SUPPRESSQUN);
						//CHECK_BYTE_SETTING(QQ_NEWCHAT,IDC_NEWCHAT);
						//WRITE_BYTE_SETTING(QQ_NEWCHAT,(BYTE)IsDlgButtonChecked(hwndDlg,IDC_NEWCHAT));
						CHECK_BYTE_SETTING(QQ_ADDQUNNUMBER,IDC_ADDQUNNUMBER);
						WRITE_CHECK_SETTING(QQ_ADDQUNNUMBER,IDC_ADDQUNNUMBER);
						WRITE_CHECK_SETTING(QQ_NOREMOVEQUNIMAGE,IDC_NOREMOVEQUNIMAGE);
						WRITE_CHECK_SETTING(QQ_NOLOADQUNIMAGE,IDC_NOLOADQUNIMAGE);
						WRITE_CHECK_SETTING(QQ_NOSILENTQUNHISTORY,IDC_NOSILENTQUNHISTORY);

						// Apply Options
						if(Packet::isClientKeySet() && reconnectRequired) MessageBox(hwndDlg,TranslateT("The changes you have made require you to reconnect to the QQ network before they take effect"),APPNAME,MB_OK);

						return TRUE;
					}
			}
			break;
	}
	return FALSE;
}
Exemplo n.º 2
0
static VALUE rb_gsl_odeiv_evolve_apply(VALUE obj, VALUE cc, VALUE ss, VALUE sss,
				       VALUE tt, VALUE tt1, VALUE hh, VALUE yy)
{
  gsl_odeiv_evolve *e = NULL;
  gsl_odeiv_control *c = NULL;
  gsl_odeiv_step *s = NULL;
  gsl_odeiv_system *sys = NULL;
  gsl_vector *y = NULL;
  double t, h;
  int status;
  CHECK_STEP(ss); CHECK_SYSTEM(sss);
  CHECK_VECTOR(yy);
  Data_Get_Struct(obj, gsl_odeiv_evolve, e);
  if (NIL_P(cc)) {
    c = NULL;
  } else {
    CHECK_CONTROL(cc); 
    Data_Get_Struct(cc, gsl_odeiv_control, c);
  }
  Data_Get_Struct(ss, gsl_odeiv_step, s);
  Data_Get_Struct(sss, gsl_odeiv_system, sys);
  Data_Get_Struct(yy, gsl_vector, y);
  /*  if (TYPE(tt) != T_FLOAT) rb_raise(rb_eTypeError, "argument 4 Float expected");
      if (TYPE(hh) != T_FLOAT) rb_raise(rb_eTypeError, "argument 6 Float expected");*/
  t = NUM2DBL(tt);
  h = NUM2DBL(hh);
  status = gsl_odeiv_evolve_apply(e, c, s, sys, &t, NUM2DBL(tt1), &h, y->data);
  /*  RFLOAT(tt)->value = t;
      RFLOAT(hh)->value = h;*/
  return rb_ary_new3(3, rb_float_new(t), rb_float_new(h), INT2FIX(status));
}
Exemplo n.º 3
0
static VALUE rb_gsl_odeiv_solver_set_control(VALUE obj, VALUE cc)
{
  gsl_odeiv_solver *gos = NULL;
  gsl_odeiv_control *c = NULL;
  CHECK_CONTROL(cc);
  Data_Get_Struct(obj, gsl_odeiv_solver, gos);
  Data_Get_Struct(cc, gsl_odeiv_control, c);
  gos->c = c;
  return obj;
}
Exemplo n.º 4
0
// DlgProcOpts(): Dialog Callback
// hwndDlg: hWnd to options dialog
// msg: Window message received
// wParam: Depending on msg
// lParam: Depending on msg
static BOOL CALLBACK DlgProcOptsAcc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
	CNetwork* network=(CNetwork*)GetWindowLong(GetParent(hwndDlg),GWL_USERDATA);

	switch (msg)
	{
		case WM_INITDIALOG:	// Options dialog is being initialized
		{
			DBVARIANT dbv;
			HWND hControl;
			char** pszServers=servers;
			TranslateDialogDefault(hwndDlg);

			// Add server to list
			hControl=GetDlgItem(hwndDlg,IDC_SERVER);
			while (*pszServers) {
				ADD_LIST_ITEM(*pszServers);
				pszServers++;
			}

			SendDlgItemMessage(hwndDlg,IDC_AVATARTYPE,CB_ADDSTRING,NULL,(LPARAM)TranslateT("Head Image and User Head"));
			SendDlgItemMessage(hwndDlg,IDC_AVATARTYPE,CB_ADDSTRING,NULL,(LPARAM)TranslateT("Head Image"));
			SendDlgItemMessage(hwndDlg,IDC_AVATARTYPE,CB_ADDSTRING,NULL,(LPARAM)TranslateT("QQ Show"));
			SendDlgItemMessage(hwndDlg,IDC_AVATARTYPE,CB_ADDSTRING,NULL,(LPARAM)TranslateT("None"));

			SendDlgItemMessage(hwndDlg,IDC_CONVERSION,CB_ADDSTRING,NULL,(LPARAM)TranslateT("No Message Conversion"));
			SendDlgItemMessage(hwndDlg,IDC_CONVERSION,CB_ADDSTRING,NULL,(LPARAM)TranslateT("Receive: No Change, Send: Convert to Simplified"));
			SendDlgItemMessage(hwndDlg,IDC_CONVERSION,CB_ADDSTRING,NULL,(LPARAM)TranslateT("Receive: Convert to Traditional, Send: No Change"));
			SendDlgItemMessage(hwndDlg,IDC_CONVERSION,CB_ADDSTRING,NULL,(LPARAM)TranslateT("Receive: Convert to Traditional, Send: Convert to Simplified"));

			if (!(hControl=GetDlgItem(hwndDlg,IDC_NOTICE))) itoa(1,(LPSTR)hControl,10);
			SetWindowText(hControl,L"Miranda IM 专用的 QQ 插件 (MirandaQQ)\n版权所有(C) 2008 小熊工作室,保留所有权利。\n此插件使用 libeva QQ 库,版权所有(C) 云帆。\nThe QQ icon is from Cristal Icons pack, courtesy of Angeli-Ka. Used with permission from author.\n\n此插件是根据 GPL 第二版的条款而授权。你可以修改并重新发布基于此产品的成果,但你「必须保留所有原有的版权宣告」,并将有关之所有代码公开。若要更多信息,请参照 http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 上的 GPL 合约条款,或 http://docs.huihoo.com/open_source/GPL-chinese.html 参考该条款的中文译本。\n最后,由于太多人滥用桥接功能 (桥接20个群过分么?),所以此功能将被永久移除。你们要加回去请自便,但不要再在支持群里询问有关问题。");
			ShowWindow(hControl,SW_SHOWNORMAL);

			if (network) {
				SendMessage(GetDlgItem(hwndDlg,IDC_CONVERSION),CB_SETCURSEL,DBGetContactSettingByte(NULL,network->m_szModuleName,QQ_MESSAGECONVERSION,0),0);

				if(!DBGetContactSetting(NULL,network->m_szModuleName,QQ_LOGINSERVER2,&dbv)) {
					SetDlgItemTextA(hwndDlg,IDC_SERVER,dbv.pszVal);
					DBFreeVariant(&dbv);
				} else {
					SetDlgItemTextA(hwndDlg,IDC_SERVER,*servers);
				}

				// Login ID and Password
				if(!DBGetContactSetting(NULL,network->m_szModuleName,UNIQUEIDSETTING,&dbv)){
					char szID[16];
					ultoa(dbv.lVal,szID,10);
					SetDlgItemTextA(hwndDlg,IDC_LOGIN,szID);
					DBFreeVariant(&dbv);
				}

				SetDlgItemTextA(hwndDlg,IDC_PASSWORD,PASSWORDMASK);

				CHECK_CONTROL(IDC_FORCEINVISIBLE,QQ_INVISIBLE);
				//CHECK_CONTROL(IDC_FORCEUNICODE,QQ_FORCEUNICODE);
				CheckDlgButton(hwndDlg,IDC_FORCEUNICODE,BST_CHECKED);
				EnableWindow(GetDlgItem(hwndDlg,IDC_FORCEUNICODE),FALSE);
				//CHECK_CONTROL2(IDC_AUTOSERVER,QQ_NOAUTOSERVER);
				ShowWindow(GetDlgItem(hwndDlg,IDC_AUTOSERVER),SW_HIDE);

				// Version and Connection Information
				/*
				pszTemp=mir_strdup(szCheckoutTime);

				SetDlgItemTextA(hwndDlg,IDC_VERSION,pszTemp);
				mir_free(pszTemp);
				*/

				WCHAR szTemp[MAX_PATH];
				swprintf(szTemp,TranslateT("This copy of MirandaQQ is based on EVA %S, Module: %S"),version,network->m_szModuleName);
				SetDlgItemText(hwndDlg,IDC_VERSION,szTemp);

				//if (qqSettings->unicode)
					SetDlgItemText(hwndDlg,IDC_UNICODEMSG,TranslateT("Unicode Messaging Support(UTF-8) is Enabled."));
				/*else
					SetDlgItemText(hwndDlg,IDC_UNICODEMSG,TranslateT("Unicode Messaging Support is Disabled."));*/
			}
			return TRUE;
		}


		case WM_COMMAND:	// When a control is toggled
			switch (LOWORD(wParam)) {
				case IDC_LOGIN:
				case IDC_PASSWORD:
				//case IDC_SERVER:
				case IDC_VERSION:
					if (HIWORD(wParam) != EN_CHANGE || (HWND)lParam != GetFocus()) return 0;
					break;
				case IDC_CONVERSION:
				case IDC_SERVER:
					if (HIWORD(wParam) != CBN_SELCHANGE) return 0;
					
			}
			SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
			break;
		
		case WM_NOTIFY:		// When a notify is sent by Options Dialog (Property Sheet)
			if (network && ((LPNMHDR)lParam)->code==PSN_APPLY) {
				int reconnectRequired=0;
				char str[128];
				char login[128];
				DBVARIANT dbv;

				// Login Information
				GetDlgItemTextA(hwndDlg,IDC_LOGIN,login,sizeof(login));
				dbv.pszVal=NULL;
				dbv.lVal=0;
				if(DBGetContactSetting(NULL,network->m_szModuleName,UNIQUEIDSETTING,&dbv) || strtoul(login,NULL,10)!=dbv.dVal)
					reconnectRequired=1;
				
				if(dbv.lVal!=0) DBFreeVariant(&dbv);
				DBWriteContactSettingDword(NULL,network->m_szModuleName,UNIQUEIDSETTING,strtoul(login,NULL,10));
				
				GetDlgItemTextA(hwndDlg,IDC_PASSWORD,str,sizeof(str));
				if (strcmp(str,PASSWORDMASK)!=0) {
					CallService(MS_DB_CRYPT_ENCODESTRING,sizeof(str),(LPARAM)str);
					dbv.pszVal=NULL;
					if(DBGetContactSetting(NULL,network->m_szModuleName,QQ_PASSWORD,&dbv) || strcmp(str,dbv.pszVal))
						reconnectRequired=1;
				
					
					if(dbv.pszVal!=NULL) DBFreeVariant(&dbv);
					DBWriteContactSettingString(NULL,network->m_szModuleName,QQ_PASSWORD,str);
				}

				// Server list
				GetDlgItemTextA(hwndDlg,IDC_SERVER,str,sizeof(str));
				if(DBGetContactSetting(NULL,network->m_szModuleName,QQ_LOGINSERVER2,&dbv) || strcmp(str,dbv.pszVal))
					reconnectRequired=1;
					
				if(dbv.pszVal!=NULL) DBFreeVariant(&dbv);
				DBWriteContactSettingString(NULL,network->m_szModuleName,QQ_LOGINSERVER2,str);

				CHECK_BYTE_SETTING(QQ_INVISIBLE,IDC_FORCEINVISIBLE);
				WRITE_CHECK_SETTING(QQ_INVISIBLE,IDC_FORCEINVISIBLE);

				CHECK_BYTE_SETTING(QQ_FORCEUNICODE,IDC_FORCEUNICODE);
				WRITE_CHECK_SETTING(QQ_FORCEUNICODE,IDC_FORCEUNICODE);

				/*
				CHECK_BYTE_SETTING2(QQ_NOAUTOSERVER,IDC_AUTOSERVER);
				WRITE_CHECK_SETTING2(QQ_NOAUTOSERVER,IDC_AUTOSERVER);
				*/

				if(Packet::isClientKeySet() && reconnectRequired) MessageBox(hwndDlg,TranslateT("The changes you have made require you to reconnect to the QQ network before they take effect"),APPNAME,MB_OK);

				DBWriteContactSettingByte(NULL,network->m_szModuleName,QQ_MESSAGECONVERSION,(BYTE)SendDlgItemMessage(hwndDlg,IDC_CONVERSION,CB_GETCURSEL,0,0));

				return TRUE;
			}
			break;
	}
	return FALSE;
}
Exemplo n.º 5
0
static BOOL CALLBACK DlgProcOptsSettings(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
	CNetwork* network=(CNetwork*)GetWindowLong(GetParent(hwndDlg),GWL_USERDATA);

	switch (msg) {
		case WM_INITDIALOG:	// Options dialog is being initialized
			{
				TranslateDialogDefault(hwndDlg);

				// Add server to list
				SendDlgItemMessage(hwndDlg,IDC_AVATARTYPE,CB_ADDSTRING,NULL,(LPARAM)TranslateT("Head Image and User Head"));
				SendDlgItemMessage(hwndDlg,IDC_AVATARTYPE,CB_ADDSTRING,NULL,(LPARAM)TranslateT("Head Image"));
				SendDlgItemMessage(hwndDlg,IDC_AVATARTYPE,CB_ADDSTRING,NULL,(LPARAM)TranslateT("QQ Show"));
				SendDlgItemMessage(hwndDlg,IDC_AVATARTYPE,CB_ADDSTRING,NULL,(LPARAM)TranslateT("None"));

				if (network) {
					SendDlgItemMessage(hwndDlg,IDC_AVATARTYPE,CB_SETCURSEL,DBGetContactSettingByte(NULL,network->m_szModuleName,QQ_AVATARTYPE,0),0);

					// Check Options
					//CHECK_CONTROL(IDC_BBCODE,QQ_ENABLEBBCODE);
					//CHECK_CONTROL(IDC_SHOWCHAT, DBGetContactSettingByte(NULL,network->m_szModuleName,QQ_SHOWCHAT,0));
					CHECK_CONTROL(IDC_NOADDIDENTITY,QQ_DISABLEIDENTITY);
					CHECK_CONTROL(IDC_REMOVENICKCHARS,QQ_REMOVENICKCHARS);
					CHECK_CONTROL(IDC_REPLYMODEMSG,QQ_REPLYMODEMSG);
					CHECK_CONTROL(IDC_CUSTOMBLOCK2,QQ_BLOCKEMPTYREQUESTS);
					CHECK_CONTROL(IDC_STATUSASPERSONAL,QQ_STATUSASPERSONAL);
					CHECK_CONTROL(IDC_WAITACK,QQ_WAITACK);
					CHECK_CONTROL(IDC_SHOWAD,QQ_SHOWAD);
					CHECK_CONTROL(IDC_MAILNOTIFY,QQ_MAILNOTIFY);
					CHECK_CONTROL(IDC_NOPROGRESSPOPUPS,QQ_NOPROGRESSPOPUPS);
				}

				return TRUE;
			}

		case WM_COMMAND:	// When a control is toggled
			SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
			break;

		case WM_NOTIFY:		// When a notify is sent by Options Dialog (Property Sheet)
			if (network && ((LPNMHDR)lParam)->code==PSN_APPLY) {
				int reconnectRequired=0;

				// Check Options
				WRITE_BYTE_SETTING(QQ_AVATARTYPE,SendDlgItemMessage(hwndDlg,IDC_AVATARTYPE,CB_GETCURSEL,0,0));

				CHECK_BYTE_SETTING(QQ_DISABLEIDENTITY,IDC_NOADDIDENTITY);
				WRITE_CHECK_SETTING(QQ_DISABLEIDENTITY,IDC_NOADDIDENTITY);

				CHECK_BYTE_SETTING(QQ_REMOVENICKCHARS,IDC_REMOVENICKCHARS);
				WRITE_CHECK_SETTING(QQ_REMOVENICKCHARS,IDC_REMOVENICKCHARS);

				WRITE_CHECK_SETTING(QQ_REPLYMODEMSG,IDC_REPLYMODEMSG);

				WRITE_CHECK_SETTING(QQ_BLOCKEMPTYREQUESTS,IDC_CUSTOMBLOCK2);

				WRITE_CHECK_SETTING(QQ_STATUSASPERSONAL,IDC_STATUSASPERSONAL);

				//CHECK_BYTE_SETTING(QQ_WAITACK,IDC_WAITACK);
				WRITE_CHECK_SETTING(QQ_WAITACK,IDC_WAITACK);
				network->m_needAck=IsDlgButtonChecked(hwndDlg,IDC_WAITACK);

				WRITE_CHECK_SETTING(QQ_SHOWAD,IDC_SHOWAD);
				WRITE_CHECK_SETTING(QQ_MAILNOTIFY,IDC_MAILNOTIFY);

				WRITE_CHECK_SETTING(QQ_NOPROGRESSPOPUPS,IDC_NOPROGRESSPOPUPS);

				if(Packet::isClientKeySet() && reconnectRequired) MessageBox(hwndDlg,TranslateT("The changes you have made require you to reconnect to the QQ network before they take effect"),APPNAME,MB_OK);
				return TRUE;
			}
			break;
	}
	return FALSE;
}