projects
/
embrace.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
reworked icon handling
[embrace.git]
/
bin
/
embrace
diff --git
a/bin/embrace
b/bin/embrace
index 66915743cf3aa4a654f03a07c82896cbe4097735..b586afe5b4c12e206a7f2c092e05fee384355456 100755
(executable)
--- a/
bin/embrace
+++ b/
bin/embrace
@@
-117,9
+117,9
@@
module Embrace
@label = Evas::Text.new(evas)
@objects = [@img, @label]
@label = Evas::Text.new(evas)
@objects = [@img, @label]
+ @objects.each { |o| add_member(o) }
@img.set_color(255, 255, 255, 0)
@img.set_color(255, 255, 255, 0)
- @label.set_color(255, 255, 255, 0)
@label.set_color(255, 0, 0, 0)
@img.set_file(ICON_FILE)
@label.set_color(255, 0, 0, 0)
@img.set_file(ICON_FILE)
@@
-170,28
+170,6
@@
module Embrace
end
end
end
end
- class FixedSizeArray < Array
- def initialize(siz)
- super
- end
-
- def each
- super { |item| yield item unless item.nil? }
- end
-
- def delete_at(i)
- self[i] = nil
- end
-
- undef :push
- undef :<<
- undef :unshift
-
- undef :pop
- undef :shift
- undef :delete
- end
-
class Container < Evas::Smart
class ContainerError < StandardError; end
class ContainerFullError < ContainerError; end
class Container < Evas::Smart
class ContainerError < StandardError; end
class ContainerFullError < ContainerError; end
@@
-205,20
+183,22
@@
module Embrace
@bg = Evas::Rectangle.new(evas)
@bg.set_color(0, 0, 0, 255)
@bg = Evas::Rectangle.new(evas)
@bg.set_color(0, 0, 0, 255)
- @icons = FixedSizeArray.new(MAX_ICONS)
- @about_to_add = []
+ add_member(@bg)
+
+ @icons = []
@animators = []
@animators = []
- @lock_count = 0
+ @about_to_add = 0
+ @add_lock_count = 0
end
def each
end
def each
- @icons.each { |i| yield i
unless i.nil?
}
+ @icons.each { |i| yield i }
end
def <<(i)
Kernel.raise(ContainerFullError) if slots_left.zero?
end
def <<(i)
Kernel.raise(ContainerFullError) if slots_left.zero?
- Kernel.raise(ContainerLockedError)
if @lock_count > 0
+ Kernel.raise(ContainerLockedError)
unless @add_lock_count.zero?
i.move_relative(self, 0, 0)
i.slot = next_slot
i.move_relative(self, 0, 0)
i.slot = next_slot
@@
-233,7
+213,7
@@
module Embrace
movement = Main.instance.icon_height * (slots_left - 1)
movement = Main.instance.icon_height * (slots_left - 1)
- @about_to_add
<< i
+ @about_to_add
+= 1
move_time = 0.25 * slots_left
@animators << MoveAnimator.new(move_time, movement, i)
move_time = 0.25 * slots_left
@animators << MoveAnimator.new(move_time, movement, i)
@@
-242,15
+222,11
@@
module Embrace
@animators.delete(ani)
@icons[i.slot] = i
@animators.delete(ani)
@icons[i.slot] = i
- # FIXME check whether we can always shift the array instead
- #puts "really added #{i.label} now (slot #{i.slot})"
- @about_to_add.delete(i)
+ @about_to_add -= 1
end
end
def delete(icon)
end
end
def delete(icon)
- # icons that are placed above the one that's deleted need
- # to be moved
i = @icons.index(icon)
return (block_given? ? yield : nil) if i.nil?
i = @icons.index(icon)
return (block_given? ? yield : nil) if i.nil?
@@
-258,25
+234,26
@@
module Embrace
end
def delete_at(i)
end
def delete_at(i)
+ Kernel.raise(ContainerLockedError) unless @about_to_add.zero?
+
+ # icons that are placed above the one that's deleted need
+ # to be moved
+ ar = @icons[(i + 1)..-1]
+
@icons[i].delete
@icons.delete_at(i)
@icons[i].delete
@icons.delete_at(i)
- ar = @icons[i..-1].reject { |i| i.nil? }
- return if ar.nil?
+ return if ar.empty?
- @lock_count += 1
+ @
add_
lock_count += 1
@animators << MoveAnimator.new(2, Main.instance.icon_height, *ar)
@animators.last.on_finished do |ani|
@animators.delete(ani)
@animators << MoveAnimator.new(2, Main.instance.icon_height, *ar)
@animators.last.on_finished do |ani|
@animators.delete(ani)
- @lock_count -= 1
+ @
add_
lock_count -= 1
end
end
end
end
- def length
- @icons.nitems
- end
-
# smart callbacks
def on_show
@bg.show
# smart callbacks
def on_show
@bg.show
@@
-301,11
+278,11
@@
module Embrace
private
def slots_left
private
def slots_left
- MAX_ICONS - @icons.nitems - @about_to_add
.length
+ MAX_ICONS - @icons.nitems - @about_to_add
end
def next_slot
end
def next_slot
- @icons.nitems + @about_to_add
.length
+ @icons.nitems + @about_to_add
end
end
end
end
@@
-322,7
+299,7
@@
module Embrace
@icon_dim = IO.read(ICON_FILE, 8, 16).unpack("NN")
@icon_dim = IO.read(ICON_FILE, 8, 16).unpack("NN")
-
self.
on_resize { @container.resize(*geometry[2, 3]) }
+ on_resize { @container.resize(*geometry[2, 3]) }
@container = Container.new(evas)
@container.move(0, 0)
@container = Container.new(evas)
@container.move(0, 0)