Exemplo n.º 1
0
    def __init__(self, parent):
        JDialog.__init__(self, parent)

        e = c.resource('entry')
        self.encoding = PyComboBox(c.SUPPORTED_ENCODINGS)
        self.select_button = JButton(_d['select'], actionPerformed=self.action_select)
        self.font_label = JLabel(_d['select_font'] + ' : ' + _d['no_font_selected'])
        self.font = None
        self.font_name = JTextField(12)        
        self.chooser = JFontChooser(parent)
        self.chooser.locationRelativeTo = self

        self.rb_normal = JRadioButton()
        self.rb_antialiased = JRadioButton()
        self.rb_subpixel = JRadioButton()
        self.rb_subpixel_aa = JRadioButton()
        rb_group = ButtonGroup()
        rb_group.add(self.rb_normal)
        rb_group.add(self.rb_antialiased)
        rb_group.add(self.rb_subpixel)
        rb_group.add(self.rb_subpixel_aa)
        self.rb_normal.selected = 1

        main_panel = PyGridBagPanel(title='')
        main_panel.add(self.font_label, gridx=0, gridy=0, anchor='LINE_START', weightx=0.5)
        main_panel.add(self.select_button, gridx=1, gridy=0, anchor='LINE_END', weightx=0.1, fill='HORIZONTAL')
        main_panel.add(JLabel(_d['normal']), gridx=0, gridy=1, anchor='LINE_START', weightx=0.5)
        main_panel.add(self.rb_normal, gridx=1, gridy=1, anchor='LINE_END', weightx=0.1, fill='HORIZONTAL')
        main_panel.add(JLabel(_d['antialiased']), gridx=0, gridy=2, anchor='LINE_START', weightx=0.5)
        main_panel.add(self.rb_antialiased, gridx=1, gridy=2, anchor='LINE_END', weightx=0.1, fill='HORIZONTAL')
        main_panel.add(JLabel(_d['subpixel']), gridx=0, gridy=3, anchor='LINE_START', weightx=0.5)
        main_panel.add(self.rb_subpixel, gridx=1, gridy=3, anchor='LINE_END', weightx=0.1, fill='HORIZONTAL')
        main_panel.add(JLabel(_d['subpixel_aa']), gridx=0, gridy=4, anchor='LINE_START', weightx=0.5)
        main_panel.add(self.rb_subpixel_aa, gridx=1, gridy=4, anchor='LINE_END', weightx=0.1, fill='HORIZONTAL')
        main_panel.add(JLabel(e['encoding']), gridx=0, gridy=5, anchor='LINE_START', weightx=0.5)
        main_panel.add(self.encoding, gridx=1, gridy=5, anchor='LINE_END', weightx=0.1, fill='HORIZONTAL')
        main_panel.add(JLabel(_d['font_name']), gridx=0, gridy=6, anchor='LINE_START', weightx=0.5)
        main_panel.add(self.font_name, gridx=1, gridy=6, anchor='LINE_END', weightx=0.1, fill='HORIZONTAL')

        main_panel.setPreferredSize(Dimension(300, 150))
        self.button_import = JButton(_d['import'], actionPerformed=self.action_ok, enabled=0)
        button_panel=PyPanel([self.button_import, JButton(_d['discard'], actionPerformed=self.action_cancel)])
        
        panel=PyGridBagPanel(title='')
        panel.add(main_panel)
        panel.add(button_panel, gridy=1)        

        self.title = _d['font_import_title']
        self.contentPane.add(panel)
Exemplo n.º 2
0
class SystemFontImport(JDialog):
    def __init__(self, parent):
        JDialog.__init__(self, parent)

        e = c.resource('entry')
        self.encoding = PyComboBox(c.SUPPORTED_ENCODINGS)
        self.select_button = JButton(_d['select'], actionPerformed=self.action_select)
        self.font_label = JLabel(_d['select_font'] + ' : ' + _d['no_font_selected'])
        self.font = None
        self.font_name = JTextField(12)        
        self.chooser = JFontChooser(parent)
        self.chooser.locationRelativeTo = self

        self.rb_normal = JRadioButton()
        self.rb_antialiased = JRadioButton()
        self.rb_subpixel = JRadioButton()
        self.rb_subpixel_aa = JRadioButton()
        rb_group = ButtonGroup()
        rb_group.add(self.rb_normal)
        rb_group.add(self.rb_antialiased)
        rb_group.add(self.rb_subpixel)
        rb_group.add(self.rb_subpixel_aa)
        self.rb_normal.selected = 1

        main_panel = PyGridBagPanel(title='')
        main_panel.add(self.font_label, gridx=0, gridy=0, anchor='LINE_START', weightx=0.5)
        main_panel.add(self.select_button, gridx=1, gridy=0, anchor='LINE_END', weightx=0.1, fill='HORIZONTAL')
        main_panel.add(JLabel(_d['normal']), gridx=0, gridy=1, anchor='LINE_START', weightx=0.5)
        main_panel.add(self.rb_normal, gridx=1, gridy=1, anchor='LINE_END', weightx=0.1, fill='HORIZONTAL')
        main_panel.add(JLabel(_d['antialiased']), gridx=0, gridy=2, anchor='LINE_START', weightx=0.5)
        main_panel.add(self.rb_antialiased, gridx=1, gridy=2, anchor='LINE_END', weightx=0.1, fill='HORIZONTAL')
        main_panel.add(JLabel(_d['subpixel']), gridx=0, gridy=3, anchor='LINE_START', weightx=0.5)
        main_panel.add(self.rb_subpixel, gridx=1, gridy=3, anchor='LINE_END', weightx=0.1, fill='HORIZONTAL')
        main_panel.add(JLabel(_d['subpixel_aa']), gridx=0, gridy=4, anchor='LINE_START', weightx=0.5)
        main_panel.add(self.rb_subpixel_aa, gridx=1, gridy=4, anchor='LINE_END', weightx=0.1, fill='HORIZONTAL')
        main_panel.add(JLabel(e['encoding']), gridx=0, gridy=5, anchor='LINE_START', weightx=0.5)
        main_panel.add(self.encoding, gridx=1, gridy=5, anchor='LINE_END', weightx=0.1, fill='HORIZONTAL')
        main_panel.add(JLabel(_d['font_name']), gridx=0, gridy=6, anchor='LINE_START', weightx=0.5)
        main_panel.add(self.font_name, gridx=1, gridy=6, anchor='LINE_END', weightx=0.1, fill='HORIZONTAL')

        main_panel.setPreferredSize(Dimension(300, 150))
        self.button_import = JButton(_d['import'], actionPerformed=self.action_ok, enabled=0)
        button_panel=PyPanel([self.button_import, JButton(_d['discard'], actionPerformed=self.action_cancel)])
        
        panel=PyGridBagPanel(title='')
        panel.add(main_panel)
        panel.add(button_panel, gridy=1)        

        self.title = _d['font_import_title']
        self.contentPane.add(panel)

    def action_ok(self, event):
        fabric = FontFabric()
        if self.rb_normal.selected:
            font = fabric.loadNormal(self.font, self.encoding.get_selection())
        elif self.rb_antialiased.selected:
            font = fabric.loadAntialiased(self.font, self.encoding.get_selection())
        elif self.rb_subpixel.selected:
            font = fabric.loadSubpixel(self.font, self.encoding.get_selection())
        elif self.rb_subpixel_aa.selected:
            font = fabric.loadSubpixelAntialiased(self.font, self.encoding.get_selection())

        font_name = String(self.font_name.text).replaceAll(' ', '')
        font.name = font_name
        font_file = c.config('FONT_DIRECTORY') + '/' + font_name
        o = ObjectOutputStream(FileOutputStream(font_file))
        o.writeObject(font)
        o.close()
        self.dispose()
        self.parent.refresh_fonts()

    def action_select(self, event):
        if self.font is not None:
            result = self.chooser.showDialog(self.font)
        else:
            result = self.chooser.showDialog()
        if result == JFontChooser.OK_OPTION:
            self.font = self.chooser.font
            self.font_label.text = _d['select_font'] + ' : ' + self.font.name
            self.font_name.text = self.font.name + '-' + str(self.font.size)
            self.button_import.enabled = 1

    def action_cancel(self, event):
        self.dispose()