glimmer-dsl-swt 4.17.7.0 → 4.17.8.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2a6e9aed9497c88e3858e2e4a5c3734d784fce7aed040f4f538433e2318317d1
4
- data.tar.gz: 10edec048056954ef796359f731f72d85ff586ec011291ece257d2d268fc34f6
3
+ metadata.gz: 355a2721d685e2440ad536721df4f543e292e0cf76c2b0740bbe3413eced552c
4
+ data.tar.gz: 4829dc246b8af10a25cd93050d8866b7bb9be01adab985af3553327216dc98c2
5
5
  SHA512:
6
- metadata.gz: de93b471548a07642f95d134a838b8e4ecf9045f209fa50d3ec8958b8d5c5bc3f39bc9ed0071a24724c2313913ed807d20b97ecd4b4313f52413e178606bca5c
7
- data.tar.gz: 206afc10eb6b566e0617da956f92507145e50393c30b8e398580af8565ea8a3cde61c03fbdc675e9b52a616fcfd7c1920764901c1318c94272848fc95572a12c
6
+ metadata.gz: f4d965caa8a53d051328d04dd65261d4cd80a37b64ddd8d8bf30ddeb569673f4ad0bf4be78e2fb8dd3a09776d780862c5d6561cadcb80a601b2900674e54a36e
7
+ data.tar.gz: '06994b5fbc21286770e6cf422d208a2ecfa929b485ffce27c80789250a58452ca98e9bcef825aefe748de15f57da7833c98e0848580f4be26297cd811037bfd8'
@@ -1,5 +1,14 @@
1
1
  # Change Log
2
2
 
3
+ ### 4.17.8.0
4
+
5
+ - Officially Support SWT FileDialog with the `file_dialog` keyword (was unofficially supported before via standard SWT)
6
+ - Officially Support SWT DirectoryDialog with the `directory_dialog` keyword (was unofficially supported before via standard SWT)
7
+ - Hello, File Dialog! Sample
8
+ - Hello, Directory Dialog! Sample
9
+ - Prevent tree items data-binding from updating if no tree data change occurred
10
+ - Performance optimization for `code_text` syntax highlighting through caching
11
+
3
12
  ### 4.17.7.0
4
13
 
5
14
  - `checkbox_group` built-in custom widget
@@ -138,7 +147,7 @@
138
147
 
139
148
  - Add User Profile sample from DZone article
140
149
  - Colored Ruby syntax highlighting for sample:code and sample:run tasks courtesy of tty-markdown
141
- - Support `check` as alias to `checkbox` DSL keyword for Button widget with :check style.
150
+ - Support `check` as alias to `checkbox` DSL keyword for Button widget with :check style.
142
151
  - Validate scaffolded custom shell gem name to ensure it doesn't clash with a built in Ruby method
143
152
  - GLIMMER_LOGGER_ASYNC env var for disabling async logging when needed for immediate troubleshooting purposes
144
153
  - Fix issue with table equivalent sort edge case (that is two sorts that are equivalent causing an infinite loop of resorting since the table is not correctly identified as sorted already)
@@ -337,7 +346,7 @@
337
346
  ## 0.1.3
338
347
 
339
348
  - Added 'org.eclipse.swt.dnd' to glimmer auto-included Java packages
340
- - Updated Tic Tac Toe sample to use new `message_box` keyword
349
+ - Updated Tic Tac Toe sample to use new `message_box` keyword
341
350
  - Add DragSource and DropTarget transfer expression that takes a symbol or symbol array representing one or more of the following: FileTransfer, HTMLTransfer, ImageTransfer, RTFTransfer, TextTransfer, URLTransfer
342
351
  - Set default style DND::DROP_COPY in DragSource and DropTarget widgets
343
352
  - Support Glimmer::SWT::DNDProxy for handling Drop & Drop styles
@@ -357,4 +366,4 @@
357
366
 
358
367
  ## 0.1.0
359
368
 
360
- - Extracted Glimmer DSL for SWT (glimmer-dsl-swt gem) from Glimmer
369
+ - Extracted Glimmer DSL for SWT (glimmer-dsl-swt gem) from Glimmer
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # [<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer/master/images/glimmer-logo-hi-res.png" height=85 />](https://github.com/AndyObtiva/glimmer) Glimmer DSL for SWT 4.17.7.0
1
+ # [<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer/master/images/glimmer-logo-hi-res.png" height=85 />](https://github.com/AndyObtiva/glimmer) Glimmer DSL for SWT 4.17.8.0
2
2
  ## JRuby Desktop Development GUI Library
3
3
  [![Gem Version](https://badge.fury.io/rb/glimmer-dsl-swt.svg)](http://badge.fury.io/rb/glimmer-dsl-swt)
4
4
  [![Travis CI](https://travis-ci.com/AndyObtiva/glimmer-dsl-swt.svg?branch=master)](https://travis-ci.com/github/AndyObtiva/glimmer-dsl-swt)
@@ -18,7 +18,7 @@ Gem version numbers are in sync with the SWT library versions. The first two dig
18
18
 
19
19
  [Glimmer DSL for SWT](https://rubygems.org/gems/glimmer-dsl-swt) versions 4.17.x.y come with [SWT 4.17](https://download.eclipse.org/eclipse/downloads/drops4/R-4.17-202009021800/), which was released on September 2, 2020.
20
20
 
21
- [<img src="https://covers.oreillystatic.com/images/9780596519650/lrg.jpg" width=105 /><br />
21
+ [<img src="https://covers.oreillystatic.com/images/9780596519650/lrg.jpg" width=105 /><br />
22
22
  Featured in<br />JRuby Cookbook](http://shop.oreilly.com/product/9780596519650.do)
23
23
 
24
24
  Glimmer DSL gems:
@@ -434,7 +434,7 @@ Otherwise, Option 2 ([Bundler](#option-2-bundler)) can be followed in rare cases
434
434
 
435
435
  Note: if you encounter any [issues](https://github.com/AndyObtiva/glimmer-dsl-swt/issues), please [report](https://github.com/AndyObtiva/glimmer-dsl-swt/issues) and then install a previous version instead from the list of [Glimmer Releases](https://rubygems.org/gems/glimmer-dsl-swt/versions).
436
436
 
437
- ### Option 1: Direct Install
437
+ ### Option 1: Direct Install
438
438
  (Use for [Scaffolding](#scaffolding))
439
439
 
440
440
  Run this command to install directly:
@@ -444,10 +444,10 @@ jgem install glimmer-dsl-swt
444
444
 
445
445
  Or this command if you want a specific version:
446
446
  ```
447
- jgem install glimmer-dsl-swt -v 4.17.7.0
447
+ jgem install glimmer-dsl-swt -v 4.17.8.0
448
448
  ```
449
449
 
450
- `jgem` is JRuby's version of `gem` command.
450
+ `jgem` is JRuby's version of `gem` command.
451
451
  RVM allows running `gem install` directly as an alias.
452
452
  Otherwise, you may also run `jruby -S gem install ...`
453
453
 
@@ -457,7 +457,7 @@ Otherwise, if you are ready to build a Glimmer app, you can jump to the [Glimmer
457
457
 
458
458
  Note: if you're using activerecord or activesupport, keep in mind that Glimmer unhooks ActiveSupport::Dependencies as it does not rely on it.
459
459
 
460
- ### Option 2: Bundler
460
+ ### Option 2: Bundler
461
461
  (Use for Manual App Creation)
462
462
 
463
463
  Add the following to `Gemfile`:
@@ -484,7 +484,7 @@ You can bring up usage instructions by running the `glimmer` command without arg
484
484
  glimmer
485
485
  ```
486
486
 
487
- On Mac and Linux, it additionally brings up a TUI (Text-based User Interface) for interactive navigation and execution of Glimmer tasks (courtesy of [rake-tui](https://github.com/AndyObtiva/rake-tui)).
487
+ On Mac and Linux, it additionally brings up a TUI (Text-based User Interface) for interactive navigation and execution of Glimmer tasks (courtesy of [rake-tui](https://github.com/AndyObtiva/rake-tui)).
488
488
 
489
489
  On Windows, it simply lists the available Glimmer tasks at the end (courtsey of [rake](https://github.com/ruby/rake)).
490
490
 
@@ -520,13 +520,13 @@ bin/glimmer samples
520
520
  Below are the full usage instructions that come up when running `glimmer` without args.
521
521
 
522
522
  ```
523
- Glimmer (Ruby Desktop Development GUI Library) - JRuby Gem: glimmer-dsl-swt v4.17.7.0
523
+ Glimmer (Ruby Desktop Development GUI Library) - JRuby Gem: glimmer-dsl-swt v4.17.8.0
524
524
 
525
525
  Usage: glimmer [--bundler] [--pd] [--quiet] [--debug] [--log-level=VALUE] [[ENV_VAR=VALUE]...] [[-jruby-option]...] (application.rb or task[task_args]) [[application2.rb]...]
526
526
 
527
- Runs Glimmer applications and tasks.
527
+ Runs Glimmer applications and tasks.
528
528
 
529
- When applications are specified, they are run using JRuby,
529
+ When applications are specified, they are run using JRuby,
530
530
  automatically preloading the glimmer Ruby gem and SWT jar dependency.
531
531
 
532
532
  Optionally, extra Glimmer options, JRuby options, and/or environment variables may be passed in.
@@ -549,11 +549,11 @@ Select a Glimmer task to run: (Press ↑/↓ arrow to move, Enter to select and
549
549
  glimmer package[type] # Package app for distribution (generating config, jar, and native files) (type is optional)
550
550
  glimmer package:clean # Clean by removing "dist" and "packages" directories
551
551
  glimmer package:config # Generate JAR config file
552
- glimmer package:gemspec # Generate gemspec
552
+ glimmer package:gemspec # Generate gemspec
553
553
  glimmer package:jar # Generate JAR file
554
554
  glimmer package:lock_jars # Lock JARs
555
555
  glimmer package:native[type] # Generate Native files
556
- glimmer run[app_path] # Runs Glimmer app or custom shell gem in the current directory, unless app_path is specified, then runs it instead (app_path is optional)
556
+ glimmer run[app_path] # Runs Glimmer app or custom shell gem in the current directory, unless app_path is specified, then runs it instead (app_path is optional)
557
557
  glimmer samples # Brings up the Glimmer Meta-Sample app to allow browsing, running, and viewing code of Glimmer samples
558
558
  glimmer scaffold[app_name] # Scaffold Glimmer application directory structure to build a new app
559
559
  glimmer scaffold:customshell[name,namespace] # Scaffold Glimmer::UI::CustomShell subclass (full window view) under app/views (namespace is optional) [alt: scaffold:cs]
@@ -593,10 +593,10 @@ This brings up the [Glimmer Meta-Sample (The Sample of Samples)](#samples):
593
593
  Glimmer borrows from Rails the idea of Scaffolding, that is generating a structure for your app files that
594
594
  helps you get started just like true building scaffolding helps construction workers, civil engineers, and architects.
595
595
 
596
- Glimmer scaffolding goes beyond just scaffolding the app files that Rails does. It also packages it and launches it,
596
+ Glimmer scaffolding goes beyond just scaffolding the app files that Rails does. It also packages it and launches it,
597
597
  getting you to a running and delivered state of an advanced "Hello, World!" Glimmer application right off the bat.
598
598
 
599
- This should greatly facilitate building a new Glimmer app by helping you be productive and focus on app details while
599
+ This should greatly facilitate building a new Glimmer app by helping you be productive and focus on app details while
600
600
  letting Glimmer scaffolding take care of initial app file structure concerns, such as adding:
601
601
  - Main application class that includes Glimmer (`app/{app_name}.rb`)
602
602
  - Main application view that houses main window content, menu, about dialog, and preferences dialog
@@ -611,7 +611,7 @@ You need to have your Git `user.name` and `github.user` configured before scaffo
611
611
 
612
612
  #### App
613
613
 
614
- Before you start, make sure you are in a JRuby environment with Glimmer gem installed as per "Direct Install" pre-requisites.
614
+ Before you start, make sure you are in a JRuby environment with Glimmer gem installed as per "Direct Install" pre-requisites.
615
615
 
616
616
  To scaffold a Glimmer app from scratch, run the following command:
617
617
 
@@ -705,7 +705,7 @@ The app even remembers your cookies if you log into the website, close the app,
705
705
 
706
706
  Note that on Linux, the default SWT browser, which runs on webkit, does not support HTML5 Video out of the box. If you need video support, open `Gemfile` after scaffolding and enable the line that has the `glimmer-cw-browser-chromium` gem then replace the `browser` in "app/views/snowboard_utah/app_view.rb" with `browser(:chromium)`
707
707
 
708
- Before you start, make sure you are in a JRuby environment with Glimmer gem installed as per "Direct Install" pre-requisites.
708
+ Before you start, make sure you are in a JRuby environment with Glimmer gem installed as per "Direct Install" pre-requisites.
709
709
 
710
710
  To scaffold a Glimmer desktopify app from scratch, run the following command:
711
711
 
@@ -820,8 +820,8 @@ glimmer scaffold:cw[name]
820
820
 
821
821
  #### Custom Shell Gem
822
822
 
823
- Custom shell gems are self-contained Glimmer apps as well as reusable custom shells.
824
- They have everything scaffolded Glimmer apps come with in addition to gem content like a [Juwelier](https://rubygems.org/gems/juwelier) Rakefile that can build gemspec and release gems.
823
+ Custom shell gems are self-contained Glimmer apps as well as reusable custom shells.
824
+ They have everything scaffolded Glimmer apps come with in addition to gem content like a [Juwelier](https://rubygems.org/gems/juwelier) Rakefile that can build gemspec and release gems.
825
825
  Unlike scaffolded Glimmer apps, custom shell gem content lives under the `lib` directory (not `app`).
826
826
  They can be packaged as both a native executable (e.g. Mac DMG/PKG/APP) and a Ruby gem.
827
827
  Of course, you can just build a Ruby gem and disregard native executable packaging if you do not need it.
@@ -848,7 +848,7 @@ Since custom shell gems are both an app and a gem, they provide two ways to run:
848
848
  - Run the `glimmer` command and pass it the generated script under the `bin` directory that matches the gem name (e.g. run `glimmer bin/glimmer-cs-calculator`)
849
849
  - Run the executable shell script that ships with the gem directly (does not need the `glimmer` command). It intentionally has a shorter name for convenience since it is meant to be used on the command line (not in a package), so you can leave out the `glimmer-cs-` prefix (e.g. run `bin/calculator` directly). This is also used as the main way of running custom shell gems on Linux.
850
850
 
851
- Examples:
851
+ Examples:
852
852
 
853
853
  - [glimmer-cs-gladiator](https://github.com/AndyObtiva/glimmer-cs-gladiator): Gladiator (Glimmer Editor)
854
854
  - [glimmer-cs-calculator](https://github.com/AndyObtiva/glimmer-cs-calculator): Glimmer Calculator
@@ -874,7 +874,7 @@ The Ruby gem name will follow the convention "glimmer-cw-customwidgetname-namesp
874
874
 
875
875
  Only official Glimmer gems created by the Glimmer project committers will have no namespace (e.g. [glimmer-cw-video](https://rubygems.org/gems/glimmer-cw-video) Ruby gem)
876
876
 
877
- Examples:
877
+ Examples:
878
878
 
879
879
  - [glimmer-cw-video](https://github.com/AndyObtiva/glimmer-cw-video): Video Widget
880
880
  - [glimmer-cw-cdatetime-nebula](https://github.com/AndyObtiva/glimmer-cw-cdatetime-nebula): Nebula CDateTime Widget
@@ -909,11 +909,11 @@ Output:
909
909
 
910
910
  Glimmer Custom Shell Gems at rubygems.org:
911
911
 
912
- Name Gem Version Author Description
912
+ Name Gem Version Author Description
913
913
 
914
- Calculator glimmer-cs-calculator 1.0.2 Andy Maleh Calculator - Glimmer Custom Shell
915
- Gladiator glimmer-cs-gladiator 0.2.4 Andy Maleh Gladiator (Glimmer Editor) - Glimmer Custom Shell
916
- Timer glimmer-cs-timer 1.0.0 Andy Maleh Timer - Glimmer Custom Shell
914
+ Calculator glimmer-cs-calculator 1.0.2 Andy Maleh Calculator - Glimmer Custom Shell
915
+ Gladiator glimmer-cs-gladiator 0.2.4 Andy Maleh Gladiator (Glimmer Editor) - Glimmer Custom Shell
916
+ Timer glimmer-cs-timer 1.0.0 Andy Maleh Timer - Glimmer Custom Shell
917
917
 
918
918
  ```
919
919
 
@@ -945,9 +945,9 @@ Output:
945
945
 
946
946
  Glimmer Custom Widget Gems matching [video] at rubygems.org:
947
947
 
948
- Name Gem Version Author Description
948
+ Name Gem Version Author Description
949
949
 
950
- Video glimmer-cw-video 1.0.0 Andy Maleh Glimmer Custom Widget - Video
950
+ Video glimmer-cw-video 1.0.0 Andy Maleh Glimmer Custom Widget - Video
951
951
 
952
952
  ```
953
953
 
@@ -965,11 +965,11 @@ Output:
965
965
 
966
966
  Glimmer Custom Widget Gems at rubygems.org:
967
967
 
968
- Name Gem Version Author Description
968
+ Name Gem Version Author Description
969
969
 
970
- Browser (Chromium) glimmer-cw-browser-chromium 1.0.0 Andy Maleh Chromium Browser - Glimmer Custom Widget
971
- Cdatetime (Nebula) glimmer-cw-cdatetime-nebula 1.5.0.0.1 Andy Maleh Nebula CDateTime Widget - Glimmer Custom Widget
972
- Video glimmer-cw-video 1.0.0 Andy Maleh Glimmer Custom Widget - Video
970
+ Browser (Chromium) glimmer-cw-browser-chromium 1.0.0 Andy Maleh Chromium Browser - Glimmer Custom Widget
971
+ Cdatetime (Nebula) glimmer-cw-cdatetime-nebula 1.5.0.0.1 Andy Maleh Nebula CDateTime Widget - Glimmer Custom Widget
972
+ Video glimmer-cw-video 1.0.0 Andy Maleh Glimmer Custom Widget - Video
973
973
 
974
974
  ```
975
975
 
@@ -993,13 +993,13 @@ Output:
993
993
 
994
994
  Glimmer DSL Gems at rubygems.org:
995
995
 
996
- Name Gem Version Author Description
996
+ Name Gem Version Author Description
997
997
 
998
- Css glimmer-dsl-css 1.1.0 AndyMaleh Glimmer DSL for CSS
999
- Opal glimmer-dsl-opal 0.4.0 AndyMaleh Glimmer DSL for Opal
1000
- Swt glimmer-dsl-swt 4.17.7.0 AndyMaleh Glimmer DSL for SWT
1001
- Tk glimmer-dsl-tk 0.0.6 AndyMaleh Glimmer DSL for Tk
1002
- Xml glimmer-dsl-xml 1.1.0 AndyMaleh Glimmer DSL for XML
998
+ Css glimmer-dsl-css 1.1.0 AndyMaleh Glimmer DSL for CSS
999
+ Opal glimmer-dsl-opal 0.4.0 AndyMaleh Glimmer DSL for Opal
1000
+ Swt glimmer-dsl-swt 4.17.8.0 AndyMaleh Glimmer DSL for SWT
1001
+ Tk glimmer-dsl-tk 0.0.6 AndyMaleh Glimmer DSL for Tk
1002
+ Xml glimmer-dsl-xml 1.1.0 AndyMaleh Glimmer DSL for XML
1003
1003
  ```
1004
1004
 
1005
1005
  ### Packaging
@@ -1142,7 +1142,7 @@ Static keywords are pre-identified keywords in the Glimmer DSL, such as `shell`,
1142
1142
 
1143
1143
  Dynamic keywords are dynamically figured out from currently imported (aka required/loaded) SWT widgets and custom widgets. Examples are: `label`, `combo`, and `list` for SWT widgets and `c_date_time`, `video`, and `gantt_chart` for custom widgets.
1144
1144
 
1145
- The only reason to distinguish between the two is to realize that importing new Glimmer [custom widgets](#custom-widgets) and Java SWT custom widget libraries automatically expands Glimmer's DSL vocabulary with new dynamic keywords.
1145
+ The only reason to distinguish between the two is to realize that importing new Glimmer [custom widgets](#custom-widgets) and Java SWT custom widget libraries automatically expands Glimmer's DSL vocabulary with new dynamic keywords.
1146
1146
 
1147
1147
  For example, if a project adds this custom Java SWT library from the [Nebula Project](https://www.eclipse.org/nebula/):
1148
1148
 
@@ -1394,10 +1394,10 @@ message_box {
1394
1394
 
1395
1395
  #### Display
1396
1396
 
1397
- The SWT `Display` class is a singleton in Glimmer. It is used in SWT to represent your display device, allowing you to manage GUI globally
1397
+ The SWT `Display` class is a singleton in Glimmer. It is used in SWT to represent your display device, allowing you to manage GUI globally
1398
1398
  and access available monitors. Additionally, it is responsible for the SWT event loop, which runs on the first thread the Glimmer application starts on. In multi-threaded programming, `Display` provides the methods `async_exec` and `sync_exec` to enable enqueuing GUI changes asynchronously or synchronously from threads other than the main (first) thread since direct GUI changes are forbidden from other threads by design.
1399
1399
 
1400
- `Display` is automatically instantiated upon first instantiation of a `shell` widget.
1400
+ `Display` is automatically instantiated upon first instantiation of a `shell` widget.
1401
1401
 
1402
1402
  Alternatively, for advanced use cases, a `Display` can be created explicitly with the Glimmer `display` keyword. When a `shell` is later declared, it
1403
1403
  automatically uses the `display` created earlier without having to explicitly hook it.
@@ -1413,7 +1413,7 @@ automatically uses the `display` created earlier without having to explicitly ho
1413
1413
  @shell = shell { # uses display created above
1414
1414
  }
1415
1415
  ```
1416
- The benefit of instantiating an SWT Display explicitly is to set [Properties](#widget-properties) or [Observers](#observer).
1416
+ The benefit of instantiating an SWT Display explicitly is to set [Properties](#widget-properties) or [Observers](#observer).
1417
1417
  Although SWT Display is not technically a widget, it has similar APIs and DSL support.
1418
1418
 
1419
1419
  #### Multi-Threading
@@ -1635,8 +1635,8 @@ https://help.eclipse.org/2019-12/nftopic/org.eclipse.platform.doc.isv/reference/
1635
1635
 
1636
1636
  When building a widget-related SWT object manually (e.g. `GridData.new(...)`), you are expected to use `SWT::CONSTANT` directly or BIT-OR a few SWT constants together like `SWT::BORDER | SWT::V_SCROLL`.
1637
1637
 
1638
- Glimmer facilitates that with `swt` keyword by allowing you to pass multiple styles as an argument array of symbols instead of dealing with BIT-OR.
1639
- Example:
1638
+ Glimmer facilitates that with `swt` keyword by allowing you to pass multiple styles as an argument array of symbols instead of dealing with BIT-OR.
1639
+ Example:
1640
1640
 
1641
1641
  ```ruby
1642
1642
  style = swt(:border, :v_scroll)
@@ -1644,7 +1644,7 @@ style = swt(:border, :v_scroll)
1644
1644
 
1645
1645
  #### Negative SWT Style Bits
1646
1646
 
1647
- In rare occasions, you might need to apply & with a negative (not) style bit to negate it from another style bit that includes it.
1647
+ In rare occasions, you might need to apply & with a negative (not) style bit to negate it from another style bit that includes it.
1648
1648
  Glimmer facilitates that by declaring the negative style bit via postfixing a symbol with `!`.
1649
1649
 
1650
1650
  Example:
@@ -1653,13 +1653,13 @@ Example:
1653
1653
  style = swt(:shell_trim, :max!) # creates a shell trim style without the maximize button (negated)
1654
1654
  ```
1655
1655
 
1656
- #### Extra SWT Styles
1656
+ #### Extra SWT Styles
1657
1657
 
1658
1658
  ##### Non-resizable Window
1659
1659
 
1660
1660
  SWT Shell widget by default is resizable. To make it non-resizable, one must pass a complicated style bit concoction like `swt(:shell_trim, :resize!, :max!)`.
1661
1661
 
1662
- Glimmer makes this easier by alternatively offering a `:no_resize` extra SWT style, added for convenience.
1662
+ Glimmer makes this easier by alternatively offering a `:no_resize` extra SWT style, added for convenience.
1663
1663
  This makes declaring a non-resizable window as easy as:
1664
1664
 
1665
1665
  ```ruby
@@ -1822,7 +1822,7 @@ Example:
1822
1822
 
1823
1823
  ```ruby
1824
1824
  shell {
1825
- minimum_size 128, 128
1825
+ minimum_size 128, 128
1826
1826
  cursor :appstarting
1827
1827
  }
1828
1828
  ```
@@ -2211,7 +2211,7 @@ It assumes you have defined the table columns via `table_column` widget.
2211
2211
  Example:
2212
2212
 
2213
2213
  ```ruby
2214
- shell {
2214
+ shell {
2215
2215
  @table = table {
2216
2216
  table_column {
2217
2217
  text "Name"
@@ -2229,13 +2229,13 @@ shell {
2229
2229
  selection bind(group, :selected_person)
2230
2230
  on_mouse_up { |event|
2231
2231
  @table.edit_table_item(event.table_item, event.column_index)
2232
- }
2232
+ }
2233
2233
  }
2234
2234
  }
2235
2235
  ```
2236
2236
 
2237
2237
  The code above includes two data-bindings:
2238
- - Table `items`, which first bind to the model collection property (group.people), and then maps each column property (name, age, adult) for displaying each table item column.
2238
+ - Table `items`, which first bind to the model collection property (group.people), and then maps each column property (name, age, adult) for displaying each table item column.
2239
2239
  - Table `selection`, which binds the single table item selected by the user to the attribute denoted by the `bind` keyword (or binds multiple table items selected for a table with `:multi` SWT style)
2240
2240
  - The `on_mouse_up` event handler invokes `@table.edit_table_item(event.table_item, event.column_index)` to start edit mode on the clicked table item cell, and then saves or cancel depending on whether the user hits ENTER or ESC once done editing (or focus-out after either making a change or not making any changes.)
2241
2241
 
@@ -2252,16 +2252,16 @@ found_array = @table.search { |table_item| table_item.getData == company.owner }
2252
2252
 
2253
2253
  This finds a person. The array is a Java array. This enables easy passing of it to SWT `Table#setSelection` method, which expects a Java array of `TableItem` objects.
2254
2254
 
2255
- To edit a table, you must invoke `TableProxy#edit_selected_table_item(column_index, before_write: nil, after_write: nil, after_cancel: nil)` or `TableProxy#edit_table_item(table_item, column_index, before_write: nil, after_write: nil, after_cancel: nil)`.
2256
- This automatically leverages the SWT TableEditor custom class behind the scenes, displaying a text widget to the user to change the selected or
2257
- passed table item text into something else.
2255
+ To edit a table, you must invoke `TableProxy#edit_selected_table_item(column_index, before_write: nil, after_write: nil, after_cancel: nil)` or `TableProxy#edit_table_item(table_item, column_index, before_write: nil, after_write: nil, after_cancel: nil)`.
2256
+ This automatically leverages the SWT TableEditor custom class behind the scenes, displaying a text widget to the user to change the selected or
2257
+ passed table item text into something else.
2258
2258
  It automatically persists the change to `items` data-bound model on ENTER/FOCUS-OUT or cancels on ESC/NO-CHANGE.
2259
2259
 
2260
2260
  ##### Table Sorting
2261
2261
 
2262
- Glimmer automatically adds sorting support to the SWT `Table` widget.
2262
+ Glimmer automatically adds sorting support to the SWT `Table` widget.
2263
2263
 
2264
- Check out the [Contact Manager](#contact-manager) sample for an example.
2264
+ Check out the [Contact Manager](#contact-manager) sample for an example.
2265
2265
  You may click on any column and it will sort by ascending order first and descending if you click again.
2266
2266
 
2267
2267
  Glimmer automatic table sorting supports `String`, `Integer`, and `Float` columns out of the box as well as any column data that is comparable.
@@ -2269,7 +2269,7 @@ Glimmer automatic table sorting supports `String`, `Integer`, and `Float` column
2269
2269
  In cases where data is nil, depending on the data-type, it is automatically converted to `Float` with `to_f`, `Integer` with `to_i`, or `String` with `to_s`.
2270
2270
 
2271
2271
  Should you have a special data type that could not be compared automatically, Glimmer offers the following 3 alternatives for custom sorting:
2272
- - `sort_property`: this may be set to an alternative property to the one data-bound to the table column. For example, a table column called 'adult', which returns `true` or `false` may be sorted with `sort_property :dob` instead. This also support multi-property (aka multi-column) sorting (e.g. `sort_property :dob, :name`).
2272
+ - `sort_property`: this may be set to an alternative property to the one data-bound to the table column. For example, a table column called 'adult', which returns `true` or `false` may be sorted with `sort_property :dob` instead. This also support multi-property (aka multi-column) sorting (e.g. `sort_property :dob, :name`).
2273
2273
  - `sort_by(&block)`: this works just like Ruby `Enumerable` `sort_by`. The block receives the table column data as argument.
2274
2274
  - `sort(&comparator)`: this works just like Ruby `Enumerable` `sort`. The comparator block receives two objects from the table column data.
2275
2275
 
@@ -2329,7 +2329,7 @@ This involves using the `bind` keyword mentioned above in addition to a special
2329
2329
  Example:
2330
2330
 
2331
2331
  ```ruby
2332
- shell {
2332
+ shell {
2333
2333
  @tree = tree {
2334
2334
  items bind(company, :owner), tree_properties(children: :coworkers, text: :name)
2335
2335
  selection bind(company, :selected_coworker)
@@ -2338,7 +2338,7 @@ shell {
2338
2338
  ```
2339
2339
 
2340
2340
  The code above includes two data-bindings:
2341
- - Tree `items`, which first bind to the root node (company.owner), and then dig down via `coworkers` `children` method, using the `name` `text` attribute for displaying each tree item.
2341
+ - Tree `items`, which first bind to the root node (company.owner), and then dig down via `coworkers` `children` method, using the `name` `text` attribute for displaying each tree item.
2342
2342
  - Tree `selection`, which binds the single tree item selected by the user to the attribute denoted by the `bind` keyword
2343
2343
 
2344
2344
  Additionally, Tree `items` data-binding automatically stores each node model unto the SWT TreeItem object via `setData` method. This enables things like searchability.
@@ -2392,7 +2392,7 @@ Let's revisit the Tic Tac Toe example shown near the beginning of the page:
2392
2392
  shell {
2393
2393
  text "Tic-Tac-Toe"
2394
2394
  minimum_size 150, 178
2395
- composite {
2395
+ composite {
2396
2396
  grid_layout 3, true
2397
2397
  (1..3).each { |row|
2398
2398
  (1..3).each { |column|
@@ -2442,7 +2442,7 @@ shell {
2442
2442
  @button1.swt_widget.setVisible(false)
2443
2443
  }
2444
2444
  on_widget_selected {
2445
- @button1.swt_widget.setVisible(true)
2445
+ @button1.swt_widget.setVisible(true)
2446
2446
  }
2447
2447
  }
2448
2448
  }.open
@@ -2464,7 +2464,7 @@ Example (you may copy/paste in [`girb`](#girb-glimmer-irb-command)):
2464
2464
  }
2465
2465
  @shell.on_shell_iconified {
2466
2466
  @shell.close
2467
- }
2467
+ }
2468
2468
  @shell.open
2469
2469
  ```
2470
2470
 
@@ -2586,7 +2586,7 @@ Usage:
2586
2586
  ```ruby
2587
2587
  shell {
2588
2588
  red_label(:center) {
2589
- text 'Red Label'
2589
+ text 'Red Label'
2590
2590
  foreground :green
2591
2591
  }
2592
2592
  }.open
@@ -2653,7 +2653,7 @@ Additionally, custom widgets can call the following class methods:
2653
2653
  - `::options(*option_names)`: declares a list of options by taking an option name array (symbols/strings). This generates option attribute accessors (e.g. `options :orientation, :bg_color` generates `#orientation`, `#orientation=(v)`, `#bg_color`, and `#bg_color=(v)` attribute accessors)
2654
2654
  - `::option(option_name, default: nil)`: declares a single option taking option name and default value as arguments (also generates attribute accessors just like `::options`)
2655
2655
 
2656
- #### Content/Options Example
2656
+ #### Content/Options Example
2657
2657
 
2658
2658
  (you may copy/paste in [`girb`](#girb-glimmer-irb-command))
2659
2659
 
@@ -2785,7 +2785,7 @@ shell { |app_shell|
2785
2785
  app_shell.hide
2786
2786
  @wizard_steps[@current_step_number - 1].open
2787
2787
  end
2788
- }
2788
+ }
2789
2789
  }
2790
2790
  }
2791
2791
  button {
@@ -3154,7 +3154,7 @@ To use, simply use `code_text` in place of `text` or `styled_text` widget. If yo
3154
3154
 
3155
3155
  [![Video Widget](images/glimmer-video-widget.png)](https://github.com/AndyObtiva/glimmer-cw-video)
3156
3156
 
3157
- Glimmer supports a [video custom widget](https://github.com/AndyObtiva/glimmer-cw-video) not in SWT.
3157
+ Glimmer supports a [video custom widget](https://github.com/AndyObtiva/glimmer-cw-video) not in SWT.
3158
3158
 
3159
3159
  You may obtain via `glimmer-cw-video` gem.
3160
3160
 
@@ -3257,7 +3257,7 @@ Glimmer configuration may be done via the `Glimmer::Config` module.
3257
3257
  ### logger
3258
3258
 
3259
3259
  The Glimmer DSL engine supports logging via a standard `STDOUT` Ruby `Logger` configured in the `Glimmer::Config.logger` config option.
3260
- It is set to level Logger::ERROR by default.
3260
+ It is set to level Logger::ERROR by default.
3261
3261
  Log level may be adjusted via `Glimmer::Config.logger.level` just like any other Ruby Logger.
3262
3262
 
3263
3263
  Example:
@@ -3299,13 +3299,13 @@ This is an array of these possible values: `:stdout` (default), `:stderr`, `:fil
3299
3299
 
3300
3300
  It defaults to `[:stdout, :syslog]`
3301
3301
 
3302
- When `:file` is included, Glimmer creates a 'log' directory directly below the Glimmer app local directory.
3302
+ When `:file` is included, Glimmer creates a 'log' directory directly below the Glimmer app local directory.
3303
3303
  It may also be customized further via the `logging_device_file_options` option.
3304
3304
  This is useful on Windows as an alternative to `syslog`, which is not available on Windows by default.
3305
3305
 
3306
3306
  #### logging_device_file_options
3307
3307
 
3308
- This is a hash of [`logging`](https://github.com/TwP/logging) gem options for the `:file` logging device.
3308
+ This is a hash of [`logging`](https://github.com/TwP/logging) gem options for the `:file` logging device.
3309
3309
 
3310
3310
  Default: `{size: 1_000_000, age: 'daily', roll_by: 'number'}`
3311
3311
 
@@ -3323,7 +3323,7 @@ That ensures asynchronous buffered logging that is flushed every 500 messages an
3323
3323
 
3324
3324
  This is a [`logging`](https://github.com/TwP/logging) gem layout that formats the logging output.
3325
3325
 
3326
- Default:
3326
+ Default:
3327
3327
 
3328
3328
  ```
3329
3329
  Logging.layouts.pattern(
@@ -3383,8 +3383,8 @@ https://github.com/jruby/jruby/wiki/CallingJavaFromJRuby
3383
3383
 
3384
3384
  ### loop_max_count
3385
3385
 
3386
- Glimmer has infinite loop detection support.
3387
- It can detect when an infinite loop is about to occur in method_missing and stops it.
3386
+ Glimmer has infinite loop detection support.
3387
+ It can detect when an infinite loop is about to occur in method_missing and stops it.
3388
3388
  It detects potential infinite loops when the same keyword and args repeat more than 100 times, which is unusual in a GUI app.
3389
3389
 
3390
3390
  The max limit can be changed via the `Glimmer::Config::loop_max_count=(count)` config option.
@@ -3851,7 +3851,7 @@ Gladiator is a good demonstration of:
3851
3851
 
3852
3852
  The following production apps have been built with Glimmer.
3853
3853
 
3854
- If you have a Glimmer app you would like referenced here, please mention in a Pull Request.
3854
+ If you have a Glimmer app you would like referenced here, please mention in a Pull Request.
3855
3855
 
3856
3856
  ### Math Bowling
3857
3857
 
@@ -3899,11 +3899,11 @@ The Glimmer packaging process done in the `glimmer package` command consists of
3899
3899
  1. Generate JAR file using [Warbler](https://github.com/jruby/warbler) (`glimmer package:jar`): Enables bundling a Glimmer app into a JAR file under the `./dist` directory
3900
3900
  1. Generate native executable using [javapackager](https://docs.oracle.com/javase/8/docs/technotes/tools/unix/javapackager.html) (`glimmer package:native`): Enables packaging a JAR file as a DMG/PKG/APP file on Mac, MSI/EXE/APP on Windows, and DEB/RPM/APP on Linux (Glimmer does not officially support Linux with the `glimmer package` command yet, but it generates the JAR file successfully, and you could use `javapackager` manually afterwards if needed).
3901
3901
 
3902
- Those steps automatically ensure generating a JAR file under the `./dist` directory using [Warbler](https://github.com/jruby/warbler), which is then used to automatically generate a DMG/MSI file (and other executables) under the `./packages/bundles` directory using `javapackager`.
3902
+ Those steps automatically ensure generating a JAR file under the `./dist` directory using [Warbler](https://github.com/jruby/warbler), which is then used to automatically generate a DMG/MSI file (and other executables) under the `./packages/bundles` directory using `javapackager`.
3903
3903
  The JAR file name will match your application local directory name (e.g. `MathBowling.jar` for `~/code/MathBowling`)
3904
3904
  The DMG file name will match the humanized local directory name + dash + application version (e.g. `Math Bowling-1.0.dmg` for `~/code/MathBowling` with version 1.0 or unspecified)
3905
3905
 
3906
- The `glimmer package` command will automatically set "mac.CFBundleIdentifier" to ="org.#{project_name}.application.#{project_name}".
3906
+ The `glimmer package` command will automatically set "mac.CFBundleIdentifier" to ="org.#{project_name}.application.#{project_name}".
3907
3907
  You may override by configuring as an extra argument for javapackger (e.g. Glimmer::RakeTask::Package.javapackager_extra_args = " -Bmac.CFBundleIdentifier=org.andymaleh.application.MathBowling")
3908
3908
 
3909
3909
  ### Packaging Defaults
@@ -3955,9 +3955,9 @@ require 'glimmer/rake_task'
3955
3955
  Glimmer::RakeTask::Package.javapackager_extra_args = '-BlicenseType="MIT" -Bmac.category="public.app-category.business" -Bmac.signing-key-developer-id-app="Andy Maleh"'
3956
3956
  ```
3957
3957
 
3958
- Note that `mac.category` defaults to "public.app-category.business", but can be overridden with one of the category UTI values mentioned here:
3958
+ Note that `mac.category` defaults to "public.app-category.business", but can be overridden with one of the category UTI values mentioned here:
3959
3959
 
3960
- https://developer.apple.com/library/archive/releasenotes/General/SubmittingToMacAppStore/index.html#//apple_ref/doc/uid/TP40010572-CH16-SW8
3960
+ https://developer.apple.com/library/archive/releasenotes/General/SubmittingToMacAppStore/index.html#//apple_ref/doc/uid/TP40010572-CH16-SW8
3961
3961
 
3962
3962
  Example (env var):
3963
3963
 
@@ -3973,7 +3973,7 @@ Pass `-v` to javapackager in `Glimmer::RakeTask::Package.javapackager_extra_args
3973
3973
 
3974
3974
  ### Windows Application Packaging
3975
3975
 
3976
- Windows offers two options for setup packaging:
3976
+ Windows offers two options for setup packaging:
3977
3977
  - `msi` (recommended): simpler packaging option. Requires [WiX Toolset](https://wixtoolset.org/) and [.NET Framework](https://dotnet.microsoft.com/download/dotnet-framework). Simply run `glimmer package[msi]` (or `glimmer package:native[msi]` if it's not your first time) and it will give you more details on the pre-requisites you need to install (e.g. [WiX Toolset](https://wixtoolset.org/) and [.NET Framework 3.5 SP1](https://dotnet.microsoft.com/download/dotnet-framework/net35-sp1)).
3978
3978
  - `exe`: more advanced packaging option. Requires [Inno Setup](https://jrsoftware.org/isinfo.php). Simply run `glimmer package[exe]` (or `glimmer package:native[exe]` if it's not your first time) and it will tell you what you need to install.
3979
3979
 
@@ -4025,7 +4025,7 @@ Now, when you run `glimmer package`, it builds a self-signed DMG file. When you
4025
4025
 
4026
4026
  1. Specifying License File
4027
4027
 
4028
- The javapackager documentation states that a license file may be specified with "-BlicenseFile" javapackager option. However, in order for that to work, one must specify as a source file via "-srcfiles" javapackager option.
4028
+ The javapackager documentation states that a license file may be specified with "-BlicenseFile" javapackager option. However, in order for that to work, one must specify as a source file via "-srcfiles" javapackager option.
4029
4029
  Keep that in mind if you are not going to rely on the default `LICENSE.txt` support.
4030
4030
 
4031
4031
  Example:
@@ -4038,7 +4038,7 @@ Glimmer::RakeTask::Package.javapackager_extra_args = '-srcfiles "ACME.txt" -Blic
4038
4038
 
4039
4039
  If you run `glimmer package` multiple times, sometimes it leaves a mounted DMG project in your finder. Unmount before you run the command again or it might fail with an error saying: "Error: Bundler "DMG Installer" (dmg) failed to produce a bundle."
4040
4040
 
4041
- By the way, keep in mind that during normal operation, it does also indicate a false-negative while completing successfully similar to the following (please ignore):
4041
+ By the way, keep in mind that during normal operation, it does also indicate a false-negative while completing successfully similar to the following (please ignore):
4042
4042
 
4043
4043
  ```
4044
4044
  Exec failed with code 2 command [[/usr/bin/SetFile, -c, icnC, /var/folders/4_/g1sw__tx6mjdgyh3mky7vydc0000gp/T/fxbundler4076750801763032201/images/MathBowling/.VolumeIcon.icns] in unspecified directory
@@ -4065,7 +4065,7 @@ Here is a list of notable 3rd party gems used by Glimmer:
4065
4065
 
4066
4066
  ## Glimmer Process
4067
4067
 
4068
- [Glimmer Process](https://github.com/AndyObtiva/glimmer/blob/master/PROCESS.md) is the lightweight software development process used for building Glimmer libraries and Glimmer apps, which goes beyond Agile, rendering all Agile processes obsolete. [Glimmer Process](PROCESS.md) is simply made up of 7 guidelines to pick and choose as necessary until software development needs are satisfied.
4068
+ [Glimmer Process](https://github.com/AndyObtiva/glimmer/blob/master/PROCESS.md) is the lightweight software development process used for building Glimmer libraries and Glimmer apps, which goes beyond Agile, rendering all Agile processes obsolete. [Glimmer Process](PROCESS.md) is simply made up of 7 guidelines to pick and choose as necessary until software development needs are satisfied.
4069
4069
 
4070
4070
  Learn more by reading the [GPG](https://github.com/AndyObtiva/glimmer/blob/master/PROCESS.md) (Glimmer Process Guidelines)
4071
4071
 
@@ -4088,7 +4088,7 @@ You may submit [issues](https://github.com/AndyObtiva/glimmer-dsl-swt/issues) on
4088
4088
 
4089
4089
  ### Chat
4090
4090
 
4091
- If you need live help, try to [![Join the chat at https://gitter.im/AndyObtiva/glimmer](https://badges.gitter.im/AndyObtiva/glimmer.svg)](https://gitter.im/AndyObtiva/glimmer?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
4091
+ If you need live help, try to [![Join the chat at https://gitter.im/AndyObtiva/glimmer](https://badges.gitter.im/AndyObtiva/glimmer.svg)](https://gitter.im/AndyObtiva/glimmer?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
4092
4092
 
4093
4093
  ## Feature Suggestions
4094
4094
 
@@ -4135,8 +4135,8 @@ If your company would like to invest fulltime in further development of the Glim
4135
4135
 
4136
4136
  [MIT](LICENSE.txt)
4137
4137
 
4138
- Copyright (c) 2007-2020 - Andy Maleh.
4138
+ Copyright (c) 2007-2020 - Andy Maleh.
4139
4139
 
4140
4140
  --
4141
4141
 
4142
- [<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer/master/images/glimmer-logo-hi-res.png" height=40 />](https://github.com/AndyObtiva/glimmer) Built for [Glimmer](https://github.com/AndyObtiva/glimmer) (Ruby Desktop Development GUI Library).
4142
+ [<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer/master/images/glimmer-logo-hi-res.png" height=40 />](https://github.com/AndyObtiva/glimmer) Built for [Glimmer](https://github.com/AndyObtiva/glimmer) (Ruby Desktop Development GUI Library).