diff --git a/lib/pages/community.rb b/lib/pages/community.rb
index 423843b..db1a732 100644
--- a/lib/pages/community.rb
+++ b/lib/pages/community.rb
@@ -97,32 +97,84 @@ class W3DHub
if (feed = @w3dhub_news)
@wd3hub_news_container.clear do
+ # feed.items.sort_by { |i| i.timestamp }.reverse[0..9].each do |item|
+ # flow(width: 0.5, max_width: 312, height: 128, margin: 4) do
+ # # background 0x88_000000
+
+ # path = Cache.path(item.image)
+
+ # if File.exist?(path)
+ # image path, height: 1.0, padding: 4
+ # else
+ # image BLACK_IMAGE, height: 1.0, padding: 4
+ # end
+
+ # stack(width: 0.6, height: 1.0) do
+ # stack(width: 1.0, height: 112) do
+ # link "#{item.title}", text_size: 18 do
+ # Launchy.open(item.uri)
+ # end
+ # inscription item.blurb.gsub(/\n+/, "\n").strip[0..180]
+ # end
+
+ # flow(width: 1.0) do
+ # inscription item.timestamp.strftime("%Y-%m-%d"), width: 0.499
+ # link I18n.t(:"games.read_more"), width: 0.5, text_align: :right, text_size: 14 do
+ # Launchy.open(item.uri)
+ # end
+ # end
+ # end
+ # end
+ # end
+
feed.items.sort_by { |i| i.timestamp }.reverse[0..9].each do |item|
- flow(width: 0.5, max_width: 312, height: 128, margin: 4) do
- # background 0x88_000000
+ image_path = Cache.path(item.image)
+ news_blurb_container = nil
+ news_title_container = nil
- path = Cache.path(item.image)
+ news_container = stack(width: 300, height: 300, margin: 8, background_image: image_path, border_thickness: 1, border_color: lighten(Gosu::Color.new(0xff_252525))) do
+ background 0x88_000000
- if File.exist?(path)
- image path, height: 1.0, padding: 4
- else
- image BLACK_IMAGE, height: 1.0, padding: 4
+ # Detailed view
+ news_blurb_container = stack(width: 1.0, height: 1.0, background: 0xaa_000000, padding: 4) do
+ tagline "#{item.title}", width: 1.0
+ inscription "#{item.author} • #{item.timestamp.strftime("%Y-%m-%d")}"
+ inscription item.blurb.gsub(/\n+/, "\n").strip[0..1024], fill: true
+
+ button I18n.t(:"games.read_more"), width: 1.0, margin_top: 8, margin_bottom: 0, padding_top: 4, padding_bottom: 4 do
+ Launchy.open(item.uri)
+ end
end
- stack(width: 0.6, height: 1.0) do
- stack(width: 1.0, height: 112) do
- link "#{item.title}", text_size: 18 do
- Launchy.open(item.uri)
- end
- inscription item.blurb.gsub(/\n+/, "\n").strip[0..180]
- end
+ # Just title
+ news_title_container = stack(width: 1.0, height: 1.0) do
+ flow(fill: true)
- flow(width: 1.0) do
- inscription item.timestamp.strftime("%Y-%m-%d"), width: 0.499
- link I18n.t(:"games.read_more"), width: 0.5, text_align: :right, text_size: 14 do
- Launchy.open(item.uri)
- end
- end
+ tagline "#{item.title}", width: 1.0, background: 0xaa_000000, padding: 4
+ end
+ end
+
+ news_blurb_container.hide
+
+ def news_container.hit_element?(x, y)
+ return unless hit?(x, y)
+
+ if @children.first.visible? && (btn = @children.first.children.find { |child| child.visible? && child.is_a?(CyberarmEngine::Element::Button) && child.hit?(x, y) })
+ btn
+ else
+ self
+ end
+ end
+
+ news_container.subscribe(:enter) do
+ news_title_container.hide
+ news_blurb_container.show
+ end
+
+ news_container.subscribe(:leave) do
+ unless news_container.hit?(window.mouse_x, window.mouse_y)
+ news_title_container.show
+ news_blurb_container.hide
end
end
end
diff --git a/lib/pages/games_redesign.rb b/lib/pages/games_redesign.rb
index 3124091..d369f8a 100644
--- a/lib/pages/games_redesign.rb
+++ b/lib/pages/games_redesign.rb
@@ -287,7 +287,7 @@ class W3DHub
news_blurb_container = nil
news_title_container = nil
- news_container = stack(width: 346, height: 346, margin: 8, background_image: image_path, border_thickness: 1, border_color: lighten(Gosu::Color.new(game.color))) do
+ news_container = stack(width: 300, height: 300, margin: 8, background_image: image_path, border_thickness: 1, border_color: lighten(Gosu::Color.new(game.color))) do
background 0x88_000000
# Detailed view