Tools__CodeView2SettingsAppl.st
author Claus Gittinger <cg@exept.de>
Sat, 31 Aug 2013 19:41:47 +0200
changeset 13437 0dd16168581b
parent 13417 c69a48a87756
child 13491 b3afe831ff0a
child 13807 74118f93a30b
permissions -rw-r--r--
class: BookmarkMenuBuilder changed: #menuItemAddBookmark:labeled: #menuItemFolder: (send #label: instead of #labeled:) #menuItemGotoBookmark: code cleanup (obsolete messages)

"
 COPYRIGHT (c) 2006 by eXept Software AG
              All Rights Reserved

 This software is furnished under a license and may be used
 only in accordance with the terms of that license and with the
 inclusion of the above copyright notice.   This software may not
 be provided or otherwise made available to, or used by, any
 other person.  No title to or ownership of the software is
 hereby transferred.
"
"{ Package: 'stx:libtool' }"

"{ NameSpace: Tools }"

AbstractSettingsApplication subclass:#CodeView2SettingsAppl
	instanceVariableNames:'useCodeView2InTools useCodeView2InDebugger useCodeView2InBrowser
		useCodeView2InToolEnabled useCodeView2InWorkspace
		codeView2AutoPrettyPrint codeView2ShowAcceptCancel
		codeView2QuickSendersAndImplementorsOnControl'
	classVariableNames:''
	poolDictionaries:''
	category:'Interface-CodeView'
!

!CodeView2SettingsAppl class methodsFor:'documentation'!

copyright
"
 COPYRIGHT (c) 2006 by eXept Software AG
              All Rights Reserved

 This software is furnished under a license and may be used
 only in accordance with the terms of that license and with the
 inclusion of the above copyright notice.   This software may not
 be provided or otherwise made available to, or used by, any
 other person.  No title to or ownership of the software is
 hereby transferred.
"
! !

!CodeView2SettingsAppl class methodsFor:'help specs'!

flyByHelpSpec
    "This resource specification was automatically generated
     by the UIHelpTool of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the UIHelpTool may not be able to read the specification."

    "
     UIHelpTool openOnClass:Tools::CodeView2SettingsAppl    
    "

    <resource: #help>

    ^ super flyByHelpSpec addPairsFrom:#(

#showAcceptCancelBarInGutter
'Show the Gutterview''s own Accept/Cancel Bar (disabled if outer Accept/Cancel bar is enabled)'

#useCodeView2InBrowser
'Use the new editor in SystemBrowsers (disabled if the global use of CodeEditor2 is disabled in the tools settings)'

#useCodeView2InWorkspace
'Use the new editor in Workspaces (disabled if the global use of Code Editor2 is disabled in the tools settings)'

#useCodeView2InDebugger
'Use the new editor in the Debugger (disabled if the global use of Code Editor2 is disabled in the tools settings)'

#codeView2QuickSendersAndImplementorsOnControl
'If on, the CTRL (Control) key is used to get the quick implementors/senders menus via left/right mouse click.\If off, the ALT key is used.\Check this, if your window manager eats ALT-key events for breakfast.'

#codeView2AutoPrettyPrint
'Automatically indent (prettyprint) code. This is experimental and not yet enabled by default, 
as it uses the refactory browser''s prettyprint function, which is known to loose comments and generate
ugly layout occasionally. For now, it is recommended to manually prettyprint code (using the format button),
and check if it looks good enough to be accepted.'

)
! !

!CodeView2SettingsAppl class methodsFor:'image specs'!

defaultIcon
    "This resource specification was automatically generated
     by the ImageEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the ImageEditor may not be able to read the specification."

    "
     self defaultIcon inspect
     ImageEditor openOnClass:self andSelector:#defaultIcon
     Icon flushCachedIcons
    "

    <resource: #image>

    ^Icon
        constantNamed:'Tools::CodeView2SettingsAppl class defaultIcon'
        ifAbsentPut:[(Depth4Image new) width: 22; height: 22; photometric:(#palette); bitsPerSample:(#[4]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
*****************+.************(.8"H"H"H"J(@**";UUU%UUUU@@^+.;.;-VUUUU@@]:.;.;.5YUUUT@A7**";Y&Y&Y&X@]7^**K-UUVUU@@]7\Z*(
.5UUYU@@]7\R**"EUUU%T@A7]1J**HY&Y&XC]7\Q&**(!!UUU(3M7\Y&***"EUUU#L3L2QJ***HY&Z#L3L6)D***(!!&Y*L3L6Z$R***"EUUP3M&ZEQJ***HUU
RRY(UUUD***("*)J*****$R***"J)J******QJ***HUUUZUUUUUD***TQDQDQDQDQDR***************(b') ; colorMapFromArray:#[240 160 80 192 80 0 64 0 0 240 208 160 0 0 0 240 240 240 192 192 192 240 128 0 208 208 208 48 48 48 160 160 160 255 0 0]; mask:((Depth1Image new) width: 22; height: 22; photometric:(#blackIs0); bitsPerSample:(#(1)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@C@@@G??LG??<_??<_??<G??<G??<G??<G??<G??8G??0G??0G??0G??0G??0G??0G??0G??0G??0O??0@@@@') ; yourself); yourself]
! !

!CodeView2SettingsAppl class methodsFor:'interface specs'!

windowSpec
    "This resource specification was automatically generated
     by the UIPainter of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the UIPainter may not be able to read the specification."

    "
     UIPainter new openOnClass:Tools::CodeView2SettingsAppl andSelector:#windowSpec
     Tools::CodeView2SettingsAppl new openInterface:#windowSpec
     Tools::CodeView2SettingsAppl open
    "

    <resource: #canvas>

    ^ 
     #(FullSpec
        name: windowSpec
        window: 
       (WindowSpec
          label: 'Code Editor Settings'
          name: 'Code Editor Settings'
          min: (Point 10 10)
          bounds: (Rectangle 0 0 585 289)
        )
        component: 
       (SpecCollection
          collection: (
           (VerticalPanelViewSpec
              name: 'VBox'
              layout: (LayoutFrame 0 0 0 0 0 1 0 1)
              horizontalLayout: fit
              verticalLayout: top
              horizontalSpace: 3
              verticalSpace: 3
              component: 
             (SpecCollection
                collection: (
                 (FramedBoxSpec
                    label: 'Individual Tool Support'
                    name: 'ToolSupport'
                    visibilityChannel: false
                    labelPosition: topLeft
                    translateLabel: true
                    component: 
                   (SpecCollection
                      collection: (
                       (VerticalPanelViewSpec
                          name: 'ToolSupportCheckBox'
                          layout: (LayoutFrame 0 0 0 0 0 1 81 0)
                          horizontalLayout: fit
                          verticalLayout: top
                          horizontalSpace: 3
                          verticalSpace: 3
                          component: 
                         (SpecCollection
                            collection: (
                             (CheckBoxSpec
                                label: 'Use Advanced Code Editor in Class Browser'
                                name: 'CheckBox2'
                                activeHelpKey: useCodeView2InBrowser
                                enableChannel: useCodeView2InToolEnabled
                                model: useCodeView2InBrowser
                                translateLabel: true
                                extent: (Point 551 25)
                              )
                             (CheckBoxSpec
                                label: 'Use Advanced Code Editor in Debugger (experimental)'
                                name: 'CheckBox3'
                                activeHelpKey: useCodeView2InDebugger
                                enableChannel: useCodeView2InToolEnabled
                                model: useCodeView2InDebugger
                                translateLabel: true
                                extent: (Point 551 25)
                              )
                             (CheckBoxSpec
                                label: 'Use Advanced Code Editor in Workspace'
                                name: 'CheckBox4'
                                activeHelpKey: useCodeView2InWorkspace
                                enableChannel: useCodeView2InToolEnabled
                                model: useCodeView2InWorkspace
                                translateLabel: true
                                extent: (Point 551 25)
                              )
                             )
                           
                          )
                          usePreferredHeight: true
                          useDynamicPreferredHeight: true
                        )
                       )
                     
                    )
                    extent: (Point 585 117)
                  )
                 (FramedBoxSpec
                    label: 'Edit Support'
                    name: 'EditSupport'
                    labelPosition: topLeft
                    translateLabel: true
                    component: 
                   (SpecCollection
                      collection: (
                       (VerticalPanelViewSpec
                          name: 'VerticalPanel1'
                          layout: (LayoutFrame 0 0 0 0 0 1 0 1)
                          horizontalLayout: fit
                          verticalLayout: top
                          horizontalSpace: 3
                          verticalSpace: 3
                          component: 
                         (SpecCollection
                            collection: (
                             (CheckBoxSpec
                                label: 'Show Accept/Cancel Buttons in Gutter'
                                name: 'CheckBox6'
                                activeHelpKey: showAcceptCancelBarInGutter
                                enableChannel: acceptCancelInGutterEnabledHolder
                                model: codeView2ShowAcceptCancel
                                translateLabel: true
                                extent: (Point 551 25)
                              )
                             (CheckBoxSpec
                                label: 'Auto Pretty Print (experimental, not yet recommended)'
                                name: 'CheckBox5'
                                activeHelpKey: codeView2AutoPrettyPrint
                                enableChannel: false
                                model: codeView2AutoPrettyPrint
                                translateLabel: true
                                extent: (Point 551 25)
                              )
                             )
                           
                          )
                        )
                       )
                     
                    )
                    extent: (Point 585 89)
                  )
                 (FramedBoxSpec
                    label: 'Keyboard Shortcuts'
                    name: 'FramedBox1'
                    labelPosition: topLeft
                    translateLabel: true
                    component: 
                   (SpecCollection
                      collection: (
                       (VerticalPanelViewSpec
                          name: 'VerticalPanel2'
                          layout: (LayoutFrame 0 0 0 0 0 1 0 1)
                          horizontalLayout: fit
                          verticalLayout: top
                          horizontalSpace: 3
                          verticalSpace: 3
                          component: 
                         (SpecCollection
                            collection: (
                             (CheckBoxSpec
                                label: 'Quick Senders/Implementors Menu with CTRL key (as opposed to ALT key)'
                                name: 'CheckBox7'
                                activeHelpKey: codeView2QuickSendersAndImplementorsOnControl
                                model: codeView2QuickSendersAndImplementorsOnControl
                                translateLabel: true
                                extent: (Point 551 25)
                              )
                             )
                           
                          )
                        )
                       )
                     
                    )
                    extent: (Point 585 65)
                  )
                 )
               
              )
            )
           )
         
        )
      )
! !

!CodeView2SettingsAppl methodsFor:'aspects'!

acceptCancelInGutterEnabledHolder
    ^ [UserPreferences current showAcceptCancelBar not] 
!

codeView2AutoPrettyPrint

    codeView2AutoPrettyPrint isNil ifTrue:[
        codeView2AutoPrettyPrint := ValueHolder new.
        codeView2AutoPrettyPrint onChangeSend:#updateModifiedChannel to:self
    ].
    ^ codeView2AutoPrettyPrint

    "Modified: / 11-03-2010 / 10:09:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    "Created: / 07-08-2011 / 12:52:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

codeView2QuickSendersAndImplementorsOnControl
    codeView2QuickSendersAndImplementorsOnControl isNil ifTrue:[
        codeView2QuickSendersAndImplementorsOnControl := ValueHolder new.
        codeView2QuickSendersAndImplementorsOnControl onChangeSend:#updateModifiedChannel to:self
    ].
    ^ codeView2QuickSendersAndImplementorsOnControl

    "Modified: / 11-03-2010 / 10:09:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

codeView2ShowAcceptCancel

    codeView2ShowAcceptCancel isNil ifTrue:[
        codeView2ShowAcceptCancel := ValueHolder new.
        codeView2ShowAcceptCancel onChangeSend:#updateModifiedChannel to:self
    ].
    ^ codeView2ShowAcceptCancel

    "Modified: / 10-10-2011 / 16:43:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

useCodeView2InBrowser

    useCodeView2InBrowser isNil ifTrue:[
        useCodeView2InBrowser := ValueHolder new.
        useCodeView2InBrowser onChangeSend:#updateModifiedChannel to:self
    ].
    ^ useCodeView2InBrowser

    "Modified: / 11-03-2010 / 10:09:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    "Created: / 26-07-2011 / 10:30:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

useCodeView2InDebugger

    useCodeView2InDebugger isNil ifTrue:[
        useCodeView2InDebugger := ValueHolder new.
        useCodeView2InDebugger onChangeSend:#updateModifiedChannel to:self
    ].
    ^ useCodeView2InDebugger

    "Modified: / 11-03-2010 / 10:09:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    "Created: / 26-07-2011 / 10:30:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

useCodeView2InTools

    useCodeView2InTools isNil ifTrue:[
        useCodeView2InTools := ValueHolder new.
        useCodeView2InTools onChangeSend:#updateModifiedChannel to:self
    ].
    ^ useCodeView2InTools

    "Modified: / 11-03-2010 / 10:09:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

useCodeView2InWorkspace

    useCodeView2InWorkspace isNil ifTrue:[
        useCodeView2InWorkspace := ValueHolder new.
        useCodeView2InWorkspace onChangeSend:#updateModifiedChannel to:self
    ].
    ^ useCodeView2InWorkspace

    "Modified: / 11-03-2010 / 10:09:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    "Created: / 26-07-2011 / 10:31:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!CodeView2SettingsAppl methodsFor:'aspects-enablement'!

useCodeView2InToolEnabled
    "return/create the 'useCodeView2InTools' value holder (automatically generated)"

    useCodeView2InToolEnabled isNil ifTrue:[
        useCodeView2InToolEnabled := UserPreferences current useCodeView2InTools asValue.
"/            (AspectAdaptor forAspect: #not) 
"/                subjectChannel: self useCodeView2InTools
    ].
    ^ useCodeView2InToolEnabled

    "Modified: / 11-03-2010 / 10:09:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    "Created: / 26-07-2011 / 10:39:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    "Modified (format): / 25-11-2011 / 15:11:55 / cg"
! !

!CodeView2SettingsAppl methodsFor:'protocol'!

basicAspects
    ^#( 
        "/#useCodeView2InTools 
        #useCodeView2InBrowser
        #useCodeView2InDebugger
        #useCodeView2InWorkspace
        "/Editing support
        #codeView2AutoPrettyPrint
        "/ #codeView2ShowAcceptCancel
        #codeView2QuickSendersAndImplementorsOnControl
    )

    "Modified: / 10-10-2011 / 16:43:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

basicReadSettings
    self readAspects:self basicAspects from:currentUserPrefs.

    "Modified: / 19-07-2011 / 17:11:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

basicSaveSettings

    self writeAspects:self basicAspects to:currentUserPrefs.

    "Modified: / 26-07-2011 / 10:43:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

helpFilename
    "subclasses must return the relative name of a helpFile
     in the doc/online/<language>/help directory.
     Or nil, if no help is available."

    ^ nil"for now"

    "Modified: / 19-07-2011 / 16:55:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!CodeView2SettingsAppl methodsFor:'queries'!

hasUnsavedChanges
    ^ self
        hasChangedAspectIn: self basicAspects
        asComparedTo:currentUserPrefs

    "Modified: / 19-07-2011 / 17:12:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    "Modified (format): / 25-11-2011 / 15:25:16 / cg"
! !

!CodeView2SettingsAppl class methodsFor:'documentation'!

version
    ^ '$Header: /cvs/stx/stx/libtool/Tools__CodeView2SettingsAppl.st,v 1.10 2013-08-30 21:28:15 cg Exp $'
!

version_CVS
    ^ '$Header: /cvs/stx/stx/libtool/Tools__CodeView2SettingsAppl.st,v 1.10 2013-08-30 21:28:15 cg Exp $'
!

version_SVN
    ^ '$Id: Tools__CodeView2SettingsAppl.st,v 1.10 2013-08-30 21:28:15 cg Exp $'
! !