diff -r b958f57e0cfd -r 9d49ecf8661a TabListEditor.st --- a/TabListEditor.st Fri May 03 10:52:38 2019 +0200 +++ b/TabListEditor.st Tue May 14 09:46:21 2019 +0200 @@ -420,190 +420,210 @@ ^ - #(FullSpec - name: canvasSpec - window: - (WindowSpec - label: 'Canvas' - name: 'Canvas' - min: (Point 10 10) - max: (Point 1280 1024) - bounds: (Rectangle 0 0 383 220) - ) - component: - (SpecCollection - collection: ( - (LabelSpec - label: 'Class Name / Major Key:' - name: 'majorKeyLabel' - layout: (AlignmentOrigin 160 0 26 0 1 0.5) - activeHelpKey: majorKey - translateLabel: true - resizeForLabel: true - ) - (InputFieldSpec - name: 'majorKeyField' - layout: (LayoutFrame 161 0 15 0 -5 1.0 37 0) - activeHelpKey: majorKey - tabable: true - model: majorKey - group: inputGroup - type: symbolOrNil - immediateAccept: true - acceptOnReturn: false - acceptOnTab: false - acceptOnLostFocus: false - modifiedChannel: modifiedChannel - acceptOnPointerLeave: false - ) - (LabelSpec - label: 'Selector / Minor Key:' - name: 'minorKeyLabel' - layout: (AlignmentOrigin 160 0 55 0 1 0.5) - translateLabel: true - resizeForLabel: true - ) - (InputFieldSpec - name: 'minorKeyField' - layout: (LayoutFrame 161 0 44 0 -5 1.0 66 0) - activeHelpKey: majorKey - tabable: true - model: minorKey - group: inputGroup - type: symbolOrNil - immediateAccept: true - acceptOnReturn: false - acceptOnTab: false - acceptOnLostFocus: false - modifiedChannel: modifiedChannel - acceptOnPointerLeave: false - ) - (FramedBoxSpec - label: 'Scroll Bars' - name: 'FramedBox' - layout: (LayoutFrame 0 0.0 119 0.0 0 1.0 218 0) - labelPosition: topLeft - translateLabel: true - component: - (SpecCollection - collection: ( - (HorizontalPanelViewSpec - name: 'HorizontalPanel1' - layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0) - horizontalLayout: fitSpace - verticalLayout: fitSpace - horizontalSpace: 3 - verticalSpace: 3 - component: - (SpecCollection - collection: ( - (ViewSpec - name: 'Box1' - component: - (SpecCollection - collection: ( - (CheckBoxSpec - label: 'Vertical' - name: 'verticalScrollBarCheckBox' - layout: (LayoutFrame 0 0.0 3 0 0 1.0 27 0) - activeHelpKey: verticalScroller - tabable: true - model: hasVerticalScrollBar - translateLabel: true - ) - (CheckBoxSpec - label: 'Mini' - name: 'miniScrollerVerticalCheckBox' - layout: (LayoutFrame 0 0.0 32 0 0 1.0 56 0) - activeHelpKey: verticalMiniScroller - tabable: true - model: miniScrollerVertical - translateLabel: true - ) + #(FullSpec + name: canvasSpec + uuid: '8a7c55d6-761b-11e9-98ea-b8f6b1108e05' + window: + (WindowSpec + label: 'Canvas' + name: 'Canvas' + uuid: '8a7c5964-761b-11e9-98ea-b8f6b1108e05' + min: (Point 10 10) + max: (Point 1280 1024) + bounds: (Rectangle 0 0 383 220) + ) + component: + (SpecCollection + collection: ( + (LabelSpec + label: 'Class / Major Key:' + name: 'majorKeyLabel' + layout: (AlignmentOrigin 160 0 26 0 1 0.5) + activeHelpKey: majorKey + uuid: '8a7cc2f0-761b-11e9-98ea-b8f6b1108e05' + translateLabel: true + resizeForLabel: true + ) + (InputFieldSpec + name: 'majorKeyField' + layout: (LayoutFrame 161 0 15 0 -5 1.0 37 0) + activeHelpKey: majorKey + uuid: '8a7cc82c-761b-11e9-98ea-b8f6b1108e05' + tabable: true + model: majorKey + group: inputGroup + type: symbolOrNil + immediateAccept: true + acceptOnReturn: false + acceptOnTab: false + acceptOnLostFocus: false + modifiedChannel: modifiedChannel + acceptOnPointerLeave: false + ) + (LabelSpec + label: 'Selector / Minor Key:' + name: 'minorKeyLabel' + layout: (AlignmentOrigin 160 0 55 0 1 0.5) + uuid: '8a7ccda4-761b-11e9-98ea-b8f6b1108e05' + translateLabel: true + resizeForLabel: true + ) + (InputFieldSpec + name: 'minorKeyField' + layout: (LayoutFrame 161 0 44 0 -5 1.0 66 0) + activeHelpKey: majorKey + uuid: '8a7ccf7a-761b-11e9-98ea-b8f6b1108e05' + tabable: true + model: minorKey + group: inputGroup + type: symbolOrNil + immediateAccept: true + acceptOnReturn: false + acceptOnTab: false + acceptOnLostFocus: false + modifiedChannel: modifiedChannel + acceptOnPointerLeave: false + ) + (FramedBoxSpec + label: 'Scroll Bars' + name: 'FramedBox' + layout: (LayoutFrame 0 0.0 119 0.0 0 1.0 218 0) + uuid: '8a7cd1be-761b-11e9-98ea-b8f6b1108e05' + labelPosition: topLeft + translateLabel: true + component: + (SpecCollection + collection: ( + (HorizontalPanelViewSpec + name: 'HorizontalPanel1' + layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0) + uuid: '8a7cd42a-761b-11e9-98ea-b8f6b1108e05' + horizontalLayout: fitSpace + verticalLayout: fitSpace + horizontalSpace: 3 + verticalSpace: 3 + component: + (SpecCollection + collection: ( + (ViewSpec + name: 'Box1' + uuid: '8a7cd768-761b-11e9-98ea-b8f6b1108e05' + component: + (SpecCollection + collection: ( + (CheckBoxSpec + label: 'Vertical' + name: 'verticalScrollBarCheckBox' + layout: (LayoutFrame 0 0.0 3 0 0 1.0 27 0) + activeHelpKey: verticalScroller + uuid: '8a7cd8ee-761b-11e9-98ea-b8f6b1108e05' + tabable: true + model: hasVerticalScrollBar + translateLabel: true ) - - ) - useDefaultExtent: true - ) - (ViewSpec - name: 'Box2' - component: - (SpecCollection - collection: ( - (CheckBoxSpec - label: 'Horizontal' - name: 'horizontalScrollBarCheckBox' - layout: (LayoutFrame 0 0.0 3 0 0 1.0 27 0) - activeHelpKey: horizontalScroller - tabable: true - model: hasHorizontalScrollBar - translateLabel: true - ) - (CheckBoxSpec - label: 'Mini' - name: 'miniScrollerHorizontalCheckBox' - layout: (LayoutFrame 0 0.0 32 0 0 1.0 56 0) - activeHelpKey: horizontalMiniScroller - tabable: true - model: miniScrollerHorizontal - translateLabel: true - ) + (CheckBoxSpec + label: 'Mini' + name: 'miniScrollerVerticalCheckBox' + layout: (LayoutFrame 0 0.0 32 0 0 1.0 56 0) + activeHelpKey: verticalMiniScroller + uuid: '8a7cdb82-761b-11e9-98ea-b8f6b1108e05' + tabable: true + model: miniScrollerVertical + translateLabel: true + ) + ) + + ) + useDefaultExtent: true + ) + (ViewSpec + name: 'Box2' + uuid: '8a7cdda8-761b-11e9-98ea-b8f6b1108e05' + component: + (SpecCollection + collection: ( + (CheckBoxSpec + label: 'Horizontal' + name: 'horizontalScrollBarCheckBox' + layout: (LayoutFrame 0 0.0 3 0 0 1.0 27 0) + activeHelpKey: horizontalScroller + uuid: '8a7cdede-761b-11e9-98ea-b8f6b1108e05' + tabable: true + model: hasHorizontalScrollBar + translateLabel: true + ) + (CheckBoxSpec + label: 'Mini' + name: 'miniScrollerHorizontalCheckBox' + layout: (LayoutFrame 0 0.0 32 0 0 1.0 56 0) + activeHelpKey: horizontalMiniScroller + uuid: '8a7ce064-761b-11e9-98ea-b8f6b1108e05' + tabable: true + model: miniScrollerHorizontal + translateLabel: true ) - - ) - extent: (Point 113 61) - ) - (ViewSpec - name: 'Box3' - component: - (SpecCollection - collection: ( - (LabelSpec - label: 'Auto Hide:' - name: 'Label1' - layout: (LayoutFrame 0 0.0 6 0 0 1.0 23 0) - translateLabel: true - resizeForLabel: true - adjust: left - ) - (PopUpListSpec - label: 'Default' - name: 'PopUpList1' - layout: (LayoutFrame 0 0.0 32 0 0 1.0 54 0) - activeHelpKey: autoHideScrollBars - tabable: true - model: autoHideScrollBars - menu: - (Default - On Off - ) - useIndex: true - ) + ) + + ) + extent: (Point 111 53) + ) + (ViewSpec + name: 'Box3' + uuid: '8a7ce1fe-761b-11e9-98ea-b8f6b1108e05' + component: + (SpecCollection + collection: ( + (LabelSpec + label: 'Auto Hide:' + name: 'Label1' + layout: (LayoutFrame 0 0.0 6 0 0 1.0 23 0) + uuid: '8a7ce334-761b-11e9-98ea-b8f6b1108e05' + translateLabel: true + resizeForLabel: true + adjust: left ) - - ) - extent: (Point 113 61) - ) + (PopUpListSpec + label: 'Default' + name: 'PopUpList1' + layout: (LayoutFrame 0 0.0 32 0 0 1.0 54 0) + activeHelpKey: autoHideScrollBars + uuid: '8a7ce4e2-761b-11e9-98ea-b8f6b1108e05' + translateLabel: true + tabable: true + model: autoHideScrollBars + menu: + (ImmutableArray + Default On + Off + ) + useIndex: true + ) + ) + + ) + extent: (Point 112 53) ) - - ) - ) + ) + + ) ) - - ) - ) - (CheckBoxSpec - label: 'Create New Builder' - name: 'createNewBuilder' - layout: (Point 161 75) - activeHelpKey: createNewBuilder - model: createNewBuilder - translateLabel: true - ) + ) + + ) ) - - ) - ) + (CheckBoxSpec + label: 'Create New Builder' + name: 'createNewBuilder' + layout: (Point 161 75) + activeHelpKey: createNewBuilder + uuid: '8a7ce8de-761b-11e9-98ea-b8f6b1108e05' + model: createNewBuilder + translateLabel: true + ) + ) + + ) + ) ! detailSpec @@ -680,102 +700,104 @@ ^ - #(#FullSpec - #name: #windowSpec - #window: - #(#WindowSpec - #label: 'Tab List Editor' - #name: 'Tab List Editor' - #min: #(#Point 440 280) - #bounds: #(#Rectangle 596 292 1132 661) - #menu: #menu - ) - #component: - #(#SpecCollection - #collection: #( - #(#MenuPanelSpec - #name: 'menuToolbarView' - #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 34 0) - #menu: #menuToolbar - #showSeparatingLines: true - ) - #(#VariableHorizontalPanelSpec - #name: 'VariablePanel' - #layout: #(#LayoutFrame 0 0.0 36 0.0 0 1.0 -26 1.0) - #component: - #(#SpecCollection - #collection: #( - #(#SelectionInListModelViewSpec - #attributes: - #(#vpext - - #(#Array - #Array #Array - #Array #Array - #Array #Point - 0.264414 1.0 + #(FullSpec + name: windowSpec + uuid: 'b2e02714-761b-11e9-98ea-b8f6b1108e05' + window: + (WindowSpec + label: 'Tab List Editor' + name: 'Tab List Editor' + uuid: 'b2e02a02-761b-11e9-98ea-b8f6b1108e05' + min: (Point 440 280) + bounds: (Rectangle 0 0 536 369) + menu: menu + ) + component: + (SpecCollection + collection: ( + (MenuPanelSpec + name: 'menuToolbarView' + layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 34 0) + uuid: 'b2e02c78-761b-11e9-98ea-b8f6b1108e05' + menu: menuToolbar + showSeparatingLines: true + ) + (VariableHorizontalPanelSpec + name: 'VariablePanel' + layout: (LayoutFrame 0 0.0 36 0.0 0 1.0 -26 1.0) + uuid: 'b2e02f48-761b-11e9-98ea-b8f6b1108e05' + component: + (SpecCollection + collection: ( + (SelectionInListModelViewSpec + name: 'ListOfLabels' + uuid: 'b2e031fa-761b-11e9-98ea-b8f6b1108e05' + tabable: true + model: selectionHolder + menu: menuEdit + hasHorizontalScrollBar: true + hasVerticalScrollBar: true + miniScrollerHorizontal: true + listModel: listOfTabs + highlightMode: line + selectConditionSelector: askForItemModification + ) + (ViewSpec + name: 'SpecView' + uuid: 'b2e034d4-761b-11e9-98ea-b8f6b1108e05' + level: -1 + component: + (SpecCollection + collection: ( + (NoteBookViewSpec + name: 'NoteBook' + layout: (LayoutFrame 1 0.0 0 0.0 0 1.0 -32 1.0) + uuid: 'b2e03600-761b-11e9-98ea-b8f6b1108e05' + enableChannel: hasSelectionHolder + tabable: true + model: noteBookModel + menu: noteBookTabList + useIndex: true + translateLabel: true + keepCanvasAlive: true + ) + (UISubSpecification + name: 'subSpec' + layout: (LayoutFrame 2 0.0 -32 1 -2 1.0 0 1) + uuid: 'b2e039ac-761b-11e9-98ea-b8f6b1108e05' + majorKey: ToolApplicationModel + minorKey: windowSpecForCommit + ) + (NoteBookViewSpec + name: 'TestNoteBook' + layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0) + uuid: 'b2e03b32-761b-11e9-98ea-b8f6b1108e05' + visibilityChannel: testMode + tabable: true + menu: testItemList + useIndex: true + translateLabel: true + ) ) - ) - #name: 'ListOfLabels' - #tabable: true - #model: #selectionHolder - #menu: #menuEdit - #hasHorizontalScrollBar: true - #hasVerticalScrollBar: true - #miniScrollerHorizontal: true - #listModel: #listOfTabs - #highlightMode: #line - #selectConditionSelector: #askForItemModification - ) - #(#ViewSpec - #name: 'SpecView' - #level: -1 - #component: - #(#SpecCollection - #collection: #( - #(#NoteBookViewSpec - #name: 'NoteBook' - #layout: #(#LayoutFrame 1 0.0 0 0.0 0 1.0 -30 1.0) - #enableChannel: #hasSelectionHolder - #tabable: true - #model: #noteBookModel - #menu: #noteBookTabList - #useIndex: true - #keepCanvasAlive: true - ) - #(#UISubSpecification - #name: 'subSpec' - #layout: #(#LayoutFrame 2 0.0 -26 1 -2 1.0 -2 1) - #majorKey: #ToolApplicationModel - #minorKey: #windowSpecForCommit - ) - #(#NoteBookViewSpec - #name: 'TestNoteBook' - #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0) - #visibilityChannel: #testMode - #tabable: true - #menu: #testItemList - #useIndex: true - ) - ) - - ) - ) + + ) ) - - ) - #handles: #(#Any 0.24053 1.0) - ) - #(#UISubSpecification - #name: 'infoBarSubSpec' - #layout: #(#LayoutFrame 0 0.0 -24 1 0 1.0 0 1.0) - #majorKey: #ToolApplicationModel - #minorKey: #windowSpecForInfoBar - ) + ) + + ) + handles: (Any 0.23999999999999999 1.0) ) - - ) - ) + (UISubSpecification + name: 'infoBarSubSpec' + layout: (LayoutFrame 0 0.0 -24 1 0 1.0 0 1.0) + uuid: 'b2e03d44-761b-11e9-98ea-b8f6b1108e05' + majorKey: ToolApplicationModel + minorKey: windowSpecForInfoBar + ) + ) + + ) + ) ! ! !TabListEditor class methodsFor:'list specs'! @@ -823,6 +845,7 @@ "Do not manually edit this!! If it is corrupted, the MenuEditor may not be able to read the specification." + " MenuEditor new openOnClass:TabListEditor andSelector:#menu (Menu new fromLiteralArrayEncoding:(TabListEditor menu)) startUp @@ -830,141 +853,132 @@ - ^ - - #(#Menu - - #( - #(#MenuItem - #label: 'About' - #activeHelpKey: #about - #labelImage: #(#ResourceRetriever nil #menuIcon) - #submenuChannel: #menuAbout - ) - #(#MenuItem - #label: 'File' - #activeHelpKey: #file - #submenu: - #(#Menu - - #( - #(#MenuItem - #label: 'New' - #value: #doNew - #activeHelpKey: #fileNew - ) - #(#MenuItem - #label: '-' - ) - #(#MenuItem - #label: 'Load...' - #translateLabel: true - #value: #doLoad - #activeHelpKey: #fileLoad - ) - #(#MenuItem - #label: '-' - ) - #(#MenuItem - #label: 'Save' - #value: #doSave - #activeHelpKey: #fileSave - ) - #(#MenuItem - #label: 'Save As...' - #value: #doSaveAs - #activeHelpKey: #fileSave - ) - #(#MenuItem - #label: '-' - ) - #(#MenuItem - #label: 'Browse Class' - #value: #doBrowseClass - #activeHelpKey: #fileBrowseClass - ) - #(#MenuItem - #label: '-' - ) - #(#MenuItem - #label: 'Exit' - #value: #closeRequest - #activeHelpKey: #fileExit - ) - ) nil - nil + ^ + #(Menu + ( + (MenuItem + activeHelpKey: file + label: 'File' + submenu: + (Menu + ( + (MenuItem + activeHelpKey: fileNew + label: 'New' + itemValue: doNew + ) + (MenuItem + label: '-' + ) + (MenuItem + activeHelpKey: fileLoad + label: 'Load...' + itemValue: doLoad + ) + (MenuItem + label: '-' ) + (MenuItem + activeHelpKey: fileSave + label: 'Save' + itemValue: doSave + ) + (MenuItem + activeHelpKey: fileSave + label: 'Save As...' + itemValue: doSaveAs + ) + (MenuItem + label: '-' + ) + (MenuItem + activeHelpKey: fileBrowseClass + label: 'Browse Class' + itemValue: doBrowseClass + ) + (MenuItem + label: '-' + ) + (MenuItem + activeHelpKey: fileExit + label: 'Exit' + itemValue: closeRequest + ) + ) + nil + nil ) - #(#MenuItem - #label: 'Edit' - #activeHelpKey: #edit - #submenuChannel: #menuEdit - ) - #(#MenuItem - #label: 'Add' - #activeHelpKey: #add - #submenu: - #(#Menu - - #( - #(#MenuItem - #label: 'Tab Item' - #value: #doCreate - #activeHelpKey: #addTabItem - #labelImage: #(#ResourceRetriever nil #newTabItemIcon 'Tab Item') - ) - ) nil - nil + ) + (MenuItem + activeHelpKey: edit + label: 'Edit' + submenuChannel: menuEdit + ) + (MenuItem + activeHelpKey: add + label: 'Add' + submenu: + (Menu + ( + (MenuItem + activeHelpKey: addTabItem + label: 'Tab Item' + itemValue: doCreate + labelImage: (ResourceRetriever nil newTabItemIcon 'Tab Item') ) + ) + nil + nil ) - #(#MenuItem - #label: 'Generate' - #activeHelpKey: #add - #submenu: - #(#Menu - - #( - #(#MenuItem - #label: 'Aspect Method' - #value: #doGenerateAspectMethod - #activeHelpKey: #fileCreateAspectMethod - #enabled: #hasClassAndSelector - ) - ) nil - nil + ) + (MenuItem + activeHelpKey: add + label: 'Generate' + submenu: + (Menu + ( + (MenuItem + activeHelpKey: fileCreateAspectMethod + enabled: hasClassAndSelector + label: 'Aspect Method' + itemValue: doGenerateAspectMethod ) + ) + nil + nil ) - #(#MenuItem - #label: 'Test' - #activeHelpKey: #test - #submenu: - #(#Menu - - #( - #(#MenuItem - #label: 'Preview' - #activeHelpKey: #testPreview - #enabled: #canToggleTestMode - #indication: #testMode - ) - ) nil - nil + ) + (MenuItem + activeHelpKey: test + label: 'Test' + submenu: + (Menu + ( + (MenuItem + activeHelpKey: testPreview + enabled: canToggleTestMode + label: 'Preview' + indication: testMode ) - ) - #(#MenuItem - #label: 'History' - #activeHelpKey: #history - #submenuChannel: #menuHistory + ) + nil + nil ) - #(#MenuItem - label: 'MENU_Help' - #startGroup: #right - #activeHelpKey: #help - #submenuChannel: #menuHelp - startGroup: conditionalRight - ) - ) nil - nil + ) + (MenuItem + activeHelpKey: history + label: 'History' + submenuChannel: menuHistory + ) + (MenuItem + activeHelpKey: help + label: 'MENU_Help' + startGroup: conditionalRight + submenuChannel: menuHelp + ) + ) + nil + nil ) !