From: <pst...@us...> - 2008-04-08 04:35:06
|
Revision: 441 http://jazzplusplus.svn.sourceforge.net/jazzplusplus/?rev=441&view=rev Author: pstieber Date: 2008-04-07 21:34:59 -0700 (Mon, 07 Apr 2008) Log Message: ----------- 1. Changed tScaleType to TEScaleType. 2. Added some menu entry update handlers. Modified Paths: -------------- trunk/jazz/src/Harmony.cpp trunk/jazz/src/Harmony.h trunk/jazz/src/HarmonyP.cpp trunk/jazz/src/HarmonyP.h Modified: trunk/jazz/src/Harmony.cpp =================================================================== --- trunk/jazz/src/Harmony.cpp 2008-04-07 14:01:49 UTC (rev 440) +++ trunk/jazz/src/Harmony.cpp 2008-04-08 04:34:59 UTC (rev 441) @@ -481,6 +481,8 @@ public: + static TEScaleType GetScaleType(); + HBCanvas(wxFrame* pParent, int x, int y, int w, int h); virtual ~HBCanvas(); @@ -508,6 +510,8 @@ void ToggleHaunschildLayout(); + bool IsUsingHaunschildLayout() const; + void FileLoad(); void FileSaveAs(); @@ -543,11 +547,11 @@ void SetMarker(int MenuId, wxToolBar* pToolBar); - void SetScaleType(int MenuId, tScaleType ScaleType, wxToolBar* pToolBar); + void SetScaleType(int MenuId, TEScaleType ScaleType, wxToolBar* pToolBar); private: - static tScaleType mScaleType; + static TEScaleType mScaleType; static int transpose_res; @@ -594,6 +598,12 @@ DECLARE_EVENT_TABLE() }; +inline +bool HBCanvas::IsUsingHaunschildLayout() const +{ + return mHaunschildLayout; +} + //***************************************************************************** // Description: // This is the harmony browser match markers class definition. @@ -712,13 +722,20 @@ //***************************************************************************** //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- -tScaleType HBCanvas::mScaleType = Major; +TEScaleType HBCanvas::mScaleType = Major; const int HBCanvas::ScFa = 50; int HBCanvas::transpose_res = 8; int HBCanvas::analyze_res = 8; //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- +TEScaleType HBCanvas::GetScaleType() +{ + return mScaleType; +} + +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- BEGIN_EVENT_TABLE(HBCanvas, wxScrolledWindow) EVT_MOUSE_EVENTS(HBCanvas::OnMouseEvent) @@ -1291,7 +1308,7 @@ //----------------------------------------------------------------------------- void HBCanvas::SetScaleType( int MenuId, - tScaleType ScaleType, + TEScaleType ScaleType, wxToolBar* pToolBar) { mScaleType = ScaleType; @@ -1836,10 +1853,19 @@ //----------------------------------------------------------------------------- BEGIN_EVENT_TABLE(HBFrame, wxFrame) + + EVT_UPDATE_UI(MEN_MAJSCALE, HBFrame::OnUpdateMajorScale) EVT_MENU(MEN_MAJSCALE, HBFrame::OnToolBarSelect) + + EVT_UPDATE_UI(MEN_HARSCALE, HBFrame::OnUpdateHarmonicMinorScale) EVT_MENU(MEN_HARSCALE, HBFrame::OnToolBarSelect) + + EVT_UPDATE_UI(MEN_MELSCALE, HBFrame::OnUpdateMelodicMinorScale) EVT_MENU(MEN_MELSCALE, HBFrame::OnToolBarSelect) + + EVT_UPDATE_UI(MEN_IONSCALE, HBFrame::OnUpdateIonicScale) EVT_MENU(MEN_IONSCALE, HBFrame::OnToolBarSelect) + EVT_MENU(MEN_EQ4, HBFrame::OnToolBarSelect) EVT_MENU(MEN_EQ3, HBFrame::OnToolBarSelect) EVT_MENU(MEN_EQ2, HBFrame::OnToolBarSelect) @@ -1859,6 +1885,7 @@ EVT_MENU(MEN_MIDI, HBFrame::OnSettingsMidi) + EVT_UPDATE_UI(MEN_MAJSCALE, HBFrame::OnUpdateHaunschildLayout) EVT_MENU(MEN_HAUNSCH, HBFrame::OnSettingsHaunschild) EVT_MENU(MEN_CLEARSEQ, HBFrame::OnActionClearSequence) @@ -1899,13 +1926,17 @@ pSettingsMenu->Append(MEN_EDIT, "&Chord"); pSettingsMenu->Append(MEN_SETTINGS, "&Global"); pSettingsMenu->Append(MEN_MIDI, "&Midi"); - pSettingsMenu->Append(MEN_HAUNSCH, "&Haunschild Layout"); + pSettingsMenu->Append( + MEN_HAUNSCH, + "&Haunschild Layout", + "Display using Haunschild Layout", + true); wxMenu* pScaleMenu = new wxMenu; - pScaleMenu->Append(MEN_MAJSCALE, "&Major"); - pScaleMenu->Append(MEN_HARSCALE, "&Harmonic Minor"); - pScaleMenu->Append(MEN_MELSCALE, "&Melodic Minor"); - pScaleMenu->Append(MEN_IONSCALE, "&Ionic"); + pScaleMenu->Append(MEN_MAJSCALE, "&Major", "Use Major Scales", true); + pScaleMenu->Append(MEN_HARSCALE, "&Harmonic Minor", "Use Harmonic Minor Scales", true); + pScaleMenu->Append(MEN_MELSCALE, "&Melodic Minor", "Use Melodic Minor Scales", true); + pScaleMenu->Append(MEN_IONSCALE, "&Ionic", "Use Ionic Scales", true); wxMenu* pShowMenu = new wxMenu; pShowMenu->Append(MEN_EQ4, "&4 equal notes"); @@ -2018,6 +2049,34 @@ //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- +void HBFrame::OnUpdateMajorScale(wxUpdateUIEvent& Event) +{ + Event.Check(HBCanvas::GetScaleType() == Major); +} + +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +void HBFrame::OnUpdateHarmonicMinorScale(wxUpdateUIEvent& Event) +{ + Event.Check(HBCanvas::GetScaleType() == Harmon); +} + +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +void HBFrame::OnUpdateMelodicMinorScale(wxUpdateUIEvent& Event) +{ + Event.Check(HBCanvas::GetScaleType() == Melod); +} + +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +void HBFrame::OnUpdateIonicScale(wxUpdateUIEvent& Event) +{ + Event.Check(HBCanvas::GetScaleType() == Ionb13); +} + +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- void HBFrame::OnToolBarSelect(wxCommandEvent& Event) { mpHbWindow->MenuCommand( @@ -2048,6 +2107,13 @@ //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- +void HBFrame::OnUpdateHaunschildLayout(wxUpdateUIEvent& Event) +{ + Event.Check(mpHbWindow->IsUsingHaunschildLayout()); +} + +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- void HBFrame::OnSettingsHaunschild(wxCommandEvent& Event) { mpHbWindow->ToggleHaunschildLayout(); Modified: trunk/jazz/src/Harmony.h =================================================================== --- trunk/jazz/src/Harmony.h 2008-04-07 14:01:49 UTC (rev 440) +++ trunk/jazz/src/Harmony.h 2008-04-08 04:34:59 UTC (rev 441) @@ -86,6 +86,11 @@ protected: + void OnUpdateMajorScale(wxUpdateUIEvent& Event); + void OnUpdateHarmonicMinorScale(wxUpdateUIEvent& Event); + void OnUpdateMelodicMinorScale(wxUpdateUIEvent& Event); + void OnUpdateIonicScale(wxUpdateUIEvent& Event); + void OnToolBarSelect(wxCommandEvent& Event); void OnFileLoad(wxCommandEvent& Event); @@ -96,6 +101,7 @@ void OnSettingsMidi(wxCommandEvent& Event); + void OnUpdateHaunschildLayout(wxUpdateUIEvent& Event); void OnSettingsHaunschild(wxCommandEvent& Event); void OnActionClearSequence(wxCommandEvent& Event); Modified: trunk/jazz/src/HarmonyP.cpp =================================================================== --- trunk/jazz/src/HarmonyP.cpp 2008-04-07 14:01:49 UTC (rev 440) +++ trunk/jazz/src/HarmonyP.cpp 2008-04-08 04:34:59 UTC (rev 441) @@ -147,7 +147,9 @@ buf[i++] = '-'; } if (c.Contains(2)) + { buf[i++] = '9'; + } if (sharp9) { @@ -312,7 +314,7 @@ }; -HBContext::HBContext(int sn, int cn, tScaleType st) +HBContext::HBContext(int sn, int cn, TEScaleType st) { scale_type = st; scale_nr = sn % 12; @@ -454,7 +456,7 @@ int sc; is >> sc >> a.scale_nr >> a.chord_nr >> a.seq_nr >> a.chord_key; is >> a.chord >> a.scale; - a.scale_type = (tScaleType)sc; + a.scale_type = (TEScaleType)sc; return is; } @@ -470,7 +472,7 @@ HBContextIterator::HBContextIterator() : match(def_match) { - context.scale_type = (tScaleType)0; + context.scale_type = (TEScaleType)0; context.scale_nr = 0; context.chord_nr = -1; i_seq = n_seq = 0; @@ -480,7 +482,7 @@ HBContextIterator::HBContextIterator(HBMatch &m) : match(m) { - context.scale_type = (tScaleType)0; + context.scale_type = (TEScaleType)0; context.scale_nr = 0; context.chord_nr = -1; i_seq = n_seq = 0; @@ -495,7 +497,7 @@ { if (scale_type != nScaleTypes && context.scale_type != scale_type) { - context.scale_type = (tScaleType)((int)context.scale_type + 1); + context.scale_type = (TEScaleType)((int)context.scale_type + 1); continue; } @@ -512,7 +514,7 @@ context.scale_nr ++; } context.scale_nr = 0; - context.scale_type = (tScaleType)((int)context.scale_type + 1); + context.scale_type = (TEScaleType)((int)context.scale_type + 1); } while (i_seq < n_seq) Modified: trunk/jazz/src/HarmonyP.h =================================================================== --- trunk/jazz/src/HarmonyP.h 2008-04-07 14:01:49 UTC (rev 440) +++ trunk/jazz/src/HarmonyP.h 2008-04-08 04:34:59 UTC (rev 441) @@ -29,7 +29,14 @@ // HBChord // ------------------------------------------------------------------ -enum tScaleType { Major, Harmon, Melod, Ionb13, nScaleTypes }; +enum TEScaleType +{ + Major, + Harmon, + Melod, + Ionb13, + nScaleTypes +}; class HBChord @@ -257,7 +264,7 @@ public: - HBContext(int sn, int cn = 0, tScaleType st = Major); + HBContext(int sn, int cn = 0, TEScaleType st = Major); HBContext(); @@ -301,7 +308,7 @@ return scale_nr; } - tScaleType ScaleType() const + TEScaleType ScaleType() const { return scale_type; } @@ -352,7 +359,7 @@ int MakeChordKey() const; - tScaleType scale_type; + TEScaleType scale_type; int scale_nr; @@ -426,7 +433,7 @@ n_seq = n; } - void SetScaleType(tScaleType st) + void SetScaleType(TEScaleType st) { scale_type = st; } @@ -455,7 +462,7 @@ int i_seq, n_seq; - tScaleType scale_type; + TEScaleType scale_type; }; #endif // !defined(JZ_HARMONYP_H) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |