def __init__(self):
        super().__init__()
        self.text_area = TextArea(self, bg="white", fg="black", undo=True)
        self.scrollbar = ttk.Scrollbar(orient="vertical",
                                       command=self.scroll_text)
        self.text_area.configure(yscrollcommand=self.scrollbar.set)
        self.scrollbar.pack(side=tk.LEFT, fill=tk.Y)
        self.text_area.pack(side=tk.LEFT, fill=tk.BOTH, expand=1)

        self.line_numbers = LineNumbers(self,
                                        self.text_area,
                                        bg="grey",
                                        fg="white",
                                        width=1)
        self.highlighter = Highlighter(self.text_area, 'languages/python.yaml')

        # first_100_numbers = [str(n+1) for n in range(100)]
        # self.line_numbers.insert(1.0, "\n".join(first_100_numbers))
        # self.line_numbers.configure(state="disabled", width=3)

        self.scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
        self.line_numbers.pack(side=tk.LEFT, fill=tk.Y)
        self.text_area.pack(side=tk.LEFT, fill=tk.BOTH, expand=1)

        self.bind_events()
    def __init__(self):
        super().__init__()

        self.title('Python Text Editor v3')
        self.geometry('800x600')

        self.foreground = 'black'
        self.background = 'lightgrey'
        self.text_foreground = 'black'
        self.text_background = 'white'

        self.load_scheme_file('schemes/default.yaml')
        self.configure_ttk_elements()

        self.font_size = 15
        self.font_family = "Ubuntu Mono"
        self.load_font_file('schemes/font.yaml')

        self.text_area = TextArea(self,
                                  bg=self.text_background,
                                  fg=self.text_foreground,
                                  undo=True,
                                  font=(self.font_family, self.font_size))

        self.scrollbar = ttk.Scrollbar(orient="vertical",
                                       command=self.scroll_text)
        self.text_area.configure(yscrollcommand=self.scrollbar.set)

        self.line_numbers = LineNumbers(self,
                                        self.text_area,
                                        bg="grey",
                                        fg="white",
                                        width=1)
        self.highlighter = Highlighter(self.text_area, 'languages/python.yaml')

        self.menu = tk.Menu(self, bg=self.background, fg=self.foreground)
        self.all_menus = [self.menu]

        sub_menu_items = ["file", "edit", "tools", "help"]
        self.generate_sub_menus(sub_menu_items)
        self.configure(menu=self.menu)

        self.right_click_menu = tk.Menu(self,
                                        bg=self.background,
                                        fg=self.foreground,
                                        tearoff=0)
        self.right_click_menu.add_command(label='Cut', command=self.edit_cut)
        self.right_click_menu.add_command(label='Copy', command=self.edit_copy)
        self.right_click_menu.add_command(label='Paste',
                                          command=self.edit_paste)
        self.all_menus.append(self.right_click_menu)

        self.scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
        self.line_numbers.pack(side=tk.LEFT, fill=tk.Y)
        self.text_area.pack(side=tk.LEFT, fill=tk.BOTH, expand=1)

        self.bind_events()

        self.open_file = ''
Exemple #3
0
def main():
    window = Gtk.Window(title="Hello")

    widget = TextArea()
    window.add(widget)

    window.connect("destroy", Gtk.main_quit)
    window.show_all()
    Gtk.main()
Exemple #4
0
 def init_input(self, label, text=None):
     self.input_label = label
     self.input = TextArea(
         self.window,
         self.font,
         TextBuffer(text),
         window_border=(self.window.size[1] - self.height + self.border[0],
                        self.border[1], self.border[2],
                        (self.font.size[0] * len(label)) +
                        (2 * self.border[3])),
         line_spacing=0)
Exemple #5
0
def run():
    (window_size, f) = get_args()

    tb = TextBuffer()
    if f:
        tb.load(f)

    sdl2.ext.init()
    window = sdl2.ext.Window(WINDOW_TITLE, size=window_size)
    window.show()

    factory = sdl2.ext.SpriteFactory(sdl2.ext.SOFTWARE)

    font_img = factory.from_image(FONT_IMG_PATH)
    sdl2.SDL_SetColorKey(
        font_img.surface, sdl2.SDL_TRUE,
        sdl2.SDL_MapRGB(font_img.surface.format, COLOR_KEY_R, COLOR_KEY_G,
                        COLOR_KEY_B))
    font = sdl2.ext.BitmapFont(font_img, FONT_SIZE, mapping=FONT_MAPPING)

    sb = StatusBar(window, tb, font, STATUS_BAR_COLOR,
                   (STATUS_BAR_BORDER_TOP, STATUS_BAR_BORDER_RIGHT,
                    STATUS_BAR_BORDER_BOTTOM, STATUS_BAR_BORDER_LEFT))
    ta = TextArea(window, font, tb,
                  (TEXT_AREA_BORDER_TOP, TEXT_AREA_BORDER_RIGHT,
                   sb.height + TEXT_AREA_BORDER_BOTTOM, TEXT_AREA_BORDER_LEFT),
                  TEXT_AREA_LINE_SPACING)
    state = EditState(Editor(None, window, ta, sb))

    sdl2.SDL_StartTextInput()

    while True:
        start = sdl2.SDL_GetTicks()
        state = state.update(sdl2.ext.get_events())
        if state is None:
            break
        ticks = sdl2.SDL_GetTicks() - start
        if ticks < 1000 / FRAMES_PER_SECOND:
            sdl2.SDL_Delay((1000 / FRAMES_PER_SECOND) - ticks)

    sdl2.SDL_StopTextInput()
    sdl2.ext.quit()
    return 0
Exemple #6
0
    def __init__(self):
        super().__init__()

        self.text_area = TextArea(self, bg="white", fg="black", undo=True)

        self.scrollbar = ttk.Scrollbar(orient="vertical",
                                       command=self.scroll_text)
        self.text_area.configure(yscrollcommand=self.scrollbar.set)

        self.line_numbers = LineNumbers(self,
                                        self.text_area,
                                        bg="grey",
                                        fg="white",
                                        width=1)
        self.highlighter = Highlighter(self.text_area, 'languages/python.yaml')

        self.scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
        self.line_numbers.pack(side=tk.LEFT, fill=tk.Y)
        self.text_area.pack(side=tk.LEFT, fill=tk.BOTH, expand=1)

        self.bind_events()
Exemple #7
0
    def create_widget(self):
        self.text_area = TextArea(self.frame1,
                                  bg=self.text_background,
                                  fg=self.text_foreground,
                                  undo=True,
                                  relief=tk.FLAT,
                                  font=(self.text_font_family,
                                        self.text_font_size),
                                  insertbackground=self.insertbackground)
        self.text_area.config(highlightthickness=0)
        self.text_area.grid(row=0, column=1, sticky='wens')
        self.text_area.focus_set()
        self.welcome(event=None)

        self.status_bar1 = StatusBar(self.frame2,
                                     bg="pink",
                                     width=30,
                                     height=10)
        self.status_bar2 = StatusBar(self.frame2,
                                     bg="orange",
                                     width=30,
                                     height=10)
        self.status_bar3 = StatusBar(self.frame2,
                                     bg="blue",
                                     width=30,
                                     height=10)
        self.status_bar4 = StatusBar(self.frame2,
                                     bg="green",
                                     width=30,
                                     height=10)
        self.status_bar5 = StatusBar(self.frame2,
                                     bg="purple",
                                     width=30,
                                     height=10)

        self.status_bar1.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
        self.status_bar2.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
        self.status_bar3.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
        self.status_bar4.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
        self.status_bar5.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
Exemple #8
0
    def __init__(self):
        super().__init__()

        self.title('Python Text Editor v3')
        self.geometry('800x600')

        self.foreground = 'black'
        self.background = 'lightgrey'
        self.text_foreground = '#313131'
        self.text_background = '#f0f0f0'
        self.terminal_background = 'darkcyan'
        self.terminal_foreground = 'white'

        self.config_dir = os.path.join(str(Path.home()), '.tkedit')

        self.default_scheme_path = os.path.join(self.config_dir,
                                                'schemes/default.yaml')
        self.python_language_path = os.path.join(self.config_dir,
                                                 'languages/python.yaml')
        self.font_scheme_path = os.path.join(self.config_dir,
                                             'schemes/font.yaml')
        self.create_config_directory_if_needed()

        self.load_scheme_file(self.default_scheme_path)
        self.configure_ttk_elements()

        # Change
        self.font_size = 14
        self.font_family = "Droid Sana Mono"

        self.terminal_font_size = 12
        self.terminal_font_family = "Consolas"
        # Change

        self.load_font_file(self.font_scheme_path)

        self.text_area = TextArea(self,
                                  bg=self.text_background,
                                  fg=self.text_foreground,
                                  undo=True,
                                  font=(self.font_family, self.font_size))

        self.scrollbar = ttk.Scrollbar(orient="vertical",
                                       command=self.scroll_text)
        self.text_area.configure(yscrollcommand=self.scrollbar.set)

        self.line_numbers = LineNumbers(self,
                                        self.text_area,
                                        bg="grey",
                                        fg="white",
                                        width=1,
                                        font=(self.font_family,
                                              self.font_size))
        self.highlighter = Highlighter(self.text_area,
                                       self.python_language_path)
        self.terminal = Terminal(self,
                                 height=8,
                                 bg=self.terminal_background,
                                 fg=self.terminal_foreground,
                                 undo=True,
                                 font=(self.terminal_font_family,
                                       self.terminal_font_size))

        self.menu = tk.Menu(self, bg=self.background, fg=self.foreground)
        self.all_menus = [self.menu]

        self.text_area.__setattr__("update_line",
                                   self.line_numbers.force_update)
        self.text_area.__setattr__("update_highlight",
                                   self.highlighter.force_highlight)

        sub_menu_items = ["file", "edit", "tools", "help"]
        self.generate_sub_menus(sub_menu_items)
        self.configure(menu=self.menu)

        self.right_click_menu = tk.Menu(self,
                                        bg=self.background,
                                        fg=self.foreground,
                                        tearoff=0)
        self.right_click_menu.add_command(label='Cut', command=self.edit_cut)
        self.right_click_menu.add_command(label='Copy', command=self.edit_copy)
        self.right_click_menu.add_command(label='Paste',
                                          command=self.edit_paste)
        # Change
        self.right_click_menu.add_command(label='Undo', command=self.edit_undo)
        self.right_click_menu.add_command(label='Redo', command=self.edit_redo)
        # Change
        self.all_menus.append(self.right_click_menu)

        # change
        self.count_area = tk.Text(self, height=1)
        self.count_area.pack(side=tk.BOTTOM, fill=tk.X)
        # change
        # Change
        self.terminal.pack(side=tk.BOTTOM, fill=tk.X)
        # Change
        self.scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
        self.line_numbers.pack(side=tk.LEFT, fill=tk.Y)
        self.text_area.pack(side=tk.LEFT, fill=tk.BOTH, expand=1)

        self.bind_events()

        self.open_file = ''
    def __init__(self):
        '''
        @update 1.添加横向滚动条 2.修正行号与滚动条和窗口的关联 3.修正行号显示
        '''
        super().__init__()

        self.title('Python Text Editor v3')
        self.geometry('800x600')

        self.foreground = 'black'
        self.background = 'lightgrey'
        self.text_foreground = 'black'
        self.text_background = 'white'

        self.config_dir = os.path.join(str(Path.home()), '.tkedit')

        self.default_scheme_path = os.path.join(self.config_dir,
                                                'schemes/default.yaml')
        self.python_language_path = os.path.join(self.config_dir,
                                                 'languages/python.yaml')
        self.none_language_path = os.path.join(self.config_dir,
                                               'languages/None.yaml')
        self.font_scheme_path = os.path.join(self.config_dir,
                                             'fonts/font.yaml')
        self.create_config_directory_if_needed()

        self.load_scheme_file(self.default_scheme_path)
        self.configure_ttk_elements()

        self.font_size = 15
        self.font_family = "Ubuntu Mono"
        self.load_font_file(self.font_scheme_path)

        self.text_area = TextArea(self,
                                  bg=self.text_background,
                                  fg=self.text_foreground,
                                  undo=True,
                                  font=(self.font_family, self.font_size))

        self.scrollbar = ttk.Scrollbar(orient="vertical",
                                       command=self.text_area.yview)
        self.scrollbar2 = ttk.Scrollbar(orient="horizontal",
                                        command=self.text_area.xview)

        self.line_numbers = LineNumbers(self,
                                        self.text_area,
                                        bg="grey",
                                        fg="white",
                                        width=1,
                                        font=(self.font_family,
                                              self.font_size))
        self.scrollbar.config(command=self.text_area.yview)
        self.text_area.config(yscrollcommand=self.scrollbar.set,
                              xscrollcommand=self.scrollbar2.set)
        self.highlighter = Highlighter(self.text_area, self.none_language_path)

        self.menu = tk.Menu(self, bg=self.background, fg=self.foreground)
        self.all_menus = [self.menu]

        sub_menu_items = ["file", "edit", "tools", "help"]
        self.generate_sub_menus(sub_menu_items)
        self.configure(menu=self.menu)

        self.right_click_menu = tk.Menu(self,
                                        bg=self.background,
                                        fg=self.foreground,
                                        tearoff=0)
        self.right_click_menu.add_command(label='Cut', command=self.edit_cut)
        self.right_click_menu.add_command(label='Copy', command=self.edit_copy)
        self.right_click_menu.add_command(label='Paste',
                                          command=self.edit_paste)
        self.all_menus.append(self.right_click_menu)

        self.scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
        self.scrollbar2.pack(side=tk.BOTTOM, fill=tk.X)
        self.line_numbers.pack(side=tk.LEFT, fill=tk.Y)
        self.text_area.pack(side=tk.LEFT, fill=tk.BOTH, expand=1)

        self.bind_events()

        self.open_file = ''
Exemple #10
0
    "textarea",
)
reoptions = [('s', 'dotall', 'Dot Match All'),
             ('i', 'ignorecase', 'Case Insensitive'),
             ('m', 'multiline', '^$ at line breaks'),
             ('x', 'verbose', 'Free-Spacing'), ('u', 'unicode', 'Unicode')]

funcs = [
    '', 'Import regex library',
    'If/else branch whether the regex matches (part of) a string'
]

langs = ('python', )
app = web.application(urls, globals())
flag = Option()
text = TextArea()
env = Environment(loader=PackageLoader('index', 'templates'))


#the home page(the only page)
class index:
    def GET(self):
        template = env.get_template('index.html')
        return template.render(reoptions=reoptions,
                               functions=funcs,
                               langs=langs)


#when option changes in the front,
class options:
    def POST(self):
Exemple #11
0
    def __init__(self):
        super().__init__()

        self.title('Text Editor')
        self.text_area = TextArea(self, bg="white", fg="black", undo=True)

        self.background = 'lightgrey'
        self.foreground = 'black'
        self.text_foreground = 'black'
        self.text_background = 'white'

        self.config_dir = os.path.join(str(Path.home()), '.tkedit')
        self.default_scheme_path = os.path.join(self.config_dir,
                                                'schemes/default.yaml')
        self.python_language_path = os.path.join(self.config_dir,
                                                 'languages/python.yaml')
        self.font_scheme_path = os.path.join(self.config_dir,
                                             'schemes/font.yaml')
        self.create_config_directory_if_needed()

        self.load_scheme_file(self.default_scheme_path)
        self.configure_ttk_elements()
        self.font_size = 15
        self.font_family = "Ubuntu Mono"
        self.load_font_file(self.font_scheme_path)

        self.highlighter = Highlighter(self.text_area,
                                       self.python_language_path)

        self.menu = tk.Menu(self, bg=self.background, fg=self.foreground)

        self.all_menus = [self.menu]

        sub_menu_items = ['file', 'edit', 'tools', 'help']
        self.generate_sub_menus(sub_menu_items)
        self.configure(menu=self.menu)

        self.right_click_menu = tk.Menu(self,
                                        bg='lightgrey',
                                        fg='black',
                                        tearoff=0)
        self.right_click_menu.add_command(label='Cut', command=self.edit_cut)
        self.right_click_menu.add_command(label='Copy', command=self.edit_copy)
        self.right_click_menu.add_command(label='Paste',
                                          command=self.edit_paste)
        self.all_menus.append(self.right_click_menu)

        self.open_file = None

        self.scrollbar = ttk.Scrollbar(orient="vertical",
                                       command=self.scroll_text)
        self.text_area.configure(yscrollcommand=self.scrollbar.set)

        self.line_numbers = LineNumbers(self,
                                        self.text_area,
                                        bg='grey',
                                        fg='white',
                                        width=1)
        '''
        self.line_numbers = tk.Text(self, bg="grey", fg="yellow")
        first_100_numbers = [str(n+1) for n in range(100)]

        self.line_numbers.insert(1.0, "\n".join(first_100_numbers))
        self.line_numbers.configure(state="disabled", width=3)
        '''

        self.scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
        self.line_numbers.pack(side=tk.LEFT, fill=tk.Y)
        self.text_area.pack(side=tk.LEFT, fill=tk.BOTH, expand=1)

        self.bind_events()