Authoring Tools Framework 3.7 RELEASED - kaisu1986/ATF GitHub Wiki

日本語の翻蚳は、英語に続く埌半をご芧ください。

The Authoring Tools Framework (ATF) 3.7 Release has many improvements and bug fixes, reflecting six months of work and client contributions. There are some minor compile-time breaking changes that are unlikely to affect anyone. Please see below for details.

Table of Contents

Top New Features

Many usability and stability enhancements to Circuit Editor, particularly with circuit groups.

Most user interface text is now available in Japanese, especially in the Circuit Editor.

Added a new sample app, “DOM Property Editor”, that demonstrates the use of all the various property editing controls. This replaces the old Property Editing sample app.

Compatibility with Windows® 8 and 8.1

All of our sample apps appear to run correctly on Windows® 8 and Windows® 8.1. The only real issue that we are aware of is that the Direct2D performance has more variation when compared to Windows® 7, and is generally worse, with Windows® 8.1 performing better than 8 overall. We expect the performance to improve over time as newer drivers are released.

Breaking Changes

ISettingsService (in both the Sce.Atf.Applications and Scea.Editors.Services namespaces) has a new event called Loading, so that client code can know when a group of settings is about to be loaded. This new event complements the existing Reloaded event. Client code can now know when all persisted settings are being restored, in case there are dependencies between the settings. We think it is very unlikely that clients have implemented ISettingsService, but if they have, this new event simply needs to be raised before any settings files are loaded.

Sce.Atf.Dom.TemplateReference has been removed because it was too simple and wasn't useful enough and wasn't used by the Circuit Editor sample app. We think this breaking change is very unlikely to affect anyone.

Bug Fixes and Improvements

Source Control/Perforce Service:

  • PerforceService now makes use of the Perforce company's new C# bindings API P4API.NET version 2013.2, to replace the out-of-date and no longer supported open source project P4.Net. The switch allows the service to work with latest Perforce features (e.g. streams).
  • All PerforceService source control operation methods (CheckOut, CheckIn, Revert, etc.) are now asynchronous, processed in a BackgroundWorker.
  • CodeEditor sample app added OutputService to log Perforce service messages.
  • Code editor now reloads document when it is notified that the document's source control status has changed to 'checked in'. Allows editor view to update contents after reverting a checked out and modified file.
  • PerforceService - When SettingsService is in the middle of loading and assigning settings, cache off assignments to 'Enabled', 'DefaultConnection', and 'ConnectionHistory' properties. Apply these cached values, in the correct order, after SettingsService has completed loading.
  • PerforceService: fixed a crash that could happen when reverting a file.
  • Extend 'Loading' event, recently added to ISettingsService, to legacy ISettingsService. Have legacy PerforceService hook into Loading (and Reloaded) events.
  • If the source control status of a file is requested, and that file has been deleted from the source control server, its status is now specified as ‘NotControlled’ instead of ‘Deleted’. ‘Deleted’ now means that the user has deleted the file locally but has not yet committed the change.
  • Source control status icons on files are now updated correctly if the source control service is disabled.
  • Replaced Connection.get with operation-specific methods on m_connection.
  • Created DestroyConnection, to guarantee m_connectionInitialized is set to false when m_connection.Disconnect() is called.
  • Submit a dummy command result when P4Command.Run() throws an exception.
  • UpdateFileInfoCache() - for refresh items that didn't return a record from P4, only send OnStatusChanged if that item previously was under P4.
  • Refresh Project Editor source control status when a new file is added.


Localization:

  • Fixed and improved the LocalizableStringExtractor development tool (added a way to edit the list of assemblies, added logging of the progress).
  • The Localize() extension method can only be used on string literals, so fixed a bunch of places where it was being called on local variables or parameters.
  • Projects now use an embedded Localization.xml file, rather than having a uniquely named file per project, just to be more consistent.
  • Multiple translations for the same original string are now supported, as long as each context string is unique.
  • Made more user-readable strings to be localized.
  • In RecentDocumentCommands, there was a problem where the user-readable document type name was being persisted in the user settings and was preventing the document from being loaded if the computer's language setting changed. This type name is no longer persisted and instead the IDocumentClients are searched (there is usually just one and rarely more than two or three) to see if CanOpen() works.
  • Lots of localization work was done to support translating ATF to Japanese.
  • Fixed Japanese localization issue with TimelineEditor that caused problems with the recent files list after changing languages.


Circuits/Circuit Groups:

  • In CircuitValidator.AddNode, disabled the history context's default behavior of automatically combining attribute setting operations, as it was causing incorrect behavior for certain operations such as grouping pin index changes.
  • Changed GroupPinEditor.AdjustLayout() from internal to public so it is accessible for some functional tests.
  • CircuitEditingContext fixed multiple enumeration bugs in the Move() method.
  • CircuitControlRegistry:
    • CircuitNodeControls getter to retrieve all DomNode/circuit-control pairs (use-scenario: selection changes in animation tree view will adjust selections in the graph view if applicable; note each view has its own selection context).
    • GetCircuitControlInfo() is a new method that takes a DomNode and returns information about the circuit control associated with that DomNode.
    • Renamed private docNode_AttributeChanged() to protected virtual OnDocumentNodeAttributeChanged().
  • Fixed a bug in promoting selected items to template library caught by TestTemplates test script.
  • Added drag selection of multiple subnodes in an expanded group.
  • Use local bounds for resizing a group.
  • When a group is expanded, it can now only be dragged by clicking its title bar, not its background.
  • In node picking logic, skip hidden nodes.
  • Fixed an infinite loop that can be caused by dragging a circuit element into an expanded circuit group, and then resizing the expanded circuit group.
  • Added support for drawing wires in polyline (in addition to Bezier).
  • Added D2dCircuitRenderer.MaxCollapsedGroupPinNameLength to allow client code to specify the maximum displayed length for pin names on a collapsed circuit group. If a pin name is longer than this when the group is collapsed, then the displayed pin name will be truncated and shown with an ellipsis. The default is 25 characters and the minimum is 5 characters.
  • Added support to allow wires to be connected directly between an external element and an internal element of a circuit group .
  • Fixed cannot create connection between items within different groups.
  • Set the visibility of newly created group pins to ShowExpandedGroupPins for unconnected pins.
  • CircuitEditingContext added SupportsNestedGroup property to make easier to toggle on/off the feature.
  • Make group resizing undoable in Circuit Editor.
  • Fixed crash on dragging a node out of a group when the node has connections to other nodes in the group.
  • Made resizing groups by dragging their edges work correctly.
  • Fixed a crash when toggling "Hide unconnected pins" on a template instance using rapid mouse clicks.
  • Circuit group added explicit implementation of ICircuitElementType.Name to differentiate the group node type name from group node name. Removed ProxyElementType class which was backported from Creature Editor for customizing group type names but caused other problems. Explicit implementation solves the same problem in a simpler way.
  • D2dCircuitRenderer initializes MaxCollapsedGroupPinNameLength to 25. The value was left to default 0 previously, caused text trimming even for short group pin names.
  • The Element’s AllInputPins and AllOutputPins properties are now virtual, and are overridden by the Group. The Group now considers hidden pins in these overrides, in order to fix a crash.
  • Circuit grouping: update hit path for draggingContext before querying its EditableGraph because the latter is depending on former.
  • Legacy Circuit Editor: removed the two circuit group commands (Group and Ungroup), because they never were fully implemented.
  • Fixed a bug with the Bounds property of circuit elements which caused the StandardLayoutCommands to not be able to align on the right or bottom sides correctly.


Property Editing:

  • GridView (used by the spreadsheet-style property editor): fixed a bug with the automatic scrolling when the user unselects a row while many other rows are still selected and some of them are off screen. It's not clear what selected row, if any, should be scrolled to when this happens, so simply disabled automatic scrolling in this situation.
  • PropertyView now observes IsBrowsable (specified in the BrowsableAttribute) value of a descriptor.
  • Replaced TrackBar used in IntInputControl and FloatInputControl with compact spinner. The compact spinner occupies less space and is easier to use. The freed space is given to the InputBox.
  • PropertyEditor:
    • Handled OnBackColorChanged for NumericMatrixControl and NumericTupleControl.
    • Draw label for NumericTupleControl.
  • Added new sample: DomPropertyEditor
  • Bug fixes in EmbeddedCollectionEditor:
    • Undo/redo and up/down did not work correctly for child objects.
    • When adding a new item after deleting an item, the new item did not show up.
    • Fixed DomPropertyEditor sample app doesn't run on Windows® 8. This was due to a reentrancy problem.
  • Adjusted value changes for mouse speed in BoundedFloatEditor and BoundedIntEditor.
Other Changes:
  • Added/moved license info for third party components to ThirdParty directory.
  • ModelViewer sample app: fixed a problem where model files could not be re-opened in the same session.
  • ISettingsService and SettingsService: added the Loading event, so that client code can know when a group of settings is about to be loaded and set. This is a minor breaking change. It is very unlikely that clients have implemented ISettingsService, but if they have, this new event simply needs to be raised before any settings files are loaded.
  • TreeList:
    • TreeListViewAdapter: fixed a couple of crashes with the IObservableContext's Reloaded event handler, when the TreeListViewAdapter is in virtual mode.
    • TreeListEditor sample app: Added the Reload button to the Virtual List editor. Fixed the recursive-check-boxes button enum to be a 1-bit flag instead of accidentally reusing the flags from two other buttons.
    • Add additional DrawBackground() method that passes in the Node.
    • TreeControl now supports tool tips. These tool tips can be seen in the Circuit Editor, FSM Editor, Statechart Editor, and Timeline Editor sample apps, in the item palette.
  • DoTransaction() extension method skips doing the transaction and the End call if the transaction is canceled in the call to Begin.
  • DomXmlWriter:
    • Added ShouldWriteAttribute() method so clients can selectively write or skip some attribute values, regardless of whether they are set to the default value.
    • Made WriteChildElementsRecursive() virtual so client code can override.
  • ErrorDialogService now shows the type of error (error, warning, info) in the dialog title.
  • Context-sensitive online help is now available by associating a URL per registered Control or Command, or by using the new WebHelp class. WebHelpCommands is a new class (and MEF component) that will provide a menu command for opening a URL that gives top-level help for the app. Many GUI components of ATF now provide context sensitive help such that when the user presses F1 with that GUI component or menu/toolbar command having focus, an appropriate URL will be opened.
  • Removed Sce.Atf.Dom.TemplateReference from Framework and from the CircuitEditor sample app. This is a breaking change that is unlikely to affect anyone.
  • Extended ISelectionPathProvider to support copy-on-edit for templated instances.
  • Removed the "p4 edit" commands from these batch files that are used to generate C# DOM-related code from schema files. ATF doesn't use Perforce as our source code repository any more.
  • DomTreeEditor sample: Add attributes with various value editors to demonstrate these editors. Add ParseAnnotations() method to SchemaLoader so it can parse annotations in XML schema.
  • Several improvements to ControlHostService.
    • Exposed DockAreas to restrict where Panes can be docked.
    • Removed restriction preventing Panel's portions height from being set from SetPanelPortion method.
  • TimelineCommands.cs: Commands for removing items were not appearing in the Edit menu; changed null menuTag parameter to StandardMenu.Edit in RegisterCommand(). These commands were not undoable, so added transactions to ICommandClient.DoCommand() for them. Program.cs: Added AutoDocumentService component so last document open would reopen when starting sample.
  • Curve Editor:
    • The CurveEditor now updates when undoing setting tangent type.
    • Unified tangents are now treated as a rigid body.
    • Added new static property to Curve: EnforceCurveLimits.
  • Added FixedRemoteTestingPort property to FunctionalTestBase to accommodate CTE test custom behavior.
  • Added TagConsoleOutput property to FunctionalTestBase to turn on/off the tags that distinguishes the console output from test script vs. from the application.
  • Added method to convert docking panel portions to use absolute dimensions instead of relative. Old saved layouts are converted when DockPanelState is set.
  • Changed expanders in a few controls to have a more modern look (tree, propertyEditor, etc.).
  • Added the following:
    • D2dGraphics:
      • public D2dBitmap CreateBitmap(int width, int height)
    • D2dBitmap:
      • public System.Drawing.Bitmap GdiBitmap
      • public void Update()
    • D2dFactory:
      • public static D2dBitmap CreateBitmap(int width, int height)
  • Integrated improvements to the scripting command console, ConsoleTextBox:
    • Auto-complete suggestions.
    • Improved multi-line support
    • ArgumentOutOfRangeException when moving past prompt.
    • Selected text not being correct when selecting next/previous word.
    • Cursor getting stuck when selecting.
    • Suggestion ListBox showing in wrong place.
    • Indentation not working when in middle of multi-line statement.
    • Cleaned up incorrect uses of SelectionStart when CaretIndex should be used.
    • Fixed Home and End commands when outside of prompt.
  • Fixed bug: EnumUtil.GetEnumData would assert on enum declarations containing two or more entries with the same value. Fix ignores all but the first of same-value entries. This may be problematic for client code needing *all* entries of an enum type declaration. If so, result.DisplayStrings should be made a multimap, and this change can be removed. However, doing so might be a breaking change.
  • Added additional utility scripting variables:
    • 'atfSourceControl', if not null, will be a SourceControlService object.
    • 'atfLayout', if not null, will be a IWindowLayoutService object.
  • Incorporated a change from Guerrilla. RecentDocumentCommands, when a debugger is attached, will no longer remove documents from the list that fail to open.
  • IronPython does not support Ctrl+Shift navigation: Added (Ctrl|Ctrl+Shift)+End and (Ctrl|Ctrl+Shift)+Home to jump to beginning/end of lines/command.
  • IronPython 'Cut' shortcut can remove submitted commands: Regex for splitting text into word blocks now groups non-word characters and includes trailing whitespace with word blocks.
  • Disabled cut/copy/paste in CurveEditor. These operations are not well-defined for curves.
  • Fixed: Incorrect sorting in System Info dialog. Use Tag field for comparing Version and DateTime columns.
  • DomNode.Copy() now has passed-in map parameter to ease client code of custom clone logic after the clone.
  • Updated/cleaned-up/clarified the Wws.UI license.txt file.
  • Removed the Property Editing sample app, as it has been replaced by the DOM Property Editor sample app.
Documentation:
  • Sweeping changes have been made to the ATF Programmer’s Guide at ATF Programmer's Guide. Tons of new content has been added, and the existing content has been extensively reorganized, rewritten, and clarified.
  • Added the export of our Programmer Guide wiki pages. This is useful for clients without SHIP accounts.
以䞋日本語蚳*Authoring Tools Framework (ATF) 3.7 リリヌスには、6 ヶ月間の䜜業ずクラむアントからの協力により、倚くの改良およびバグ修正が含たれおいたす。 コンパむル時に関しおは、互換性が倱われる现かい倉曎点がありたすが、圱響の出る可胜性の䜎い倉曎です。 詳现は、以䞋を参照しおください。

䞻芁な新機胜

特に回路グルヌプに぀いお、Circuit Editor のナヌザビリティおよび安定性に関する倚数の匷化。

Circuit Editor をはじめずする、倧郚分のナヌザヌむンタヌフェむスを日本語化。

新しいサンプルアプリケヌション「DOM Property Editor」を远加。さたざたなプロパティ線集コントロヌルすべおの䜿甚方法を参照できたす。 これは、埓来の Property Editing サンプルアプリケヌションに代わるものです。

Windows® 8 および Windows® 8.1 ずの互換性

すべおのサンプルアプリケヌションは、Windows® 8 および Windows® 8.1 䞊で正垞に動䜜しおいたす。 唯䞀の問題ずしお、Direct2D のパフォヌマンスが Windows® 7 䞊に比べお倧抵遅く、ばら぀きがありたす。Windows® 8 に比べるず Windows® 8.1 䞊の方が、党䜓的に良いパフォヌマンスが出おいたす。 (詳现はトラッカヌの項目を参照しおください。) 新しいドラむバヌがリリヌスされるに぀れ、段階的なパフォヌマンスの向䞊が期埅されたす。

互換性に圱響する倉曎点

Sce.Atf.Applications および Scea.Editors.Services の䞡方の名前空間で、ISettingsService に Loading ずいう新しいむベントがありたす。これにより、クラむアントコヌドに、盎埌に蚭定が読み蟌たれるこずが䌝わりたす。 このむベントは、既存の Reloaded むベントを補完したす。 䞡方の蚭定間に䟝存性があった堎合、すべおの保持された蚭定が埩元されたこずが、クラむアントコヌドに分かるようになりたした。 クラむアントが ISettingsService を実装しおいる可胜性は䜎いですが、実装しおいる堎合には蚭定ファむルを読み蟌む前に Loading むベントを発生させる必芁がありたす。

Sce.Atf.Dom.TemplateReference は簡単すぎお実甚には䞍十分であり、Circuit Editor のサンプルアプリケヌションでも䜿甚されおいないため、削陀されたした。 この倉曎により互換性が倱われる郚分がありたすが、圱響が出る可胜性はほずんどありたせん。

バグ修正および改良点

゜ヌス管理/Perforce サヌビス:

  • PerforceService が、Perforce 瀟の新しい C# バむンディングの API P4API.NET バヌゞョン 2013.2 を䜿甚するようになりたした。サポヌト期限切れの、叀いオヌプン゜ヌスプロゞェクトの P4.Net の䜿甚は終了したす。 この倉曎により、サヌビスがストリヌムなどの最新の Perforce 機胜を䜿甚できるようになりたした。
  • すべおの PerforceService による゜ヌス管理のメ゜ッド (CheckOut, CheckIn, Revert など) が非同期になり、BackgroundWorker によっお凊理されるようになりたした。
  • CodeEditor のサンプルアプリケヌションに、Perforce のサヌビスメッセヌゞのログを蚘録する OutputService を远加したした。
  • 文曞の゜ヌス管理ステヌタスがチェックむン枈みに倉曎された通知があるず、コヌド゚ディタヌが文曞を再読み蟌みするようになりたした。 これにより、チェックアりトおよび倉曎されたファむルを元に戻しおから、線集画面で内容を曎新できるようになりたした。
  • PerforceService - SettingsService が蚭定の読み蟌みず割り圓おを行っおいる間に、割り圓おを Enabled、DefaultConnection、ConnectionHistory のプロパティにキャッシュしたす。 SettingsService が読み蟌みを完了した埌に、キャッシュされた倀を正しい順序で適甚したす。
  • PerforceService: ファむルを元に戻す時に起こる可胜性のある、クラッシュを修正したした。
  • ISettingsService に最近远加された Loading むベントを、埓来の ISettingsService 甚に拡匵したした。
埓来の PerforceService に Loading および Reloaded むベントを䜿甚できるようになりたした。
  • ゜ヌス管理サヌバヌから削陀されたファむルの、゜ヌスコントロヌルステヌタスが芁求された堎合、ステヌタスは埓来の Deleted ではなく NotControlled に指定されたす。 今リリヌスから Deleted は、ナヌザヌがロヌカルでファむルを削陀した倉曎を、ただコミットしおいない状態を意味したす。
  • ファむルの゜ヌス管理ステヌタスアむコンが、゜ヌス管理サヌビスが無効になっおいる堎合にも正しく曎新されるようになりたした。
  • 埓来の Connection.get が、m_connection の操䜜に特化したメ゜ッドに倉わりたした。
  • m_connection.Disconnect() が呌び出された堎合に、m_connectionInitialized が false に蚭定されるこずを保蚌する DestroyConnection を䜜成したした。
  • P4Command.Run() が䟋倖を発生した堎合に、ダミヌのコマンドの結果を送信したす。
  • UpdateFileInfoCache() - Perforce から蚘録が返されなかったアむテムを曎新し、そのアむテムが以前に Perforce にあった堎合には OnStatusChanged のみを送りたす。
  • 新しいファむルが远加されるず、Project Editor の゜ヌス管理ステヌタスを曎新したす。


ロヌカラむれヌション:

  • LocalizableStringExtractor 開発ツヌルを修正、改良したした(アセンブリのリストを線集する方法および、進捗のロギング機胜を远加)。
  • Localize() 拡匵メ゜ッドは文字列リテラルのみでしか䜿えないため、ロヌカル倉数もしくはパラメヌタヌで呌び出されおいる倚数の箇所を修正したした。
  • プロゞェクトは、プロゞェクトごずにナニヌクな名前のファむルを䜿甚する代わりに、䞀貫性を高めるために埋め蟌みの Localization.xml ファむルを䜿甚するようになりたした。
  • 各コンテキスト文字列がナニヌクである限り、同䞀の文字列に察する耇数の翻蚳がサポヌトされるようになりたした。
  • ナヌザヌに芋える郚分の文字列を、より倚く翻蚳したした。
  • RecentDocumentCommands では、ナヌザヌから読めるドキュメントタむプの名前がナヌザヌ蚭定に保持されおいたため、コンピュヌタヌの蚀語蚭定が倉曎された堎合にドキュメントの読み蟌みができなくなる問題がありたした。 ドキュメントタむプ名は保持されなくなり、代わりに IDocumentClients を怜玢し (通垞 1 ぀、たれに 2 ぀もしくは 3 ぀の堎合もありたす) CanOpen() が動くかどうか確認したす。
  • ATF の日本語ぞの翻蚳をサポヌトするために、倧幅なロヌカラむれヌションが進められたした。
  • 蚀語を倉曎した埌に、TimelineEditor で最近のファむルリストに問題が起こる、日本語のロヌカラむれヌションの問題を修正したした。


回路/回路グルヌプ:

  • CircuitValidator.AddNode の属性蚭定操䜜を自動的に組み合わせる、履歎コンテキストのデフォルトの振る舞いを無効にしたした。これは、ピンむンデックス倉曎のグルヌプ化などの操䜜で、䞍正な振る舞いの原因ずなっおいたためです。
  • GroupPinEditor.AdjustLayout() を internal から public に倉曎し、機胜テストでも䜿甚できるようになりたした。
  • CircuitEditingContext により、Move() メ゜ッドの列挙のバグが耇数修正されたした。
  • CircuitControlRegistry:
    • CircuitNodeControls ゲッタヌがすべおの DomNode ず回路コントロヌルの組み合わせを取埗したす。(ナヌスシナリオ:圓おはたる堎合には、アニメヌションのツリヌビュヌの遞択を倉曎するず、グラフビュヌの遞択も調敎されたす。各ビュヌは、それぞれの遞択コンテキストを持぀こずにご泚意ください。)
    • 新しいメ゜ッドの GetCircuitControlInfo() は DomNode を取り、その DomNode に関連付けられた回路コントロヌルの情報を返したす。
    • private docNode_AttributeChanged() を protected virtual OnDocumentNodeAttributeChanged() に倉曎したした。
  • TestTemplates テストスクリプトにより発芋された、遞択アむテムをテンプレヌトラむブラリにレベル䞊げする際のバグを修正したした。
  • 展開したグルヌプ内で、耇数のサブノヌドをドラッグしお遞択できるようになりたした。
  • グルヌプをリサむズする際に、ロヌカルの境界線を䜿甚できるようになりたした。
  • 今リリヌスから、グルヌプが展開されおいる堎合には、背景ではなくタむトルバヌのクリックによっおのみドラッグが可胜です。
  • ノヌド遞択のロゞックで、非衚瀺のノヌドはスキップされたす。
  • 回路芁玠を展開した回路グルヌプにドラッグし、その展開した回路グルヌプをリサむズするこずで起こる可胜性のある、無限ルヌプを修正したした。
  • ベゞェ曲線に加え、ポリラむンのワむダヌ描画のサポヌトを远加したした。
  • D2dCircuitRenderer.MaxCollapsedGroupPinNameLength が远加され、折りたたんだ回路グルヌプに衚瀺するピン名の最倧長を、クラむアントコヌドが指定できるようになりたした。 グルヌプが折りたたたれおいる堎合にピン名が指定より長いず、衚瀺䞊のピン名は短くなり、省略蚘号ずずもに衚瀺されたす。 デフォルトは 25 文字で、最短は 5 文字です。
  • 回路グルヌプの内郚芁玠ず倖郚芁玠の間を、ワむダヌで盎接接続できるサポヌトを远加したした。
  • 異なるグルヌプ間のアむテムの接続を䜜成できない問題を修正したした。
  • 新芏に䜜成されたグルヌプピンの衚瀺を、接続されおいないピンのための ShowExpandedGroupPins に蚭定したした。
  • CircuitEditingContext に SupportsNestedGroup プロパティを远加し、機胜のオンオフの切り替えを簡単にしたした。
  • Circuit Editor でのグルヌプのリサむズを䞍可にしたした。
  • グルヌプ内のほかのノヌドに接続を持぀ノヌドを、グルヌプ倖にドラッグするずクラッシュする問題を修正したした。
  • グルヌプの端のドラッグによるリサむズが、正垞に機胜するようになりたした。
  • テンプレヌトむンスタンスで \[接続されおいないピンを隠す\] を、早いマりスクリックで切り替えた堎合に起きるクラッシュを修正したした。
  • グルヌプノヌド型の名前ずグルヌプノヌドの名前を区別するために、回路グルヌプに ICircuitElementType.Name の明瀺的な実装を远加したした。 グルヌプ型の名前をカスタマむズするために Creature Editor からバックポヌトされ、ほかの問題が起きる原因ずなっおいた ProxyElementType クラスは削陀されたした。 明瀺的な実装により、問題が簡単な方法で解決されたす。
  • D2dCircuitRenderer が MaxCollapsedGroupPinNameLength を 25 に初期化したす。以前はこの倀はデフォルトの 0 のたたであったため、グルヌプピンが短い名前の堎合でもテキストが切られおいたした。
  • Element の AllInputPins プロパティおよび AllOutputPins プロパティは仮想プロパティになり、Group にオヌバヌラむドされたす。 クラッシュを修正するために、Group はオヌバヌラむド時に非衚瀺のピンも考慮するようになりたした。
  • 回路のグルヌプ化: EditableGraph をク゚リする前に、draggingContext のヒットパスを曎新したす。これは EditableGraph が draggingContext に䟝存するためです。
  • 埓来の Circuit Editor: Group ず Ungroup の 2 ぀の回路グルヌプコマンドは、完党実装されなかったため削陀したした。
  • StandardLayoutCommands が右偎もしくは䞋郚で正垞に䞊べられない問題の原因ずなった、回路芁玠の Bounds プロパティのバグを修正したした。


プロパティ線集:

  • GridView (スプレッドシヌト圢匏のプロパティ゚ディタヌが䜿甚): 倚数の行が遞択されおおり、か぀、いく぀かの行が画面に衚瀺されおいない状態で、ナヌザヌが任意の 1 行を遞択解陀した堎合に起きる、自動スクロヌルのバグを修正したした。 行が遞択されおいたずしおも、どの遞択された行にスクロヌルするず問題が再珟するのか䞍明確だったので、この状態での自動スクロヌルを無効にしたした。
  • PropertyView が BrowsableAttribute で指定される、IsBrowsable の蚘述子の倀を監芖するようになりたした。
  • IntInputControl および FloatInputControl で䜿甚されおいた TrackBar は、コンパクトスピナヌに倉わりたした。 コンパクトスピナヌは占めるスペヌスも少なく、䜿い方も簡単です。 空いた分のスペヌスは InputBox に䜿われたす。
  • PropertyEditor:
    • NumericMatrixControl および NumericTupleControlHandled 甚に OnBackColorChanged を凊理したした。
    • NumericTupleControl のラベルを描画したした。
  • 新しいサンプルの DomPropertyEditor を远加したした。
  • EmbeddedCollectionEditor の以䞋のバグを修正したした。
    • 子オブゞェクトに察し、\[戻す/やり盎し] および \[䞊ぞ/䞋ぞ] が正しく動䜜したせんでした。
    • あるアむテムを削陀埌に新しいアむテムを远加するず、新しいアむテムが衚瀺されたせんでした。
    • DomPropertyEditor のサンプルアプリケヌションが Windows® 8 䞊で実行できないバグを修正したした。リ゚ントラント性の問題が原因でした。
  • BoundedFloatEditor および BoundedIntEditor での、マりススピヌドの倀の倉化を調敎したした。
その他の倉曎点:
  • サヌドパヌティのコンポヌネンツのラむセンス情報を、ThirdParty ディレクトリに远加、移動したした。
  • ModelViewer サンプルアプリケヌション: 同じセッション内でモデルファむルを、再床開けなくなる問題を修正したした。
  • ISettingsService および SettingsService: Loading むベントを远加したした。各皮蚭定が読み蟌たれ蚭定される盎前であるこずが、クラむアントコヌドに分かるようになりたした。 これは、互換性に圱響する现かい倉曎点です。 クラむアントが ISettingsService を実装しおいる可胜性は䜎いですが、実装しおいる堎合には蚭定ファむルを読み蟌む前に Loading むベントを発生させる必芁がありたす。
  • TreeList:
    • TreeListViewAdapter: TreeListViewAdapter が仮想モヌドの堎合に起こる、IObservableContext の Reloaded むベントハンドラのクラッシュを 2 件修正したした。
    • TreeListEditor サンプルアプリケヌション: Virtual List ゚ディタヌに Reload ボタンを远加したした。 recursive-check-boxes ボタンの enum を 1 ビットのフラグに修正したした。これにより、ほかの 2 ぀のボタンからのフラグを、誀っお再利甚するこずがなくなりたす。
    • Node で枡される DrawBackground() メ゜ッドを远加したした。
    • TreeControl がツヌルチップをサポヌトするようになりたした。 ツヌルチップは、Circuit Editor、FSM Editor、Statechart Editor、Timeline Editor のサンプルアプリケヌションのアむテムパレットにありたす。
  • DoTransaction() 拡匵メ゜ッドは、Begin の呌び出しの䞭でトランザクションが䞭止された堎合、トランザクションず End 呌び出しをスキップしたす。
  • DomXmlWriter
    • ShouldWriteAttribute() メ゜ッドを远加したした。これにより、属性倀がデフォルト倀に蚭定されおいるかどうかに関わらず、クラむアントが属性倀を曞き蟌むかスキップするかを遞択できたす。
    • クラむアントコヌドがオヌバヌラむドできるように、WriteChildElementsRecursive() を virtual にしたした。
  • ErrorDialogService が、ダむアログのタむトルに゚ラヌのタむプ (゚ラヌ、譊告、情報) を衚瀺するようになりたした。
  • 登録したコントロヌルもしくはコマンド毎に URL を関連付けるか、新しい WebHelp クラスを䜿甚するこずにより、関連する内容のオンラむンヘルプが利甚可胜になりたした。 WebHelpCommands は、アプリケヌションのヘルプのトップ URL を開くためのメニュヌコマンドを提䟛する、新しいクラスおよび MEF コンポヌネントです。 ATF が珟圚提䟛する倚くの GUI コンポヌネントは、内容に特化したヘルプを提䟛しおいたす。たずえば、GUI コンポヌネントもしくはメニュヌ、ツヌルバヌコマンドにフォヌカスした状態でナヌザヌが F1 キヌを抌すず、適切なヘルプの URL が開きたす。
  • Framework および CircuitEditor のサンプルアプリケヌションから、Sce.Atf.Dom.TemplateReference を削陀したした。 この倉曎により互換性が倱われる郚分もありたすが、圱響が出る可胜性はほずんどありたせん。
  • ISelectionPathProvider を拡匵し、テンプレヌト化されたむンスタンスの、線集時のコピヌをサポヌトするようになりたした。
  • スキヌマファむルから C# DOM 関連のコヌドを生成するために䜿われるバッチファむルから、p4 edit コマンドを削陀したした。 ATF が Perforce を゜ヌスコヌドリポゞトリに䜿甚しなくなったためです。
  • DomTreeEditor サンプル: ゚ディタヌを実挔するために、さたざたな倀の゚ディタヌの属性を远加したした。 XML スキヌマの泚釈を解析できるように、SchemaLoader に ParseAnnotations() メ゜ッドを远加したした。
  • ControlHostService に数件の改良を加えたした。
    • Panes をドッキングできる箇所を制限するために、DockAreas を衚瀺したした。
    • SetPanelPortion メ゜ッドから、Panel 郚分の高さの蚭定を劚げおいた制限を削陀したした。
  • TimelineCommands.cs: アむテムを削陀するためのコマンドが、線集メニュヌに衚瀺されない問題がありたした。null menuTag パラメヌタヌを RegisterCommand() の StandardMenu.Edit に倉曎したした。 䞊蚘のコマンドは元に戻す操䜜ができないため、ICommandClient.DoCommand() にトランザクションを远加したした。 Program.cs: サンプルの起動時に、前回開いおいたドキュメントが再床開くように、AutoDocumentService コンポヌネントを远加したした。
  • Curve Editor
    • 接線の皮類の蚭定を元に戻した堎合、CurveEditor が曎新するようになりたした。
    • 統合された接線は、剛䜓ずしお扱われるようになりたした。
    • Curve に新しい静的プロパティの EnforceCurveLimits を远加したした。
  • CTE テストのカスタマむズされた振る舞いに察応するように、FunctionalTestBase に FixedRemoteTestingPort プロパティを远加したした。
  • テストスクリプトずアプリケヌションからのコン゜ヌル出力を識別するタグのオン/オフを行う、TagConsoleOutput プロパティを FunctionalTestBase に远加したした。
  • パネル郚分のドッキングを、盞察サむズから絶察サむズの䜿甚に倉換するメ゜ッドを远加したした。 以前の保存されたレむアりトは、DockPanelState の蚭定時に倉換されたす。
  • いく぀かのコントロヌルの展開ボタンを、より珟代的な倖芳に倉曎したした(ツリヌ、propertyEditor など)。
  • 以䞋を远加したした:
    • D2dGraphics:
  • public D2dBitmap CreateBitmap(int width, int height)
    • D2dBitmap:
  • public System.Drawing.Bitmap GdiBitmap
  • public void Update()
    • D2dFactory:
  • public static D2dBitmap CreateBitmap(int width, int height)
  • スクリプト甚のコマンドコン゜ヌル ConsoleTextBox の改良を統合したした:
    • オヌトコンプリヌトによる提案
    • 耇数行サポヌトの改良
    • プロンプトを通過した堎合の ArgumentOutOfRangeException
    • 次の単語もしくは前の単語を遞択した堎合に、遞択されるテキストが䞍正
    • 遞択時にカヌ゜ルが動かなくなる
    • 提案の ListBox が䞍正な䜍眮に衚瀺される
    • 耇数行の文䞭で、むンデントが機胜しない
    • CaretIndex を䜿甚すべき箇所に、䞍正に SelectionStart が䜿甚されおいた郚分を修正
    • プロンプトの倖偎にいる堎合の、Home コマンドおよび End コマンドを修正
  • バグ修正: EnumUtil.GetEnumData が、2 ぀以䞊の同じ倀の゚ントリを含む enum の宣蚀をアサヌトしおいたした。 修正により、最初の同じ倀の゚ントリ以倖は無芖されるようになりたした。 この修正により、enum 型宣蚀のすべおの゚ントリを必芁ずするクラむアントコヌドには、問題が生じる可胜性がありたす。 その堎合には、result.DisplayStrings を multimap にするこずで、この倉曎を削陀できたす。 ただし、互換性に圱響がでる可胜性がありたす。
  • ナヌティリティのスクリプト甚倉数を远加したした:
    • atfSourceControl は、null でない堎合に SourceControlService オブゞェクトになりたす。
    • atfLayout は、null でない堎合に IWindowLayoutService オブゞェクトになりたす。
  • Guerrilla からの倉曎を組み蟌みたした。 RecentDocumentCommands はデバッガヌが添付されおいる堎合に、開くのに倱敗した文曞を䞀芧から削陀しなくなりたした。
  • IronPython が Ctrl+Shift によるナビゲヌションをサポヌトしおいない: (Ctrl|Ctrl+Shift)+End および (Ctrl|Ctrl+Shift)+Home により、行やコマンドの最初もしくは最埌に移動する機胜を远加したした。
  • IronPython の切り取りショヌトカットが、送信されたコマンドを削陀する堎合がある: Regex がテキストを単語のブロックに分割しおいたのに代わり、単語以倖の文字をグルヌプ化しお、単語ブロックの最埌に空癜文字を含めるようになりたした。
  • CurveEditor の切り取り/コピヌ/貌り付けを無効にしたした。 これらの操䜜は、曲線に察しお明確に定矩されおいたせんでした。
  • システム情報ダむアログの゜ヌトが䞍正。 Version 行ず DateTime 行の比范に Tag フィヌルドを䜿甚したす。
  • DomNode.Copy() が枡されたマップのパラメヌタヌを持぀ようになりたした。これにより、クロヌン埌のカスタムクロヌンロゞックのクラむアントコヌドが簡単になりたす。
  • Wws.UI の license.txt ファむルを、曎新、敎理し、より明確にしたした。
  • Property Editing のサンプルアプリケヌションは、DOM Property Editor サンプルアプリケヌションに眮き換わったため削陀されたした。
ドキュメント:
  • ATF Programmerᅵ's Guide を倧幅に倉曎したした。リンクを参照しおください。 ATF Programmer's Guide 新しい内容が倚く远加され、既存の内容も広範囲にわたっお敎理、修正、明確化されたした。
  • Programmer Guide のりィキペヌゞの゚クスポヌトが远加されたした。 SHIP アカりントのないクラむアントに䟿利です。
⚠ **GitHub.com Fallback** ⚠