Merge jv
authorJan Vrany <jan.vrany@fit.cvut.cz>
Fri, 02 Sep 2016 17:43:31 +0100
branchjv
changeset 16828 3be43a489ae3
parent 16827 5f036e451583 (current diff)
parent 16824 165814de4c38 (diff)
child 16829 a86b1a96af41
Merge
AbstractSettingsApplication.st
FileApplicationNoteBook.st
InspectorView.st
OrderedCollectionInspectorView.st
Tools__Inspector2.st
Tools__TestRunnerMini.st
extensions.st
resources/de.rs
stx_libtool.st
--- a/AbstractSettingsApplication.st	Wed Aug 31 22:53:21 2016 +0100
+++ b/AbstractSettingsApplication.st	Fri Sep 02 17:43:31 2016 +0100
@@ -14497,6 +14497,36 @@
     self supportedCCompilerSelection value:0
 !
 
+setupForCLANG
+    |ccOptions linkArgs linkSharedArgs|
+    
+    self cc value:'clang'.
+    ExternalAddress pointerSize == 4 ifTrue:[
+        ccOptions := '-O3 -arch x86'.
+        linkArgs := '-arch x86'.
+        linkSharedArgs := '-shared -arch x86'.
+    ] ifFalse:[
+        ccOptions := '-O3 -arch x86_64'.
+        linkArgs := '-arch x86_64'.
+        linkSharedArgs := '-shared -arch x86_64'.
+    ].
+    OperatingSystem isOSXlike ifTrue:[
+        ccOptions := ccOptions , ' -mmacosx-version-min=10.3'. 
+        linkSharedArgs := linkSharedArgs , ' -mmacosx-version-min=10.3 librun.so' 
+    ].
+    
+    self ccOptions value:ccOptions.
+    self linkArgs value:linkArgs.
+    self linkSharedArgs value:linkSharedArgs.
+    self stcIncludes value:'-I../../include -I/usr/include/freetype2'.
+    self linkCommand value:'clang'.
+    self stcLibraries value:''.
+    self makeCommand value:'make'.
+
+    self updateModifiedChannel.
+    self supportedCCompilerSelection value:0
+!
+
 setupForGCC
     | stcPath |
     self cc value:'gcc'.
@@ -14583,6 +14613,10 @@
 
     spec := self supportedCCompilerListSpec at:idx ifAbsent:[^ self].
     compiler := spec second.
+    compiler == #clang ifTrue:[
+        self setupForCLANG.
+        ^ self.
+    ].
     compiler == #gcc ifTrue:[
         self setupForGCC.
         ^ self.
@@ -14780,6 +14814,7 @@
 
     ^ #(
         ('GNU gcc'                      #gcc)
+        ('clang'                        #clang)
      ).
 !
 
--- a/FileApplicationNoteBook.st	Wed Aug 31 22:53:21 2016 +0100
+++ b/FileApplicationNoteBook.st	Fri Sep 02 17:43:31 2016 +0100
@@ -1,3 +1,5 @@
+"{ Encoding: utf8 }"
+
 "
  COPYRIGHT (c) 2002 by eXept Software AG
               All Rights Reserved
@@ -7272,7 +7274,8 @@
                           fileDescriptors:#()
                           fork:true
                           newPgrp:true
-                          inDirectory:nil.
+                          inDirectory:nil
+                          showWindow:false.
                    ]
                    action:[:status |
                       status stillAlive ifFalse:[
@@ -7411,7 +7414,8 @@
                       fileDescriptors:#()
                       fork:true
                       newPgrp:true
-                      inDirectory:nil.
+                      inDirectory:nil
+                      showWindow:false.
                ]
                action:[:status |
                   status stillAlive ifFalse:[
--- a/InspectorView.st	Wed Aug 31 22:53:21 2016 +0100
+++ b/InspectorView.st	Fri Sep 02 17:43:31 2016 +0100
@@ -1853,7 +1853,7 @@
 
     <resource: #programMenu>
 
-    |items m sel|
+    |items m sel operationItems|
 
     sel := self selection.
 
@@ -1965,6 +1965,11 @@
     items := items , (self sortOrderItems).
     items := items , (self numberBaseItems).
 
+    operationItems := (self optionalOperationMenuItemsFor:sel).
+    operationItems notEmptyOrNil ifTrue:[
+        items := items, #(('-')) , operationItems
+    ].
+    
     m := PopUpMenu
           itemList:items
           resources:resources.
@@ -2096,6 +2101,17 @@
     "Modified: / 03-08-2011 / 15:03:36 / cg"
 !
 
+optionalOperationMenuItemsFor:anObject
+    "chance to add instance-specific operation menu items.
+     See SerialPort as an example"
+     
+    ^ anObject inspectorExtraMenuOperations
+
+    "
+     SerialPort new inspect    
+    "
+!
+
 optionalStreamSelectionItems
     |sel|
 
@@ -3187,9 +3203,10 @@
 !InspectorView methodsFor:'private'!
 
 baseInspectedObjectClass
+    "only instvars below that are shown by me in the non-basic tab.
+     This hides uninterresting details in the regular tab"
+     
     ^ Object
-
-
 !
 
 defaultLabel
--- a/OrderedCollectionInspectorView.st	Wed Aug 31 22:53:21 2016 +0100
+++ b/OrderedCollectionInspectorView.st	Fri Sep 02 17:43:31 2016 +0100
@@ -11,6 +11,8 @@
 "
 "{ Package: 'stx:libtool' }"
 
+"{ NameSpace: Smalltalk }"
+
 InspectorView subclass:#OrderedCollectionInspectorView
 	instanceVariableNames:''
 	classVariableNames:''
@@ -125,9 +127,6 @@
 !OrderedCollectionInspectorView methodsFor:'private'!
 
 baseInspectedObjectClass
-    (inspectedObject class inheritsFrom:OrderedCollection) ifFalse:[
-        ^ Object
-    ].
     ^ OrderedCollection
 !
 
@@ -192,11 +191,11 @@
 !OrderedCollectionInspectorView class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/OrderedCollectionInspectorView.st,v 1.48 2012-08-06 07:02:02 cg Exp $'
+    ^ '$Header$'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/OrderedCollectionInspectorView.st,v 1.48 2012-08-06 07:02:02 cg Exp $'
+    ^ '$Header$'
 !
 
 version_HG
--- a/Tools__Inspector2.st	Wed Aug 31 22:53:21 2016 +0100
+++ b/Tools__Inspector2.st	Fri Sep 02 17:43:31 2016 +0100
@@ -17,7 +17,7 @@
 	instanceVariableNames:'tabViewAspect navigationHistoryHolder navigationStateAspect
 		browser currentObjectHolder colorProfileHolder
 		toolbarBackgroundHolder evaluationLanguageHolder
-		evaluationLanguageList'
+		evaluationLanguageList operationsMenuEnabledHolder'
 	classVariableNames:'LastExtent ColorProfiles EvaluationLanguageMap'
 	poolDictionaries:''
 	category:'Interface-Inspector2'
@@ -52,6 +52,14 @@
     extendable by the inspected object itself, by providing additional
     tabs via the inspector2XXX methods
 
+    Interface for objects:
+        redefine 
+            inspectorExtraAttributes (to get additional pseudo-attributes into the left field list)
+            inspectorExtraTabs (to get additional tabs into the tab list)
+            inspectorExtraMenuOperations(to get additional operations menu items into the operations menu)
+        
+    the operations menu is invisible, if there are no operations.
+    
     [author:]
         Jan Vrani
 "
@@ -460,6 +468,11 @@
             submenuChannel: viewMenu
           )
          (MenuItem
+            label: 'Operations'
+            isVisible: operationsMenuEnabledHolder
+            submenuChannel: operationsMenu
+          )
+         (MenuItem
             label: 'MENU_Help'
             startGroup: conditionalRight
             submenuChannel: helpMenu
@@ -910,6 +923,13 @@
     "Modified (format): / 19-08-2011 / 08:59:10 / cg"
 !
 
+operationsMenuEnabledHolder
+    operationsMenuEnabledHolder isNil ifTrue:[
+        operationsMenuEnabledHolder := false asValue.
+    ].
+    ^ operationsMenuEnabledHolder
+!
+
 showAlphabeticalHolder
       ^ builder booleanValueAspectFor:#showAlphabeticalHolder
 !
@@ -980,6 +1000,7 @@
 
     changedObject == currentObjectHolder ifTrue:[
          self updateEvaluationLanguageList.
+         self updateOperationsMenu.
          ^ self.
     ].
     changedObject == evaluationLanguageHolder  ifTrue:[
@@ -1022,6 +1043,13 @@
     self evaluationLanguageHolder value:(EvaluationLanguageMap at: currentObjectLanguage ifAbsent:[currentObjectLanguage])
 
     "Created: / 26-10-2013 / 00:40:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+updateOperationsMenu
+    |items|
+    
+    items := currentObjectHolder value inspectorExtraMenuOperations.
+    self operationsMenuEnabledHolder value:(items notEmptyOrNil).
 ! !
 
 !Inspector2 methodsFor:'configuration'!
@@ -1065,6 +1093,21 @@
     "Modified: / 22-02-2008 / 16:58:11 / janfrog"
 !
 
+operationsMenu
+    |items menu|
+    
+    items := currentObjectHolder value inspectorExtraMenuOperations.
+    items isEmptyOrNil ifTrue:[^ nil].
+    
+    menu := Menu new.
+    items do:[:eachPair |
+        menu addItem:(MenuItem 
+                        label:eachPair first
+                        itemValue:eachPair second).
+    ].
+    ^ menu
+!
+
 settingsMenu
     |m|
 
--- a/Tools__TestRunnerMini.st	Wed Aug 31 22:53:21 2016 +0100
+++ b/Tools__TestRunnerMini.st	Fri Sep 02 17:43:31 2016 +0100
@@ -256,7 +256,7 @@
                             )
                           
                          )
-                         extent: (Point 219 31)
+                         extent: (Point 206 31)
                        )
                       (ActionButtonSpec
                          label: 'Debug'
@@ -323,8 +323,8 @@
                  )
                 (LabelSpec
                    name: 'ResultInfo'
-                   layout: (LayoutFrame 0 0 -20 1 0 0.5 0 1)
-                   style: (FontDescription helvetica medium roman 10 #'iso10646-1')
+                   layout: (LayoutFrame 0 0 -20 1 0 1 0 1)
+                   style: (FontDescription helvetica medium roman 10 #'iso10646-1' nil nil)
                    backgroundChannel: resultBackgroundColorAspect
                    foregroundChannel: resultTextForegroundColorAspect
                    translateLabel: true
--- a/extensions.st	Wed Aug 31 22:53:21 2016 +0100
+++ b/extensions.st	Fri Sep 02 17:43:31 2016 +0100
@@ -1294,6 +1294,21 @@
     "Modified: 10.6.1996 / 18:23:55 / cg"
 ! !
 
+!Image methodsFor:'inspecting'!
+
+inspectorExtraMenuOperations
+    ^ super inspectorExtraMenuOperations,
+    {
+        { 'Edit Image' . [ ImageEditor openOnImage:self ] } .
+        { '-' . nil } .
+        { 'Save As...' . [ 
+                            Dialog  
+                                ask:[ Dialog requestFileNameForSave:'Save image as?' default:'newImage.png' ] 
+                                ifNotNilOrEmptyDo:[:file | self saveOn: file ]
+                         ] }
+    }
+! !
+
 !Integer methodsFor:'inspecting'!
 
 inspectorExtraAttributes
--- a/resources/de.rs	Wed Aug 31 22:53:21 2016 +0100
+++ b/resources/de.rs	Fri Sep 02 17:43:31 2016 +0100
@@ -1598,8 +1598,8 @@
 'Methods Only'                                                                                          'Nur Methoden'
 'Methods Refering to Global'                                                                            'Methoden, die eine Globale referenzieren'
 'Methods Sending'                                                                                       'Methoden die die Nachricht senden'
-'Methods referring to %1'                                                                               'Methoden, die %1 refernezieren'
-'Methods referring to %1 which was renamed to %2'                                                       'Methoden, die %1 refernezieren, das zu %2 umbenannt wurde'
+'Methods referring to %1'                                                                               'Methoden, die %1 referenzieren'
+'Methods referring to %1 which was renamed to %2'                                                       'Methoden, die %1 referenzieren, das zu %2 umbenannt wurde'
 'Methods with String'                                                                                   'Methoden mit Text'
 'Metrics Report'                                                                                        'Metrik-Report'
 'Metrics Summary Report'                                                                                'Zusammenfassender Report der Metriken'
--- a/stx_libtool.st	Wed Aug 31 22:53:21 2016 +0100
+++ b/stx_libtool.st	Fri Sep 02 17:43:31 2016 +0100
@@ -487,6 +487,7 @@
         Image inspector2TabImage
         Image inspector2Tabs
         Image inspectorClass
+        Image inspectorExtraMenuOperations
         Integer inspectorExtraAttributes
         Interval inspectorValueStringInListFor:
         Iterator inspectorValueStringInListFor: