Accept an optional argument that's the height of the Embrace window.
authorTilman Sauerbeck <tilman@code-monkey.de>
Thu, 16 Nov 2006 17:38:39 +0000 (18:38 +0100)
committerTilman Sauerbeck <tilman@code-monkey.de>
Thu, 16 Nov 2006 17:38:39 +0000 (18:38 +0100)
bin/embrace

index 1d28c908d65f5b274d92dfc4068b3529332ba85e..79d57c892ae374d3498066c19d2e5072e936c11e 100755 (executable)
@@ -27,25 +27,9 @@ require "embrace/imap"
 PKG_NAME = "embrace"
 DATADIR = "/usr/local/share/#{PKG_NAME}/"
 
-class Evas::EvasObject
-       def move_relative(obj, x, y)
-               # FIXME investigate whether there's an easier way
-               move(*obj.geometry[0..1].zip([x, y]).map { |(a, b)| a + b })
-       end
-
-       def center(obj)
-               a = geometry
-               b = obj.geometry
-
-               move_relative(obj, (b[2] / 2) - (a[2] / 2),
-                                  (b[3] / 2) - (a[3] / 2))
-       end
-end
-
 module Embrace
        VERSION = "0.0.1"
        ICON_FILE = DATADIR + "l33t_MAI_envelope.png"
-       MAX_ICONS = 11
 
        class ZeroToOneAnimator < Ecore::Animator
                def initialize(duration)
@@ -146,6 +130,12 @@ module Embrace
                        @label.text = name
                        @label.set_font("VeraBd", 10)
 
+                       a = @label.geometry
+                       b = *@img.get_size
+
+                       @label_offset_x = (b[0] / 2) - (a[2] / 2)
+                       @label_offset_y = (b[1] / 2) - (a[3] / 2)
+
                        resize(*@img.get_size)
                end
 
@@ -186,9 +176,11 @@ module Embrace
                end
 
                def smart_move(x, y)
-                       @objects.each { |o| o.move(x, y) }
+                       @img.move(x, y)
 
-                       @label.center(self)
+                       # center the label on the image
+                       @label.move(x + @label_offset_x,
+                                   y + @label_offset_y)
                end
 
                def smart_resize(w, h)
@@ -238,7 +230,11 @@ module Embrace
                        Kernel.raise(ContainerFullError) if slots_left.zero?
                        Kernel.raise(ContainerLockedError) unless @add_lock_count.zero?
 
-                       i.move_relative(self, 0, 0)
+                       geo = geometry
+
+                       i.move(geo[0],
+                              geo[1] + geo[3] % Main.instance.icon_height)
+
                        i.slot = next_slot
                        i.clip = self
                        i.fade_in
@@ -323,8 +319,12 @@ module Embrace
                end
 
                private
+               def max_icons
+                       geometry.pop / Main.instance.icon_height
+               end
+
                def slots_left
-                       MAX_ICONS - @icons.nitems - @about_to_add
+                       max_icons - @icons.nitems - @about_to_add
                end
 
                def next_slot
@@ -353,7 +353,15 @@ module Embrace
                        @container.layer = -1
                        @container.show
 
-                       size = [@icon_dim.first, icon_height * MAX_ICONS]
+                       size = [@icon_dim.first]
+
+                       arg = ARGV.shift
+                       if arg.nil?
+                               size << icon_height * 11
+                       else
+                               size << arg.to_i
+                       end
+
                        resize(*size)
                        set_size_min(*size)
                        set_size_max(*size)