1 class kryScript;
2 
3 class kryEvent : public kryObject
4 {
5 public:
6   kryEvent();
7   virtual ~kryEvent();
8 
9   enum event_type
10   {
11     EVENT_BLANK = 1,
12     EVENT_DIALOG = 2,
13     EVENT_COMMENT_DIALOG = 4,
14     EVENT_COMMENT_STRING = 8,
15     EVENT_COMMENT_BLANK = 16,
16     EVENT_KARAOKE_TEXT = 32,
17     EVENT_KARAOKE_TIME = 64,
18   };
19 
20   unsigned long GetStart();
21   static unsigned long GetStartStatic(kryEvent *event);
22   unsigned long GetEnd();
23   static unsigned long GetEndStatic(kryEvent *event);
24 
25   void SetText(char *text);
26   static void SetTextStatic(kryEvent *event, char *text);
27   char *GetText();
28   static char *GetTextStatic(kryEvent *event);
29 
30   void SetType(enum event_type type);
31   static void SetTypeStatic(kryEvent *event, enum event_type type);
32   void SetTypeSub(enum event_type type);
33 
34 
35   static char *GetTypeString(enum event_type type);
36   char *GetTypeString();
37   char *GetTypeSubString();
38   enum event_type GetType();
39   static enum event_type GetTypeStatic(kryEvent *event);
40   enum event_type GetTypeSub();
41 
42 
43   void SetIndex(int index);
44   int GetIndex();
45 
46   /*** THESE FUNCTIONS ARE ONLY FOR SETTING THE INITIAL VALUES                              ***/
47   /*** SetTime() must be used in other cases (or collision detection will not work properly ***/
48   void SetStart(int time);
49   static void SetStartStatic(kryEvent *event, int time);
50   void SetEnd(int time);
51   static void SetEndStatic(kryEvent *event, int time);
52 
53   void SetTime(unsigned long start, unsigned long end);
54 
55   friend GList *sub_ssa_build_event_list(char *buffer);
56   //friend char *sub_ssa_write_to(kryScript *script, char *filename);
57 
58   virtual kryEvent *Copy();
59 
60   virtual gboolean IsDetailed();
61 
62   enum
63   {
64     SIGNAL_BEFORE_TIME_CHANGED,
65     SIGNAL_AFTER_TIME_CHANGED,
66     SIGNAL_BEFORE_LAYER_CHANGED,
67     SIGNAL_AFTER_LAYER_CHANGED,
68     SIGNAL_BEFORE_NAME_CHANGED,
69     SIGNAL_AFTER_NAME_CHANGED,
70     SIGNAL_COUNT
71   };
72 
73 
74 protected:
75   unsigned long m_start;
76   unsigned long m_end;
77 
78   unsigned int m_index;
79 
80   enum event_type m_type;
81   enum event_type m_type_sub; // only used for BLANK main type
82 
83   char *m_text;
84 };
85 
86 
87