Andy Nutter-Upham, I just realized I didn't answer this exact question by
you in full details (I read the original message on the phone while being
quite busy with something a couple of weeks ago, and I somehow missed some
of intricacies of your question):
"If I missed the documentation and someone knows where it is, I'd love to
read it. I think though that since this is a wrapper library there is
instead reference to the underlying documentation (whose method names are a
bit different, and whose arguments are a bit different) and I find that
translation very challenging; especially since glimmer-dsl-libui is not yet
complete, so your run into ineffective keywords if you rely on the
underlying glimmer docs."
Glimmer DSL for LibUI actually does have full documentation for the Ruby
API:
https://github.com/AndyObtiva/glimmer-dsl-libui#supported-keywords
Someone asked me to add the documentation early on when the project was
new, and I added it to that person's satisfaction. I hope it's helpful to
you too.
By the way, I also do mention under the "Original API" section that you
could use the LibUI Go documentation as a reference:
https://pkg.go.dev/github.com/andlabs/ui
But, the most complete reference is the actual C headers:
https://github.com/andlabs/libui/blob/master/ui.h
And, the C headers are exposed as low-level FFI functions in Ruby as per
the Original API (but it's not recommended that you use these method
directly of course):
https://github.com/AndyObtiva/glimmer-dsl-libui#original-api
To give you an example of how the mapping from the C API to Ruby happens,
suppose we have this C function:
uiWindowSetTitle('My Application')
The word before the "Set" or "Get" operation is the control object (e.g.
window), and the word after it is the attribute (e.g. title).
So, the equivalent of that in the Glimmer GUI DSL:
window {
title 'My Application'
}
Basically, we are declaring a window control with one nested attribute of
title having the value 'My Application'
The C API is procedural and imperative whereas the Glimmer GUI DSL is
object-oriented and declarative, better mapping to the way we think of
concepts visually while looking at a screen given that you could nest
controls (widgets) within each other.
If you need further help, do not hesitate to ask further questions at the
Glimmer Gitter chat:
https://app.gitter.im/#/room/#AndyObtiva_glimmer:gitter.im
You shouldn't really get bogged down unless you are missing foundational
grounding in software engineering concepts relating to desktop development
in general, like MVC (Model View Controller). I've done GUI development
professionally in older technologies like Java Swing in the past, and by
comparison, Glimmer lets me leapfrog past productivity by 4x at least,
sometimes 10x or even more (and it's that much faster in productivity than
web development too, so it's great for building quick local apps or tools
that don't need the web as it's much simpler, demanding a tiny fraction of
web code only). But, it does assume you know MVC (Model View Controller)
very well, and it benefits from also knowing MVP (Model View Presenter).
Once you get the main ideas behind Glimmer, everything clicks, and things
like exact APIs or detailed documentation wouldn't matter much anymore
because the way you think with MVC/MVP is you start with the View layer
from a GUI mockup to support a specific user workflow, and you either use
native controls (like text and button, by looking them up in examples or
the docs mentioned above) or you invent your own custom controls (both
options are available in Glimmer DSL for LibUI). Of course, the native
controls are only as complete as what is implemented by the underlying
LibUI library. I know the authors of it are working on adding many new
features, like a Tree control, Table sorting listeners, and some other
missing features. They will all be added to Glimmer DSL for LibUI in due
time when they get released in C LibUI. But, that shouldn't stop someone
from learning the library and using whatever is available in it for now, or
at least mastering the current features until more features are added in
the future (especially given that you could always temporarily polyfill
missing features by building your own custom controls if really needed).
Cheers,
Andy Maleh
On Tue, Feb 14, 2023 at 9:27 PM grigoris charam <xargrigoris(a)gmail.com>
wrote:
> Stop reply all
>
> On Feb 15, 2023, at 03:05, Andy Maleh via ruby-talk <
> ruby-talk(a)ml.ruby-lang.org> wrote:
>
>
> The Glimmer Gitter Chat:
>
> https://app.gitter.im/#/room/#AndyObtiva_glimmer:gitter.im
>
> If you create any Glimmer related projects, libraries, or tools, you could
> alert of us of them in the Gitter Chat.
>
> And, you can open issues or pull requests on any of the Glimmer projects
> if needed:
> <glimmer.png>
> AndyObtiva/glimmer: DSL Framework consisting of a DSL Engine and a
> Data-Binding Library used in Glimmer DSL for SWT (JRuby Desktop Development
> GUI Framework), Glimmer DSL for Opal (Pure Ruby Web GUI), Glimmer DSL for
> LibUI (Prerequisite-Free Ruby Desktop Development GUI Library), Glimmer DSL
> for Tk (Ruby Tk Desktop Development GUI Library), Glimmer DSL for GTK
> (Ruby-GNOME Desktop Development GUI Library), Glimmer DSL for XML (& HTML),
> and Glimmer DSL for CSS <https://github.com/AndyObtiva/glimmer>
> github.com <https://github.com/AndyObtiva/glimmer>
> <https://github.com/AndyObtiva/glimmer>
>
>
> Andy Maleh
>
>
> LinkedIn: https://www.linkedin.com/in/andymaleh
> <https://www.linkedin.com/in/andymaleh>
> Blog: https://andymaleh.blogspot.com
> GitHub: https://github.com/AndyObtiva
> Twitter: https://www.twitter.com/AndyObtiva
>
> On Feb 14, 2023, at 7:51 PM, Fellipe Fingoli via ruby-talk <
> ruby-talk(a)ml.ruby-lang.org> wrote:
>
>
> really good content! I want to help to develop this ecosystem. Does
> anybody know where I can reach the community?
>
> Em ter., 7 de fev. de 2023 às 18:29, Andy Maleh via ruby-talk <
> ruby-talk(a)ml.ruby-lang.org> escreveu:
>
>> My RubyConf 2022 talk video on "Building Native GUI Apps in Ruby" using
>> the Fukuoka Award Winning Glimmer DSL for LibUI has just been released!
>>
>> https://youtu.be/1Bh4CnJqHyY
>>
>> Andy Maleh
>>
>> LinkedIn: https://www.linkedin.com/in/andymaleh
>> <https://www.linkedin.com/in/andymaleh>
>> Blog: http://andymaleh.blogspot.com
>> GitHub: http://www.github.com/AndyObtiva
>> Twitter: @AndyObtiva <https://twitter.com/AndyObtiva>
>>
>> ______________________________________________
>> ruby-talk mailing list -- ruby-talk(a)ml.ruby-lang.org
>> To unsubscribe send an email to ruby-talk-leave(a)ml.ruby-lang.org
>> ruby-talk info --
>> https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-talk.ml.ruby-lang.or…
>
>
>
> --
> Fellipe Fingoli
> ______________________________________________
> ruby-talk mailing list -- ruby-talk(a)ml.ruby-lang.org
> To unsubscribe send an email to ruby-talk-leave(a)ml.ruby-lang.org
> ruby-talk info --
> https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-talk.ml.ruby-lang.or…
>
> ______________________________________________
> ruby-talk mailing list -- ruby-talk(a)ml.ruby-lang.org
> To unsubscribe send an email to ruby-talk-leave(a)ml.ruby-lang.org
> ruby-talk info --
> https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-talk.ml.ruby-lang.or…
>
>
--
Andy Maleh
LinkedIn: https://www.linkedin.com/in/andymaleh
<https://www.linkedin.com/in/andymaleh>
Blog: http://andymaleh.blogspot.com
GitHub: http://www.github.com/AndyObtiva
Twitter: @AndyObtiva <https://twitter.com/AndyObtiva>
As promised the very first release candidate of the wxRuby3 gem has been released.
wxRuby3 is a cross-platform GUI library for Ruby, based on the mature wxWidgets GUI
toolkit for C++. It uses native widgets wherever possible, providing the correct look, feel
and behavior to GUI applications on Windows, OS X and Linux/GTK. wxRuby aims to
provide a comprehensive solution to developing professional-standard desktop
applications in Ruby.
What's new:
- improved stability (What? Wasn't it stable? Sure it was...except..well...sometimes)
- more samples
- more tests
- improved and extended documentation
- more supported classes like: Wx::EventBlocker, Wx::SearchCtrl, Wx::BitmapComboBox, Wx::EventFilter, Wx::UIActionSimulator
If you are interested check this out:
Documentation: https://mcorino.github.io/wxRuby3/index.html
Github: https://github.com/mcorino/wxruby3
Rubygems: https://rubygems.org/gems/wxruby3
Hey,
I was browsing December commit history and found a fix for round to even
function being commited for special cases.
In the unit tests there were a few new tests added. One of them looks like
this:
assert_equal(767573.18759, 767573.1875850001.round(5, half: :even))
Shouldn't the function round to ...8 in this case? It struck me it does not
end with an even digit, but an odd one.
There are two or free unit tests that also end with odd digit.
Commit:
https://github.com/ruby/ruby/commit/9f2378959e5c5b5c39c9993f1a84e5304ff113d…
Tests:
https://github.com/ruby/ruby/blob/ed587abffb48da991c33d232fd151683458938a9/…
Cheers,
Tom Smykowski
RubyInline version 3.14.0 has been released!
* rdoc: <http://docs.seattlerb.org/RubyInline/>
* home: <http://www.zenspider.com/ZSS/Products/RubyInline/>
* code: <https://github.com/seattlerb/rubyinline>
Inline allows you to write foreign code within your ruby code. It
automatically determines if the code in question has changed and
builds it only when necessary. The extensions are then automatically
loaded into the class/module that defines it.
You can even write extra builders that will allow you to write inlined
code in any language. Use Inline::C as a template and look at
Module#inline for the required API.
Changes:
### 3.14.0 / 2023-06-28
* 3 minor enhancements:
* Changed File.write_with_backup to write the content and return renamed path.
* Dropped #inline ancient options processing code. 2005, yo.
* Preemptively require language extension if not defined yet.
* 1 bug fix:
* Declare Init_* to be (void) to prevent some compilers from complaining.
Ich kehre zurück am 01.07.2023.
Sehr geerhte Damen und Herren!
Ich bin von 26.06.2023 bis 01.07.2023 auf Urlaub und habe nicht immer die
Möglichkeit meine Mails zu lesen!
Ich werde diese aber so schnell als möglich beantworten!
Mit freundlichen Grüßen
Jörg Meidl
Hinweis: Dies ist eine automatische Antwort auf Ihre Nachricht
"[ruby-talk:444259] Glimmer DSL for WX 0.0.7 Released"( gesendet am
26.06.2023 18:22:28) .
Diese ist die einzige Benachrichtigung, die Sie empfangen werden, während
diese Person abwesend ist.
Glimmer DSL for WX 0.0.7 has been released! It now supports nesting sizers
within sizers and adding special addables (non-controls) to sizers, like
`spacer`, growable_col`, etc.. Also, usage instructions have been added in
detail in the README: https://github.com/AndyObtiva/glimmer-dsl-wx#usage
GitHub: https://github.com/AndyObtiva/glimmer-dsl-wx
Ruby Gem: https://rubygems.org/gems/glimmer-dsl-wx
Change Log:
0.0.7:
- Sizer addable support (e.g. supporting `growable_col(1, 1)`, using
`add_growable_col(1, 1)` method in wxruby3 API)
- Ability to nest sizers within sizers
- Update samples/hello/hello_sizer.rb to use a `spacer` addable and nest
`v_box_sizer` under `h_box_sizer`
Glimmer DSL for WX 0.0.6 has been released! It now supports all layout
sizers (like VBoxSizer, which is `v_box_sizer` in Glimmer DSL syntax), and
includes a new sample (`samples/hello/hello_sizer.rb`). Sizer child
controls can specify their own `sizer_args` declaratively within their
bodies.
GitHub: https://github.com/AndyObtiva/glimmer-dsl-wx
Ruby Gem: https://rubygems.org/gems/glimmer-dsl-wx
Change Log:
0.0.6:
- Sizer (layout) support
- samples/hello/hello_sizer.rb
- Refactor/move glimmer_new samples to hello directory
- Fix ControlProxy#frame_proxy method, which grabs the parent frame (going
all the way to the top of the hierarchy)
Hello
I've just released elevenlabs-rb 0.1.0, A VERY light wrapper on top of
elevenlabs's API for AI text-to-speech.
I've only implemented the endpoints I need for my personal project but PRs
are welcome!
*Github:*
https://github.com/nodanaonlyzuul/elevenlabs-rb
*Rubygems:*https://rubygems.org/gems/elevenlabs-rb
*Elevenlabs API Docs:*
https://api.elevenlabs.io/docs
Stephen
People,
Is there a way of doing this for a currently displayed page? - maybe
this would have to be done from a Chrome extension?
Thanks,
Phil.
--
Philip Rhoades
PO Box 896
Cowra NSW 2794
Australia
E-mail: phil(a)pricom.com.au
Just as promised, I built a Glimmer DSL for WX that supports the wxWidgets
GUI toolkit using the new wxruby3 binding. It is high appreciated that the
wxruby3 binding did the hard work and heavy lifting of binding low-level
wxWidgets C/C++ code to Ruby code. Glimmer DSL for WX aims to add
Declarative Minimalistic GUI Syntax, Convention over Configuration, Smart
Defaults, and many other improved productivity/maintainability features
like the upcoming Bidirectional/Unidirectional Data-Binding support.
Glimmer DSL for WX Early Alpha 0.0.5 has just been released.
https://raw.githubusercontent.com/AndyObtiva/glimmer-dsl-wx/master/screensh…
Blog post:
https://andymaleh.blogspot.com/2023/06/glimmer-dsl-for-wx-for-wxwidgets-gui…
GitHub: https://github.com/AndyObtiva/glimmer-dsl-wx
Rubygem: https://rubygems.org/gems/glimmer-dsl-wx
Change Log:
## 0.0.1
- First alpha release of Glimmer DSL for WX for wxWidgets GUI Toolkit,
using wxruby3 binding, and supporting "nothing" sample
## 0.0.2
- Remove forgotten occurrences of pd (puts_debuggerer) from code
## 0.0.3
- Support control arguments and properties
- girb (Glimmer IRB)
- Use frame title argument in samples/minimal/nothing.rb
- Support `app_name` argument/property on `frame`
- Automatically set `app_name` to `frame` `title` if `frame` `app_name` is
not specified
- samples/glimmer_new/hello_world.rb
- samples/glimmer_new/hello_world2.rb
## 0.0.4
- Fix issue with complaining about not finding `frame` `app_name` when not
specified despite it being optional
## 0.0.5
- Nested child control support
- Listener support
- `about_box` keyword for displaying an about dialog box
- samples/glimmer_new/hello_button.rb
- samples/glimmer_new/hello_button2.rb
- Fix again the issue with complaining about not finding `frame` `app_name`
when not specified despite it being optional
Andy Maleh