OpenClonk
C4ObjectMenu.h
Go to the documentation of this file.
1
/*
2
* OpenClonk, http://www.openclonk.org
3
*
4
* Copyright (c) 1998-2000, Matthes Bender
5
* Copyright (c) 2001-2009, RedWolf Design GmbH, http://www.clonk.de/
6
* Copyright (c) 2009-2016, The OpenClonk Team and contributors
7
*
8
* Distributed under the terms of the ISC license; see accompanying file
9
* "COPYING" for details.
10
*
11
* "Clonk" is a registered trademark of Matthes Bender, used with permission.
12
* See accompanying file "TRADEMARK" for details.
13
*
14
* To redistribute this file separately, substitute the full license texts
15
* for the above references.
16
*/
17
// Menus attached to objects; script created or internal
18
// These menus are shown to players if the target object is the current cursor
19
20
#ifndef INC_C4ObjectMenu
21
#define INC_C4ObjectMenu
22
23
#include "
gui/C4Menu.h
"
24
25
enum
26
{
27
C4MN_None
= 0,
28
/*C4MN_Construction = 1, obsolete, now reserved */
29
/*C4MN_Bridge = 2, obsolete, now reserved */
30
C4MN_Take
= 3,
31
C4MN_Buy
= 4,
32
C4MN_Sell
= 5,
33
C4MN_Activate
= 6,
34
/*C4MN_Hostility = 7, now defined in C4MainMenu*/
35
/*C4MN_Surrender = 8, obsolete, now reserved*/
36
/*C4MN_Put = 9, obsolete, now reserved*/
37
/*C4MN_Magic = 10, obsolete, now reserved*/
38
/*C4MN_Main = 12, now defined in C4MainMenu*/
39
C4MN_Get
= 13,
40
/*C4MN_Context = 14, obsolete, now reserved*/
41
C4MN_Info
= 15,
42
/*C4MN_TeamSelection= 16, now defined in C4MainMenu */
43
/*C4MN_TeamSwitch = 17, now defined in C4MainMenu */
44
C4MN_Contents
= 18
45
};
46
47
class
C4ObjectMenu
:
public
C4Menu
48
{
49
public
:
50
C4ObjectMenu
();
51
52
void
Default
()
override
;
53
54
enum
CallbackType
{
CB_None
=0,
CB_Object
,
CB_Scenario
};
55
protected
:
56
C4Object
*
Object
;
57
C4Object
*
ParentObject
;
58
C4Object
*
RefillObject
;
59
int32_t
RefillObjectContentsCount
;
60
CallbackType
eCallbackType
;
61
bool
UserMenu
;
// set for script created menus; user menus do CloseQuery and MenuSelection callbacks
62
bool
CloseQuerying
;
// recursion check for close query callback
63
64
void
LocalInit
(
C4Object
*pObject,
bool
fUserMenu);
65
66
public
:
67
void
SetRefillObject
(
C4Object
*pObj);
68
void
ClearPointers
(
C4Object
*pObj);
69
bool
Init
(
C4FacetSurface
&fctSymbol,
const
char
*szEmpty,
C4Object
*pObject, int32_t iExtra=
C4MN_Extra_None
, int32_t iExtraData=0, int32_t iId=0, int32_t iStyle=
C4MN_Style_Normal
,
bool
fUserMenu=
false
);
70
bool
InitRefSym
(
const
C4TargetFacet
&fctSymbol,
const
char
*szEmpty,
C4Object
*pObject, int32_t iExtra=
C4MN_Extra_None
, int32_t iExtraData=0, int32_t iId=0, int32_t iStyle=
C4MN_Style_Normal
,
bool
fUserMenu=
false
);
71
void
Execute
();
72
73
C4Object
*
GetParentObject
()
override
;
74
bool
IsCloseQuerying
()
const
{
return
!!
CloseQuerying
; }
75
76
protected
:
77
bool
MenuCommand
(
const
char
*szCommand,
bool
fIsCloseCommand)
override
;
78
79
bool
DoRefillInternal
(
bool
&rfRefilled)
override
;
80
void
OnSelectionChanged
(int32_t iNewSelection)
override
;
// do object callbacks if selection changed in user menus
81
bool
IsCloseDenied
()
override
;
// do MenuQueryCancel-callbacks for user menus
82
bool
IsReadOnly
()
override
;
// determine whether the menu is just viewed by an observer, and should not issue any calls
83
void
OnUserSelectItem
(int32_t Player, int32_t iIndex)
override
;
84
void
OnUserEnter
(int32_t Player, int32_t iIndex,
bool
fRight)
override
;
85
void
OnUserClose
()
override
;
86
int32_t
GetControllingPlayer
()
override
;
87
};
88
89
#endif
C4Menu.h
C4MN_Extra_None
@ C4MN_Extra_None
Definition:
C4Menu.h:44
C4MN_Style_Normal
@ C4MN_Style_Normal
Definition:
C4Menu.h:35
C4MN_Sell
@ C4MN_Sell
Definition:
C4ObjectMenu.h:32
C4MN_Buy
@ C4MN_Buy
Definition:
C4ObjectMenu.h:31
C4MN_Activate
@ C4MN_Activate
Definition:
C4ObjectMenu.h:33
C4MN_Get
@ C4MN_Get
Definition:
C4ObjectMenu.h:39
C4MN_Contents
@ C4MN_Contents
Definition:
C4ObjectMenu.h:44
C4MN_Info
@ C4MN_Info
Definition:
C4ObjectMenu.h:41
C4MN_Take
@ C4MN_Take
Definition:
C4ObjectMenu.h:30
C4MN_None
@ C4MN_None
Definition:
C4ObjectMenu.h:27
C4FacetSurface
Definition:
C4FacetEx.h:32
C4Menu
Definition:
C4Menu.h:123
C4Object
Definition:
C4Object.h:97
C4ObjectMenu
Definition:
C4ObjectMenu.h:48
C4ObjectMenu::OnUserEnter
void OnUserEnter(int32_t Player, int32_t iIndex, bool fRight) override
Definition:
C4ObjectMenu.cpp:258
C4ObjectMenu::OnUserSelectItem
void OnUserSelectItem(int32_t Player, int32_t iIndex) override
Definition:
C4ObjectMenu.cpp:252
C4ObjectMenu::ParentObject
C4Object * ParentObject
Definition:
C4ObjectMenu.h:57
C4ObjectMenu::RefillObjectContentsCount
int32_t RefillObjectContentsCount
Definition:
C4ObjectMenu.h:59
C4ObjectMenu::Execute
void Execute()
Definition:
C4ObjectMenu.cpp:241
C4ObjectMenu::GetParentObject
C4Object * GetParentObject() override
Definition:
C4ObjectMenu.cpp:116
C4ObjectMenu::CallbackType
CallbackType
Definition:
C4ObjectMenu.h:54
C4ObjectMenu::CB_None
@ CB_None
Definition:
C4ObjectMenu.h:54
C4ObjectMenu::CB_Scenario
@ CB_Scenario
Definition:
C4ObjectMenu.h:54
C4ObjectMenu::CB_Object
@ CB_Object
Definition:
C4ObjectMenu.h:54
C4ObjectMenu::Object
C4Object * Object
Definition:
C4ObjectMenu.h:56
C4ObjectMenu::DoRefillInternal
bool DoRefillInternal(bool &rfRefilled) override
Definition:
C4ObjectMenu.cpp:131
C4ObjectMenu::IsCloseDenied
bool IsCloseDenied() override
Definition:
C4ObjectMenu.cpp:52
C4ObjectMenu::Default
void Default() override
Definition:
C4ObjectMenu.cpp:42
C4ObjectMenu::CloseQuerying
bool CloseQuerying
Definition:
C4ObjectMenu.h:62
C4ObjectMenu::IsCloseQuerying
bool IsCloseQuerying() const
Definition:
C4ObjectMenu.h:74
C4ObjectMenu::InitRefSym
bool InitRefSym(const C4TargetFacet &fctSymbol, const char *szEmpty, C4Object *pObject, int32_t iExtra=C4MN_Extra_None, int32_t iExtraData=0, int32_t iId=0, int32_t iStyle=C4MN_Style_Normal, bool fUserMenu=false)
Definition:
C4ObjectMenu.cpp:88
C4ObjectMenu::IsReadOnly
bool IsReadOnly() override
Definition:
C4ObjectMenu.cpp:270
C4ObjectMenu::SetRefillObject
void SetRefillObject(C4Object *pObj)
Definition:
C4ObjectMenu.cpp:124
C4ObjectMenu::OnSelectionChanged
void OnSelectionChanged(int32_t iNewSelection) override
Definition:
C4ObjectMenu.cpp:95
C4ObjectMenu::OnUserClose
void OnUserClose() override
Definition:
C4ObjectMenu.cpp:264
C4ObjectMenu::UserMenu
bool UserMenu
Definition:
C4ObjectMenu.h:61
C4ObjectMenu::MenuCommand
bool MenuCommand(const char *szCommand, bool fIsCloseCommand) override
Definition:
C4ObjectMenu.cpp:296
C4ObjectMenu::eCallbackType
CallbackType eCallbackType
Definition:
C4ObjectMenu.h:60
C4ObjectMenu::LocalInit
void LocalInit(C4Object *pObject, bool fUserMenu)
Definition:
C4ObjectMenu.cpp:73
C4ObjectMenu::ClearPointers
void ClearPointers(C4Object *pObj)
Definition:
C4ObjectMenu.cpp:108
C4ObjectMenu::C4ObjectMenu
C4ObjectMenu()
Definition:
C4ObjectMenu.cpp:37
C4ObjectMenu::RefillObject
C4Object * RefillObject
Definition:
C4ObjectMenu.h:58
C4ObjectMenu::Init
bool Init(C4FacetSurface &fctSymbol, const char *szEmpty, C4Object *pObject, int32_t iExtra=C4MN_Extra_None, int32_t iExtraData=0, int32_t iId=0, int32_t iStyle=C4MN_Style_Normal, bool fUserMenu=false)
Definition:
C4ObjectMenu.cpp:81
C4ObjectMenu::GetControllingPlayer
int32_t GetControllingPlayer() override
Definition:
C4ObjectMenu.cpp:290
C4TargetFacet
Definition:
C4Facet.h:160
openclonk
src
object
C4ObjectMenu.h
Generated on Fri May 16 2025 04:33:15 for OpenClonk by
1.9.1