Changes between Version 24 and Version 25 of widgets


Ignore:
Timestamp:
04/16/2021 08:58:51 AM (20 months ago)
Author:
marcel.taeumel
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • widgets

    v24 v25  
    1 [[PageOutline(1-2)]]
    2 
    3 = Widgets =
    4 
    5 [[Image(allwidgets.PNG, nolink)]]
    6 
    7 Adds nice looking Morphic controls, e.g., lists, dropdown lists, push buttons, check boxes. It uses the [wiki:signals] mechanism for callbacks.
    8 
    9 = How to Install =
    10 {{{
    11 #!div class="wiki_infotable" style="float:right;"
    12 ||'''Environment'''|| ||
    13 || [[Image(media/icons/custom:squeak_16.png, title="Recommended Squeak Version", nolink, right)]] || 4.3 ||
    14 || [[Image(media/icons/silk:application_home.png, title="Recommended Squeak VM Version", nolink, right)]] || 4.1.1 (win) ||
    15 || [[Image(media/icons/silk:cog.png, title="Recommended Cog VM Version", nolink, right)]] || r2559 or newer ||
    16 ||'''Sources'''|| ||
    17 || [[Image(media/icons/silk:script_gear.png, title="Metacello Configuration", nolink, right)]] || [http://www.hpi.uni-potsdam.de/hirschfeld/squeaksource/MetacelloRepository/ ConfigurationOfWidgets] ||
    18 || [[Image(media/icons/silk:database.png, title="Repository", nolink, right)]] || [http://www.hpi.uni-potsdam.de/hirschfeld/squeaksource/SwaUtilities/ SwaUtilities] ||
    19 || [[Image(media/icons/silk:package.png, title="Needed Packages from the Repository", nolink, right)]] || Widgets ||
    20 || [[Image(media/icons/silk:package.png, title="Needed Packages from the Repository", nolink, right)]] || WidgetTests (optional) ||
    21 || [[Image(media/icons/silk:package.png, title="Needed Packages from the Repository", nolink, right)]] || WidgetTools (optional) ||
    22 || [[Image(media/icons/silk:package.png, title="Needed Packages from the Repository", nolink, right)]] || Icons (optional) ||
    23 || [[Image(media/icons/silk:bullet_go.png, title="Dependents", nolink, right)]] || [wiki:signals Signals] ||
    24 || [[Image(media/icons/silk:bullet_go.png, title="Dependents", nolink, right)]] || [wiki:animations Animations] ||
    25 || [[Image(media/icons/silk:bullet_go.png, title="Dependents", nolink, right)]] || [http://www.squeaksource.com/Regex VB-Regex] ||
    26 ||'''Misc'''|| ||
    27 || [[Image(media/icons/silk:world.png, title="Website", nolink, right)]] || [http://www.hpi.uni-potsdam.de/hirschfeld/squeaksource/SwaUtilities.html SwaUtilities@SqueakSource] ||
    28 }}}
    29 
    30 Using Metacello, just run the following code in your workspace:
    31 
    32 {{{
    33 (Installer mc http: 'http://www.hpi.uni-potsdam.de/hirschfeld/squeaksource/')
    34    project: 'MetacelloRepository';
    35    install: 'ConfigurationOfWidgets'.
    36 (Smalltalk at: #ConfigurationOfWidgets) load.
    37 }}}
    38 
    39 If you want to try the latest snapshot (may be unstable), run this:
    40 
    41 {{{
    42 ConfigurationOfWidgets loadSnapshot.
    43 }}}
    44 
    45 If you want to update to the latest development version, run this:
    46 
    47 {{{
    48 ConfigurationOfWidgets loadDevelopment.
    49 }}}
    50 
    51 '''Configuration groups'''
    52 
    53 {{{core}}} ... just the widgets[[br]]
    54 {{{tools}}} ... widgets, useful example tools, icon sets[[br]]
    55 {{{tests}}} ... widgets and their tests[[br]]
    56 {{{full}}} ... everything above[[br]]
    57 
    58 '''Version 1.1 Highlights'''
    59 
    60  * useful basic controls (buttons, check boxes, lists, ...)
    61  * powerful item-view framework
    62  * extensible paint engine
    63  * 167 tests
    64 
    65 {{{
    66 #!div style="clear:both;"
    67 }}}
    68 
    69 [[Image(itemview.PNG, nolink, title="Examples of the item view framework.")]]
    70 
    71 = How to Use =
    72 
    73 Explore all examples in the `WidgetTools` package to learn more about the item-view framework and how to connect widgets to user input. Try to design your graphical front-ends with the [wiki:designer Morphic Designer] to avoid writing verbose user interface code.
    74 
    75 = How to Extend =
    76 
    77 Most of the widgets are written from scratch. If you want to extend or add new ones, here are some hints:
    78 
    79  * layouting of morphs in combination with embedded text morphs can be problematic in the first place as the dimensions are not correct
    80    * see optimizations and fixes in `UiComboBox`
    81  * put all [wiki:signals signals] of a widget class into the ''signals'' protocol
    82  * for each signal, explain with a comment when it will generally be sent, e.g., ''"This signal is emitted whenever the user clicks with the left mouse button."''
    83  * try to write as compact classes as possible, i.e., avoid having several classes for buttons, buttons with icons, buttons with icons and text, but write exactly one class and make these features configurable
    84  * consider the [wiki:designer Morphic Designer] and implement on the class-side of your widget class:
    85    * `#isWidgetClass` ... used by the designer as a widget
    86    * `#widgetCategory` ... as grouped in the designer's widget tree
    87    * `#widgetProperties` ... appended to the end of the designer's property table
    88    * `#widgetPropertiesToIgnore` ... hidden in the designer's property table
    89    * `#widgetClassIcon` ... icon in the designer's widget tree
    90    * `#widgetClassName` ... text in the designer's widget tree
    91 
     1This project, including all sources and documentation, moved to [https://github.com/hpi-swa/widgets]