| #!/usr/bin/env python |
| # |
| # BitBake Graphical GTK User Interface |
| # |
| # Copyright (C) 2012 Intel Corporation |
| # |
| # Authored by Bogdan Marinescu <bogdan.a.marinescu@intel.com> |
| # |
| # This program is free software; you can redistribute it and/or modify |
| # it under the terms of the GNU General Public License version 2 as |
| # published by the Free Software Foundation. |
| # |
| # This program is distributed in the hope that it will be useful, |
| # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| # GNU General Public License for more details. |
| # |
| # You should have received a copy of the GNU General Public License along |
| # with this program; if not, write to the Free Software Foundation, Inc., |
| # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
| |
| import gtk, gobject |
| from bb.ui.crumbs.progressbar import HobProgressBar |
| from bb.ui.crumbs.hobwidget import hic |
| from bb.ui.crumbs.hobpages import HobPage |
| |
| # |
| # SanityCheckPage |
| # |
| class SanityCheckPage (HobPage): |
| |
| def __init__(self, builder): |
| super(SanityCheckPage, self).__init__(builder) |
| self.running = False |
| self.create_visual_elements() |
| self.show_all() |
| |
| def make_label(self, text, bold=True): |
| label = gtk.Label() |
| label.set_alignment(0.0, 0.5) |
| mark = "<span %s>%s</span>" % (self.span_tag('x-large', 'bold') if bold else self.span_tag('medium'), text) |
| label.set_markup(mark) |
| return label |
| |
| def start(self): |
| if not self.running: |
| self.running = True |
| gobject.timeout_add(100, self.timer_func) |
| |
| def stop(self): |
| self.running = False |
| |
| def is_running(self): |
| return self.running |
| |
| def timer_func(self): |
| self.progress_bar.pulse() |
| return self.running |
| |
| def create_visual_elements(self): |
| # Table'd layout. 'rows' and 'cols' give the table size |
| rows, cols = 30, 50 |
| self.table = gtk.Table(rows, cols, True) |
| self.pack_start(self.table, expand=False, fill=False) |
| sx, sy = 2, 2 |
| # 'info' icon |
| image = gtk.Image() |
| image.set_from_file(hic.ICON_INFO_DISPLAY_FILE) |
| self.table.attach(image, sx, sx + 2, sy, sy + 3 ) |
| image.show() |
| # 'Checking' message |
| label = self.make_label('Hob is checking for correct build system setup') |
| self.table.attach(label, sx + 2, cols, sy, sy + 3, xpadding=5 ) |
| label.show() |
| # 'Shouldn't take long' message. |
| label = self.make_label("The check shouldn't take long.", False) |
| self.table.attach(label, sx + 2, cols, sy + 3, sy + 4, xpadding=5) |
| label.show() |
| # Progress bar |
| self.progress_bar = HobProgressBar() |
| self.table.attach(self.progress_bar, sx + 2, cols - 3, sy + 5, sy + 7, xpadding=5) |
| self.progress_bar.show() |
| # All done |
| self.table.show() |
| |