Esempio n. 1
0
File: draw.c Progetto: ale-naou/fdf
void		draw(t_env *e)
{
	e->i = 0;
	img_init(e);
	while (e->i + 1 < e->p.lenmax)
	{
		iso_init(e);
		if (e->a[e->i]->y == e->a[e->i + 1]->y)
		{
			iso_converth(e);
			draw_line(e);
		}
		if (e->i + e->p.lenx < e->p.lenmax)
		{
			iso_convertv(e);
			draw_line(e);
		}
		e->i++;
	}
	mlx_hook(e->win, 2, 1, keyfnc, e);
	mlx_put_image_to_window(e->mlx, e->win, e->img.adr, 0, 0);
	optionsdisplay(e);
	mlx_loop(e->mlx);
}
Esempio n. 2
0
GtkTreeStore * read_cd ( char *dev,int block )
{
	TrackData *cd_data=main_app->cd_data;
	int result;
	IsoImageFilesystem *fs;
	IsoDataSource *src;
	IsoFileSource *root;
	IsoReadOpts *ropts;


	iso_init();
	iso_set_msgs_severities ( "NEVER", "ALL", "" );

	result = iso_data_source_new_from_file ( dev, &src );
	if ( result < 0 )
	{
		printf ( "Error creating data source\n" );
		show_error("Error creating data source ");
		return NULL;
	}

	result = iso_read_opts_new ( &ropts, 0 );



	iso_read_opts_set_start_block ( ropts,cd_data[ block].track_start );

	if ( result < 0 )
	{
		fprintf ( stderr, "Error creating read options\n" );
		show_error("Error creating read options ");
		return NULL;
	}
	result = iso_image_filesystem_new ( src, ropts, 1, &fs );
	iso_read_opts_free ( ropts );
	if ( result < 0 )
	{
		printf ( "Error creating filesystem\n" );
		show_error("Error creating filesystem");
		return NULL;
	}
	GtkListStore  *store;
	GtkTreeIter    iter;
	GString *string=g_string_new("");
	store = gtk_list_store_new ( 2, G_TYPE_STRING ,G_TYPE_STRING );


	g_string_printf(string,"%ld * 2kB",cd_data[ block].track_start);
	gtk_list_store_append ( store, &iter );
	gtk_list_store_set ( store, &iter, 0, "Track Start",1,string->str,-1 );

	g_string_printf(string,"%ld * 2kB",cd_data[ block].track_end);
	gtk_list_store_append ( store, &iter );
	gtk_list_store_set ( store, &iter, 0, "Track End",1,string->str,-1 );

	g_string_printf(string,"%ld * 2kB",cd_data[ block].track_size);
	gtk_list_store_append ( store, &iter );
	gtk_list_store_set ( store, &iter, 0, "Track Size",1,string->str,-1 );

	gtk_list_store_append ( store, &iter );
	gtk_list_store_set ( store, &iter, 0, "Vol. id: ",1,iso_image_fs_get_volume_id ( fs ),-1 );
	gtk_list_store_append ( store, &iter );
	gtk_list_store_set ( store, &iter, 0, "Publisher ",1,iso_image_fs_get_publisher_id ( fs ),-1 );
	gtk_list_store_append ( store, &iter );
	gtk_list_store_set ( store, &iter, 0, "Data preparer ",1,iso_image_fs_get_data_preparer_id ( fs ),-1 );
	gtk_list_store_append ( store, &iter );
	gtk_list_store_set ( store, &iter, 0, "System ",1,iso_image_fs_get_system_id ( fs ),-1 );
	gtk_list_store_append ( store, &iter );
	gtk_list_store_set ( store, &iter, 0, "Application ",1,iso_image_fs_get_application_id ( fs ),-1 );
	gtk_list_store_append ( store, &iter );
	gtk_list_store_set ( store, &iter, 0, "Copyright ",1,iso_image_fs_get_copyright_file_id ( fs ),-1 );
	gtk_list_store_append ( store, &iter );
	gtk_list_store_set ( store, &iter, 0, "Abstract ",1,iso_image_fs_get_abstract_file_id ( fs ),-1 );
	gtk_list_store_append ( store, &iter );
	gtk_list_store_set ( store, &iter, 0, "Biblio ",1,iso_image_fs_get_biblio_file_id ( fs ),-1 );
	cd_data[ block].track_info=store;


	result = fs->get_root ( fs, &root );
	if ( result < 0 )
	{
		printf ( "Can't get root %d\n", result );
		show_error("Can't get root ");
		return NULL;
	}
	GtkTreeIter root_iter;
	GtkTreeStore * tree_store  ;
	tree_store  = gtk_tree_store_new ( 1,G_TYPE_STRING );
	root_iter.stamp=0;

	create_tree ( root, tree_store,root_iter );
	iso_file_source_unref ( root );

	fs->close ( fs );
	iso_filesystem_unref ( ( IsoFilesystem* ) fs );
	iso_data_source_unref ( src );
	iso_finish();
	return tree_store;
}
Esempio n. 3
0
/**
 * Window procedure to handle events on the main program window
 *
 * @param hdlg    Handle to current program instance
 * @param message Event type this window has just received
 * @param wParam  message specific data
 * @param lParam  message specific data
 * @return
 */
static LRESULT CALLBACK WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
        HMENU hmenu;
        switch (message)                  /* handle the messages */
        {
        case WM_CREATE:
                strcpy(config.isoname, "");
                return 0;

        case WM_COMMAND:
                hmenu=GetMenu(hwnd);
                switch (LOWORD(wParam))
                {
                case IDM_FILE_RESET:
                        resetrpc();
                        return 0;

                case IDM_FILE_EXIT:
                        closevideo();
                        PostQuitMessage(0);
                        return 0;

                case IDM_DISC_LD0:
                        changedisc(ghwnd,0);
                        return 0;

                case IDM_DISC_LD1:
                        changedisc(ghwnd,1);
                        return 0;

                case IDM_CONFIG:
                        DialogBox(hinstance,TEXT("ConfigureDlg"),ghwnd,configdlgproc);
                        return 0;

                case IDM_NETWORKING:
                        DialogBox(hinstance, TEXT("NetworkDlg"), ghwnd, networkdlgproc);
                        return 0;

                case IDM_FULLSCR:
                        if (mousecapture)
                        {
                                ClipCursor(&oldclip);
                                mousecapture=0;
                        }
                        togglefullscreen(1);
                        return 0;

		case IDM_CPUIDLE:
			if (MessageBox(ghwnd, "This will reset RPCEmu!\nOkay to continue?", "RPCEmu", MB_OKCANCEL) == IDOK) {
				config.cpu_idle ^= 1;
				resetrpc();
				CheckMenuItem(hmenu, IDM_CPUIDLE, config.cpu_idle ? MF_CHECKED : MF_UNCHECKED);
			}
			return 0;

                case IDM_CDROM_DISABLED:
                        if (config.cdromenabled)
                        {
                                if (MessageBox(ghwnd, "This will reset RPCEmu!\nOkay to continue?", "RPCEmu", MB_OKCANCEL) == IDOK)
                                {
                                        config.cdromenabled = 0;
                                        resetrpc();
                                        CheckMenuItem(hmenu, IDM_CDROM_DISABLED + config.cdromtype, MF_UNCHECKED);
                                        config.cdromtype = IDM_CDROM_DISABLED - IDM_CDROM_DISABLED;
                                        CheckMenuItem(hmenu, IDM_CDROM_DISABLED + config.cdromtype, MF_CHECKED);
                                }
                        }
                        return 0;

                case IDM_CDROM_EMPTY:
                        if (!config.cdromenabled)
                        {
                                if (MessageBox(ghwnd, "This will reset RPCEmu!\nOkay to continue?", "RPCEmu", MB_OKCANCEL) == IDOK)
                                {
                                        config.cdromenabled = 1;
                                        resetrpc();
                                }
                                else
                                   return 0;
                        }
                        atapi->exit();
                        iso_init();
                        CheckMenuItem(hmenu, IDM_CDROM_DISABLED + config.cdromtype, MF_UNCHECKED);
                        config.cdromtype = IDM_CDROM_EMPTY - IDM_CDROM_DISABLED;
                        CheckMenuItem(hmenu, IDM_CDROM_DISABLED + config.cdromtype, MF_CHECKED);
                        return 0;

                case IDM_CDROM_ISO:
                        if (selectiso(ghwnd))
                        {
                                if (!config.cdromenabled)
                                {
                                        if (MessageBox(ghwnd, "This will reset RPCEmu!\nOkay to continue?", "RPCEmu", MB_OKCANCEL) == IDOK)
                                        {
                                                config.cdromenabled = 1;
                                                resetrpc();
                                        }
                                        else
                                           return 0;
                                }
                                atapi->exit();
                                iso_open(config.isoname);
                        }
                        CheckMenuItem(hmenu, IDM_CDROM_DISABLED + config.cdromtype, MF_UNCHECKED);
                        config.cdromtype = IDM_CDROM_ISO - IDM_CDROM_DISABLED;
                        CheckMenuItem(hmenu, IDM_CDROM_DISABLED + config.cdromtype, MF_CHECKED);
                        return 0;

                case IDM_MOUSE_FOL:
                        CheckMenuItem(hmenu,IDM_MOUSE_FOL,MF_CHECKED);
                        CheckMenuItem(hmenu,IDM_MOUSE_CAP,MF_UNCHECKED);
                        config.mousehackon = 1;
                        if (mousecapture)
                        {
                                ClipCursor(&oldclip);
                                mousecapture=0;
                        }
                        return 0;

                case IDM_MOUSE_CAP:
                        CheckMenuItem(hmenu,IDM_MOUSE_FOL,MF_UNCHECKED);
                        CheckMenuItem(hmenu,IDM_MOUSE_CAP,MF_CHECKED);
                        config.mousehackon = 0;
                        return 0;

                case IDM_MOUSE_TWOBUTTON:
                        config.mousetwobutton ^= 1;
                        CheckMenuItem(hmenu, IDM_MOUSE_TWOBUTTON,
                                      config.mousetwobutton ? MF_CHECKED : MF_UNCHECKED);
                        return 0;

		case IDM_HELP_ONLINE_MANUAL:
			launch_url(URL_MANUAL);
			return 0;

		case IDM_HELP_VISIT_WEBSITE:
			launch_url(URL_WEBSITE);
			return 0;

		case IDM_HELP_ABOUT:
			if (!IsWindow(hwnd_about)) {
				hwnd_about = CreateDialog(hinstance, MAKEINTRESOURCE(IDD_ABOUT), ghwnd, about_dlg_proc);
				window_centre_parent(hwnd_about, ghwnd);
				ShowWindow(hwnd_about, SW_SHOW);
			}
			return 0;
		}

                if (LOWORD(wParam)>=IDM_CDROM_REAL && LOWORD(wParam)<(IDM_CDROM_REAL+100))
                {
                        if (!config.cdromenabled)
                        {
                                if (MessageBox(ghwnd, "This will reset RPCEmu!\nOkay to continue?", "RPCEmu", MB_OKCANCEL) == IDOK)
                                {
                                        config.cdromenabled = 1;
                                        resetrpc();
                                }
                                else
                                   return 0;
                        }
                        atapi->exit();
                        ioctl_open(LOWORD(wParam)-IDM_CDROM_REAL);
                        CheckMenuItem(hmenu, IDM_CDROM_DISABLED + config.cdromtype, MF_UNCHECKED);
                        config.cdromtype = LOWORD(wParam) - IDM_CDROM_DISABLED;
                        CheckMenuItem(hmenu, IDM_CDROM_DISABLED + config.cdromtype, MF_CHECKED);
                        return 0;
                }
                break;

        case WM_DESTROY:
                closevideo();
                PostQuitMessage (0);       /* send a WM_QUIT to the message queue */
                break;

        case WM_SETFOCUS:
                resetbuffer();
                break;

        case WM_KILLFOCUS:
                if (mousecapture)
                {
                        ClipCursor(&oldclip);
                        mousecapture=0;
                }
                break;

        case WM_LBUTTONUP:
                if (!mousecapture && !fullscreen && !config.mousehackon)
                {
                        RECT arcclip;

                        GetClipCursor(&oldclip);
                        GetWindowRect(hwnd,&arcclip);
                        arcclip.left+=GetSystemMetrics(SM_CXFIXEDFRAME)+10;
                        arcclip.right-=GetSystemMetrics(SM_CXFIXEDFRAME)+10;
                        arcclip.top+=GetSystemMetrics(SM_CXFIXEDFRAME)+GetSystemMetrics(SM_CYMENUSIZE)+GetSystemMetrics(SM_CYCAPTION)+10;
                        arcclip.bottom-=GetSystemMetrics(SM_CXFIXEDFRAME)+10;
                        ClipCursor(&arcclip);
                        mousecapture=1;
                        updatemips=1;
                }
                break;

        default:                      /* for messages that we don't deal with */
                return DefWindowProc (hwnd, message, wParam, lParam);
        }

        return 0;
}