Class: RosettAi::DBus::FocusAdapters::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/rosett_ai/dbus/focus_adapters/base.rb

Overview

Base class for compositor-specific focus adapters.

Each adapter implements the same interface:

  • #start: Begin monitoring focus changes
  • #stop: Stop monitoring
  • #on_focus_change(&block): Register callback for focus changes

Callbacks receive (app_id, title) arguments.

Instance Method Summary collapse

Constructor Details

#initializeBase

Returns a new instance of Base.



19
20
21
22
# File 'lib/rosett_ai/dbus/focus_adapters/base.rb', line 19

def initialize
  @callbacks = []
  @running = false
end

Instance Method Details

#on_focus_change {|app_id, title| ... } ⇒ Object

Register callback for focus changes

Yields:

  • (app_id, title)

    Called on focus change



27
28
29
# File 'lib/rosett_ai/dbus/focus_adapters/base.rb', line 27

def on_focus_change(&block)
  @callbacks << block
end

#running?Boolean

Check if monitoring is active

Returns:

  • (Boolean)


44
45
46
# File 'lib/rosett_ai/dbus/focus_adapters/base.rb', line 44

def running?
  @running
end

#startObject

Start monitoring focus changes

Raises:

  • (NotImplementedError)


32
33
34
# File 'lib/rosett_ai/dbus/focus_adapters/base.rb', line 32

def start
  raise NotImplementedError, "#{self.class}#start must be implemented"
end

#stopObject

Stop monitoring



37
38
39
# File 'lib/rosett_ai/dbus/focus_adapters/base.rb', line 37

def stop
  @running = false
end