1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
NOTES = [['Welcome to the vJot Clone', <<-'END']]
This sample app is a notetaker, a clone of PJ Hyett's vjot.com.
Creating
----------
Click "Add a New Note" and the jot will be loaded into the editor for reading or editing.
Editing
---------
Click a jot's title to load it.
Saving
--------
There is no save button, the jot is saved as you edit.
END
Shoes.app :title => "vJot",
:width => 420, :height => 560, :resizable => false do
@note = NOTES.first
background "#C7EAFB"
stack :width => 400, :margin => 20 do
background "#eee", :curve => 12
border "#00D0FF", :strokewidth => 3, :curve => 12
stack :margin => 20 do
caption "vJot"
@title = edit_line @note[0], :width => 1.0 do
@note[0] = @title.text
load_list
end
stack :width => 1.0, :height => 200, :scroll => true do
@list = para
end
@jot = edit_box @note[1], :width => 1.0, :height => 200, :margin_bottom => 20 do
@note[1] = @jot.text
end
end
end
def load_list
@list.replace *(NOTES.map { |note|
[link(note.first) { @note = load_note(note); load_list }, "\n"]
}.flatten +
[link("+ Add a new Note") { NOTES << (@note = load_note); load_list }])
end
def load_note(note = ['New Note', ''])
@note = note
@title.text = note[0]
@jot.text = note[1]
note
end
load_list
end
|