#!/usr/local/cpython-3.6/bin/python3

# pylint: disable=wrong-import-position

"""Give a toggle button, see what it looks like."""

import sys

import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk # noqa


def make_used(thing):
    """Persuade pyflakes that we don't want to worry about 'thing' not being used."""
    assert True or thing


class GiveToggleButtons(object):

    """Create a window with a pair of toggle buttons."""

    def __init__(self):
        """Initialize."""
        self.window = Gtk.Window(Gtk.WindowType.TOPLEVEL)
        self.window.set_title('Foo')
        self.window.connect("delete_event", self.delete_event)
        self.window.show()
        self.vbox = Gtk.VBox()
        self.vbox.show()
        self.window.add(self.vbox)

        self.toggle_button1 = Gtk.ToggleButton('Click me 1')
        self.toggle_button1.show()
        self.toggle_button1.connect("clicked", self.toggle)
        self.vbox.pack_start(self.toggle_button1, True, True, 0)

        self.toggle_button2 = Gtk.ToggleButton('Click me 2')
        self.toggle_button2.show()
        self.toggle_button2.connect("clicked", self.toggle)
        self.vbox.pack_start(self.toggle_button2, True, True, 0)

        Gtk.main()

    @staticmethod
    def delete_event(*args, **kwargs):
        """Shut down GTK."""
        make_used(args)
        make_used(kwargs)
        Gtk.main_quit()
        sys.exit(0)

    def toggle(self, widget=None):
        """Called when a button is toggled."""
        if widget is self.toggle_button1:
            print('toggled 1')
        elif widget is self.toggle_button2:
            print('toggled 2')
        else:
            print('toggled, but what?')


GiveToggleButtons()