Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/archive/Presentation_HS16/src/modules/notifications/dispatchers/Dialogue.h @ 11592

Last change on this file since 11592 was 11347, checked in by maxima, 8 years ago

dialog branch merged to presentation

File size: 3.3 KB
Line 
1
2#ifndef _Dialogue_H__
3#define _Dialogue_H__
4#include <string>      
5//#include "core/BaseObject.h"
6
7#include "notifications/NotificationsPrereqs.h"
8
9#include "notifications/NotificationDispatcher.h"
10
11namespace orxonox{
12
13        /**
14    @brief
15        The Dialogue class enables the sending of (in XML) predefined Notifications upon some kind of triggering event.
16
17        In use it would like this:
18        @code
19        <Dialogue message="some message..." speaker="speaker" portrait="Orxonox/some_file">
20            <events>
21                <trigger>
22                    <PlayerTrigger />
23                </trigger>
24            </events>
25        </Dialogue>
26        @endcode
27        For more information on what can be used for @code <PlayerTrigger /> @endcode see the @ref orxonox::NotificationDispatcher "NotificationDispatcher" documentation.
28                For more information about the Dialogue class take a look at the Notifications entry in the wiki.
29                */
30
31class _NotificationsExport Dialogue: public NotificationDispatcher{
32
33        public:
34            Dialogue(Context* context); //!< Default Constructor.
35            virtual ~Dialogue(); //!< Destructor.
36
37            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a Dialogue object through XML.
38
39            /**
40            @brief Get the message, that is displayed.
41            @return Returns the message, that is displayed.
42            */
43            const std::string& getMessage(void)
44                        { return this->message_; }
45            /**
46            @brief Get the name of the speaker.
47            @return Returns the name of the speaker.
48            */
49                const std::string& getSpeaker(void)
50                        {return this->speaker_;}
51            /**
52            @brief Get the name of the file of the picture
53            @return Returns the name of the file.
54            */
55            const std::string& getPortrait(void)
56                        { return this->portrait_;}
57
58    protected:
59        /**
60            @brief Creates the notification message that should be sent upon the Dialgue triggering.
61            @return Returns the notification message.
62            */
63        virtual const std::string& createNotificationMessage(void);
64        /**
65                @brief Updates the picture that is displayed by passing the name of the picture over to the HUDDialogue class.
66                */
67        virtual void update(void);
68       
69    private:
70                std::string message_; //!< The message.
71                std::string speaker_; //!< The name of the speaker.
72                std::string dialogue_; //!< The speaker and the message that is displayed.
73                std::string portrait_; //!< The name of the file.
74
75                /**
76                @brief Sets the name of the speaker.
77                @param speaker The name of the speaker.
78                */
79                void setSpeaker(const std::string& speaker)
80                { this->speaker_ = speaker;}
81            /**
82            @brief Sets the message that is to be displayed.
83            @param message The message to be displayed.
84            */
85                void setMessage(const std::string& message)
86                { this->message_ = message; }
87            /**
88            @brief Sets the name of the file of the picture.
89            @param portrait Name of the file which is used.
90            */
91            void setPortrait(const std::string& portrait)
92                { this->portrait_ = portrait;}
93        } ;       
94}
95
96#endif
Note: See TracBrowser for help on using the repository browser.