glimmer-dsl-libui 0.1.6 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 94f447a302c22ea118d50c6d8f1b81c3a74cbd81fb7b6b6d61a7bb0cf22e9dd3
4
- data.tar.gz: 50faeffb8a2e2efaece4464432ecb6a51080e9662b4778f606f872a8286332a9
3
+ metadata.gz: dc16d9ab058fc6f75617c56ba43134253caf52ff729402efa045121823687245
4
+ data.tar.gz: 3ff67efc0e34b5730818c477693f81d31cb41a7f3b928fda34038d358d26c71e
5
5
  SHA512:
6
- metadata.gz: 570a7e4002cb5da3dcd49d6eb03c5554817036626c293faf3cbc2abc72063b83954e1c4795ad64a1b975ff6b8bca9d84b31a142914489777754ca5afb0d73cc0
7
- data.tar.gz: 0bdfb434406fc6bb3b1dcc08562ca0507d3d58821306dafec68089248910cb4e325fb0dd3282f2424754980682d46595b8fae1e658a5e4636b680f1e9ce52fff
6
+ metadata.gz: 7cfe89c0e5f2f0507484c8fadddc2bd75f02e8cb6f09368679c58ebde66fb37dc8c1980b9617e578846138e92b2a6b77920e2f7b5309ddb98cfc658b7bcaabd7
7
+ data.tar.gz: 99479329a3c7917bc2768f3ca7d7514c448ce70888b807741bf18db67e45d5c139c0ffe6ac7d21595a4f33ddb0cd92e7c328f63470cedd0569c974574fb5938a
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Change Log
2
2
 
3
+ ## 0.1.7
4
+
5
+ - Support `stroke` `:dashes` and use in examples/area_gallery.rb
6
+ - Support symbol values for draw_line_cap (`:round`, `:square`, `:flat`) and draw_line_join (`:miter`, `:round`, `:bevel`) and draw_fill_mode (`:winding` and `:alternate`)
7
+
3
8
  ## 0.1.6
4
9
 
5
10
  - Update default `window` `width` to `190`
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 LibUI 0.1.6
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 LibUI 0.1.7
2
2
  ## Prerequisite-Free Ruby Desktop Development GUI Library
3
3
  [![Gem Version](https://badge.fury.io/rb/glimmer-dsl-libui.svg)](http://badge.fury.io/rb/glimmer-dsl-libui)
4
4
  [![Maintainability](https://api.codeclimate.com/v1/badges/ce2853efdbecf6ebdc73/maintainability)](https://codeclimate.com/github/AndyObtiva/glimmer-dsl-libui/maintainability)
@@ -115,13 +115,13 @@ window('Area Gallery', 400, 400) {
115
115
  }
116
116
 
117
117
  fill r: 202, g: 102, b: 204, a: 0.5
118
- stroke thickness: 2, r: 0, g: 0, b: 0
118
+ stroke r: 0, g: 0, b: 0, thickness: 2, dashes: [50, 10, 10, 10], dash_phase: -50.0
119
119
  }
120
120
  path { # declarative stable path
121
121
  arc(200, 200, 90, 0, 360, false)
122
122
 
123
123
  fill r: 202, g: 102, b: 204, a: 0.5
124
- stroke thickness: 2, r: 0, g: 0, b: 0
124
+ stroke r: 0, g: 0, b: 0, thickness: 2
125
125
  }
126
126
  }
127
127
  }.show
@@ -143,7 +143,7 @@ Other [Glimmer](https://rubygems.org/gems/glimmer) DSL gems you might be interes
143
143
 
144
144
  ## Table of Contents
145
145
 
146
- - [Glimmer DSL for LibUI 0.1.6](#-glimmer-dsl-for-libui-016)
146
+ - [Glimmer DSL for LibUI 0.1.7](#-glimmer-dsl-for-libui-017)
147
147
  - [Glimmer GUI DSL Concepts](#glimmer-gui-dsl-concepts)
148
148
  - [Usage](#usage)
149
149
  - [Girb (Glimmer IRB)](#girb-glimmer-irb)
@@ -273,7 +273,7 @@ gem install glimmer-dsl-libui
273
273
  Or install via Bundler `Gemfile`:
274
274
 
275
275
  ```ruby
276
- gem 'glimmer-dsl-libui', '~> 0.1.6'
276
+ gem 'glimmer-dsl-libui', '~> 0.1.7'
277
277
  ```
278
278
 
279
279
  Add `require 'glimmer-dsl-libui'` at the top, and then `include Glimmer` into the top-level main object for testing or into an actual class for serious usage.
@@ -381,7 +381,7 @@ Control(Args) | Properties | Listeners
381
381
  `msg_box(window = main_window as Glimmer::LibUI::WindowProxy, title as String, description as String)` | None | None
382
382
  `msg_box_error(window = main_window as Glimmer::LibUI::WindowProxy, title as String, description as String)` | None | None
383
383
  `non_wrapping_multiline_entry` | `read_only` (Boolean), `text` (`String`) | `on_changed`
384
- `path` | `fill` (`Hash` of `:r` as `0`-`255`, `:g` as `0`-`255`, `:b` as `0`-`255`, `:a` as `0.0`-`1.0`), `stroke` (`Hash` of `:r` as `0`-`255`, `:g` as `0`-`255`, `:b` as `0`-`255`, `:a` as `0.0`-`1.0`, `:cap` as `Numeric`, `:join` as `Numeric`, `:thickness` as `Numeric`, `:miter_limit` as `Numeric` ) | None
384
+ `path(draw_fill_mode = :winding)` | `fill` (`Hash` of `:r` as `0`-`255`, `:g` as `0`-`255`, `:b` as `0`-`255`, `:a` as `0.0`-`1.0`), `stroke` (`Hash` of `:r` as `0`-`255`, `:g` as `0`-`255`, `:b` as `0`-`255`, `:a` as `0.0`-`1.0`, `:cap` as (`:round`, `:square`, `:flat`), `:join` as (`:miter`, `:round`, `:bevel`), `:thickness` as `Numeric`, `:miter_limit` as `Numeric`, `:dashes` as `Array` of `Numeric` ) | None
385
385
  `preferences_menu_item` | None | `on_clicked`
386
386
  `progress_bar` | `value` (`Numeric`) | None
387
387
  `progress_bar_column(name as String)` | None | None
@@ -585,6 +585,8 @@ window('Basic Area', 400, 400) {
585
585
 
586
586
  Check [examples/dynamic_area.rb](#dynamic-area) for a more detailed semi-declarative example.
587
587
 
588
+ `path` can receive a `draw_fill_mode` argument that can accept values `:winding` or `:alternate` and defaults to `:winding`.
589
+
588
590
  Available nested `path` shapes:
589
591
  - `rectangle(x as Numeric, y as Numeric, width as Numeric, height as Numeric)`
590
592
  - `square(x as Numeric, y as Numeric, length as Numeric)`
@@ -3367,13 +3369,13 @@ window('Area Gallery', 400, 400) {
3367
3369
  }
3368
3370
 
3369
3371
  fill r: 202, g: 102, b: 204, a: 0.5
3370
- stroke thickness: 2, r: 0, g: 0, b: 0
3372
+ stroke r: 0, g: 0, b: 0, thickness: 2, dashes: [50, 10, 10, 10], dash_phase: -50.0
3371
3373
  }
3372
3374
  path { # declarative stable path
3373
3375
  arc(200, 200, 90, 0, 360, false)
3374
3376
 
3375
3377
  fill r: 202, g: 102, b: 204, a: 0.5
3376
- stroke thickness: 2, r: 0, g: 0, b: 0
3378
+ stroke r: 0, g: 0, b: 0, thickness: 2
3377
3379
  }
3378
3380
  }
3379
3381
  }.show
@@ -3476,7 +3478,7 @@ window('Area Gallery', 400, 400) {
3476
3478
  }
3477
3479
 
3478
3480
  fill r: 202, g: 102, b: 204, a: 0.5
3479
- stroke thickness: 2, r: 0, g: 0, b: 0
3481
+ stroke r: 0, g: 0, b: 0, thickness: 2, dashes: [50, 10, 10, 10], dash_phase: -50.0
3480
3482
  }
3481
3483
  path { # declarative stable path
3482
3484
  arc {
@@ -3489,7 +3491,7 @@ window('Area Gallery', 400, 400) {
3489
3491
  }
3490
3492
 
3491
3493
  fill r: 202, g: 102, b: 204, a: 0.5
3492
- stroke thickness: 2, r: 0, g: 0, b: 0
3494
+ stroke r: 0, g: 0, b: 0, thickness: 2
3493
3495
  }
3494
3496
  }
3495
3497
  }.show
@@ -3539,13 +3541,13 @@ window('Area Gallery', 400, 400) {
3539
3541
  }
3540
3542
 
3541
3543
  fill r: 202, g: 102, b: 204, a: 0.5
3542
- stroke thickness: 2, r: 0, g: 0, b: 0
3544
+ stroke r: 0, g: 0, b: 0, thickness: 2, dashes: [50, 10, 10, 10], dash_phase: -50.0
3543
3545
  }
3544
3546
  path { # a dynamic path is added semi-declaratively inside on_draw block
3545
3547
  arc(200, 200, 90, 0, 360, false)
3546
3548
 
3547
3549
  fill r: 202, g: 102, b: 204, a: 0.5
3548
- stroke thickness: 2, r: 0, g: 0, b: 0
3550
+ stroke r: 0, g: 0, b: 0, thickness: 2
3549
3551
  }
3550
3552
  end
3551
3553
  }
@@ -3650,7 +3652,7 @@ window('Area Gallery', 400, 400) {
3650
3652
  }
3651
3653
 
3652
3654
  fill r: 202, g: 102, b: 204, a: 0.5
3653
- stroke thickness: 2, r: 0, g: 0, b: 0
3655
+ stroke r: 0, g: 0, b: 0, thickness: 2, dashes: [50, 10, 10, 10], dash_phase: -50.0
3654
3656
  }
3655
3657
  path { # a dynamic path is added semi-declaratively inside on_draw block
3656
3658
  arc {
@@ -3663,7 +3665,7 @@ window('Area Gallery', 400, 400) {
3663
3665
  }
3664
3666
 
3665
3667
  fill r: 202, g: 102, b: 204, a: 0.5
3666
- stroke thickness: 2, r: 0, g: 0, b: 0
3668
+ stroke r: 0, g: 0, b: 0, thickness: 2
3667
3669
  }
3668
3670
  end
3669
3671
  }
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.6
1
+ 0.1.7
@@ -38,13 +38,13 @@ window('Area Gallery', 400, 400) {
38
38
  }
39
39
 
40
40
  fill r: 202, g: 102, b: 204, a: 0.5
41
- stroke thickness: 2, r: 0, g: 0, b: 0
41
+ stroke r: 0, g: 0, b: 0, thickness: 2, dashes: [50, 10, 10, 10], dash_phase: -50.0
42
42
  }
43
43
  path { # declarative stable path
44
44
  arc(200, 200, 90, 0, 360, false)
45
45
 
46
46
  fill r: 202, g: 102, b: 204, a: 0.5
47
- stroke thickness: 2, r: 0, g: 0, b: 0
47
+ stroke r: 0, g: 0, b: 0, thickness: 2
48
48
  }
49
49
  }
50
50
  }.show
@@ -92,7 +92,7 @@ window('Area Gallery', 400, 400) {
92
92
  }
93
93
 
94
94
  fill r: 202, g: 102, b: 204, a: 0.5
95
- stroke thickness: 2, r: 0, g: 0, b: 0
95
+ stroke r: 0, g: 0, b: 0, thickness: 2, dashes: [50, 10, 10, 10], dash_phase: -50.0
96
96
  }
97
97
  path { # declarative stable path
98
98
  arc {
@@ -105,7 +105,7 @@ window('Area Gallery', 400, 400) {
105
105
  }
106
106
 
107
107
  fill r: 202, g: 102, b: 204, a: 0.5
108
- stroke thickness: 2, r: 0, g: 0, b: 0
108
+ stroke r: 0, g: 0, b: 0, thickness: 2
109
109
  }
110
110
  }
111
111
  }.show
@@ -39,13 +39,13 @@ window('Area Gallery', 400, 400) {
39
39
  }
40
40
 
41
41
  fill r: 202, g: 102, b: 204, a: 0.5
42
- stroke thickness: 2, r: 0, g: 0, b: 0
42
+ stroke r: 0, g: 0, b: 0, thickness: 2, dashes: [50, 10, 10, 10], dash_phase: -50.0
43
43
  }
44
44
  path { # a dynamic path is added semi-declaratively inside on_draw block
45
45
  arc(200, 200, 90, 0, 360, false)
46
46
 
47
47
  fill r: 202, g: 102, b: 204, a: 0.5
48
- stroke thickness: 2, r: 0, g: 0, b: 0
48
+ stroke r: 0, g: 0, b: 0, thickness: 2
49
49
  }
50
50
  end
51
51
  }
@@ -93,7 +93,7 @@ window('Area Gallery', 400, 400) {
93
93
  }
94
94
 
95
95
  fill r: 202, g: 102, b: 204, a: 0.5
96
- stroke thickness: 2, r: 0, g: 0, b: 0
96
+ stroke r: 0, g: 0, b: 0, thickness: 2, dashes: [50, 10, 10, 10], dash_phase: -50.0
97
97
  }
98
98
  path { # a dynamic path is added semi-declaratively inside on_draw block
99
99
  arc {
@@ -106,7 +106,7 @@ window('Area Gallery', 400, 400) {
106
106
  }
107
107
 
108
108
  fill r: 202, g: 102, b: 204, a: 0.5
109
- stroke thickness: 2, r: 0, g: 0, b: 0
109
+ stroke r: 0, g: 0, b: 0, thickness: 2
110
110
  }
111
111
  end
112
112
  }
Binary file
@@ -117,17 +117,38 @@ module Glimmer
117
117
 
118
118
  def draw_stroke_params
119
119
  @draw_stroke_params ||= ::LibUI::FFI::DrawStrokeParams.malloc
120
- @draw_stroke_params.Cap = @stroke[:cap] || 0 # flat
121
- @draw_stroke_params.Join = @stroke[:join] || 0 # miter
120
+ @draw_stroke_params.Cap = draw_line_cap # flat
121
+ @draw_stroke_params.Join = draw_line_join # miter
122
122
  @draw_stroke_params.Thickness = @stroke[:thickness] || 1
123
123
  @draw_stroke_params.MiterLimit = @stroke[:miter_limit] || 10 # DEFAULT_MITER_LIMIT
124
- @draw_stroke_params_dashes ||= Fiddle::Pointer.malloc(8)
125
- @draw_stroke_params.Dashes = @draw_stroke_params_dashes
126
- @draw_stroke_params.NumDashes = @stroke[:num_dashes] || 0 # TODO reimplement this line correctly (perhaps no need to pass num dashes, yet dashes themselves and use their count here)
124
+ @draw_stroke_params.Dashes = @stroke[:dashes].to_a.pack('d*')
125
+ @draw_stroke_params.NumDashes = @stroke[:dashes].to_a.count
127
126
  @draw_stroke_params.DashPhase = @stroke[:dash_phase] || 0
128
127
  @draw_stroke_params
129
128
  end
130
129
 
130
+ def draw_line_cap
131
+ case @stroke && @stroke[:cap].to_s
132
+ when 'round'
133
+ 1
134
+ when 'square'
135
+ 2
136
+ else # 'flat'
137
+ 0
138
+ end
139
+ end
140
+
141
+ def draw_line_join
142
+ case @stroke && @stroke[:join].to_s
143
+ when 'round'
144
+ 1
145
+ when 'bevel'
146
+ 2
147
+ else # 'miter'
148
+ 0
149
+ end
150
+ end
151
+
131
152
  def destroy
132
153
  @parent_proxy&.children&.delete(self)
133
154
  ControlProxy.control_proxies.delete(self)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glimmer-dsl-libui
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Maleh