Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

simple_tk

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

simple_tk

  • 0.1.1
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

SimpleTk

I wanted a really simple GUI library for Ruby. Not because I think Ruby should be used for GUI applications, but because I think it should be able to tbe used for GUI applications.

Really I wanted something to make a quick configuration app using an existing Ruby gem I had written. I started out with a simple console app, but I decided I wanted something even simpler for the eventual day when somebody else has to use it.

So I searched. First I found Shoes. Which would be acceptable except Shoes 3 does not have a gem and Shoes 4 requires JRuby. Ok moving on, we have several other libraries that interface with other libraries. And then Tk, which is from the Ruby code base. So time to learn Tk, which turns out has a lot of repeated steps and code. Well that's easy enough to correct. I wrote a quick wrapper and built my config app.

I extracted that wrapper and built it up to support more than just labels, entries, and buttons. This gem is the end result of that action.

Installation

Add this line to your application's Gemfile:

gem 'simple_tk'

And then execute:

$ bundle

Or install it yourself as:

$ gem install simple_tk

Usage

You can build windows using either a block passed to a window constructor or by calling the methods on the created window. Call SimpleTk.run to run your application. You can use SimpleTk.alert and SimpleTk.ask for basic message boxes. In all cases, the Tk library is available if you need more advanced options.

require 'simple_tk'
  
win = SimpleTk::Window.new(title: "My Program", window_geometry: "400x300") do
  add_label :label1, "Hello World!", :column => 0, :row => 0
  add_frame(:frame1, :column => 0, :row => 1) do
    add_button(:btn1, "Button 1", :position => [ 0, 0 ]) do
      SimpleTk.alert "You clicked Button 1!"
    end
    add_button :btn2,
        "Button 2",
        :position => { x: 1, y: 0 },
        :command => ->{ SimpleTk.alert "You clicked Button 2!" }
  end
end
  
win.add_label :label2, "Goodby World!", :column => 0, :row => 2
  
win.config_column 0, weight: 1
  
(0..win.row_count).each do |row|
  win.config_row row, weight: 1
end
  
# Use the Tk 'bind' method on the :btn2 object.  
win.object[:frame1].object[:btn2].bind("3") do
  SimpleTk.alert "You right-clicked on Button 2!"  
end
  
SimpleTk.run

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/barkerest/simple_tk.

License

The gem is available as open source under the terms of the MIT License.

FAQs

Package last updated on 22 Apr 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc