Commit 496f357fcb111d7763871204682158ffc146bfe6

Basic pango markup helpers

Included in widget modules and allows convinience shortcuts
in property formats such as:

span @default, :font => "terminus 12"
underline @time
background :red, @artist
foreground :blue, @title
bold @count

* lib/amazing/helpers/pango_markup.rb: (span) simple span
tag generator.
(background) shortcut for background span.
(foreground) shortcut for foreground span.
(underline) shortcut for underline span.
(bold) shortcut for weighted span.

* lib/amazing/widget.rb: (Widget) include pango markup helper.

Commit diff

lib/amazing/helpers/pango_markup.rb

 
1module Amazing
2 module Helpers
3 module PangoMarkup
4 def span(text, opts)
5 attrs = opts.map {|key, value| "#{key}=#{value.to_s.inspect}" }.join(" ")
6 "<span #{attrs}>#{text}</span>"
7 end
8
9 def background(color, text)
10 span(text, :background => color)
11 end
12
13 def foreground(color, text)
14 span(text, :foreground => color)
15 end
16
17 def underline(text, style=:single)
18 span(text, :underline => style)
19 end
20
21 def bold(text, level=:bold)
22 span(text, :weight => level)
23 end
24 end
25 end
26end
toggle raw diff

lib/amazing/widget.rb

 
11# Copyright (C) 2008 Dag Odenhall <dag.odenhall@gmail.com>
22# Licensed under the Academic Free License version 3.0
33
4require 'amazing/helpers/pango_markup'
45require 'erb'
56
67module Amazing
2525 # end
2626 # end
2727 class Widget
28 include Helpers::PangoMarkup
2829 include ERB::Util
2930
3031 def initialize(opts={})
toggle raw diff