コード例 #1
0
ファイル: Cheat.c プロジェクト: bsv798/pcsxr
static void OnCheatListDlg_AddClicked(GtkWidget *widget, gpointer user_data) {
	GtkWidget *dlg;
	GtkWidget *box, *scroll, *label, *descr_edit, *code_edit;

	dlg = gtk_dialog_new_with_buttons(_("Add New Cheat"), GTK_WINDOW(CheatListDlg),
		GTK_DIALOG_MODAL, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
		GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL);

	gtk_window_set_default_size(GTK_WINDOW(dlg), 350, 350);

	box = GTK_WIDGET(gtk_dialog_get_content_area(GTK_DIALOG(dlg)));

	label = gtk_label_new(_("Cheat Description:"));
	gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 5);
	gtk_widget_show(label);

	descr_edit = gtk_entry_new();
	gtk_box_pack_start(GTK_BOX(box), descr_edit, FALSE, FALSE, 5);
	gtk_widget_show(descr_edit);

	label = gtk_label_new(_("Cheat Code:"));
	gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 5);
	gtk_widget_show(label);

	code_edit = gtk_text_view_new();
	gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(code_edit), GTK_WRAP_CHAR);

	scroll = gtk_scrolled_window_new(NULL, NULL);
	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll),
		GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);

	gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scroll), code_edit);
	gtk_widget_show(code_edit);

	gtk_box_pack_start(GTK_BOX(box), scroll, TRUE, TRUE, 5);
	gtk_widget_show(scroll);

	gtk_window_set_position(GTK_WINDOW(dlg), GTK_WIN_POS_CENTER);

	gtk_widget_show_all(dlg);

	if (gtk_dialog_run(GTK_DIALOG(dlg)) == GTK_RESPONSE_ACCEPT) {
		GtkTextBuffer *b = gtk_text_view_get_buffer(GTK_TEXT_VIEW(code_edit));
		GtkTextIter s, e;
		char *codetext;

		gtk_text_buffer_get_bounds(GTK_TEXT_BUFFER(b), &s, &e);
		codetext = strdup(gtk_text_buffer_get_text(GTK_TEXT_BUFFER(b), &s, &e, FALSE));

		if (AddCheat(gtk_entry_get_text(GTK_ENTRY(descr_edit)), codetext) != 0) {
			SysErrorMessage(_("Error"), _("Invalid cheat code!"));
		}

		LoadCheatListItems(NumCheats - 1);

		free(codetext);
	}

	gtk_widget_destroy(dlg);
}
コード例 #2
0
ファイル: cheats.cpp プロジェクト: mauzus/progenitor
BOOL CALLBACK FinderProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
	int wmId,wmEvent;
	LRESULT lStyle;

	switch(uMsg)
	{

		case WM_PAINT:
			INIT_CHECK(IDC_UNSIGNED,Unsigned);
			return FALSE;

		case WM_INITDIALOG:
			mptr[0]=eeMem->Main;
			mptr[1]=psxM;

			hWndFinder=hWnd;

			ENABLE_CONTROL(IDC_VALUE,false);

			GROUP_INIT(IDC_EE,Source);
				GROUP_SELECT(IDC_EE);
				GROUP_SELECT(IDC_IOP);

			GROUP_INIT(IDC_OLD,CompareTo);
				GROUP_SELECT(IDC_OLD);
				GROUP_SELECT(IDC_SET);
				ENABLE_CONTROL(IDC_VALUE,(CompareTo!=0));

			GROUP_INIT(IDC_EQ,Compare);
				GROUP_SELECT(IDC_EQ);
				GROUP_SELECT(IDC_GT);
				GROUP_SELECT(IDC_LT);
				GROUP_SELECT(IDC_GE);
				GROUP_SELECT(IDC_LE);
				GROUP_SELECT(IDC_NE);

			GROUP_INIT(IDC_8B,Size);
				GROUP_SELECT(IDC_8B);
				GROUP_SELECT(IDC_16B);
				GROUP_SELECT(IDC_32B);
				GROUP_SELECT(IDC_64B);

			INIT_CHECK(IDC_UNSIGNED,Unsigned);

			//Listview Init
			lStyle = SendMessage(GetDlgItem(hWnd,IDC_RESULTS), LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0);
			SendMessage(GetDlgItem(hWnd,IDC_RESULTS), LVM_SETEXTENDEDLISTVIEWSTYLE, 0, lStyle | LVS_EX_FULLROWSELECT);

			ListView_InsertColumn(GetDlgItem(hWnd,IDC_RESULTS),0,&cols[0]);
			ListView_InsertColumn(GetDlgItem(hWnd,IDC_RESULTS),1,&cols[1]);
			ListView_InsertColumn(GetDlgItem(hWnd,IDC_RESULTS),2,&cols[2]);

			if(FirstShow)
			{
				SearchReset();
				SetWindowText(GetDlgItem(hWnd,IDC_MATCHES),"ready to search.");
				FirstShow=false;
			}
			else {
				AddResults(hWnd);
			}

			break;
		case WM_COMMAND:
			wmId    = LOWORD(wParam);
			wmEvent = HIWORD(wParam);
			// Parse the menu selections:
			switch (wmId)
			{
				case IDCANCEL:
					EndDialog(hWnd,1);
					break;

				case IDC_ADD:
					AddCheat(pInstance,hWnd);
					break;

				case IDC_RESET:
					ENABLE_CONTROL(IDC_EE,		true);
					ENABLE_CONTROL(IDC_IOP,		true);
					ENABLE_CONTROL(IDC_STATUS,	true);
					ENABLE_CONTROL(IDC_UNSIGNED,true);
					ENABLE_CONTROL(IDC_8B,		true);
					ENABLE_CONTROL(IDC_16B,		true);
					ENABLE_CONTROL(IDC_32B,		true);
					ENABLE_CONTROL(IDC_64B,		true);
					SetWindowText(GetDlgItem(hWnd,IDC_MATCHES),"ready to search.");
					SearchReset();
					ListView_DeleteAllItems(GetDlgItem(hWnd,IDC_RESULTS));
					break;

				case IDC_SEARCH:
					GetWindowText(GetDlgItem(hWnd,IDC_VALUE),mtext,100);
					CompareValue=atoi(mtext);
					ENABLE_CONTROL(IDC_SEARCH,	false);
					ENABLE_CONTROL(IDC_RESET,	false);
					ENABLE_CONTROL(IDC_ADD,		false);
					ENABLE_CONTROL(IDCANCEL,	false);
					if(FirstSearch) {
						ENABLE_CONTROL(IDC_EE,		false);
						ENABLE_CONTROL(IDC_IOP,		false);
						ENABLE_CONTROL(IDC_STATUS,	false);
						ENABLE_CONTROL(IDC_UNSIGNED,false);
						ENABLE_CONTROL(IDC_8B,		false);
						ENABLE_CONTROL(IDC_16B,		false);
						ENABLE_CONTROL(IDC_32B,		false);
						ENABLE_CONTROL(IDC_64B,		false);
						SearchFirst();
					}
					else			SearchMore();

					AddResults(hWnd);

					memcpy(olds,mptr[Source],msize[Source]);

					ENABLE_CONTROL(IDC_SEARCH,	true);
					ENABLE_CONTROL(IDC_RESET,	true);
					ENABLE_CONTROL(IDC_ADD,		true);
					ENABLE_CONTROL(IDCANCEL,	true);

					break;

				HANDLE_CHECK(IDC_UNSIGNED,Unsigned);

				HANDLE_GROUP_ITEM(IDC_EE);
				HANDLE_GROUP_ITEM(IDC_IOP);
				BEGIN_GROUP_HANDLER(IDC_EE,Source);
					GROUP_SELECT(IDC_EE);
					GROUP_SELECT(IDC_IOP);
					break;

				HANDLE_GROUP_ITEM(IDC_OLD);
				HANDLE_GROUP_ITEM(IDC_SET);
				BEGIN_GROUP_HANDLER(IDC_OLD,CompareTo);
					GROUP_SELECT(IDC_OLD);
					GROUP_SELECT(IDC_SET);
					ENABLE_CONTROL(IDC_VALUE,(CompareTo!=0));
					break;

				HANDLE_GROUP_ITEM(IDC_EQ);
				HANDLE_GROUP_ITEM(IDC_GT);
				HANDLE_GROUP_ITEM(IDC_LT);
				HANDLE_GROUP_ITEM(IDC_GE);
				HANDLE_GROUP_ITEM(IDC_LE);
				HANDLE_GROUP_ITEM(IDC_NE);
				BEGIN_GROUP_HANDLER(IDC_EQ,Compare);
					GROUP_SELECT(IDC_EQ);
					GROUP_SELECT(IDC_GT);
					GROUP_SELECT(IDC_LT);
					GROUP_SELECT(IDC_GE);
					GROUP_SELECT(IDC_LE);
					GROUP_SELECT(IDC_NE);
					break;

				HANDLE_GROUP_ITEM(IDC_8B);
				HANDLE_GROUP_ITEM(IDC_16B);
				HANDLE_GROUP_ITEM(IDC_32B);
				HANDLE_GROUP_ITEM(IDC_64B);
				BEGIN_GROUP_HANDLER(IDC_8B,Size);
					GROUP_SELECT(IDC_8B);
					GROUP_SELECT(IDC_16B);
					GROUP_SELECT(IDC_32B);
					GROUP_SELECT(IDC_64B);
					break;

				default:
					return FALSE;
			}
			break;
		default:
			return FALSE;
	}
	return TRUE;
}
コード例 #3
0
ファイル: Cheat.c プロジェクト: bsv798/pcsxr
// add cheat code to freeze the value
static void OnCheatSearchDlg_FreezeClicked(GtkWidget *widget, gpointer user_data) {
	GtkWidget	   *dlg;
	GtkWidget	   *box, *hbox, *label, *descr_edit, *value_edit;
	char			buf[256];
	u32				addr, val = 0;

	addr = SearchResults[GetSelectedResultIndex()];

	dlg = gtk_dialog_new_with_buttons(_("Freeze value"), GTK_WINDOW(CheatListDlg),
		GTK_DIALOG_MODAL, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,
		GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, NULL);

	box = GTK_WIDGET(gtk_dialog_get_content_area(GTK_DIALOG(dlg)));

	label = gtk_label_new(_("Description:"));
	gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 5);
	gtk_widget_show(label);

	descr_edit = gtk_entry_new();
	gtk_box_pack_start(GTK_BOX(box), descr_edit, FALSE, FALSE, 10);
	gtk_widget_show(descr_edit);

	hbox = gtk_hbox_new(FALSE, 0);
	gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 15);

	label = gtk_label_new(_("Value:"));
	gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5);
	gtk_widget_show(label);

	value_edit = gtk_entry_new();
	gtk_box_pack_start(GTK_BOX(hbox), value_edit, FALSE, FALSE, 10);
	gtk_widget_show(value_edit);

	switch (current_searchtype) {
		case SEARCHTYPE_8BIT:
			val = PSXMu8(addr);
			break;

		case SEARCHTYPE_16BIT:
			val = PSXMu16(addr);
			break;

		case SEARCHTYPE_32BIT:
			val = PSXMu32(addr);
			break;

		default:
			assert(FALSE); // should not reach here
			break;
	}

	sprintf(buf, "%u", val);
	gtk_entry_set_text(GTK_ENTRY(value_edit), buf);

	sprintf(buf, "%.8X", addr);
	gtk_entry_set_text(GTK_ENTRY(descr_edit), buf);

	gtk_window_set_position(GTK_WINDOW(dlg), GTK_WIN_POS_CENTER);
	gtk_widget_show_all(dlg);

	if (gtk_dialog_run(GTK_DIALOG(dlg)) == GTK_RESPONSE_ACCEPT) {
		val = 0;
		sscanf(gtk_entry_get_text(GTK_ENTRY(value_edit)), "%u", &val);

		switch (current_searchtype) {
			case SEARCHTYPE_8BIT:
				if (val > (u32)0xFF) {
					val = 0xFF;
				}
				sprintf(buf, "%.8X %.4X", (addr & 0x1FFFFF) | (CHEAT_CONST8 << 24), val);
				break;

			case SEARCHTYPE_16BIT:
				if (val > (u32)0xFFFF) {
					val = 0xFFFF;
				}
				sprintf(buf, "%.8X %.4X", (addr & 0x1FFFFF) | (CHEAT_CONST16 << 24), val);
				break;

			case SEARCHTYPE_32BIT:
				sprintf(buf, "%.8X %.4X\n%.8X %.4X",
					(addr & 0x1FFFFF) | (CHEAT_CONST16 << 24), val & 0xFFFF,
					((addr + 2) & 0x1FFFFF) | (CHEAT_CONST16 << 24), ((val & 0xFFFF0000) >> 16) & 0xFFFF);
				break;

			default:
				assert(FALSE); // should not reach here
				break;
		}

		if (AddCheat(gtk_entry_get_text(GTK_ENTRY(descr_edit)), buf) == 0) {
			Cheats[NumCheats - 1].Enabled = 1;
		}
	}