diff --git a/README.md b/README.md index c4b38a3..b35c5e6 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ Powerful tool for creating, editing and debugging SCXML charts. ## Installation You can find portable version as attached Zip in ScxmlEditor Github Release page -Latest version: **[2.5.4.1768]** +Latest version: **[2.5.4.1769]** ### Windows Installation #### First Install diff --git a/Src/ScxmlEditor.cbproj b/Src/ScxmlEditor.cbproj index 16b3c63..47c6a73 100644 --- a/Src/ScxmlEditor.cbproj +++ b/Src/ScxmlEditor.cbproj @@ -1015,7 +1015,7 @@ alexander.zhornyak@gmail.com Scxml State Charts Editor - 2.5.4.1768 + 2.5.4.1769 alexander.zhornyak@gmail.com diff --git a/Src/ScxmlEditor.res b/Src/ScxmlEditor.res index 6017eb6..075b3b0 100644 Binary files a/Src/ScxmlEditor.res and b/Src/ScxmlEditor.res differ diff --git a/Src/ScxmlEditor_resources.rc b/Src/ScxmlEditor_resources.rc index 8878f79..e0aceaf 100644 --- a/Src/ScxmlEditor_resources.rc +++ b/Src/ScxmlEditor_resources.rc @@ -1,40 +1,40 @@ -PngIf RCData "Images\\if_16_16.png" -CompleteCPP RCData "complete_all_CPP.txt" -PngLog RCData "Images\\log_16_16.png" -PngError RCData "Images\\error_16.png" -PngWatch RCData "Images\\watch_16_16.png" -PngData RCData "Images\\data_16_16.png" -PngAssign RCData "Images\\assign_16_16.png" -PngParam RCData "Images\\param_16_16.png" -PngSessionState RCData "Images\\statemachine_16_16.png" -PngProtocol RCData "Images\\protocol_16_16.png" -PngTransitionXML RCData "Images\\XMLText_Transition_16.png" -CompletePython RCData "complete_all_python.txt" -CompleteDebug RCData "complete_debug.lua" -PngTrigger RCData "Images\\trigger_16_16.png" -ResLogProperties RCData "ScxmlEditor.properties" -PngScript RCData "Images\\script_16_16.png" -PngCancel RCData "Images\\cancel_16_16.png" -CompleteString RCData "complete_string.lua" -PngProtocolWeak RCData "Images\\protocol_weak_16_16.png" -PngSend RCData "Images\\send_16_16.png" +PngFinalize RCData "Images\\finalize_16_16.png" +PngForeach RCData "Images\\foreach_16_16.png" +CompleteBasic RCData "complete_basic.lua" +PngDatamodel RCData "Images\\datamodel_16_16.png" PngVirtualFolder RCData "Images\\virtual_folder_16_16.png" +PngSend RCData "Images\\send_16_16.png" PngComment RCData "Images\\comment_16_16.png" PngRaise RCData "Images\\raise_16_16.png" -CompleteBasic RCData "complete_basic.lua" -PngDatamodel RCData "Images\\datamodel_16_16.png" -CompleteEcmascript RCData "complete_all_js.txt" -CompleteUtf8 RCData "complete_utf8.lua" PngExtraContent RCData "Images\\extracontent_16_16.png" CompleteTable RCData "complete_table.lua" -PngForeach RCData "Images\\foreach_16_16.png" -PngFinalize RCData "Images\\finalize_16_16.png" -PngOnEntry RCData "Images\\onenter_16_16.png" -PngSetValue RCData "Images\\setvalue_16_16.png" -PngInvoke RCData "Images\\invoke_16_16.png" -CompleteMath RCData "complete_math.lua" -ResCurPan Cursor "Images\\PanningCursor.cur" -PngContent RCData "Images\\content_16_16.png" +CompleteEcmascript RCData "complete_all_js.txt" +CompleteUtf8 RCData "complete_utf8.lua" +PngOnExit RCData "Images\\onexit_16_16.png" PngDoneData RCData "Images\\donedata_16_16.png" CompleteOs RCData "complete_os.lua" -PngOnExit RCData "Images\\onexit_16_16.png" +PngInvoke RCData "Images\\invoke_16_16.png" +PngSetValue RCData "Images\\setvalue_16_16.png" +PngOnEntry RCData "Images\\onenter_16_16.png" +PngContent RCData "Images\\content_16_16.png" +ResCurPan Cursor "Images\\PanningCursor.cur" +CompleteMath RCData "complete_math.lua" +PngData RCData "Images\\data_16_16.png" +PngAssign RCData "Images\\assign_16_16.png" +PngProtocol RCData "Images\\protocol_16_16.png" +PngParam RCData "Images\\param_16_16.png" +PngSessionState RCData "Images\\statemachine_16_16.png" +CompleteCPP RCData "complete_all_CPP.txt" +PngIf RCData "Images\\if_16_16.png" +PngError RCData "Images\\error_16.png" +PngWatch RCData "Images\\watch_16_16.png" +PngLog RCData "Images\\log_16_16.png" +CompleteString RCData "complete_string.lua" +PngCancel RCData "Images\\cancel_16_16.png" +PngProtocolWeak RCData "Images\\protocol_weak_16_16.png" +ResLogProperties RCData "ScxmlEditor.properties" +PngScript RCData "Images\\script_16_16.png" +PngTrigger RCData "Images\\trigger_16_16.png" +PngTransitionXML RCData "Images\\XMLText_Transition_16.png" +CompleteDebug RCData "complete_debug.lua" +CompletePython RCData "complete_all_python.txt" diff --git a/Src/UnitScxmlBaseShape.cpp b/Src/UnitScxmlBaseShape.cpp index 66f8954..73a588d 100644 --- a/Src/UnitScxmlBaseShape.cpp +++ b/Src/UnitScxmlBaseShape.cpp @@ -2056,44 +2056,52 @@ void __fastcall TVisualScxmlBaseShape::DrawShapeCanvas(Tecanvas::TCanvas3D * ACa break; } - TTreeNodeShape *AParent = dynamic_cast(AVisualParent->Parent); - while (AParent) { + if (!this->SimpleText.IsEmpty()) { - TVisualScxmlBaseShape * AVisualUpperParent = dynamic_cast(AParent); - if (AVisualUpperParent) { - if (AVisualUpperParent->ExcludeFromSave) { - break; - } + TTreeNodeShape *AParent = dynamic_cast(AVisualParent->Parent); + while (AParent) { - bool bIsNestedInitial = false; + TVisualScxmlBaseShape * AVisualUpperParent = dynamic_cast(AParent); + if (AVisualUpperParent) { + if (AVisualUpperParent->ExcludeFromSave) { + break; + } - switch(AVisualUpperParent->StateChildType) { - case sctScxml: - case sctState: { - if (AVisualUpperParent->FInitial == this->SimpleText) { - bIsNestedInitial = true; - } - }break; - } + bool bIsNestedInitial = false; + + switch(AVisualUpperParent->StateChildType) { + case sctScxml: + case sctState: { + std::auto_ptrAInitialList(new TStringList); + AInitialList->StrictDelimiter = true; + AInitialList->Delimiter = L' '; + AInitialList->DelimitedText = AVisualUpperParent->FInitial; + if (AInitialList->IndexOf(this->SimpleText) != -1) { + bIsNestedInitial = true; + } + }break; + } + + if (bIsNestedInitial) { + ACanvas->Brush->Color = SettingsData->ThemeSettings->StateInitialBorderColor; + ACanvas->Pen->Color = clBlack; - if (bIsNestedInitial) { - ACanvas->Brush->Color = SettingsData->ThemeSettings->StateInitialBorderColor; - ACanvas->Pen->Color = clBlack; + if (this->StateChildType == sctFinal) { - if (this->StateChildType == sctFinal) { + ACanvas->EllipseWithZ(TRect(R.Left - 4, R.Top - 10, R.Left + 6, R.Top), TeeTreeZ); - ACanvas->EllipseWithZ(TRect(R.Left - 4, R.Top - 10, R.Left + 6, R.Top), TeeTreeZ); + } + else { + ACanvas->EllipseWithZ(TRect(R.Left + 4, R.Top + 4, R.Left + 14, R.Top + 14), TeeTreeZ); + } + break; } - else { - ACanvas->EllipseWithZ(TRect(R.Left + 4, R.Top + 4, R.Left + 14, R.Top + 14), TeeTreeZ); - } - - break; } + + AParent = AParent->Parent; } - AParent = AParent->Parent; } }