glimmer-dsl-swt 4.18.7.2 → 4.18.7.7

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: 91d53b49c974e0ce9b4f3d0a715ab59785d2b23fde0abe4bda5ad20de58e68a7
4
- data.tar.gz: db8c3d1030700bda5faed413c1719336e12e110fd65c154b5650d2b69e3d7eee
3
+ metadata.gz: 7ea8c8ccaf5bed68b086f7152510acf44d0ce50026d3d6ddc6d6f5a2bff9a75c
4
+ data.tar.gz: f492f57e327e40fe4995b1b38ba737cc7dce46f48c6955581514812c4b873a68
5
5
  SHA512:
6
- metadata.gz: 9630530911bcd671a335cef7a1911db6150382532d03b85cd8e6629d02c6d10c44e7901fe40ee48f114c73465c56efff53d13b984cf53393999a449e83c394ca
7
- data.tar.gz: 0d07793e4f0a79b75a1eaf073a39dad0af872c19e6c325bd9d4632ce3b9cf53f0735d1bf7e9a2a1e7a46a7d95ebe202e38626400c128cff78d88a5c15d0154a3
6
+ metadata.gz: d5d460f70cc1eadab8e75d973b264e0c98833ddac519065b9449abb74a43bea201b2d31b70e20904647cc56c006b604bdf85b5648865842b103ad3e5a6e57ebc
7
+ data.tar.gz: 2007bd5c63d1141670973bbe2fc6254dabea7f74695716e542aa39322f25f5badaefc2b3cdfd70d33114920bdc58e4f902efb9e51718a3c64d7611c3e6720140
data/CHANGELOG.md CHANGED
@@ -1,5 +1,36 @@
1
1
  # Change Log
2
2
 
3
+ ### 4.18.7.7
4
+
5
+ - Upgrade to glimmer v1.3.0
6
+ - Handle `code_text` encountering errors in adding observation request
7
+ - Always notify widget binding observer on `async_exec: true` data-bindings
8
+
9
+ ### 4.18.7.6
10
+
11
+ - Update the Hello, Code Text! sample to use data-binding
12
+ - Upgrade `puts_debuggerer` gem dependency to version 0.12.0
13
+ - Fix issue with `code_text` data-binding
14
+
15
+ ### 4.18.7.5
16
+
17
+ - Update `ImageProxy` with missing methods `#size`, `#parent_proxy`, and `#parent`, needed for a better "Shapes in an Image" support.
18
+
19
+ ### 4.18.7.4
20
+
21
+ - Add `glimmer scaffold:customshape[name,namespace]` command
22
+ - Add `glimmer scaffold:gem:customshape[name,namespace]` command
23
+ - Add `glimmer list:gems:customshape[keyword]` command
24
+ - Support automatic inference of `fill: true` for `path` just like other shapes
25
+ - Support `filled: true` alternative for `fill: true` Canvas Shape DSL option
26
+ - Fix issue with having to pass base_color to `bevel` custom shape in Tetris before data-binding instead of data-binding being sufficient
27
+
28
+ ### 4.18.7.3
29
+
30
+ - Support the ability for nested shapes to override their parent `shape` common shared properties
31
+ - Refactor Tetris to use a custom shape (`bevel`) for its blocks given they are used in both the game and the icon, thus achieving code reuse
32
+ - Fix issue with moving filled polygon (moving drawn polygon works)
33
+
3
34
  ### 4.18.7.2
4
35
 
5
36
  - Enable defining custom shapes with direct args just like basic shapes (alternative to using keyword arg options)
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.18.7.2
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.18.7.7
2
2
  ## JRuby Desktop Development GUI Framework
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)
@@ -8,12 +8,14 @@
8
8
 
9
9
  **[Contributors Wanted! (Submit a Glimmer App Sample to Get Started)](#contributing)**
10
10
 
11
- [Glimmer](https://github.com/AndyObtiva/glimmer) DSL for SWT is a native-GUI cross-platform desktop development library written in [JRuby](https://www.jruby.org/), an OS-threaded faster JVM version of [Ruby](https://www.ruby-lang.org/en/). [Glimmer](https://github.com/AndyObtiva/glimmer)'s main innovation is a declarative [Ruby DSL](docs/reference/GLIMMER_GUI_DSL_SYNTAX.md#glimmer-dsl-syntax) that enables productive and efficient authoring of desktop application user-interfaces by relying on the robust [Eclipse SWT library](https://www.eclipse.org/swt/). [Glimmer](https://rubygems.org/gems/glimmer) additionally innovates by having built-in [data-binding](docs/reference/GLIMMER_GUI_DSL_SYNTAX.md#data-binding) support, which greatly facilitates synchronizing the GUI with domain models, thus achieving true decoupling of object oriented components and enabling developers to solve business problems (test-first) without worrying about GUI concerns, or alternatively drive development GUI-first, and then write clean business models (test-first) afterwards. Not only does Glimmer provide a large set of GUI [widgets](docs/reference/GLIMMER_GUI_DSL_SYNTAX.md#widgets), but it also supports drawing Canvas Graphics like [Shapes](docs/reference/GLIMMER_GUI_DSL_SYNTAX.md#canvas-shape-dsl) and [Animations](docs/reference/GLIMMER_GUI_DSL_SYNTAX.md#canvas-animation-dsl). To get started quickly, [Glimmer](https://rubygems.org/gems/glimmer) offers [scaffolding](docs/reference/GLIMMER_COMMAND.md#scaffolding) options for [Apps](#in-production), [Gems](docs/reference/GLIMMER_COMMAND.md#custom-shell-gem), and [Custom Widgets](docs/reference/GLIMMER_GUI_DSL_SYNTAX.md#custom-widgets). [Glimmer](https://rubygems.org/gems/glimmer) also includes native-executable [packaging](docs/reference/GLIMMER_PACKAGING_AND_DISTRIBUTION.md) support, sorely lacking in other libraries, thus enabling the delivery of desktop apps written in [Ruby](https://www.ruby-lang.org/en/) as truly native DMG/PKG/APP files on the [Mac](https://www.apple.com/ca/macos) + [App Store](https://developer.apple.com/macos/distribution/), MSI/EXE files on [Windows](https://www.microsoft.com/en-ca/windows), and [Gem Packaged Shell Scripts](docs/reference/GLIMMER_COMMAND.md#packaging) on [Linux](https://www.linux.org/).
11
+ **(The Original Glimmer Library Handling the World’s Ruby GUI Needs Since 2007. Beware of Imitators!)**
12
+
13
+ [Glimmer](https://github.com/AndyObtiva/glimmer) DSL for SWT is a native-GUI cross-platform desktop development library written in [JRuby](https://www.jruby.org/), an OS-threaded faster JVM version of [Ruby](https://www.ruby-lang.org/en/). [Glimmer](https://github.com/AndyObtiva/glimmer) was the [first Ruby gem](https://rubygems.org/gems/glimmer) to bring [SWT](https://www.eclipse.org/swt/) (Standard Widget Toolkit) to [Ruby](https://www.ruby-lang.org/en/), thanks to its creator [Andy Maleh](https://andymaleh.blogspot.com/), an EclipseCon/EclipseWorld/RubyConf speaker and expert. [Glimmer](https://github.com/AndyObtiva/glimmer)'s main innovation is a declarative [Ruby DSL](docs/reference/GLIMMER_GUI_DSL_SYNTAX.md#glimmer-dsl-syntax) that enables productive and efficient authoring of desktop application user-interfaces by relying on the robust [Eclipse SWT library](https://www.eclipse.org/swt/). [Glimmer](https://rubygems.org/gems/glimmer) additionally innovates by having built-in [data-binding](docs/reference/GLIMMER_GUI_DSL_SYNTAX.md#data-binding) support, which greatly facilitates synchronizing the GUI with domain models, thus achieving true decoupling of object oriented components and enabling developers to solve business problems (test-first) without worrying about GUI concerns, or alternatively drive development GUI-first, and then write clean business models (test-first) afterwards. Not only does Glimmer provide a large set of GUI [widgets](docs/reference/GLIMMER_GUI_DSL_SYNTAX.md#widgets), but it also supports drawing Canvas Graphics like [Shapes](docs/reference/GLIMMER_GUI_DSL_SYNTAX.md#canvas-shape-dsl) and [Animations](docs/reference/GLIMMER_GUI_DSL_SYNTAX.md#canvas-animation-dsl). To get started quickly, [Glimmer](https://rubygems.org/gems/glimmer) offers [scaffolding](docs/reference/GLIMMER_COMMAND.md#scaffolding) options for [Apps](#in-production), [Gems](docs/reference/GLIMMER_COMMAND.md#custom-shell-gem), and [Custom Widgets](docs/reference/GLIMMER_GUI_DSL_SYNTAX.md#custom-widgets). [Glimmer](https://rubygems.org/gems/glimmer) also includes native-executable [packaging](docs/reference/GLIMMER_PACKAGING_AND_DISTRIBUTION.md) support, sorely lacking in other libraries, thus enabling the delivery of desktop apps written in [Ruby](https://www.ruby-lang.org/en/) as truly native DMG/PKG/APP files on the [Mac](https://www.apple.com/ca/macos) + [App Store](https://developer.apple.com/macos/distribution/), MSI/EXE files on [Windows](https://www.microsoft.com/en-ca/windows), and [Gem Packaged Shell Scripts](docs/reference/GLIMMER_COMMAND.md#packaging) on [Linux](https://www.linux.org/).
12
14
 
13
15
  [<img src="https://covers.oreillystatic.com/images/9780596519650/lrg.jpg" width=105 /><br />
14
16
  Featured in JRuby Cookbook](http://shop.oreilly.com/product/9780596519650.do) and [Chalmers/Gothenburg University Software Engineering Master's Lecture Material](http://www.cse.chalmers.se/~bergert/slides/guest_lecture_DSLs.pdf)
15
17
 
16
- [Glimmer DSL for SWT](https://rubygems.org/gems/glimmer-dsl-swt) 4.18.7.2 includes [SWT 4.18](https://download.eclipse.org/eclipse/downloads/drops4/R-4.18-202012021800/), which was released on December 2, 2020. Gem version numbers are in sync with the SWT library versions. The first two digits represent the SWT version number. The last two digits represent the minor and patch versions of Glimmer DSL for SWT.
18
+ [Glimmer DSL for SWT](https://rubygems.org/gems/glimmer-dsl-swt) 4.18.7.7 includes [SWT 4.18](https://download.eclipse.org/eclipse/downloads/drops4/R-4.18-202012021800/), which was released on December 2, 2020. Gem version numbers are in sync with the SWT library versions. The first two digits represent the SWT version number. The last two digits represent the minor and patch versions of Glimmer DSL for SWT.
17
19
 
18
20
  [Glimmer DSL for SWT receives two updates per month](https://rubygems.org/gems/glimmer-dsl-swt/versions). You can trust [Glimmer DSL for SWT](https://rubygems.org/gems/glimmer-dsl-swt) with your Ruby desktop GUI development needs! [Glimmer DSL for SWT](https://rubygems.org/gems/glimmer-dsl-swt) brings great ideas to the table, such as declarative programming via domain specific languages, currently under-utilized in the GUI domain. That said, it may not be feature complete enough for everybody's needs, so please help make [Glimmer DSL for SWT](https://rubygems.org/gems/glimmer-dsl-swt) even better by providing feedback and [contributing](#contributing) when possible. The project is very active, so any feature suggestions that are accepted could be implemented within weeks if not days. Also, you are welcome to [hire me](#hire-me) full-time if you want long-term development of [Glimmer DSL for SWT](https://rubygems.org/gems/glimmer-dsl-swt) for your project needs.
19
21
 
@@ -340,7 +342,7 @@ jgem install glimmer-dsl-swt
340
342
 
341
343
  Or this command if you want a specific version:
342
344
  ```
343
- jgem install glimmer-dsl-swt -v 4.18.7.2
345
+ jgem install glimmer-dsl-swt -v 4.18.7.7
344
346
  ```
345
347
 
346
348
  `jgem` is JRuby's version of `gem` command.
@@ -358,7 +360,7 @@ Note: if you're using activerecord or activesupport, keep in mind that Glimmer u
358
360
 
359
361
  Add the following to `Gemfile`:
360
362
  ```
361
- gem 'glimmer-dsl-swt', '~> 4.18.7.2'
363
+ gem 'glimmer-dsl-swt', '~> 4.18.7.7'
362
364
  ```
363
365
 
364
366
  And, then run:
@@ -374,27 +376,115 @@ You may learn more about other Glimmer related gems ([`glimmer-dsl-opal`](https:
374
376
 
375
377
  You can use the glimmer command to scaffold new apps, run apps & samples, package native executables, and list Glimmer community gems.
376
378
 
377
- [docs/reference/GLIMMER_COMMAND.md](docs/reference/GLIMMER_COMMAND.md)
379
+ ```
380
+ glimmer
381
+ ```
382
+
383
+ ```
384
+ Glimmer (JRuby Desktop Development GUI Framework) - JRuby Gem: glimmer-dsl-swt v4.18.7.7
385
+
386
+ Usage: glimmer [--bundler] [--pd] [--quiet] [--debug] [--log-level=VALUE] [[ENV_VAR=VALUE]...] [[-jruby-option]...] (application.rb or task[task_args]) [[application2.rb]...]
387
+
388
+ Runs Glimmer applications and tasks.
389
+
390
+ When applications are specified, they are run using JRuby,
391
+ automatically preloading the glimmer Ruby gem and SWT jar dependency.
392
+
393
+ Optionally, extra Glimmer options, JRuby options, and/or environment variables may be passed in.
394
+
395
+ Glimmer options:
396
+ - "--bundler=GROUP" : Activates gems in Bundler default group in Gemfile
397
+ - "--pd=BOOLEAN" : Requires puts_debuggerer to enable pd method
398
+ - "--quiet=BOOLEAN" : Does not announce file path of Glimmer application being launched
399
+ - "--debug" : Displays extra debugging information, passes "--debug" to JRuby, and enables debug logging
400
+ - "--log-level=VALUE" : Sets Glimmer's Ruby logger level ("ERROR" / "WARN" / "INFO" / "DEBUG"; default is none)
401
+
402
+ Tasks are run via rake. Some tasks take arguments in square brackets.
403
+
404
+ Available tasks are below (if you do not see any, please add `require 'glimmer/rake_task'` to Rakefile and rerun or run rake -T):
405
+
406
+ Select a Glimmer task to run: (Press ↑/↓ arrow to move, Enter to select and letters to filter)
407
+ glimmer list:gems:customshape[query] # List Glimmer custom shape gems available at rubygems.org (query is optional) [alt: list:gems:cp]
408
+ ‣ glimmer list:gems:customshell[query] # List Glimmer custom shell gems available at rubygems.org (query is optional) [alt: list:gems:cs]
409
+ glimmer list:gems:customwidget[query] # List Glimmer custom widget gems available at rubygems.org (query is optional) [alt: list:gems:cw]
410
+ glimmer list:gems:dsl[query] # List Glimmer DSL gems available at rubygems.org (query is optional)
411
+ glimmer package[type] # Package app for distribution (generating config, jar, and native files) (type is optional)
412
+ glimmer package:clean # Clean by removing "dist" and "packages" directories
413
+ glimmer package:config # Generate JAR config file
414
+ glimmer package:gem # Generate gem under pkg directory
415
+ glimmer package:gemspec # Generate gemspec
416
+ glimmer package:jar # Generate JAR file
417
+ glimmer package:lock_jars # Lock JARs
418
+ glimmer package:native[type] # Generate Native files
419
+ 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)
420
+ glimmer samples # Brings up the Glimmer Meta-Sample app to allow browsing, running, and viewing code of Glimmer samples
421
+ glimmer scaffold[app_name] # Scaffold Glimmer application directory structure to build a new app
422
+ glimmer scaffold:customshape[name,namespace] # Scaffold Glimmer::UI::CustomShape subclass (part of a view) under app/views (namespace is optional) [alt: scaffold:cp]
423
+ glimmer scaffold:customshell[name,namespace] # Scaffold Glimmer::UI::CustomShell subclass (full window view) under app/views (namespace is optional) [alt: scaffold:cs]
424
+ glimmer scaffold:customwidget[name,namespace] # Scaffold Glimmer::UI::CustomWidget subclass (part of a view) under app/views (namespace is optional) [alt: scaffold:cw]
425
+ glimmer scaffold:desktopify[app_name,website] # Desktopify a web app
426
+ glimmer scaffold:gem:customshape[name,namespace] # Scaffold Glimmer::UI::CustomShape subclass (part of a view) under its own Ruby gem project (namespace is required) [alt: scaffold:gem:cp]
427
+ glimmer scaffold:gem:customshell[name,namespace] # Scaffold Glimmer::UI::CustomShell subclass (full window view) under its own Ruby gem + app project (namespace is required) [alt: scaffold:ge...
428
+ glimmer scaffold:gem:customwidget[name,namespace] # Scaffold Glimmer::UI::CustomWidget subclass (part of a view) under its own Ruby gem project (namespace is required) [alt: scaffold:gem:cw]
429
+ ```
430
+
431
+ Learn more at: [docs/reference/GLIMMER_COMMAND.md](docs/reference/GLIMMER_COMMAND.md)
378
432
 
379
433
  ## Girb (Glimmer irb) Command
380
434
 
381
435
  You can use `girb` as an alternative to `irb` when prototyping Glimmer DSL for SWT GUI DSL code.
382
436
 
383
- [docs/reference/GLIMMER_GIRB.md](docs/reference/GLIMMER_GIRB.md)
437
+ ```
438
+ girb
439
+ ```
440
+
441
+ ![GIRB](/images/glimmer-girb.png)
442
+
443
+ Learn more at: [docs/reference/GLIMMER_GIRB.md](docs/reference/GLIMMER_GIRB.md)
384
444
 
385
445
  ## Glimmer GUI DSL Syntax
386
446
 
387
- This guide should help you get started with Glimmer DSL for SWT.
447
+ Here is a listing of supported widgets taken from the [SWT website](https://www.eclipse.org/swt/widgets/):
448
+
449
+ [![SWT Widgets](/images/glimmer-swt-widgets.png)](https://www.eclipse.org/swt/widgets/)
450
+
451
+ In a nutshell, the Glimmer GUI DSL syntax consists mainly of:
388
452
 
389
- [docs/reference/GLIMMER_GUI_DSL_SYNTAX.md](docs/reference/GLIMMER_GUI_DSL_SYNTAX.md)
453
+ 1. Keywords
390
454
 
391
- For more advanced SWT details, please refer to the [SWT Reference](#swt-reference).
455
+ Example of a keyword representing a table widget:
456
+
457
+ ```ruby
458
+ table
459
+ ```
460
+
461
+ 2. Style/Args
462
+
463
+ Example of a multi-line selection table widget:
464
+
465
+ ```ruby
466
+ table(:multi)
467
+ ```
468
+
469
+ 3. Content/Properties
470
+
471
+ Example of a multi-line selection table widget with a table column as content that has a header `text` property as 'Name'.
472
+
473
+ ```ruby
474
+ table(:multi) {
475
+ table_column {
476
+ text 'Name'
477
+ }
478
+ }
479
+ ```
480
+
481
+ Learn more at: [docs/reference/GLIMMER_GUI_DSL_SYNTAX.md](docs/reference/GLIMMER_GUI_DSL_SYNTAX.md)
392
482
 
393
483
  ## Glimmer Configuration
394
484
 
395
485
  Glimmer configuration may be done via the `Glimmer::Config` module.
396
486
 
397
- [docs/reference/GLIMMER_CONFIGURATION.md](docs/reference/GLIMMER_CONFIGURATION.md)
487
+ Learn more at: [docs/reference/GLIMMER_CONFIGURATION.md](docs/reference/GLIMMER_CONFIGURATION.md)
398
488
 
399
489
  ## Glimmer Style Guide
400
490
 
@@ -402,10 +492,6 @@ Glimmer configuration may be done via the `Glimmer::Config` module.
402
492
 
403
493
  ## Samples
404
494
 
405
- See a listing of samples over here, including screenshots and explanations of what each sample demonstrates:
406
-
407
- [docs/reference/GLIMMER_SAMPLES.md](docs/reference/GLIMMER_SAMPLES.md)
408
-
409
495
  Check the [samples](samples) directory in [glimmer-dsl-swt](https://github.com/AndyObtiva/glimmer-dsl-swt) for examples on how to write Glimmer applications. To run a sample, make sure to install the `glimmer-dsl-swt` gem first and then run:
410
496
  ```
411
497
  glimmer samples
@@ -415,6 +501,8 @@ glimmer samples
415
501
 
416
502
  ![Glimmer Meta-Sample](/images/glimmer-meta-sample.png)
417
503
 
504
+ See a listing of samples including screenshots and explanations at: [docs/reference/GLIMMER_SAMPLES.md](docs/reference/GLIMMER_SAMPLES.md)
505
+
418
506
  ## In Production
419
507
 
420
508
  The following production apps have been built with Glimmer.
@@ -441,11 +529,19 @@ If you have a Glimmer app you would like referenced here, please mention in a Pu
441
529
 
442
530
  [<img alt="Connector Logo" src="https://raw.githubusercontent.com/AndyObtiva/connector/master/package/linux/Connector.png" height=40 /> Connector](https://github.com/AndyObtiva/connector): A minimalist open-source multi-engine web browser
443
531
 
532
+ ### The DCR Programming Language
533
+
534
+ [<img alt="Connector Logo" src="https://raw.githubusercontent.com/AndyObtiva/dcr/f31cd45a8503051e899ed8e831fd03654d38e418/package/linux/Draw%20Color%20Repeat.png" height=40 /> Draw Color Repeat](https://github.com/AndyObtiva/dcr): A young boy programming language for Drawing and Coloring with Repetition
535
+
444
536
  ## Packaging & Distribution
445
537
 
446
- Glimmer simplifies the process of native-executable packaging and distribution on Mac and Windows via a single `glimmer package` command:
538
+ Glimmer simplifies the process of native-executable packaging and distribution on Mac and Windows via a single command:
539
+
540
+ ```
541
+ glimmer package
542
+ ```
447
543
 
448
- [docs/reference/GLIMMER_PACKAGING_AND_DISTRIBUTION.md](docs/reference/GLIMMER_PACKAGING_AND_DISTRIBUTION.md)
544
+ Learn more at: [docs/reference/GLIMMER_PACKAGING_AND_DISTRIBUTION.md](docs/reference/GLIMMER_PACKAGING_AND_DISTRIBUTION.md)
449
545
 
450
546
  ## App Updates
451
547
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 4.18.7.2
1
+ 4.18.7.7
@@ -44,7 +44,7 @@ bin/glimmer samples
44
44
  Below are the full usage instructions that come up when running `glimmer` without args.
45
45
 
46
46
  ```
47
- Glimmer (JRuby Desktop Development GUI Framework) - JRuby Gem: glimmer-dsl-swt v4.18.4.4
47
+ Glimmer (JRuby Desktop Development GUI Framework) - JRuby Gem: glimmer-dsl-swt v4.18.7.4
48
48
 
49
49
  Usage: glimmer [--bundler] [--pd] [--quiet] [--debug] [--log-level=VALUE] [[ENV_VAR=VALUE]...] [[-jruby-option]...] (application.rb or task[task_args]) [[application2.rb]...]
50
50
 
@@ -67,6 +67,7 @@ Tasks are run via rake. Some tasks take arguments in square brackets.
67
67
  Available tasks are below (if you do not see any, please add `require 'glimmer/rake_task'` to Rakefile and rerun or run rake -T):
68
68
 
69
69
  Select a Glimmer task to run: (Press ↑/↓ arrow to move, Enter to select and letters to filter)
70
+ glimmer list:gems:customshape[query] # List Glimmer custom shape gems available at rubygems.org (query is optional) [alt: list:gems:cp]
70
71
  ‣ glimmer list:gems:customshell[query] # List Glimmer custom shell gems available at rubygems.org (query is optional) [alt: list:gems:cs]
71
72
  glimmer list:gems:customwidget[query] # List Glimmer custom widget gems available at rubygems.org (query is optional) [alt: list:gems:cw]
72
73
  glimmer list:gems:dsl[query] # List Glimmer DSL gems available at rubygems.org (query is optional)
@@ -81,8 +82,11 @@ Select a Glimmer task to run: (Press ↑/↓ arrow to move, Enter to select and
81
82
  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)
82
83
  glimmer samples # Brings up the Glimmer Meta-Sample app to allow browsing, running, and viewing code of Glimmer samples
83
84
  glimmer scaffold[app_name] # Scaffold Glimmer application directory structure to build a new app
85
+ glimmer scaffold:customshape[name,namespace] # Scaffold Glimmer::UI::CustomShape subclass (part of a view) under app/views (namespace is optional) [alt: scaffold:cp]
84
86
  glimmer scaffold:customshell[name,namespace] # Scaffold Glimmer::UI::CustomShell subclass (full window view) under app/views (namespace is optional) [alt: scaffold:cs]
85
87
  glimmer scaffold:customwidget[name,namespace] # Scaffold Glimmer::UI::CustomWidget subclass (part of a view) under app/views (namespace is optional) [alt: scaffold:cw]
88
+ glimmer scaffold:desktopify[app_name,website] # Desktopify a web app
89
+ glimmer scaffold:gem:customshape[name,namespace] # Scaffold Glimmer::UI::CustomShape subclass (part of a view) under its own Ruby gem project (namespace is required) [alt: scaffold:gem:cp]
86
90
  glimmer scaffold:gem:customshell[name,namespace] # Scaffold Glimmer::UI::CustomShell subclass (full window view) under its own Ruby gem + app project (namespace is required) [alt: scaffold:ge...
87
91
  glimmer scaffold:gem:customwidget[name,namespace] # Scaffold Glimmer::UI::CustomWidget subclass (part of a view) under its own Ruby gem project (namespace is required) [alt: scaffold:gem:cw]
88
92
  ```
@@ -333,7 +337,7 @@ glimmer scaffold:cs[name]
333
337
 
334
338
  #### Custom Widget
335
339
 
336
- To scaffold a Glimmer [custom widget](#custom-widgets) (part of a view) for an existing Glimmer app, run the following command:
340
+ To scaffold a Glimmer [custom widget](GLIMMER_GUI_DSL_SYNTAX.md#custom-widgets) (part of a view) for an existing Glimmer app, run the following command:
337
341
 
338
342
  ```
339
343
  glimmer scaffold:customwidget[name]
@@ -345,6 +349,20 @@ Or the following alternative abbreviation:
345
349
  glimmer scaffold:cw[name]
346
350
  ```
347
351
 
352
+ #### Custom Shape
353
+
354
+ To scaffold a Glimmer [custom shape](GLIMMER_GUI_DSL_SYNTAX.md#custom-shapes) (a composite or customized shape) for an existing Glimmer app, run the following command:
355
+
356
+ ```
357
+ glimmer scaffold:customshape[name]
358
+ ```
359
+
360
+ Or the following alternative abbreviation:
361
+
362
+ ```
363
+ glimmer scaffold:cp[name]
364
+ ```
365
+
348
366
  #### Custom Shell Gem
349
367
 
350
368
  Custom shell gems are self-contained Glimmer apps as well as reusable [custom shells](#custom-shells).
@@ -382,7 +400,7 @@ Examples:
382
400
 
383
401
  #### Custom Widget Gem
384
402
 
385
- To scaffold a Glimmer [custom widget](#custom-widgets) gem (part of a view distributed as a Ruby gem), run the following command:
403
+ To scaffold a Glimmer [custom widget](GLIMMER_GUI_DSL_SYNTAX.md#custom-widgets) gem (part of a view distributed as a Ruby gem), run the following command:
386
404
 
387
405
  ```
388
406
  glimmer scaffold:gem:customwidget[name,namespace]
@@ -397,14 +415,40 @@ glimmer scaffold:gem:cw[name,namespace]
397
415
 
398
416
  It is important to specify a namespace to avoid having your gem clash with existing gems.
399
417
 
400
- The Ruby gem name will follow the convention "glimmer-cw-customwidgetname-namespace" (the 'cw' is for Custom Widget)
418
+ The Ruby gem name will follow the convention "glimmer-cw-customwidgetname-namespace" (the 'cw' is for Custom Widget; name words are not separated)
401
419
 
402
420
  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)
403
421
 
404
422
  Examples:
405
423
 
406
424
  - [glimmer-cw-video](https://github.com/AndyObtiva/glimmer-cw-video): Video Widget
407
- - [glimmer-cw-cdatetime-nebula](https://github.com/AndyObtiva/glimmer-cw-cdatetime-nebula): Nebula CDateTime Widget
425
+ - [glimmer-cw-nebula](https://github.com/AndyObtiva/glimmer-cw-nebula): The Nebula Project 50+ enterprise-grade high quality custom widgets for SWT
426
+ - [glimmer-cw-cdatetime-nebula](https://github.com/AndyObtiva/glimmer-cw-cdatetime-nebula): Nebula CDateTime Widget (piecemeal)
427
+
428
+ #### Custom Shape Gem
429
+
430
+ To scaffold a Glimmer [custom shape](GLIMMER_GUI_DSL_SYNTAX.md#custom-shapes) gem (part of a view distributed as a Ruby gem), run the following command:
431
+
432
+ ```
433
+ glimmer scaffold:gem:customshape[name,namespace]
434
+ ```
435
+
436
+ Or the following alternative abbreviation:
437
+
438
+ ```
439
+ glimmer scaffold:gem:cp[name,namespace]
440
+ ```
441
+
442
+
443
+ It is important to specify a namespace to avoid having your gem clash with existing gems.
444
+
445
+ The Ruby gem name will follow the convention "glimmer-cp-customshapename-namespace" (the 'cp' is for Custom Shape; name words are not separated)
446
+
447
+ Only official Glimmer gems created by the Glimmer project committers will have no namespace (e.g. [glimmer-cp-bevel](https://rubygems.org/gems/glimmer-cp-bevel) Ruby gem)
448
+
449
+ Examples:
450
+
451
+ - [glimmer-cp-bevel](https://github.com/AndyObtiva/glimmer-cp-bevel): Bevel
408
452
 
409
453
  ### Gem Listing
410
454
 
@@ -500,6 +544,39 @@ Output:
500
544
 
501
545
  ```
502
546
 
547
+ #### Listing Custom Shape Gems
548
+
549
+ The following command lists available Glimmer [Custom Shape Gems](#custom-shape-gem) (prefixed with "glimmer-cp-" by scaffolding convention) created by the the Glimmer community and published on [rubygems.org](http://www.rubygems.org):
550
+
551
+ ```
552
+ glimmer list:gems:customshape[query]
553
+ ```
554
+
555
+ Or the following alternative abbreviation:
556
+
557
+ ```
558
+ glimmer list:gems:cp[query]
559
+ ```
560
+
561
+ Example:
562
+
563
+ ```
564
+ glimmer list:gems:customshape
565
+ ```
566
+
567
+ Output:
568
+
569
+ ```
570
+
571
+ Glimmer Custom Shape Gems at rubygems.org:
572
+
573
+ Name Gem Version Author Description
574
+
575
+ Bevel glimmer-cp-bevel 0.1.1 Andy Maleh Bevel - Glimmer Custom Shape
576
+ Stickfigure glimmer-cp-stickfigure 0.1.1 Andy Maleh Stick Figure - Glimmer Custom Shape
577
+
578
+ ```
579
+
503
580
  #### Listing DSL Gems
504
581
 
505
582
  The following command lists available Glimmer [DSL Gems](#multi-dsl-support) (prefixed with "glimmer-dsl-" by convention) created by the the Glimmer community and published on [rubygems.org](http://www.rubygems.org):
@@ -163,7 +163,7 @@ Dynamic keywords are dynamically figured out from currently imported (aka requir
163
163
 
164
164
  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.
165
165
 
166
- For example, if a project adds this custom Java SWT library from the [Nebula Project](https://www.eclipse.org/nebula/):
166
+ For example, if a project adds this custom Java SWT library from the [Nebula Project](https://github.com/AndyObtiva/glimmer-cw-nebula):
167
167
 
168
168
  https://www.eclipse.org/nebula/widgets/gallery/gallery.php
169
169
 
@@ -284,9 +284,7 @@ shell {
284
284
 
285
285
  If you are new to Glimmer, you have learned enough to start running some [samples](#samples) directly or by reading through [Glimmer GUI DSL Keywords](#glimmer-gui-dsl-keywords) (which list each keyword's samples). Go ahead and run all Glimmer [samples](#samples), and come back to read the rest in any order you like since this material is more organized like a reference.
286
286
 
287
- If you are advanced and need more widgets, check out the [Nebula Project](https://www.eclipse.org/nebula/) for an extensive list of high quality custom widgets:
288
-
289
- https://www.eclipse.org/nebula/
287
+ If you are an advanced user of Glimmer DSL for SWT and need more widgets, check out the [Nebula Project](https://github.com/AndyObtiva/glimmer-cw-nebula) for an extensive list (50+) of high quality custom widgets.
290
288
 
291
289
  #### Glimmer GUI DSL Keywords
292
290
 
@@ -1416,7 +1414,7 @@ Shape keywords and their args (including defaults) are listed below (they basica
1416
1414
  - `text(string, x, y, is_transparent = true)` text with optional is_transparent to indicate if background is transparent (default is true)
1417
1415
  - `text(string, x, y, flags)` text with optional flags (flag format is `swt(comma_separated_flags)` where flags can be `:draw_delimiter` (i.e. new lines), `:draw_tab`, `:draw_mnemonic`, and `:draw_transparent` as explained in [GC API](https://help.eclipse.org/2020-12/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/swt/graphics/GC.html))
1418
1416
 
1419
- Shape keywords that can be filled with color can take a keyword argument `fill: true`. Defaults to false when not specified unless background is set with no foreground (or foreground is set with no background), in which case a smart default is applied.
1417
+ Shape keywords that can be filled with color can take a keyword argument `fill: true` (or `filled: true`). Defaults to false when not specified unless background is set with no foreground (or foreground is set with no background), in which case a smart default is applied.
1420
1418
  Smart defaults can be applied to automatically infer `gradient: true` (rectangle with both foreground and background) and `round: true` (rectangle with more than 4 args, the extra args are numeric) as well.
1421
1419
 
1422
1420
  Optionally, a shape keyword takes a block that can set any attributes from [org.eclipse.swt.graphics.GC](https://help.eclipse.org/2020-12/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/swt/graphics/GC.html) (methods starting with `set`), which enable setting the `background` for filling and `foreground` for drawing.
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: glimmer-dsl-swt 4.18.7.2 ruby lib
5
+ # stub: glimmer-dsl-swt 4.18.7.7 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "glimmer-dsl-swt".freeze
9
- s.version = "4.18.7.2"
9
+ s.version = "4.18.7.7"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib".freeze]
13
13
  s.authors = ["AndyMaleh".freeze]
14
- s.date = "2021-03-06"
14
+ s.date = "2021-03-23"
15
15
  s.description = "Glimmer DSL for SWT (JRuby Desktop Development GUI Framework) is a native-GUI cross-platform desktop development library written in JRuby, an OS-threaded faster JVM version of Ruby. Glimmer's main innovation is a declarative Ruby DSL that enables productive and efficient authoring of desktop application user-interfaces by relying on the robust Eclipse SWT library. Glimmer additionally innovates by having built-in data-binding support, which greatly facilitates synchronizing the GUI with domain models, thus achieving true decoupling of object oriented components and enabling developers to solve business problems (test-first) without worrying about GUI concerns, or alternatively drive development GUI-first, and then write clean business models (test-first) afterwards. Not only does Glimmer provide a large set of GUI widgets, but it also supports drawing Canvas Graphics like Shapes and Animations. To get started quickly, Glimmer offers scaffolding options for Apps, Gems, and Custom Widgets. Glimmer also includes native-executable packaging support, sorely lacking in other libraries, thus enabling the delivery of desktop apps written in Ruby as truly native DMG/PKG/APP files on the Mac + App Store, MSI/EXE files on Windows, and Gem Packaged Shell Scripts on Linux.".freeze
16
16
  s.email = "andy.am@gmail.com".freeze
17
17
  s.executables = ["glimmer".freeze, "girb".freeze]
@@ -176,6 +176,7 @@ Gem::Specification.new do |s|
176
176
  "samples/elaborate/tetris/model/game.rb",
177
177
  "samples/elaborate/tetris/model/past_game.rb",
178
178
  "samples/elaborate/tetris/model/tetromino.rb",
179
+ "samples/elaborate/tetris/view/bevel.rb",
179
180
  "samples/elaborate/tetris/view/block.rb",
180
181
  "samples/elaborate/tetris/view/high_score_dialog.rb",
181
182
  "samples/elaborate/tetris/view/playfield.rb",
@@ -246,10 +247,10 @@ Gem::Specification.new do |s|
246
247
  s.specification_version = 4
247
248
 
248
249
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
249
- s.add_runtime_dependency(%q<glimmer>.freeze, ["~> 1.2.0"])
250
+ s.add_runtime_dependency(%q<glimmer>.freeze, ["~> 1.3.1"])
250
251
  s.add_runtime_dependency(%q<super_module>.freeze, [">= 1.4.1", "< 2.0.0"])
251
252
  s.add_runtime_dependency(%q<nested_inherited_jruby_include_package>.freeze, [">= 0.3.0", "< 2.0.0"])
252
- s.add_runtime_dependency(%q<puts_debuggerer>.freeze, [">= 0.11.0", "< 2.0.0"])
253
+ s.add_runtime_dependency(%q<puts_debuggerer>.freeze, [">= 0.12.0", "< 2.0.0"])
253
254
  s.add_runtime_dependency(%q<rake-tui>.freeze, [">= 0.2.3", "< 2.0.0"])
254
255
  s.add_runtime_dependency(%q<logging>.freeze, [">= 2.3.0", "< 3.0.0"])
255
256
  s.add_runtime_dependency(%q<os>.freeze, [">= 1.0.0", "< 2.0.0"])
@@ -264,10 +265,10 @@ Gem::Specification.new do |s|
264
265
  s.add_development_dependency(%q<simplecov>.freeze, ["~> 0.16.1"])
265
266
  s.add_development_dependency(%q<simplecov-lcov>.freeze, ["~> 0.7.0"])
266
267
  else
267
- s.add_dependency(%q<glimmer>.freeze, ["~> 1.2.0"])
268
+ s.add_dependency(%q<glimmer>.freeze, ["~> 1.3.1"])
268
269
  s.add_dependency(%q<super_module>.freeze, [">= 1.4.1", "< 2.0.0"])
269
270
  s.add_dependency(%q<nested_inherited_jruby_include_package>.freeze, [">= 0.3.0", "< 2.0.0"])
270
- s.add_dependency(%q<puts_debuggerer>.freeze, [">= 0.11.0", "< 2.0.0"])
271
+ s.add_dependency(%q<puts_debuggerer>.freeze, [">= 0.12.0", "< 2.0.0"])
271
272
  s.add_dependency(%q<rake-tui>.freeze, [">= 0.2.3", "< 2.0.0"])
272
273
  s.add_dependency(%q<logging>.freeze, [">= 2.3.0", "< 3.0.0"])
273
274
  s.add_dependency(%q<os>.freeze, [">= 1.0.0", "< 2.0.0"])
@@ -283,10 +284,10 @@ Gem::Specification.new do |s|
283
284
  s.add_dependency(%q<simplecov-lcov>.freeze, ["~> 0.7.0"])
284
285
  end
285
286
  else
286
- s.add_dependency(%q<glimmer>.freeze, ["~> 1.2.0"])
287
+ s.add_dependency(%q<glimmer>.freeze, ["~> 1.3.1"])
287
288
  s.add_dependency(%q<super_module>.freeze, [">= 1.4.1", "< 2.0.0"])
288
289
  s.add_dependency(%q<nested_inherited_jruby_include_package>.freeze, [">= 0.3.0", "< 2.0.0"])
289
- s.add_dependency(%q<puts_debuggerer>.freeze, [">= 0.11.0", "< 2.0.0"])
290
+ s.add_dependency(%q<puts_debuggerer>.freeze, [">= 0.12.0", "< 2.0.0"])
290
291
  s.add_dependency(%q<rake-tui>.freeze, [">= 0.2.3", "< 2.0.0"])
291
292
  s.add_dependency(%q<logging>.freeze, [">= 2.3.0", "< 3.0.0"])
292
293
  s.add_dependency(%q<os>.freeze, [">= 1.0.0", "< 2.0.0"])