You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
(6) |
Sep
(16) |
Oct
(36) |
Nov
(85) |
Dec
(151) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(49) |
Feb
(51) |
Mar
(71) |
Apr
(87) |
May
(91) |
Jun
(93) |
Jul
(160) |
Aug
(229) |
Sep
(85) |
Oct
(89) |
Nov
(85) |
Dec
(98) |
| 2004 |
Jan
(40) |
Feb
(98) |
Mar
(149) |
Apr
(106) |
May
(153) |
Jun
(77) |
Jul
(85) |
Aug
(55) |
Sep
(50) |
Oct
(53) |
Nov
(83) |
Dec
(32) |
| 2005 |
Jan
(97) |
Feb
(124) |
Mar
(60) |
Apr
(79) |
May
(55) |
Jun
(62) |
Jul
(70) |
Aug
(130) |
Sep
(115) |
Oct
(32) |
Nov
(46) |
Dec
(54) |
| 2006 |
Jan
(114) |
Feb
(78) |
Mar
(37) |
Apr
(54) |
May
(82) |
Jun
(34) |
Jul
(54) |
Aug
(50) |
Sep
(26) |
Oct
(46) |
Nov
(105) |
Dec
(83) |
| 2007 |
Jan
(105) |
Feb
(64) |
Mar
(57) |
Apr
(20) |
May
(18) |
Jun
(80) |
Jul
(108) |
Aug
(26) |
Sep
(36) |
Oct
(49) |
Nov
(94) |
Dec
(46) |
| 2008 |
Jan
(24) |
Feb
(24) |
Mar
(200) |
Apr
(92) |
May
(112) |
Jun
(54) |
Jul
(41) |
Aug
(50) |
Sep
(66) |
Oct
(82) |
Nov
(15) |
Dec
(44) |
| 2009 |
Jan
(68) |
Feb
(34) |
Mar
(55) |
Apr
(50) |
May
(95) |
Jun
(33) |
Jul
(24) |
Aug
(40) |
Sep
(61) |
Oct
(33) |
Nov
(7) |
Dec
(61) |
| 2010 |
Jan
(18) |
Feb
(47) |
Mar
(24) |
Apr
(24) |
May
(42) |
Jun
(59) |
Jul
(28) |
Aug
(23) |
Sep
(55) |
Oct
(102) |
Nov
(33) |
Dec
(11) |
| 2011 |
Jan
(37) |
Feb
(115) |
Mar
(96) |
Apr
(37) |
May
(8) |
Jun
(13) |
Jul
(7) |
Aug
(61) |
Sep
(143) |
Oct
(78) |
Nov
(14) |
Dec
(33) |
| 2012 |
Jan
(49) |
Feb
(57) |
Mar
(62) |
Apr
(38) |
May
(26) |
Jun
(16) |
Jul
(12) |
Aug
(10) |
Sep
(8) |
Oct
(12) |
Nov
(38) |
Dec
(25) |
| 2013 |
Jan
(55) |
Feb
(53) |
Mar
(39) |
Apr
(37) |
May
(21) |
Jun
(4) |
Jul
(7) |
Aug
(8) |
Sep
(24) |
Oct
(17) |
Nov
(11) |
Dec
(81) |
| 2014 |
Jan
(22) |
Feb
(9) |
Mar
(29) |
Apr
(133) |
May
(12) |
Jun
(13) |
Jul
(5) |
Aug
(11) |
Sep
|
Oct
(10) |
Nov
(18) |
Dec
(1) |
| 2015 |
Jan
(18) |
Feb
(2) |
Mar
|
Apr
|
May
(3) |
Jun
|
Jul
|
Aug
|
Sep
(28) |
Oct
(15) |
Nov
(8) |
Dec
(7) |
| 2016 |
Jan
(19) |
Feb
|
Mar
|
Apr
(1) |
May
(10) |
Jun
(3) |
Jul
(19) |
Aug
|
Sep
(5) |
Oct
(1) |
Nov
(9) |
Dec
|
| 2017 |
Jan
|
Feb
(18) |
Mar
|
Apr
(2) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2020 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(6) |
Sep
|
Oct
|
Nov
|
Dec
|
| 2021 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(4) |
Nov
(2) |
Dec
|
|
From: Sutou K. <ko...@co...> - 2021-11-24 20:44:39
|
Hi, In <dfa...@pr...> "[ruby-gnome2-devel-en] How to release memory of unused widgets?" on Wed, 24 Nov 2021 16:00:23 +0100, Leonard Thiele <th...@pr...> wrote: > I wonder how I am supposed to release memory after I do not need a > widget anymore. > Should I use destroy()? Or unref()? Or is the binding taking care of > releasing memory after I removed the widget from its parent and I do > not have to worry? Removed widgets are released when Ruby's GC is ran. You can use Gtk::Widget#destroy explicitly when you can't wait Ruby's GC. > In a more complex project I am working on I use a FileChooserWidget > which causes segmentation faults when I destroy it and afterwards > change folder content which I previously watched. > This is because the FileChooserWidget does not properly clean up after > itself when I call destroy() on it and so it tries to execute > callbacks that make no sense after destroying... Could you file an issue to https://github.com/ruby-gnome/ruby-gnome/issues with a sample script that reproduces this case? Thanks, -- kou |
|
From: Leonard T. <th...@pr...> - 2021-11-24 15:18:07
|
Hello, I wonder how I am supposed to release memory after I do not need a widget anymore. Should I use destroy()? Or unref()? Or is the binding taking care of releasing memory after I removed the widget from its parent and I do not have to worry? In a more complex project I am working on I use a FileChooserWidget which causes segmentation faults when I destroy it and afterwards change folder content which I previously watched. This is because the FileChooserWidget does not properly clean up after itself when I call destroy() on it and so it tries to execute callbacks that make no sense after destroying... I have read a lot about memory management in GTK but could not find an exact answer to my questions for the ruby bindings. Hope to find some insights here. Kind regards, Leonard |
|
From: Bandi-T <ba...@su...> - 2021-10-23 17:54:28
|
Greetings, Does anyone have example or tutorial on how to properly do UI templates using the gtk4 Ruby gem? Thank you in advance. |
|
From: Bandi-T <ba...@su...> - 2021-10-23 01:12:35
|
My apologies. Indeed it was me. Here is my successful Ruby transcription of the example from the www.gtk.org main page - please feel freel to include it in your documentation: > require 'gtk4' > > application = Gtk::Application.new("com.example.GtkApplication", > Gio::ApplicationFlags::FLAGS_NONE) > > application.signal_connect("activate") do |application| > window = Gtk::ApplicationWindow.new(application) > button = Gtk::Button.new label: "Hello World!" > button.signal_connect("clicked"){|x| window.close} > window.set_child button > window.present > end > > application.run 2021.10.22. 21:23 keltezéssel, Bandi-T írta: > Greetings, > > What is the status of GTK4 support (under Windows)? I get an error > very early: > >> irb(main):002:0> app = Gtk::App.new >> C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/gtk4-3.4.9/lib/gtk4/builder.rb:148:in >> `alias_method': undefined method `connect_signals' for class >> `Gtk::Builder' (NameError) >> Did you mean? connect_signal >> from >> C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/gtk4-3.4.9/lib/gtk4/builder.rb:148:in >> `<class:Builder>' >> from >> C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/gtk4-3.4.9/lib/gtk4/builder.rb:18:in >> `<module:Gtk>' >> from >> C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/gtk4-3.4.9/lib/gtk4/builder.rb:17:in >> `<top (required)>' >> from >> <internal:C:/Ruby30-x64/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in >> `require' >> from >> <internal:C:/Ruby30-x64/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in >> `require' >> from >> C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/gtk4-3.4.9/lib/gtk4/loader.rb:57:in >> `require_libraries' >> from >> C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/gtk4-3.4.9/lib/gtk4/loader.rb:52:in >> `post_load' >> from >> C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/gobject-introspection-3.4.9/lib/gobject-introspection/loader.rb:45:in >> `load' >> from >> C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/gtk4-3.4.9/lib/gtk4/loader.rb:26:in >> `load' >> from >> C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/gtk4-3.4.9/lib/gtk4.rb:65:in >> `init' >> from >> C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/gtk4-3.4.9/lib/gtk4.rb:40:in >> `const_missing' >> from (irb):2:in `<main>' >> from >> C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/irb-1.3.5/exe/irb:11:in `<top >> (required)>' >> from C:/Ruby30-x64/bin/irb.cmd:31:in `load' >> from C:/Ruby30-x64/bin/irb.cmd:31:in `<main>' > This is Ruby 3.0.2 installed by RubInstaller on Windows (x64-mingw32). > > I am just starting to learn GTK for some UI apps I need to develop, > never developed with GTK before (especially not under Windows). > > I hope this is only my mistake and this is supposed to work. > > Thank you in advance. > |
|
From: Sutou K. <ko...@co...> - 2021-10-22 22:40:38
|
Hi, This is a bug of gtk4 gem. Could you open an issue for this? https://github.com/ruby-gnome/ruby-gnome/issues Thanks, -- kou In <d5b...@su...> "[ruby-gnome2-devel-en] what is the status of GTK4 support (under Windows)? (newbie question)" on Fri, 22 Oct 2021 21:23:36 +0200, Bandi-T <ba...@su...> wrote: > Greetings, > > What is the status of GTK4 support (under Windows)? I get an error > very early: > >> irb(main):002:0> app = Gtk::App.new >> C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/gtk4-3.4.9/lib/gtk4/builder.rb:148:in >> `alias_method': undefined method `connect_signals' for class >> `Gtk::Builder' (NameError) >> Did you mean? connect_signal >> from >> C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/gtk4-3.4.9/lib/gtk4/builder.rb:148:in >> `<class:Builder>' >> from >> C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/gtk4-3.4.9/lib/gtk4/builder.rb:18:in >> `<module:Gtk>' >> from >> C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/gtk4-3.4.9/lib/gtk4/builder.rb:17:in >> `<top (required)>' >> from >> <internal:C:/Ruby30-x64/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in >> `require' >> from >> <internal:C:/Ruby30-x64/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in >> `require' >> from >> C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/gtk4-3.4.9/lib/gtk4/loader.rb:57:in >> `require_libraries' >> from >> C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/gtk4-3.4.9/lib/gtk4/loader.rb:52:in >> `post_load' >> from >> C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/gobject-introspection-3.4.9/lib/gobject-introspection/loader.rb:45:in >> `load' >> from >> C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/gtk4-3.4.9/lib/gtk4/loader.rb:26:in >> `load' >> from >> C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/gtk4-3.4.9/lib/gtk4.rb:65:in >> `init' >> from >> C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/gtk4-3.4.9/lib/gtk4.rb:40:in >> `const_missing' >> from (irb):2:in `<main>' >> from >> C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/irb-1.3.5/exe/irb:11:in `<top >> (required)>' >> from C:/Ruby30-x64/bin/irb.cmd:31:in `load' >> from C:/Ruby30-x64/bin/irb.cmd:31:in `<main>' > This is Ruby 3.0.2 installed by RubInstaller on Windows (x64-mingw32). > > I am just starting to learn GTK for some UI apps I need to develop, > never developed with GTK before (especially not under Windows). > > I hope this is only my mistake and this is supposed to work. > > Thank you in advance. > > > > _______________________________________________ > ruby-gnome2-devel-en mailing list > rub...@li... > https://lists.sourceforge.net/lists/listinfo/ruby-gnome2-devel-en |
|
From: Bandi-T <ba...@su...> - 2021-10-22 22:13:46
|
Greetings, What is the status of GTK4 support (under Windows)? I get an error very early: > irb(main):002:0> app = Gtk::App.new > C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/gtk4-3.4.9/lib/gtk4/builder.rb:148:in > `alias_method': undefined method `connect_signals' for class > `Gtk::Builder' (NameError) > Did you mean? connect_signal > from > C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/gtk4-3.4.9/lib/gtk4/builder.rb:148:in > `<class:Builder>' > from > C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/gtk4-3.4.9/lib/gtk4/builder.rb:18:in > `<module:Gtk>' > from > C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/gtk4-3.4.9/lib/gtk4/builder.rb:17:in > `<top (required)>' > from > <internal:C:/Ruby30-x64/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in > `require' > from > <internal:C:/Ruby30-x64/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in > `require' > from > C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/gtk4-3.4.9/lib/gtk4/loader.rb:57:in > `require_libraries' > from > C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/gtk4-3.4.9/lib/gtk4/loader.rb:52:in > `post_load' > from > C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/gobject-introspection-3.4.9/lib/gobject-introspection/loader.rb:45:in > `load' > from > C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/gtk4-3.4.9/lib/gtk4/loader.rb:26:in > `load' > from > C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/gtk4-3.4.9/lib/gtk4.rb:65:in `init' > from > C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/gtk4-3.4.9/lib/gtk4.rb:40:in > `const_missing' > from (irb):2:in `<main>' > from > C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/irb-1.3.5/exe/irb:11:in `<top > (required)>' > from C:/Ruby30-x64/bin/irb.cmd:31:in `load' > from C:/Ruby30-x64/bin/irb.cmd:31:in `<main>' This is Ruby 3.0.2 installed by RubInstaller on Windows (x64-mingw32). I am just starting to learn GTK for some UI apps I need to develop, never developed with GTK before (especially not under Windows). I hope this is only my mistake and this is supposed to work. Thank you in advance. |
|
From: amerke <art...@ud...> - 2020-08-03 22:50:16
|
see the pictures
i solved the problem using
def paint(cr)
cr= @darea.window.create_cairo_context
...
cr.destory
end
so by creating a new cairo context (the given cr doesn't fit the
drawable area, but the entire window)
quite strange, but seems to work this way
what about the pressed/focused buttons (which are not togglebuttons)???
On 03.08.20 22:51, Sutou Kouhei wrote:
> Hi,
>
> In <424...@ud...>
> "Re: [ruby-gnome2-devel-en] problems with ruby/gtk/tcp" on Mon, 3 Aug 2020 01:14:54 +0200,
> amerke <art...@ud...> wrote:
>
>> the matrix seems to be applied with respect to the entire window but
>> NOT with respect to the DrawingArea (is much to high)
>>
>> how do i use a cairo contex with matrix transformations with respect
>> to the DrawingArea itself?
>>
>> i also curious why the buttons keep pressed/focused (it are normal
>> buttons, not togglebuttons)
>
> Could you show the expected result by an image?
>
>
> Thanks,
> --
> kou
>
>
> _______________________________________________
> ruby-gnome2-devel-en mailing list
> rub...@li...
> https://lists.sourceforge.net/lists/listinfo/ruby-gnome2-devel-en
>
|
|
From: Sutou K. <ko...@co...> - 2020-08-03 20:51:39
|
Hi, In <424...@ud...> "Re: [ruby-gnome2-devel-en] problems with ruby/gtk/tcp" on Mon, 3 Aug 2020 01:14:54 +0200, amerke <art...@ud...> wrote: > the matrix seems to be applied with respect to the entire window but > NOT with respect to the DrawingArea (is much to high) > > how do i use a cairo contex with matrix transformations with respect > to the DrawingArea itself? > > i also curious why the buttons keep pressed/focused (it are normal > buttons, not togglebuttons) Could you show the expected result by an image? Thanks, -- kou |
|
From: amerke <art...@ud...> - 2020-08-02 23:15:10
|
sounds good, looking forward to GTK5 :-)
maybe i also get used to some unexpected(?) behaviour. consider the code:
require 'gtk3'
require 'cairo'
class ArtScrollCanvas < Gtk::Grid
def initialize
super
@user_zoom= 1.0
@darea = Gtk::DrawingArea.new
@darea.hexpand= true
@darea.vexpand= true
@darea.signal_connect('configure-event') do
print "\n darea_configure_callback"
update_adjustments_and_paint(0.0, 0.0)
end
@darea.signal_connect "draw" do |_, cr|
paint(cr)
end
attach(@darea, 0, 0, 1, 1)
update_adjustments_and_paint(0.0, 0.0)
end
def update_adjustments_and_paint(dx= 0.0, dy= 0.0)
@darea.queue_draw_area(0, 0, @darea.allocation.width,
@darea.allocation.height)
end
def paint(cr)
cr.set_source_rgba(1, 1, 1, 1)
cr.paint
#cr.save
#cr.restore
#cr.save
#m= Cairo::Matrix.new(1.0, 0.0, 0.0, 1.0, 300.0, 200.0)
m= Cairo::Matrix.new(1.0, 0.0, 0.0, 1.0, 300.0, 100.0)
cr.set_matrix(m)
cr.move_to(0.0, 0.0)
cr.line_to(100.0, 0.0)
cr.line_to(100.0, 100.0)
cr.line_to(0.0, 100.0)
cr.set_source_rgba(1.0, 0.0, 0.0, 1.0)
cr.fill
#cr.restore
end
end
class ArtApplicationWindow < Gtk::ApplicationWindow
def initialize(application)
super(application)
signal_connect('destroy') do
#Gtk.main_quit
application.quit
end
set_title 'Art'
set_size_request(600, 400)
@canvas = ArtScrollCanvas.new
@b1 = Gtk::Button.new(label: "New")
@b2 = Gtk::Button.new(label: "New")
@b3 = Gtk::Button.new(label: "New")
@vbox = Gtk::Box.new(:vertical, 0)
@vbox.pack_start(@b1, :expand => false, :fill => false, :padding => 0)
@vbox.pack_start(@b2, :expand => false, :fill => false, :padding => 0)
@vbox.pack_start(@b3, :expand => false, :fill => false, :padding => 0)
@vbox.pack_start(@canvas, :expand => true, :fill => true, :padding
=> 0)
add(@vbox)
show_all
end
end # ArtApplicationWindow
class ArtApp < Gtk::Application
def initialize
super("org.gtk.exampleapp", :handles_open)
signal_connect('activate') do |application|
window = ArtApplicationWindow.new(application)
window.present
end
end
end
app = ArtApp.new
app.run
the matrix seems to be applied with respect to the entire window but NOT
with respect to the DrawingArea (is much to high)
how do i use a cairo contex with matrix transformations with respect to
the DrawingArea itself?
i also curious why the buttons keep pressed/focused (it are normal
buttons, not togglebuttons)
cheers
artur
On 02.08.20 23:25, Sutou Kouhei wrote:
> Hi,
>
> In <8f6...@ud...>
> "Re: [ruby-gnome2-devel-en] problems with ruby/gtk/tcp" on Sun, 2 Aug 2020 17:57:59 +0200,
> amerke <art...@ud...> wrote:
>
>> thank you kou, this seems to work fine (but is not well documented :-(
>
> I hope that this GC related work is done without user
> code. But I don't have an idea for now. :<
> (The block of ss.signal_connect("incoming") doesn't refer
> local variables like the channel automatically.)
>
>> btw. just another question: what about the status of ruby and GTK
>> (ver. 4). is it going to be continued in the future?
>
> Yes.
> There is an implementation for Ruby/GTK4:
> https://github.com/ruby-gnome/ruby-gnome/tree/master/gtk4
> We'll release it when GTK 4 is released.
>
>> (the number of posts in this list is almost 0 :-)
>
> Recently, users use GitHub issues:
> https://github.com/ruby-gnome/ruby-gnome/issues?q=is%3Aissue+is%3Aclosed
>
>> also there are almost no ruby/GTK projects on github ...
>
> It seems there are 20+ projects that use Ruby/GTK3:
> https://rubygems.org/gems/gtk3/reverse_dependencies
>
>> earlier on i used qt4 but the support for qt4 was discontinued (no
>> qtbindungs for qt5) ... so i would like to know more about the future
>> of ruby/GTK. i think missing good ruby support for the two major
>> platforms (GTK/QT) is one of the reasons why ruby is staying behind
>> python, considering the number of (gui but also other) projects
>> etc. (at least outside of japan)
>
> We'll maintain Ruby/GTK4, Ruby/GTK5 and so on because we (at
> least me) will use them. :-)
>
>
> Thanks,
> --
> kou
>
>
> _______________________________________________
> ruby-gnome2-devel-en mailing list
> rub...@li...
> https://lists.sourceforge.net/lists/listinfo/ruby-gnome2-devel-en
>
|
|
From: Sutou K. <ko...@co...> - 2020-08-02 21:25:36
|
Hi,
In <8f6...@ud...>
"Re: [ruby-gnome2-devel-en] problems with ruby/gtk/tcp" on Sun, 2 Aug 2020 17:57:59 +0200,
amerke <art...@ud...> wrote:
> thank you kou, this seems to work fine (but is not well documented :-(
I hope that this GC related work is done without user
code. But I don't have an idea for now. :<
(The block of ss.signal_connect("incoming") doesn't refer
local variables like the channel automatically.)
> btw. just another question: what about the status of ruby and GTK
> (ver. 4). is it going to be continued in the future?
Yes.
There is an implementation for Ruby/GTK4:
https://github.com/ruby-gnome/ruby-gnome/tree/master/gtk4
We'll release it when GTK 4 is released.
> (the number of posts in this list is almost 0 :-)
Recently, users use GitHub issues:
https://github.com/ruby-gnome/ruby-gnome/issues?q=is%3Aissue+is%3Aclosed
> also there are almost no ruby/GTK projects on github ...
It seems there are 20+ projects that use Ruby/GTK3:
https://rubygems.org/gems/gtk3/reverse_dependencies
> earlier on i used qt4 but the support for qt4 was discontinued (no
> qtbindungs for qt5) ... so i would like to know more about the future
> of ruby/GTK. i think missing good ruby support for the two major
> platforms (GTK/QT) is one of the reasons why ruby is staying behind
> python, considering the number of (gui but also other) projects
> etc. (at least outside of japan)
We'll maintain Ruby/GTK4, Ruby/GTK5 and so on because we (at
least me) will use them. :-)
Thanks,
--
kou
|
|
From: amerke <art...@ud...> - 2020-08-02 15:58:19
|
thank you kou, this seems to work fine (but is not well documented :-( btw. just another question: what about the status of ruby and GTK (ver. 4). is it going to be continued in the future? (the number of posts in this list is almost 0 :-), also there are almost no ruby/GTK projects on github ... earlier on i used qt4 but the support for qt4 was discontinued (no qtbindungs for qt5) ... so i would like to know more about the future of ruby/GTK. i think missing good ruby support for the two major platforms (GTK/QT) is one of the reasons why ruby is staying behind python, considering the number of (gui but also other) projects etc. (at least outside of japan) cheers artur |
|
From: Sutou K. <ko...@co...> - 2020-08-01 22:36:01
|
Hi,
In <f0b...@ud...>
"[ruby-gnome2-devel-en] problems with ruby/gtk/tcp" on Fri, 31 Jul 2020 13:25:40 +0200,
amerke <art...@ud...> wrote:
> i've problems with core dumps using ruby, gtk and tcp connections. my
> application is much larger, but here a minimized version:
You need to keep reference of the channel:
# ...
@channels = []
ss.signal_connect("incoming") do |_, conn, _|
# ...
channel= GLib::IOChannel.new(conn.input_stream.socket.fd)
@channels << channel
channel.add_watch(GLib::IOChannel::IN) do
# ...
Thanks,
--
kou
|
|
From: amerke <art...@ud...> - 2020-07-31 11:25:49
|
hi,
i've problems with core dumps using ruby, gtk and tcp connections. my
application is much larger, but here a minimized version:
GTK code (is also attached):
#####################################################
require 'gtk3'
require 'cairo'
class DummyArray
def initialize
@array=[
"M",2,48.83,1.95,"L",8,50.55,0.0,62.27,0.0,63.91,5.0,48.83,1.95,"M",2,0.0,22.42,"L",8,0.0,16.95,9.77,13.2,7.27,28.44,0.0,22.42,"M",2,5.39,49.61,"L",8,0.0,48.52,0.0,35.63,0.47,35.08,5.39,49.61,"M",2,0.0,80.7,"L",6,0.0,68.28,9.38,70.31,0.0,80.7,"M",2,90.23,46.56,"L",6,100.0,35.55,100.0,48.52,90.23,46.56,"M",2,100.0,16.95,"L",6,100.0,22.42,95.47,18.67,100.0,16.95,"M",2,100.0,68.28,
"L",8,100.0,80.78,99.14,81.72,94.45,67.11,100.0,68.28,"M",2,50.55,100.0,"L",6,58.98,90.47,62.27,100.0,50.55,100.0,"M",2,23.44,78.67,"L",6,33.59,67.19,38.52,81.72,23.44,78.67,"M",2,40.47,15.39,"L",6,25.39,12.34,35.63,0.86,40.47,15.39,"M",2,59.61,39.77,"L",6,59.14,24.38,72.66,31.56,59.61,39.77,"M",2,45.78,36.95,"L",6,55.23,36.48,50.94,45.0,45.78,36.95,
"M",2,48.98,24.38,"L",6,43.67,16.41,53.2,15.86,48.98,24.38,"M",2,22.58,10.08,"L",6,13.52,13.13,15.47,3.75,22.58,10.08,"M",2,18.28,30.47,"L",6,21.33,39.53,11.95,37.58,18.28,30.47,"M",2,25.23,40.86,"L",6,26.41,25.55,39.06,34.22,25.23,40.86,"M",2,13.67,63.13,"L",6,13.13,47.73,26.64,54.92,13.67,63.13,"M",2,17.66,68.52,"L",6,21.72,77.19,12.11,76.25,17.66,68.52,"M",2,52.34,49.06,
"L",6,44.14,62.11,36.95,48.52,52.34,49.06,"M",2,52.42,79.84,"L",6,60.08,66.56,67.73,79.84,52.42,79.84,"M",2,47.42,76.25,"L",6,42.19,68.28,51.72,67.73,47.42,76.25,"M",2,79.14,31.48,"L",6,87.11,26.17,87.73,35.7,79.14,31.48,"M",2,81.64,20.08,"L",6,74.92,6.25,90.23,7.34,81.64,20.08,"M",2,67.97,10.86,"L",6,68.52,20.39,59.92,16.09,67.97,10.86,"M",2,73.59,73.36,"L",6,81.48,68.2,82.11,77.73,73.59,73.36,
"M",2,63.59,49.06,"L",6,64.22,58.59,55.62,54.3,63.59,49.06,"M",2,79.53,43.83,"L",6,84.45,58.36,69.38,55.31,79.53,43.83,"M",2,90.23,95.16,"L",6,92.19,85.78,99.3,92.11,90.23,95.16,"M",2,86.17,81.48,"L",6,82.34,96.33,71.41,85.55,86.17,81.48,"M",2,22.11,97.34,"L",6,6.8,97.34,14.45,84.06,22.11,97.34,"M",2,38.2,93.05,"L",6,29.14,96.09,31.09,86.72,38.2,93.05,
"Z",0
]
end
def render(cr)
i= 0
size= @array.size
while i < size
e= @array[i]
case e
when 'M', 'L'
count= @array[i+1]
j= i + 2
i= j + count
while j < i
x= @array[j]
y= @array[j+1]
if e == 'M'
cr.move_to(x, y)
else
cr.line_to(x, y)
end
j += 2
end
when 'Z'
count= @array[i+1]
j= i + 2
i= j + count
cr.close_path
else
raise
end
end
end
end
class ArtScrollCanvas < Gtk::Grid
def initialize
super
@user_zoom= 1.0
@darea = Gtk::DrawingArea.new
@darea.hexpand= true
@darea.vexpand= true
@darea.signal_connect('configure-event') do
print "\n darea_configure_callback"
update_adjustments_and_paint(0.0, 0.0)
end
@darea.signal_connect "draw" do |_, cr|
paint(cr)
end
attach(@darea, 0, 0, 1, 1)
update_adjustments_and_paint(0.0, 0.0)
end
def update_adjustments_and_paint(dx= 0.0, dy= 0.0)
@darea.queue_draw_area(0, 0, @darea.allocation.width,
@darea.allocation.height)
end
def paint(cr)
cr.set_source_rgba(1, 1, 1, 1)
cr.paint
cr.set_source_rgba(1, 0, 0, 1)
DummyArray.new.render(cr)
#DummyDirect.new.render(cr)
cr.fill
end
end
class ArtApplicationWindow < Gtk::ApplicationWindow
def initialize(application)
super(application)
signal_connect('destroy') do
#Gtk.main_quit
application.quit
end
set_title 'Art'
set_size_request(600, 400)
@canvas = ArtScrollCanvas.new
@vbox = Gtk::Box.new(:vertical, 0)
@vbox.pack_start(@canvas, :expand => true, :fill => true, :padding
=> 0)
add(@vbox)
show_all
end
end # ArtApplicationWindow
class ArtApp < Gtk::Application
def initialize
super("org.gtk.exampleapp", :handles_open)
signal_connect('activate') do |application|
window = ArtApplicationWindow.new(application)
window.present
end
end
end
begin
ss = Gio::SocketService.new
ss.add_inet_port(4321)
ss.signal_connect("incoming") do |_, conn, _|
print
"\n#############################################################"
print "\nconn.local_address: ", conn.local_address
print "\nconn.local_address.family: ", conn.local_address.family
print "\nconn.remote_address: ", conn.remote_address
print "\nconn.class: ", conn.class
print "\nconn.input_stream.fd: ", conn.input_stream.fd
print "\nconn.input_stream.socket.fd: ", conn.input_stream.socket.fd
# prevents closing the connection (at least in c code)
Gtk::Loader.reference_gobject(conn)
Gtk::Loader.reference_gobject(conn.input_stream)
Gtk::Loader.reference_gobject(conn.input_stream.socket)
Gtk::Loader.reference_gobject(conn.output_stream)
Gtk::Loader.reference_gobject(conn.output_stream.socket)
channel= GLib::IOChannel.new(conn.input_stream.socket.fd)
channel.add_watch(GLib::IOChannel::IN) do
print "\n>>> ", conn.input_stream.socket.fd
len= conn.input_stream.socket.available_bytes
input= conn.input_stream.read(len)
print "\ninput= ", input
conn.output_stream.write("OK\n")
GLib::Source::CONTINUE
true
end
true
end
ss.start
end
GLib::Timeout.add(10000) do
print "\ntimer"
GLib::Source::CONTINUE
end
app = ArtApp.new
app.run
#################################################
SIMPLE client:
require 'socket'
class Comm
def initialize(socket, verbose: false)
@socket= socket
@sio= StringIO.new
@verbose= verbose
end
def close
@socket.close
end
def <<(str)
@sio << str
end
def send
str= @sio.string
@socket.write(str)
print "\n>>>\nsending: ", str if @verbose
@sio.reopen
res= @socket.readline
print "\nres= \"", res, "\"" if @verbose
res
end
end
server_socket = TCPSocket.open("localhost", 4321)
comm= Comm.new(server_socket, verbose: true)
i= 1000000
while true
i += 1
comm << i.to_s
comm.send
sleep(0.025) # 40 per s
end
in the beginning everything seems ok, but after the client is lauched
resizing the GTK window leads to core dumps after approx. 1000 messages
(sometimes much less, but sometimes much later). Shortening the @array
in DummyArray leads to less core dumps, therefore the array is that large.
i've read
https://ruby-gnome2.osdn.jp/hiki.cgi?tips_threads
but don't know how this would apply to my program ...
cheers
artur
|
|
From: Ignacio L. S. O. <nac...@gm...> - 2020-02-24 13:15:43
|
Hello all, I wanted to use gstreamer ruby gem for a development and couldn't find really good documentation on using "playbin". However, there's a sample application that uses and demonstrates it. This is the helloworld.rb application. I took this as a model for myself to do my development but when I did test run it I stumbled in this error: /home/nacho/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/gobject-introspection-3.4.1/lib/gobject-introspection/loader.rb:600:in `invoke': TODO: [gerror] out free GIArgument(error)[everything] from /home/nacho/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/gobject-introspection-3.4.1/lib/gobject-introspection/loader.rb:600:in `invoke' from /home/nacho/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/gobject-introspection-3.4.1/lib/gobject-introspection/loader.rb:514:in `block in define_method' from ./helloworld.rb:55:in `block in <main>' from ./helloworld.rb:66:in `run' from ./helloworld.rb:66:in `<main>' Looks to me that this is a non implemented feature and I've seen a thread of mails from long ago. Is there any progress on this side?. Can I contribute somehow?. How can I use playbin for my audio player?. Thanks for your help and collaboration. Best Regards, Nacho |
|
From: Detlef W. <det...@gm...> - 2017-05-24 18:34:37
|
Hi,
since some days I have the problem, that pango does not render Umlauts
anymore. Here is a short example:
require 'gtk3'
markup = '<span color="red">foooäöü</span>'
win = Gtk::Window.new
box = Gtk::Box.new :vertical
win << box
area = Gtk::DrawingArea.new
win.set_default_size 200, 100
area.signal_connect(:draw) do |widget, context|
layout = context.create_pango_layout
layout.markup = markup
context.move_to 25, 25
context.show_pango_layout layout
end
box.pack_start area, :expand => true, :fill => true
label = Gtk::Label.new
label.markup = markup
box.pack_start label
win.show_all
Gtk.main
It puts a Gtk::DrawingArea and a Gtk::Label in a window. The first
renders the markup which contains German umlauts directly with Pango to
a drawing context. The second one shows the same markup in a label. The
first one is not displayed, but on it shows this warning:
> Pango-WARNING **: pango_layout_set_markup_with_accel: Fehler in Zeile 1, Zeichen 42: »/« ist kein gültiges Zeichen, wenn es auf den schließenden Elementnamen »sp<« folgt; das erlaubte Zeichen ist »>«
> from /home/det/.gem/ruby/2.3.0/gems/gobject-introspection-3.1.2/lib/gobject-introspection/loader.rb:566:in `block in define_method'
> from /home/det/.gem/ruby/2.3.0/gems/pango-3.1.2/lib/pango/layout.rb:34:in `markup='
> from umlaut.rb:15:in `block in <main>'
> from /home/det/.gem/ruby/2.3.0/gems/gobject-introspection-3.1.2/lib/gobject-introspection/loader.rb:110:in `invoke'
> from /home/det/.gem/ruby/2.3.0/gems/gobject-introspection-3.1.2/lib/gobject-introspection/loader.rb:110:in `block in define_singleton_method'
> from umlaut.rb:29:in `<main>'
The label displays the markup without problems. Pango did it also right,
since some days and some software updates ago. It is not only limited to
umlauts, but - I think - to all characters which are not ASCII. I have
checked the file with isutf8 and it is OK.
Can anyone confirm this problem?
I can get around the problem, if I substitute the problematic chars with
its hex-values in a way like this:
sprintf "&#x%x;", char.ord
But this is nearly open end, if I don't want to limit the characters to
use and very expensive in ruby.
Then, in the warning is a reference to line 1 char 42. But the markup to
display is only 32 chars long... What does this mean?
After all I think, that it is a pango problem.
Cheers, detlef
|
|
From: Kouhei S. <ko...@co...> - 2017-04-04 14:28:11
|
Hi, In <13d...@gm...> "[ruby-gnome2-devel-en] rake gem:install fails on wrong dependency order" on Mon, 3 Apr 2017 20:20:41 +0200, Detlef Wagner <det...@gm...> wrote: > if I try to install a fresh checked out git/master with rake it fails on > rake gem:install > with the following message ... > This is because in the top level Rakefile pango should be build before > cairo-gobject is build. But pango has cairo-gobject as it's dependency. Thanks for your report. I've fixed it on master. Thanks, -- kou |
|
From: Detlef W. <det...@gm...> - 2017-04-03 18:34:09
|
Hi, if I try to install a fresh checked out git/master with rake it fails on rake gem:install with the following message > $ rake gem:install > /usr/bin/ruby2.3 -S gem install --local --user-install glib2/pkg/glib2-3.1.2.gem > Building native extensions. This could take a while... > Successfully installed glib2-3.1.2 > Parsing documentation for glib2-3.1.2 > Installing ri documentation for glib2-3.1.2 > Done installing documentation for glib2 after 2 seconds > 1 gem installed > /usr/bin/ruby2.3 -S gem install --local --user-install gobject-introspection/pkg/gobject-introspection-3.1.2.gem > Building native extensions. This could take a while... > Successfully installed gobject-introspection-3.1.2 > Parsing documentation for gobject-introspection-3.1.2 > Installing ri documentation for gobject-introspection-3.1.2 > Done installing documentation for gobject-introspection after 1 seconds > 1 gem installed > /usr/bin/ruby2.3 -S gem install --local --user-install gio2/pkg/gio2-3.1.2.gem > Building native extensions. This could take a while... > Successfully installed gio2-3.1.2 > Parsing documentation for gio2-3.1.2 > Installing ri documentation for gio2-3.1.2 > Done installing documentation for gio2 after 0 seconds > 1 gem installed > /usr/bin/ruby2.3 -S gem install --local --user-install atk/pkg/atk-3.1.2.gem > Successfully installed atk-3.1.2 > Parsing documentation for atk-3.1.2 > Installing ri documentation for atk-3.1.2 > Done installing documentation for atk after 0 seconds > 1 gem installed > /usr/bin/ruby2.3 -S gem install --local --user-install pango/pkg/pango-3.1.2.gem > ERROR: Could not find a valid gem 'cairo-gobject' (= 3.1.2) in any repository > rake aborted! > Command failed with status (2): [/usr/bin/ruby2.3 -S gem install --local --...] > /home/det/Schreibtisch/soft/ruby-gnome-neuste/Rakefile:392:in `block (3 levels) in <top (required)>' > /home/det/Schreibtisch/soft/ruby-gnome-neuste/Rakefile:391:in `each' > /home/det/Schreibtisch/soft/ruby-gnome-neuste/Rakefile:391:in `block (2 levels) in <top (required)>' > Tasks: TOP => gem:install > (See full trace by running task with --trace) This is because in the top level Rakefile pango should be build before cairo-gobject is build. But pango has cairo-gobject as it's dependency. Greetings, detlef |
|
From: John L. <jo...@la...> - 2017-02-28 21:14:19
|
On 28/02/17 20:45, cedlemo wrote:
> > I can't believe how easy it is to hook up a GI library :)
>
> I totally agree, and this is thanks to Kouhei's work. You can open issue
> for any problem related to GObject-Introspection on the ruby-GNOME2
> github. I am no more than a "power user" for those gems, Kouhei would
> provide you a better help for more complicated problems.
>
thanks for that, and you've been very helpful too. That is much appreciated.
> Do you plan to create a gem for the keybinder ?
Yes, although it's almost not worth it. Since my last message I
discovered that this is sufficient:
require 'gi'
class Keybinder; end
GI::Loader.load('Keybinder', Keybinder)
But, since I already have a gem templated I will upload it...
> How did you deal with the dock problem and the update of the WM _
> DESKTOP size ?
>
I had to use Xlib to do it, with the help of 'xlib-objects':
require 'xlib-objects'
...
def show_all
mg = screen.get_monitor_geometry(
screen.get_monitor_at_window(
screen.active_window()))
x = mg.x
width = mg.width
move(x,0)
resize(width,height)
super
topw = XlibObj::Window.new(XlibObj::Display.new(':0'),
toplevel.window.xid)
XlibObj::Window::Property.new(topw, '_NET_WM_STRUT').set(
[0, 0, self.height, 0 ],
:CARDINAL)
XlibObj::Window::Property.new(topw, '_NET_WM_STRUT_PARTIAL').set(
[0, 0, self.height, 0, 0, 0, 0, 0, x, x+width-1, 0, 0],
:CARDINAL)
end
Best,
John
|
|
From: cedlemo <ce...@gm...> - 2017-02-28 20:45:29
|
> I can't believe how easy it is to hook up a GI library :) I totally agree, and this is thanks to Kouhei's work. You can open issue for any problem related to GObject-Introspection on the ruby-GNOME2 github. I am no more than a "power user" for those gems, Kouhei would provide you a better help for more complicated problems. Do you plan to create a gem for the keybinder ? How did you deal with the dock problem and the update of the WM _ DESKTOP size ? (just asking because I am curious ;-) ). cedlemo On 28/02/2017 21:26, John Lane wrote: > On 28/02/17 14:43, cedlemo wrote: > >> * the bind method only take one argument, the callback is transformed in >> ruby the block do ... end. >> > Aha! I didn't think of passing a block. Once I changed my call to use > that form it worked perfectly without modification. Brilliant. Thanks. > > ps. I can't believe how easy it is to hook up a GI library :) > > Much appreciate your help. > John > > > > ------------------------------------------------------------------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, SlashDot.org! http://sdm.link/slashdot > _______________________________________________ > ruby-gnome2-devel-en mailing list > rub...@li... > https://lists.sourceforge.net/lists/listinfo/ruby-gnome2-devel-en |
|
From: John L. <jo...@la...> - 2017-02-28 20:27:12
|
On 28/02/17 14:43, cedlemo wrote: > * the bind method only take one argument, the callback is transformed in > ruby the block do ... end. > Aha! I didn't think of passing a block. Once I changed my call to use that form it worked perfectly without modification. Brilliant. Thanks. ps. I can't believe how easy it is to hook up a GI library :) Much appreciate your help. John |
|
From: cedlemo <ce...@gm...> - 2017-02-28 14:43:56
|
John, try this (it works for me, I hope it will works for you) :
require "glib2"
require "gobject-introspection"
require "gtk3"
module Keybinder
class Loader < GObjectIntrospection::Loader
end
loader = Loader.new(self)
loader.load("Keybinder")
end
win = Gtk::Window.new
win.signal_connect("destroy") { Gtk.main_quit }
win.show
Keybinder.init
Keybinder.bind('<Ctrl>p') do
puts "ctrl + p"
end
Keybinder.bind('XF86AudioNext') do
puts "keysoundnext"
end
Gtk.main
Two things here:
* Keybinder need to be initialized with (#init)
* the bind method only take one argument, the callback is transformed in
ruby the block do ... end.
cedlemo
you could find this trick in
On 28/02/2017 12:36, John Lane wrote:
> On 27/02/17 16:56, cedlemo wrote:
>> Maybe look here https://github.com/ruby-gnome2/ggit this is a loader for
>> the gobject-libgit2. It is very simple, it should be a good starting point.
>>
>> Look in the ruby-gnome2 gems too; the atk gem, for example, has been
>> recently updated in order to use gobject-introspection instead of the C
>> bindings.
>>
> Hey Cedelmo, well I have something partially working with GI!
>
> I know the library is hooked up because I have a call that works and it
> outputs text that is in the library. However, this:
>
> Keybinder.bind('Menu', Callback, 'Key pressed')
>
> fails with this error:
>
>
> /usr/lib/ruby/gems/2.3.0/gems/gobject-introspection-3.1.1/lib/gobject-introspection/loader.rb:651:in
> `validate_arguments': Keybinder.bind: wrong number of arguments (3 for
> 1) (ArgumentError)
>
> I have looked at the source[1] and studied the annotation
> documentation[2]. I can see that the actual bind function is skipped but
> `keybinder_bind_full` is renamed to `keybinder_bind`. The header for
> that function shows four parameters of which the last is optional, so my
> call passing three parameters ought to be ok:
>
> /**
> * keybinder_bind_full: (rename-to keybinder_bind)
> * @keystring: an accelerator description (gtk_accelerator_parse() format)
> * @handler: (scope notified): callback function
> * @user_data: (closure) (allow-none): data to pass to @handler
> * @notify: (allow-none): called when @handler is unregistered
> *
> * Grab a key combination globally and register a callback to be called each
> * time the key combination is pressed.
> *
> * Since: 0.3.0
> *
> * Returns: %TRUE if the accelerator could be grabbed
> */
> gboolean
> keybinder_bind_full (const char *keystring,
> KeybinderHandler handler,
> void *user_data,
> GDestroyNotify notify)
>
> So I must have done something wrong, but I actually did very little.
> Here's my GI module:
>
> module Keybinder
>
> class Loader < GObjectIntrospection::Loader
> end
>
> loader = Loader.new(self)
> loader.load("Keybinder")
> end
>
> I'm not sure where to go from here...
>
> Thanks for your help,
> John
>
>
>
> [1]
> https://github.com/kupferlauncher/keybinder/blob/master/libkeybinder/bind.c#L547
> [2] https://wiki.gnome.org/Projects/GObjectIntrospection/Annotations
>
>
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, SlashDot.org! http://sdm.link/slashdot
> _______________________________________________
> ruby-gnome2-devel-en mailing list
> rub...@li...
> https://lists.sourceforge.net/lists/listinfo/ruby-gnome2-devel-en
|
|
From: John L. <jo...@la...> - 2017-02-28 11:36:54
|
On 27/02/17 16:56, cedlemo wrote: > > Maybe look here https://github.com/ruby-gnome2/ggit this is a loader for > the gobject-libgit2. It is very simple, it should be a good starting point. > > Look in the ruby-gnome2 gems too; the atk gem, for example, has been > recently updated in order to use gobject-introspection instead of the C > bindings. > Hey Cedelmo, well I have something partially working with GI! I know the library is hooked up because I have a call that works and it outputs text that is in the library. However, this: Keybinder.bind('Menu', Callback, 'Key pressed') fails with this error: /usr/lib/ruby/gems/2.3.0/gems/gobject-introspection-3.1.1/lib/gobject-introspection/loader.rb:651:in `validate_arguments': Keybinder.bind: wrong number of arguments (3 for 1) (ArgumentError) I have looked at the source[1] and studied the annotation documentation[2]. I can see that the actual bind function is skipped but `keybinder_bind_full` is renamed to `keybinder_bind`. The header for that function shows four parameters of which the last is optional, so my call passing three parameters ought to be ok: /** * keybinder_bind_full: (rename-to keybinder_bind) * @keystring: an accelerator description (gtk_accelerator_parse() format) * @handler: (scope notified): callback function * @user_data: (closure) (allow-none): data to pass to @handler * @notify: (allow-none): called when @handler is unregistered * * Grab a key combination globally and register a callback to be called each * time the key combination is pressed. * * Since: 0.3.0 * * Returns: %TRUE if the accelerator could be grabbed */ gboolean keybinder_bind_full (const char *keystring, KeybinderHandler handler, void *user_data, GDestroyNotify notify) So I must have done something wrong, but I actually did very little. Here's my GI module: module Keybinder class Loader < GObjectIntrospection::Loader end loader = Loader.new(self) loader.load("Keybinder") end I'm not sure where to go from here... Thanks for your help, John [1] https://github.com/kupferlauncher/keybinder/blob/master/libkeybinder/bind.c#L547 [2] https://wiki.gnome.org/Projects/GObjectIntrospection/Annotations |
|
From: cedlemo <ce...@gm...> - 2017-02-27 16:56:26
|
Maybe look here https://github.com/ruby-gnome2/ggit this is a loader for the gobject-libgit2. It is very simple, it should be a good starting point. Look in the ruby-gnome2 gems too; the atk gem, for example, has been recently updated in order to use gobject-introspection instead of the C bindings. On 27/02/2017 17:30, John Lane wrote: > On 27/02/17 15:43, cedlemo wrote: > >> Keybinder-3.0 support GObject-Introspection so you could just write a >> loader. >> >> If you need more information, just ask. >> > My FFI is working except the key event callback doesn't work. So, rather > than trying to fix that, I can try to write a GObject-Introspection > loader. I've no idea where to start so some pointers would be good. Then > I'll give it a try... > > > > ------------------------------------------------------------------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, SlashDot.org! http://sdm.link/slashdot > _______________________________________________ > ruby-gnome2-devel-en mailing list > rub...@li... > https://lists.sourceforge.net/lists/listinfo/ruby-gnome2-devel-en |
|
From: John L. <jo...@la...> - 2017-02-27 16:31:17
|
On 27/02/17 15:43, cedlemo wrote: > > Keybinder-3.0 support GObject-Introspection so you could just write a > loader. > > If you need more information, just ask. > My FFI is working except the key event callback doesn't work. So, rather than trying to fix that, I can try to write a GObject-Introspection loader. I've no idea where to start so some pointers would be good. Then I'll give it a try... |
|
From: cedlemo <ce...@gm...> - 2017-02-27 15:43:48
|
Hi Jhon, No I don't think that it exists some ruby bindings for Keybinder. Before you go further with FFI, have thought or tried to create a loader with GObject-Introspection ? Keybinder-3.0 support GObject-Introspection so you could just write a loader. If you need more information, just ask. cedlemo. On 27/02/2017 15:32, John Lane wrote: > Are there any Ruby bindings for Keybinder ? > > (https://lazka.github.io/pgi-docs/#Keybinder-3.0) > > Assuming there isn't, I've started to put one together using FFI. > > > ------------------------------------------------------------------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, SlashDot.org! http://sdm.link/slashdot > _______________________________________________ > ruby-gnome2-devel-en mailing list > rub...@li... > https://lists.sourceforge.net/lists/listinfo/ruby-gnome2-devel-en |