rgw 0.5.0 → 0.6.0

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
  SHA1:
3
- metadata.gz: 578c7d17389d5b8f1167435f24bd1d3312f849dc
4
- data.tar.gz: 2324a038b1118c30b09bf031c7cc214ebbba42fa
3
+ metadata.gz: 1d13a2418680d672dfdd84912edc17e1de7e56f5
4
+ data.tar.gz: 08b5f0593508f29b92daa8452fba7ba7399d79a8
5
5
  SHA512:
6
- metadata.gz: ccef010722fc8ed489c862c271d0324009e969fbac2c4777a74a267d14ee9e0d7768aa535f2dc2177f743ab90406238752d6a91996c8141b15d881d389c02ca5
7
- data.tar.gz: edeaf35d05c90320e3a23003ce950553c83bb9d4852eae096087c2631f9357a4eaf45b5f9a3acf876040991f35898828dcf8abdc705c3297345080b6e876c8e3
6
+ metadata.gz: 17c080845299133852fc34f4ae2eb3519635a99d14161cabcc461e73a62b095884e7620dd345c4e00de256f14a291b04e9d4eb6c85d57f509d434e385822aadb
7
+ data.tar.gz: eef854e034eb971a5a8e6101f38ed929293fa7ee1693af3c7ea3fd2ded9248952ec4defdd674123afa94bf0322d42da1a7b838c75abd3356d66865b50ba470f3
data/README.md CHANGED
@@ -3,16 +3,17 @@
3
3
  Rgw is a collection of [Gtk+](http://www.gtk.org/) widgets implemented in and for the
4
4
  [ruby](https://www.ruby-lang.org) programming language.
5
5
 
6
- **requirements**
7
- ruby >= 2.0.0
8
- ruby-gtk >= 2.2.0
9
- gtk >= 3.10
10
6
 
11
7
  **how to install**
12
- ruby setup.rb config
13
- ruby setup.rb setup
14
- *get root / superuser*
15
- ruby setup.rb install
8
+ Rgw comes as a RubyGem from [http://rubygems.org/](http://rubygems.org/). Just install it with
9
+
10
+ <pre><code>~$sudo gem install rgw</code></pre>
11
+
12
+ If you want to install a cloned copy from github.com you first have to create the gem package with
13
+
14
+ <pre><code>~$gem build rgw.gemspec
15
+ ~$sudo gem install rgw-"version".gem</code></pre>
16
+
16
17
 
17
18
  At this point, the widgets are working, but special functionality may be missing. A TODO list is at
18
19
  the head of every library file. Feel free to implement :-)
@@ -0,0 +1,108 @@
1
+ #encoding: UTF-8
2
+
3
+ =begin
4
+ Pile is free software; you can redistribute it and/or
5
+ modify it under the terms of the GNU Lesser General Public
6
+ License as published by the Free Software Foundation; either
7
+ version 2.1 of the License, or (at your option) any later version.
8
+
9
+ Pile is distributed in the hope that it will be useful,
10
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
+ Lesser General Public License for more details.
13
+
14
+ You should have received a copy of the GNU Lesser General Public
15
+ License along with Pile; if not, write to the Free Software Foundation,
16
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
+
18
+ Copyright 2014 Detlef Reichl detlef!reichl()gmx!org
19
+ =end
20
+
21
+ # Rgw::Pile is a container, that allows to stack a widget (the pile child)
22
+ # over an other one (the child). The pile child can be placed freely over the
23
+ # child. The pile child doesn't cover the complete child, so it will receive
24
+ # all events for the none covered areas.
25
+ #
26
+ # IMPORTANT
27
+ # =========
28
+ # Rgw::Pile is not a real Gtk::Container implementation, because
29
+ # afaik building real subclasses of Gtk::Container is for now not possible with
30
+ # Ruby-Gtk. So this is a little bit of a hack and depending of the usage it can
31
+ # produce unexpected results. So don't see this as an ready-to-use widget but
32
+ # more as a base for your own implementations.
33
+
34
+ module Rgw
35
+ class Pile < Gtk::Box
36
+ # Initialize a new Rgw::Pile object
37
+ def initialize
38
+ super(:vertical)
39
+ @child1 = nil
40
+ @child2 = nil
41
+ @x = 0
42
+ @y = 0
43
+ end
44
+
45
+ # Adds the bottom child to the widget.
46
+ #
47
+ # @param child [Gtk::Widget] The widget to add.
48
+ def set_child child
49
+ raise RuntimeError, 'Rgw::Pile can only contain one child' unless @child1.nil?
50
+ @child1 = child
51
+ self.pack_start @child1, :expand => true, :fill => true
52
+ @child1.signal_connect_after(:size_allocate) {|widget, allo| on_allocate1 widget, allo}
53
+ end
54
+
55
+ # Adds the stacked child to the widget.
56
+ #
57
+ # @param child [Gtk::Widget] The widget to add. It has to be added _after_ the child.
58
+
59
+ def set_pile_child child, x=0, y=0
60
+ raise RuntimeError, 'child has to be set before pile_child' if @child1.nil?
61
+ raise RuntimeError, 'Rgw::Pile can only contain one pile_child' unless @child2.nil?
62
+ raise ArgumentError, "unsuported class %s, expect Gtk::Widget for child" % child.class.to_s unless child.is_a? Gtk::Widget
63
+ raise ArgumentError, "unsuported class %s, expect Integer for x" % x.class.to_s unless x.is_a? Integer
64
+ raise ArgumentError, "unsuported class %s, expect Integer for y" % y.class.to_s unless y.is_a? Integer
65
+
66
+ @pileBox = Gtk::Box.new :horizontal
67
+ self.pack_start @pileBox, :expand => false, :fill => false
68
+
69
+
70
+ @child2 = child
71
+ @x = x
72
+ @y = y
73
+
74
+ @child2.has_window = false
75
+ @pileBox.pack_start @child2, :expand => false, :fill => false
76
+ @child2.set_parent_window self.window
77
+ @pileBox.signal_connect_after(:size_allocate) {|widget, allo| on_allocate2 widget, allo}
78
+ end
79
+
80
+
81
+ private
82
+ # Expands the child, so that it also consumes the place the pile child used.
83
+ def on_allocate1 widget, allocation
84
+ allocation.height = self.allocation.height
85
+ widget.size_allocate allocation
86
+ end
87
+
88
+
89
+ # Moves the pile child to it's destination.
90
+ def on_allocate2 widget, allocation
91
+ sAllocation = self.allocation
92
+
93
+ if @x >= 0
94
+ allocation.x = @x
95
+ elsif @x < 0
96
+ allocation.x = sAllocation.width - @child2.allocation.width - -@x
97
+ end
98
+
99
+ if @y >= 0
100
+ allocation.y = @y
101
+ elsif @y < 0
102
+ allocation.y = sAllocation.height - @child2.allocation.height - -@y
103
+ end
104
+
105
+ widget.size_allocate allocation
106
+ end
107
+ end
108
+ end
@@ -94,7 +94,7 @@ module Rgw
94
94
 
95
95
 
96
96
  def active
97
- idx
97
+ @lastRevealed
98
98
  end
99
99
 
100
100
 
@@ -1,3 +1,3 @@
1
1
  module Rgw
2
- VERSION = [0, 5, 0]
2
+ VERSION = [0, 6, 0]
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rgw
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Detlef Reichl
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-29 00:00:00.000000000 Z
11
+ date: 2014-06-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: i18n-toolbox
@@ -50,6 +50,7 @@ files:
50
50
  - lib/data/pixmaps/lock16.png
51
51
  - lib/data/pixmaps/unlock16.png
52
52
  - lib/rgw/big-list.rb
53
+ - lib/rgw/pile.rb
53
54
  - lib/rgw/property-editor.rb
54
55
  - lib/rgw/radio-revealer.rb
55
56
  - lib/rgw/restricted-entry.rb