diff --git a/fred2/eventeditor.cpp b/fred2/eventeditor.cpp index 2308bfb2314..f5880f812fd 100644 --- a/fred2/eventeditor.cpp +++ b/fred2/eventeditor.cpp @@ -156,6 +156,10 @@ event_editor::event_editor(CWnd* pParent /*=NULL*/) m_log_last_trigger = 0; m_log_state_change = 0; m_play_icon = nullptr; + m_move_to_top_icon = nullptr; + m_move_up_icon = nullptr; + m_move_down_icon = nullptr; + m_move_to_bottom_icon = nullptr; } void event_editor::DoDataExchange(CDataExchange* pDX) @@ -227,6 +231,7 @@ BEGIN_MESSAGE_MAP(event_editor, CDialog) ON_BN_CLICKED(IDC_INSERT, OnInsert) ON_LBN_SELCHANGE(IDC_MESSAGE_LIST, OnSelchangeMessageList) ON_BN_CLICKED(IDC_NEW_MSG, OnNewMsg) + ON_BN_CLICKED(IDC_INSERT_MSG, OnInsertMsg) ON_BN_CLICKED(IDC_DELETE_MSG, OnDeleteMsg) ON_BN_CLICKED(IDC_NEW_NOTE, OnMsgNote) ON_BN_CLICKED(IDC_BROWSE_AVI, OnBrowseAvi) @@ -238,6 +243,14 @@ BEGIN_MESSAGE_MAP(event_editor, CDialog) ON_CBN_SELCHANGE(IDC_EVENT_TEAM, OnSelchangeTeam) ON_CBN_SELCHANGE(IDC_MESSAGE_TEAM, OnSelchangeMessageTeam) ON_LBN_DBLCLK(IDC_MESSAGE_LIST, OnDblclkMessageList) + ON_BN_CLICKED(IDC_EVENT_MOVE_TO_TOP, OnEventMoveToTop) + ON_BN_CLICKED(IDC_EVENT_MOVE_UP, OnEventMoveUp) + ON_BN_CLICKED(IDC_EVENT_MOVE_DOWN, OnEventMoveDown) + ON_BN_CLICKED(IDC_EVENT_MOVE_TO_BOTTOM, OnEventMoveToBottom) + ON_BN_CLICKED(IDC_MESSAGE_MOVE_TO_TOP, OnMessageMoveToTop) + ON_BN_CLICKED(IDC_MESSAGE_MOVE_UP, OnMessageMoveUp) + ON_BN_CLICKED(IDC_MESSAGE_MOVE_DOWN, OnMessageMoveDown) + ON_BN_CLICKED(IDC_MESSAGE_MOVE_TO_BOTTOM, OnMessageMoveToBottom) //}}AFX_MSG_MAP END_MESSAGE_MAP() @@ -263,6 +276,22 @@ BOOL event_editor::OnInitDialog() m_play_icon = load_button_icon(IDB_PLAY, RGB(192, 192, 192)); ((CButton *) GetDlgItem(IDC_PLAY)) -> SetIcon(m_play_icon); + // reorder arrows; one icon is shared between the event and message buttons. + // Icons carry a transparency mask, so they blend with the button face and + // gray out correctly when disabled (see load_button_icon). + m_move_to_top_icon = load_button_icon(IDB_MOVE_TO_TOP, RGB(255, 0, 255)); + m_move_up_icon = load_button_icon(IDB_MOVE_UP, RGB(255, 0, 255)); + m_move_down_icon = load_button_icon(IDB_MOVE_DOWN, RGB(255, 0, 255)); + m_move_to_bottom_icon = load_button_icon(IDB_MOVE_TO_BOTTOM, RGB(255, 0, 255)); + ((CButton *) GetDlgItem(IDC_EVENT_MOVE_TO_TOP)) -> SetIcon(m_move_to_top_icon); + ((CButton *) GetDlgItem(IDC_EVENT_MOVE_UP)) -> SetIcon(m_move_up_icon); + ((CButton *) GetDlgItem(IDC_EVENT_MOVE_DOWN)) -> SetIcon(m_move_down_icon); + ((CButton *) GetDlgItem(IDC_EVENT_MOVE_TO_BOTTOM)) -> SetIcon(m_move_to_bottom_icon); + ((CButton *) GetDlgItem(IDC_MESSAGE_MOVE_TO_TOP)) -> SetIcon(m_move_to_top_icon); + ((CButton *) GetDlgItem(IDC_MESSAGE_MOVE_UP)) -> SetIcon(m_move_up_icon); + ((CButton *) GetDlgItem(IDC_MESSAGE_MOVE_DOWN)) -> SetIcon(m_move_down_icon); + ((CButton *) GetDlgItem(IDC_MESSAGE_MOVE_TO_BOTTOM)) -> SetIcon(m_move_to_bottom_icon); + theApp.init_window(&Events_wnd_data, this, 0); m_event_tree.setup((CEdit *) GetDlgItem(IDC_HELP_BOX)); load_tree(); @@ -706,6 +735,7 @@ void event_editor::update_cur_message() GetDlgItem(IDC_DELETE_MSG)->EnableWindow(enable); GetDlgItem(IDC_PERSONA_NAME)->EnableWindow(enable); GetDlgItem(IDC_MESSAGE_TEAM)->EnableWindow(enable); + update_move_buttons(); UpdateData(FALSE); } @@ -1050,6 +1080,7 @@ void event_editor::update_cur_event() GetDlgItem(IDC_MISSION_LOG_LAST_TRIGGER)->EnableWindow(FALSE); GetDlgItem(IDC_MISSION_LOG_STATE_CHANGE)->EnableWindow(FALSE); + update_move_buttons(); UpdateData(FALSE); return; } @@ -1116,6 +1147,7 @@ void event_editor::update_cur_event() m_log_last_trigger = (m_events[cur_event].mission_log_flags & MLF_LAST_TRIGGER_ONLY) ? TRUE : FALSE; m_log_state_change = (m_events[cur_event].mission_log_flags & MLF_STATE_CHANGE) ? TRUE : FALSE; + update_move_buttons(); UpdateData(FALSE); } @@ -1191,7 +1223,121 @@ void event_editor::move_handler(int node1, int node2, bool insert_before) update_cur_event(); } -void event_editor::OnChained() +// Enable/disable the event and message reorder arrows based on the current +// selection and its position in the list. +void event_editor::update_move_buttons() +{ + int ecount = (int)m_events.size(); + BOOL e_up = (cur_event > 0 && cur_event < ecount) ? TRUE : FALSE; + BOOL e_down = (cur_event >= 0 && cur_event < ecount - 1) ? TRUE : FALSE; + GetDlgItem(IDC_EVENT_MOVE_TO_TOP)->EnableWindow(e_up); + GetDlgItem(IDC_EVENT_MOVE_UP)->EnableWindow(e_up); + GetDlgItem(IDC_EVENT_MOVE_DOWN)->EnableWindow(e_down); + GetDlgItem(IDC_EVENT_MOVE_TO_BOTTOM)->EnableWindow(e_down); + + int mcount = (int)m_messages.size(); + BOOL m_up = (m_cur_msg > 0 && m_cur_msg < mcount) ? TRUE : FALSE; + BOOL m_down = (m_cur_msg >= 0 && m_cur_msg < mcount - 1) ? TRUE : FALSE; + GetDlgItem(IDC_MESSAGE_MOVE_TO_TOP)->EnableWindow(m_up); + GetDlgItem(IDC_MESSAGE_MOVE_UP)->EnableWindow(m_up); + GetDlgItem(IDC_MESSAGE_MOVE_DOWN)->EnableWindow(m_down); + GetDlgItem(IDC_MESSAGE_MOVE_TO_BOTTOM)->EnableWindow(m_down); +} + +// Reorder the currently-selected event. 'up'/'all_the_way' are interpreted as: +// move up one, move to top, move down one, move to bottom. +void event_editor::move_event(bool up, bool all_the_way) +{ + int count = (int)m_events.size(); + if (cur_event < 0 || cur_event >= count) + return; + + int from = cur_event; + int to; + if (up) + to = all_the_way ? 0 : from - 1; + else + to = all_the_way ? count - 1 : from + 1; + + if (to < 0 || to >= count || to == from) + return; + + // Perform the move exactly as a drag-and-drop would: move_root shifts the + // tree item in place (the on_node_handle_changed hook keeps annotations + // attached, and the expanded state is preserved), and move_handler reorders + // m_events/m_sig to match (it also calls save() and update_cur_event()). + HTREEITEM source = get_event_handle(from); + HTREEITEM dest = get_event_handle(to); + int node1 = m_events[from].formula; + int node2 = m_events[to].formula; + bool insert_before = (to < from); + + m_event_tree.move_root(source, dest, insert_before); + move_handler(node1, node2, insert_before); + + update_move_buttons(); +} + +// Reorder the currently-selected message. 'up'/'all_the_way' are interpreted +// as: move up one, move to top, move down one, move to bottom. +void event_editor::move_message(bool up, bool all_the_way) +{ + // commit any pending edits first + save(); + + int count = (int)m_messages.size(); + if (m_cur_msg < 0 || m_cur_msg >= count) + return; + + int from = m_cur_msg; + int to; + if (up) + to = all_the_way ? 0 : from - 1; + else + to = all_the_way ? count - 1 : from + 1; + + if (to < 0 || to >= count || to == from) + return; + + // Rotate m_messages so the item at 'from' lands at 'to'. MMessage has move + // semantics, so this transfers the media-name pointers without copying. + MMessage m = std::move(m_messages[from]); + if (from < to) + { + for (int i = from; i < to; ++i) + m_messages[i] = std::move(m_messages[i + 1]); + } + else + { + for (int i = from; i > to; --i) + m_messages[i] = std::move(m_messages[i - 1]); + } + m_messages[to] = std::move(m); + + // Rebuild the listbox to match the new order. + CListBox *list = (CListBox *) GetDlgItem(IDC_MESSAGE_LIST); + list->ResetContent(); + for (const auto &msg : m_messages) + list->AddString(msg.name); + + m_cur_msg = to; + list->SetCurSel(to); + + update_cur_message(); + update_move_buttons(); + modified = 1; +} + +void event_editor::OnEventMoveToTop() { move_event(true, true); } +void event_editor::OnEventMoveUp() { move_event(true, false); } +void event_editor::OnEventMoveDown() { move_event(false, false); } +void event_editor::OnEventMoveToBottom() { move_event(false, true); } +void event_editor::OnMessageMoveToTop() { move_message(true, true); } +void event_editor::OnMessageMoveUp() { move_message(true, false); } +void event_editor::OnMessageMoveDown() { move_message(false, false); } +void event_editor::OnMessageMoveToBottom() { move_message(false, true); } + +void event_editor::OnChained() { int image; HTREEITEM h; @@ -1336,7 +1482,39 @@ void event_editor::OnNewMsg() update_cur_message(); } -void event_editor::OnDeleteMsg() +void event_editor::OnInsertMsg() +{ + // with no current message there's nothing to insert ahead of, so just append + if (m_cur_msg < 0 || m_messages.empty()) { + OnNewMsg(); + return; + } + + save(); + + MMessage msg; + strcpy_s(msg.name, ""); + strcpy_s(msg.message, ""); + msg.avi_info.name = nullptr; + msg.wave_info.name = nullptr; + msg.persona_index = -1; + msg.multi_team = -1; + + // insert ahead of the current message; the new one takes its slot + m_messages.insert(m_messages.begin() + m_cur_msg, std::move(msg)); + + // rebuild the listbox to match the new order + CListBox *list = (CListBox *) GetDlgItem(IDC_MESSAGE_LIST); + list->ResetContent(); + for (const auto &m : m_messages) + list->AddString(m.name); + list->SetCurSel(m_cur_msg); + + modified = 1; + update_cur_message(); +} + +void event_editor::OnDeleteMsg() { char buf[256]; @@ -1528,6 +1706,10 @@ BOOL event_editor::DestroyWindow() m_wave_id = -1; if (m_play_icon) DestroyIcon(m_play_icon); + if (m_move_to_top_icon) DestroyIcon(m_move_to_top_icon); + if (m_move_up_icon) DestroyIcon(m_move_up_icon); + if (m_move_down_icon) DestroyIcon(m_move_down_icon); + if (m_move_to_bottom_icon) DestroyIcon(m_move_to_bottom_icon); return CDialog::DestroyWindow(); } diff --git a/fred2/eventeditor.h b/fred2/eventeditor.h index 6d329eb23db..20545719889 100644 --- a/fred2/eventeditor.h +++ b/fred2/eventeditor.h @@ -114,6 +114,10 @@ class event_editor : public CDialog, public SexpTreeEditorInterface //}}AFX_DATA HICON m_play_icon; + HICON m_move_to_top_icon; + HICON m_move_up_icon; + HICON m_move_down_icon; + HICON m_move_to_bottom_icon; // Overrides // ClassWizard generated virtual function overrides @@ -145,6 +149,7 @@ class event_editor : public CDialog, public SexpTreeEditorInterface afx_msg void OnInsert(); afx_msg void OnSelchangeMessageList(); afx_msg void OnNewMsg(); + afx_msg void OnInsertMsg(); afx_msg void OnDeleteMsg(); afx_msg void OnMsgNote(); afx_msg void OnBrowseAvi(); @@ -155,12 +160,23 @@ class event_editor : public CDialog, public SexpTreeEditorInterface afx_msg void OnSelchangeTeam(); afx_msg void OnSelchangeMessageTeam(); afx_msg void OnDblclkMessageList(); + afx_msg void OnEventMoveToTop(); + afx_msg void OnEventMoveUp(); + afx_msg void OnEventMoveDown(); + afx_msg void OnEventMoveToBottom(); + afx_msg void OnMessageMoveToTop(); + afx_msg void OnMessageMoveUp(); + afx_msg void OnMessageMoveDown(); + afx_msg void OnMessageMoveToBottom(); //}}AFX_MSG DECLARE_MESSAGE_MAP() private: int cur_event; void update_cur_event(); + void move_event(bool up, bool all_the_way); + void move_message(bool up, bool all_the_way); + void update_move_buttons(); SCP_vector m_sig; SCP_vector m_events; SCP_vector m_messages; diff --git a/fred2/fred.rc b/fred2/fred.rc index a668814effe..8f2f009cd6f 100644 --- a/fred2/fred.rc +++ b/fred2/fred.rc @@ -158,6 +158,14 @@ IDB_CONTAINER_NAME BITMAP "res\\container_name.bmp" IDB_CONTAINER_DATA BITMAP "res\\container_data.bmp" +IDB_MOVE_TO_TOP BITMAP "res\\move_top.bmp" + +IDB_MOVE_UP BITMAP "res\\move_up.bmp" + +IDB_MOVE_DOWN BITMAP "res\\move_down.bmp" + +IDB_MOVE_TO_BOTTOM BITMAP "res\\move_bot.bmp" + ///////////////////////////////////////////////////////////////////////////// // @@ -1455,9 +1463,9 @@ CAPTION "Mission Event Edit" FONT 8, "MS Sans Serif", 0, 0, 0x1 BEGIN CONTROL "Tree1",IDC_EVENT_TREE,"SysTreeView32",TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | TVS_EDITLABELS | TVS_SHOWSELALWAYS | WS_BORDER | WS_HSCROLL | WS_TABSTOP,7,7,196,343,WS_EX_CLIENTEDGE - PUSHBUTTON "New Event",IDC_BUTTON_NEW_EVENT,207,7,50,14,0,WS_EX_STATICEDGE,HIDC_BUTTON_NEW_EVENT - PUSHBUTTON "Insert Event",IDC_INSERT,207,24,50,14,0,WS_EX_STATICEDGE - PUSHBUTTON "Delete Event",IDC_DELETE,207,41,50,14,0,WS_EX_STATICEDGE + PUSHBUTTON "New Event",IDC_BUTTON_NEW_EVENT,227,7,48,14,0,WS_EX_STATICEDGE,HIDC_BUTTON_NEW_EVENT + PUSHBUTTON "Insert Event",IDC_INSERT,227,23,48,14,0,WS_EX_STATICEDGE + PUSHBUTTON "Delete Event",IDC_DELETE,227,39,48,14,0,WS_EX_STATICEDGE EDITTEXT IDC_REPEAT_COUNT,208,108,45,14,ES_AUTOHSCROLL EDITTEXT IDC_INTERVAL_TIME,208,165,45,14,ES_AUTOHSCROLL | ES_NUMBER EDITTEXT IDC_EVENT_SCORE,208,239,45,14,ES_AUTOHSCROLL @@ -1468,9 +1476,10 @@ BEGIN EDITTEXT IDC_OBJ_TEXT,86,354,117,14,ES_AUTOHSCROLL EDITTEXT IDC_OBJ_KEY_TEXT,86,370,117,14,ES_AUTOHSCROLL EDITTEXT IDC_HELP_BOX,208,313,222,111,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL,WS_EX_TRANSPARENT - PUSHBUTTON "New Msg",IDC_NEW_MSG,229,59,50,14,0,WS_EX_STATICEDGE - PUSHBUTTON "Delete Msg",IDC_DELETE_MSG,229,77,50,14,0,WS_EX_STATICEDGE - LISTBOX IDC_MESSAGE_LIST,285,17,145,74,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "New Msg",IDC_NEW_MSG,387,7,43,14,0,WS_EX_STATICEDGE + PUSHBUTTON "Insert Msg",IDC_INSERT_MSG,387,23,43,14,0,WS_EX_STATICEDGE + PUSHBUTTON "Delete Msg",IDC_DELETE_MSG,387,39,43,14,0,WS_EX_STATICEDGE + LISTBOX IDC_MESSAGE_LIST,285,7,78,84,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP EDITTEXT IDC_MESSAGE_NAME,285,95,145,14,ES_AUTOHSCROLL EDITTEXT IDC_MESSAGE_TEXT,261,125,169,54,ES_MULTILINE | ES_AUTOVSCROLL | ES_WANTRETURN COMBOBOX IDC_AVI_FILENAME,303,194,67,111,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP @@ -1490,7 +1499,6 @@ BEGIN LTEXT "Directive keypress text",IDC_STATIC,7,372,74,8 LTEXT "Message Text",IDC_STATIC,261,114,48,8 LTEXT "Name",IDC_STATIC,261,97,20,8 - LTEXT "Messages",IDC_STATIC,335,7,35,8 LTEXT "ANI file",IDC_STATIC,275,197,23,8 LTEXT "Wave file",IDC_STATIC,267,212,31,8 LTEXT "Persona",IDC_STATIC,271,227,27,8 @@ -1511,6 +1519,14 @@ BEGIN LTEXT "Log These States To The Event.log",IDC_STATIC,37,386,114,8 CONTROL "Interval && Chain in Milliseconds",IDC_USE_MSECS,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,208,275,65,19 PUSHBUTTON "Add Note",IDC_NEW_NOTE,380,111,50,12,0,WS_EX_STATICEDGE + PUSHBUTTON "Top",IDC_EVENT_MOVE_TO_TOP,207,7,16,16,BS_ICON,WS_EX_STATICEDGE + PUSHBUTTON "Up",IDC_EVENT_MOVE_UP,207,23,16,16,BS_ICON,WS_EX_STATICEDGE + PUSHBUTTON "Down",IDC_EVENT_MOVE_DOWN,207,39,16,16,BS_ICON,WS_EX_STATICEDGE + PUSHBUTTON "Bottom",IDC_EVENT_MOVE_TO_BOTTOM,207,55,16,16,BS_ICON,WS_EX_STATICEDGE + PUSHBUTTON "Top",IDC_MESSAGE_MOVE_TO_TOP,367,7,16,16,BS_ICON,WS_EX_STATICEDGE + PUSHBUTTON "Up",IDC_MESSAGE_MOVE_UP,367,23,16,16,BS_ICON,WS_EX_STATICEDGE + PUSHBUTTON "Down",IDC_MESSAGE_MOVE_DOWN,367,39,16,16,BS_ICON,WS_EX_STATICEDGE + PUSHBUTTON "Bottom",IDC_MESSAGE_MOVE_TO_BOTTOM,367,55,16,16,BS_ICON,WS_EX_STATICEDGE END IDD_BG_BITMAP DIALOGEX 0, 0, 431, 470 @@ -3412,8 +3428,9 @@ BEGIN 0, 100, 50, 0, 0, 100, 50, 0, 50, 50, 50, 50, - 50, 50, 0, 0, - 50, 50, 0, 0, + 100, 0, 0, 0, + 100, 0, 0, 0, + 100, 0, 0, 0, 50, 0, 50, 50, 50, 50, 50, 0, 50, 50, 50, 0, @@ -3434,7 +3451,6 @@ BEGIN 0, 100, 0, 0, 50, 50, 0, 0, 50, 50, 0, 0, - 75, 0, 0, 0, 50, 50, 0, 0, 50, 50, 0, 0, 50, 50, 0, 0, @@ -3454,7 +3470,15 @@ BEGIN 25, 100, 0, 0, 25, 100, 0, 0, 50, 50, 0, 0, - 50, 50, 0, 0 + 100, 50, 0, 0, + 50, 0, 0, 0, + 50, 0, 0, 0, + 50, 0, 0, 0, + 50, 0, 0, 0, + 100, 0, 0, 0, + 100, 0, 0, 0, + 100, 0, 0, 0, + 100, 0, 0, 0 END IDD_ASTEROID_EDITOR AFX_DIALOG_LAYOUT diff --git a/fred2/res/move_bot.bmp b/fred2/res/move_bot.bmp new file mode 100644 index 00000000000..b2224d50d8c Binary files /dev/null and b/fred2/res/move_bot.bmp differ diff --git a/fred2/res/move_bot2.bmp b/fred2/res/move_bot2.bmp new file mode 100644 index 00000000000..7d6777b7e5c Binary files /dev/null and b/fred2/res/move_bot2.bmp differ diff --git a/fred2/res/move_down.bmp b/fred2/res/move_down.bmp new file mode 100644 index 00000000000..6ff650c2605 Binary files /dev/null and b/fred2/res/move_down.bmp differ diff --git a/fred2/res/move_down2.bmp b/fred2/res/move_down2.bmp new file mode 100644 index 00000000000..cadaa2d8d7b Binary files /dev/null and b/fred2/res/move_down2.bmp differ diff --git a/fred2/res/move_top.bmp b/fred2/res/move_top.bmp new file mode 100644 index 00000000000..9993a4490bd Binary files /dev/null and b/fred2/res/move_top.bmp differ diff --git a/fred2/res/move_top2.bmp b/fred2/res/move_top2.bmp new file mode 100644 index 00000000000..293f3de6931 Binary files /dev/null and b/fred2/res/move_top2.bmp differ diff --git a/fred2/res/move_up.bmp b/fred2/res/move_up.bmp new file mode 100644 index 00000000000..3dba22e08e4 Binary files /dev/null and b/fred2/res/move_up.bmp differ diff --git a/fred2/res/move_up2.bmp b/fred2/res/move_up2.bmp new file mode 100644 index 00000000000..7c8ab57b925 Binary files /dev/null and b/fred2/res/move_up2.bmp differ diff --git a/fred2/resource.h b/fred2/resource.h index 35e6ed4f750..f05d12a8885 100644 --- a/fred2/resource.h +++ b/fred2/resource.h @@ -138,6 +138,11 @@ #define IDD_VOLUMETRICS 332 #define IDD_EDIT_CUSTOM_STRINGS 333 #define IDD_SUPPORT_REARM_OPTIONS 334 +#define IDD_REORDER 335 +#define IDB_MOVE_TO_TOP 336 +#define IDB_MOVE_UP 337 +#define IDB_MOVE_DOWN 338 +#define IDB_MOVE_TO_BOTTOM 339 #define IDC_SHIP_CLASS 1003 #define IDC_SHIP_WING 1004 #define IDC_SOUND_CLIP_NAME 1007 @@ -1290,6 +1295,21 @@ #define IDC_SUPPORT_REARM_SET_ALL_UNLIMITED 1729 #define IDC_SUPPORT_REARM_SET_ALL_ZERO 1730 #define IDC_SUPPORT_REARM_POOL_TEAM 1731 +#define IDC_REORDER_TYPE 1732 +#define IDC_REORDER_LIST 1733 +#define IDC_REORDER_MOVE_TO_TOP 1734 +#define IDC_REORDER_MOVE_UP 1735 +#define IDC_REORDER_MOVE_DOWN 1736 +#define IDC_REORDER_MOVE_TO_BOTTOM 1737 +#define IDC_EVENT_MOVE_TO_TOP 1738 +#define IDC_EVENT_MOVE_UP 1739 +#define IDC_EVENT_MOVE_DOWN 1740 +#define IDC_EVENT_MOVE_TO_BOTTOM 1741 +#define IDC_MESSAGE_MOVE_TO_TOP 1742 +#define IDC_MESSAGE_MOVE_UP 1743 +#define IDC_MESSAGE_MOVE_DOWN 1744 +#define IDC_MESSAGE_MOVE_TO_BOTTOM 1745 +#define IDC_INSERT_MSG 1746 #define IDC_SEXP_POPUP_LIST 32770 #define ID_FILE_MISSIONNOTES 32771 #define ID_DUPLICATE 32774 @@ -1604,9 +1624,9 @@ #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_3D_CONTROLS 1 -#define _APS_NEXT_RESOURCE_VALUE 335 +#define _APS_NEXT_RESOURCE_VALUE 340 +#define _APS_NEXT_CONTROL_VALUE 1747 #define _APS_NEXT_COMMAND_VALUE 33112 -#define _APS_NEXT_CONTROL_VALUE 1732 #define _APS_NEXT_SYMED_VALUE 105 #endif #endif