Module: Rabbit::Renderer::Display::Mask
- Included in:
- ClutterEmbed, DrawingAreaBase
- Defined in:
- lib/rabbit/renderer/display/mask.rb
Constant Summary collapse
- MASK_SIZE_STEP =
0.05
Instance Method Summary collapse
Instance Method Details
#expand_hole ⇒ Object
14 15 16 17 18 19 20 21 |
# File 'lib/rabbit/renderer/display/mask.rb', line 14 def if @mask_size < 0 @mask_size = MASK_SIZE_STEP else @mask_size = [@mask_size + MASK_SIZE_STEP, 1.0].min end set_hole end |
#initialize(*args, &block) ⇒ Object
9 10 11 12 |
# File 'lib/rabbit/renderer/display/mask.rb', line 9 def initialize(*args, &block) super init_mask end |
#narrow_hole ⇒ Object
23 24 25 26 27 28 29 30 |
# File 'lib/rabbit/renderer/display/mask.rb', line 23 def narrow_hole if @mask_size < 0 @mask_size = 0 else @mask_size = [@mask_size - MASK_SIZE_STEP, 0.0].max end set_hole end |
#set_hole ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/rabbit/renderer/display/mask.rb', line 32 def set_hole if @mask_size <= 0 @window.shape_combine_mask(nil, 0, 0) else setup_mask if @mask.nil? w, h = width, height @mask.draw_rectangle(@set_gc, true, 0, 0, w, h) mw = w * @mask_size mh = h * @mask_size mx = (w - mw) / 2 my = (h - mh) / 2 @mask.draw_rectangle(@xor_gc, true, mx, my, mw, mh) @window.shape_combine_mask(@mask, 0, 0) end update_title # for xfwm end |