Public Member Functions | Protected Member Functions | Properties | Events

Romulus.Nes.ScreenViewport Class Reference

Windows Forms control that allows a user to scroll around large game areas. More...

List of all members.

Public Member Functions

 ScreenViewport ()
 Creates a new ScreenViewport.
virtual ScreenView CreateNewScreenView ()
 Override this method in a derived class to return a custom or derived ScreenView. (This method should not be called explicitly.).
virtual bool ShouldLoadScreen (CellIndex cellLocation)
 Override this method to identify which screens should be loaded and which screens should be empty.
void ReevaluateEmptyScreens ()
 This method re-evaluates which screens should be empty.
void InvalidateWorld (Rectangle worldRect)
 Invalidates a rectangle in world coordinates.
void ScrollScreen (int screensX, int screensY)
 Scrolls the view by the specified number of screens.
void ScrollView (int dx, int dy)
 Scrolls the view by the specified number of pixels.
void SetViewportLocation (Point location)
 Sets the rectangle of the game area that is visible.
void SetFocus (ScreenView view)
 Sets which ScreenView has focus.
void RequestUnfocus ()
 Causes no ScreenViews to have focus. Same effect as calling SetFocus(null).
void BeginUpdate ()
 Prevents the ScreenViewport from drawing until EndUpdate is called.
void EndUpdate ()
 To be called after calling BeginUpdate, when any necessary updates have been made.
void RedrawAll ()
 Rerenders and repaints all screens.
void Redraw (Predicate< ScreenView > condition)
 Rerenders and repaints all screens that meet the specified condition.
void Redraw (CellIndex cellLocation)
 Redraws and repaints a single screen.
Rectangle ConvertWorldToControl (Rectangle rect)
 Converts world coordinates to control coordinates.
Rectangle ConvertControlToWorld (Rectangle rect)
 Converts control coordinates to world coordinates.
Point ConvertWorldToControl (Point p)
 Converts world coordinates to control coordinates.
Point ConvertControlToWorld (Point p)
 Converts control coordinates to world coordinates.

Protected Member Functions

virtual ScreenViewCellType GetCellType ()
 Called when creating the ScreenViewPort. Override to specify a ScreenViewCellType other than the default. The returned value should not change throughout the lifetime of the ScreenViewport object.
virtual Padding GetCellPadding ()
 Called when creating the ScreenViewPort. Override to specify a padding other than the default. The returned value should not change throughout the lifetime of the ScreenViewport object.
virtual void OnRemovingScreen (EventArgs< ScreenView > e)
 Override this method to handle the RemovingScreen event.
virtual void OnAddingScreen (EventArgs< ScreenView > e)
 Override this method to handle the AddedScreen event.
override bool ProcessCmdKey (ref Message msg, Keys keyData)
 Causes the CmdKeyPressed event to be raised in response to ProcessCmdKey.
override void OnPaint (PaintEventArgs e)
 Override to handle the Paint event.
void OnPaintScans (RectangleF[] scans, PaintEventArgs e)
 Override to handle the PaintScans event.
void OnWorldViewChanged ()
 Override to handle the WorldViewChanged event.
override void OnMouseDown (MouseEventArgs e)
 Routes MouseDown event and handles scrolling.
override void OnResize (EventArgs e)
 Infrastructure. Handles Resize event.
override void OnMouseMove (MouseEventArgs e)
 Routes MouseMove event and handles scrolling.
override void OnMouseUp (MouseEventArgs e)
 Routes MouseUp event and handles scrolling.

Properties

ScreenViewCellType CellType [get]
 Gets the cell type used in this ScreenViewport.
Size CellSize [get]
 Gets the size of the cells in this ScreenViewport.
Padding CellPadding [get]
 Gets the amount of space that will appear around each screen image.
ScreenViewManager Screens [get]
 Gets the ScreenViewManager used by this control.
bool AllowUserScroll [get, set]
 If true, the user can drag with the middle mouse button (or the left button while holding the specified scroll key) to scroll the view around.
Keys ScrollKeys [get, set]
 Specifies which keys the user should hold whil dragging the mouse to scroll with the left mouse button.
int ScrollSpeed [get, set]
 Gets/sets the speed at which the control will be scrolled by the mouse. A value of 1 indicates the view will scroll at the same speed the mouse is moved.
System.Drawing.Rectangle WorldViewport [get]
 Gets the rectangle of the game area that is visible.
Rom Rom [get, set]
 Gets/sets the ROM associated with this control.
ScreenView FocusedScreenView [get]
 Gets the ScreenView that has input focus.

Events

EventHandler< EventArgs
< ScreenView > > 
AddedScreen
 Raised after a screen is added to the ScreenViewport.
EventHandler< EventArgs
< ScreenView > > 
RemovingScreen
 Raised before a screen is removed from the ScreenViewport.
KeyEventHandler CmdKeyPressed
 Raised when a command key is pressed.
EventHandler< EventArgs
< System.Drawing.Point > > 
WorldViewChanged
 Raised when the location of the viewport changes.

Detailed Description

Windows Forms control that allows a user to scroll around large game areas.

The ScreenViewport class should be inherited and customized to create a game-specific viewing/editing control. This generally also requires a customized ScreenView class.


Constructor & Destructor Documentation

Romulus.Nes.ScreenViewport.ScreenViewport (  ) 

Creates a new ScreenViewport.


Member Function Documentation

void Romulus.Nes.ScreenViewport.BeginUpdate (  ) 

Prevents the ScreenViewport from drawing until EndUpdate is called.

Rectangle Romulus.Nes.ScreenViewport.ConvertControlToWorld ( Rectangle  rect  ) 

Converts control coordinates to world coordinates.

Parameters:
rect Control coordinates to convert.
Returns:
Coordinates converted to world coordinates.
Point Romulus.Nes.ScreenViewport.ConvertControlToWorld ( Point  p  ) 

Converts control coordinates to world coordinates.

Parameters:
p Control coordinates to convert.
Returns:
Coordinates converted to world coordinates.
Point Romulus.Nes.ScreenViewport.ConvertWorldToControl ( Point  p  ) 

Converts world coordinates to control coordinates.

Parameters:
p World coordinates to convert.
Returns:
Coordinates converted to control coodrinates.
Rectangle Romulus.Nes.ScreenViewport.ConvertWorldToControl ( Rectangle  rect  ) 

Converts world coordinates to control coordinates.

Parameters:
rect World coordinates to convert.
Returns:
Coordinates converted to control coodrinates.
virtual ScreenView Romulus.Nes.ScreenViewport.CreateNewScreenView (  )  [virtual]

Override this method in a derived class to return a custom or derived ScreenView. (This method should not be called explicitly.).

Returns:
Returns a new ScreenView.
void Romulus.Nes.ScreenViewport.EndUpdate (  ) 

To be called after calling BeginUpdate, when any necessary updates have been made.

virtual Padding Romulus.Nes.ScreenViewport.GetCellPadding (  )  [protected, virtual]

Called when creating the ScreenViewPort. Override to specify a padding other than the default. The returned value should not change throughout the lifetime of the ScreenViewport object.

virtual ScreenViewCellType Romulus.Nes.ScreenViewport.GetCellType (  )  [protected, virtual]

Called when creating the ScreenViewPort. Override to specify a ScreenViewCellType other than the default. The returned value should not change throughout the lifetime of the ScreenViewport object.

void Romulus.Nes.ScreenViewport.InvalidateWorld ( Rectangle  worldRect  ) 

Invalidates a rectangle in world coordinates.

Parameters:
worldRect The invalid rectangle.
virtual void Romulus.Nes.ScreenViewport.OnAddingScreen ( EventArgs< ScreenView e  )  [protected, virtual]

Override this method to handle the AddedScreen event.

Parameters:
e Specifies the screenview the event is for.
override void Romulus.Nes.ScreenViewport.OnMouseDown ( MouseEventArgs  e  )  [protected]

Routes MouseDown event and handles scrolling.

Parameters:
e Event args.
override void Romulus.Nes.ScreenViewport.OnMouseMove ( MouseEventArgs  e  )  [protected]

Routes MouseMove event and handles scrolling.

Parameters:
e Event args.
override void Romulus.Nes.ScreenViewport.OnMouseUp ( MouseEventArgs  e  )  [protected]

Routes MouseUp event and handles scrolling.

Parameters:
e Event args.
override void Romulus.Nes.ScreenViewport.OnPaint ( PaintEventArgs  e  )  [protected]

Override to handle the Paint event.

Parameters:
e Arguments to the Paint event.
void Romulus.Nes.ScreenViewport.OnPaintScans ( RectangleF[]  scans,
PaintEventArgs  e 
) [protected]

Override to handle the PaintScans event.

Parameters:
scans The invalid scans.
e Arguments to the PaintScans event.
virtual void Romulus.Nes.ScreenViewport.OnRemovingScreen ( EventArgs< ScreenView e  )  [protected, virtual]

Override this method to handle the RemovingScreen event.

Parameters:
e Specifies the screenview the event is for.
override void Romulus.Nes.ScreenViewport.OnResize ( EventArgs  e  )  [protected]

Infrastructure. Handles Resize event.

Parameters:
e Event args.
void Romulus.Nes.ScreenViewport.OnWorldViewChanged (  )  [protected]

Override to handle the WorldViewChanged event.

override bool Romulus.Nes.ScreenViewport.ProcessCmdKey ( ref Message  msg,
Keys  keyData 
) [protected]

Causes the CmdKeyPressed event to be raised in response to ProcessCmdKey.

Parameters:
msg 
keyData 
Returns:
void Romulus.Nes.ScreenViewport.Redraw ( CellIndex  cellLocation  ) 

Redraws and repaints a single screen.

Parameters:
cellLocation The location of the screen to redraw.
void Romulus.Nes.ScreenViewport.Redraw ( Predicate< ScreenView condition  ) 

Rerenders and repaints all screens that meet the specified condition.

Parameters:
condition The condition to test screens for.
void Romulus.Nes.ScreenViewport.RedrawAll (  ) 

Rerenders and repaints all screens.

void Romulus.Nes.ScreenViewport.ReevaluateEmptyScreens (  ) 

This method re-evaluates which screens should be empty.

For example, if a different level is loaded into an existing ScreenViewport, and it is not the same shape as the previous level, this method should be called to re-asses which screens have content.

void Romulus.Nes.ScreenViewport.RequestUnfocus (  ) 

Causes no ScreenViews to have focus. Same effect as calling SetFocus(null).

void Romulus.Nes.ScreenViewport.ScrollScreen ( int  screensX,
int  screensY 
)

Scrolls the view by the specified number of screens.

Parameters:
screensX The number of screen widths to scroll the view.
screensY The number of screen heights to scroll the view.
void Romulus.Nes.ScreenViewport.ScrollView ( int  dx,
int  dy 
)

Scrolls the view by the specified number of pixels.

Parameters:
dx The distance to scroll the view.
dy The distance to scroll the view.
void Romulus.Nes.ScreenViewport.SetFocus ( ScreenView  view  ) 

Sets which ScreenView has focus.

Parameters:
view The view to get focus, or null to have no focused view.
void Romulus.Nes.ScreenViewport.SetViewportLocation ( Point  location  ) 

Sets the rectangle of the game area that is visible.

Parameters:
location 
virtual bool Romulus.Nes.ScreenViewport.ShouldLoadScreen ( CellIndex  cellLocation  )  [virtual]

Override this method to identify which screens should be loaded and which screens should be empty.

Parameters:
cellLocation The map location to test.
Returns:
True to indicate that the specified map location has content, false to indicate it is empty.

Property Documentation

bool Romulus.Nes.ScreenViewport.AllowUserScroll [get, set]

If true, the user can drag with the middle mouse button (or the left button while holding the specified scroll key) to scroll the view around.

Padding Romulus.Nes.ScreenViewport.CellPadding [get]

Gets the amount of space that will appear around each screen image.

Size Romulus.Nes.ScreenViewport.CellSize [get]

Gets the size of the cells in this ScreenViewport.

ScreenViewCellType Romulus.Nes.ScreenViewport.CellType [get]

Gets the cell type used in this ScreenViewport.

ScreenView Romulus.Nes.ScreenViewport.FocusedScreenView [get]

Gets the ScreenView that has input focus.

Rom Romulus.Nes.ScreenViewport.Rom [get, set]

Gets/sets the ROM associated with this control.

ScreenViewManager Romulus.Nes.ScreenViewport.Screens [get]

Gets the ScreenViewManager used by this control.

Keys Romulus.Nes.ScreenViewport.ScrollKeys [get, set]

Specifies which keys the user should hold whil dragging the mouse to scroll with the left mouse button.

int Romulus.Nes.ScreenViewport.ScrollSpeed [get, set]

Gets/sets the speed at which the control will be scrolled by the mouse. A value of 1 indicates the view will scroll at the same speed the mouse is moved.

System.Drawing.Rectangle Romulus.Nes.ScreenViewport.WorldViewport [get]

Gets the rectangle of the game area that is visible.


Event Documentation

EventHandler<EventArgs<ScreenView> > Romulus.Nes.ScreenViewport.AddedScreen

Raised after a screen is added to the ScreenViewport.

Screens are added to the control when they are scrolled into view.

KeyEventHandler Romulus.Nes.ScreenViewport.CmdKeyPressed

Raised when a command key is pressed.

EventHandler<EventArgs<ScreenView> > Romulus.Nes.ScreenViewport.RemovingScreen

Raised before a screen is removed from the ScreenViewport.

Screens are removed from the control when they are scrolled out of view.

EventHandler<EventArgs<System.Drawing.Point> > Romulus.Nes.ScreenViewport.WorldViewChanged

Raised when the location of the viewport changes.


The documentation for this class was generated from the following file:
 All Classes Namespaces Functions Variables Enumerations Properties Events