simped 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. checksums.yaml +15 -0
  2. data/README.md +15 -0
  3. data/lib/simped.rb +150 -0
  4. metadata +50 -0
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ M2ZmYzA4MTgwN2VhZWRlMzM5NTA1YjI4MDE1MWZkN2ZlYjkxNTA3YQ==
5
+ data.tar.gz: !binary |-
6
+ NzY0MTkxMzgzZTNhOTcyNzUxMGU2MTVlNjM3NTcxYTI1ZDg1ODg0OQ==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ ZDM5NTE0YzlhOTVkMDM1NDNkN2FmNTc1YWMzYzdhMWM3NTZhZWE0ZWZlODA1
10
+ NGQ2NTFmMzBhOGFmYzg5Zjg1ZmE0MDJkZGJlYjBiMDUxYWZmNjVjODc3Nzdi
11
+ MDk4YjA3ZTQxOWZmNTg1Zjc0NTY2YTJmNTJkNWZlMGU3ZjBmODE=
12
+ data.tar.gz: !binary |-
13
+ ZTI0YTMzYjcwYjVhYjExZjY4YzA5NTE2ZjliMWYwOTU1MDg5NmU2NzQ3MjIw
14
+ ZmMxNTE5YTAzMDgwZGFhMDg5MThmYWFmYmY2MzNiYzZmY2UwYjE1MzBlZmQ2
15
+ YzU3YjU5ZmFjZWNkZjJmZDhjNGYzMzAwMGY1YTMwYmMxYzM5Mjc=
@@ -0,0 +1,15 @@
1
+ Simped is simplified text editor with black background and white text, using Tcl/Tk graphical user interface to open a new file, open an existing file, save the edited file under the same name or under a different name, close the file or exit the app.
2
+
3
+ USAGE:
4
+ ======
5
+ Create a text file containing:
6
+
7
+ ```
8
+ require 'simped'
9
+ Editor.run
10
+ ```
11
+
12
+ save the text file as "simped.rbw" or "simped.rb" on your desktop if you are using Microsoft Windows as an Operating System.
13
+
14
+ if Ruby is in your PATH, clicking on this Ruby file will start the Widget.
15
+
@@ -0,0 +1,150 @@
1
+ require 'tk'
2
+
3
+ class Editor
4
+
5
+ def self.run
6
+ puts `simped.rb`
7
+ end
8
+
9
+ end
10
+ #_________________________________ Main Window ______________________________
11
+ root = TkRoot.new{title "File Viewer"}
12
+ root['geometry'] = '1540x700+1+1'
13
+ #root['resizable'] = false, false
14
+ #____________________ BUTTONS _____________________________________________
15
+ button = TkButton.new(root){
16
+ text "OK"
17
+ #command(Proc{myproc})
18
+ }
19
+
20
+ button_click = Proc.new{system 'notepad'}
21
+ button.command = button_click
22
+
23
+ #___________________ MENU________________________________________________
24
+ ############# Methods & VARIABLES ###################
25
+ TkOption.add '*tearOff', 0
26
+ $filename =TkVariable.new
27
+ $newfilename =TkVariable.new
28
+ #___________________________________
29
+ newfile = Proc.new{$text.delete(1.0, 'end')}
30
+ #________________________
31
+ openfile = Proc.new{
32
+ $filename = Tk::getOpenFile()
33
+ $content = File.read($filename)
34
+ $text.delete(1.0, 'end')
35
+ $text.insert('end', $content)
36
+ }
37
+ #___________________________________
38
+ closefile = Proc.new{$text.delete(1.0, 'end')}
39
+ #____________________________________
40
+ savefile = Proc.new{
41
+ thetext = $text.get("1.0", 'end')
42
+ File.write($filename, thetext)
43
+ }
44
+ #____________________________________
45
+ savefileas = Proc.new{
46
+ thetext = $text.get("1.0", 'end')
47
+ $newfilename = Tk::getSaveFile('filetypes' => [["All Files", "."], ["Text Files", ".txt"]])
48
+ File.write($newfilename, thetext)
49
+ }
50
+ #____________________________________
51
+ exitapp = Proc.new{exit}
52
+ help = Proc.new{help_win}
53
+ #_______ HELP MENU _____________________
54
+ def help_win
55
+ begin
56
+ $win.destroy
57
+ rescue
58
+ end
59
+ $win = TkToplevel.new{title "Help Window"}
60
+ TkLabel.new($win){
61
+ text " This is a simple text editor using Tcl/Tk widgets.
62
+ The menu allows opening an existing file on system.
63
+ It also allows creating a new file and saving it.
64
+ An opened file can be saved under the same name
65
+ or under a new different name"
66
+ borderwidth 5
67
+ font TkFont.new('times 16 bold')
68
+ background "yellow"
69
+ relief "groove"
70
+ justify "left"
71
+ }.grid('row' => 0, 'column' => 0)
72
+ TkButton.new($win) {
73
+ text "OK"
74
+ command "$win.destroy"
75
+ }.grid('row' => 1, 'column' => 0)
76
+ end
77
+ ###################### Menu ###################
78
+ file_menu = TkMenu.new(root)
79
+ helpMenu = TkMenu.new(root)
80
+ #______________________________
81
+ file_menu.add('command',
82
+ 'label' => "New...",
83
+ 'command' => newfile,
84
+ 'underline' => 0)
85
+ file_menu.add('command',
86
+ 'label' => "Open...",
87
+ 'command' => openfile,
88
+ 'underline' => 0)
89
+ file_menu.add('command',
90
+ 'label' => 'Close',
91
+ 'command' => closefile,
92
+ 'underline' => 0)
93
+ file_menu.add('separator')
94
+ file_menu.add('command',
95
+ 'label' => "Save",
96
+ 'command' => savefile,
97
+ 'underline' => 0)
98
+ file_menu.add('command',
99
+ 'label' => "Save As...",
100
+ 'command' => savefileas,
101
+ 'underline' => 5)
102
+ file_menu.add('separator')
103
+ file_menu.add('command',
104
+ 'label' => "Exit",
105
+ 'command' => exitapp,
106
+ 'underline' => 3)
107
+ helpMenu.add('command',
108
+ 'label' => "Help",
109
+ 'command' => help,
110
+ 'underline' => 3)
111
+ #_________________________________________
112
+ menu_bar = TkMenu.new
113
+ menu_bar.add('cascade',
114
+ 'menu' => file_menu,
115
+ 'label' => "File")
116
+ menu_bar.add('cascade',
117
+ 'menu' => helpMenu,
118
+ 'label' => "Help")
119
+
120
+ root.menu(menu_bar)
121
+ #____________________________ TEXT ______________________________________
122
+ $text = TkText.new(root) do
123
+ width 100
124
+ height 24
125
+ background "black"
126
+ foreground "white"
127
+ font TkFont.new('tahoma 16 normal')
128
+ wrap 'word'
129
+ insertbackground "yellow"
130
+ insertwidth 30
131
+ cursor "hand2"
132
+ end
133
+
134
+ $text.focus
135
+ #________________ SCROLLBAR ____________________________________________
136
+ scrollbar = TkScrollbar.new(root){command proc{|*args| $text.yview(*args)}
137
+ }
138
+ $text.yscrollcommand(proc{|first, last| scrollbar.set(first, last)})
139
+ #________________ GEOMETRY _____________________________________________
140
+ $text.grid('row' => 0, 'column' => 0)
141
+ button.grid('row' =>0, 'column' => 0)
142
+ scrollbar.grid('row' => 0, 'column' => 1, 'sticky' => 'NS')
143
+ TkGrid.columnconfigure( root, 0, :weight => 1 )
144
+ TkGrid.rowconfigure( root, 0, :weight => 1 )
145
+ TkGrid.columnconfigure( $text, 0, :weight => 0 )
146
+ TkGrid.rowconfigure( $text, 0, :weight => 0)
147
+
148
+ ###################### Show ####################################
149
+ Tk.mainloop
150
+ ##########################################################
metadata ADDED
@@ -0,0 +1,50 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: simped
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Sabry Fattah
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-02-14 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: A simple text editor with white text on black background
14
+ email: sabryabdelfattah@gmail.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files:
18
+ - README.md
19
+ files:
20
+ - README.md
21
+ - lib/simped.rb
22
+ homepage: http://sabryfattah.com
23
+ licenses:
24
+ - MIT
25
+ metadata: {}
26
+ post_install_message:
27
+ rdoc_options:
28
+ - --main
29
+ - README.md
30
+ require_paths:
31
+ - lib
32
+ required_ruby_version: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - ! '>='
35
+ - !ruby/object:Gem::Version
36
+ version: '0'
37
+ required_rubygems_version: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ! '>'
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ requirements: []
43
+ rubyforge_project:
44
+ rubygems_version: 2.4.5
45
+ signing_key:
46
+ specification_version: 3
47
+ summary: Simped is a simple GUI text editor with black background and white text.
48
+ The menu includes just open, cloaem save, save as and exit commands. The help menu
49
+ explain use of the editor. The GUI is based on Tc/Tk commands
50
+ test_files: []