g4tools  5.4.0
Public Member Functions | Protected Attributes | List of all members
tools::X11::simple_dispatcher Class Referenceabstract
Inheritance diagram for tools::X11::simple_dispatcher:
Inheritance graph
[legend]
Collaboration diagram for tools::X11::simple_dispatcher:
Collaboration graph
[legend]

Public Member Functions

virtual void win_render ()=0
 
virtual void set_size (unsigned int a_width, unsigned int a_height)=0
 
virtual bool dispatch (XEvent &a_event)
 
virtual Window window () const
 
 simple_dispatcher (base_session &a_session, Window a_win)
 
virtual ~simple_dispatcher ()
 
 simple_dispatcher (const simple_dispatcher &a_from)
 
simple_dispatcheroperator= (const simple_dispatcher &a_from)
 
- Public Member Functions inherited from tools::X11::dispatcher
virtual dispatchercopy () const =0
 
 dispatcher ()
 
virtual ~dispatcher ()
 
 dispatcher (const dispatcher &a_from)
 
dispatcheroperator= (const dispatcher &a_from)
 
bool is_valid () const
 
void invalidate ()
 

Protected Attributes

base_sessionm_session
 
Window m_win
 
- Protected Attributes inherited from tools::X11::dispatcher
bool m_is_valid
 

Detailed Description

Definition at line 14 of file simple_dispatcher.

Constructor & Destructor Documentation

◆ simple_dispatcher() [1/2]

tools::X11::simple_dispatcher::simple_dispatcher ( base_session a_session,
Window  a_win 
)
inline

Definition at line 39 of file simple_dispatcher.

40  :parent()
41  ,m_session(a_session)
42  ,m_win(a_win)
43  {}

◆ ~simple_dispatcher()

virtual tools::X11::simple_dispatcher::~simple_dispatcher ( )
inlinevirtual

Definition at line 44 of file simple_dispatcher.

44 {}

◆ simple_dispatcher() [2/2]

tools::X11::simple_dispatcher::simple_dispatcher ( const simple_dispatcher a_from)
inline

Definition at line 46 of file simple_dispatcher.

47  :parent(a_from)
48  ,m_session(a_from.m_session)
49  ,m_win(a_from.m_win)
50  {}

Member Function Documentation

◆ dispatch()

virtual bool tools::X11::simple_dispatcher::dispatch ( XEvent &  a_event)
inlinevirtual

Implements tools::X11::dispatcher.

Definition at line 20 of file simple_dispatcher.

20  {
21  if(!m_win) return false;
22  if(a_event.xany.window!=m_win) return false;
23  if( (a_event.type==Expose) || (a_event.type==ConfigureNotify) ){
24  int width,height;
25  m_session.window_size(m_win,width,height);
26  set_size(width,height); //viewer::set_size()
27  win_render();
28  return true;
29  } else if(a_event.type==ClientMessage) {
30  if(a_event.xclient.data.l[0]==(long)m_session.WM_DELETE_WINDOW_atom()) {
32  return true;
33  }
34  }
35  return false;
36  }

◆ operator=()

simple_dispatcher& tools::X11::simple_dispatcher::operator= ( const simple_dispatcher a_from)
inline

Definition at line 51 of file simple_dispatcher.

51  {
52  parent::operator=(a_from);
53  m_win = a_from.m_win;
54  return *this;
55  }

◆ set_size()

virtual void tools::X11::simple_dispatcher::set_size ( unsigned int  a_width,
unsigned int  a_height 
)
pure virtual

◆ win_render()

virtual void tools::X11::simple_dispatcher::win_render ( )
pure virtual

◆ window()

virtual Window tools::X11::simple_dispatcher::window ( ) const
inlinevirtual

Implements tools::X11::dispatcher.

Definition at line 37 of file simple_dispatcher.

37 {return m_win;}

Member Data Documentation

◆ m_session

base_session& tools::X11::simple_dispatcher::m_session
protected

Definition at line 57 of file simple_dispatcher.

◆ m_win

Window tools::X11::simple_dispatcher::m_win
protected

Definition at line 58 of file simple_dispatcher.


The documentation for this class was generated from the following file:
tools::X11::base_session::post
bool post(Window a_win, long a_0=0, long a_1=0, long a_2=0, long a_3=0, long a_4=0) const
Definition: base_session:283
tools::X11::base_session::SESSION_EXIT_STEER_atom
Atom SESSION_EXIT_STEER_atom() const
Definition: base_session:95
tools::X11::dispatcher::operator=
dispatcher & operator=(const dispatcher &a_from)
Definition: dispatcher:45
tools::X11::simple_dispatcher::m_win
Window m_win
Definition: simple_dispatcher:58
tools::X11::simple_dispatcher::win_render
virtual void win_render()=0
tools::X11::simple_dispatcher::set_size
virtual void set_size(unsigned int a_width, unsigned int a_height)=0
tools::X11::base_session::WM_DELETE_WINDOW_atom
Atom WM_DELETE_WINDOW_atom() const
Definition: base_session:94
tools::X11::base_session::window_size
bool window_size(Window a_window, int &a_width, int &a_height) const
Definition: base_session:233
tools::X11::simple_dispatcher::m_session
base_session & m_session
Definition: simple_dispatcher:57