-
Notifications
You must be signed in to change notification settings - Fork 1
/
README
136 lines (108 loc) · 4.21 KB
/
README
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
ClutterSmith
============
A a base for a Clutter authoring environment.
ClutterSmith is highly experimental no stability or future backwards
compatibility for the project files is guaranteed. It can currently be used
to create json files for use with any Clutter supported language binding.
The javascript integration with gjs goes beyond what can be statically
decalred in a .json file. It should be possible to also use some javascript
driven features also from other languages.
Building
--------
Compile and install as normal, the following dependencies are needed:
gobject-introspection
gir-repository
clutter
nbtk (the mx branch)
clutter-gst
gjs
GObject introspection files are expected to have been generated and installed
for mx and clutter. A good way to download the sources needed is to run the
jhbuild bootstrap of gnome-shell (see http://live.gnome.org/GnomeShell).
ClutterSmith needs to be installed before it works, it currently launches
in browse mode on a tutorial. Note that the default project is read only
since it is installed in a system location. To edit a project launch
cluttersmith with a working directory or an existing json file as the argument.
Features
--------
This outline is a summary of interactions in cluttersmith, some prefixed
with a - are not implemented yet. This is development planning sheet and not
a user guide, many of the things listed here will probably change. The
actions are organized based on the context where it is possible to perform
these actions.
actions regardsless of selection status
-undo
-redo
select all
if content in paste buffer
paste ^V
add template click in template panel (should be drag and drop)
goto scene click scene in scene list (or edit scene title)
add scene edit title entry in toolbar
change directory edit working dir entry in toolbar
enter container double click selected item which is a container
edit item double click item (like text)
when have none
select one click at an the item
select many lasso select, starting outside any item
when have any
add one to selection shift+click at an item
toggle selection status ctrl+click at an item
add many shift+lasso select as in none
toggle many ctrl+lasso select as in none
select none
raise pgup
lower pgdn
home send to front
end send to back
selection keynav cursor keys (shift to extend, ctrl to slide|move?)
ctrl+shift to align (using cursor dir to determine
side to be aligned?)
cut ^X
copy ^C
delete delete
-create template should take the paste buffer and add a new template
move
individual item drag, starting in item
with snapping
multiple items drag starting in one item
-with snapping
resize
individual item drag resize handle in lower right of item
with swapping
-multiple items drag resize handle on lower right of items
-with swapping
select none
group
ungroup
when have one
duplicate ^D
if container
make group ^G
ungroup shift^G
if link
change destination
when have many
group
make box creates a box container
-align
-distribute
Visualisations for selected actor
properties
child properties
-layout properties
callbacks
javascript code not fully functional
-visual coding snippets/blocks,with ui elements as js placeholders
-go to scene
-load scene modally
-animation triggering the animations of a scene should be named..
(perhaps using named transitions would be good?)
Snippets
--------
It should be possible to program using visual blocks representing blocks
of javascript code.
change_scene (gui_string_scene_name);
set_size (gui_string_actor_id, gui_int_width, gui_int_height);
set_position (gui_string_actor_id, gui_int_x, gui_int_y);
set_sub_scene (gui_string_actor_id, gui_string_scene_name);