Add "Higlight Self" option
This commit is contained in:
parent
5e03ac23ed
commit
bd2be2b98c
4 changed files with 57 additions and 28 deletions
|
|
@ -38,11 +38,23 @@ import logging
|
|||
|
||||
class Discover:
|
||||
def __init__(self):
|
||||
pass
|
||||
self.a = Autostart("discover_overlay")
|
||||
# a.set_autostart(True)
|
||||
self.create_gui()
|
||||
self.connection = DiscordConnector(
|
||||
self.text_settings, self.voice_settings,
|
||||
self.text_overlay, self.voice_overlay)
|
||||
self.connection.connect()
|
||||
GLib.timeout_add((1000 / 60), self.connection.do_read)
|
||||
|
||||
try:
|
||||
Gtk.main()
|
||||
except:
|
||||
pass
|
||||
|
||||
def create_gui(self):
|
||||
self.voice_overlay = VoiceOverlayWindow()
|
||||
self.text_overlay = TextOverlayWindow()
|
||||
self.voice_overlay = VoiceOverlayWindow(self)
|
||||
self.text_overlay = TextOverlayWindow(self)
|
||||
self.menu = self.make_menu()
|
||||
self.make_sys_tray_icon(self.menu)
|
||||
self.voice_settings = VoiceSettingsWindow(self.voice_overlay)
|
||||
|
|
@ -103,23 +115,7 @@ class Discover:
|
|||
def close(self, a=None, b=None, c=None):
|
||||
Gtk.main_quit()
|
||||
|
||||
def main(self):
|
||||
self.a = Autostart("discover_overlay")
|
||||
# a.set_autostart(True)
|
||||
self.create_gui()
|
||||
self.connection = DiscordConnector(
|
||||
self.text_settings, self.voice_settings,
|
||||
self.text_overlay, self.voice_overlay)
|
||||
self.connection.connect()
|
||||
GLib.timeout_add((1000 / 60), self.connection.do_read)
|
||||
|
||||
try:
|
||||
Gtk.main()
|
||||
except:
|
||||
pass
|
||||
|
||||
|
||||
def entrypoint():
|
||||
logging.getLogger().setLevel(logging.INFO)
|
||||
discover = Discover()
|
||||
discover.main()
|
||||
|
|
|
|||
|
|
@ -15,8 +15,9 @@ from .image_getter import get_surface
|
|||
|
||||
|
||||
class TextOverlayWindow(OverlayWindow):
|
||||
def __init__(self):
|
||||
def __init__(self, discover):
|
||||
OverlayWindow.__init__(self)
|
||||
self.discover = discover
|
||||
self.text_spacing = 4
|
||||
self.content = []
|
||||
self.text_font = None
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import gi
|
||||
|
||||
gi.require_version("Gtk", "3.0")
|
||||
gi.require_version('PangoCairo', '1.0')
|
||||
gi.require_version('GdkPixbuf', '2.0')
|
||||
|
|
@ -13,10 +14,10 @@ import logging
|
|||
|
||||
class VoiceOverlayWindow(OverlayWindow):
|
||||
|
||||
|
||||
def __init__(self):
|
||||
def __init__(self, discover):
|
||||
OverlayWindow.__init__(self)
|
||||
|
||||
self.discover = discover
|
||||
self.avatars = {}
|
||||
|
||||
self.avatar_size = 48
|
||||
|
|
@ -87,6 +88,9 @@ class VoiceOverlayWindow(OverlayWindow):
|
|||
def set_only_speaking(self, only_speaking):
|
||||
self.only_speaking = only_speaking
|
||||
|
||||
def set_highlight_self(self, highlight_self):
|
||||
self.highlight_self = highlight_self
|
||||
|
||||
def set_wind_col(self):
|
||||
self.col(self.wind_col)
|
||||
|
||||
|
|
@ -142,16 +146,28 @@ class VoiceOverlayWindow(OverlayWindow):
|
|||
if not self.connected:
|
||||
return
|
||||
|
||||
connection = self.discover.connection
|
||||
self_user = connection.user
|
||||
|
||||
# Gather which users to draw
|
||||
if self.only_speaking:
|
||||
self.users_to_draw = self.userlist[:]
|
||||
self.users_to_draw = self.userlist[:]
|
||||
for user in self.userlist:
|
||||
# Bad object equality here, so we need to reassign
|
||||
if user["id"] == self_user["id"]:
|
||||
self_user = user
|
||||
|
||||
# Remove users that arent speaking
|
||||
for user in self.userlist:
|
||||
if self.only_speaking:
|
||||
speaking = "speaking" in user and user["speaking"]
|
||||
if not speaking:
|
||||
self.users_to_draw.remove(user)
|
||||
else:
|
||||
self.users_to_draw = self.userlist
|
||||
|
||||
if self.highlight_self:
|
||||
try:
|
||||
self.users_to_draw.remove(self_user)
|
||||
except ValueError:
|
||||
pass # Not in list
|
||||
self.users_to_draw.insert(0, self_user)
|
||||
|
||||
# Get size of window
|
||||
(w, h) = self.get_size()
|
||||
|
|
@ -369,7 +385,6 @@ class VoiceOverlayWindow(OverlayWindow):
|
|||
context.close_path()
|
||||
context.clip()
|
||||
|
||||
|
||||
# Top band
|
||||
context.arc(0.5, 0.5, 0.2, 1.0 * math.pi, 0)
|
||||
context.stroke()
|
||||
|
|
|
|||
|
|
@ -57,6 +57,8 @@ class VoiceSettingsWindow(SettingsWindow):
|
|||
"main", "square_avatar", fallback=False)
|
||||
self.only_speaking = config.getboolean(
|
||||
"main", "only_speaking", fallback=False)
|
||||
self.highlight_self = config.getboolean(
|
||||
"main", "highlight_self", fallback=False)
|
||||
self.monitor = config.get("main", "monitor", fallback="None")
|
||||
self.vert_edge_padding = config.getint(
|
||||
"main", "vert_edge_padding", fallback=0)
|
||||
|
|
@ -80,6 +82,7 @@ class VoiceSettingsWindow(SettingsWindow):
|
|||
self.overlay.set_text_padding(self.text_padding)
|
||||
self.overlay.set_square_avatar(self.square_avatar)
|
||||
self.overlay.set_only_speaking(self.only_speaking)
|
||||
self.overlay.set_highlight_self(self.highlight_self)
|
||||
self.overlay.set_monitor(self.get_monitor_index(self.monitor))
|
||||
self.overlay.set_vert_edge_padding(self.vert_edge_padding)
|
||||
self.overlay.set_horz_edge_padding(self.horz_edge_padding)
|
||||
|
|
@ -113,6 +116,7 @@ class VoiceSettingsWindow(SettingsWindow):
|
|||
config.set("main", "font", self.font)
|
||||
config.set("main", "square_avatar", "%d" % (int(self.square_avatar)))
|
||||
config.set("main", "only_speaking", "%d" % (int(self.only_speaking)))
|
||||
config.set("main", "highlight_self", "%d" % (int(self.highlight_self)))
|
||||
config.set("main", "monitor", self.monitor)
|
||||
config.set("main", "vert_edge_padding", "%d" %
|
||||
(self.vert_edge_padding))
|
||||
|
|
@ -265,6 +269,11 @@ class VoiceSettingsWindow(SettingsWindow):
|
|||
only_speaking.set_active(self.only_speaking)
|
||||
only_speaking.connect("toggled", self.change_only_speaking)
|
||||
|
||||
highlight_self_label = Gtk.Label.new("Highlight Self")
|
||||
highlight_self = Gtk.CheckButton.new()
|
||||
highlight_self.set_active(self.highlight_self)
|
||||
highlight_self.connect("toggled", self.change_highlight_self)
|
||||
|
||||
box.attach(font_label, 0, 0, 1, 1)
|
||||
box.attach(font, 1, 0, 1, 1)
|
||||
box.attach(bg_col_label, 0, 1, 1, 1)
|
||||
|
|
@ -295,6 +304,8 @@ class VoiceSettingsWindow(SettingsWindow):
|
|||
box.attach(square_avatar, 1, 15, 1, 1)
|
||||
box.attach(only_speaking_label, 0, 16, 1, 1)
|
||||
box.attach(only_speaking, 1, 16, 1, 1)
|
||||
box.attach(highlight_self_label, 0, 17, 1, 1)
|
||||
box.attach(highlight_self, 1, 17, 1, 1)
|
||||
|
||||
self.add(box)
|
||||
|
||||
|
|
@ -453,3 +464,9 @@ class VoiceSettingsWindow(SettingsWindow):
|
|||
|
||||
self.only_speaking = button.get_active()
|
||||
self.save_config()
|
||||
|
||||
def change_highlight_self(self, button):
|
||||
self.overlay.set_highlight_self(button.get_active())
|
||||
|
||||
self.highlight_self = button.get_active()
|
||||
self.save_config()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue