Main Page | Class Hierarchy | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals

InputAgent Class Reference

Inheritance diagram for InputAgent:

Inheritance graph
[legend]
Collaboration diagram for InputAgent:

Collaboration graph
[legend]

Detailed Description

Forward input events to handlers.

Definition at line 16 of file InputAgent.h.

Public Member Functions

void installHandler (InputHandler *handler)
KeyBinderkeyBinder ()

Protected Member Functions

virtual void own_init ()
 Enable SDL_UNICODE.
virtual void own_update ()
virtual void own_shutdown ()
 Delete console.


Member Function Documentation

void InputAgent::installHandler InputHandler handler  ) 
 

Definition at line 87 of file InputAgent.cpp.

00088 {
00089     if (m_handler) {
00090         m_handler->takePressed(NULL);
00091         m_handler->mouseState(V2(-1, -1), 0);
00092     }
00093     m_handler = handler;
00094     if (m_handler) {
00095         m_handler->takePressed(m_keys);
00096         Uint8 buttons;
00097         V2 mouseLoc = getMouseState(&buttons);
00098         m_handler->mouseState(mouseLoc, buttons);
00099     }
00100 }

KeyBinder* InputAgent::keyBinder  )  [inline]
 

Definition at line 31 of file InputAgent.h.

00031 { return m_keyBinder; }

void InputAgent::own_init  )  [protected, virtual]
 

Enable SDL_UNICODE.

Enable key repeat. Set console handler to ScriptAgent.

NOTE: every SDL_InitSubSystem will disable UNICODE hence InputAgent init must be after VideoAgent and SoundAgent. NOTE: KeyConsole() use Path which asks OptionAgent

Reimplemented from BaseAgent.

Definition at line 33 of file InputAgent.cpp.

00034 {
00035     m_keyBinder = new KeyBinder();
00036     m_handler = NULL;
00037     m_keys = SDL_GetKeyState(NULL);
00038 
00039     SDL_EnableUNICODE(1);
00040 }

void InputAgent::own_shutdown  )  [protected, virtual]
 

Delete console.

Reimplemented from BaseAgent.

Definition at line 81 of file InputAgent.cpp.

00082 {
00083     delete m_keyBinder;
00084 }

void InputAgent::own_update  )  [protected, virtual]
 

Reimplemented from BaseAgent.

Definition at line 43 of file InputAgent.cpp.

00044 {
00045     SDL_Event event;
00046     while (SDL_PollEvent(&event)) {
00047         switch (event.type) {
00048             case SDL_QUIT:
00049                 {
00050                     BaseMsg *msg = new SimpleMsg(Name::APP_NAME, "quit");
00051                     MessagerAgent::agent()->forwardNewMsg(msg);
00052                     break;
00053                 }
00054             case SDL_KEYDOWN:
00055                 m_keyBinder->keyDown(event.key.keysym);
00056                 if (m_handler) {
00057                     m_handler->keyEvent(KeyStroke(event.key.keysym));
00058                 }
00059                 break;
00060             case SDL_MOUSEBUTTONDOWN:
00061                 if (m_handler) {
00062                     m_handler->mouseEvent(MouseStroke(event.button));
00063                 }
00064                 break;
00065             default:
00066                 break;
00067         }
00068     }
00069 
00070     if (m_handler) {
00071         Uint8 buttons;
00072         V2 mouseLoc = getMouseState(&buttons);
00073         m_handler->mouseState(mouseLoc, buttons);
00074     }
00075 }


The documentation for this class was generated from the following files:
Generated on Wed Jun 1 09:55:23 2005 for Fish Fillets - Next Generation by  doxygen 1.4.2