00001
00021
00022
00023
00024
00025 #ifndef __SYNFIG_STATEMANAGER_H
00026 #define __SYNFIG_STATEMANAGER_H
00027
00028
00029
00030 #include <glibmm/refptr.h>
00031 #include <vector>
00032 #include "smach.h"
00033
00034
00035
00036
00037
00038
00039
00040 namespace Gtk { class ActionGroup; }
00041
00042 typedef unsigned int guint;
00043
00044 namespace studio {
00045 class StateManager
00046 {
00047 private:
00048 Glib::RefPtr<Gtk::ActionGroup> state_group;
00049
00050 guint merge_id;
00051 std::vector<guint> merge_id_list;
00052
00053 void change_state_(const Smach::state_base *state);
00054
00055 public:
00056 StateManager();
00057
00058 ~StateManager();
00059
00060 void add_state(const Smach::state_base *state);
00061
00062 Glib::RefPtr<Gtk::ActionGroup> get_action_group();
00063 };
00064
00065 };
00066
00067
00068
00069 #endif