stx_libwidg.st
author Stefan Vogel <sv@exept.de>
Wed, 16 May 2018 08:37:31 +0200
changeset 6320 d52325b32f05
parent 6234 1e296cf378d6
child 6405 071c07f994fb
permissions -rw-r--r--
#REFACTORING by stefan class: DialogBox class changed: #initialize #modifyingBoxWith:do: fix return value

"
 COPYRIGHT (c) Claus Gittinger / 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:libwidg' }"

"{ NameSpace: Smalltalk }"

LibraryDefinition subclass:#stx_libwidg
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	category:'* Projects & Packages *'
!

!stx_libwidg class methodsFor:'documentation'!

copyright
"
 COPYRIGHT (c) Claus Gittinger / 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.
"
!

documentation
"
    Package Documentation

    This library contains elementary GUI components (widgets), such as Buttons, InputFields,
    TextEditors, Scrollbars etc.

    All of these widgets are written in 100% pure Smalltalk. 
    They do not depend upon any particular underlying graphic system (by the operating system). 
    Instead, they build upon the abstraction layer as provided by libview.
    Arguably, this has both advantages and disadvantages:
    for one, the ST/X widgets may not look&feel 100% like their native counterparts, especially
    on systems which constantly change (i.e. Windows).
    On the other hand, this frees us completely from any development there, 
    and gets us rid of big problems when looks, feels or even APIs change.
    (btw.: and also makes us independent of any bugs found in those)
    
    Just consider the following historic fact:
        when motif was modern, people asked for a native motif style...
        ... a few years later for qt, then gnome, and what next?
        We'd be constantly adapting to new frameworks and not get any work done,
        if we were depending on native widgets

    Also, this might even make problems, if widget frameorks on different systems 
    (i.e. X vs. Windows vs. Cocoa) provide different levels of functionality.

    [author:]
        cg

    [primary maintainer:]
        cg
"
! !

!stx_libwidg class methodsFor:'description'!

excludedFromPreRequisites
    ^ #(
        #'stx:libjavascript'    "JavaScriptParser - referenced by Workspace>>browseImplementorsOfIt "
        #'stx:goodies/communication'    "HTTPInterface - referenced by EditTextView>>editMenu "
        #'stx:goodies/soap'    "SOAP::SoapImplError - referenced by EditTextView>>googleSpellingSuggestion "
        #'stx:goodies/soap/examples'    "SOAP::BabelFishClient - referenced by EditTextView>>babelFishTranslate: "
        #'stx:libcomp'    "Parser - referenced by EditTextView>>executeKeyboardMacro: "
        #'stx:libhtml'    "HTMLDocumentView - referenced by DialogBox>>addHelpButtonFor: "
        #'stx:libtool'    "SystemBrowser - referenced by Workspace>>browseImplementorsOfIt "
        #'stx:libwidg2'    "FilenameEditField - referenced by DialogBox>>addFilenameInputFieldOn:in:tabable: "
    )
!

mandatoryPreRequisites
    "list all required mandatory packages.
     Packages are mandatory, if they contain superclasses of the package's classes
     or classes which are extended by this package.
     This list can be maintained manually or (better) generated and
     updated by scanning the superclass hierarchies
     (the browser has a menu function for that)"

    ^ #(
        #'stx:libbasic'    "Autoload - superclass of ListViewController "
        #'stx:libview'    "Controller - superclass of ButtonController "
        #'stx:libview2'    "Model - superclass of MultiSelectionInList "
    )
!

referencedPreRequisites
    "list all packages containing classes referenced by the packages's members.
     This list can be maintained manually or (better) generated and
     updated by looking for global variable accesses
     (the browser has a menu function for that)
     However, often too much is found, and you may want to explicitely
     exclude individual packages in the #excludedFromPreRequisites method."

    ^ #(
        #'stx:libbasic2'    "ActorStream - referenced by TextCollector>>initialize "
        #'stx:libbasic3'    "MessageTally - referenced by Workspace>>spyOnIt "
        #'stx:libui'    "ActionButtonSpec - referenced by Button>>specClass "
    )
!

subProjects
    "list packages which are known as subprojects.
     The generated makefile will enter those and make there as well.
     However: they are not forced to be loaded when a package is loaded;
     for those, redefine requiredPrerequisites"

    ^ #(
    )
! !

!stx_libwidg class methodsFor:'description - compilation'!

additionalBaseAddressDefinition_bc_dot_mak
    "this is an optional definition, which (if present) may speed up the dll-loading a little
     on win32 systems."

    ^ '
# see stdHeader_bc for LIBWIDG_BASE
LIB_BASE=$(LIBWIDG_BASE)
'
!

stcOptimizationOptions
    ^ '+optinline'
!

stcWarningOptions
    ^ '-warnNonStandard -warnUnused'
! !

!stx_libwidg class methodsFor:'description - contents'!

classNamesAndAttributes
    "lists the classes which are to be included in the project.
     Each entry in the list may be: a single class-name (symbol),
     or an array-literal consisting of class name and attributes.
     Attributes are: #autoload or #<os> where os is one of win32, unix,..."

    ^ #(
        "<className> or (<className> attributes...) in load order"
        ButtonController
        DialogBox
        EditTextViewCompletionSupport
        EnterFieldGroup
        FramedBox
        GenericToolbarIconLibrary
        Label
        ListView
        ListViewController
        MenuEvent
        ObjectView
        PanelView
        PopUpMenu
        PullDownMenu
        RadioButtonGroup
        ScrollBar
        ScrollableView
        Scroller
        SelectionInList
        VariablePanel
        VariablePanelController
        #'stx_libwidg'
        Button
        CheckLabel
        EnterBox
        FontPanel
        HVScrollableView
        HorizontalPanelView
        HorizontalScrollBar
        HorizontalScroller
        InfoBox
        MiniScroller
        MultiColumnPanelView
        MultiSelectionInList
        OptionBox
        PointFromUserController
        PopUpListController
        RectangleFromUserController
        SelectionInListView
        SequenceView
        TextView
        ToggleController
        VariableHorizontalPanel
        VariableHorizontalPanelController
        VariableVerticalPanel
        VariableVerticalPanelController
        VerticalPanelView
        WorkspaceCompletionSupport
        XPToolbarIconLibrary
        ArrowButton
        EditTextView
        EnterBox2
        FileSelectionList
        HorizontalMiniScroller
        ListSelectionBox
        MacOSXToolbarIconLibrary
        MenuView
        PopUpList
        RadioButtonController
        Toggle
        VistaToolbarIconLibrary
        WarningBox
        AdwaitaToolbarIconLibrary
        CheckToggle
        ClickMenuView
        EditField
        FileSelectionBox
        MacOSX2ToolbarIconLibrary
        RadioButton
        TextCollector
        Windows8ToolbarIconLibrary
        YesNoBox
        FileSaveBox
        Workspace
        CodeView
    )
!

extensionMethodNames
    "lists the extension methods which are to be included in the project.
     Entries are 2-element array literals, consisting of class-name and selector."

    ^ #(
    )
! !

!stx_libwidg class methodsFor:'description - project information'!

companyName
    "Return a companyname which will appear in <lib>.rc"

    ^ 'Claus Gittinger / eXept Software AG'

    "Modified: / 18-11-2016 / 11:47:47 / cg"
!

description
    "Return a description string which will appear in nt.def / bc.def"

    ^ 'Smalltalk/X Elementary Widgets'
!

legalCopyright
    "Return a copyright string which will appear in <lib>.rc"

    ^ 'Copyright Claus Gittinger 1988\nCopyright eXept Software AG 2012'

    "Modified: / 18-11-2016 / 12:19:22 / cg"
!

productName
    "Return a product name which will appear in <lib>.rc"

    ^ 'Smalltalk/X'
! !

!stx_libwidg class methodsFor:'documentation'!

version
    ^ '$Header$'
!

version_CVS
    ^ '$Header$'
! !