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.
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.
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.
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.
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.
- 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)
- D2dGraphics:
- 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.
- 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.
ç¹ã«åè·¯ã°ã«ãŒãã«ã€ããŠãCircuit Editor ã®ãŠãŒã¶ããªãã£ããã³å®å®æ§ã«é¢ãã倿°ã®åŒ·åã
Circuit Editor ãã¯ãããšããã倧éšåã®ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ãæ¥æ¬èªåã
æ°ãããµã³ãã«ã¢ããªã±ãŒã·ã§ã³ãDOM Property Editorãã远å ãããŸããŸãªããããã£ç·šéã³ã³ãããŒã«ãã¹ãŠã®äœ¿ç𿹿³ãåç §ã§ããŸãã ããã¯ãåŸæ¥ã® Property Editing ãµã³ãã«ã¢ããªã±ãŒã·ã§ã³ã«ä»£ãããã®ã§ãã
ãã¹ãŠã®ãµã³ãã«ã¢ããªã±ãŒã·ã§ã³ã¯ã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 çšã«æ¡åŒµããŸããã
- ãœãŒã¹ç®¡çãµãŒããŒããåé€ããããã¡ã€ã«ã®ããœãŒã¹ã³ã³ãããŒã«ã¹ããŒã¿ã¹ãèŠæ±ãããå Žåãã¹ããŒã¿ã¹ã¯åŸæ¥ã® 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 ã¢ã«ãŠã³ãã®ãªãã¯ã©ã€ã¢ã³ãã«äŸ¿å©ã§ãã