diff options
author | David Walter Seikel | 2013-02-02 21:22:58 +1000 |
---|---|---|
committer | David Walter Seikel | 2013-02-02 21:22:58 +1000 |
commit | 7d48bd9a65bc5fe92ede80ea7fc49e7526d07c7a (patch) | |
tree | 10f5afed6d45ceb28bbd08d97151141c6b60eff9 | |
parent | Added GuiLua stub. (diff) | |
download | SledjHamr-7d48bd9a65bc5fe92ede80ea7fc49e7526d07c7a.zip SledjHamr-7d48bd9a65bc5fe92ede80ea7fc49e7526d07c7a.tar.gz SledjHamr-7d48bd9a65bc5fe92ede80ea7fc49e7526d07c7a.tar.bz2 SledjHamr-7d48bd9a65bc5fe92ede80ea7fc49e7526d07c7a.tar.xz |
Rearrange ClientHamr README's into better bits.
-rw-r--r-- | ClientHamr/GuiLua/README | 60 | ||||
-rw-r--r-- | ClientHamr/extantz/README | 160 | ||||
-rw-r--r-- | ClientHamr/extantz/skin.txt | 37 | ||||
-rw-r--r-- | ClientHamr/woMan/README | 148 |
4 files changed, 213 insertions, 192 deletions
diff --git a/ClientHamr/GuiLua/README b/ClientHamr/GuiLua/README index 70f67b8..8c798c7 100644 --- a/ClientHamr/GuiLua/README +++ b/ClientHamr/GuiLua/README | |||
@@ -1,2 +1,58 @@ | |||
1 | GuiLua is basically a redo of my ancient Java based matrix-RAD system to | 1 | GuiLua is basically a redo of my ancient Java based matrix-RAD system, |
2 | Lua and EFL. | 2 | but using Lua and EFL. The ultimate goal is for the various ClientHamr |
3 | parts to be able to either host their own UI, or have it hosted in the | ||
4 | in world 3D window. Matrix-RAD's ability to run either server or client | ||
5 | side, with no change to the code, is great for this sort of thing. If I | ||
6 | can manage the ability to "tear off" windows, in other words, pull them | ||
7 | out of the 3D window to be real windows, then that's something people | ||
8 | have been asking for from LL forever. | ||
9 | |||
10 | |||
11 | old notes | ||
12 | --------- | ||
13 | |||
14 | Might be good to allow Lua scripting. One way of dealing with viewer | ||
15 | prefs perhaps? Certainly think about Lua for the UI, and a built in | ||
16 | editor, etc. ala skang. All the fancy stuff like development and such | ||
17 | should be kept in some sort of module, so as not to bloat the main | ||
18 | proggy. See if it's possible to disable the Emerald/Phoenix/Firestorm | ||
19 | LSL bridge when connecting to OpenSim. See if we can do it from Lua, | ||
20 | with some sort of generic Lua system for munging things. | ||
21 | |||
22 | |||
23 | skang vs edje vs LL shit | ||
24 | ------------------------ | ||
25 | |||
26 | EDJE | ||
27 | Verbose, complex. | ||
28 | Used to place and decorate widget parts. | ||
29 | Can be used to place entire widgets through externals and swallows. | ||
30 | Basic parts relative to each other. | ||
31 | Signals and messages. | ||
32 | Embryo scripts. | ||
33 | Lua scripts (sandboxed). | ||
34 | |||
35 | |||
36 | SKANG | ||
37 | Tight, simple. | ||
38 | Used to place widgets, and describe actions. | ||
39 | Can include some really basic scripting. | ||
40 | Widgets in a fixed position, but included stuff for relative placement in the TODO. | ||
41 | Automated associations between widget name and variable (and method?) via introspection. | ||
42 | Actions. | ||
43 | Looks (could easily be extended to edje groups). | ||
44 | Extensible. | ||
45 | Can be used to pass values around. | ||
46 | |||
47 | |||
48 | LL SHIT | ||
49 | Verbose, even worse, XML, more crap than is needed. | ||
50 | Menus. | ||
51 | Windows with widgets relative to each other. | ||
52 | Basically nested rectangles. | ||
53 | Manual association of widgets to methods. | ||
54 | Can include tool tip string, enabled, visible, hover cursor, bounding rectangle?, mouse opaque?, tab groups, font (name, size, style, and alignment). | ||
55 | More stuff, typically hidden in the OO somewhere. sigh | ||
56 | Generally uses fixed image and colour names, which skins overide. | ||
57 | Skins can also overide the XML files. | ||
58 | Translations provide override XML files that need only override the text bits. | ||
diff --git a/ClientHamr/extantz/README b/ClientHamr/extantz/README index b7b4de4..5fb1d5f 100644 --- a/ClientHamr/extantz/README +++ b/ClientHamr/extantz/README | |||
@@ -1,19 +1,7 @@ | |||
1 | Extantz is a front end to virtual world viewers, mostly of the SL | 1 | Extantz is the main virtual world front end. Also, during this |
2 | (Second Life) variety since that's my focus. Most SL style virtual | 2 | experimental phase of development, this will be a test bed for all the |
3 | world viewers can be invoked with options to start them logging on, and | 3 | GUI stuff. Eventually lots of it will be split off to separate |
4 | skipping the login screen. So this project aims to be that login | 4 | programs. |
5 | screen, doing all the things that can be done from the meta-impy login | ||
6 | screen, plus more. Once the user hits the login button, extantz figures | ||
7 | out what parameters to pass to what viewer, then starts it up and gets | ||
8 | out of the way. Following the ClientHamr philosophy of breaking the | ||
9 | viewer up into modules that do simpler tasks, and do them well. So that | ||
10 | means that meta-impy will eventually loose it's login screen, to be | ||
11 | replaced by extantz. | ||
12 | |||
13 | Also, during this experimental phase of development, this will be a test | ||
14 | bed for all the GUI stuff. This could end up being the front end for | ||
15 | the entire system, but still having the various bits split off into | ||
16 | separate programs. | ||
17 | 5 | ||
18 | Extantz is a made up word. The challenge was to find a word beginning | 6 | Extantz is a made up word. The challenge was to find a word beginning |
19 | with E, is as traditional with EFL (Enlightenment Foundation Library) | 7 | with E, is as traditional with EFL (Enlightenment Foundation Library) |
@@ -31,140 +19,6 @@ So I hope to invoke thoughts of a volume that exists and stands out. In | |||
31 | other words, virtual worlds. Meh, I'm not that artsy, it needed a name. | 19 | other words, virtual worlds. Meh, I'm not that artsy, it needed a name. |
32 | lol | 20 | lol |
33 | 21 | ||
34 | Extantz starts off looking like any other viewers login screen, showing | 22 | Extantz will handle all the 3D rendering. The other parts can use nails |
35 | the login page of the default, or last visited grid, a small menu at the | 23 | to control the world that is rendered, and GuiLua to present their UI |
36 | top with the usual functions, and the usual login buttons at the bottom. | 24 | on top of the rendered world. |
37 | Added to that will be a better grid manager, with proper user | ||
38 | management, suitable for people with more than one account per grid. | ||
39 | The user will have the ability to choose a virtual world viewer to be | ||
40 | the default, and even to associate a particular viewer with a particular | ||
41 | grid. This is useful, for instance, for grids that have their own | ||
42 | custom viewers, but the user wants to use a more generic viewer for all | ||
43 | the other grids. Or if the user wants to use one viewer for OpenSim | ||
44 | grids, but another for LL (Linden Labs) grids. Coz perhaps their chosen | ||
45 | viewer is not TPVP (Third Party Viewer Policy, an LL thing) compliant, | ||
46 | and LL are just more anal than the rest of the universe. | ||
47 | |||
48 | The grid manager will also include some sort of search capability, as is | ||
49 | currently being discussed by various people in the OpenSim universe. | ||
50 | There might even be several search systems in place, so supporting | ||
51 | existing ones, and the ability to add more might be useful. Extantz | ||
52 | should be the only thing registered to handle hop:// and other such URLs | ||
53 | in whatever web browsers you are using. Though most viewers want to | ||
54 | register themselves, so tends to be that which ever one you started up | ||
55 | last, or first, gets that privilege. That's a whole can of worms, sane | ||
56 | policy and code should help. | ||
57 | |||
58 | It might be useful to have extantz be able to download viewers, | ||
59 | including checking for updates and offering to download them. As well | ||
60 | as updates to common things like viewer tag definition files. | ||
61 | |||
62 | Extantz, unlike the LL viewer code base, will be designed for relogging. | ||
63 | Once the viewer it starts quits (or crashes), extantz, which was still | ||
64 | running, can pop again and let the user relog, or log to some other | ||
65 | grid, or same grid as different a user, or even same grid as same user | ||
66 | with a different viewer. | ||
67 | |||
68 | Viewers can be made extantz aware, like meta-impy will be (since it's | ||
69 | handing it's login screen functionality to extantz). A few more things | ||
70 | make sense to be added in this case. For instance, you might want to | ||
71 | have some or all of your LMs (LandMarks) be usable at the log in | ||
72 | screen, so you can log directly to them. The user might want the choice | ||
73 | when they HG (HyperGrid teleport) to actually start up a new viewer and | ||
74 | just login to the other grid instead (if they already have an account | ||
75 | there). While HGed to some new grid, the user might want to add that | ||
76 | grid to the extantz grid manager at a simple click of a button, perhaps | ||
77 | complete with an LM for their current position. The grid searching | ||
78 | capabilities mentioned earlier might be needed while in world. | ||
79 | Certainly the grid manager functions in meta-impy will be handled by | ||
80 | extantz, even if in world. | ||
81 | |||
82 | In order to display the login page of a grid, which is a web page, a web | ||
83 | browser will be built into extantz. It could be used to display web | ||
84 | pages within an extantz aware viewer. Though perhaps not for MOAP | ||
85 | (Media On A Prim), unless extantz grows the ability to incorporate | ||
86 | itself into the viewers 3D landscape as part of a prim. Which is a good | ||
87 | idea, then meta-impy no longer needs a web browser. Though other things | ||
88 | in the viewer are implemented as web pages, and LL are moving more stuff | ||
89 | to the web. | ||
90 | |||
91 | One of the things on the login screen is the menu option to start up the | ||
92 | preferences window and change the viewers preferences. Viewers use XML | ||
93 | files that not only store the preferences, but also a description of | ||
94 | them. The preferences window and it's various parts are also stored as | ||
95 | XML files. There is a bit missing that is in the viewer source code | ||
96 | that ties all of this together. So it might not be possible to do this | ||
97 | for all viewers. Extantz aware viewers can naturally provide the | ||
98 | missing bits to Extantz, even if not running, or even pass that entire | ||
99 | functionality to extantz, just like meta-impy will do. | ||
100 | |||
101 | For the purposes of keeping resource usage low, it should be possible | ||
102 | for the user to configure extantz to go away when it starts a viewer. | ||
103 | Might be a good idea even for extantz aware viewers, that can start it | ||
104 | up again if it's functionality is needed while in world. Note this "go | ||
105 | away" means to stop running and free up any resources it was using; | ||
106 | which is different from the "gets out of the way" it usually does, still | ||
107 | running, just not on screen. | ||
108 | |||
109 | |||
110 | The problem with the web. | ||
111 | ------------------------- | ||
112 | |||
113 | At least that's the theory. In practice, a web browser takes up almost | ||
114 | one third of the viewer, and is only used for three things. Login | ||
115 | pages, simple built in browser window, and MOAP (Media On A Prim). For | ||
116 | the first two full blown web browsers are massive overkill. MOAP is not | ||
117 | supported by meta-impy yet anyway. | ||
118 | |||
119 | WebKit is a pain to compile at the moment, for reasons I wont go into | ||
120 | right now. At the opposite of the spectrum is dillo, which is not quite | ||
121 | up to spec enough for login pages that have fancy stuff. There does not | ||
122 | appear to be any middle ground. So right now, I'll work on using random | ||
123 | web browsers as external windows. That will suffice for everything but | ||
124 | MOAP, which I can leave until later. Just discovered netsurf, a little | ||
125 | smaller than dillo, but perhaps better featured? Might be useful. | ||
126 | |||
127 | The web is a bloated mess, so it's not surprising that a fully featured | ||
128 | web browser component like WebKit is also a bloated mess. | ||
129 | |||
130 | |||
131 | Design. | ||
132 | ------- | ||
133 | |||
134 | A thin window on the left. | ||
135 | |||
136 | Menus across the top. | ||
137 | View tabs. | ||
138 | Grids Accounts Viewers Landmarks | ||
139 | |||
140 | Grids tab is the grid manager, though you can also drill down / tree out | ||
141 | the accounts list per grid. | ||
142 | |||
143 | Accounts shows accounts, though can drill down to grid list per account. | ||
144 | Also consider launching thin viewers, text only ones and such. The | ||
145 | account view is almost a natural for extending into a IM style thingy. | ||
146 | |||
147 | Viewers lists the installed viewers, can install more, and allows | ||
148 | preferences editing. It can handle viewer installs, upgrades, even | ||
149 | compiling them from source. | ||
150 | |||
151 | Landmarks manages LMs from viewers, or log in spots, or SLURLs etc. | ||
152 | |||
153 | A user configurable web browser can open up to fill the right of the | ||
154 | screen. | ||
155 | |||
156 | Might be good to allow Lua scripting. One way of dealing with viewer | ||
157 | prefs perhaps? Certainly think about Lua for the UI, and a built in | ||
158 | editor, etc. ala skang. All the fancy stuff like development and such | ||
159 | should be kept in some sort of module, so as not to bloat the main | ||
160 | proggy. See if it's possible to disable the Emerald/Phoenix/Firestorm | ||
161 | LSL bridge when connecting to OpenSim. See if we can do it from Lua, | ||
162 | with some sort of generic Lua system for munging things. | ||
163 | |||
164 | Log file management features, including viewer stdout, check if only | ||
165 | Linux viewers do that. Including chat logs. | ||
166 | |||
167 | Dillo and uzbl can insert themselves into the windows of others. Should | ||
168 | check that out. Netsurf is allegedly easy to port to things, might be | ||
169 | able to port it to EFL. | ||
170 | |||
diff --git a/ClientHamr/extantz/skin.txt b/ClientHamr/extantz/skin.txt deleted file mode 100644 index d627bb4..0000000 --- a/ClientHamr/extantz/skin.txt +++ /dev/null | |||
@@ -1,37 +0,0 @@ | |||
1 | skang vs edje vs LL shit. | ||
2 | |||
3 | |||
4 | EDJE | ||
5 | Verbose, complex. | ||
6 | Used to place and decorate widget parts. | ||
7 | Can be used to place entire widgets through externals and swallows. | ||
8 | Basic parts relative to each other. | ||
9 | Signals and messages. | ||
10 | Embryo scripts. | ||
11 | Lua scripts. | ||
12 | |||
13 | |||
14 | SKANG | ||
15 | Tight, simple. | ||
16 | Used to place widgets, and describe actions. | ||
17 | Can include some really basic scripting. | ||
18 | Widgets in a fixed position, but included stuff for relative placement in the TODO. | ||
19 | Automated associations between widget name and variable (and method?) via introspection. | ||
20 | Actions. | ||
21 | Looks (could easily be extended to edje groups). | ||
22 | Extensible. | ||
23 | Can be used to pass values around. | ||
24 | |||
25 | |||
26 | LL SHIT | ||
27 | Verbose, even worse, XML, more crap than is needed. | ||
28 | Menus. | ||
29 | Windows with widgets relative to each other. | ||
30 | Basically nested rectangles. | ||
31 | Manual association of widgets to methods. | ||
32 | Can include tool tip string, enabled, visible, hover cursor, bounding rectangle?, mouse opaque?, tab groups, font (name, size, style, and alignment). | ||
33 | More stuff, typically hidden in the OO somewhere. sigh | ||
34 | Generally uses fixed image and colour names, which skins overide. | ||
35 | Skins can also overide the XML files. | ||
36 | Translations provide override XML files that need only override the text bits. | ||
37 | |||
diff --git a/ClientHamr/woMan/README b/ClientHamr/woMan/README new file mode 100644 index 0000000..1b3bbe0 --- /dev/null +++ b/ClientHamr/woMan/README | |||
@@ -0,0 +1,148 @@ | |||
1 | WoMan is a virtual world account and viewer manager, mostly of the SL | ||
2 | (Second Life) variety since that's my focus. Most SL style virtual | ||
3 | world viewers can be invoked with options to start them logging on, and | ||
4 | skipping the login screen. So this project aims to be that login | ||
5 | screen, doing all the things that can be done from the meta-impy login | ||
6 | screen, plus more. Once the user hits the login button, woMan figures | ||
7 | out what parameters to pass to what viewer, then starts it up and gets | ||
8 | out of the way. Following the ClientHamr philosophy of breaking the | ||
9 | viewer up into modules that do simpler tasks, and do them well. So that | ||
10 | means that meta-impy will eventually loose it's login screen, to be | ||
11 | replaced by woMan. | ||
12 | |||
13 | WoMan starts off looking like any other viewers login screen, showing | ||
14 | the login page of the default, or last visited grid, a small menu at the | ||
15 | top with the usual functions, and the usual login buttons at the bottom. | ||
16 | Added to that will be a better grid manager, with proper user | ||
17 | management, suitable for people with more than one account per grid. | ||
18 | The user will have the ability to choose a virtual world viewer to be | ||
19 | the default, and even to associate a particular viewer with a particular | ||
20 | grid. This is useful, for instance, for grids that have their own | ||
21 | custom viewers, but the user wants to use a more generic viewer for all | ||
22 | the other grids. Or if the user wants to use one viewer for OpenSim | ||
23 | grids, but another for LL (Linden Labs) grids. Coz perhaps their chosen | ||
24 | viewer is not TPVP (Third Party Viewer Policy, an LL thing) compliant, | ||
25 | and LL are just more anal than the rest of the universe. | ||
26 | |||
27 | NOTE: since I started this, LL in their *cough* infinite wisdom *cough*, | ||
28 | decided that support of OpenSIm was a Really Bad Thing, so their viewers | ||
29 | are no longer capable of dealing with other grids. LL have even gone as | ||
30 | far as try to get other viewers to not support other grids. As far as | ||
31 | woMan is concerned, this just means that LL viewers, and viewers that | ||
32 | drank the LL koolaid, are less functional. shrugs | ||
33 | |||
34 | The grid manager will also include some sort of search capability, as is | ||
35 | currently being discussed by various people in the OpenSim universe. | ||
36 | There might even be several search systems in place, so supporting | ||
37 | existing ones, and the ability to add more might be useful. WoMan | ||
38 | should be the only thing registered to handle hop:// and other such URLs | ||
39 | in whatever web browsers you are using. Though most viewers want to | ||
40 | register themselves, so tends to be that which ever one you started up | ||
41 | last, or first, gets that privilege. That's a whole can of worms, sane | ||
42 | policy and code should help. | ||
43 | |||
44 | It might be useful to have woMan be able to download viewers, | ||
45 | including checking for updates and offering to download them. As well | ||
46 | as updates to common things like viewer tag definition files. | ||
47 | |||
48 | WoMan, unlike the LL viewer code base, will be designed for relogging. | ||
49 | Once the viewer it starts quits (or crashes), WoMan, which was still | ||
50 | running, can pop again and let the user relog, or log to some other | ||
51 | grid, or same grid as different a user, or even same grid as same user | ||
52 | with a different viewer. | ||
53 | |||
54 | Viewers can be made woMan aware, like meta-impy will be (since it's | ||
55 | handing it's login screen functionality to woMan). A few more things | ||
56 | make sense to be added in this case. For instance, you might want to | ||
57 | have some or all of your LMs (LandMarks) be usable at the log in | ||
58 | screen, so you can log directly to them. The user might want the choice | ||
59 | when they HG (HyperGrid teleport) to actually start up a new viewer and | ||
60 | just login to the other grid instead (if they already have an account | ||
61 | there). While HGed to some new grid, the user might want to add that | ||
62 | grid to the woMan grid manager at a simple click of a button, perhaps | ||
63 | complete with an LM for their current position. The grid searching | ||
64 | capabilities mentioned earlier might be needed while in world. | ||
65 | Certainly the grid manager functions in meta-impy will be handled by | ||
66 | woMan, even if in world. | ||
67 | |||
68 | In order to display the login page of a grid, which is a web page, a web | ||
69 | browser will be built into woMan. It could be used to display web | ||
70 | pages within an woMan aware viewer. Though perhaps not for MOAP | ||
71 | (Media On A Prim), unless woMan grows the ability to incorporate | ||
72 | itself into the viewers 3D landscape as part of a prim. Which is a good | ||
73 | idea, then meta-impy no longer needs a web browser. Though other things | ||
74 | in the viewer are implemented as web pages, and LL are moving more stuff | ||
75 | to the web. | ||
76 | |||
77 | One of the things on the login screen is the menu option to start up the | ||
78 | preferences window and change the viewers preferences. Viewers use XML | ||
79 | files that not only store the preferences, but also a description of | ||
80 | them. The preferences window and it's various parts are also stored as | ||
81 | XML files. There is a bit missing that is in the viewer source code | ||
82 | that ties all of this together. So it might not be possible to do this | ||
83 | for all viewers. WoMan aware viewers can naturally provide the | ||
84 | missing bits to woMan, even if not running, or even pass that entire | ||
85 | functionality to woMan, just like meta-impy will do. | ||
86 | |||
87 | For the purposes of keeping resource usage low, it should be possible | ||
88 | for the user to configure woMan to go away when it starts a viewer. | ||
89 | Might be a good idea even for woMan aware viewers, that can start it | ||
90 | up again if it's functionality is needed while in world. Note this "go | ||
91 | away" means to stop running and free up any resources it was using; | ||
92 | which is different from the "gets out of the way" it usually does, still | ||
93 | running, just not on screen. | ||
94 | |||
95 | |||
96 | The problem with the web. | ||
97 | ------------------------- | ||
98 | |||
99 | At least that's the theory. In practice, a web browser takes up almost | ||
100 | one third of the viewer, and is only used for three things. Login | ||
101 | pages, simple built in browser window, and MOAP (Media On A Prim). For | ||
102 | the first two full blown web browsers are massive overkill. MOAP is not | ||
103 | supported by meta-impy yet anyway. | ||
104 | |||
105 | WebKit is a pain to compile at the moment, for reasons I wont go into | ||
106 | right now. At the opposite of the spectrum is dillo, which is not quite | ||
107 | up to spec enough for login pages that have fancy stuff. There does not | ||
108 | appear to be any middle ground. So right now, I'll work on using random | ||
109 | web browsers as external windows. That will suffice for everything but | ||
110 | MOAP, which I can leave until later. Just discovered netsurf, a little | ||
111 | smaller than dillo, but perhaps better featured? Might be useful. | ||
112 | |||
113 | The web is a bloated mess, so it's not surprising that a fully featured | ||
114 | web browser component like WebKit is also a bloated mess. | ||
115 | |||
116 | |||
117 | Design. | ||
118 | ------- | ||
119 | |||
120 | A thin window on the left. | ||
121 | |||
122 | Menus across the top. | ||
123 | View tabs. | ||
124 | Grids Accounts Viewers Landmarks | ||
125 | |||
126 | Grids tab is the grid manager, though you can also drill down / tree out | ||
127 | the accounts list per grid. | ||
128 | |||
129 | Accounts shows accounts, though can drill down to grid list per account. | ||
130 | Also consider launching thin viewers, text only ones and such. The | ||
131 | account view is almost a natural for extending into a IM style thingy. | ||
132 | |||
133 | Viewers lists the installed viewers, can install more, and allows | ||
134 | preferences editing. It can handle viewer installs, upgrades, even | ||
135 | compiling them from source. | ||
136 | |||
137 | Landmarks manages LMs from viewers, or log in spots, or SLURLs etc. | ||
138 | |||
139 | A user configurable web browser can open up to fill the right of the | ||
140 | screen. | ||
141 | |||
142 | Log file management features, including viewer stdout, check if only | ||
143 | Linux viewers do that. Including chat logs. | ||
144 | |||
145 | Dillo and uzbl can insert themselves into the windows of others. Should | ||
146 | check that out. Netsurf is allegedly easy to port to things, might be | ||
147 | able to port it to EFL. | ||
148 | |||