def __init__(self):
        '''
        init docs
        '''
        gtk.VBox.__init__(self)
        self.wait_duration_items = [("1 %s" % _("Minute"), 60),
                                    ("5 %s" % _("Minutes"), 300),
                                    ("10 %s" % _("Minutes"), 600),
                                    ("15 %s" % _("Minutes"), 900),
                                    ("30 %s" % _("Minutes"), 1800),
                                    ("1 %s" % _("Hour"), 3600),
                                    (_("Never"), 0)]
        self.power_manager = PowerManager()
        self.power_manager.power_settings.connect(
            "changed", self.__power_settings_changed)
        self.power_manage_items = [
            (_("Do nothing"), self.power_manager.nothing),
            (_("Suspend"), self.power_manager.suspend),
            (_("Shut down"), self.power_manager.shutdown)
        ]
        self.power_plan_items = [(_("Balanced"), self.power_manager.balance),
                                 (_("Power saver"), self.power_manager.saving),
                                 (_("High performance"),
                                  self.power_manager.high_performance),
                                 (_("Custom"), self.power_manager.customized)]
        '''
        button power config
        '''
        self.button_power_config_align = self.__setup_title_align(
            app_theme.get_pixbuf("power/button_power.png"),
            _("Power Button Settings"), TEXT_WINDOW_TOP_PADDING,
            TEXT_WINDOW_LEFT_PADDING)
        '''
        press button power
        '''
        self.press_button_power_align = self.__setup_align()
        self.press_button_power_box = gtk.HBox(spacing=WIDGET_SPACING)
        self.press_button_power_label = self.__setup_label(
            _("When I press the power button"))
        self.press_button_power_combo = self.__setup_combo(
            self.power_manage_items)
        self.press_button_power_combo.set_select_index(
            self.power_manager.get_press_button_power(self.power_manage_items))
        self.press_button_power_combo.connect("item-selected",
                                              self.__combo_item_selected,
                                              "press_button_power")
        self.__widget_pack_start(
            self.press_button_power_box,
            [self.press_button_power_label, self.press_button_power_combo])
        self.press_button_power_align.add(self.press_button_power_box)
        '''
        close notebook cover
        '''
        self.close_notebook_cover_align = self.__setup_align()
        self.close_notebook_cover_box = gtk.HBox(spacing=WIDGET_SPACING)
        self.close_notebook_cover_label = self.__setup_label(
            _("When I close the lid"))
        self.close_notebook_cover_combo = self.__setup_combo(
            self.power_manage_items)
        self.close_notebook_cover_combo.set_select_index(
            self.power_manager.get_close_notebook_cover(
                self.power_manage_items))
        self.close_notebook_cover_combo.connect("item-selected",
                                                self.__combo_item_selected,
                                                "close_notebook_cover")
        self.__widget_pack_start(
            self.close_notebook_cover_box,
            [self.close_notebook_cover_label, self.close_notebook_cover_combo])
        self.close_notebook_cover_align.add(self.close_notebook_cover_box)
        self.close_notebook_cover_align.set_child_visible(is_laptop())
        '''
        power save config
        '''
        self.power_save_config_align = self.__setup_title_align(
            app_theme.get_pixbuf("power/power_save.png"),
            _("Power Saving Settings"))
        '''
        power plan
        '''
        self.power_plan_align = self.__setup_align()
        self.power_plan_box = gtk.HBox(spacing=WIDGET_SPACING)
        self.power_plan_label = self.__setup_label(_("Power Plan"))
        self.power_plan_combo = self.__setup_combo(self.power_plan_items)
        self.power_plan_combo.set_select_index(
            self.power_manager.get_current_plan())
        self.power_plan_combo.connect("item-selected",
                                      self.__combo_item_selected, "power_plan")
        self.__widget_pack_start(
            self.power_plan_box,
            [self.power_plan_label, self.power_plan_combo])
        self.power_plan_align.add(self.power_plan_box)
        '''
        close monitor
        '''
        self.close_monitor_align = self.__setup_align()
        self.close_monitor_box = gtk.HBox(spacing=WIDGET_SPACING)
        self.close_monitor_label = self.__setup_label(_("Turn off monitor"))
        self.close_monitor_combo = self.__setup_combo(self.wait_duration_items)
        self.close_monitor_combo.set_select_index(0)
        self.close_monitor_combo.connect("item-selected",
                                         self.__combo_item_selected,
                                         "close_monitor")
        self.__widget_pack_start(
            self.close_monitor_box,
            [self.close_monitor_label, self.close_monitor_combo])
        self.close_monitor_align.add(self.close_monitor_box)
        '''
        suspend
        '''
        self.suspend_align = self.__setup_align()
        self.suspend_box = gtk.HBox(spacing=WIDGET_SPACING)
        self.suspend_label = self.__setup_label(_("Suspend"))
        self.suspend_combo = self.__setup_combo(self.wait_duration_items)
        self.suspend_combo.set_select_index(0)
        self.suspend_combo.connect("item-selected", self.__combo_item_selected,
                                   "suspend")
        self.__widget_pack_start(self.suspend_box,
                                 [self.suspend_label, self.suspend_combo])
        self.suspend_align.add(self.suspend_box)
        self.__on_power_plan_customized()
        '''
        percentage
        '''
        self.percentage_align = self.__setup_align()
        self.percentage_box = gtk.HBox(spacing=WIDGET_SPACING)
        self.percentage_label = self.__setup_label(
            _("Battery power remaining"))
        self.percentage_progressbar_align = self.__setup_align(padding_left=0,
                                                               padding_top=0)
        self.percentage_progressbar = self.__setup_progressbar(
            self.power_manager.power_settings.get_double("percentage"))
        self.percentage_progressbar_align.add(self.percentage_progressbar)
        self.__widget_pack_start(
            self.percentage_box,
            [self.percentage_label, self.percentage_progressbar_align])
        self.percentage_align.add(self.percentage_box)
        self.percentage_align.set_child_visible(is_laptop())
        '''
        wakeup password
        '''
        self.wakeup_password_align = self.__setup_align(
            padding_top=BETWEEN_SPACING, padding_left=TEXT_WINDOW_LEFT_PADDING)
        self.wakeup_password_box = gtk.HBox(spacing=WIDGET_SPACING)
        self.wakeup_password_image = ImageBox(
            app_theme.get_pixbuf("lock/lock.png"))
        self.wakeup_password_label = self.__setup_label(
            _("Require password when computer wakes"),
            TITLE_FONT_SIZE,
            ALIGN_START,
            text_color=app_theme.get_color("globalTitleForeground"))
        #self.wakeup_password_label.set_sensitive(self.power_manager.get_wakeup_password())
        self.wakeup_password_toggle_align = self.__setup_align(padding_top=2,
                                                               padding_left=88)
        self.wakeup_password_toggle = self.__setup_toggle()
        self.wakeup_password_toggle.set_active(
            self.power_manager.get_wakeup_password())
        self.wakeup_password_toggle.connect("toggled", self.__toggled,
                                            "wakeup_password")
        self.wakeup_password_toggle_align.add(self.wakeup_password_toggle)
        self.__widget_pack_start(self.wakeup_password_box, [
            self.wakeup_password_image, self.wakeup_password_label,
            self.wakeup_password_toggle_align
        ])
        self.wakeup_password_align.add(self.wakeup_password_box)
        '''
        tray battery status
        '''
        self.tray_battery_status_align = self.__setup_align(
            padding_top=BETWEEN_SPACING, padding_left=TEXT_WINDOW_LEFT_PADDING)
        self.tray_battery_status_box = gtk.HBox(spacing=WIDGET_SPACING)
        self.tray_battery_image = ImageBox(
            app_theme.get_pixbuf("power/tray_battery.png"))
        self.tray_battery_status_label = self.__setup_label(
            _("Always show icon in the tray"),
            TITLE_FONT_SIZE,
            ALIGN_START,
            text_color=app_theme.get_color("globalTitleForeground"))
        #self.tray_battery_status_label.set_sensitive(self.power_manager.get_tray_battery_status())
        self.tray_battery_status_toggle_align = self.__setup_align(
            padding_top=2, padding_left=88)
        self.tray_battery_status_toggle = self.__setup_toggle()
        self.tray_battery_status_toggle.set_active(
            self.power_manager.get_tray_battery_status())
        self.tray_battery_status_toggle.connect("toggled", self.__toggled,
                                                "tray_battery_status")
        self.tray_battery_status_toggle_align.add(
            self.tray_battery_status_toggle)
        self.__widget_pack_start(self.tray_battery_status_box, [
            self.tray_battery_image, self.tray_battery_status_label,
            self.tray_battery_status_toggle_align
        ])
        self.tray_battery_status_align.add(self.tray_battery_status_box)
        self.tray_battery_status_align.set_child_visible(is_laptop())
        '''
        this->gtk.VBox pack_start
        '''
        self.__widget_pack_start(self, [
            self.button_power_config_align,
            self.press_button_power_align,
            self.close_notebook_cover_align,
            self.power_save_config_align,
            self.power_plan_align,
            self.close_monitor_align,
            self.suspend_align,
            self.percentage_align,
            self.wakeup_password_align,
            self.tray_battery_status_align,
        ])

        self.connect("expose-event", self.__expose)

        self.__send_message("status", ("power", ""))
        self.__send_message("status", ("power", "show_reset"))