def __init__(self):
        super(InfoPanel, self).__init__()
        self.set_transition_type(Gtk.RevealerTransitionType.SLIDE_DOWN)

        self.monitor_index = status.screen.get_primary_monitor()

        self.update_geometry()

        if not settings.get_show_info_panel():
            self.disabled = True
            return

        self.show_power = False
        self.show_notifications = False

        self.box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
        self.box.set_halign(Gtk.Align.FILL)
        self.box.get_style_context().add_class("toppanel")
        self.box.get_style_context().add_class("infopanel")
        self.add(self.box)

        hbox = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL)
        self.box.pack_start(hbox, False, False, 6)

        self.notification_widget = NotificationWidget()
        self.notification_widget.set_no_show_all(True)
        hbox.pack_start(self.notification_widget, True, True, 2)
        self.notification_widget.connect("notification", self.on_notification_received)

        self.power_widget = PowerWidget()
        self.power_widget.set_no_show_all(True)
        hbox.pack_start(self.power_widget, True, True, 2)

        self.show_all()