Elaztek Developer Hub
Blamite Game Engine - Keystone  00402.09.29.23.0627.blamite
A library that enables the use of Qt in Blamite's editing tools.
field_menu.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <qmenu.h>
4 #include <qpoint.h>
5 #include <HEKGuerilla/components/tags/fields/fields.h>
6 
7 class tag_designer;
8 class drag_list;
9 class BlamPlugin;
10 
17 class BlamTagDesignerFieldMenu : public QMenu
18 {
19 private:
20  tag_designer* designer = nullptr;
21  drag_list* drag_drop_list = nullptr;
22  BlamPlugin* plugin = nullptr;
23  int* next_item_id = 0;
24 
32  void AddMenuItem(std::string icon_id, QString title, void (BlamTagDesignerFieldMenu::*slot)());
33 
39  void CreateNewTagField(BlamTagFieldType type);
40 
41  void SetupMenu(QPoint pos);
42 
43 public:
53  BlamTagDesignerFieldMenu(drag_list* _drag_list, QPoint pos, BlamPlugin* _plugin, tag_designer* _designer, int* _next_item_id, QWidget* parent = Q_NULLPTR);
54 
56 
57 private slots:
58  void IntegerMenuActionClicked();
59  void RealMenuActionClicked();
60  void AsciiMenuActionClicked();
61  void ColorMenuActionClicked();
62  void VectorMenuActionClicked();
63  void BooleanMenuActionClicked();
64  void EnumMenuActionClicked();
65  void BitfieldMenuActionClicked();
66  void DatarefMenuActionClicked();
67  void TagrefMenuActionClicked();
68  void FieldrefMenuActionClicked();
69  void BlockMenuActionClicked();
70  void GroupMenuActionClicked();
71  void CommentMenuActionClicked();
72  void StringIDMenuActionClicked();
73  void MoreOptionsMenuActionClicked();
74 };
drag_list::GenerateDropZones
void GenerateDropZones(bool clear_existing=true)
Generates drop zones for the given drag list.
Definition: drag_list.cpp:5
block.h
drag_container::RebuildFieldTypeOptions
void RebuildFieldTypeOptions()
Definition: drag_container.cpp:618
ui_dataref_field
Definition: dataref.h:8
ui_tagref_field
Definition: tagref.h:11
bitfield.h
ui_ascii_field
An ascii input field.
Definition: ascii.h:16
boolean.h
drag_container
Class representing a draggable widget container.
Definition: drag_container.h:90
BlamEditorDocumentWidget::document
BlamEditorDocument * document
The document associated with this widget.
Definition: BlamEditorDocument.h:171
ui_float32_field
A float input field.
Definition: float32.h:13
BlamTagDesignerFieldMenu::BlamTagDesignerFieldMenu
BlamTagDesignerFieldMenu(drag_list *_drag_list, QPoint pos, BlamPlugin *_plugin, tag_designer *_designer, int *_next_item_id, QWidget *parent=Q_NULLPTR)
Constructs a new instance of the tag designer menu.
Definition: field_menu.cpp:31
themes.h
ui_comment_field
A comment field control.
Definition: comment.h:15
BlamEditorTagFieldControl
Interface used as a base for all tag field controls.
Definition: tag_fields.h:18
ui_int_field
An integer input field.
Definition: int.h:13
generic.h
BlamEditorDocument::FlagAsModified
virtual void FlagAsModified(bool new_modified_state=true)
Flags the document as being modified.
Definition: BlamEditorDocument.cpp:75
BlamTagDesignerFieldMenu
Class representing the Tag Designer 'Add Field' menu.
Definition: field_menu.h:17
BlamEditorTagFieldControl::SetDesignModeActive
virtual void SetDesignModeActive(drag_list *_drag_list, tag_designer *_designer)
Instructs the field to be editable as a designer field.
Definition: tag_fields.h:39
ui_enum_field
Definition: enum.h:9
ui_bitfield_field
A bitfield control.
Definition: bitfield.h:27
drag_container.h
dataref.h
tagref.h
drag_container::field_data
BlamPluginField * field_data
The plugin field that belongs to this container.
Definition: drag_container.h:145
ui_tag_block_field
A tag block control.
Definition: block.h:17
BlamKeystone::Themes::GetActiveTheme
KEYSTONE BlamEditorTheme * GetActiveTheme()
Retrieves the currently selected theme.
Definition: themes.cpp:335
drag_container::tag_field_control
BlamEditorTagFieldControl * tag_field_control
The tag field widget that belongs to this container.
Definition: drag_container.h:146
ui_boolean_field
A boolean input field.
Definition: boolean.h:16
fieldref.h
comment.h
BlamTagDesignerFieldMenu::~BlamTagDesignerFieldMenu
~BlamTagDesignerFieldMenu()
Definition: field_menu.cpp:40
field_menu.h
ui_vector_field
A vector input field.
Definition: vector.h:13
drag_list
A basic interface class which can be used for drag and drop behaviors.
Definition: drag_container.h:19
drag_list::AddContentWidget
void AddContentWidget(QWidget *widget)
Adds a content item to the drag list.
Definition: drag_list.cpp:38
float32.h
vector.h
drag_container::AddContentWidget
void AddContentWidget(QWidget *widget)
Adds a widget to this drag container.
Definition: drag_container.cpp:343
color.h
enum.h
tag_fields.h
ascii.h
tag_designer.h
drag_container::SetIcon
void SetIcon(std::string group_id, std::string resource_id)
Sets the drag container's sidebar icon.
Definition: drag_container.cpp:358
int.h
ui_color_field
Definition: color.h:9
ui_fieldref_field
A fieldref input field.
Definition: fieldref.h:14
tag_designer
Class representing the Tag Designer.
Definition: tag_designer.h:24