コード例 #1
0
ファイル: search.py プロジェクト: hsavolai/vmlab
    def _create_advanced_search(self):
        self.label_group = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
        self.combo_group = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)

        add = SearchFilterButton(label=_('Filter'), stock=gtk.STOCK_ADD)
        add.connect('clicked', self._on_add_field_clicked)
        add.show()
        self.hbox.pack_end(add, False, False, 0)

        self.add_filter_button = add

        self.menu = gtk.Menu()
        for column in self._columns:
            if not isinstance(column, SearchColumn):
                continue

            if column.data_type not in (datetime.date, Decimal, int, currency,
                                        str):
                continue

            title = column.long_title or column.title

            menu_item = gtk.MenuItem(title)
            menu_item.set_data('column', column)
            menu_item.show()
            menu_item.connect('activate', self._on_menu_item_activate)
            self.menu.append(menu_item)

        if not len(self.menu):
            self.add_filter_button.hide()
コード例 #2
0
 def __init_page(self):
     box = gtk.VBox()
     self.__page = box
     s1 = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
     s2 = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
     self.__name_label = gtk.Label()
     box.pack_start(self.__name_label, expand=False)
     self.__name_label.set_alignment(0, 0.5)
     box2 = gtk.HBox(spacing=6)
     box.pack_start(box2, expand=False, padding=6)
     lb_command = gtk.Label()
     box2.pack_start(lb_command, expand=False)
     lb_command.set_markup(DEF_MU % 'Command Line')
     s1.add_widget(lb_command)
     lb_command.set_alignment(0, 0.5)
     self.__command_entry = gtk.Entry()
     box2.pack_start(self.__command_entry)
     s2.add_widget(self.__command_entry)
     box2 = gtk.HBox(spacing=6)
     box.pack_start(box2, expand=False, padding=6)
     lb_glob = gtk.Label()
     box2.pack_start(lb_glob, expand=False)
     lb_glob.set_markup(DEF_MU % 'Glob')
     s1.add_widget(lb_glob)
     lb_glob.set_alignment(0, 0.5)
     self.__glob_entry = gtk.Entry()
     box2.pack_start(self.__glob_entry)
     s2.add_widget(self.__glob_entry)
     return box
コード例 #3
0
ファイル: settings.py プロジェクト: feitianyiren/freespeak-1
 def setup_layout (self):
     """
     Setup the layout of the dialog.
     Create size groups for ensuring widgets have the same horizontal size.
     """
     self.vbox.set_spacing (6)
     self.left_group = gtk.SizeGroup (gtk.SIZE_GROUP_HORIZONTAL)
     self.right_group = gtk.SizeGroup (gtk.SIZE_GROUP_HORIZONTAL)
コード例 #4
0
    def _setSizeGroup(self): # too bad we can't do this in the glade file
        sg = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
        for w in ("nameLabel", "descriptionLabel", "baseurlRadio",
                  "mirrorRadio", "advancedLabel"):
            sg.add_widget(self.xml.get_widget(w))

        sg = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
        for w in ("nameEntry", "descriptionEntry", "baseurlEntry",
                  "mirrorEntry", "nameEntryLabel"):
            sg.add_widget(self.xml.get_widget(w))
コード例 #5
0
    def create_bug_view(self, bug_id):
        """Creates a view for individual bug"""
        bug = self.crawler.get_bug(bug_id)

        dialog = gtk.Dialog(_("Reporting a bug"), self.window, 0,
                            (gtk.STOCK_OK, gtk.RESPONSE_OK, gtk.STOCK_CANCEL,
                             gtk.RESPONSE_CANCEL))
        sizegroup1 = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
        sizegroup2 = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
        # building bug view id
        field_pairs = {
            "bug_id": {
                "text": ("Bugzilla id"),
                "value_widget": None,
            },
            "creation_ts": {
                "text": _("Date reported"),
                "value_widget": None,
            },
            "product": {
                "text": ("Product"),
                "value_widget": None,
            },
            "version": {
                "text": ("Version"),
                "value_widget": None,
            },
            "resolution": {
                "text": ("Resolution"),
                "value_widget": None,
            },
            "reporter": {
                "text": ("Reporter"),
                "value_widget": None,
            },
            "assigned_to": {
                "text": ("Assigned to"),
                "value_widget": None,
            },
        }
        for field in field_pairs:
            hbox, value_widget = self.build_value_pair(
                sizegroup1,
                field_pairs[field]["text"],
                bug[field],
                value_sizegroup=sizegroup2,
                editable=False)
            dialog.vbox.pack_start(hbox, False, False, 2)
            field_pairs[field]["value_widget"] = value_widget

        dialog.vbox.show_all()
        ret = dialog.run()
        dialog.destroy()
コード例 #6
0
ファイル: dataview.py プロジェクト: BackupTheBerlios/pida-svn
 def __build_datawidgets(self, page):
     self.__datawidgets = {}
     size = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
     lsize = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
     #size.set_orientation(gtk.SIZE_GROUP_HORIZONTAL)
     for name, rtype, default, doc in self.__schema:
         option = rtype(name, doc, default)
         widget_type = registrywidgets.get_widget(rtype)
         widget = widget_type(option)
         page.pack_start(widget.win, expand=False)
         size.add_widget(widget.widget)
         lsize.add_widget(widget.name_l)
         self.__datawidgets[name] = widget
コード例 #7
0
 def add_page(self, group, title, stock_id, description, attrs):
     holder = gtk.ScrolledWindow()
     holder.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
     page = gtk.VBox()
     page.set_border_width(12)
     holder.add_with_viewport(page)
     page.pack_start(self.create_title_label(title, description, stock_id),
                     expand=False)
     lsizer = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
     vsizer = gtk.SizeGroup(gtk.SIZE_GROUP_VERTICAL)
     self._pages[tuple(attrs)] = page, lsizer, vsizer
     self._nb.append_page(holder,
                          tab_label=self.create_tab_label(title, stock_id))
コード例 #8
0
    def __init__(self, exname, num, labeltext):
        gtk.VBox.__init__(self)
        #cfg.ConfigUtils.__init__(self, exname)
        cfg.ConfigUtils.__dict__['__init__'](self, exname)
        assert num in (2, 3)
        self.m_num = num
        self.g_override_default_instrument_checkbutton \
            = gu.nCheckButton(exname, 'override_default_instrument',
                labeltext,
                 callback=self.update_instrument_override)
        self.pack_start(self.g_override_default_instrument_checkbutton,
                        False)
        hbox = gu.bVBox(self)
        hbox.set_spacing(gu.PAD_SMALL)

        sizegroup = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
        self.g_instrsel_high = FramedInstrumentSelector(_("Highest:"), exname, 'highest_instrument',sizegroup)
        hbox.pack_start(self.g_instrsel_high, False)
        if num == 3:
            self.g_instrsel_middle = FramedInstrumentSelector(_("Middle:"),
                                            exname, 'middle_instrument', sizegroup)
            hbox.pack_start(self.g_instrsel_middle, False)
        else:
            self.g_instrsel_middle = None
        self.g_instrsel_low = FramedInstrumentSelector(_("Lowest:"),
                                                exname, 'lowest_instrument', sizegroup)
        hbox.pack_start(self.g_instrsel_low, False)
        self.update_instrument_override()
コード例 #9
0
 def __init__(self, glade_file_name, title, name_validator_func,
              name='', hours=0, minutes=0, seconds=0, command='',
              next_timer='', auto_start=False):
     self._valid_name_func = name_validator_func
     
     glade_widgets = glade.XML(glade_file_name, 'add_edit_preset_dialog')
     self._dialog = glade_widgets.get_widget('add_edit_preset_dialog')
     self._ok_button = glade_widgets.get_widget('ok_button')
     self._cancel_button = glade_widgets.get_widget('cancel_button')
     self._name_entry = glade_widgets.get_widget('name_entry')
     duration_chooser_container = glade_widgets.get_widget('duration_chooser_container')
     self._duration_chooser = DurationChooser(gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL))
     self._command_entry = glade_widgets.get_widget('command_entry')
     self._next_timer_entry = glade_widgets.get_widget('next_timer_entry')
     self._auto_start_check = glade_widgets.get_widget('auto_start_check')
     
     duration_chooser_container.pack_start(self._duration_chooser)
     
     self._dialog.set_title(title)
     self._dialog.set_default_response(gtk.RESPONSE_OK)
     self._name_entry.set_text(name)
     self._command_entry.set_text(command)
     self._duration_chooser.set_duration(hours, minutes, seconds)
     self._next_timer_entry.set_text(next_timer)
     self._auto_start_check.set_active(auto_start)
     
     self._name_entry.connect('changed', lambda entry: self._check_for_valid_save_preset_input())
     self._duration_chooser.connect('duration-changed',
                                    lambda chooser: self._check_for_valid_save_preset_input())
     self._duration_chooser.show()
コード例 #10
0
    def login(self):
        dialog = gtk.Dialog('Kobita Login', self,
                            gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
                            (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
                             gtk.STOCK_OK, gtk.RESPONSE_OK))

        sgroup = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
        hbox = gtk.HBox(False, 5)
        label = gtk.Label("User")
        sgroup.add_widget(label)
        hbox.add(label)
        user = gtk.Entry()
        hbox.add(user)
        dialog.vbox.add(hbox)
        label = gtk.Label("Password")
        sgroup.add_widget(label)
        hbox = gtk.HBox(False, 5)
        hbox.add(label)
        password = gtk.Entry()
        password.set_visibility(False)
        hbox.add(password)
        dialog.vbox.add(hbox)
        dialog.show_all()
        try:
            if dialog.run() == gtk.RESPONSE_OK:
                return {
                    'url_name': user.get_text(),
                    'password': password.get_text()
                }
        finally:
            dialog.destroy()
        return None
コード例 #11
0
class TimelineView():

    size_group = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
    first_unread = None

    def __init__(self):
        self.notice_boxes = []
        self.notices = self.fetch_notices()
        self.box = self.create_timeline()

        if self.first_unread is None:
            if len(self.notice_boxes) > 0:
                self.first_unread = self.notice_boxes[-1].box
            else:
                self.first_unread = self.box

    def create_timeline(self):
        vbox = gtk.VBox(False, 0)

        found = False
        previous = None

        for notice in self.notices:
            notice_box = NoticeBox(notice=notice,
                                   parent=self,
                                   previous=previous,
                                   size_group=self.size_group)
            vbox.pack_start(notice_box.box, False, False, 0)

            previous = notice_box
            self.notice_boxes.append(notice_box)

            if not found and notice.read == False:
                self.first_unread = notice_box.box
                found = True

        if len(self.notices) == 0:
            label = gtk.Label("No new notices.")
            vbox.pack_start(label)

        return vbox

    def fetch_notices(self):
        loader = NoticeLoader()
        return loader.notices

    def find_first_unread(self):
        for notice_box in self.notice_boxes:
            if not notice_box.notice.read:
                self.first_unread = notice_box.box
                break
        return None

    def remove_read_notices(self):
        for notice_box in self.notice_boxes:
            if notice_box.notice.read and not notice_box.notice.highlighted:
                notice_box.box.destroy()
        self.notice_boxes[:] = [nb for nb in self.notice_boxes
                                if not nb.notice.read
                                or notice_box.notice.highlighted]
コード例 #12
0
ファイル: changedisplay.py プロジェクト: fengjiangwei65/test
    def __create_frame(self, title):
        ''' This function is used both for creating the "Display" and
            "Screen" frames, since they have a similar structure. The
            caller hooks up the right context for the value returned
            in tree_view, and packs any relevant buttons into button_vbox.
        '''
        frame = gtk.Frame(title)

        hbox = gtk.HBox(False, 8)
        hbox.set_border_width(8)
        frame.add(hbox)

        scrollwin = gtk.ScrolledWindow()
        scrollwin.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
        scrollwin.set_shadow_type(gtk.SHADOW_IN)
        hbox.pack_start(scrollwin, True, True, 0)

        tree_view = gtk.TreeView()
        tree_view.set_headers_visible(False)
        scrollwin.add(tree_view)

        selection = tree_view.get_selection()
        selection.set_mode(gtk.SELECTION_BROWSE)

        button_vbox = gtk.VBox(False, 5)
        hbox.pack_start(button_vbox, False, False, 0)

        if self.size_group is None:
            self.size_group = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)

        self.size_group.add_widget(button_vbox)

        return (frame, tree_view, button_vbox)
コード例 #13
0
def addZfcpDrive(anaconda):
    (dxml, dialog) = gui.getGladeWidget("zfcp-config.glade", "zfcpDialog")
    gui.addFrame(dialog)
    dialog.show_all()
    sg = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
    for w in ["devnumEntry", "wwpnEntry", "fcplunEntry"]:
        sg.add_widget(dxml.get_widget(w))

    while True:
        dialog.present()
        rc = dialog.run()
        if rc != gtk.RESPONSE_APPLY:
            break

        devnum = dxml.get_widget("devnumEntry").get_text().strip()
        wwpn = dxml.get_widget("wwpnEntry").get_text().strip()
        fcplun = dxml.get_widget("fcplunEntry").get_text().strip()

        try:
            anaconda.id.storage.zfcp.addFCP(devnum, wwpn, fcplun)
        except ValueError as e:
            anaconda.intf.messageWindow(_("Error"), str(e))
            continue

        break

    dialog.destroy()
    return rc
コード例 #14
0
ファイル: control.py プロジェクト: MorS25/wasp
    def __init__(self, source, messages_file, settings_file):
        self._source = source
        self._messages_file = messages_file
        self._fms_control = wasp.fms.ControlManager(source, messages_file, settings_file)

        #build the UI
        self.widget = gtk.VBox()

        self._control_widget = gtk.VBox(spacing=5)
        self.widget.pack_start(self._control_widget, True, True)
        self.widget.pack_start(gtk.HSeparator(), False, False)
        self._status_widget = gtk.Label("")
        self._status_widget.props.xalign = 0.0
        self._status_widget.props.xpad = 5
        self.widget.pack_start(self._status_widget, False, True)
        gobject.timeout_add(1000/10, self._refresh_label)

        #FMS mode
        hb = gtk.HBox()
        lbl = _make_left_fancy_label("<b>FMS Mode: </b>")
        hb.pack_start(lbl, False, False)
        self._fms_mode_label = _make_left_fancy_label("", False, 0)
        hb.pack_start(self._fms_mode_label, True, True)
        self.widget.pack_start(hb, False, True)

        #each axis gets a widget that manages its value and enabled state
        sg = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
        self._axis_id_widget_map = {}
        for _id in wasp.fms.ID_LIST_FMS_ATTITUDE:
            widget = _FMSAxisWidget(sg, wasp.fms.ID_NAMES[_id], _id, self._fms_axis_enable_toggled)
            self.widget.pack_start(widget, False, True)
            self._axis_id_widget_map[_id] = widget
コード例 #15
0
    def toggle_drag_begin(self, toggle, context):
        toggle.set_active(False)

        #Literally drag the toggle around!
        #(Since Gtk 2.14)
        try:
            toggle.drag_source_set_icon(toggle.get_screen().get_rgba_colormap(), \
              toggle.parent.get_snapshot(), None)

        except:
            pass

        if len(self.toggles) > 1:
            for other_toggle in self.toggles:
                if other_toggle != toggle:
                    break

            toggle.hide()
            toggle.web.hide()
            toggle.placeholder = classes.PlaceHolder()
            toggle.size_group = gtk.SizeGroup(gtk.SIZE_GROUP_BOTH)
            toggle.size_group.add_widget(other_toggle.parent)
            toggle.size_group.add_widget(toggle.placeholder)
            toggle.parent.pack_start(toggle.placeholder)
            toggle.placeholder.show()

            self.dragged_toggle = toggle
コード例 #16
0
ファイル: wizard_gtk.py プロジェクト: faroncoder/flumotion
    def setup(self):
        self.pattern.data_type = int
        self.framerate.data_type = float

        patterns = [('SMPTE Color bars', 0, 'pattern_smpte.png'),
                    ('Random (television snow)', 1, 'pattern_snow.png'),
                    ('100% Black', 2, 'pattern_black.png'),
                    ('Blink', 12, 'pattern_blink.png')]
        self.pattern_icons = dict()

        for description, number, image in patterns:
            self.pattern.append_item(_(description), number)
            if image:
                self.pattern_icons[number] = os.path.join(
                    configure.imagedir, 'wizard', image)

        self.pattern.connect('changed', self._change_image)

        self.add_proxy(self.model.properties,
                       ['pattern', 'width', 'height', 'framerate'])

        sizegroup = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
        sizegroup.add_widget(self.width)
        sizegroup.add_widget(self.height)
        sizegroup.add_widget(self.framerate)
コード例 #17
0
def align_labels(glade, names):
    """Add the list of widgets identified by names in glade to a horizontal
    sizegroup."""
    group = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
    widget = [
        group.add_widget(get_widget_checked(glade, name)) for name in names
    ]
コード例 #18
0
ファイル: reportbug.py プロジェクト: 314pi/PortableEducation
 def __init__(self, parent, error_text):
     gtk.Dialog.__init__(self, _("Make bug report"), parent,
             buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT))
     self.m_error_text = error_text
     self.add_button(_("_Send"), RESPONSE_SEND)
     self.set_default_size(400, 400)
     sizegroup = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
     l = gtk.Label(_("Information about the version of GNU Solfege, your operating system and Python version, and the Python traceback (error message) will be sent to the crash database. Your email will not be published or shared, but we might contact you by email if we have further questions about your crash report."))
     l.set_line_wrap(True)
     l.show()
     self.vbox.pack_start(l, False)
     self.g_email = gtk.Entry()
     self.vbox.pack_start(
         gu.hig_label_widget(_("_Email:"), self.g_email, sizegroup),
         False)
     self.g_email.set_text(cfg.get_string('user/email'))
     # 140 is max in the solfege.org database
     self.g_description = gtk.Entry(max=140)
     self.vbox.pack_start(
         gu.hig_label_widget(_("S_hort description:"), self.g_description,
                  sizegroup), False)
     label = gtk.Label(_("_Describe how to produce the error message:"))
     label.set_use_underline(True)
     label.set_alignment(0.0, 0.5)
     self.vbox.pack_start(label, False)
     self.g_tw = gtk.TextView()
     self.g_tw.set_wrap_mode(gtk.WRAP_WORD)
     self.g_tw.set_border_width(10)
     label.set_mnemonic_widget(self.g_tw)
     self.vbox.pack_start(self.g_tw)
     self.show_all()
コード例 #19
0
 def __init__(self, *args, **kwargs):
     gtk.Dialog.__init__(self, *args, **kwargs)
     self.size_group = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
     self.add_button(gtk.STOCK_CLOSE, gtk.RESPONSE_CLOSE)
     self.controls = {}
     for ID in [S_A, S_X, S_Y, S_SP, S_PC]:
         self.add_line(ID)
コード例 #20
0
    def update_select_elements_buttons(self):
        """
        (Re)create the checkbuttons used to select which rhythm elements
        to be used when creating questions. We only need to do this if
        we are in m_custom_mode.
        """
        for but in self.soltogglebuttons:
            but.destroy()
        self.soltogglebuttons = []

        gs = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)

        for i, v in enumerate((
                [1, 4, -1, 8, 11, -1, 15, 18, 21, -1, 25, 28, -1, 32],
                [0, 3, 6, 7, 10, 13, 14, 17, 20, 23, 24, 27, 30, 31, 34],
                [2, 5, -1, 9, 12, -1, 16, 19, 22, -1, 26, 29, -1, 33])):
            hbox = gtk.HBox(True, 0)
            for k in v:
                b = self.soltogglebutton(k)
                gs.add_widget(b)
                for n in self.m_t.m_P.header.solmisation_elements:
                    if k == n:
                        b.set_active(True)
                hbox.pack_start(b, False)
                self.soltogglebuttons.append(b)
            spacing = gtk.Alignment()
            if i in (0, 2):
                spacing.set_property('left-padding', 16)
            spacing.add(hbox)
            self.g_select_rhythms_box.pack_start(spacing)
            spacing.show_all()
コード例 #21
0
    def createWidgets(self):
        self.transactionWidgets = {}
        self.pipes = {}

        self.scroll = ScrollContainer()
        self.scroll.hAdjust[0].set_property("step-increment", 20)
        self.cursor = Types.Observable(-1)

        # The ruler at the top is in charge of our time scale
        self.ruler = Ruler()
        TimeCursor(self.ruler, self.ruler, self.cursor)
        self.ruler.canvas.set_hadjustment(self.scroll.hAdjust[0])

        # The top heading holds the ruler, and a spacer aligned with the left heading
        leftHeadingWidth = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
        spacer = gtk.Label()
        leftHeadingWidth.add_widget(spacer)
        topHeading = gtk.HBox(False)
        topHeading.pack_start(spacer, False, padding=self.labelPadding)
        topHeading.pack_start(gtk.VSeparator(), False)
        topHeading.pack_start(self.ruler.canvas, True)

        # Everything except the top heading scrolls vertically using a viewport
        viewport = gtk.Viewport(None, self.scroll.vAdjust[0])
        viewport.set_shadow_type(gtk.SHADOW_NONE)
        viewport.set_size_request(1, 1)
        viewportBox = gtk.VBox(False)
        viewportBox.pack_start(topHeading, False)
        viewportBox.pack_start(gtk.HSeparator(), False)
        viewportBox.pack_start(viewport, True)
        self.scroll.add(viewportBox)

        # Gnome Canvas has really silly event grabbing semantics. To work around
        # all this, we'll just grab all events before gnome-canvas sees them.
        for widget in (viewport, self.ruler.canvas):
            widget.add_events(gtk.gdk.POINTER_MOTION_HINT_MASK
                              | gtk.gdk.POINTER_MOTION_MASK
                              | gtk.gdk.BUTTON_PRESS_MASK)
            for event in ('motion-notify-event', 'button-press-event',
                          'scroll-event'):
                widget.connect_after(event, self.mouseEvent)
            self.scroll.attachEvent(widget, horizontal=True)

        # The left heading holds labels for each canvas in the stack
        self.leftHeading = gtk.VBox(False)
        leftHeadingWidth.add_widget(self.leftHeading)

        # The viewport holds the left heading, then the main canvas stack
        scrolledBox = gtk.HBox(False)
        self.canvasList = []
        self.canvasStack = gtk.VBox(False)
        scrolledBox.pack_start(self.leftHeading,
                               False,
                               padding=self.labelPadding)
        scrolledBox.pack_start(gtk.VSeparator(), False)
        scrolledBox.pack_start(self.canvasStack, True)
        viewport.add(scrolledBox)

        return self.scroll
コード例 #22
0
ファイル: gu.py プロジェクト: 314pi/PortableEducation
 def _newline_show_widgets(self):
     sizegroup = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
     hbox = bHBox(self, True)
     for n in self.m_todo_widgets:
         if n == 'newline':
             hbox = bHBox(self, False)
         else:
             hbox.pack_start(n, False)
             sizegroup.add_widget(n)
コード例 #23
0
ファイル: menu.py プロジェクト: yure19/eidmat
    def __init__(self):
        """
            Retorna: un nuevo 'Menu'.

            Crea un nuevo 'Menu'.
        """
        gtk.Menu.__init__(self)

        self.__size_group = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
コード例 #24
0
 def init(self):
     self.widget.set_border_width(6)
     title = gtk.Label()
     self.widget.pack_start(title, expand=False, padding=6)
     title.set_markup('<big><b>Create new project</b></big>')
     title.set_alignment(0, 0.5)
     lsz = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
     wsz = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
     hb = gtk.HBox()
     self.widget.pack_start(hb, expand=False, padding=3)
     name_label = gtk.Label('Name')
     hb.pack_start(name_label, expand=False, padding=3)
     lsz.add_widget(name_label)
     name_label.set_alignment(0, 0.5)
     self.__name_entry = gtk.Entry()
     hb.pack_start(self.__name_entry)
     wsz.add_widget(self.__name_entry)
     hb = gtk.HBox()
     self.widget.pack_start(hb, expand=False, padding=3)
     file_label = gtk.Label('Save in')
     hb.pack_start(file_label, expand=False, padding=3)
     lsz.add_widget(file_label)
     file_label.set_alignment(0, 0.5)
     self.__file_chooser = filedialogs.FolderButton()
     hb.pack_start(self.__file_chooser)
     wsz.add_widget(self.__file_chooser)
     #self.__file_chooser.set_action(gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER)
     hb = gtk.HBox()
     self.widget.pack_start(hb, expand=False, padding=3)
     type_label = gtk.Label('Type')
     hb.pack_start(type_label, expand=False, padding=3)
     lsz.add_widget(type_label)
     type_label.set_alignment(0, 0.5)
     self.__type_combo = gtk.combo_box_new_text()
     hb.pack_start(self.__type_combo)
     wsz.add_widget(self.__type_combo)
     bb = gtk.HButtonBox()
     self.widget.pack_start(bb, expand=False)
     self.__ok_but = gtk.Button(stock=gtk.STOCK_OK)
     bb.pack_start(self.__ok_but, padding=6)
     self.__ok_but.connect('clicked', self.on_ok_button__clicked)
     self.__cancel_but = gtk.Button(stock=gtk.STOCK_CANCEL)
     bb.pack_start(self.__cancel_but, padding=6)
     self.__cancel_but.connect('clicked', self.on_cancel_button__clicked)
コード例 #25
0
    def __init__(self, glade_file_name, name_validator_func, presets_store, preset_display_func):
        gobject.GObject.__init__(self)

        self._valid_name_func = name_validator_func;
        self._presets_store = presets_store
        self._preset_display_func = preset_display_func
        
        self._presets_list = ScrollableButtonList()
        labels_size_group = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
        self._duration_chooser = DurationChooser(labels_size_group)
        
        glade_widgets = glade.XML(glade_file_name, 'start_timer_dialog')
        self._dialog = glade_widgets.get_widget('start_timer_dialog')
        self._ok_button = glade_widgets.get_widget('ok_button')
        name_label = glade_widgets.get_widget('name_label')
        self._name_entry = glade_widgets.get_widget('name_entry')
        self._save_button = glade_widgets.get_widget('save_button')
        duration_chooser_container = glade_widgets.get_widget('duration_chooser_container')
        presets_chooser_container = glade_widgets.get_widget('presets_chooser_container')
        self._presets_section = glade_widgets.get_widget('presets_section')
        #: The TextEntry control for running a custom command
        self._command_entry = glade_widgets.get_widget('command_entry')
        #: The "Invalid Command" label
        self._invalid_cmd_label = glade_widgets.get_widget('invalid_command_label')
        #: The next timer combo box
        self._next_timer_combo = glade_widgets.get_widget('next_timer_combo_entry')
        self._next_timer_combo.set_model(self._presets_store)
        self._next_timer_combo.set_text_column(0) # The column to be shown
        #: The auto-start check button.
        self._auto_start_check = glade_widgets.get_widget('auto_start_check')
        
        labels_size_group.add_widget(name_label)
        self._dialog.set_default_response(gtk.RESPONSE_OK)
        duration_chooser_container.pack_start(self._duration_chooser)
        presets_chooser_container.pack_start(self._presets_list)
        
        self._dialog.connect('response', self._on_dialog_response)
        self._dialog.connect('delete-event', self._dialog.hide_on_delete)
        self._dialog.add_events(gdk.BUTTON_PRESS_MASK)
        self._duration_chooser.connect('duration-changed', self._on_duration_changed)
        self._name_entry.connect('changed', self._on_name_entry_changed)
        self._save_button.connect('clicked', self._on_save_button_clicked)
        # Check that executable is valid while inserting text
        self._command_entry.connect('changed', self._check_is_valid_command)
        self._next_timer_combo.child.connect("changed",
                                self._on_next_timer_combo_entry_child_changed)
        glade_widgets.get_widget('manage_presets_button').connect('clicked',
                                                                  self._on_manage_presets_button_clicked)
        self._presets_store.connect('row-deleted',
                                    lambda model, row_path: self._update_presets_list())
        self._presets_store.connect('row-changed',
                                    lambda model, row_path, row_iter: self._update_presets_list())
        
        self._update_presets_list()
        self._duration_chooser.show()
        self._presets_list.show()
コード例 #26
0
ファイル: userslave.py プロジェクト: tmaxter/stoq
    def setup_slaves(self):
        self.password_slave = PasswordEditorSlave(self.store,
                                                  self.model,
                                                  visual_mode=self.visual_mode)
        self.attach_slave('password_holder', self.password_slave)

        self._sizegroup = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
        self._sizegroup.add_widget(self.current_password_lbl)
        self._sizegroup.add_widget(self.password_slave.password_lbl)
        self._sizegroup.add_widget(self.password_slave.confirm_password_lbl)
コード例 #27
0
ファイル: intro.py プロジェクト: feitianyiren/freespeak-1
 def setup_layout(self):
     """
     Setup the introduction layout and create a size group to ensure
     widgets have the same horizontal size.
     """
     self.set_border_width(16)
     self.vbox = gtk.VBox(homogeneous=True)
     self.vbox.show()
     self.add(self.vbox)
     self.size_group = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
コード例 #28
0
    def enable_advanced_search(self):
        """
        Enables an advanced search
        """
        self.label_group = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
        self.combo_group = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)

        self.menu = gtk.Menu()
        for column in self.columns:
            if not isinstance(column, SearchColumn):
                continue

            if column.data_type not in (datetime.date, decimal.Decimal, int,
                                        currency, str, bool):
                continue

            attr = column.search_attribute or column.attribute
            self.add_filter_option(attr, column.get_search_label(),
                                   column.data_type, column.valid_values,
                                   column.search_func, column.use_having)
コード例 #29
0
    def __init__(self, parent=None):
        gtk.Dialog.__init__(self, "Size Groups", parent,
            0,
            (gtk.STOCK_CLOSE,  gtk.RESPONSE_CLOSE))
        try:
            self.set_screen(parent.get_screen())
        except AttributeError:
            self.connect('destroy', lambda *w: gtk.main_quit())
        self.connect('response', lambda d, r: d.destroy())
        self.set_resizable(False)

        vbox = gtk.VBox(False, 5)
        self.vbox.pack_start(vbox, True, True, 0)
        vbox.set_border_width(5)

        self.size_group = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)

        # Create one frame holding color options
        frame = gtk.Frame("Color options")
        vbox.pack_start(frame, True, True, 0)

        table = gtk.Table(2, 2, False)
        table.set_border_width(5)
        table.set_row_spacings(5)
        table.set_col_spacings(10)
        frame.add(table)

        color_options = ("Red", "Green", "Blue")
        self.__add_row(table, 0, "_Foreground", color_options)
        self.__add_row(table, 1, "_Background", color_options)

        # And another frame holding line style options
        frame = gtk.Frame("Line options")
        vbox.pack_start(frame, False, False, 0)

        table = gtk.Table(2, 2, False)
        table.set_border_width(5)
        table.set_row_spacings(5)
        table.set_col_spacings(10)
        frame.add(table)

        dash_options  = ("Solid", "Dashed", "Dotted")
        end_options   = ("Square", "Round", "Arrow")
        self.__add_row(table, 0, "_Dashing", dash_options)
        self.__add_row(table, 1, "_Line ends", end_options)

        # And a check button to turn grouping on and off

        check_button = gtk.CheckButton("_Enable grouping")
        vbox.pack_start(check_button, False, False, 0)
        check_button.set_active(True)
        check_button.connect('toggled', self.on_toggle_grouping)

        self.show_all()
コード例 #30
0
ファイル: userslave.py プロジェクト: tmaxter/stoq
    def _attach_slaves(self):
        self.password_slave = PasswordEditorSlave(self.store)
        self.attach_slave('password_holder', self.password_slave)

        self._sizegroup = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
        self._sizegroup.add_widget(self.username_lbl)
        self._sizegroup.add_widget(self.role_lbl)
        self._sizegroup.add_widget(self.profile)
        self._sizegroup.add_widget(self.role)
        self._sizegroup.add_widget(self.password_slave.password_lbl)
        self._sizegroup.add_widget(self.password_slave.confirm_password_lbl)