Mercurial > text
changeset 0:97c0f280b935
Initial commit
| author | Radomir Dopieralski <moindev@sheep.art.pl> |
|---|---|
| date | Sun, 04 May 2008 23:32:14 +0200 |
| parents | |
| children | 0035f891d59f |
| files | editor.py text.glade window.py |
| diffstat | 3 files changed, 516 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/editor.py Sun May 04 23:32:14 2008 +0200 @@ -0,0 +1,15 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +import gtk +import gtksourceview2 as gtksourceview + +class Editor(gtksourceview.View): + def __init__(self, buffer=None): + if not buffer: + buffer = gtksourceview.Buffer() + gtksourceview.View.__init__(self, buffer) + + def close(self): + """Save and clean up everything.""" + pass
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/text.glade Sun May 04 23:32:14 2008 +0200 @@ -0,0 +1,453 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd"> +<!--Generated with glade3 3.4.2 on Sun May 4 23:02:01 2008 --> +<glade-interface> + <widget class="GtkWindow" id="window"> + <property name="title" translatable="yes">Text Editor</property> + <property name="role">Text Editor</property> + <property name="icon_name">text-editor</property> + <signal name="destroy" handler="on_window_destroy"/> + <child> + <widget class="GtkVBox" id="vbox1"> + <property name="visible">True</property> + <child> + <widget class="GtkMenuBar" id="menubar"> + <property name="visible">True</property> + <child> + <widget class="GtkMenuItem" id="menu_file"> + <property name="visible">True</property> + <property name="label" translatable="yes">_File</property> + <property name="use_underline">True</property> + <child> + <widget class="GtkMenu" id="menu1"> + <property name="visible">True</property> + <child> + <widget class="GtkImageMenuItem" id="menu_properties"> + <property name="visible">True</property> + <property name="label" translatable="yes">gtk-properties</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + </widget> + </child> + <child> + <widget class="GtkSeparatorMenuItem" id="separatormenuitem6"> + <property name="visible">True</property> + </widget> + </child> + <child> + <widget class="GtkImageMenuItem" id="menu_close"> + <property name="visible">True</property> + <property name="label" translatable="yes">gtk-close</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + <signal name="activate" handler="on_menu_close_activate"/> + </widget> + </child> + </widget> + </child> + </widget> + </child> + <child> + <widget class="GtkMenuItem" id="menu_edit"> + <property name="visible">True</property> + <property name="label" translatable="yes">_Edit</property> + <property name="use_underline">True</property> + <child> + <widget class="GtkMenu" id="menu2"> + <property name="visible">True</property> + <child> + <widget class="GtkImageMenuItem" id="menu_undo"> + <property name="visible">True</property> + <property name="label" translatable="yes">gtk-undo</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + </widget> + </child> + <child> + <widget class="GtkImageMenuItem" id="menu_redo"> + <property name="visible">True</property> + <property name="label" translatable="yes">gtk-redo</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + </widget> + </child> + <child> + <widget class="GtkSeparatorMenuItem" id="separatormenuitem2"> + <property name="visible">True</property> + </widget> + </child> + <child> + <widget class="GtkImageMenuItem" id="menu_cut"> + <property name="visible">True</property> + <property name="label" translatable="yes">gtk-cut</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + </widget> + </child> + <child> + <widget class="GtkImageMenuItem" id="menu_copy"> + <property name="visible">True</property> + <property name="label" translatable="yes">gtk-copy</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + </widget> + </child> + <child> + <widget class="GtkImageMenuItem" id="menu_paste"> + <property name="visible">True</property> + <property name="label" translatable="yes">gtk-paste</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + </widget> + </child> + <child> + <widget class="GtkImageMenuItem" id="menu_select_all"> + <property name="visible">True</property> + <property name="label" translatable="yes">gtk-select-all</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + </widget> + </child> + <child> + <widget class="GtkSeparatorMenuItem" id="separatormenuitem3"> + <property name="visible">True</property> + </widget> + </child> + <child> + <widget class="GtkImageMenuItem" id="menu_preferences"> + <property name="visible">True</property> + <property name="label" translatable="yes">gtk-preferences</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + <signal name="activate" handler="on_menu_preferences_activate"/> + </widget> + </child> + </widget> + </child> + </widget> + </child> + <child> + <widget class="GtkMenuItem" id="menu_view"> + <property name="visible">True</property> + <property name="label" translatable="yes">_View</property> + <property name="use_underline">True</property> + <child> + <widget class="GtkMenu" id="menu4"> + <property name="visible">True</property> + <child> + <widget class="GtkCheckMenuItem" id="menu_line_numbers"> + <property name="visible">True</property> + <property name="tooltip" translatable="yes">Toggle displaying line numbers</property> + <property name="label" translatable="yes">_Line numbers</property> + <property name="use_underline">True</property> + <signal name="toggled" handler="on_menu_line_numbers_toggled"/> + </widget> + </child> + <child> + <widget class="GtkCheckMenuItem" id="menu_wrap"> + <property name="visible">True</property> + <property name="tooltip" translatable="yes">Wrap long lines of text</property> + <property name="label" translatable="yes">_Wrap lines</property> + <property name="use_underline">True</property> + <signal name="toggled" handler="on_menu_wrap_toggled"/> + </widget> + </child> + <child> + <widget class="GtkSeparatorMenuItem" id="separatormenuitem5"> + <property name="visible">True</property> + </widget> + </child> + <child> + <widget class="GtkCheckMenuItem" id="menu_line"> + <property name="visible">True</property> + <property name="label" translatable="yes">Highlight _current line</property> + <property name="use_underline">True</property> + <signal name="toggled" handler="on_menu_line_toggled"/> + </widget> + </child> + <child> + <widget class="GtkCheckMenuItem" id="menu_match"> + <property name="visible">True</property> + <property name="label" translatable="yes">_Match brackets</property> + <property name="use_underline">True</property> + <signal name="toggled" handler="on_menu_match_toggled"/> + </widget> + </child> + </widget> + </child> + </widget> + </child> + <child> + <widget class="GtkMenuItem" id="menu_go"> + <property name="visible">True</property> + <property name="label" translatable="yes">_Go</property> + <property name="use_underline">True</property> + <child> + <widget class="GtkMenu" id="menu5"> + <property name="visible">True</property> + <child> + <widget class="GtkImageMenuItem" id="menu_jump"> + <property name="visible">True</property> + <property name="label" translatable="yes">gtk-jump-to</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + </widget> + </child> + <child> + <widget class="GtkSeparatorMenuItem" id="separatormenuitem4"> + <property name="visible">True</property> + </widget> + </child> + <child> + <widget class="GtkImageMenuItem" id="menu_find"> + <property name="visible">True</property> + <property name="label" translatable="yes">gtk-find</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + </widget> + </child> + <child> + <widget class="GtkImageMenuItem" id="menu_replace"> + <property name="visible">True</property> + <property name="label" translatable="yes">gtk-find-and-replace</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + </widget> + </child> + </widget> + </child> + </widget> + </child> + <child> + <widget class="GtkMenuItem" id="menu_help"> + <property name="visible">True</property> + <property name="label" translatable="yes">_Help</property> + <property name="use_underline">True</property> + <child> + <widget class="GtkMenu" id="menu3"> + <property name="visible">True</property> + <child> + <widget class="GtkImageMenuItem" id="menu_about"> + <property name="visible">True</property> + <property name="label" translatable="yes">gtk-about</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + <signal name="activate" handler="on_menu_about_activate"/> + </widget> + </child> + </widget> + </child> + </widget> + </child> + </widget> + <packing> + <property name="expand">False</property> + </packing> + </child> + <child> + <widget class="GtkScrolledWindow" id="scrolledwindow"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property> + <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> + <child> + <placeholder/> + </child> + </widget> + <packing> + <property name="position">1</property> + </packing> + </child> + <child> + <widget class="GtkStatusbar" id="statusbar"> + <property name="visible">True</property> + <property name="spacing">2</property> + </widget> + <packing> + <property name="expand">False</property> + <property name="position">2</property> + </packing> + </child> + </widget> + </child> + </widget> + <widget class="GtkWindow" id="preferences"> + <property name="title" translatable="yes">Text Editor Preferences</property> + <child> + <widget class="GtkVBox" id="vbox2"> + <property name="visible">True</property> + <child> + <widget class="GtkLabel" id="label3"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes"><b>Window Size</b></property> + <property name="use_markup">True</property> + </widget> + <packing> + <property name="expand">False</property> + </packing> + </child> + <child> + <widget class="GtkVBox" id="vbox3"> + <property name="visible">True</property> + <property name="homogeneous">True</property> + <child> + <widget class="GtkHBox" id="hbox1"> + <property name="visible">True</property> + <property name="homogeneous">True</property> + <child> + <widget class="GtkLabel" id="label1"> + <property name="visible">True</property> + <property name="xalign">1</property> + <property name="label" translatable="yes">Width </property> + <property name="single_line_mode">True</property> + </widget> + <packing> + <property name="expand">False</property> + </packing> + </child> + <child> + <widget class="GtkSpinButton" id="spinbutton1"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="max_length">5</property> + <property name="adjustment">0 0 6000 10 100 100</property> + <property name="numeric">True</property> + </widget> + <packing> + <property name="position">1</property> + </packing> + </child> + </widget> + </child> + <child> + <widget class="GtkHBox" id="hbox2"> + <property name="visible">True</property> + <property name="homogeneous">True</property> + <child> + <widget class="GtkLabel" id="label2"> + <property name="visible">True</property> + <property name="xalign">1</property> + <property name="label" translatable="yes">Height </property> + <property name="ellipsize">PANGO_ELLIPSIZE_END</property> + <property name="single_line_mode">True</property> + </widget> + <packing> + <property name="expand">False</property> + </packing> + </child> + <child> + <widget class="GtkSpinButton" id="spinbutton3"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="max_length">5</property> + <property name="adjustment">0 0 6000 10 100 100</property> + <property name="numeric">True</property> + </widget> + <packing> + <property name="position">1</property> + </packing> + </child> + </widget> + <packing> + <property name="position">1</property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="label4"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes"><b>Default View</b></property> + <property name="use_markup">True</property> + <property name="justify">GTK_JUSTIFY_FILL</property> + </widget> + <packing> + <property name="position">2</property> + </packing> + </child> + <child> + <widget class="GtkCheckButton" id="checkbutton4"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">Highlight current line</property> + <property name="response_id">0</property> + <property name="draw_indicator">True</property> + </widget> + <packing> + <property name="position">3</property> + </packing> + </child> + <child> + <widget class="GtkCheckButton" id="checkbutton5"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">Match brackets</property> + <property name="response_id">0</property> + <property name="draw_indicator">True</property> + </widget> + <packing> + <property name="position">4</property> + </packing> + </child> + <child> + <widget class="GtkCheckButton" id="checkbutton6"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">Show line numbers</property> + <property name="response_id">0</property> + <property name="draw_indicator">True</property> + </widget> + <packing> + <property name="position">5</property> + </packing> + </child> + <child> + <widget class="GtkCheckButton" id="checkbutton7"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">Wrap long lines</property> + <property name="response_id">0</property> + <property name="draw_indicator">True</property> + </widget> + <packing> + <property name="position">6</property> + </packing> + </child> + <child> + <widget class="GtkHSeparator" id="hseparator1"> + <property name="visible">True</property> + </widget> + <packing> + <property name="expand">False</property> + <property name="position">7</property> + </packing> + </child> + </widget> + <packing> + <property name="position">1</property> + </packing> + </child> + <child> + <widget class="GtkHButtonBox" id="hbuttonbox1"> + <property name="visible">True</property> + <child> + <widget class="GtkButton" id="button1"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="label" translatable="yes">gtk-ok</property> + <property name="use_stock">True</property> + <property name="response_id">0</property> + </widget> + </child> + </widget> + <packing> + <property name="expand">False</property> + <property name="padding">4</property> + <property name="position">2</property> + </packing> + </child> + </widget> + </child> + </widget> +</glade-interface>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/window.py Sun May 04 23:32:14 2008 +0200 @@ -0,0 +1,48 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +import sys + +import pygtk +pygtk.require("2.0") +import gtk +import gtk.glade +import gtksourceview2 as gtksourceview + +import editor + +class MainWindow: + window_count = 0 + + def __init__(self): + self.xml = gtk.glade.XML("text.glade") + self.xml.signal_autoconnect(self) + # Add the gtksourceview widget + self.editor = editor.Editor() + scrolled_window = self.xml.get_widget("scrolledwindow") + scrolled_window.add(self.editor) + scrolled_window.show_all() + self.window_count += 1 + self.window = self.xml.get_widget("window") + self.window.resize(300, 300) + self.window.show() + + def on_window_destroy(self, window): + self.close() + + def on_menu_close_activate(self, menuitem): + self.close() + + def on_menu_about_activate(self, menuitem): + pass + + def close(self): + self.editor.close() + del self.window + self.window_count -= 1 + if self.window_count <= 0: + sys.exit() + +if __name__ == "__main__": + window = MainWindow() + gtk.main()
