OpenClonk
C4GUI::CBContextHandler< CBClass > Class Template Reference

#include <C4Gui.h>

Inheritance diagram for C4GUI::CBContextHandler< CBClass >:
[legend]
Collaboration diagram for C4GUI::CBContextHandler< CBClass >:
[legend]

Public Member Functions

 CBContextHandler (CBClass *pCBTarget, typename DlgCallback< CBClass >::ContextFunc pCallbackFn)
 
bool OnContext (Element *pOnElement, int32_t iX, int32_t iY) override
 
C4GUI::ContextMenuOnSubcontext (Element *pOnElement) override
 
void Ref ()
 
void DeRef ()
 

Friends

class Dialog
 

Detailed Description

template<class CBClass>
class C4GUI::CBContextHandler< CBClass >

Definition at line 2738 of file C4Gui.h.

Constructor & Destructor Documentation

◆ CBContextHandler()

template<class CBClass >
C4GUI::CBContextHandler< CBClass >::CBContextHandler ( CBClass *  pCBTarget,
typename DlgCallback< CBClass >::ContextFunc  pCallbackFn 
)
inline

Definition at line 2742 of file C4Gui.h.

2747  : ContextHandler(), pCBTarget(pCBTarget), pCallbackFn(pCallbackFn) { }

Member Function Documentation

◆ DeRef()

void C4GUI::ContextHandler::DeRef ( )
inlineinherited

Definition at line 244 of file C4Gui.h.

244 { if (!--iRefs) delete this; }

Referenced by C4GUI::Element::SetContextHandler(), and C4GUI::Element::~Element().

Here is the caller graph for this function:

◆ OnContext()

template<class CBClass >
bool C4GUI::CBContextHandler< CBClass >::OnContext ( Element pOnElement,
int32_t  iX,
int32_t  iY 
)
inlineoverridevirtual

Implements C4GUI::ContextHandler.

Definition at line 2749 of file C4Gui.h.

2750  {
2751  DlgCallback<CBClass>();
2752  if (!pCBTarget) return false;
2753  // if (!pCallbackFn) return false;
2754  Screen *pScreen = pOnElement->GetScreen();
2755  if (!pScreen) return false;
2756  // let CB func create context menu
2757  ContextMenu *pNewMenu = (pCBTarget->*pCallbackFn)(pOnElement, iX, iY);
2758  if (!pNewMenu) return false;
2759  // open it on screen
2760  pScreen->DoContext(pNewMenu, pOnElement, iX, iY);
2761  // done, success
2762  return true;
2763  }

References C4GUI::Screen::DoContext(), and C4GUI::Element::GetScreen().

Here is the call graph for this function:

◆ OnSubcontext()

template<class CBClass >
C4GUI::ContextMenu* C4GUI::CBContextHandler< CBClass >::OnSubcontext ( Element pOnElement)
inlineoverridevirtual

Implements C4GUI::ContextHandler.

Definition at line 2765 of file C4Gui.h.

2766  {
2767  // query directly
2768  return (pCBTarget->*pCallbackFn)(pOnElement, 0, 0);
2769  }

◆ Ref()

void C4GUI::ContextHandler::Ref ( )
inlineinherited

Definition at line 243 of file C4Gui.h.

243 { ++iRefs; }

Referenced by C4GUI::Element::SetContextHandler().

Here is the caller graph for this function:

Friends And Related Function Documentation

◆ Dialog

template<class CBClass >
friend class Dialog
friend

Definition at line 2770 of file C4Gui.h.


The documentation for this class was generated from the following file: