示例#1
0
PEDITOR CreateEditor( POBJECT po )
{
	PEDITOR pe;
	pe = (PEDITOR)Allocate( sizeof( EDITOR ) );
	MemSet( pe, 0, sizeof( EDITOR ) );
	pe->TView = CreateTransform();
	pe->hVideo = OpenDisplaySizedAt( 0, -1, -1, -1, -1 );
	//InitVideo( "World Editor" );
	SetRedrawHandler( pe->hVideo, (void (CPROC*)(uintptr_t,PRENDERER))EditResizeCallback, (uintptr_t)pe );
	SetMouseHandler( pe->hVideo, EditMouseCallback, (uintptr_t)pe );
	BindEventToKey( pe->hVideo, KEY_PGUP, 0, PageUpKey, (uintptr_t)pe );
	BindEventToKey( pe->hVideo, KEY_PGDN, 0, PageDownKey, (uintptr_t)pe );
  // SetCloseHandler( pe->hVideo, EditCloseCallback, (uintptr_t)pe );

	// menu for this instance....
#ifdef __WINDOWS__
	pe->hMenu = CreatePopup(); //CreatePopupMenu();
	AppendPopupItem( pe->hMenu, MF_STRING, MNU_ADDPREDEF+0, "Add Square" );
	AppendPopupItem( pe->hMenu, MF_STRING, MNU_ADDPREDEF+1, "Add Triangle" );
	AppendPopupItem( pe->hMenu, MF_STRING, MNU_ADDLINE, "Add Line" );
#else
	pe->hMenu = NULL;
#endif
	SetPoint( vToScreen, VectorConst_Z ); // facing into screen...
	Invert( vToScreen );	 // facing out of screen...

	pe->pCurrent = po;
	pe->pCurrentFacet = NULL; //po->objinfo.FacetPool.pFacets + 0;
	pe->pCurrentLine = NULL; //po->objinfo.LinePool.pLines + 0;

	ClearTransform( pe->TView );
	Translate( pe->TView, 0, 
						  0, 
						  (RCOORD)-100.0 );

	pe->bLocked = FALSE;

	EditResizeCallback( (uintptr_t)pe);
	UpdateDisplay( pe->hVideo );
	return pe;
}
示例#2
0
void AddImage( char *name )
{
   PIMAGE_DISPLAY pdi;
	pdi = New( IMAGE_DISPLAY );

	pdi->Loaded = LoadImageFile( name );
	if( !pdi->Loaded )
	{
		Release( pdi );
      return;
	}
   pdi->display = OpenDisplaySizedAt( 0
												, pdi->Loaded->width, pdi->Loaded->height
												, g.x, g.y );
	SetRedrawHandler( pdi->display, DrawImage, (uintptr_t)pdi );
   DrawImage( (uintptr_t)pdi, pdi->display );
	SetKeyboardHandler( pdi->display, KeyHandler, 0 );
	g.x += 10;
   g.y += 10;
	if( ( pdi->next = g.images ) )
      pdi->next->me = &pdi->next;
	pdi->me = &g.images;
	g.images = pdi;
}
示例#3
0
SaneWinMain(argc, argv )
//int main( int argc, char **argv )
{
	int x = 0;
	int y = 0;
	uint32_t width, height;
	int w, h;
	g.pdi = GetDisplayInterface();
	g.pii = GetImageInterface();
	RegisterIcon( NULL );
	GetDisplaySize( &width, &height );
	w = width; h = height;


	y = x  = 0;

	{
		int state = 0;
		int arg;
		g.fade_in = 500;
		g.show_time = 1000;
		for( arg = 1; arg < argc; arg++ )
		{

			if( argv[arg][0] == '-' )
			{
				if( argv[arg][1] == 'i' )
				{
					g.flags.bShowInverted = 1;
				}
				else
				{
					switch( state )
					{
					case 0:
						x = atoi( argv[arg]+1 );
						break;
					case 1:
						y = atoi( argv[arg]+1 );
						break;
					case 2:
						w = atoi( argv[arg]+1 );
						break;
					case 3:
						h = atoi( argv[arg]+1 );
						break;
					case 4:
						g.show_time = atoi( argv[arg]+1 );
						break;
					case 5:
						g.fade_in = atoi( argv[arg]+1 );
						break;
					}
					state++;
				}
			}
			else
			{
				Image x = LoadImageFile( argv[arg] );
				if( x )
				{
					g.nImages++;
					AddLink( &g.images, x );
				}
			}
		}
	}

	if( g.nImages )
	{
		g.displays[0] = OpenDisplaySizedAt( DISPLAY_ATTRIBUTE_LAYERED|DISPLAY_ATTRIBUTE_CHILD|DISPLAY_ATTRIBUTE_NO_MOUSE|DISPLAY_ATTRIBUTE_NO_AUTO_FOCUS
													 , w //width
													 , h //height
													 , x //0
													 , y //0
													 );
		g.displays[1] = OpenDisplaySizedAt( DISPLAY_ATTRIBUTE_LAYERED|DISPLAY_ATTRIBUTE_CHILD|DISPLAY_ATTRIBUTE_NO_MOUSE|DISPLAY_ATTRIBUTE_NO_AUTO_FOCUS
													 , w //width
													 , h //height
													 , x //0
													 , y //0
													 );

		SetRedrawHandler( g.displays[0], Output, 0 );
		SetRedrawHandler( g.displays[1], Output, 1 );

		if( g.nImages > 1 )
		{
			target_in_start = GetTickCount();
			AddTimer( 33, tick, 0 );
		}
		else
		{
			//lprintf( "Show the first and only the first image." );
			g.is_up[0] = 1;
			RestoreDisplay( g.displays[0] );
			UpdateDisplay( g.displays[0] );
		}

		while( 1 )
			WakeableSleep( 10000 );
	}
	else
	{
	}
	return 0;
}