D++ (DPP)  10.0.30
C++ Discord API Bot Library
dpp::interaction_modal_response Struct Reference

Represents a modal dialog box response to an interaction. More...

#include "appcommand.h"

Inheritance diagram for dpp::interaction_modal_response:
Collaboration diagram for dpp::interaction_modal_response:

Public Member Functions

 interaction_modal_response ()
 Construct a new interaction modal response object. More...
 
 interaction_modal_response (const std::string &_custom_id, const std::string &_title, const std::vector< component > _components={})
 Construct a new interaction modal response object. More...
 
virtual ~interaction_modal_response ()=default
 Destroy the interaction modal response object. More...
 
interaction_responseadd_autocomplete_choice (const command_option_choice &achoice)
 Add a command option choice. More...
 
interaction_modal_responseadd_component (const component &c)
 Add a component to an interaction modal response. More...
 
interaction_modal_responseadd_row ()
 Add a new row to the interaction modal response. More...
 
template<typename U = T, typename = decltype(std::declval<U&>().to_json_impl(bool{}))>
std::string build_json (bool with_id=false) const
 Convert object to json string. More...
 
std::string build_json (bool with_id=false) const
 Convert object to json string. More...
 
interaction_responsefill_from_json (nlohmann::json *j)
 Convert object from nlohmann::json. More...
 
template<typename U = T, typename = decltype(std::declval<U&>().fill_from_json_impl(std::declval<nlohmann::json*>()))>
T & fill_from_json (nlohmann::json *j)
 Convert object from nlohmann::json. More...
 
interaction_modal_responseset_custom_id (const std::string &_custom_id)
 Set the custom id. More...
 
interaction_modal_responseset_title (const std::string &_title)
 Set the title. More...
 
auto to_json (bool with_id=false) const
 Convert object to nlohmann::json. More...
 
template<typename U = T, typename = decltype(std::declval<U&>().to_json_impl(bool{}))>
auto to_json (bool with_id=false) const
 Convert object to nlohmann::json. More...
 

Public Attributes

std::vector< command_option_choiceautocomplete_choices {}
 Array of up to 25 autocomplete choices. More...
 
std::vector< std::vector< component > > components
 List of components. More...
 
std::string custom_id
 Custom ID for the modal form. More...
 
message msg {}
 Message tied to this response. More...
 
std::string title
 Title of the modal form box (max 25 characters) More...
 
interaction_response_type type {}
 Response type from dpp::interaction_response_type. More...
 

Protected Member Functions

virtual interaction_modal_responsefill_from_json_impl (nlohmann::json *j)
 Fill object properties from JSON. More...
 
virtual json to_json_impl (bool with_id=false) const
 Build a json for this object. More...
 

Protected Attributes

size_t current_row
 

Friends

struct json_interface< interaction_modal_response >
 

Detailed Description

Represents a modal dialog box response to an interaction.

A dialog box is a modal popup which appears to the user instead of a message. One or more components are displayed on a form (the same component structure as within a dpp::message). When the user submits the form an on_form_submit event is dispatched to any listeners.

Constructor & Destructor Documentation

◆ interaction_modal_response() [1/2]

dpp::interaction_modal_response::interaction_modal_response ( )

Construct a new interaction modal response object.

◆ interaction_modal_response() [2/2]

dpp::interaction_modal_response::interaction_modal_response ( const std::string &  _custom_id,
const std::string &  _title,
const std::vector< component _components = {} 
)

Construct a new interaction modal response object.

Parameters
_custom_idCustom ID of the modal form
_titleTitle of the modal form. It will be truncated to the maximum length of 45 UTF-8 characters.
_componentsComponents to add to the modal form

◆ ~interaction_modal_response()

virtual dpp::interaction_modal_response::~interaction_modal_response ( )
virtualdefault

Destroy the interaction modal response object.

Member Function Documentation

◆ add_autocomplete_choice()

interaction_response & dpp::interaction_response::add_autocomplete_choice ( const command_option_choice achoice)
inherited

Add a command option choice.

Parameters
achoicecommand option choice to add
Returns
interaction_response& Reference to self

◆ add_component()

interaction_modal_response & dpp::interaction_modal_response::add_component ( const component c)

Add a component to an interaction modal response.

Parameters
ccomponent to add
Returns
interaction_modal_response& Reference to self

References title.

◆ add_row()

interaction_modal_response & dpp::interaction_modal_response::add_row ( )

Add a new row to the interaction modal response.

Note
A modal response can have a maximum of five rows.
Exceptions
dpp::logic_exceptionif more than five rows are attempted to be added
Returns
interaction_modal_response& Reference to self

◆ build_json() [1/2]

std::string dpp::json_interface< interaction_response >::build_json ( bool  with_id = false) const
inlineinherited

Convert object to json string.

Parameters
with_idWhether to include the ID or not
Note
Some fields are conditionally filled, do not rely on all fields being present
Returns
std::string Json built from the structure

◆ build_json() [2/2]

template<typename T >
template<typename U = T, typename = decltype(std::declval<U&>().to_json_impl(bool{}))>
std::string dpp::json_interface< T >::build_json ( bool  with_id = false) const
inlineinherited

Convert object to json string.

Parameters
with_idWhether to include the ID or not
Note
Some fields are conditionally filled, do not rely on all fields being present
Returns
std::string Json built from the structure

Referenced by dpp::cluster::create_webhook(), dpp::cluster::guild_ban_add(), dpp::cluster::guild_ban_delete(), dpp::cluster::guild_command_edit_permissions(), dpp::cluster::guild_create(), dpp::cluster::guild_get_integrations(), dpp::cluster::guild_get_preview(), dpp::cluster::guild_get_vanity(), and dpp::cluster::roles_get().

Here is the caller graph for this function:

◆ fill_from_json() [1/2]

template<typename T >
template<typename U = T, typename = decltype(std::declval<U&>().fill_from_json_impl(std::declval<nlohmann::json*>()))>
T& dpp::json_interface< T >::fill_from_json ( nlohmann::json j)
inlineinherited

Convert object from nlohmann::json.

Parameters
jnlohmann::json object
Returns
T& Reference to self for fluent calling

Referenced by dpp::invite::fill_from_json_impl(), dpp::thread::fill_from_json_impl(), dpp::scheduled_event::fill_from_json_impl(), dpp::from_json(), dpp::message::get_url(), and dpp::interaction_response::interaction_response().

Here is the caller graph for this function:

◆ fill_from_json() [2/2]

interaction_response & dpp::json_interface< interaction_response >::fill_from_json ( nlohmann::json j)
inlineinherited

Convert object from nlohmann::json.

Parameters
jnlohmann::json object
Returns
T& Reference to self for fluent calling

◆ fill_from_json_impl()

interaction_modal_response & dpp::interaction_modal_response::fill_from_json_impl ( nlohmann::json j)
protectedvirtual

Fill object properties from JSON.

Parameters
jJSON to fill from
Returns
interaction_response& Reference to self

Reimplemented from dpp::interaction_response.

◆ set_custom_id()

interaction_modal_response & dpp::interaction_modal_response::set_custom_id ( const std::string &  _custom_id)

Set the custom id.

Parameters
_custom_idcustom id to set
Returns
interaction_modal_response& Reference to self

◆ set_title()

interaction_modal_response & dpp::interaction_modal_response::set_title ( const std::string &  _title)

Set the title.

Parameters
_titletitle to set
Returns
interaction_modal_response& Reference to self

References dpp::guild_command_permissions::application_id, dpp::guild_command_permissions::guild_id, and dpp::snowflake_not_null().

Here is the call graph for this function:

◆ to_json() [1/2]

auto dpp::json_interface< interaction_response >::to_json ( bool  with_id = false) const
inlineinherited

Convert object to nlohmann::json.

Parameters
with_idWhether to include the ID or not
Note
Some fields are conditionally filled, do not rely on all fields being present
Returns
json Json built from the structure

◆ to_json() [2/2]

template<typename T >
template<typename U = T, typename = decltype(std::declval<U&>().to_json_impl(bool{}))>
auto dpp::json_interface< T >::to_json ( bool  with_id = false) const
inlineinherited

Convert object to nlohmann::json.

Parameters
with_idWhether to include the ID or not
Note
Some fields are conditionally filled, do not rely on all fields being present
Returns
json Json built from the structure

Referenced by dpp::cluster::delete_webhook_with_token(), and dpp::onboarding_prompt::onboarding_prompt().

Here is the caller graph for this function:

◆ to_json_impl()

json dpp::interaction_modal_response::to_json_impl ( bool  with_id = false) const
protectedvirtual

Build a json for this object.

Parameters
with_idinclude id in json output
Returns
json JSON object

Reimplemented from dpp::interaction_response.

References components, and current_row.

Friends And Related Function Documentation

◆ json_interface< interaction_modal_response >

friend struct json_interface< interaction_modal_response >
friend

Member Data Documentation

◆ autocomplete_choices

std::vector<command_option_choice> dpp::interaction_response::autocomplete_choices {}
inherited

Array of up to 25 autocomplete choices.

◆ components

std::vector<std::vector<component> > dpp::interaction_modal_response::components

List of components.

All components must be placed within an action row, each outer vector is the action row.

Referenced by to_json_impl().

◆ current_row

size_t dpp::interaction_modal_response::current_row
protected

Referenced by to_json_impl().

◆ custom_id

std::string dpp::interaction_modal_response::custom_id

Custom ID for the modal form.

◆ msg

message dpp::interaction_response::msg {}
inherited

Message tied to this response.

◆ title

std::string dpp::interaction_modal_response::title

Title of the modal form box (max 25 characters)

Referenced by add_component().

◆ type

interaction_response_type dpp::interaction_response::type {}
inherited

Response type from dpp::interaction_response_type.

Should be one of ir_pong, ir_channel_message_with_source, or ir_deferred_channel_message_with_source.


The documentation for this struct was generated from the following files: