aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCarsten Haitzler <raster@rasterman.com>2004-11-25 03:37:45 +0000
committerCarsten Haitzler <raster@rasterman.com>2004-11-25 03:37:45 +0000
commit5e2388c886b15923f2b1350191524f40b0e9050a (patch)
treeeeb93c0db03cb87075ed74cc31367f669e5f2e72
parentf2b45ed47126d12986591cb02a6fcfc5908255fe (diff)
downloadenlightenment-5e2388c886b15923f2b1350191524f40b0e9050a.tar.gz
enlightenment-5e2388c886b15923f2b1350191524f40b0e9050a.tar.xz
enlightenment-5e2388c886b15923f2b1350191524f40b0e9050a.zip
_ _ _ _ _____ ___
| | | | ___| | | | ___| __ ___ ___ _______ ___ / _ \__ _____ _ __ | |_| |/ _ \ | | | |_ | '__/ _ \/ _ \_ / _ \/ __| | | | \ \ / / _ \ '__| | _ | __/ | | | _|| | | __/ __// / __/\__ \ | |_| |\ V / __/ | |_| |_|\___|_|_| |_| |_| \___|\___/___\___||___/ \___/ \_/ \___|_| I put E17's wm code into cvs. Hell is freezing over. Duke Nukem Forever will be out next week. Snowballls take up residence in Hell. The Fat Lady sings. The End is nigh... :) SVN revision: 12247
-rw-r--r--AUTHORS2
-rw-r--r--COPYING28
-rw-r--r--COPYING-PLAIN33
-rw-r--r--ChangeLog0
-rw-r--r--INSTALL14
-rw-r--r--Makefile.am10
-rw-r--r--NEWS0
-rw-r--r--README1
-rwxr-xr-xautogen.sh13
-rw-r--r--configure.in196
-rw-r--r--data/Makefile.am3
-rw-r--r--data/fonts/Makefile.am17
-rw-r--r--data/fonts/Vera.ttfbin0 -> 65932 bytes
-rw-r--r--data/fonts/VeraBI.ttfbin0 -> 63208 bytes
-rw-r--r--data/fonts/VeraBd.ttfbin0 -> 58716 bytes
-rw-r--r--data/fonts/VeraIt.ttfbin0 -> 63684 bytes
-rw-r--r--data/fonts/VeraMoBI.ttfbin0 -> 55032 bytes
-rw-r--r--data/fonts/VeraMoBd.ttfbin0 -> 49052 bytes
-rw-r--r--data/fonts/VeraMoIt.ttfbin0 -> 54508 bytes
-rw-r--r--data/fonts/VeraMono.ttfbin0 -> 49224 bytes
-rw-r--r--data/fonts/VeraSe.ttfbin0 -> 60280 bytes
-rw-r--r--data/fonts/VeraSeBd.ttfbin0 -> 58736 bytes
-rw-r--r--data/fonts/fonts.alias11
-rw-r--r--data/fonts/fonts.dir51
-rw-r--r--data/images/Makefile.am10
-rw-r--r--data/images/button_in.pngbin0 -> 24064 bytes
-rw-r--r--data/images/button_out.pngbin0 -> 24253 bytes
-rw-r--r--data/images/e.pngbin0 -> 74944 bytes
-rw-r--r--data/images/error_bg.pngbin0 -> 285 bytes
-rw-r--r--data/images/pointer.pngbin0 -> 242 bytes
-rw-r--r--data/init/Makefile.am24
-rw-r--r--data/init/images/Makefile.am487
-rw-r--r--data/init/images/brushed.pngbin0 -> 37125 bytes
-rw-r--r--data/init/images/loop_eintro_121.pngbin0 -> 52747 bytes
-rw-r--r--data/init/images/loop_eintro_122.pngbin0 -> 52886 bytes
-rw-r--r--data/init/images/loop_eintro_123.pngbin0 -> 52765 bytes
-rw-r--r--data/init/images/loop_eintro_124.pngbin0 -> 52496 bytes
-rw-r--r--data/init/images/loop_eintro_125.pngbin0 -> 52525 bytes
-rw-r--r--data/init/images/loop_eintro_126.pngbin0 -> 52356 bytes
-rw-r--r--data/init/images/loop_eintro_127.pngbin0 -> 52443 bytes
-rw-r--r--data/init/images/loop_eintro_128.pngbin0 -> 52578 bytes
-rw-r--r--data/init/images/loop_eintro_129.pngbin0 -> 52350 bytes
-rw-r--r--data/init/images/loop_eintro_130.pngbin0 -> 52095 bytes
-rw-r--r--data/init/images/loop_eintro_131.pngbin0 -> 52279 bytes
-rw-r--r--data/init/images/loop_eintro_132.pngbin0 -> 51951 bytes
-rw-r--r--data/init/images/loop_eintro_133.pngbin0 -> 51718 bytes
-rw-r--r--data/init/images/loop_eintro_134.pngbin0 -> 51736 bytes
-rw-r--r--data/init/images/loop_eintro_135.pngbin0 -> 51782 bytes
-rw-r--r--data/init/images/loop_eintro_136.pngbin0 -> 51857 bytes
-rw-r--r--data/init/images/loop_eintro_137.pngbin0 -> 51736 bytes
-rw-r--r--data/init/images/loop_eintro_138.pngbin0 -> 51854 bytes
-rw-r--r--data/init/images/loop_eintro_139.pngbin0 -> 51885 bytes
-rw-r--r--data/init/images/loop_eintro_140.pngbin0 -> 51883 bytes
-rw-r--r--data/init/images/loop_eintro_141.pngbin0 -> 51993 bytes
-rw-r--r--data/init/images/loop_eintro_142.pngbin0 -> 51988 bytes
-rw-r--r--data/init/images/loop_eintro_143.pngbin0 -> 51835 bytes
-rw-r--r--data/init/images/loop_eintro_144.pngbin0 -> 51936 bytes
-rw-r--r--data/init/images/loop_eintro_145.pngbin0 -> 51868 bytes
-rw-r--r--data/init/images/loop_eintro_146.pngbin0 -> 51687 bytes
-rw-r--r--data/init/images/loop_eintro_147.pngbin0 -> 51691 bytes
-rw-r--r--data/init/images/loop_eintro_148.pngbin0 -> 51657 bytes
-rw-r--r--data/init/images/loop_eintro_149.pngbin0 -> 51604 bytes
-rw-r--r--data/init/images/loop_eintro_150.pngbin0 -> 51658 bytes
-rw-r--r--data/init/images/loop_eintro_151.pngbin0 -> 51734 bytes
-rw-r--r--data/init/images/loop_eintro_152.pngbin0 -> 51750 bytes
-rw-r--r--data/init/images/loop_eintro_153.pngbin0 -> 51638 bytes
-rw-r--r--data/init/images/loop_eintro_154.pngbin0 -> 51745 bytes
-rw-r--r--data/init/images/loop_eintro_155.pngbin0 -> 51877 bytes
-rw-r--r--data/init/images/loop_eintro_156.pngbin0 -> 51931 bytes
-rw-r--r--data/init/images/loop_eintro_157.pngbin0 -> 51678 bytes
-rw-r--r--data/init/images/loop_eintro_158.pngbin0 -> 51899 bytes
-rw-r--r--data/init/images/loop_eintro_159.pngbin0 -> 51858 bytes
-rw-r--r--data/init/images/loop_eintro_160.pngbin0 -> 51945 bytes
-rw-r--r--data/init/images/loop_eintro_161.pngbin0 -> 52023 bytes
-rw-r--r--data/init/images/loop_eintro_162.pngbin0 -> 51902 bytes
-rw-r--r--data/init/images/loop_eintro_163.pngbin0 -> 51887 bytes
-rw-r--r--data/init/images/loop_eintro_164.pngbin0 -> 52187 bytes
-rw-r--r--data/init/images/loop_eintro_165.pngbin0 -> 52038 bytes
-rw-r--r--data/init/images/loop_eintro_166.pngbin0 -> 52106 bytes
-rw-r--r--data/init/images/loop_eintro_167.pngbin0 -> 51983 bytes
-rw-r--r--data/init/images/loop_eintro_168.pngbin0 -> 51983 bytes
-rw-r--r--data/init/images/loop_eintro_169.pngbin0 -> 51983 bytes
-rw-r--r--data/init/images/loop_eintro_170.pngbin0 -> 51954 bytes
-rw-r--r--data/init/images/loop_eintro_171.pngbin0 -> 51873 bytes
-rw-r--r--data/init/images/loop_eintro_172.pngbin0 -> 52038 bytes
-rw-r--r--data/init/images/loop_eintro_173.pngbin0 -> 51873 bytes
-rw-r--r--data/init/images/loop_eintro_174.pngbin0 -> 51911 bytes
-rw-r--r--data/init/images/loop_eintro_175.pngbin0 -> 51871 bytes
-rw-r--r--data/init/images/loop_eintro_176.pngbin0 -> 51777 bytes
-rw-r--r--data/init/images/loop_eintro_177.pngbin0 -> 51874 bytes
-rw-r--r--data/init/images/loop_eintro_178.pngbin0 -> 51905 bytes
-rw-r--r--data/init/images/loop_eintro_179.pngbin0 -> 52144 bytes
-rw-r--r--data/init/images/loop_eintro_180.pngbin0 -> 51975 bytes
-rw-r--r--data/init/images/loop_eintro_181.pngbin0 -> 52001 bytes
-rw-r--r--data/init/images/loop_eintro_182.pngbin0 -> 52045 bytes
-rw-r--r--data/init/images/loop_eintro_183.pngbin0 -> 52203 bytes
-rw-r--r--data/init/images/loop_eintro_184.pngbin0 -> 52186 bytes
-rw-r--r--data/init/images/loop_eintro_185.pngbin0 -> 52220 bytes
-rw-r--r--data/init/images/loop_eintro_186.pngbin0 -> 52411 bytes
-rw-r--r--data/init/images/loop_eintro_187.pngbin0 -> 52285 bytes
-rw-r--r--data/init/images/loop_eintro_188.pngbin0 -> 52423 bytes
-rw-r--r--data/init/images/loop_eintro_189.pngbin0 -> 52552 bytes
-rw-r--r--data/init/images/loop_eintro_190.pngbin0 -> 52418 bytes
-rw-r--r--data/init/images/loop_eintro_191.pngbin0 -> 52510 bytes
-rw-r--r--data/init/images/loop_eintro_192.pngbin0 -> 52572 bytes
-rw-r--r--data/init/images/loop_eintro_193.pngbin0 -> 52649 bytes
-rw-r--r--data/init/images/loop_eintro_194.pngbin0 -> 52453 bytes
-rw-r--r--data/init/images/loop_eintro_195.pngbin0 -> 52561 bytes
-rw-r--r--data/init/images/loop_eintro_196.pngbin0 -> 52684 bytes
-rw-r--r--data/init/images/loop_eintro_197.pngbin0 -> 52670 bytes
-rw-r--r--data/init/images/loop_eintro_198.pngbin0 -> 52868 bytes
-rw-r--r--data/init/images/loop_eintro_199.pngbin0 -> 52927 bytes
-rw-r--r--data/init/images/loop_eintro_200.pngbin0 -> 52826 bytes
-rw-r--r--data/init/images/loop_eintro_201.pngbin0 -> 52653 bytes
-rw-r--r--data/init/images/loop_eintro_202.pngbin0 -> 52695 bytes
-rw-r--r--data/init/images/loop_eintro_203.pngbin0 -> 52735 bytes
-rw-r--r--data/init/images/loop_eintro_204.pngbin0 -> 52632 bytes
-rw-r--r--data/init/images/loop_eintro_205.pngbin0 -> 52738 bytes
-rw-r--r--data/init/images/loop_eintro_206.pngbin0 -> 53032 bytes
-rw-r--r--data/init/images/loop_eintro_207.pngbin0 -> 53185 bytes
-rw-r--r--data/init/images/loop_eintro_208.pngbin0 -> 53230 bytes
-rw-r--r--data/init/images/loop_eintro_209.pngbin0 -> 53327 bytes
-rw-r--r--data/init/images/loop_eintro_210.pngbin0 -> 53416 bytes
-rw-r--r--data/init/images/loop_eintro_211.pngbin0 -> 53369 bytes
-rw-r--r--data/init/images/loop_eintro_212.pngbin0 -> 53582 bytes
-rw-r--r--data/init/images/loop_eintro_213.pngbin0 -> 53648 bytes
-rw-r--r--data/init/images/loop_eintro_214.pngbin0 -> 53630 bytes
-rw-r--r--data/init/images/loop_eintro_215.pngbin0 -> 53896 bytes
-rw-r--r--data/init/images/loop_eintro_216.pngbin0 -> 53857 bytes
-rw-r--r--data/init/images/loop_eintro_217.pngbin0 -> 53799 bytes
-rw-r--r--data/init/images/loop_eintro_218.pngbin0 -> 53654 bytes
-rw-r--r--data/init/images/loop_eintro_219.pngbin0 -> 53668 bytes
-rw-r--r--data/init/images/loop_eintro_220.pngbin0 -> 53644 bytes
-rw-r--r--data/init/images/loop_eintro_221.pngbin0 -> 53688 bytes
-rw-r--r--data/init/images/loop_eintro_222.pngbin0 -> 53540 bytes
-rw-r--r--data/init/images/loop_eintro_223.pngbin0 -> 53760 bytes
-rw-r--r--data/init/images/loop_eintro_224.pngbin0 -> 53667 bytes
-rw-r--r--data/init/images/loop_eintro_225.pngbin0 -> 53660 bytes
-rw-r--r--data/init/images/loop_eintro_226.pngbin0 -> 53831 bytes
-rw-r--r--data/init/images/loop_eintro_227.pngbin0 -> 53687 bytes
-rw-r--r--data/init/images/loop_eintro_228.pngbin0 -> 53329 bytes
-rw-r--r--data/init/images/loop_eintro_229.pngbin0 -> 53298 bytes
-rw-r--r--data/init/images/loop_eintro_230.pngbin0 -> 53235 bytes
-rw-r--r--data/init/images/loop_eintro_231.pngbin0 -> 53092 bytes
-rw-r--r--data/init/images/loop_eintro_232.pngbin0 -> 52941 bytes
-rw-r--r--data/init/images/loop_eintro_233.pngbin0 -> 52780 bytes
-rw-r--r--data/init/images/loop_eintro_234.pngbin0 -> 52847 bytes
-rw-r--r--data/init/images/loop_eintro_235.pngbin0 -> 52732 bytes
-rw-r--r--data/init/images/loop_eintro_236.pngbin0 -> 52650 bytes
-rw-r--r--data/init/images/loop_eintro_237.pngbin0 -> 52751 bytes
-rw-r--r--data/init/images/loop_eintro_238.pngbin0 -> 52722 bytes
-rw-r--r--data/init/images/loop_eintro_239.pngbin0 -> 52760 bytes
-rw-r--r--data/init/images/loop_eintro_240.pngbin0 -> 52780 bytes
-rw-r--r--data/init/images/reflection_overlay.pngbin0 -> 267837 bytes
-rw-r--r--data/init/images/shadow.pngbin0 -> 30426 bytes
-rw-r--r--data/init/images/sm_loop_eintro_121.pngbin0 -> 19582 bytes
-rw-r--r--data/init/images/sm_loop_eintro_122.pngbin0 -> 19588 bytes
-rw-r--r--data/init/images/sm_loop_eintro_123.pngbin0 -> 19500 bytes
-rw-r--r--data/init/images/sm_loop_eintro_124.pngbin0 -> 19525 bytes
-rw-r--r--data/init/images/sm_loop_eintro_125.pngbin0 -> 19455 bytes
-rw-r--r--data/init/images/sm_loop_eintro_126.pngbin0 -> 19421 bytes
-rw-r--r--data/init/images/sm_loop_eintro_127.pngbin0 -> 19434 bytes
-rw-r--r--data/init/images/sm_loop_eintro_128.pngbin0 -> 19436 bytes
-rw-r--r--data/init/images/sm_loop_eintro_129.pngbin0 -> 19454 bytes
-rw-r--r--data/init/images/sm_loop_eintro_130.pngbin0 -> 19388 bytes
-rw-r--r--data/init/images/sm_loop_eintro_131.pngbin0 -> 19364 bytes
-rw-r--r--data/init/images/sm_loop_eintro_132.pngbin0 -> 19316 bytes
-rw-r--r--data/init/images/sm_loop_eintro_133.pngbin0 -> 19232 bytes
-rw-r--r--data/init/images/sm_loop_eintro_134.pngbin0 -> 19274 bytes
-rw-r--r--data/init/images/sm_loop_eintro_135.pngbin0 -> 19263 bytes
-rw-r--r--data/init/images/sm_loop_eintro_136.pngbin0 -> 19270 bytes
-rw-r--r--data/init/images/sm_loop_eintro_137.pngbin0 -> 19219 bytes
-rw-r--r--data/init/images/sm_loop_eintro_138.pngbin0 -> 19355 bytes
-rw-r--r--data/init/images/sm_loop_eintro_139.pngbin0 -> 19290 bytes
-rw-r--r--data/init/images/sm_loop_eintro_140.pngbin0 -> 19239 bytes
-rw-r--r--data/init/images/sm_loop_eintro_141.pngbin0 -> 19234 bytes
-rw-r--r--data/init/images/sm_loop_eintro_142.pngbin0 -> 19246 bytes
-rw-r--r--data/init/images/sm_loop_eintro_143.pngbin0 -> 19301 bytes
-rw-r--r--data/init/images/sm_loop_eintro_144.pngbin0 -> 19263 bytes
-rw-r--r--data/init/images/sm_loop_eintro_145.pngbin0 -> 19207 bytes
-rw-r--r--data/init/images/sm_loop_eintro_146.pngbin0 -> 19241 bytes
-rw-r--r--data/init/images/sm_loop_eintro_147.pngbin0 -> 19175 bytes
-rw-r--r--data/init/images/sm_loop_eintro_148.pngbin0 -> 19158 bytes
-rw-r--r--data/init/images/sm_loop_eintro_149.pngbin0 -> 19131 bytes
-rw-r--r--data/init/images/sm_loop_eintro_150.pngbin0 -> 19153 bytes
-rw-r--r--data/init/images/sm_loop_eintro_151.pngbin0 -> 19159 bytes
-rw-r--r--data/init/images/sm_loop_eintro_152.pngbin0 -> 19189 bytes
-rw-r--r--data/init/images/sm_loop_eintro_153.pngbin0 -> 19156 bytes
-rw-r--r--data/init/images/sm_loop_eintro_154.pngbin0 -> 19209 bytes
-rw-r--r--data/init/images/sm_loop_eintro_155.pngbin0 -> 19198 bytes
-rw-r--r--data/init/images/sm_loop_eintro_156.pngbin0 -> 19166 bytes
-rw-r--r--data/init/images/sm_loop_eintro_157.pngbin0 -> 19143 bytes
-rw-r--r--data/init/images/sm_loop_eintro_158.pngbin0 -> 19249 bytes
-rw-r--r--data/init/images/sm_loop_eintro_159.pngbin0 -> 19146 bytes
-rw-r--r--data/init/images/sm_loop_eintro_160.pngbin0 -> 19272 bytes
-rw-r--r--data/init/images/sm_loop_eintro_161.pngbin0 -> 19214 bytes
-rw-r--r--data/init/images/sm_loop_eintro_162.pngbin0 -> 19225 bytes
-rw-r--r--data/init/images/sm_loop_eintro_163.pngbin0 -> 19220 bytes
-rw-r--r--data/init/images/sm_loop_eintro_164.pngbin0 -> 19233 bytes
-rw-r--r--data/init/images/sm_loop_eintro_165.pngbin0 -> 19209 bytes
-rw-r--r--data/init/images/sm_loop_eintro_166.pngbin0 -> 19285 bytes
-rw-r--r--data/init/images/sm_loop_eintro_167.pngbin0 -> 19326 bytes
-rw-r--r--data/init/images/sm_loop_eintro_168.pngbin0 -> 19209 bytes
-rw-r--r--data/init/images/sm_loop_eintro_169.pngbin0 -> 19202 bytes
-rw-r--r--data/init/images/sm_loop_eintro_170.pngbin0 -> 19199 bytes
-rw-r--r--data/init/images/sm_loop_eintro_171.pngbin0 -> 19214 bytes
-rw-r--r--data/init/images/sm_loop_eintro_172.pngbin0 -> 19227 bytes
-rw-r--r--data/init/images/sm_loop_eintro_173.pngbin0 -> 19212 bytes
-rw-r--r--data/init/images/sm_loop_eintro_174.pngbin0 -> 19096 bytes
-rw-r--r--data/init/images/sm_loop_eintro_175.pngbin0 -> 19180 bytes
-rw-r--r--data/init/images/sm_loop_eintro_176.pngbin0 -> 19122 bytes
-rw-r--r--data/init/images/sm_loop_eintro_177.pngbin0 -> 19147 bytes
-rw-r--r--data/init/images/sm_loop_eintro_178.pngbin0 -> 19141 bytes
-rw-r--r--data/init/images/sm_loop_eintro_179.pngbin0 -> 19216 bytes
-rw-r--r--data/init/images/sm_loop_eintro_180.pngbin0 -> 19138 bytes
-rw-r--r--data/init/images/sm_loop_eintro_181.pngbin0 -> 19117 bytes
-rw-r--r--data/init/images/sm_loop_eintro_182.pngbin0 -> 19204 bytes
-rw-r--r--data/init/images/sm_loop_eintro_183.pngbin0 -> 19166 bytes
-rw-r--r--data/init/images/sm_loop_eintro_184.pngbin0 -> 19203 bytes
-rw-r--r--data/init/images/sm_loop_eintro_185.pngbin0 -> 19200 bytes
-rw-r--r--data/init/images/sm_loop_eintro_186.pngbin0 -> 19285 bytes
-rw-r--r--data/init/images/sm_loop_eintro_187.pngbin0 -> 19324 bytes
-rw-r--r--data/init/images/sm_loop_eintro_188.pngbin0 -> 19282 bytes
-rw-r--r--data/init/images/sm_loop_eintro_189.pngbin0 -> 19284 bytes
-rw-r--r--data/init/images/sm_loop_eintro_190.pngbin0 -> 19327 bytes
-rw-r--r--data/init/images/sm_loop_eintro_191.pngbin0 -> 19375 bytes
-rw-r--r--data/init/images/sm_loop_eintro_192.pngbin0 -> 19358 bytes
-rw-r--r--data/init/images/sm_loop_eintro_193.pngbin0 -> 19386 bytes
-rw-r--r--data/init/images/sm_loop_eintro_194.pngbin0 -> 19383 bytes
-rw-r--r--data/init/images/sm_loop_eintro_195.pngbin0 -> 19322 bytes
-rw-r--r--data/init/images/sm_loop_eintro_196.pngbin0 -> 19363 bytes
-rw-r--r--data/init/images/sm_loop_eintro_197.pngbin0 -> 19334 bytes
-rw-r--r--data/init/images/sm_loop_eintro_198.pngbin0 -> 19397 bytes
-rw-r--r--data/init/images/sm_loop_eintro_199.pngbin0 -> 19508 bytes
-rw-r--r--data/init/images/sm_loop_eintro_200.pngbin0 -> 19492 bytes
-rw-r--r--data/init/images/sm_loop_eintro_201.pngbin0 -> 19365 bytes
-rw-r--r--data/init/images/sm_loop_eintro_202.pngbin0 -> 19365 bytes
-rw-r--r--data/init/images/sm_loop_eintro_203.pngbin0 -> 19390 bytes
-rw-r--r--data/init/images/sm_loop_eintro_204.pngbin0 -> 19377 bytes
-rw-r--r--data/init/images/sm_loop_eintro_205.pngbin0 -> 19315 bytes
-rw-r--r--data/init/images/sm_loop_eintro_206.pngbin0 -> 19397 bytes
-rw-r--r--data/init/images/sm_loop_eintro_207.pngbin0 -> 19496 bytes
-rw-r--r--data/init/images/sm_loop_eintro_208.pngbin0 -> 19571 bytes
-rw-r--r--data/init/images/sm_loop_eintro_209.pngbin0 -> 19638 bytes
-rw-r--r--data/init/images/sm_loop_eintro_210.pngbin0 -> 19590 bytes
-rw-r--r--data/init/images/sm_loop_eintro_211.pngbin0 -> 19572 bytes
-rw-r--r--data/init/images/sm_loop_eintro_212.pngbin0 -> 19677 bytes
-rw-r--r--data/init/images/sm_loop_eintro_213.pngbin0 -> 19631 bytes
-rw-r--r--data/init/images/sm_loop_eintro_214.pngbin0 -> 19611 bytes
-rw-r--r--data/init/images/sm_loop_eintro_215.pngbin0 -> 19681 bytes
-rw-r--r--data/init/images/sm_loop_eintro_216.pngbin0 -> 19694 bytes
-rw-r--r--data/init/images/sm_loop_eintro_217.pngbin0 -> 19658 bytes
-rw-r--r--data/init/images/sm_loop_eintro_218.pngbin0 -> 19642 bytes
-rw-r--r--data/init/images/sm_loop_eintro_219.pngbin0 -> 19661 bytes
-rw-r--r--data/init/images/sm_loop_eintro_220.pngbin0 -> 19717 bytes
-rw-r--r--data/init/images/sm_loop_eintro_221.pngbin0 -> 19621 bytes
-rw-r--r--data/init/images/sm_loop_eintro_222.pngbin0 -> 19611 bytes
-rw-r--r--data/init/images/sm_loop_eintro_223.pngbin0 -> 19661 bytes
-rw-r--r--data/init/images/sm_loop_eintro_224.pngbin0 -> 19733 bytes
-rw-r--r--data/init/images/sm_loop_eintro_225.pngbin0 -> 19732 bytes
-rw-r--r--data/init/images/sm_loop_eintro_226.pngbin0 -> 19736 bytes
-rw-r--r--data/init/images/sm_loop_eintro_227.pngbin0 -> 19783 bytes
-rw-r--r--data/init/images/sm_loop_eintro_228.pngbin0 -> 19705 bytes
-rw-r--r--data/init/images/sm_loop_eintro_229.pngbin0 -> 19578 bytes
-rw-r--r--data/init/images/sm_loop_eintro_230.pngbin0 -> 19541 bytes
-rw-r--r--data/init/images/sm_loop_eintro_231.pngbin0 -> 19623 bytes
-rw-r--r--data/init/images/sm_loop_eintro_232.pngbin0 -> 19633 bytes
-rw-r--r--data/init/images/sm_loop_eintro_233.pngbin0 -> 19581 bytes
-rw-r--r--data/init/images/sm_loop_eintro_234.pngbin0 -> 19564 bytes
-rw-r--r--data/init/images/sm_loop_eintro_235.pngbin0 -> 19600 bytes
-rw-r--r--data/init/images/sm_loop_eintro_236.pngbin0 -> 19503 bytes
-rw-r--r--data/init/images/sm_loop_eintro_237.pngbin0 -> 19611 bytes
-rw-r--r--data/init/images/sm_loop_eintro_238.pngbin0 -> 19623 bytes
-rw-r--r--data/init/images/sm_loop_eintro_239.pngbin0 -> 19606 bytes
-rw-r--r--data/init/images/sm_loop_eintro_240.pngbin0 -> 19602 bytes
-rw-r--r--data/init/images/sm_reflection_overlay.pngbin0 -> 99652 bytes
-rw-r--r--data/init/images/sm_shadow.pngbin0 -> 12891 bytes
-rw-r--r--data/init/images/sm_start_eintro_001.pngbin0 -> 34131 bytes
-rw-r--r--data/init/images/sm_start_eintro_002.pngbin0 -> 33886 bytes
-rw-r--r--data/init/images/sm_start_eintro_003.pngbin0 -> 33820 bytes
-rw-r--r--data/init/images/sm_start_eintro_004.pngbin0 -> 33626 bytes
-rw-r--r--data/init/images/sm_start_eintro_005.pngbin0 -> 33626 bytes
-rw-r--r--data/init/images/sm_start_eintro_006.pngbin0 -> 33529 bytes
-rw-r--r--data/init/images/sm_start_eintro_007.pngbin0 -> 33349 bytes
-rw-r--r--data/init/images/sm_start_eintro_008.pngbin0 -> 33528 bytes
-rw-r--r--data/init/images/sm_start_eintro_009.pngbin0 -> 33397 bytes
-rw-r--r--data/init/images/sm_start_eintro_010.pngbin0 -> 33354 bytes
-rw-r--r--data/init/images/sm_start_eintro_011.pngbin0 -> 33359 bytes
-rw-r--r--data/init/images/sm_start_eintro_012.pngbin0 -> 33379 bytes
-rw-r--r--data/init/images/sm_start_eintro_013.pngbin0 -> 33465 bytes
-rw-r--r--data/init/images/sm_start_eintro_014.pngbin0 -> 33314 bytes
-rw-r--r--data/init/images/sm_start_eintro_015.pngbin0 -> 33305 bytes
-rw-r--r--data/init/images/sm_start_eintro_016.pngbin0 -> 33210 bytes
-rw-r--r--data/init/images/sm_start_eintro_017.pngbin0 -> 33179 bytes
-rw-r--r--data/init/images/sm_start_eintro_018.pngbin0 -> 33107 bytes
-rw-r--r--data/init/images/sm_start_eintro_019.pngbin0 -> 32982 bytes
-rw-r--r--data/init/images/sm_start_eintro_020.pngbin0 -> 32955 bytes
-rw-r--r--data/init/images/sm_start_eintro_021.pngbin0 -> 32871 bytes
-rw-r--r--data/init/images/sm_start_eintro_022.pngbin0 -> 32761 bytes
-rw-r--r--data/init/images/sm_start_eintro_023.pngbin0 -> 32671 bytes
-rw-r--r--data/init/images/sm_start_eintro_024.pngbin0 -> 32604 bytes
-rw-r--r--data/init/images/sm_start_eintro_025.pngbin0 -> 32207 bytes
-rw-r--r--data/init/images/sm_start_eintro_026.pngbin0 -> 32152 bytes
-rw-r--r--data/init/images/sm_start_eintro_027.pngbin0 -> 31949 bytes
-rw-r--r--data/init/images/sm_start_eintro_028.pngbin0 -> 31831 bytes
-rw-r--r--data/init/images/sm_start_eintro_029.pngbin0 -> 31644 bytes
-rw-r--r--data/init/images/sm_start_eintro_030.pngbin0 -> 31550 bytes
-rw-r--r--data/init/images/sm_start_eintro_031.pngbin0 -> 31524 bytes
-rw-r--r--data/init/images/sm_start_eintro_032.pngbin0 -> 31344 bytes
-rw-r--r--data/init/images/sm_start_eintro_033.pngbin0 -> 31211 bytes
-rw-r--r--data/init/images/sm_start_eintro_034.pngbin0 -> 31245 bytes
-rw-r--r--data/init/images/sm_start_eintro_035.pngbin0 -> 30945 bytes
-rw-r--r--data/init/images/sm_start_eintro_036.pngbin0 -> 30804 bytes
-rw-r--r--data/init/images/sm_start_eintro_037.pngbin0 -> 30780 bytes
-rw-r--r--data/init/images/sm_start_eintro_038.pngbin0 -> 30641 bytes
-rw-r--r--data/init/images/sm_start_eintro_039.pngbin0 -> 30582 bytes
-rw-r--r--data/init/images/sm_start_eintro_040.pngbin0 -> 30401 bytes
-rw-r--r--data/init/images/sm_start_eintro_041.pngbin0 -> 30199 bytes
-rw-r--r--data/init/images/sm_start_eintro_042.pngbin0 -> 30124 bytes
-rw-r--r--data/init/images/sm_start_eintro_043.pngbin0 -> 29834 bytes
-rw-r--r--data/init/images/sm_start_eintro_044.pngbin0 -> 29723 bytes
-rw-r--r--data/init/images/sm_start_eintro_045.pngbin0 -> 29530 bytes
-rw-r--r--data/init/images/sm_start_eintro_046.pngbin0 -> 29333 bytes
-rw-r--r--data/init/images/sm_start_eintro_047.pngbin0 -> 29095 bytes
-rw-r--r--data/init/images/sm_start_eintro_048.pngbin0 -> 28959 bytes
-rw-r--r--data/init/images/sm_start_eintro_049.pngbin0 -> 28646 bytes
-rw-r--r--data/init/images/sm_start_eintro_050.pngbin0 -> 28511 bytes
-rw-r--r--data/init/images/sm_start_eintro_051.pngbin0 -> 28589 bytes
-rw-r--r--data/init/images/sm_start_eintro_052.pngbin0 -> 28158 bytes
-rw-r--r--data/init/images/sm_start_eintro_053.pngbin0 -> 28032 bytes
-rw-r--r--data/init/images/sm_start_eintro_054.pngbin0 -> 27965 bytes
-rw-r--r--data/init/images/sm_start_eintro_055.pngbin0 -> 27802 bytes
-rw-r--r--data/init/images/sm_start_eintro_056.pngbin0 -> 27792 bytes
-rw-r--r--data/init/images/sm_start_eintro_057.pngbin0 -> 27443 bytes
-rw-r--r--data/init/images/sm_start_eintro_058.pngbin0 -> 27426 bytes
-rw-r--r--data/init/images/sm_start_eintro_059.pngbin0 -> 27109 bytes
-rw-r--r--data/init/images/sm_start_eintro_060.pngbin0 -> 26853 bytes
-rw-r--r--data/init/images/sm_start_eintro_061.pngbin0 -> 26681 bytes
-rw-r--r--data/init/images/sm_start_eintro_062.pngbin0 -> 26366 bytes
-rw-r--r--data/init/images/sm_start_eintro_063.pngbin0 -> 26088 bytes
-rw-r--r--data/init/images/sm_start_eintro_064.pngbin0 -> 26064 bytes
-rw-r--r--data/init/images/sm_start_eintro_065.pngbin0 -> 25842 bytes
-rw-r--r--data/init/images/sm_start_eintro_066.pngbin0 -> 25519 bytes
-rw-r--r--data/init/images/sm_start_eintro_067.pngbin0 -> 25406 bytes
-rw-r--r--data/init/images/sm_start_eintro_068.pngbin0 -> 25382 bytes
-rw-r--r--data/init/images/sm_start_eintro_069.pngbin0 -> 25060 bytes
-rw-r--r--data/init/images/sm_start_eintro_070.pngbin0 -> 24957 bytes
-rw-r--r--data/init/images/sm_start_eintro_071.pngbin0 -> 24628 bytes
-rw-r--r--data/init/images/sm_start_eintro_072.pngbin0 -> 24508 bytes
-rw-r--r--data/init/images/sm_start_eintro_073.pngbin0 -> 24360 bytes
-rw-r--r--data/init/images/sm_start_eintro_074.pngbin0 -> 24253 bytes
-rw-r--r--data/init/images/sm_start_eintro_075.pngbin0 -> 24081 bytes
-rw-r--r--data/init/images/sm_start_eintro_076.pngbin0 -> 23906 bytes
-rw-r--r--data/init/images/sm_start_eintro_077.pngbin0 -> 23815 bytes
-rw-r--r--data/init/images/sm_start_eintro_078.pngbin0 -> 23662 bytes
-rw-r--r--data/init/images/sm_start_eintro_079.pngbin0 -> 23538 bytes
-rw-r--r--data/init/images/sm_start_eintro_080.pngbin0 -> 23518 bytes
-rw-r--r--data/init/images/sm_start_eintro_081.pngbin0 -> 23328 bytes
-rw-r--r--data/init/images/sm_start_eintro_082.pngbin0 -> 23149 bytes
-rw-r--r--data/init/images/sm_start_eintro_083.pngbin0 -> 23059 bytes
-rw-r--r--data/init/images/sm_start_eintro_084.pngbin0 -> 22891 bytes
-rw-r--r--data/init/images/sm_start_eintro_085.pngbin0 -> 22606 bytes
-rw-r--r--data/init/images/sm_start_eintro_086.pngbin0 -> 22475 bytes
-rw-r--r--data/init/images/sm_start_eintro_087.pngbin0 -> 22381 bytes
-rw-r--r--data/init/images/sm_start_eintro_088.pngbin0 -> 22257 bytes
-rw-r--r--data/init/images/sm_start_eintro_089.pngbin0 -> 22165 bytes
-rw-r--r--data/init/images/sm_start_eintro_090.pngbin0 -> 21993 bytes
-rw-r--r--data/init/images/sm_start_eintro_091.pngbin0 -> 21755 bytes
-rw-r--r--data/init/images/sm_start_eintro_092.pngbin0 -> 21686 bytes
-rw-r--r--data/init/images/sm_start_eintro_093.pngbin0 -> 21581 bytes
-rw-r--r--data/init/images/sm_start_eintro_094.pngbin0 -> 21499 bytes
-rw-r--r--data/init/images/sm_start_eintro_095.pngbin0 -> 21440 bytes
-rw-r--r--data/init/images/sm_start_eintro_096.pngbin0 -> 21410 bytes
-rw-r--r--data/init/images/sm_start_eintro_097.pngbin0 -> 21354 bytes
-rw-r--r--data/init/images/sm_start_eintro_098.pngbin0 -> 21224 bytes
-rw-r--r--data/init/images/sm_start_eintro_099.pngbin0 -> 21222 bytes
-rw-r--r--data/init/images/sm_start_eintro_100.pngbin0 -> 21061 bytes
-rw-r--r--data/init/images/sm_start_eintro_101.pngbin0 -> 20981 bytes
-rw-r--r--data/init/images/sm_start_eintro_102.pngbin0 -> 21055 bytes
-rw-r--r--data/init/images/sm_start_eintro_103.pngbin0 -> 21028 bytes
-rw-r--r--data/init/images/sm_start_eintro_104.pngbin0 -> 20990 bytes
-rw-r--r--data/init/images/sm_start_eintro_105.pngbin0 -> 20870 bytes
-rw-r--r--data/init/images/sm_start_eintro_106.pngbin0 -> 20798 bytes
-rw-r--r--data/init/images/sm_start_eintro_107.pngbin0 -> 20643 bytes
-rw-r--r--data/init/images/sm_start_eintro_108.pngbin0 -> 20647 bytes
-rw-r--r--data/init/images/sm_start_eintro_109.pngbin0 -> 20656 bytes
-rw-r--r--data/init/images/sm_start_eintro_110.pngbin0 -> 20655 bytes
-rw-r--r--data/init/images/sm_start_eintro_111.pngbin0 -> 20551 bytes
-rw-r--r--data/init/images/sm_start_eintro_112.pngbin0 -> 20471 bytes
-rw-r--r--data/init/images/sm_start_eintro_113.pngbin0 -> 20325 bytes
-rw-r--r--data/init/images/sm_start_eintro_114.pngbin0 -> 20344 bytes
-rw-r--r--data/init/images/sm_start_eintro_115.pngbin0 -> 20365 bytes
-rw-r--r--data/init/images/sm_start_eintro_116.pngbin0 -> 20246 bytes
-rw-r--r--data/init/images/sm_start_eintro_117.pngbin0 -> 20253 bytes
-rw-r--r--data/init/images/sm_start_eintro_118.pngbin0 -> 20258 bytes
-rw-r--r--data/init/images/sm_start_eintro_119.pngbin0 -> 20254 bytes
-rw-r--r--data/init/images/sm_start_eintro_120.pngbin0 -> 20221 bytes
-rw-r--r--data/init/images/start_eintro_001.pngbin0 -> 115016 bytes
-rw-r--r--data/init/images/start_eintro_002.pngbin0 -> 113820 bytes
-rw-r--r--data/init/images/start_eintro_003.pngbin0 -> 113216 bytes
-rw-r--r--data/init/images/start_eintro_004.pngbin0 -> 112314 bytes
-rw-r--r--data/init/images/start_eintro_005.pngbin0 -> 112180 bytes
-rw-r--r--data/init/images/start_eintro_006.pngbin0 -> 111803 bytes
-rw-r--r--data/init/images/start_eintro_007.pngbin0 -> 111116 bytes
-rw-r--r--data/init/images/start_eintro_008.pngbin0 -> 110563 bytes
-rw-r--r--data/init/images/start_eintro_009.pngbin0 -> 110113 bytes
-rw-r--r--data/init/images/start_eintro_010.pngbin0 -> 109901 bytes
-rw-r--r--data/init/images/start_eintro_011.pngbin0 -> 109950 bytes
-rw-r--r--data/init/images/start_eintro_012.pngbin0 -> 109851 bytes
-rw-r--r--data/init/images/start_eintro_013.pngbin0 -> 109445 bytes
-rw-r--r--data/init/images/start_eintro_014.pngbin0 -> 109166 bytes
-rw-r--r--data/init/images/start_eintro_015.pngbin0 -> 109081 bytes
-rw-r--r--data/init/images/start_eintro_016.pngbin0 -> 108348 bytes
-rw-r--r--data/init/images/start_eintro_017.pngbin0 -> 108372 bytes
-rw-r--r--data/init/images/start_eintro_018.pngbin0 -> 107892 bytes
-rw-r--r--data/init/images/start_eintro_019.pngbin0 -> 107368 bytes
-rw-r--r--data/init/images/start_eintro_020.pngbin0 -> 107008 bytes
-rw-r--r--data/init/images/start_eintro_021.pngbin0 -> 106633 bytes
-rw-r--r--data/init/images/start_eintro_022.pngbin0 -> 106278 bytes
-rw-r--r--data/init/images/start_eintro_023.pngbin0 -> 105700 bytes
-rw-r--r--data/init/images/start_eintro_024.pngbin0 -> 105063 bytes
-rw-r--r--data/init/images/start_eintro_025.pngbin0 -> 103959 bytes
-rw-r--r--data/init/images/start_eintro_026.pngbin0 -> 103501 bytes
-rw-r--r--data/init/images/start_eintro_027.pngbin0 -> 102839 bytes
-rw-r--r--data/init/images/start_eintro_028.pngbin0 -> 102190 bytes
-rw-r--r--data/init/images/start_eintro_029.pngbin0 -> 101501 bytes
-rw-r--r--data/init/images/start_eintro_030.pngbin0 -> 100794 bytes
-rw-r--r--data/init/images/start_eintro_031.pngbin0 -> 101117 bytes
-rw-r--r--data/init/images/start_eintro_032.pngbin0 -> 100547 bytes
-rw-r--r--data/init/images/start_eintro_033.pngbin0 -> 99782 bytes
-rw-r--r--data/init/images/start_eintro_034.pngbin0 -> 99465 bytes
-rw-r--r--data/init/images/start_eintro_035.pngbin0 -> 98656 bytes
-rw-r--r--data/init/images/start_eintro_036.pngbin0 -> 97961 bytes
-rw-r--r--data/init/images/start_eintro_037.pngbin0 -> 97535 bytes
-rw-r--r--data/init/images/start_eintro_038.pngbin0 -> 96956 bytes
-rw-r--r--data/init/images/start_eintro_039.pngbin0 -> 96174 bytes
-rw-r--r--data/init/images/start_eintro_040.pngbin0 -> 95340 bytes
-rw-r--r--data/init/images/start_eintro_041.pngbin0 -> 94795 bytes
-rw-r--r--data/init/images/start_eintro_042.pngbin0 -> 93765 bytes
-rw-r--r--data/init/images/start_eintro_043.pngbin0 -> 92772 bytes
-rw-r--r--data/init/images/start_eintro_044.pngbin0 -> 92221 bytes
-rw-r--r--data/init/images/start_eintro_045.pngbin0 -> 91582 bytes
-rw-r--r--data/init/images/start_eintro_046.pngbin0 -> 90677 bytes
-rw-r--r--data/init/images/start_eintro_047.pngbin0 -> 89619 bytes
-rw-r--r--data/init/images/start_eintro_048.pngbin0 -> 89011 bytes
-rw-r--r--data/init/images/start_eintro_049.pngbin0 -> 87870 bytes
-rw-r--r--data/init/images/start_eintro_050.pngbin0 -> 87050 bytes
-rw-r--r--data/init/images/start_eintro_051.pngbin0 -> 86143 bytes
-rw-r--r--data/init/images/start_eintro_052.pngbin0 -> 85421 bytes
-rw-r--r--data/init/images/start_eintro_053.pngbin0 -> 84670 bytes
-rw-r--r--data/init/images/start_eintro_054.pngbin0 -> 83835 bytes
-rw-r--r--data/init/images/start_eintro_055.pngbin0 -> 83264 bytes
-rw-r--r--data/init/images/start_eintro_056.pngbin0 -> 82631 bytes
-rw-r--r--data/init/images/start_eintro_057.pngbin0 -> 81805 bytes
-rw-r--r--data/init/images/start_eintro_058.pngbin0 -> 81234 bytes
-rw-r--r--data/init/images/start_eintro_059.pngbin0 -> 80446 bytes
-rw-r--r--data/init/images/start_eintro_060.pngbin0 -> 79507 bytes
-rw-r--r--data/init/images/start_eintro_061.pngbin0 -> 78593 bytes
-rw-r--r--data/init/images/start_eintro_062.pngbin0 -> 77624 bytes
-rw-r--r--data/init/images/start_eintro_063.pngbin0 -> 76962 bytes
-rw-r--r--data/init/images/start_eintro_064.pngbin0 -> 76249 bytes
-rw-r--r--data/init/images/start_eintro_065.pngbin0 -> 75390 bytes
-rw-r--r--data/init/images/start_eintro_066.pngbin0 -> 74738 bytes
-rw-r--r--data/init/images/start_eintro_067.pngbin0 -> 73701 bytes
-rw-r--r--data/init/images/start_eintro_068.pngbin0 -> 73215 bytes
-rw-r--r--data/init/images/start_eintro_069.pngbin0 -> 72571 bytes
-rw-r--r--data/init/images/start_eintro_070.pngbin0 -> 71951 bytes
-rw-r--r--data/init/images/start_eintro_071.pngbin0 -> 71026 bytes
-rw-r--r--data/init/images/start_eintro_072.pngbin0 -> 70589 bytes
-rw-r--r--data/init/images/start_eintro_073.pngbin0 -> 69823 bytes
-rw-r--r--data/init/images/start_eintro_074.pngbin0 -> 69558 bytes
-rw-r--r--data/init/images/start_eintro_075.pngbin0 -> 69318 bytes
-rw-r--r--data/init/images/start_eintro_076.pngbin0 -> 68935 bytes
-rw-r--r--data/init/images/start_eintro_077.pngbin0 -> 68481 bytes
-rw-r--r--data/init/images/start_eintro_078.pngbin0 -> 68195 bytes
-rw-r--r--data/init/images/start_eintro_079.pngbin0 -> 67603 bytes
-rw-r--r--data/init/images/start_eintro_080.pngbin0 -> 67423 bytes
-rw-r--r--data/init/images/start_eintro_081.pngbin0 -> 67110 bytes
-rw-r--r--data/init/images/start_eintro_082.pngbin0 -> 66528 bytes
-rw-r--r--data/init/images/start_eintro_083.pngbin0 -> 66208 bytes
-rw-r--r--data/init/images/start_eintro_084.pngbin0 -> 65770 bytes
-rw-r--r--data/init/images/start_eintro_085.pngbin0 -> 65082 bytes
-rw-r--r--data/init/images/start_eintro_086.pngbin0 -> 64865 bytes
-rw-r--r--data/init/images/start_eintro_087.pngbin0 -> 64202 bytes
-rw-r--r--data/init/images/start_eintro_088.pngbin0 -> 63944 bytes
-rw-r--r--data/init/images/start_eintro_089.pngbin0 -> 63232 bytes
-rw-r--r--data/init/images/start_eintro_090.pngbin0 -> 62798 bytes
-rw-r--r--data/init/images/start_eintro_091.pngbin0 -> 62488 bytes
-rw-r--r--data/init/images/start_eintro_092.pngbin0 -> 61771 bytes
-rw-r--r--data/init/images/start_eintro_093.pngbin0 -> 61428 bytes
-rw-r--r--data/init/images/start_eintro_094.pngbin0 -> 61423 bytes
-rw-r--r--data/init/images/start_eintro_095.pngbin0 -> 61192 bytes
-rw-r--r--data/init/images/start_eintro_096.pngbin0 -> 60764 bytes
-rw-r--r--data/init/images/start_eintro_097.pngbin0 -> 60522 bytes
-rw-r--r--data/init/images/start_eintro_098.pngbin0 -> 59929 bytes
-rw-r--r--data/init/images/start_eintro_099.pngbin0 -> 60018 bytes
-rw-r--r--data/init/images/start_eintro_100.pngbin0 -> 59927 bytes
-rw-r--r--data/init/images/start_eintro_101.pngbin0 -> 59760 bytes
-rw-r--r--data/init/images/start_eintro_102.pngbin0 -> 59516 bytes
-rw-r--r--data/init/images/start_eintro_103.pngbin0 -> 59483 bytes
-rw-r--r--data/init/images/start_eintro_104.pngbin0 -> 59285 bytes
-rw-r--r--data/init/images/start_eintro_105.pngbin0 -> 58828 bytes
-rw-r--r--data/init/images/start_eintro_106.pngbin0 -> 58628 bytes
-rw-r--r--data/init/images/start_eintro_107.pngbin0 -> 58449 bytes
-rw-r--r--data/init/images/start_eintro_108.pngbin0 -> 57937 bytes
-rw-r--r--data/init/images/start_eintro_109.pngbin0 -> 57888 bytes
-rw-r--r--data/init/images/start_eintro_110.pngbin0 -> 57727 bytes
-rw-r--r--data/init/images/start_eintro_111.pngbin0 -> 57512 bytes
-rw-r--r--data/init/images/start_eintro_112.pngbin0 -> 57217 bytes
-rw-r--r--data/init/images/start_eintro_113.pngbin0 -> 56861 bytes
-rw-r--r--data/init/images/start_eintro_114.pngbin0 -> 56665 bytes
-rw-r--r--data/init/images/start_eintro_115.pngbin0 -> 56641 bytes
-rw-r--r--data/init/images/start_eintro_116.pngbin0 -> 56218 bytes
-rw-r--r--data/init/images/start_eintro_117.pngbin0 -> 56364 bytes
-rw-r--r--data/init/images/start_eintro_118.pngbin0 -> 56377 bytes
-rw-r--r--data/init/images/start_eintro_119.pngbin0 -> 56237 bytes
-rw-r--r--data/init/images/start_eintro_120.pngbin0 -> 56167 bytes
-rw-r--r--data/init/init.edc1171
-rw-r--r--data/other/Makefile.am5
-rw-r--r--data/other/favorite_apps.tar.gzbin0 -> 29122 bytes
-rw-r--r--data/themes/Makefile.am24
-rw-r--r--data/themes/default.edc4232
-rw-r--r--data/themes/images/Makefile.am49
-rw-r--r--data/themes/images/e17_border1.pngbin0 -> 436 bytes
-rw-r--r--data/themes/images/e17_border2.pngbin0 -> 258 bytes
-rw-r--r--data/themes/images/e17_border3.pngbin0 -> 302 bytes
-rw-r--r--data/themes/images/e17_border4.pngbin0 -> 188 bytes
-rw-r--r--data/themes/images/e17_border5.pngbin0 -> 204 bytes
-rw-r--r--data/themes/images/e17_border6.pngbin0 -> 187 bytes
-rw-r--r--data/themes/images/e17_border7.pngbin0 -> 213 bytes
-rw-r--r--data/themes/images/e17_brushed.pngbin0 -> 37125 bytes
-rw-r--r--data/themes/images/e17_button.pngbin0 -> 24253 bytes
-rw-r--r--data/themes/images/e17_button2.pngbin0 -> 24064 bytes
-rw-r--r--data/themes/images/e17_button_detail_close.pngbin0 -> 229 bytes
-rw-r--r--data/themes/images/e17_button_detail_maximize.pngbin0 -> 230 bytes
-rw-r--r--data/themes/images/e17_button_detail_minimize.pngbin0 -> 220 bytes
-rw-r--r--data/themes/images/e17_ibar_arrow_d.pngbin0 -> 1186 bytes
-rw-r--r--data/themes/images/e17_ibar_arrow_l.pngbin0 -> 1158 bytes
-rw-r--r--data/themes/images/e17_ibar_arrow_r.pngbin0 -> 1163 bytes
-rw-r--r--data/themes/images/e17_ibar_arrow_u.pngbin0 -> 1151 bytes
-rw-r--r--data/themes/images/e17_ibar_bg_h.pngbin0 -> 265 bytes
-rw-r--r--data/themes/images/e17_ibar_bg_v.pngbin0 -> 284 bytes
-rw-r--r--data/themes/images/e17_ibar_handle_h.pngbin0 -> 1413 bytes
-rw-r--r--data/themes/images/e17_ibar_handle_h2.pngbin0 -> 1290 bytes
-rw-r--r--data/themes/images/e17_ibar_handle_thumb_h.pngbin0 -> 480 bytes
-rw-r--r--data/themes/images/e17_ibar_handle_thumb_v.pngbin0 -> 464 bytes
-rw-r--r--data/themes/images/e17_ibar_handle_v.pngbin0 -> 1320 bytes
-rw-r--r--data/themes/images/e17_ibar_handle_v2.pngbin0 -> 1195 bytes
-rw-r--r--data/themes/images/e17_ibar_lamp_d.pngbin0 -> 3197 bytes
-rw-r--r--data/themes/images/e17_ibar_lamp_l.pngbin0 -> 3180 bytes
-rw-r--r--data/themes/images/e17_ibar_lamp_r.pngbin0 -> 3172 bytes
-rw-r--r--data/themes/images/e17_ibar_lamp_u.pngbin0 -> 3189 bytes
-rw-r--r--data/themes/images/e17_ibar_over_h.pngbin0 -> 1255 bytes
-rw-r--r--data/themes/images/e17_ibar_over_v.pngbin0 -> 1273 bytes
-rw-r--r--data/themes/images/e17_menu_arrow.pngbin0 -> 214 bytes
-rw-r--r--data/themes/images/e17_menu_bg.pngbin0 -> 285 bytes
-rw-r--r--data/themes/images/e17_menu_check1.pngbin0 -> 191 bytes
-rw-r--r--data/themes/images/e17_menu_check2.pngbin0 -> 246 bytes
-rw-r--r--data/themes/images/e17_menu_radio1.pngbin0 -> 329 bytes
-rw-r--r--data/themes/images/e17_menu_radio2.pngbin0 -> 386 bytes
-rw-r--r--data/themes/images/e17_menu_separator.pngbin0 -> 185 bytes
-rw-r--r--data/themes/images/e17_mini_button.pngbin0 -> 823 bytes
-rw-r--r--data/themes/images/e17_mini_button_shadow1.pngbin0 -> 508 bytes
-rw-r--r--data/themes/images/e17_mini_button_shadow2.pngbin0 -> 561 bytes
-rw-r--r--data/themes/images/e17_reflection_shadow_overlay.pngbin0 -> 306146 bytes
-rw-r--r--data/themes/images/e17_sm_reflection_shadow_overlay.pngbin0 -> 109262 bytes
-rw-r--r--data/themes/images/e17_titlebar.pngbin0 -> 2958 bytes
-rw-r--r--data/themes/images/e17_titlebar_outline.pngbin0 -> 500 bytes
-rw-r--r--data/themes/images/e17_titlebar_shadow1.pngbin0 -> 608 bytes
-rw-r--r--data/themes/images/e17_titlebar_shadow2.pngbin0 -> 692 bytes
-rw-r--r--doc/Makefile.am7
-rw-r--r--doc/documentation.html451
-rw-r--r--doc/enlightenment.pngbin0 -> 74944 bytes
-rw-r--r--enlightenment-config.in59
-rw-r--r--enlightenment.oe28
-rw-r--r--enlightenment.spec67
-rw-r--r--m4/ac_expand_dir.m414
-rw-r--r--m4/ac_path_generic.m4136
-rw-r--r--src/Makefile.am2
-rw-r--r--src/bin/Makefile.am63
-rw-r--r--src/bin/e.h99
-rw-r--r--src/bin/e_apps.c678
-rw-r--r--src/bin/e_apps.h57
-rw-r--r--src/bin/e_border.c1495
-rw-r--r--src/bin/e_border.h149
-rw-r--r--src/bin/e_box.c802
-rw-r--r--src/bin/e_box.h25
-rw-r--r--src/bin/e_canvas.c75
-rw-r--r--src/bin/e_canvas.h10
-rw-r--r--src/bin/e_config.c248
-rw-r--r--src/bin/e_config.h18
-rw-r--r--src/bin/e_container.c536
-rw-r--r--src/bin/e_container.h81
-rw-r--r--src/bin/e_desk.c1
-rw-r--r--src/bin/e_desk.h4
-rw-r--r--src/bin/e_error.c255
-rw-r--r--src/bin/e_error.h27
-rw-r--r--src/bin/e_file.c204
-rw-r--r--src/bin/e_file.h22
-rw-r--r--src/bin/e_focus.c94
-rw-r--r--src/bin/e_focus.h8
-rw-r--r--src/bin/e_icon.c324
-rw-r--r--src/bin/e_icon.h13
-rw-r--r--src/bin/e_init.c117
-rw-r--r--src/bin/e_init.h13
-rw-r--r--src/bin/e_int_menus.c176
-rw-r--r--src/bin/e_int_menus.h7
-rw-r--r--src/bin/e_ipc.c78
-rw-r--r--src/bin/e_ipc.h7
-rw-r--r--src/bin/e_main.c643
-rw-r--r--src/bin/e_manager.c191
-rw-r--r--src/bin/e_manager.h31
-rw-r--r--src/bin/e_menu.c2065
-rw-r--r--src/bin/e_menu.h140
-rw-r--r--src/bin/e_module.c358
-rw-r--r--src/bin/e_module.h61
-rw-r--r--src/bin/e_object.c225
-rw-r--r--src/bin/e_object.h71
-rw-r--r--src/bin/e_path.c232
-rw-r--r--src/bin/e_path.h22
-rw-r--r--src/bin/e_place.c397
-rw-r--r--src/bin/e_place.h6
-rw-r--r--src/bin/e_pointer.c45
-rw-r--r--src/bin/e_pointer.h7
-rw-r--r--src/bin/e_resist.c157
-rw-r--r--src/bin/e_resist.h6
-rw-r--r--src/bin/e_user.c12
-rw-r--r--src/bin/e_user.h6
-rw-r--r--src/bin/e_utils.c69
-rw-r--r--src/bin/e_utils.h8
-rw-r--r--src/lib/Makefile.am3
-rw-r--r--src/modules/Makefile.am5
-rw-r--r--src/modules/dropshadow/Makefile.am38
-rw-r--r--src/modules/dropshadow/e_mod_main.c1358
-rw-r--r--src/modules/dropshadow/e_mod_main.h38
-rw-r--r--src/modules/dropshadow/menu_icon_close.pngbin0 -> 671 bytes
-rw-r--r--src/modules/dropshadow/menu_icon_dark.pngbin0 -> 578 bytes
-rw-r--r--src/modules/dropshadow/menu_icon_far.pngbin0 -> 713 bytes
-rw-r--r--src/modules/dropshadow/menu_icon_fuzzy.pngbin0 -> 624 bytes
-rw-r--r--src/modules/dropshadow/menu_icon_light.pngbin0 -> 518 bytes
-rw-r--r--src/modules/dropshadow/menu_icon_medium.pngbin0 -> 604 bytes
-rw-r--r--src/modules/dropshadow/menu_icon_sharp.pngbin0 -> 528 bytes
-rw-r--r--src/modules/dropshadow/menu_icon_underneath.pngbin0 -> 539 bytes
-rw-r--r--src/modules/dropshadow/menu_icon_very_dark.pngbin0 -> 604 bytes
-rw-r--r--src/modules/dropshadow/menu_icon_very_far.pngbin0 -> 728 bytes
-rw-r--r--src/modules/dropshadow/menu_icon_very_fuzzy.pngbin0 -> 640 bytes
-rw-r--r--src/modules/dropshadow/menu_icon_very_light.pngbin0 -> 456 bytes
-rw-r--r--src/modules/dropshadow/menu_icon_very_sharp.pngbin0 -> 281 bytes
-rw-r--r--src/modules/dropshadow/module_icon.pngbin0 -> 1178 bytes
-rw-r--r--src/modules/ibar/Makefile.am26
-rw-r--r--src/modules/ibar/e_mod_main.c1588
-rw-r--r--src/modules/ibar/e_mod_main.h73
-rw-r--r--src/modules/ibar/module_icon.pngbin0 -> 688 bytes
-rw-r--r--src/modules/test/Makefile.am25
-rw-r--r--src/modules/test/e_mod_main.c71
-rw-r--r--src/modules/test/e_mod_main.h4
656 files changed, 20812 insertions, 0 deletions
diff --git a/AUTHORS b/AUTHORS
new file mode 100644
index 000000000..7bf31c123
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1,2 @@
+The Rasterman (Carsten Haitzler) <raster@rasterman.com>
+
diff --git a/COPYING b/COPYING
new file mode 100644
index 000000000..474fcc5fa
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,28 @@
+Copyright (C) 2000 Carsten Haitzler and various contributors (see AUTHORS)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to
+deal in the Software without restriction, including without limitation the
+rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+sell copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies of the Software and its Copyright notices. In addition publicly
+documented acknowledgment must be given that this software has been used if no
+source code of this software is made available publicly. This includes
+acknowledgments in either Copyright notices, Manuals, Publicity and Marketing
+documents or any documentation provided with any product containing this
+software. This License does not apply to any software that links to the
+libraries provided by this software (statically or dynamically), but only to
+the software provided.
+
+Please see the COPYING.PLAIN for a plain-english explanation of this notice
+and it's intent.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/COPYING-PLAIN b/COPYING-PLAIN
new file mode 100644
index 000000000..376875e86
--- /dev/null
+++ b/COPYING-PLAIN
@@ -0,0 +1,33 @@
+Plain English Copyright Notice
+
+This file is not intended to be the actual License. The reason this file
+exists is that we here are programmers and engineers. We aren't lawyers. We
+provide licenses that we THINK say the right things, but we have our own
+intentions at heart. This is a plain-english explanation of what those
+intentions are, and if you follow them you will be within the "spirit" of
+the license.
+
+The intent is for us to enjoy writing software that is useful to us (the
+AUTHORS) and allow others to use it freely and also benefit from the work we
+put into making it. We don't want to restrict others using it. They should
+not *HAVE* to make the source code of the applications they write that
+simply link to these libraries (be that statically or dynamically), or for
+them to be limited as to what license they choose to use (be it open, closed
+or anything else). But we would like to know you are using these libraries.
+We simply would like to know that it has been useful to someone. This is why
+we ask for acknowledgement of some sort.
+
+You can do what you want with the source of this software - it doesn't
+matter. We still have it here for ourselves and it is open and free to use
+and download and play with. It can't be taken away. We don't really mind what
+you do with the source to your software. We would simply like to know that
+you are using it - especially if it makes it to a commerical product. If you
+simply e-mail all the AUTHORS (see COPYING and AUTHORS files) telling us, and
+then make sure you include a paragraph or page in the manual for the product
+with the copyright notice and state that you used this software, we will be
+very happy. If you want to contribute back modifications and fixes you may have
+made we will welcome those too with open arms (generally). If you want help
+with changes needed, ports needed or features to be added, arrangements can
+be easily made with some dialogue.
+
+Carsten Haitzler <raster@rasterman.com>
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/ChangeLog
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 000000000..e55f642b7
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,14 @@
+COMPILING and INSTALLING:
+
+If you got a official release tar archive do:
+ ./configure
+
+( otherwise if you got this from enlightenment cvs do: ./autogen.sh )
+
+Then to compile:
+ make
+
+To install (run this as root, or the user who handles installs):
+ make install
+
+NOTE: You MUST make install Enlightenment for it to run properly.
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 000000000..dbb7d3fac
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,10 @@
+SUBDIRS = src data doc
+
+MAINTAINERCLEANFILES = Makefile.in aclocal.m4 config.guess \
+ config.h.in config.sub configure install-sh \
+ ltconfig ltmain.sh missing mkinstalldirs \
+ stamp-h.in acconfig.h
+
+bin_SCRIPTS = enlightenment-config
+
+EXTRA_DIST = README AUTHORS COPYING COPYING-PLAIN enlightenment.spec
diff --git a/NEWS b/NEWS
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/NEWS
diff --git a/README b/README
new file mode 100644
index 000000000..7ec191771
--- /dev/null
+++ b/README
@@ -0,0 +1 @@
+Enlightenment 0.17.0 - IN DEVELOPMENT... not a RELEASE.
diff --git a/autogen.sh b/autogen.sh
new file mode 100755
index 000000000..88ee7f3a0
--- /dev/null
+++ b/autogen.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+rm -rf autom4te.cache
+rm -f aclocal.m4
+
+echo "Running aclocal..."; aclocal $ACLOCAL_FLAGS -I m4 \
+&& echo "Running autoheader..."; autoheader \
+&& echo "Running autoconf..."; autoconf \
+&& echo "Running libtoolize..."; libtoolize --automake \
+&& echo "Running automake..."; automake --add-missing --copy --gnu
+
+### If you want this, uncomment it.
+./configure "$@"
diff --git a/configure.in b/configure.in
new file mode 100644
index 000000000..87beb067c
--- /dev/null
+++ b/configure.in
@@ -0,0 +1,196 @@
+dnl Process this file with autoconf to produce a configure script.
+
+# get rid of that stupid cache mechanism
+rm -f config.cache
+
+AC_INIT(configure.in)
+AM_INIT_AUTOMAKE(enlightenment, 0.17.0_pre10)
+AM_CONFIG_HEADER(config.h)
+
+AC_ISC_POSIX
+AC_PROG_CC
+AM_PROG_CC_STDC
+AC_HEADER_STDC
+AC_C_CONST
+AM_ENABLE_SHARED
+AM_PROG_LIBTOOL
+
+if test "x${exec_prefix}" = "xNONE"; then
+ if test "x${prefix}" = "xNONE"; then
+ bindir="${ac_default_prefix}/bin";
+ else
+ bindir="${prefix}/bin";
+ fi
+else
+ if test "x${prefix}" = "xNONE"; then
+ bindir="${ac_default_prefix}/bin";
+ else
+ bindir="${prefix}/bin";
+ fi
+fi
+
+if test "x${exec_prefix}" = "xNONE"; then
+ if test "x${prefix}" = "xNONE"; then
+ libdir="${ac_default_prefix}/lib";
+ else
+ libdir="${prefix}/lib";
+ fi
+else
+ if test "x${prefix}" = "xNONE"; then
+ libdir="${ac_default_prefix}/lib";
+ else
+ libdir="${prefix}/lib";
+ fi
+fi
+
+dnl Set PACKAGE_BIN_DIR in config.h.
+if test "x${bindir}" = 'xNONE'; then
+ if test "x${prefix}" = "xNONE"; then
+ AC_DEFINE_UNQUOTED(PACKAGE_BIN_DIR, "${ac_default_prefix}/bin", "Package installed binaries destination")
+ else
+ AC_DEFINE_UNQUOTED(PACKAGE_BIN_DIR, "${prefix}/bin", "Package installed binaries destination")
+ fi
+else
+ AC_DEFINE_UNQUOTED(PACKAGE_BIN_DIR, "${bindir}", "Package installed binaries destination")
+fi
+
+dnl Set PACKAGE_LIB_DIR in config.h.
+if test "x${libdir}" = 'xNONE'; then
+ if test "x${prefix}" = "xNONE"; then
+ AC_DEFINE_UNQUOTED(PACKAGE_LIB_DIR, "${ac_default_prefix}/lib", "Package installed libraries destination")
+ else
+ AC_DEFINE_UNQUOTED(PACKAGE_LIB_DIR, "${prefix}/lib", "Package installed libraries destination")
+ fi
+else
+ AC_DEFINE_UNQUOTED(PACKAGE_LIB_DIR, "${libdir}", "Package installed libraries destination")
+fi
+
+dnl Set PACKAGE_DATA_DIR in config.h.
+if test "x${datadir}" = 'x${prefix}/share'; then
+ if test "x${prefix}" = "xNONE"; then
+ AC_DEFINE_UNQUOTED(PACKAGE_DATA_DIR, "${ac_default_prefix}/share/${PACKAGE}", "Package installed data destination")
+ else
+ AC_DEFINE_UNQUOTED(PACKAGE_DATA_DIR, "${prefix}/share/${PACKAGE}", "Package installed data destination")
+ fi
+else
+ AC_DEFINE_UNQUOTED(PACKAGE_DATA_DIR, "${datadir}/${PACKAGE}", "Package installed data destination")
+fi
+
+AC_CHECK_LIB(dl, dlopen, dlopen_libs=-ldl)
+AC_SUBST(dlopen_libs)
+
+AC_ARG_WITH(evas-config,
+[ --with-evas-config=EVAS_CONFIG use evas-config specified ],
+[
+ EVAS_CONFIG=$withval;
+ echo "using "$EVAS_CONFIG" for evas-config";
+],[
+ PROG="evas-config";
+ AC_PATH_PROG(EVAS_CONFIG, $PROG, "", $PATH)
+])
+evas_cflags=`$EVAS_CONFIG --cflags`
+evas_libs=`$EVAS_CONFIG --libs`
+
+AC_ARG_WITH(ecore-config,
+[ --with-ecore-config=ECORE_CONFIG use ecore-config specified ],
+[
+ ECORE_CONFIG=$withval;
+ echo "using "$ECORE_CONFIG" for ecore-config";
+],[
+ PROG="ecore-config";
+ AC_PATH_PROG(ECORE_CONFIG, $PROG, "", $PATH)
+])
+ecore_cflags=`$ECORE_CONFIG --cflags`
+ecore_libs=`$ECORE_CONFIG --libs`
+
+AC_ARG_WITH(edje-config,
+[ --with-edje-config=EDJE_CONFIG use edje-config specified ],
+[
+ EDJE_CONFIG=$withval;
+ echo "using "$EDJE_CONFIG" for edje-config";
+],[
+ PROG="edje-config";
+ AC_PATH_PROG(EDJE_CONFIG, $PROG, "", $PATH)
+])
+edje_cflags=`$EDJE_CONFIG --cflags`
+edje_libs=`$EDJE_CONFIG --libs`
+
+AC_ARG_WITH(eet-config,
+[ --with-eet-config=EET_CONFIG use eet-config specified ],
+[
+ EET_CONFIG=$withval;
+ echo "using "$EET_CONFIG" for eet-config";
+],[
+ PROG="eet-config";
+ AC_PATH_PROG(EET_CONFIG, $PROG, "", $PATH)
+])
+eet_cflags=`$EET_CONFIG --cflags`
+eet_libs=`$EET_CONFIG --libs`
+
+AC_ARG_WITH(embryo-config,
+[ --with-embryo-config=EMBRYO_CONFIG use embryo-config specified ],
+[
+ EMBRYO_CONFIG=$withval;
+ echo "using "$EMBRYO_CONFIG" for embryo-config";
+],[
+ PROG="embryo-config";
+ AC_PATH_PROG(EMBRYO_CONFIG, $PROG, "", $PATH)
+])
+embryo_cflags=`$EMBRYO_CONFIG --cflags`
+embryo_libs=`$EMBRYO_CONFIG --libs`
+
+e_libs=$evas_libs" "$ecore_libs" "$edje_libs" "$eet_libs" "$embryo_libs" "
+e_cflags=$evas_cflags" "$ecore_cflags" "$edje_cflags" "$eet_cflags" "$embryo_cflags" "
+AC_SUBST(e_libs)
+AC_SUBST(e_cflags)
+
+profile="FAST_PC"
+AC_ARG_WITH(profile,
+[ --with-profile=TARGET_PROFILE specify a target format profile of:
+ LOWRES_PDA, MEDIUMRES_PDA, HIRES_PDA,
+ SLOW_PC, MEDIUM_PC, FAST_PC ],
+[
+ v=$withval;
+ profile=$v
+ echo " Enlightenment build profile set to "$profile;
+],[
+ profile="FAST_PC"
+])
+EDJE_DEF="-DLOWRES_PDA=1 -DMEDIUMRES_PDA=2 -DHIRES_PDA=3 -DSLOW_PC=4 -DMEDIUM_PC=5 -DFAST_PC=6"
+EDJE_DEF=$EDJE_DEF" -DE17_PROFILE"=$profile
+AC_SUBST(EDJE_DEF)
+
+edje_cc="`$EDJE_CONFIG --prefix`/bin/edje_cc"
+AC_ARG_WITH(edje-cc,
+[ --with-edje-cc=PATH specify a specific path to edje_cc],
+[
+ v=$withval;
+ edje_cc=$v
+ echo " Enlightenment edje_cc explicitly set to "$edje_cc;
+],[
+ edje_cc="`$EDJE_CONFIG --prefix`/bin/edje_cc"
+])
+AC_SUBST(edje_cc)
+
+AC_OUTPUT([
+Makefile
+src/Makefile
+src/lib/Makefile
+src/bin/Makefile
+src/modules/Makefile
+src/modules/test/Makefile
+src/modules/ibar/Makefile
+src/modules/dropshadow/Makefile
+data/Makefile
+data/fonts/Makefile
+data/images/Makefile
+data/init/Makefile
+data/init/images/Makefile
+data/themes/Makefile
+data/themes/images/Makefile
+data/other/Makefile
+doc/Makefile
+enlightenment-config
+],[
+chmod +x enlightenment-config
+])
diff --git a/data/Makefile.am b/data/Makefile.am
new file mode 100644
index 000000000..7bca4f3cc
--- /dev/null
+++ b/data/Makefile.am
@@ -0,0 +1,3 @@
+MAINTAINERCLEANFILES = Makefile.in
+SUBDIRS = fonts images init themes other
+
diff --git a/data/fonts/Makefile.am b/data/fonts/Makefile.am
new file mode 100644
index 000000000..46f323f9a
--- /dev/null
+++ b/data/fonts/Makefile.am
@@ -0,0 +1,17 @@
+MAINTAINERCLEANFILES = Makefile.in
+filesdir = $(datadir)/enlightenment/data/fonts
+files_DATA = \
+Vera.ttf \
+VeraBI.ttf \
+VeraBd.ttf \
+VeraIt.ttf \
+VeraMoBI.ttf \
+VeraMoBd.ttf \
+VeraMoIt.ttf \
+VeraMono.ttf \
+VeraSe.ttf \
+VeraSeBd.ttf \
+fonts.alias \
+fonts.dir
+
+EXTRA_DIST = $(files_DATA)
diff --git a/data/fonts/Vera.ttf b/data/fonts/Vera.ttf
new file mode 100644
index 000000000..58cd6b5e6
--- /dev/null
+++ b/data/fonts/Vera.ttf
Binary files differ
diff --git a/data/fonts/VeraBI.ttf b/data/fonts/VeraBI.ttf
new file mode 100644
index 000000000..b55eee397
--- /dev/null
+++ b/data/fonts/VeraBI.ttf
Binary files differ
diff --git a/data/fonts/VeraBd.ttf b/data/fonts/VeraBd.ttf
new file mode 100644
index 000000000..51d6111d7
--- /dev/null
+++ b/data/fonts/VeraBd.ttf
Binary files differ
diff --git a/data/fonts/VeraIt.ttf b/data/fonts/VeraIt.ttf
new file mode 100644
index 000000000..cc23c9efd
--- /dev/null
+++ b/data/fonts/VeraIt.ttf
Binary files differ
diff --git a/data/fonts/VeraMoBI.ttf b/data/fonts/VeraMoBI.ttf
new file mode 100644
index 000000000..8624542ed
--- /dev/null
+++ b/data/fonts/VeraMoBI.ttf
Binary files differ
diff --git a/data/fonts/VeraMoBd.ttf b/data/fonts/VeraMoBd.ttf
new file mode 100644
index 000000000..9be6547ed
--- /dev/null
+++ b/data/fonts/VeraMoBd.ttf
Binary files differ
diff --git a/data/fonts/VeraMoIt.ttf b/data/fonts/VeraMoIt.ttf
new file mode 100644
index 000000000..240492485
--- /dev/null
+++ b/data/fonts/VeraMoIt.ttf
Binary files differ
diff --git a/data/fonts/VeraMono.ttf b/data/fonts/VeraMono.ttf
new file mode 100644
index 000000000..139f0b431
--- /dev/null
+++ b/data/fonts/VeraMono.ttf
Binary files differ
diff --git a/data/fonts/VeraSe.ttf b/data/fonts/VeraSe.ttf
new file mode 100644
index 000000000..4b4ecc666
--- /dev/null
+++ b/data/fonts/VeraSe.ttf
Binary files differ
diff --git a/data/fonts/VeraSeBd.ttf b/data/fonts/VeraSeBd.ttf
new file mode 100644
index 000000000..672bf761f
--- /dev/null
+++ b/data/fonts/VeraSeBd.ttf
Binary files differ
diff --git a/data/fonts/fonts.alias b/data/fonts/fonts.alias
new file mode 100644
index 000000000..bbb99b3fe
--- /dev/null
+++ b/data/fonts/fonts.alias
@@ -0,0 +1,11 @@
+Vera-Bold-Italic -Bitstream-Bitstream Vera Sans-bold-i-normal--0-0-0-0-p-0-ascii-0
+Vera-Normal -Bitstream-Bitstream Vera Sans-medium-r-normal--0-0-0-0-p-0-ascii-0
+Vera-Bold -Bitstream-Bitstream Vera Sans-bold-r-normal--0-0-0-0-p-0-ascii-0
+Vera-Italic -Bitstream-Bitstream Vera Sans-medium-i-normal--0-0-0-0-p-0-ascii-
+Vera-Mono-Bold-Italic -Bitstream-Bitstream Vera Sans Mono-bold-i-normal--0-0-0-0-m-0-ascii-0
+Vera-Mono-Bold -Bitstream-Bitstream Vera Sans Mono-bold-r-normal--0-0-0-0-m-0-ascii-0
+Vera-Mono-Italic -Bitstream-Bitstream Vera Sans Mono-medium-i-normal--0-0-0-0-m-0-ascii-0
+Vera-Mono -Bitstream-Bitstream Vera Sans Mono-medium-r-normal--0-0-0-0-m-0-ascii-0
+Vera-Serif -Bitstream-Bitstream Vera Serif-medium-r-normal--0-0-0-0-p-0-ascii-0
+Vera-Serif-Bold -Bitstream-Bitstream Vera Serif-bold-r-normal--0-0-0-0-p-0-ascii-0
+Vera -Bitstream-Bitstream Vera Sans-medium-r-normal--0-0-0-0-p-0-ascii-0
diff --git a/data/fonts/fonts.dir b/data/fonts/fonts.dir
new file mode 100644
index 000000000..2dab016e1
--- /dev/null
+++ b/data/fonts/fonts.dir
@@ -0,0 +1,51 @@
+50
+VeraBI.ttf -Bitstream-Bitstream Vera Sans-bold-i-normal--0-0-0-0-p-0-ascii-0
+VeraBI.ttf -Bitstream-Bitstream Vera Sans-bold-i-normal--0-0-0-0-p-0-fcd8859-15
+VeraBI.ttf -Bitstream-Bitstream Vera Sans-bold-i-normal--0-0-0-0-p-0-iso8859-1
+VeraBI.ttf -Bitstream-Bitstream Vera Sans-bold-i-normal--0-0-0-0-p-0-iso8859-15
+VeraBI.ttf -Bitstream-Bitstream Vera Sans-bold-i-normal--0-0-0-0-p-0-iso8859-9
+Vera.ttf -Bitstream-Bitstream Vera Sans-medium-r-normal--0-0-0-0-p-0-ascii-0
+Vera.ttf -Bitstream-Bitstream Vera Sans-medium-r-normal--0-0-0-0-p-0-fcd8859-15
+Vera.ttf -Bitstream-Bitstream Vera Sans-medium-r-normal--0-0-0-0-p-0-iso8859-1
+Vera.ttf -Bitstream-Bitstream Vera Sans-medium-r-normal--0-0-0-0-p-0-iso8859-15
+Vera.ttf -Bitstream-Bitstream Vera Sans-medium-r-normal--0-0-0-0-p-0-iso8859-9
+VeraBd.ttf -Bitstream-Bitstream Vera Sans-bold-r-normal--0-0-0-0-p-0-ascii-0
+VeraBd.ttf -Bitstream-Bitstream Vera Sans-bold-r-normal--0-0-0-0-p-0-fcd8859-15
+VeraBd.ttf -Bitstream-Bitstream Vera Sans-bold-r-normal--0-0-0-0-p-0-iso8859-1
+VeraBd.ttf -Bitstream-Bitstream Vera Sans-bold-r-normal--0-0-0-0-p-0-iso8859-15
+VeraBd.ttf -Bitstream-Bitstream Vera Sans-bold-r-normal--0-0-0-0-p-0-iso8859-9
+VeraIt.ttf -Bitstream-Bitstream Vera Sans-medium-i-normal--0-0-0-0-p-0-ascii-0
+VeraIt.ttf -Bitstream-Bitstream Vera Sans-medium-i-normal--0-0-0-0-p-0-fcd8859-15
+VeraIt.ttf -Bitstream-Bitstream Vera Sans-medium-i-normal--0-0-0-0-p-0-iso8859-1
+VeraIt.ttf -Bitstream-Bitstream Vera Sans-medium-i-normal--0-0-0-0-p-0-iso8859-15
+VeraIt.ttf -Bitstream-Bitstream Vera Sans-medium-i-normal--0-0-0-0-p-0-iso8859-9
+VeraMoBI.ttf -Bitstream-Bitstream Vera Sans Mono-bold-i-normal--0-0-0-0-m-0-ascii-0
+VeraMoBI.ttf -Bitstream-Bitstream Vera Sans Mono-bold-i-normal--0-0-0-0-m-0-fcd8859-15
+VeraMoBI.ttf -Bitstream-Bitstream Vera Sans Mono-bold-i-normal--0-0-0-0-m-0-iso8859-1
+VeraMoBI.ttf -Bitstream-Bitstream Vera Sans Mono-bold-i-normal--0-0-0-0-m-0-iso8859-15
+VeraMoBI.ttf -Bitstream-Bitstream Vera Sans Mono-bold-i-normal--0-0-0-0-m-0-iso8859-9
+VeraMoBd.ttf -Bitstream-Bitstream Vera Sans Mono-bold-r-normal--0-0-0-0-m-0-ascii-0
+VeraMoBd.ttf -Bitstream-Bitstream Vera Sans Mono-bold-r-normal--0-0-0-0-m-0-fcd8859-15
+VeraMoBd.ttf -Bitstream-Bitstream Vera Sans Mono-bold-r-normal--0-0-0-0-m-0-iso8859-1
+VeraMoBd.ttf -Bitstream-Bitstream Vera Sans Mono-bold-r-normal--0-0-0-0-m-0-iso8859-15
+VeraMoBd.ttf -Bitstream-Bitstream Vera Sans Mono-bold-r-normal--0-0-0-0-m-0-iso8859-9
+VeraMoIt.ttf -Bitstream-Bitstream Vera Sans Mono-medium-i-normal--0-0-0-0-m-0-ascii-0
+VeraMoIt.ttf -Bitstream-Bitstream Vera Sans Mono-medium-i-normal--0-0-0-0-m-0-fcd8859-15
+VeraMoIt.ttf -Bitstream-Bitstream Vera Sans Mono-medium-i-normal--0-0-0-0-m-0-iso8859-1
+VeraMoIt.ttf -Bitstream-Bitstream Vera Sans Mono-medium-i-normal--0-0-0-0-m-0-iso8859-15
+VeraMoIt.ttf -Bitstream-Bitstream Vera Sans Mono-medium-i-normal--0-0-0-0-m-0-iso8859-9
+VeraMono.ttf -Bitstream-Bitstream Vera Sans Mono-medium-r-normal--0-0-0-0-m-0-ascii-0
+VeraMono.ttf -Bitstream-Bitstream Vera Sans Mono-medium-r-normal--0-0-0-0-m-0-fcd8859-15
+VeraMono.ttf -Bitstream-Bitstream Vera Sans Mono-medium-r-normal--0-0-0-0-m-0-iso8859-1
+VeraMono.ttf -Bitstream-Bitstream Vera Sans Mono-medium-r-normal--0-0-0-0-m-0-iso8859-15
+VeraMono.ttf -Bitstream-Bitstream Vera Sans Mono-medium-r-normal--0-0-0-0-m-0-iso8859-9
+VeraSe.ttf -Bitstream-Bitstream Vera Serif-medium-r-normal--0-0-0-0-p-0-ascii-0
+VeraSe.ttf -Bitstream-Bitstream Vera Serif-medium-r-normal--0-0-0-0-p-0-fcd8859-15
+VeraSe.ttf -Bitstream-Bitstream Vera Serif-medium-r-normal--0-0-0-0-p-0-iso8859-1
+VeraSe.ttf -Bitstream-Bitstream Vera Serif-medium-r-normal--0-0-0-0-p-0-iso8859-15
+VeraSe.ttf -Bitstream-Bitstream Vera Serif-medium-r-normal--0-0-0-0-p-0-iso8859-9
+VeraSeBd.ttf -Bitstream-Bitstream Vera Serif-bold-r-normal--0-0-0-0-p-0-ascii-0
+VeraSeBd.ttf -Bitstream-Bitstream Vera Serif-bold-r-normal--0-0-0-0-p-0-fcd8859-15
+VeraSeBd.ttf -Bitstream-Bitstream Vera Serif-bold-r-normal--0-0-0-0-p-0-iso8859-1
+VeraSeBd.ttf -Bitstream-Bitstream Vera Serif-bold-r-normal--0-0-0-0-p-0-iso8859-15
+VeraSeBd.ttf -Bitstream-Bitstream Vera Serif-bold-r-normal--0-0-0-0-p-0-iso8859-9
diff --git a/data/images/Makefile.am b/data/images/Makefile.am
new file mode 100644
index 000000000..d514a720e
--- /dev/null
+++ b/data/images/Makefile.am
@@ -0,0 +1,10 @@
+MAINTAINERCLEANFILES = Makefile.in
+filesdir = $(datadir)/enlightenment/data/images
+files_DATA = \
+button_in.png \
+button_out.png \
+e.png \
+error_bg.png \
+pointer.png
+
+EXTRA_DIST = $(files_DATA)
diff --git a/data/images/button_in.png b/data/images/button_in.png
new file mode 100644
index 000000000..fadeccc93
--- /dev/null
+++ b/data/images/button_in.png
Binary files differ
diff --git a/data/images/button_out.png b/data/images/button_out.png
new file mode 100644
index 000000000..6b847fa62
--- /dev/null
+++ b/data/images/button_out.png
Binary files differ
diff --git a/data/images/e.png b/data/images/e.png
new file mode 100644
index 000000000..47597a8d4
--- /dev/null
+++ b/data/images/e.png
Binary files differ
diff --git a/data/images/error_bg.png b/data/images/error_bg.png
new file mode 100644
index 000000000..c3eaad983
--- /dev/null
+++ b/data/images/error_bg.png
Binary files differ
diff --git a/data/images/pointer.png b/data/images/pointer.png
new file mode 100644
index 000000000..a7c932318
--- /dev/null
+++ b/data/images/pointer.png
Binary files differ
diff --git a/data/init/Makefile.am b/data/init/Makefile.am
new file mode 100644
index 000000000..4ee88a4a4
--- /dev/null
+++ b/data/init/Makefile.am
@@ -0,0 +1,24 @@
+MAINTAINERCLEANFILES = Makefile.in
+SUBDIRS = images
+
+EDJE_CC = @edje_cc@
+EDJE_FLAGS = \
+-v \
+-id $(top_srcdir)/data/init/images \
+-fd $(top_srcdir)/data/fonts \
+@EDJE_DEF@
+
+filesdir = $(datadir)/enlightenment/data/init
+files_DATA = \
+init.eet
+
+EXTRA_DIST = init.edc
+
+init.eet: Makefile init.edc
+ $(EDJE_CC) $(EDJE_FLAGS) \
+ $(top_srcdir)/data/init/init.edc \
+ $(top_builddir)/data/init/init.eet
+
+clean-local:
+ rm -f *.eet
+
diff --git a/data/init/images/Makefile.am b/data/init/images/Makefile.am
new file mode 100644
index 000000000..392653bc9
--- /dev/null
+++ b/data/init/images/Makefile.am
@@ -0,0 +1,487 @@
+MAINTAINERCLEANFILES = Makefile.in
+EXTRA_DIST = \
+brushed.png \
+loop_eintro_121.png \
+loop_eintro_122.png \
+loop_eintro_123.png \
+loop_eintro_124.png \
+loop_eintro_125.png \
+loop_eintro_126.png \
+loop_eintro_127.png \
+loop_eintro_128.png \
+loop_eintro_129.png \
+loop_eintro_130.png \
+loop_eintro_131.png \
+loop_eintro_132.png \
+loop_eintro_133.png \
+loop_eintro_134.png \
+loop_eintro_135.png \
+loop_eintro_136.png \
+loop_eintro_137.png \
+loop_eintro_138.png \
+loop_eintro_139.png \
+loop_eintro_140.png \
+loop_eintro_141.png \
+loop_eintro_142.png \
+loop_eintro_143.png \
+loop_eintro_144.png \
+loop_eintro_145.png \
+loop_eintro_146.png \
+loop_eintro_147.png \
+loop_eintro_148.png \
+loop_eintro_149.png \
+loop_eintro_150.png \
+loop_eintro_151.png \
+loop_eintro_152.png \
+loop_eintro_153.png \
+loop_eintro_154.png \
+loop_eintro_155.png \
+loop_eintro_156.png \
+loop_eintro_157.png \
+loop_eintro_158.png \
+loop_eintro_159.png \
+loop_eintro_160.png \
+loop_eintro_161.png \
+loop_eintro_162.png \
+loop_eintro_163.png \
+loop_eintro_164.png \
+loop_eintro_165.png \
+loop_eintro_166.png \
+loop_eintro_167.png \
+loop_eintro_168.png \
+loop_eintro_169.png \
+loop_eintro_170.png \
+loop_eintro_171.png \
+loop_eintro_172.png \
+loop_eintro_173.png \
+loop_eintro_174.png \
+loop_eintro_175.png \
+loop_eintro_176.png \
+loop_eintro_177.png \
+loop_eintro_178.png \
+loop_eintro_179.png \
+loop_eintro_180.png \
+loop_eintro_181.png \
+loop_eintro_182.png \
+loop_eintro_183.png \
+loop_eintro_184.png \
+loop_eintro_185.png \
+loop_eintro_186.png \
+loop_eintro_187.png \
+loop_eintro_188.png \
+loop_eintro_189.png \
+loop_eintro_190.png \
+loop_eintro_191.png \
+loop_eintro_192.png \
+loop_eintro_193.png \
+loop_eintro_194.png \
+loop_eintro_195.png \
+loop_eintro_196.png \
+loop_eintro_197.png \
+loop_eintro_198.png \
+loop_eintro_199.png \
+loop_eintro_200.png \
+loop_eintro_201.png \
+loop_eintro_202.png \
+loop_eintro_203.png \
+loop_eintro_204.png \
+loop_eintro_205.png \
+loop_eintro_206.png \
+loop_eintro_207.png \
+loop_eintro_208.png \
+loop_eintro_209.png \
+loop_eintro_210.png \
+loop_eintro_211.png \
+loop_eintro_212.png \
+loop_eintro_213.png \
+loop_eintro_214.png \
+loop_eintro_215.png \
+loop_eintro_216.png \
+loop_eintro_217.png \
+loop_eintro_218.png \
+loop_eintro_219.png \
+loop_eintro_220.png \
+loop_eintro_221.png \
+loop_eintro_222.png \
+loop_eintro_223.png \
+loop_eintro_224.png \
+loop_eintro_225.png \
+loop_eintro_226.png \
+loop_eintro_227.png \
+loop_eintro_228.png \
+loop_eintro_229.png \
+loop_eintro_230.png \
+loop_eintro_231.png \
+loop_eintro_232.png \
+loop_eintro_233.png \
+loop_eintro_234.png \
+loop_eintro_235.png \
+loop_eintro_236.png \
+loop_eintro_237.png \
+loop_eintro_238.png \
+loop_eintro_239.png \
+loop_eintro_240.png \
+reflection_overlay.png \
+shadow.png \
+start_eintro_001.png \
+start_eintro_002.png \
+start_eintro_003.png \
+start_eintro_004.png \
+start_eintro_005.png \
+start_eintro_006.png \
+start_eintro_007.png \
+start_eintro_008.png \
+start_eintro_009.png \
+start_eintro_010.png \
+start_eintro_011.png \
+start_eintro_012.png \
+start_eintro_013.png \
+start_eintro_014.png \
+start_eintro_015.png \
+start_eintro_016.png \
+start_eintro_017.png \
+start_eintro_018.png \
+start_eintro_019.png \
+start_eintro_020.png \
+start_eintro_021.png \
+start_eintro_022.png \
+start_eintro_023.png \
+start_eintro_024.png \
+start_eintro_025.png \
+start_eintro_026.png \
+start_eintro_027.png \
+start_eintro_028.png \
+start_eintro_029.png \
+start_eintro_030.png \
+start_eintro_031.png \
+start_eintro_032.png \
+start_eintro_033.png \
+start_eintro_034.png \
+start_eintro_035.png \
+start_eintro_036.png \
+start_eintro_037.png \
+start_eintro_038.png \
+start_eintro_039.png \
+start_eintro_040.png \
+start_eintro_041.png \
+start_eintro_042.png \
+start_eintro_043.png \
+start_eintro_044.png \
+start_eintro_045.png \
+start_eintro_046.png \
+start_eintro_047.png \
+start_eintro_048.png \
+start_eintro_049.png \
+start_eintro_050.png \
+start_eintro_051.png \
+start_eintro_052.png \
+start_eintro_053.png \
+start_eintro_054.png \
+start_eintro_055.png \
+start_eintro_056.png \
+start_eintro_057.png \
+start_eintro_058.png \
+start_eintro_059.png \
+start_eintro_060.png \
+start_eintro_061.png \
+start_eintro_062.png \
+start_eintro_063.png \
+start_eintro_064.png \
+start_eintro_065.png \
+start_eintro_066.png \
+start_eintro_067.png \
+start_eintro_068.png \
+start_eintro_069.png \
+start_eintro_070.png \
+start_eintro_071.png \
+start_eintro_072.png \
+start_eintro_073.png \
+start_eintro_074.png \
+start_eintro_075.png \
+start_eintro_076.png \
+start_eintro_077.png \
+start_eintro_078.png \
+start_eintro_079.png \
+start_eintro_080.png \
+start_eintro_081.png \
+start_eintro_082.png \
+start_eintro_083.png \
+start_eintro_084.png \
+start_eintro_085.png \
+start_eintro_086.png \
+start_eintro_087.png \
+start_eintro_088.png \
+start_eintro_089.png \
+start_eintro_090.png \
+start_eintro_091.png \
+start_eintro_092.png \
+start_eintro_093.png \
+start_eintro_094.png \
+start_eintro_095.png \
+start_eintro_096.png \
+start_eintro_097.png \
+start_eintro_098.png \
+start_eintro_099.png \
+start_eintro_100.png \
+start_eintro_101.png \
+start_eintro_102.png \
+start_eintro_103.png \
+start_eintro_104.png \
+start_eintro_105.png \
+start_eintro_106.png \
+start_eintro_107.png \
+start_eintro_108.png \
+start_eintro_109.png \
+start_eintro_110.png \
+start_eintro_111.png \
+start_eintro_112.png \
+start_eintro_113.png \
+start_eintro_114.png \
+start_eintro_115.png \
+start_eintro_116.png \
+start_eintro_117.png \
+start_eintro_118.png \
+start_eintro_119.png \
+start_eintro_120.png \
+sm_loop_eintro_121.png \
+sm_loop_eintro_122.png \
+sm_loop_eintro_123.png \
+sm_loop_eintro_124.png \
+sm_loop_eintro_125.png \
+sm_loop_eintro_126.png \
+sm_loop_eintro_127.png \
+sm_loop_eintro_128.png \
+sm_loop_eintro_129.png \
+sm_loop_eintro_130.png \
+sm_loop_eintro_131.png \
+sm_loop_eintro_132.png \
+sm_loop_eintro_133.png \
+sm_loop_eintro_134.png \
+sm_loop_eintro_135.png \
+sm_loop_eintro_136.png \
+sm_loop_eintro_137.png \
+sm_loop_eintro_138.png \
+sm_loop_eintro_139.png \
+sm_loop_eintro_140.png \
+sm_loop_eintro_141.png \
+sm_loop_eintro_142.png \
+sm_loop_eintro_143.png \
+sm_loop_eintro_144.png \
+sm_loop_eintro_145.png \
+sm_loop_eintro_146.png \
+sm_loop_eintro_147.png \
+sm_loop_eintro_148.png \
+sm_loop_eintro_149.png \
+sm_loop_eintro_150.png \
+sm_loop_eintro_151.png \
+sm_loop_eintro_152.png \
+sm_loop_eintro_153.png \
+sm_loop_eintro_154.png \
+sm_loop_eintro_155.png \
+sm_loop_eintro_156.png \
+sm_loop_eintro_157.png \
+sm_loop_eintro_158.png \
+sm_loop_eintro_159.png \
+sm_loop_eintro_160.png \
+sm_loop_eintro_161.png \
+sm_loop_eintro_162.png \
+sm_loop_eintro_163.png \
+sm_loop_eintro_164.png \
+sm_loop_eintro_165.png \
+sm_loop_eintro_166.png \
+sm_loop_eintro_167.png \
+sm_loop_eintro_168.png \
+sm_loop_eintro_169.png \
+sm_loop_eintro_170.png \
+sm_loop_eintro_171.png \
+sm_loop_eintro_172.png \
+sm_loop_eintro_173.png \
+sm_loop_eintro_174.png \
+sm_loop_eintro_175.png \
+sm_loop_eintro_176.png \
+sm_loop_eintro_177.png \
+sm_loop_eintro_178.png \
+sm_loop_eintro_179.png \
+sm_loop_eintro_180.png \
+sm_loop_eintro_181.png \
+sm_loop_eintro_182.png \
+sm_loop_eintro_183.png \
+sm_loop_eintro_184.png \
+sm_loop_eintro_185.png \
+sm_loop_eintro_186.png \
+sm_loop_eintro_187.png \
+sm_loop_eintro_188.png \
+sm_loop_eintro_189.png \
+sm_loop_eintro_190.png \
+sm_loop_eintro_191.png \
+sm_loop_eintro_192.png \
+sm_loop_eintro_193.png \
+sm_loop_eintro_194.png \
+sm_loop_eintro_195.png \
+sm_loop_eintro_196.png \
+sm_loop_eintro_197.png \
+sm_loop_eintro_198.png \
+sm_loop_eintro_199.png \
+sm_loop_eintro_200.png \
+sm_loop_eintro_201.png \
+sm_loop_eintro_202.png \
+sm_loop_eintro_203.png \
+sm_loop_eintro_204.png \
+sm_loop_eintro_205.png \
+sm_loop_eintro_206.png \
+sm_loop_eintro_207.png \
+sm_loop_eintro_208.png \
+sm_loop_eintro_209.png \
+sm_loop_eintro_210.png \
+sm_loop_eintro_211.png \
+sm_loop_eintro_212.png \
+sm_loop_eintro_213.png \
+sm_loop_eintro_214.png \
+sm_loop_eintro_215.png \
+sm_loop_eintro_216.png \
+sm_loop_eintro_217.png \
+sm_loop_eintro_218.png \
+sm_loop_eintro_219.png \
+sm_loop_eintro_220.png \
+sm_loop_eintro_221.png \
+sm_loop_eintro_222.png \
+sm_loop_eintro_223.png \
+sm_loop_eintro_224.png \
+sm_loop_eintro_225.png \
+sm_loop_eintro_226.png \
+sm_loop_eintro_227.png \
+sm_loop_eintro_228.png \
+sm_loop_eintro_229.png \
+sm_loop_eintro_230.png \
+sm_loop_eintro_231.png \
+sm_loop_eintro_232.png \
+sm_loop_eintro_233.png \
+sm_loop_eintro_234.png \
+sm_loop_eintro_235.png \
+sm_loop_eintro_236.png \
+sm_loop_eintro_237.png \
+sm_loop_eintro_238.png \
+sm_loop_eintro_239.png \
+sm_loop_eintro_240.png \
+sm_reflection_overlay.png \
+sm_shadow.png \
+sm_start_eintro_001.png \
+sm_start_eintro_002.png \
+sm_start_eintro_003.png \
+sm_start_eintro_004.png \
+sm_start_eintro_005.png \
+sm_start_eintro_006.png \
+sm_start_eintro_007.png \
+sm_start_eintro_008.png \
+sm_start_eintro_009.png \
+sm_start_eintro_010.png \
+sm_start_eintro_011.png \
+sm_start_eintro_012.png \
+sm_start_eintro_013.png \
+sm_start_eintro_014.png \
+sm_start_eintro_015.png \
+sm_start_eintro_016.png \
+sm_start_eintro_017.png \
+sm_start_eintro_018.png \
+sm_start_eintro_019.png \
+sm_start_eintro_020.png \
+sm_start_eintro_021.png \
+sm_start_eintro_022.png \
+sm_start_eintro_023.png \
+sm_start_eintro_024.png \
+sm_start_eintro_025.png \
+sm_start_eintro_026.png \
+sm_start_eintro_027.png \
+sm_start_eintro_028.png \
+sm_start_eintro_029.png \
+sm_start_eintro_030.png \
+sm_start_eintro_031.png \
+sm_start_eintro_032.png \
+sm_start_eintro_033.png \
+sm_start_eintro_034.png \
+sm_start_eintro_035.png \
+sm_start_eintro_036.png \
+sm_start_eintro_037.png \
+sm_start_eintro_038.png \
+sm_start_eintro_039.png \
+sm_start_eintro_040.png \
+sm_start_eintro_041.png \
+sm_start_eintro_042.png \
+sm_start_eintro_043.png \
+sm_start_eintro_044.png \
+sm_start_eintro_045.png \
+sm_start_eintro_046.png \
+sm_start_eintro_047.png \
+sm_start_eintro_048.png \
+sm_start_eintro_049.png \
+sm_start_eintro_050.png \
+sm_start_eintro_051.png \
+sm_start_eintro_052.png \
+sm_start_eintro_053.png \
+sm_start_eintro_054.png \
+sm_start_eintro_055.png \
+sm_start_eintro_056.png \
+sm_start_eintro_057.png \
+sm_start_eintro_058.png \
+sm_start_eintro_059.png \
+sm_start_eintro_060.png \
+sm_start_eintro_061.png \
+sm_start_eintro_062.png \
+sm_start_eintro_063.png \
+sm_start_eintro_064.png \
+sm_start_eintro_065.png \
+sm_start_eintro_066.png \
+sm_start_eintro_067.png \
+sm_start_eintro_068.png \
+sm_start_eintro_069.png \
+sm_start_eintro_070.png \
+sm_start_eintro_071.png \
+sm_start_eintro_072.png \
+sm_start_eintro_073.png \
+sm_start_eintro_074.png \
+sm_start_eintro_075.png \
+sm_start_eintro_076.png \
+sm_start_eintro_077.png \
+sm_start_eintro_078.png \
+sm_start_eintro_079.png \
+sm_start_eintro_080.png \
+sm_start_eintro_081.png \
+sm_start_eintro_082.png \
+sm_start_eintro_083.png \
+sm_start_eintro_084.png \
+sm_start_eintro_085.png \
+sm_start_eintro_086.png \
+sm_start_eintro_087.png \
+sm_start_eintro_088.png \
+sm_start_eintro_089.png \
+sm_start_eintro_090.png \
+sm_start_eintro_091.png \
+sm_start_eintro_092.png \
+sm_start_eintro_093.png \
+sm_start_eintro_094.png \
+sm_start_eintro_095.png \
+sm_start_eintro_096.png \
+sm_start_eintro_097.png \
+sm_start_eintro_098.png \
+sm_start_eintro_099.png \
+sm_start_eintro_100.png \
+sm_start_eintro_101.png \
+sm_start_eintro_102.png \
+sm_start_eintro_103.png \
+sm_start_eintro_104.png \
+sm_start_eintro_105.png \
+sm_start_eintro_106.png \
+sm_start_eintro_107.png \
+sm_start_eintro_108.png \
+sm_start_eintro_109.png \
+sm_start_eintro_110.png \
+sm_start_eintro_111.png \
+sm_start_eintro_112.png \
+sm_start_eintro_113.png \
+sm_start_eintro_114.png \
+sm_start_eintro_115.png \
+sm_start_eintro_116.png \
+sm_start_eintro_117.png \
+sm_start_eintro_118.png \
+sm_start_eintro_119.png \
+sm_start_eintro_120.png
diff --git a/data/init/images/brushed.png b/data/init/images/brushed.png
new file mode 100644
index 000000000..0b6cda97b
--- /dev/null
+++ b/data/init/images/brushed.png
Binary files differ
diff --git a/data/init/images/loop_eintro_121.png b/data/init/images/loop_eintro_121.png
new file mode 100644
index 000000000..666526ba6
--- /dev/null
+++ b/data/init/images/loop_eintro_121.png
Binary files differ
diff --git a/data/init/images/loop_eintro_122.png b/data/init/images/loop_eintro_122.png
new file mode 100644
index 000000000..01b35d9c1
--- /dev/null
+++ b/data/init/images/loop_eintro_122.png
Binary files differ
diff --git a/data/init/images/loop_eintro_123.png b/data/init/images/loop_eintro_123.png
new file mode 100644
index 000000000..6c6af7655
--- /dev/null
+++ b/data/init/images/loop_eintro_123.png
Binary files differ
diff --git a/data/init/images/loop_eintro_124.png b/data/init/images/loop_eintro_124.png
new file mode 100644
index 000000000..04b85b649
--- /dev/null
+++ b/data/init/images/loop_eintro_124.png
Binary files differ
diff --git a/data/init/images/loop_eintro_125.png b/data/init/images/loop_eintro_125.png
new file mode 100644
index 000000000..fbcbdbfca
--- /dev/null
+++ b/data/init/images/loop_eintro_125.png
Binary files differ
diff --git a/data/init/images/loop_eintro_126.png b/data/init/images/loop_eintro_126.png
new file mode 100644
index 000000000..bc25e5579
--- /dev/null
+++ b/data/init/images/loop_eintro_126.png
Binary files differ
diff --git a/data/init/images/loop_eintro_127.png b/data/init/images/loop_eintro_127.png
new file mode 100644
index 000000000..5bbf6b50e
--- /dev/null
+++ b/data/init/images/loop_eintro_127.png
Binary files differ
diff --git a/data/init/images/loop_eintro_128.png b/data/init/images/loop_eintro_128.png
new file mode 100644
index 000000000..00f0a2dab
--- /dev/null
+++ b/data/init/images/loop_eintro_128.png
Binary files differ
diff --git a/data/init/images/loop_eintro_129.png b/data/init/images/loop_eintro_129.png
new file mode 100644
index 000000000..903ede210
--- /dev/null
+++ b/data/init/images/loop_eintro_129.png
Binary files differ
diff --git a/data/init/images/loop_eintro_130.png b/data/init/images/loop_eintro_130.png
new file mode 100644
index 000000000..e1a8644ac
--- /dev/null
+++ b/data/init/images/loop_eintro_130.png
Binary files differ
diff --git a/data/init/images/loop_eintro_131.png b/data/init/images/loop_eintro_131.png
new file mode 100644
index 000000000..cf1d67772
--- /dev/null
+++ b/data/init/images/loop_eintro_131.png
Binary files differ
diff --git a/data/init/images/loop_eintro_132.png b/data/init/images/loop_eintro_132.png
new file mode 100644
index 000000000..fac48909b
--- /dev/null
+++ b/data/init/images/loop_eintro_132.png
Binary files differ
diff --git a/data/init/images/loop_eintro_133.png b/data/init/images/loop_eintro_133.png
new file mode 100644
index 000000000..512d764eb
--- /dev/null
+++ b/data/init/images/loop_eintro_133.png
Binary files differ
diff --git a/data/init/images/loop_eintro_134.png b/data/init/images/loop_eintro_134.png
new file mode 100644
index 000000000..31d3a9bcb
--- /dev/null
+++ b/data/init/images/loop_eintro_134.png
Binary files differ
diff --git a/data/init/images/loop_eintro_135.png b/data/init/images/loop_eintro_135.png
new file mode 100644
index 000000000..62ec7a831
--- /dev/null
+++ b/data/init/images/loop_eintro_135.png
Binary files differ
diff --git a/data/init/images/loop_eintro_136.png b/data/init/images/loop_eintro_136.png
new file mode 100644
index 000000000..621d07a49
--- /dev/null
+++ b/data/init/images/loop_eintro_136.png
Binary files differ
diff --git a/data/init/images/loop_eintro_137.png b/data/init/images/loop_eintro_137.png
new file mode 100644
index 000000000..6f571d006
--- /dev/null
+++ b/data/init/images/loop_eintro_137.png
Binary files differ
diff --git a/data/init/images/loop_eintro_138.png b/data/init/images/loop_eintro_138.png
new file mode 100644
index 000000000..331433340
--- /dev/null
+++ b/data/init/images/loop_eintro_138.png
Binary files differ
diff --git a/data/init/images/loop_eintro_139.png b/data/init/images/loop_eintro_139.png
new file mode 100644
index 000000000..bd81788dd
--- /dev/null
+++ b/data/init/images/loop_eintro_139.png
Binary files differ
diff --git a/data/init/images/loop_eintro_140.png b/data/init/images/loop_eintro_140.png
new file mode 100644
index 000000000..ba4ecea7f
--- /dev/null
+++ b/data/init/images/loop_eintro_140.png
Binary files differ
diff --git a/data/init/images/loop_eintro_141.png b/data/init/images/loop_eintro_141.png
new file mode 100644
index 000000000..03a744078
--- /dev/null
+++ b/data/init/images/loop_eintro_141.png
Binary files differ
diff --git a/data/init/images/loop_eintro_142.png b/data/init/images/loop_eintro_142.png
new file mode 100644
index 000000000..6df4a193f
--- /dev/null
+++ b/data/init/images/loop_eintro_142.png
Binary files differ
diff --git a/data/init/images/loop_eintro_143.png b/data/init/images/loop_eintro_143.png
new file mode 100644
index 000000000..fb05997cc
--- /dev/null
+++ b/data/init/images/loop_eintro_143.png
Binary files differ
diff --git a/data/init/images/loop_eintro_144.png b/data/init/images/loop_eintro_144.png
new file mode 100644
index 000000000..edbf64abb
--- /dev/null
+++ b/data/init/images/loop_eintro_144.png
Binary files differ
diff --git a/data/init/images/loop_eintro_145.png b/data/init/images/loop_eintro_145.png
new file mode 100644
index 000000000..37fe7357b
--- /dev/null
+++ b/data/init/images/loop_eintro_145.png
Binary files differ
diff --git a/data/init/images/loop_eintro_146.png b/data/init/images/loop_eintro_146.png
new file mode 100644
index 000000000..868ed9da5
--- /dev/null
+++ b/data/init/images/loop_eintro_146.png
Binary files differ
diff --git a/data/init/images/loop_eintro_147.png b/data/init/images/loop_eintro_147.png
new file mode 100644
index 000000000..dada3763f
--- /dev/null
+++ b/data/init/images/loop_eintro_147.png
Binary files differ
diff --git a/data/init/images/loop_eintro_148.png b/data/init/images/loop_eintro_148.png
new file mode 100644
index 000000000..43f121830
--- /dev/null
+++ b/data/init/images/loop_eintro_148.png
Binary files differ
diff --git a/data/init/images/loop_eintro_149.png b/data/init/images/loop_eintro_149.png
new file mode 100644
index 000000000..69a8b7b7f
--- /dev/null
+++ b/data/init/images/loop_eintro_149.png
Binary files differ
diff --git a/data/init/images/loop_eintro_150.png b/data/init/images/loop_eintro_150.png
new file mode 100644
index 000000000..73e23f49c
--- /dev/null
+++ b/data/init/images/loop_eintro_150.png
Binary files differ
diff --git a/data/init/images/loop_eintro_151.png b/data/init/images/loop_eintro_151.png
new file mode 100644
index 000000000..4815208aa
--- /dev/null
+++ b/data/init/images/loop_eintro_151.png
Binary files differ
diff --git a/data/init/images/loop_eintro_152.png b/data/init/images/loop_eintro_152.png
new file mode 100644
index 000000000..eabdb4d44
--- /dev/null
+++ b/data/init/images/loop_eintro_152.png
Binary files differ
diff --git a/data/init/images/loop_eintro_153.png b/data/init/images/loop_eintro_153.png
new file mode 100644
index 000000000..0d654f7c0
--- /dev/null
+++ b/data/init/images/loop_eintro_153.png
Binary files differ
diff --git a/data/init/images/loop_eintro_154.png b/data/init/images/loop_eintro_154.png
new file mode 100644
index 000000000..cf87a7e1d
--- /dev/null
+++ b/data/init/images/loop_eintro_154.png
Binary files differ
diff --git a/data/init/images/loop_eintro_155.png b/data/init/images/loop_eintro_155.png
new file mode 100644
index 000000000..9a2b94ab2
--- /dev/null
+++ b/data/init/images/loop_eintro_155.png
Binary files differ
diff --git a/data/init/images/loop_eintro_156.png b/data/init/images/loop_eintro_156.png
new file mode 100644
index 000000000..1203bb58a
--- /dev/null
+++ b/data/init/images/loop_eintro_156.png
Binary files differ
diff --git a/data/init/images/loop_eintro_157.png b/data/init/images/loop_eintro_157.png
new file mode 100644
index 000000000..bfcb0b3bf
--- /dev/null
+++ b/data/init/images/loop_eintro_157.png
Binary files differ
diff --git a/data/init/images/loop_eintro_158.png b/data/init/images/loop_eintro_158.png
new file mode 100644
index 000000000..332b93559
--- /dev/null
+++ b/data/init/images/loop_eintro_158.png
Binary files differ
diff --git a/data/init/images/loop_eintro_159.png b/data/init/images/loop_eintro_159.png
new file mode 100644
index 000000000..21a7a6cae
--- /dev/null
+++ b/data/init/images/loop_eintro_159.png
Binary files differ
diff --git a/data/init/images/loop_eintro_160.png b/data/init/images/loop_eintro_160.png
new file mode 100644
index 000000000..7790f0cfc
--- /dev/null
+++ b/data/init/images/loop_eintro_160.png
Binary files differ
diff --git a/data/init/images/loop_eintro_161.png b/data/init/images/loop_eintro_161.png
new file mode 100644
index 000000000..9159f9b6a
--- /dev/null
+++ b/data/init/images/loop_eintro_161.png
Binary files differ
diff --git a/data/init/images/loop_eintro_162.png b/data/init/images/loop_eintro_162.png
new file mode 100644
index 000000000..07346bb42
--- /dev/null
+++ b/data/init/images/loop_eintro_162.png
Binary files differ
diff --git a/data/init/images/loop_eintro_163.png b/data/init/images/loop_eintro_163.png
new file mode 100644
index 000000000..b92813534
--- /dev/null
+++ b/data/init/images/loop_eintro_163.png
Binary files differ
diff --git a/data/init/images/loop_eintro_164.png b/data/init/images/loop_eintro_164.png
new file mode 100644
index 000000000..0a80a8ad7
--- /dev/null
+++ b/data/init/images/loop_eintro_164.png
Binary files differ
diff --git a/data/init/images/loop_eintro_165.png b/data/init/images/loop_eintro_165.png
new file mode 100644
index 000000000..221042dca
--- /dev/null
+++ b/data/init/images/loop_eintro_165.png
Binary files differ
diff --git a/data/init/images/loop_eintro_166.png b/data/init/images/loop_eintro_166.png
new file mode 100644
index 000000000..843c8500d
--- /dev/null
+++ b/data/init/images/loop_eintro_166.png
Binary files differ
diff --git a/data/init/images/loop_eintro_167.png b/data/init/images/loop_eintro_167.png
new file mode 100644
index 000000000..4f1d08ae8
--- /dev/null
+++ b/data/init/images/loop_eintro_167.png
Binary files differ
diff --git a/data/init/images/loop_eintro_168.png b/data/init/images/loop_eintro_168.png
new file mode 100644
index 000000000..36ceb9f85
--- /dev/null
+++ b/data/init/images/loop_eintro_168.png
Binary files differ
diff --git a/data/init/images/loop_eintro_169.png b/data/init/images/loop_eintro_169.png
new file mode 100644
index 000000000..cc3dac0eb
--- /dev/null
+++ b/data/init/images/loop_eintro_169.png
Binary files differ
diff --git a/data/init/images/loop_eintro_170.png b/data/init/images/loop_eintro_170.png
new file mode 100644
index 000000000..f8aba63ff
--- /dev/null
+++ b/data/init/images/loop_eintro_170.png
Binary files differ
diff --git a/data/init/images/loop_eintro_171.png b/data/init/images/loop_eintro_171.png
new file mode 100644
index 000000000..3d63464d7
--- /dev/null
+++ b/data/init/images/loop_eintro_171.png
Binary files differ
diff --git a/data/init/images/loop_eintro_172.png b/data/init/images/loop_eintro_172.png
new file mode 100644
index 000000000..070d3a08d
--- /dev/null
+++ b/data/init/images/loop_eintro_172.png
Binary files differ
diff --git a/data/init/images/loop_eintro_173.png b/data/init/images/loop_eintro_173.png
new file mode 100644
index 000000000..df136e544
--- /dev/null
+++ b/data/init/images/loop_eintro_173.png
Binary files differ
diff --git a/data/init/images/loop_eintro_174.png b/data/init/images/loop_eintro_174.png
new file mode 100644
index 000000000..91185107f
--- /dev/null
+++ b/data/init/images/loop_eintro_174.png
Binary files differ
diff --git a/data/init/images/loop_eintro_175.png b/data/init/images/loop_eintro_175.png
new file mode 100644
index 000000000..ccd5c83f8
--- /dev/null
+++ b/data/init/images/loop_eintro_175.png
Binary files differ
diff --git a/data/init/images/loop_eintro_176.png b/data/init/images/loop_eintro_176.png
new file mode 100644
index 000000000..181504115
--- /dev/null
+++ b/data/init/images/loop_eintro_176.png
Binary files differ
diff --git a/data/init/images/loop_eintro_177.png b/data/init/images/loop_eintro_177.png
new file mode 100644
index 000000000..52b748c0a
--- /dev/null
+++ b/data/init/images/loop_eintro_177.png
Binary files differ
diff --git a/data/init/images/loop_eintro_178.png b/data/init/images/loop_eintro_178.png
new file mode 100644
index 000000000..37af018d3
--- /dev/null
+++ b/data/init/images/loop_eintro_178.png
Binary files differ
diff --git a/data/init/images/loop_eintro_179.png b/data/init/images/loop_eintro_179.png
new file mode 100644
index 000000000..434abdd85
--- /dev/null
+++ b/data/init/images/loop_eintro_179.png
Binary files differ
diff --git a/data/init/images/loop_eintro_180.png b/data/init/images/loop_eintro_180.png
new file mode 100644
index 000000000..c056862e8
--- /dev/null
+++ b/data/init/images/loop_eintro_180.png
Binary files differ
diff --git a/data/init/images/loop_eintro_181.png b/data/init/images/loop_eintro_181.png
new file mode 100644
index 000000000..ba7750211
--- /dev/null
+++ b/data/init/images/loop_eintro_181.png
Binary files differ
diff --git a/data/init/images/loop_eintro_182.png b/data/init/images/loop_eintro_182.png
new file mode 100644
index 000000000..1a5235d23
--- /dev/null
+++ b/data/init/images/loop_eintro_182.png
Binary files differ
diff --git a/data/init/images/loop_eintro_183.png b/data/init/images/loop_eintro_183.png
new file mode 100644
index 000000000..62d80b560
--- /dev/null
+++ b/data/init/images/loop_eintro_183.png
Binary files differ
diff --git a/data/init/images/loop_eintro_184.png b/data/init/images/loop_eintro_184.png
new file mode 100644
index 000000000..ebc205d5e
--- /dev/null
+++ b/data/init/images/loop_eintro_184.png
Binary files differ
diff --git a/data/init/images/loop_eintro_185.png b/data/init/images/loop_eintro_185.png
new file mode 100644
index 000000000..042dc8e55
--- /dev/null
+++ b/data/init/images/loop_eintro_185.png
Binary files differ
diff --git a/data/init/images/loop_eintro_186.png b/data/init/images/loop_eintro_186.png
new file mode 100644
index 000000000..faf1983e0
--- /dev/null
+++ b/data/init/images/loop_eintro_186.png
Binary files differ
diff --git a/data/init/images/loop_eintro_187.png b/data/init/images/loop_eintro_187.png
new file mode 100644
index 000000000..13d3030d9
--- /dev/null
+++ b/data/init/images/loop_eintro_187.png
Binary files differ
diff --git a/data/init/images/loop_eintro_188.png b/data/init/images/loop_eintro_188.png
new file mode 100644
index 000000000..5a1a8c6e0
--- /dev/null
+++ b/data/init/images/loop_eintro_188.png
Binary files differ
diff --git a/data/init/images/loop_eintro_189.png b/data/init/images/loop_eintro_189.png
new file mode 100644
index 000000000..104f63d89
--- /dev/null
+++ b/data/init/images/loop_eintro_189.png
Binary files differ
diff --git a/data/init/images/loop_eintro_190.png b/data/init/images/loop_eintro_190.png
new file mode 100644
index 000000000..79e612ef1
--- /dev/null
+++ b/data/init/images/loop_eintro_190.png
Binary files differ
diff --git a/data/init/images/loop_eintro_191.png b/data/init/images/loop_eintro_191.png
new file mode 100644
index 000000000..5c8d7c53b
--- /dev/null
+++ b/data/init/images/loop_eintro_191.png
Binary files differ
diff --git a/data/init/images/loop_eintro_192.png b/data/init/images/loop_eintro_192.png
new file mode 100644
index 000000000..9f02a1d74
--- /dev/null
+++ b/data/init/images/loop_eintro_192.png
Binary files differ
diff --git a/data/init/images/loop_eintro_193.png b/data/init/images/loop_eintro_193.png
new file mode 100644
index 000000000..37fe7cf34
--- /dev/null
+++ b/data/init/images/loop_eintro_193.png
Binary files differ
diff --git a/data/init/images/loop_eintro_194.png b/data/init/images/loop_eintro_194.png
new file mode 100644
index 000000000..2402a1b02
--- /dev/null
+++ b/data/init/images/loop_eintro_194.png
Binary files differ
diff --git a/data/init/images/loop_eintro_195.png b/data/init/images/loop_eintro_195.png
new file mode 100644
index 000000000..c5b39917e
--- /dev/null
+++ b/data/init/images/loop_eintro_195.png
Binary files differ
diff --git a/data/init/images/loop_eintro_196.png b/data/init/images/loop_eintro_196.png
new file mode 100644
index 000000000..e87d5c34c
--- /dev/null
+++ b/data/init/images/loop_eintro_196.png
Binary files differ
diff --git a/data/init/images/loop_eintro_197.png b/data/init/images/loop_eintro_197.png
new file mode 100644
index 000000000..d8071424f
--- /dev/null
+++ b/data/init/images/loop_eintro_197.png
Binary files differ
diff --git a/data/init/images/loop_eintro_198.png b/data/init/images/loop_eintro_198.png
new file mode 100644
index 000000000..b00cf4f39
--- /dev/null
+++ b/data/init/images/loop_eintro_198.png
Binary files differ
diff --git a/data/init/images/loop_eintro_199.png b/data/init/images/loop_eintro_199.png
new file mode 100644
index 000000000..5b2d7070d
--- /dev/null
+++ b/data/init/images/loop_eintro_199.png
Binary files differ
diff --git a/data/init/images/loop_eintro_200.png b/data/init/images/loop_eintro_200.png
new file mode 100644
index 000000000..51a2fafad
--- /dev/null
+++ b/data/init/images/loop_eintro_200.png
Binary files differ
diff --git a/data/init/images/loop_eintro_201.png b/data/init/images/loop_eintro_201.png
new file mode 100644
index 000000000..896d24207
--- /dev/null
+++ b/data/init/images/loop_eintro_201.png
Binary files differ
diff --git a/data/init/images/loop_eintro_202.png b/data/init/images/loop_eintro_202.png
new file mode 100644
index 000000000..10c74e268
--- /dev/null
+++ b/data/init/images/loop_eintro_202.png
Binary files differ
diff --git a/data/init/images/loop_eintro_203.png b/data/init/images/loop_eintro_203.png
new file mode 100644
index 000000000..d296545e4
--- /dev/null
+++ b/data/init/images/loop_eintro_203.png
Binary files differ
diff --git a/data/init/images/loop_eintro_204.png b/data/init/images/loop_eintro_204.png
new file mode 100644
index 000000000..802419500
--- /dev/null
+++ b/data/init/images/loop_eintro_204.png
Binary files differ
diff --git a/data/init/images/loop_eintro_205.png b/data/init/images/loop_eintro_205.png
new file mode 100644
index 000000000..65463f3d5
--- /dev/null
+++ b/data/init/images/loop_eintro_205.png
Binary files differ
diff --git a/data/init/images/loop_eintro_206.png b/data/init/images/loop_eintro_206.png
new file mode 100644
index 000000000..f88a199f9
--- /dev/null
+++ b/data/init/images/loop_eintro_206.png
Binary files differ
diff --git a/data/init/images/loop_eintro_207.png b/data/init/images/loop_eintro_207.png
new file mode 100644
index 000000000..aa6a06e18
--- /dev/null
+++ b/data/init/images/loop_eintro_207.png
Binary files differ
diff --git a/data/init/images/loop_eintro_208.png b/data/init/images/loop_eintro_208.png
new file mode 100644
index 000000000..3a41ad8de
--- /dev/null
+++ b/data/init/images/loop_eintro_208.png
Binary files differ
diff --git a/data/init/images/loop_eintro_209.png b/data/init/images/loop_eintro_209.png
new file mode 100644
index 000000000..05618a4bb
--- /dev/null
+++ b/data/init/images/loop_eintro_209.png
Binary files differ
diff --git a/data/init/images/loop_eintro_210.png b/data/init/images/loop_eintro_210.png
new file mode 100644
index 000000000..7cc3fb268
--- /dev/null
+++ b/data/init/images/loop_eintro_210.png
Binary files differ
diff --git a/data/init/images/loop_eintro_211.png b/data/init/images/loop_eintro_211.png
new file mode 100644
index 000000000..42059dd3e
--- /dev/null
+++ b/data/init/images/loop_eintro_211.png
Binary files differ
diff --git a/data/init/images/loop_eintro_212.png b/data/init/images/loop_eintro_212.png
new file mode 100644
index 000000000..46e8b58b4
--- /dev/null
+++ b/data/init/images/loop_eintro_212.png
Binary files differ
diff --git a/data/init/images/loop_eintro_213.png b/data/init/images/loop_eintro_213.png
new file mode 100644
index 000000000..02130b37a
--- /dev/null
+++ b/data/init/images/loop_eintro_213.png
Binary files differ
diff --git a/data/init/images/loop_eintro_214.png b/data/init/images/loop_eintro_214.png
new file mode 100644
index 000000000..35900fb5a
--- /dev/null
+++ b/data/init/images/loop_eintro_214.png
Binary files differ
diff --git a/data/init/images/loop_eintro_215.png b/data/init/images/loop_eintro_215.png
new file mode 100644
index 000000000..72b7f8b74
--- /dev/null
+++ b/data/init/images/loop_eintro_215.png
Binary files differ
diff --git a/data/init/images/loop_eintro_216.png b/data/init/images/loop_eintro_216.png
new file mode 100644
index 000000000..c807df50f
--- /dev/null
+++ b/data/init/images/loop_eintro_216.png
Binary files differ
diff --git a/data/init/images/loop_eintro_217.png b/data/init/images/loop_eintro_217.png
new file mode 100644
index 000000000..391d7edef
--- /dev/null
+++ b/data/init/images/loop_eintro_217.png
Binary files differ
diff --git a/data/init/images/loop_eintro_218.png b/data/init/images/loop_eintro_218.png
new file mode 100644
index 000000000..7d15b3eea
--- /dev/null
+++ b/data/init/images/loop_eintro_218.png
Binary files differ
diff --git a/data/init/images/loop_eintro_219.png b/data/init/images/loop_eintro_219.png
new file mode 100644
index 000000000..be8ffe2e1
--- /dev/null
+++ b/data/init/images/loop_eintro_219.png
Binary files differ
diff --git a/data/init/images/loop_eintro_220.png b/data/init/images/loop_eintro_220.png
new file mode 100644
index 000000000..0699ed1b0
--- /dev/null
+++ b/data/init/images/loop_eintro_220.png
Binary files differ
diff --git a/data/init/images/loop_eintro_221.png b/data/init/images/loop_eintro_221.png
new file mode 100644
index 000000000..673f459f4
--- /dev/null
+++ b/data/init/images/loop_eintro_221.png
Binary files differ
diff --git a/data/init/images/loop_eintro_222.png b/data/init/images/loop_eintro_222.png
new file mode 100644
index 000000000..c25c35606
--- /dev/null
+++ b/data/init/images/loop_eintro_222.png
Binary files differ
diff --git a/data/init/images/loop_eintro_223.png b/data/init/images/loop_eintro_223.png
new file mode 100644
index 000000000..855c785fd
--- /dev/null
+++ b/data/init/images/loop_eintro_223.png
Binary files differ
diff --git a/data/init/images/loop_eintro_224.png b/data/init/images/loop_eintro_224.png
new file mode 100644
index 000000000..4d9aa84c6
--- /dev/null
+++ b/data/init/images/loop_eintro_224.png
Binary files differ
diff --git a/data/init/images/loop_eintro_225.png b/data/init/images/loop_eintro_225.png
new file mode 100644
index 000000000..7bbeb96d1
--- /dev/null
+++ b/data/init/images/loop_eintro_225.png
Binary files differ
diff --git a/data/init/images/loop_eintro_226.png b/data/init/images/loop_eintro_226.png
new file mode 100644
index 000000000..a981db495
--- /dev/null
+++ b/data/init/images/loop_eintro_226.png
Binary files differ
diff --git a/data/init/images/loop_eintro_227.png b/data/init/images/loop_eintro_227.png
new file mode 100644
index 000000000..f61c87387
--- /dev/null
+++ b/data/init/images/loop_eintro_227.png
Binary files differ
diff --git a/data/init/images/loop_eintro_228.png b/data/init/images/loop_eintro_228.png
new file mode 100644
index 000000000..2798f0648
--- /dev/null
+++ b/data/init/images/loop_eintro_228.png
Binary files differ
diff --git a/data/init/images/loop_eintro_229.png b/data/init/images/loop_eintro_229.png
new file mode 100644
index 000000000..2dd439b92
--- /dev/null
+++ b/data/init/images/loop_eintro_229.png
Binary files differ
diff --git a/data/init/images/loop_eintro_230.png b/data/init/images/loop_eintro_230.png
new file mode 100644
index 000000000..f239229f4
--- /dev/null
+++ b/data/init/images/loop_eintro_230.png
Binary files differ
diff --git a/data/init/images/loop_eintro_231.png b/data/init/images/loop_eintro_231.png
new file mode 100644
index 000000000..a62e88ff1
--- /dev/null
+++ b/data/init/images/loop_eintro_231.png
Binary files differ
diff --git a/data/init/images/loop_eintro_232.png b/data/init/images/loop_eintro_232.png
new file mode 100644
index 000000000..5bb20de01
--- /dev/null
+++ b/data/init/images/loop_eintro_232.png
Binary files differ
diff --git a/data/init/images/loop_eintro_233.png b/data/init/images/loop_eintro_233.png
new file mode 100644
index 000000000..ca2813d3a
--- /dev/null
+++ b/data/init/images/loop_eintro_233.png
Binary files differ
diff --git a/data/init/images/loop_eintro_234.png b/data/init/images/loop_eintro_234.png
new file mode 100644
index 000000000..a32b491f9
--- /dev/null
+++ b/data/init/images/loop_eintro_234.png
Binary files differ
diff --git a/data/init/images/loop_eintro_235.png b/data/init/images/loop_eintro_235.png
new file mode 100644
index 000000000..dddefa8d7
--- /dev/null
+++ b/data/init/images/loop_eintro_235.png
Binary files differ
diff --git a/data/init/images/loop_eintro_236.png b/data/init/images/loop_eintro_236.png
new file mode 100644
index 000000000..fc1344c58
--- /dev/null
+++ b/data/init/images/loop_eintro_236.png
Binary files differ
diff --git a/data/init/images/loop_eintro_237.png b/data/init/images/loop_eintro_237.png
new file mode 100644
index 000000000..1213c972e
--- /dev/null
+++ b/data/init/images/loop_eintro_237.png
Binary files differ
diff --git a/data/init/images/loop_eintro_238.png b/data/init/images/loop_eintro_238.png
new file mode 100644
index 000000000..49151eeea
--- /dev/null
+++ b/data/init/images/loop_eintro_238.png
Binary files differ
diff --git a/data/init/images/loop_eintro_239.png b/data/init/images/loop_eintro_239.png
new file mode 100644
index 000000000..d269a6d64
--- /dev/null
+++ b/data/init/images/loop_eintro_239.png
Binary files differ
diff --git a/data/init/images/loop_eintro_240.png b/data/init/images/loop_eintro_240.png
new file mode 100644
index 000000000..eb1a79990
--- /dev/null
+++ b/data/init/images/loop_eintro_240.png
Binary files differ
diff --git a/data/init/images/reflection_overlay.png b/data/init/images/reflection_overlay.png
new file mode 100644
index 000000000..f33c4e166
--- /dev/null
+++ b/data/init/images/reflection_overlay.png
Binary files differ
diff --git a/data/init/images/shadow.png b/data/init/images/shadow.png
new file mode 100644
index 000000000..93410708e
--- /dev/null
+++ b/data/init/images/shadow.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_121.png b/data/init/images/sm_loop_eintro_121.png
new file mode 100644
index 000000000..15544c7d5
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_121.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_122.png b/data/init/images/sm_loop_eintro_122.png
new file mode 100644
index 000000000..c3e27a993
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_122.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_123.png b/data/init/images/sm_loop_eintro_123.png
new file mode 100644
index 000000000..ff6d03c00
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_123.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_124.png b/data/init/images/sm_loop_eintro_124.png
new file mode 100644
index 000000000..7f77919c0
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_124.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_125.png b/data/init/images/sm_loop_eintro_125.png
new file mode 100644
index 000000000..0e282e98a
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_125.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_126.png b/data/init/images/sm_loop_eintro_126.png
new file mode 100644
index 000000000..70ecdd037
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_126.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_127.png b/data/init/images/sm_loop_eintro_127.png
new file mode 100644
index 000000000..c1975dedc
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_127.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_128.png b/data/init/images/sm_loop_eintro_128.png
new file mode 100644
index 000000000..3523e4e28
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_128.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_129.png b/data/init/images/sm_loop_eintro_129.png
new file mode 100644
index 000000000..e57a860a5
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_129.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_130.png b/data/init/images/sm_loop_eintro_130.png
new file mode 100644
index 000000000..2f86fb33d
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_130.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_131.png b/data/init/images/sm_loop_eintro_131.png
new file mode 100644
index 000000000..2f53cdd3c
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_131.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_132.png b/data/init/images/sm_loop_eintro_132.png
new file mode 100644
index 000000000..cb07167ee
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_132.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_133.png b/data/init/images/sm_loop_eintro_133.png
new file mode 100644
index 000000000..a851160eb
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_133.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_134.png b/data/init/images/sm_loop_eintro_134.png
new file mode 100644
index 000000000..920aecab7
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_134.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_135.png b/data/init/images/sm_loop_eintro_135.png
new file mode 100644
index 000000000..121acea7c
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_135.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_136.png b/data/init/images/sm_loop_eintro_136.png
new file mode 100644
index 000000000..822cbd5f5
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_136.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_137.png b/data/init/images/sm_loop_eintro_137.png
new file mode 100644
index 000000000..eaccc99f0
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_137.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_138.png b/data/init/images/sm_loop_eintro_138.png
new file mode 100644
index 000000000..7d5dd050b
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_138.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_139.png b/data/init/images/sm_loop_eintro_139.png
new file mode 100644
index 000000000..38a994642
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_139.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_140.png b/data/init/images/sm_loop_eintro_140.png
new file mode 100644
index 000000000..048a070f0
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_140.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_141.png b/data/init/images/sm_loop_eintro_141.png
new file mode 100644
index 000000000..0263007bc
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_141.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_142.png b/data/init/images/sm_loop_eintro_142.png
new file mode 100644
index 000000000..856575aad
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_142.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_143.png b/data/init/images/sm_loop_eintro_143.png
new file mode 100644
index 000000000..8bac33afb
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_143.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_144.png b/data/init/images/sm_loop_eintro_144.png
new file mode 100644
index 000000000..6c2c90591
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_144.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_145.png b/data/init/images/sm_loop_eintro_145.png
new file mode 100644
index 000000000..7ceccc3ba
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_145.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_146.png b/data/init/images/sm_loop_eintro_146.png
new file mode 100644
index 000000000..f0bae7fa5
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_146.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_147.png b/data/init/images/sm_loop_eintro_147.png
new file mode 100644
index 000000000..6ae1565f7
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_147.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_148.png b/data/init/images/sm_loop_eintro_148.png
new file mode 100644
index 000000000..78917e17e
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_148.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_149.png b/data/init/images/sm_loop_eintro_149.png
new file mode 100644
index 000000000..aee53bd68
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_149.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_150.png b/data/init/images/sm_loop_eintro_150.png
new file mode 100644
index 000000000..17fadae41
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_150.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_151.png b/data/init/images/sm_loop_eintro_151.png
new file mode 100644
index 000000000..e11a2b9f0
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_151.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_152.png b/data/init/images/sm_loop_eintro_152.png
new file mode 100644
index 000000000..5781dc5aa
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_152.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_153.png b/data/init/images/sm_loop_eintro_153.png
new file mode 100644
index 000000000..cb5428da4
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_153.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_154.png b/data/init/images/sm_loop_eintro_154.png
new file mode 100644
index 000000000..3025d678d
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_154.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_155.png b/data/init/images/sm_loop_eintro_155.png
new file mode 100644
index 000000000..cb2152de6
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_155.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_156.png b/data/init/images/sm_loop_eintro_156.png
new file mode 100644
index 000000000..8043222f8
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_156.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_157.png b/data/init/images/sm_loop_eintro_157.png
new file mode 100644
index 000000000..772519352
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_157.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_158.png b/data/init/images/sm_loop_eintro_158.png
new file mode 100644
index 000000000..f7c107133
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_158.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_159.png b/data/init/images/sm_loop_eintro_159.png
new file mode 100644
index 000000000..f333cc4c2
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_159.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_160.png b/data/init/images/sm_loop_eintro_160.png
new file mode 100644
index 000000000..7d49cf011
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_160.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_161.png b/data/init/images/sm_loop_eintro_161.png
new file mode 100644
index 000000000..fba730889
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_161.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_162.png b/data/init/images/sm_loop_eintro_162.png
new file mode 100644
index 000000000..adb401474
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_162.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_163.png b/data/init/images/sm_loop_eintro_163.png
new file mode 100644
index 000000000..6bd1da268
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_163.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_164.png b/data/init/images/sm_loop_eintro_164.png
new file mode 100644
index 000000000..e3cf6c32e
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_164.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_165.png b/data/init/images/sm_loop_eintro_165.png
new file mode 100644
index 000000000..c66fece48
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_165.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_166.png b/data/init/images/sm_loop_eintro_166.png
new file mode 100644
index 000000000..aeba2aa63
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_166.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_167.png b/data/init/images/sm_loop_eintro_167.png
new file mode 100644
index 000000000..e5fe5d37a
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_167.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_168.png b/data/init/images/sm_loop_eintro_168.png
new file mode 100644
index 000000000..3854381b6
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_168.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_169.png b/data/init/images/sm_loop_eintro_169.png
new file mode 100644
index 000000000..7659ef50a
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_169.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_170.png b/data/init/images/sm_loop_eintro_170.png
new file mode 100644
index 000000000..4b7b30cbc
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_170.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_171.png b/data/init/images/sm_loop_eintro_171.png
new file mode 100644
index 000000000..c62678c0c
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_171.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_172.png b/data/init/images/sm_loop_eintro_172.png
new file mode 100644
index 000000000..72b3c6b2f
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_172.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_173.png b/data/init/images/sm_loop_eintro_173.png
new file mode 100644
index 000000000..5fc727620
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_173.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_174.png b/data/init/images/sm_loop_eintro_174.png
new file mode 100644
index 000000000..b36fb958b
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_174.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_175.png b/data/init/images/sm_loop_eintro_175.png
new file mode 100644
index 000000000..b67fbcace
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_175.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_176.png b/data/init/images/sm_loop_eintro_176.png
new file mode 100644
index 000000000..07065475e
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_176.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_177.png b/data/init/images/sm_loop_eintro_177.png
new file mode 100644
index 000000000..df88227ca
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_177.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_178.png b/data/init/images/sm_loop_eintro_178.png
new file mode 100644
index 000000000..9812fdc11
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_178.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_179.png b/data/init/images/sm_loop_eintro_179.png
new file mode 100644
index 000000000..8872bf078
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_179.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_180.png b/data/init/images/sm_loop_eintro_180.png
new file mode 100644
index 000000000..862b5b071
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_180.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_181.png b/data/init/images/sm_loop_eintro_181.png
new file mode 100644
index 000000000..a78413c12
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_181.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_182.png b/data/init/images/sm_loop_eintro_182.png
new file mode 100644
index 000000000..d2455088a
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_182.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_183.png b/data/init/images/sm_loop_eintro_183.png
new file mode 100644
index 000000000..0d0133bd2
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_183.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_184.png b/data/init/images/sm_loop_eintro_184.png
new file mode 100644
index 000000000..3b0069f96
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_184.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_185.png b/data/init/images/sm_loop_eintro_185.png
new file mode 100644
index 000000000..7a95db306
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_185.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_186.png b/data/init/images/sm_loop_eintro_186.png
new file mode 100644
index 000000000..6dd713d33
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_186.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_187.png b/data/init/images/sm_loop_eintro_187.png
new file mode 100644
index 000000000..07fd7608c
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_187.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_188.png b/data/init/images/sm_loop_eintro_188.png
new file mode 100644
index 000000000..9a98856c5
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_188.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_189.png b/data/init/images/sm_loop_eintro_189.png
new file mode 100644
index 000000000..79ac7c2f0
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_189.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_190.png b/data/init/images/sm_loop_eintro_190.png
new file mode 100644
index 000000000..901a52498
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_190.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_191.png b/data/init/images/sm_loop_eintro_191.png
new file mode 100644
index 000000000..cdf5fe441
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_191.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_192.png b/data/init/images/sm_loop_eintro_192.png
new file mode 100644
index 000000000..6920aa8ad
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_192.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_193.png b/data/init/images/sm_loop_eintro_193.png
new file mode 100644
index 000000000..de16e3f2d
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_193.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_194.png b/data/init/images/sm_loop_eintro_194.png
new file mode 100644
index 000000000..d845f33d6
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_194.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_195.png b/data/init/images/sm_loop_eintro_195.png
new file mode 100644
index 000000000..ebcde7ba0
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_195.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_196.png b/data/init/images/sm_loop_eintro_196.png
new file mode 100644
index 000000000..0e5386e3e
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_196.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_197.png b/data/init/images/sm_loop_eintro_197.png
new file mode 100644
index 000000000..6f9abf622
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_197.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_198.png b/data/init/images/sm_loop_eintro_198.png
new file mode 100644
index 000000000..f28f21e5b
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_198.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_199.png b/data/init/images/sm_loop_eintro_199.png
new file mode 100644
index 000000000..b0cc6f07a
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_199.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_200.png b/data/init/images/sm_loop_eintro_200.png
new file mode 100644
index 000000000..b18f7d78e
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_200.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_201.png b/data/init/images/sm_loop_eintro_201.png
new file mode 100644
index 000000000..ae78e71c9
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_201.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_202.png b/data/init/images/sm_loop_eintro_202.png
new file mode 100644
index 000000000..7c5b8f588
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_202.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_203.png b/data/init/images/sm_loop_eintro_203.png
new file mode 100644
index 000000000..b2695166c
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_203.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_204.png b/data/init/images/sm_loop_eintro_204.png
new file mode 100644
index 000000000..5c2b04b79
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_204.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_205.png b/data/init/images/sm_loop_eintro_205.png
new file mode 100644
index 000000000..aebb1ac3e
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_205.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_206.png b/data/init/images/sm_loop_eintro_206.png
new file mode 100644
index 000000000..36d05d02c
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_206.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_207.png b/data/init/images/sm_loop_eintro_207.png
new file mode 100644
index 000000000..4e3dc5660
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_207.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_208.png b/data/init/images/sm_loop_eintro_208.png
new file mode 100644
index 000000000..dfd7a2bc0
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_208.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_209.png b/data/init/images/sm_loop_eintro_209.png
new file mode 100644
index 000000000..e054c2d18
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_209.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_210.png b/data/init/images/sm_loop_eintro_210.png
new file mode 100644
index 000000000..cc9741072
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_210.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_211.png b/data/init/images/sm_loop_eintro_211.png
new file mode 100644
index 000000000..5843f17cb
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_211.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_212.png b/data/init/images/sm_loop_eintro_212.png
new file mode 100644
index 000000000..0ade9c421
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_212.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_213.png b/data/init/images/sm_loop_eintro_213.png
new file mode 100644
index 000000000..024d4e6c2
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_213.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_214.png b/data/init/images/sm_loop_eintro_214.png
new file mode 100644
index 000000000..98dd420d1
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_214.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_215.png b/data/init/images/sm_loop_eintro_215.png
new file mode 100644
index 000000000..503293e66
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_215.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_216.png b/data/init/images/sm_loop_eintro_216.png
new file mode 100644
index 000000000..b84daaff4
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_216.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_217.png b/data/init/images/sm_loop_eintro_217.png
new file mode 100644
index 000000000..890fcb81c
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_217.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_218.png b/data/init/images/sm_loop_eintro_218.png
new file mode 100644
index 000000000..4ce3af10c
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_218.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_219.png b/data/init/images/sm_loop_eintro_219.png
new file mode 100644
index 000000000..54bb1f769
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_219.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_220.png b/data/init/images/sm_loop_eintro_220.png
new file mode 100644
index 000000000..2b64f3ec5
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_220.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_221.png b/data/init/images/sm_loop_eintro_221.png
new file mode 100644
index 000000000..3ed05d278
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_221.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_222.png b/data/init/images/sm_loop_eintro_222.png
new file mode 100644
index 000000000..44acf65a1
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_222.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_223.png b/data/init/images/sm_loop_eintro_223.png
new file mode 100644
index 000000000..a91ea1bd0
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_223.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_224.png b/data/init/images/sm_loop_eintro_224.png
new file mode 100644
index 000000000..48e77dfec
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_224.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_225.png b/data/init/images/sm_loop_eintro_225.png
new file mode 100644
index 000000000..00eef3468
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_225.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_226.png b/data/init/images/sm_loop_eintro_226.png
new file mode 100644
index 000000000..764c7aa28
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_226.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_227.png b/data/init/images/sm_loop_eintro_227.png
new file mode 100644
index 000000000..ec132b8b6
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_227.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_228.png b/data/init/images/sm_loop_eintro_228.png
new file mode 100644
index 000000000..fe6256310
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_228.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_229.png b/data/init/images/sm_loop_eintro_229.png
new file mode 100644
index 000000000..ca300bae9
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_229.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_230.png b/data/init/images/sm_loop_eintro_230.png
new file mode 100644
index 000000000..5d286c61e
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_230.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_231.png b/data/init/images/sm_loop_eintro_231.png
new file mode 100644
index 000000000..8f0432013
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_231.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_232.png b/data/init/images/sm_loop_eintro_232.png
new file mode 100644
index 000000000..9348381b8
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_232.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_233.png b/data/init/images/sm_loop_eintro_233.png
new file mode 100644
index 000000000..261414326
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_233.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_234.png b/data/init/images/sm_loop_eintro_234.png
new file mode 100644
index 000000000..bb44a4160
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_234.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_235.png b/data/init/images/sm_loop_eintro_235.png
new file mode 100644
index 000000000..4eb615a6d
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_235.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_236.png b/data/init/images/sm_loop_eintro_236.png
new file mode 100644
index 000000000..e7a542458
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_236.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_237.png b/data/init/images/sm_loop_eintro_237.png
new file mode 100644
index 000000000..c989ae0ae
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_237.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_238.png b/data/init/images/sm_loop_eintro_238.png
new file mode 100644
index 000000000..ff85b38b2
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_238.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_239.png b/data/init/images/sm_loop_eintro_239.png
new file mode 100644
index 000000000..38f8ec29a
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_239.png
Binary files differ
diff --git a/data/init/images/sm_loop_eintro_240.png b/data/init/images/sm_loop_eintro_240.png
new file mode 100644
index 000000000..7b911dd4d
--- /dev/null
+++ b/data/init/images/sm_loop_eintro_240.png
Binary files differ
diff --git a/data/init/images/sm_reflection_overlay.png b/data/init/images/sm_reflection_overlay.png
new file mode 100644
index 000000000..3eeff343d
--- /dev/null
+++ b/data/init/images/sm_reflection_overlay.png
Binary files differ
diff --git a/data/init/images/sm_shadow.png b/data/init/images/sm_shadow.png
new file mode 100644
index 000000000..36952c61d
--- /dev/null
+++ b/data/init/images/sm_shadow.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_001.png b/data/init/images/sm_start_eintro_001.png
new file mode 100644
index 000000000..0d4c96bf9
--- /dev/null
+++ b/data/init/images/sm_start_eintro_001.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_002.png b/data/init/images/sm_start_eintro_002.png
new file mode 100644
index 000000000..c53dd88dc
--- /dev/null
+++ b/data/init/images/sm_start_eintro_002.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_003.png b/data/init/images/sm_start_eintro_003.png
new file mode 100644
index 000000000..0624779b8
--- /dev/null
+++ b/data/init/images/sm_start_eintro_003.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_004.png b/data/init/images/sm_start_eintro_004.png
new file mode 100644
index 000000000..5af995d18
--- /dev/null
+++ b/data/init/images/sm_start_eintro_004.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_005.png b/data/init/images/sm_start_eintro_005.png
new file mode 100644
index 000000000..c798f9d61
--- /dev/null
+++ b/data/init/images/sm_start_eintro_005.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_006.png b/data/init/images/sm_start_eintro_006.png
new file mode 100644
index 000000000..ca6b95ac5
--- /dev/null
+++ b/data/init/images/sm_start_eintro_006.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_007.png b/data/init/images/sm_start_eintro_007.png
new file mode 100644
index 000000000..4c524eb0d
--- /dev/null
+++ b/data/init/images/sm_start_eintro_007.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_008.png b/data/init/images/sm_start_eintro_008.png
new file mode 100644
index 000000000..20797355f
--- /dev/null
+++ b/data/init/images/sm_start_eintro_008.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_009.png b/data/init/images/sm_start_eintro_009.png
new file mode 100644
index 000000000..c51955f4f
--- /dev/null
+++ b/data/init/images/sm_start_eintro_009.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_010.png b/data/init/images/sm_start_eintro_010.png
new file mode 100644
index 000000000..1d088a51b
--- /dev/null
+++ b/data/init/images/sm_start_eintro_010.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_011.png b/data/init/images/sm_start_eintro_011.png
new file mode 100644
index 000000000..4a3d8ac78
--- /dev/null
+++ b/data/init/images/sm_start_eintro_011.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_012.png b/data/init/images/sm_start_eintro_012.png
new file mode 100644
index 000000000..9a970fd42
--- /dev/null
+++ b/data/init/images/sm_start_eintro_012.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_013.png b/data/init/images/sm_start_eintro_013.png
new file mode 100644
index 000000000..2f1add4c5
--- /dev/null
+++ b/data/init/images/sm_start_eintro_013.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_014.png b/data/init/images/sm_start_eintro_014.png
new file mode 100644
index 000000000..02b033b9a
--- /dev/null
+++ b/data/init/images/sm_start_eintro_014.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_015.png b/data/init/images/sm_start_eintro_015.png
new file mode 100644
index 000000000..22bca6d52
--- /dev/null
+++ b/data/init/images/sm_start_eintro_015.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_016.png b/data/init/images/sm_start_eintro_016.png
new file mode 100644
index 000000000..1957fa7ec
--- /dev/null
+++ b/data/init/images/sm_start_eintro_016.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_017.png b/data/init/images/sm_start_eintro_017.png
new file mode 100644
index 000000000..ac4a482a1
--- /dev/null
+++ b/data/init/images/sm_start_eintro_017.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_018.png b/data/init/images/sm_start_eintro_018.png
new file mode 100644
index 000000000..d72cad7ec
--- /dev/null
+++ b/data/init/images/sm_start_eintro_018.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_019.png b/data/init/images/sm_start_eintro_019.png
new file mode 100644
index 000000000..2a0de8bd8
--- /dev/null
+++ b/data/init/images/sm_start_eintro_019.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_020.png b/data/init/images/sm_start_eintro_020.png
new file mode 100644
index 000000000..9a545aae1
--- /dev/null
+++ b/data/init/images/sm_start_eintro_020.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_021.png b/data/init/images/sm_start_eintro_021.png
new file mode 100644
index 000000000..340955e79
--- /dev/null
+++ b/data/init/images/sm_start_eintro_021.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_022.png b/data/init/images/sm_start_eintro_022.png
new file mode 100644
index 000000000..e355817ba
--- /dev/null
+++ b/data/init/images/sm_start_eintro_022.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_023.png b/data/init/images/sm_start_eintro_023.png
new file mode 100644
index 000000000..39bb1cc6b
--- /dev/null
+++ b/data/init/images/sm_start_eintro_023.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_024.png b/data/init/images/sm_start_eintro_024.png
new file mode 100644
index 000000000..66100aab6
--- /dev/null
+++ b/data/init/images/sm_start_eintro_024.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_025.png b/data/init/images/sm_start_eintro_025.png
new file mode 100644
index 000000000..72795b37a
--- /dev/null
+++ b/data/init/images/sm_start_eintro_025.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_026.png b/data/init/images/sm_start_eintro_026.png
new file mode 100644
index 000000000..513431c2b
--- /dev/null
+++ b/data/init/images/sm_start_eintro_026.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_027.png b/data/init/images/sm_start_eintro_027.png
new file mode 100644
index 000000000..b6c097300
--- /dev/null
+++ b/data/init/images/sm_start_eintro_027.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_028.png b/data/init/images/sm_start_eintro_028.png
new file mode 100644
index 000000000..fb3725789
--- /dev/null
+++ b/data/init/images/sm_start_eintro_028.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_029.png b/data/init/images/sm_start_eintro_029.png
new file mode 100644
index 000000000..2d9939873
--- /dev/null
+++ b/data/init/images/sm_start_eintro_029.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_030.png b/data/init/images/sm_start_eintro_030.png
new file mode 100644
index 000000000..3ac86459d
--- /dev/null
+++ b/data/init/images/sm_start_eintro_030.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_031.png b/data/init/images/sm_start_eintro_031.png
new file mode 100644
index 000000000..868c182e9
--- /dev/null
+++ b/data/init/images/sm_start_eintro_031.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_032.png b/data/init/images/sm_start_eintro_032.png
new file mode 100644
index 000000000..84caa4131
--- /dev/null
+++ b/data/init/images/sm_start_eintro_032.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_033.png b/data/init/images/sm_start_eintro_033.png
new file mode 100644
index 000000000..f9b9eb86a
--- /dev/null
+++ b/data/init/images/sm_start_eintro_033.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_034.png b/data/init/images/sm_start_eintro_034.png
new file mode 100644
index 000000000..4a4cf08c3
--- /dev/null
+++ b/data/init/images/sm_start_eintro_034.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_035.png b/data/init/images/sm_start_eintro_035.png
new file mode 100644
index 000000000..afe954622
--- /dev/null
+++ b/data/init/images/sm_start_eintro_035.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_036.png b/data/init/images/sm_start_eintro_036.png
new file mode 100644
index 000000000..9db7eecd7
--- /dev/null
+++ b/data/init/images/sm_start_eintro_036.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_037.png b/data/init/images/sm_start_eintro_037.png
new file mode 100644
index 000000000..82c32154b
--- /dev/null
+++ b/data/init/images/sm_start_eintro_037.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_038.png b/data/init/images/sm_start_eintro_038.png
new file mode 100644
index 000000000..2282430ea
--- /dev/null
+++ b/data/init/images/sm_start_eintro_038.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_039.png b/data/init/images/sm_start_eintro_039.png
new file mode 100644
index 000000000..aa4331d43
--- /dev/null
+++ b/data/init/images/sm_start_eintro_039.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_040.png b/data/init/images/sm_start_eintro_040.png
new file mode 100644
index 000000000..a1b5582ac
--- /dev/null
+++ b/data/init/images/sm_start_eintro_040.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_041.png b/data/init/images/sm_start_eintro_041.png
new file mode 100644
index 000000000..ed92bbe33
--- /dev/null
+++ b/data/init/images/sm_start_eintro_041.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_042.png b/data/init/images/sm_start_eintro_042.png
new file mode 100644
index 000000000..a06c4e5a0
--- /dev/null
+++ b/data/init/images/sm_start_eintro_042.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_043.png b/data/init/images/sm_start_eintro_043.png
new file mode 100644
index 000000000..04942a05c
--- /dev/null
+++ b/data/init/images/sm_start_eintro_043.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_044.png b/data/init/images/sm_start_eintro_044.png
new file mode 100644
index 000000000..f8f061560
--- /dev/null
+++ b/data/init/images/sm_start_eintro_044.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_045.png b/data/init/images/sm_start_eintro_045.png
new file mode 100644
index 000000000..4b4140a61
--- /dev/null
+++ b/data/init/images/sm_start_eintro_045.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_046.png b/data/init/images/sm_start_eintro_046.png
new file mode 100644
index 000000000..36b2cd478
--- /dev/null
+++ b/data/init/images/sm_start_eintro_046.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_047.png b/data/init/images/sm_start_eintro_047.png
new file mode 100644
index 000000000..1f200408e
--- /dev/null
+++ b/data/init/images/sm_start_eintro_047.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_048.png b/data/init/images/sm_start_eintro_048.png
new file mode 100644
index 000000000..a8a759164
--- /dev/null
+++ b/data/init/images/sm_start_eintro_048.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_049.png b/data/init/images/sm_start_eintro_049.png
new file mode 100644
index 000000000..82a2bdb21
--- /dev/null
+++ b/data/init/images/sm_start_eintro_049.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_050.png b/data/init/images/sm_start_eintro_050.png
new file mode 100644
index 000000000..6a0800fdb
--- /dev/null
+++ b/data/init/images/sm_start_eintro_050.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_051.png b/data/init/images/sm_start_eintro_051.png
new file mode 100644
index 000000000..0827379a5
--- /dev/null
+++ b/data/init/images/sm_start_eintro_051.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_052.png b/data/init/images/sm_start_eintro_052.png
new file mode 100644
index 000000000..46ec14aee
--- /dev/null
+++ b/data/init/images/sm_start_eintro_052.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_053.png b/data/init/images/sm_start_eintro_053.png
new file mode 100644
index 000000000..9bad6dacd
--- /dev/null
+++ b/data/init/images/sm_start_eintro_053.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_054.png b/data/init/images/sm_start_eintro_054.png
new file mode 100644
index 000000000..2b51e798a
--- /dev/null
+++ b/data/init/images/sm_start_eintro_054.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_055.png b/data/init/images/sm_start_eintro_055.png
new file mode 100644
index 000000000..54743407f
--- /dev/null
+++ b/data/init/images/sm_start_eintro_055.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_056.png b/data/init/images/sm_start_eintro_056.png
new file mode 100644
index 000000000..5bc8285e2
--- /dev/null
+++ b/data/init/images/sm_start_eintro_056.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_057.png b/data/init/images/sm_start_eintro_057.png
new file mode 100644
index 000000000..989117629
--- /dev/null
+++ b/data/init/images/sm_start_eintro_057.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_058.png b/data/init/images/sm_start_eintro_058.png
new file mode 100644
index 000000000..cdbb586a5
--- /dev/null
+++ b/data/init/images/sm_start_eintro_058.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_059.png b/data/init/images/sm_start_eintro_059.png
new file mode 100644
index 000000000..3e658aee2
--- /dev/null
+++ b/data/init/images/sm_start_eintro_059.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_060.png b/data/init/images/sm_start_eintro_060.png
new file mode 100644
index 000000000..bf920056e
--- /dev/null
+++ b/data/init/images/sm_start_eintro_060.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_061.png b/data/init/images/sm_start_eintro_061.png
new file mode 100644
index 000000000..263f8295d
--- /dev/null
+++ b/data/init/images/sm_start_eintro_061.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_062.png b/data/init/images/sm_start_eintro_062.png
new file mode 100644
index 000000000..e0dba7186
--- /dev/null
+++ b/data/init/images/sm_start_eintro_062.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_063.png b/data/init/images/sm_start_eintro_063.png
new file mode 100644
index 000000000..ca6381714
--- /dev/null
+++ b/data/init/images/sm_start_eintro_063.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_064.png b/data/init/images/sm_start_eintro_064.png
new file mode 100644
index 000000000..c513d7706
--- /dev/null
+++ b/data/init/images/sm_start_eintro_064.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_065.png b/data/init/images/sm_start_eintro_065.png
new file mode 100644
index 000000000..92d262105
--- /dev/null
+++ b/data/init/images/sm_start_eintro_065.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_066.png b/data/init/images/sm_start_eintro_066.png
new file mode 100644
index 000000000..1a655b74e
--- /dev/null
+++ b/data/init/images/sm_start_eintro_066.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_067.png b/data/init/images/sm_start_eintro_067.png
new file mode 100644
index 000000000..b2f70070c
--- /dev/null
+++ b/data/init/images/sm_start_eintro_067.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_068.png b/data/init/images/sm_start_eintro_068.png
new file mode 100644
index 000000000..65d131082
--- /dev/null
+++ b/data/init/images/sm_start_eintro_068.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_069.png b/data/init/images/sm_start_eintro_069.png
new file mode 100644
index 000000000..25a0ee6ea
--- /dev/null
+++ b/data/init/images/sm_start_eintro_069.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_070.png b/data/init/images/sm_start_eintro_070.png
new file mode 100644
index 000000000..77aac15de
--- /dev/null
+++ b/data/init/images/sm_start_eintro_070.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_071.png b/data/init/images/sm_start_eintro_071.png
new file mode 100644
index 000000000..f3221ccae
--- /dev/null
+++ b/data/init/images/sm_start_eintro_071.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_072.png b/data/init/images/sm_start_eintro_072.png
new file mode 100644
index 000000000..9a8065003
--- /dev/null
+++ b/data/init/images/sm_start_eintro_072.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_073.png b/data/init/images/sm_start_eintro_073.png
new file mode 100644
index 000000000..c12224558
--- /dev/null
+++ b/data/init/images/sm_start_eintro_073.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_074.png b/data/init/images/sm_start_eintro_074.png
new file mode 100644
index 000000000..426938175
--- /dev/null
+++ b/data/init/images/sm_start_eintro_074.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_075.png b/data/init/images/sm_start_eintro_075.png
new file mode 100644
index 000000000..e2b391b05
--- /dev/null
+++ b/data/init/images/sm_start_eintro_075.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_076.png b/data/init/images/sm_start_eintro_076.png
new file mode 100644
index 000000000..47d4c5508
--- /dev/null
+++ b/data/init/images/sm_start_eintro_076.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_077.png b/data/init/images/sm_start_eintro_077.png
new file mode 100644
index 000000000..8d5716b74
--- /dev/null
+++ b/data/init/images/sm_start_eintro_077.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_078.png b/data/init/images/sm_start_eintro_078.png
new file mode 100644
index 000000000..f82aa2055
--- /dev/null
+++ b/data/init/images/sm_start_eintro_078.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_079.png b/data/init/images/sm_start_eintro_079.png
new file mode 100644
index 000000000..bf90c198e
--- /dev/null
+++ b/data/init/images/sm_start_eintro_079.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_080.png b/data/init/images/sm_start_eintro_080.png
new file mode 100644
index 000000000..847fafd61
--- /dev/null
+++ b/data/init/images/sm_start_eintro_080.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_081.png b/data/init/images/sm_start_eintro_081.png
new file mode 100644
index 000000000..9f394ae59
--- /dev/null
+++ b/data/init/images/sm_start_eintro_081.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_082.png b/data/init/images/sm_start_eintro_082.png
new file mode 100644
index 000000000..9febab19a
--- /dev/null
+++ b/data/init/images/sm_start_eintro_082.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_083.png b/data/init/images/sm_start_eintro_083.png
new file mode 100644
index 000000000..f6b9e2a6e
--- /dev/null
+++ b/data/init/images/sm_start_eintro_083.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_084.png b/data/init/images/sm_start_eintro_084.png
new file mode 100644
index 000000000..d17c98f6e
--- /dev/null
+++ b/data/init/images/sm_start_eintro_084.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_085.png b/data/init/images/sm_start_eintro_085.png
new file mode 100644
index 000000000..ff55f17c2
--- /dev/null
+++ b/data/init/images/sm_start_eintro_085.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_086.png b/data/init/images/sm_start_eintro_086.png
new file mode 100644
index 000000000..6b13f959e
--- /dev/null
+++ b/data/init/images/sm_start_eintro_086.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_087.png b/data/init/images/sm_start_eintro_087.png
new file mode 100644
index 000000000..1287fa796
--- /dev/null
+++ b/data/init/images/sm_start_eintro_087.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_088.png b/data/init/images/sm_start_eintro_088.png
new file mode 100644
index 000000000..7d074bb04
--- /dev/null
+++ b/data/init/images/sm_start_eintro_088.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_089.png b/data/init/images/sm_start_eintro_089.png
new file mode 100644
index 000000000..d86a6a872
--- /dev/null
+++ b/data/init/images/sm_start_eintro_089.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_090.png b/data/init/images/sm_start_eintro_090.png
new file mode 100644
index 000000000..da8def550
--- /dev/null
+++ b/data/init/images/sm_start_eintro_090.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_091.png b/data/init/images/sm_start_eintro_091.png
new file mode 100644
index 000000000..0d677f74d
--- /dev/null
+++ b/data/init/images/sm_start_eintro_091.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_092.png b/data/init/images/sm_start_eintro_092.png
new file mode 100644
index 000000000..e78309e5d
--- /dev/null
+++ b/data/init/images/sm_start_eintro_092.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_093.png b/data/init/images/sm_start_eintro_093.png
new file mode 100644
index 000000000..dd726ce7a
--- /dev/null
+++ b/data/init/images/sm_start_eintro_093.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_094.png b/data/init/images/sm_start_eintro_094.png
new file mode 100644
index 000000000..74cbf42a4
--- /dev/null
+++ b/data/init/images/sm_start_eintro_094.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_095.png b/data/init/images/sm_start_eintro_095.png
new file mode 100644
index 000000000..028dec9fc
--- /dev/null
+++ b/data/init/images/sm_start_eintro_095.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_096.png b/data/init/images/sm_start_eintro_096.png
new file mode 100644
index 000000000..9ed5237cf
--- /dev/null
+++ b/data/init/images/sm_start_eintro_096.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_097.png b/data/init/images/sm_start_eintro_097.png
new file mode 100644
index 000000000..c474ef090
--- /dev/null
+++ b/data/init/images/sm_start_eintro_097.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_098.png b/data/init/images/sm_start_eintro_098.png
new file mode 100644
index 000000000..45a94bf01
--- /dev/null
+++ b/data/init/images/sm_start_eintro_098.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_099.png b/data/init/images/sm_start_eintro_099.png
new file mode 100644
index 000000000..598ef1e0d
--- /dev/null
+++ b/data/init/images/sm_start_eintro_099.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_100.png b/data/init/images/sm_start_eintro_100.png
new file mode 100644
index 000000000..954e8ab95
--- /dev/null
+++ b/data/init/images/sm_start_eintro_100.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_101.png b/data/init/images/sm_start_eintro_101.png
new file mode 100644
index 000000000..c47e285f4
--- /dev/null
+++ b/data/init/images/sm_start_eintro_101.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_102.png b/data/init/images/sm_start_eintro_102.png
new file mode 100644
index 000000000..78452c794
--- /dev/null
+++ b/data/init/images/sm_start_eintro_102.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_103.png b/data/init/images/sm_start_eintro_103.png
new file mode 100644
index 000000000..263158b53
--- /dev/null
+++ b/data/init/images/sm_start_eintro_103.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_104.png b/data/init/images/sm_start_eintro_104.png
new file mode 100644
index 000000000..40dcbf9b0
--- /dev/null
+++ b/data/init/images/sm_start_eintro_104.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_105.png b/data/init/images/sm_start_eintro_105.png
new file mode 100644
index 000000000..3ec30a444
--- /dev/null
+++ b/data/init/images/sm_start_eintro_105.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_106.png b/data/init/images/sm_start_eintro_106.png
new file mode 100644
index 000000000..2056be11b
--- /dev/null
+++ b/data/init/images/sm_start_eintro_106.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_107.png b/data/init/images/sm_start_eintro_107.png
new file mode 100644
index 000000000..c74aac6a4
--- /dev/null
+++ b/data/init/images/sm_start_eintro_107.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_108.png b/data/init/images/sm_start_eintro_108.png
new file mode 100644
index 000000000..5141d15a0
--- /dev/null
+++ b/data/init/images/sm_start_eintro_108.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_109.png b/data/init/images/sm_start_eintro_109.png
new file mode 100644
index 000000000..df19ed599
--- /dev/null
+++ b/data/init/images/sm_start_eintro_109.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_110.png b/data/init/images/sm_start_eintro_110.png
new file mode 100644
index 000000000..2fd56e9f1
--- /dev/null
+++ b/data/init/images/sm_start_eintro_110.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_111.png b/data/init/images/sm_start_eintro_111.png
new file mode 100644
index 000000000..2bbc06317
--- /dev/null
+++ b/data/init/images/sm_start_eintro_111.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_112.png b/data/init/images/sm_start_eintro_112.png
new file mode 100644
index 000000000..cd64df273
--- /dev/null
+++ b/data/init/images/sm_start_eintro_112.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_113.png b/data/init/images/sm_start_eintro_113.png
new file mode 100644
index 000000000..a442bbe49
--- /dev/null
+++ b/data/init/images/sm_start_eintro_113.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_114.png b/data/init/images/sm_start_eintro_114.png
new file mode 100644
index 000000000..009b9bcf3
--- /dev/null
+++ b/data/init/images/sm_start_eintro_114.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_115.png b/data/init/images/sm_start_eintro_115.png
new file mode 100644
index 000000000..82bbfee8b
--- /dev/null
+++ b/data/init/images/sm_start_eintro_115.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_116.png b/data/init/images/sm_start_eintro_116.png
new file mode 100644
index 000000000..3fb03ad22
--- /dev/null
+++ b/data/init/images/sm_start_eintro_116.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_117.png b/data/init/images/sm_start_eintro_117.png
new file mode 100644
index 000000000..6f4415ed1
--- /dev/null
+++ b/data/init/images/sm_start_eintro_117.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_118.png b/data/init/images/sm_start_eintro_118.png
new file mode 100644
index 000000000..f0c06563c
--- /dev/null
+++ b/data/init/images/sm_start_eintro_118.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_119.png b/data/init/images/sm_start_eintro_119.png
new file mode 100644
index 000000000..0edd7912e
--- /dev/null
+++ b/data/init/images/sm_start_eintro_119.png
Binary files differ
diff --git a/data/init/images/sm_start_eintro_120.png b/data/init/images/sm_start_eintro_120.png
new file mode 100644
index 000000000..6f59ee68c
--- /dev/null
+++ b/data/init/images/sm_start_eintro_120.png
Binary files differ
diff --git a/data/init/images/start_eintro_001.png b/data/init/images/start_eintro_001.png
new file mode 100644
index 000000000..481af7c76
--- /dev/null
+++ b/data/init/images/start_eintro_001.png
Binary files differ
diff --git a/data/init/images/start_eintro_002.png b/data/init/images/start_eintro_002.png
new file mode 100644
index 000000000..62681cf6f
--- /dev/null
+++ b/data/init/images/start_eintro_002.png
Binary files differ
diff --git a/data/init/images/start_eintro_003.png b/data/init/images/start_eintro_003.png
new file mode 100644
index 000000000..7fe51ec0d
--- /dev/null
+++ b/data/init/images/start_eintro_003.png
Binary files differ
diff --git a/data/init/images/start_eintro_004.png b/data/init/images/start_eintro_004.png
new file mode 100644
index 000000000..400ae6738
--- /dev/null
+++ b/data/init/images/start_eintro_004.png
Binary files differ
diff --git a/data/init/images/start_eintro_005.png b/data/init/images/start_eintro_005.png
new file mode 100644
index 000000000..4d4bf0843
--- /dev/null
+++ b/data/init/images/start_eintro_005.png
Binary files differ
diff --git a/data/init/images/start_eintro_006.png b/data/init/images/start_eintro_006.png
new file mode 100644
index 000000000..5d5dc789f
--- /dev/null
+++ b/data/init/images/start_eintro_006.png
Binary files differ
diff --git a/data/init/images/start_eintro_007.png b/data/init/images/start_eintro_007.png
new file mode 100644
index 000000000..2bc4f2cf9
--- /dev/null
+++ b/data/init/images/start_eintro_007.png
Binary files differ
diff --git a/data/init/images/start_eintro_008.png b/data/init/images/start_eintro_008.png
new file mode 100644
index 000000000..2aa53532e
--- /dev/null
+++ b/data/init/images/start_eintro_008.png
Binary files differ
diff --git a/data/init/images/start_eintro_009.png b/data/init/images/start_eintro_009.png
new file mode 100644
index 000000000..2fd643bfe
--- /dev/null
+++ b/data/init/images/start_eintro_009.png
Binary files differ
diff --git a/data/init/images/start_eintro_010.png b/data/init/images/start_eintro_010.png
new file mode 100644
index 000000000..16c182eda
--- /dev/null
+++ b/data/init/images/start_eintro_010.png
Binary files differ
diff --git a/data/init/images/start_eintro_011.png b/data/init/images/start_eintro_011.png
new file mode 100644
index 000000000..c2b828a51
--- /dev/null
+++ b/data/init/images/start_eintro_011.png
Binary files differ
diff --git a/data/init/images/start_eintro_012.png b/data/init/images/start_eintro_012.png
new file mode 100644
index 000000000..12649b552
--- /dev/null
+++ b/data/init/images/start_eintro_012.png
Binary files differ
diff --git a/data/init/images/start_eintro_013.png b/data/init/images/start_eintro_013.png
new file mode 100644
index 000000000..9902f529e
--- /dev/null
+++ b/data/init/images/start_eintro_013.png
Binary files differ
diff --git a/data/init/images/start_eintro_014.png b/data/init/images/start_eintro_014.png
new file mode 100644
index 000000000..951e86efc
--- /dev/null
+++ b/data/init/images/start_eintro_014.png
Binary files differ
diff --git a/data/init/images/start_eintro_015.png b/data/init/images/start_eintro_015.png
new file mode 100644
index 000000000..8dd53aa54
--- /dev/null
+++ b/data/init/images/start_eintro_015.png
Binary files differ
diff --git a/data/init/images/start_eintro_016.png b/data/init/images/start_eintro_016.png
new file mode 100644
index 000000000..f52741366
--- /dev/null
+++ b/data/init/images/start_eintro_016.png
Binary files differ
diff --git a/data/init/images/start_eintro_017.png b/data/init/images/start_eintro_017.png
new file mode 100644
index 000000000..9bd3ffb18
--- /dev/null
+++ b/data/init/images/start_eintro_017.png
Binary files differ
diff --git a/data/init/images/start_eintro_018.png b/data/init/images/start_eintro_018.png
new file mode 100644
index 000000000..28ecf6c53
--- /dev/null
+++ b/data/init/images/start_eintro_018.png
Binary files differ
diff --git a/data/init/images/start_eintro_019.png b/data/init/images/start_eintro_019.png
new file mode 100644
index 000000000..5060c0245
--- /dev/null
+++ b/data/init/images/start_eintro_019.png
Binary files differ
diff --git a/data/init/images/start_eintro_020.png b/data/init/images/start_eintro_020.png
new file mode 100644
index 000000000..d1e108073
--- /dev/null
+++ b/data/init/images/start_eintro_020.png
Binary files differ
diff --git a/data/init/images/start_eintro_021.png b/data/init/images/start_eintro_021.png
new file mode 100644
index 000000000..7353cc823
--- /dev/null
+++ b/data/init/images/start_eintro_021.png
Binary files differ
diff --git a/data/init/images/start_eintro_022.png b/data/init/images/start_eintro_022.png
new file mode 100644
index 000000000..338446c2e
--- /dev/null
+++ b/data/init/images/start_eintro_022.png
Binary files differ
diff --git a/data/init/images/start_eintro_023.png b/data/init/images/start_eintro_023.png
new file mode 100644
index 000000000..7d1dc00da
--- /dev/null
+++ b/data/init/images/start_eintro_023.png
Binary files differ
diff --git a/data/init/images/start_eintro_024.png b/data/init/images/start_eintro_024.png
new file mode 100644
index 000000000..d36cf4aec
--- /dev/null
+++ b/data/init/images/start_eintro_024.png
Binary files differ
diff --git a/data/init/images/start_eintro_025.png b/data/init/images/start_eintro_025.png
new file mode 100644
index 000000000..0bee2821d
--- /dev/null
+++ b/data/init/images/start_eintro_025.png
Binary files differ
diff --git a/data/init/images/start_eintro_026.png b/data/init/images/start_eintro_026.png
new file mode 100644
index 000000000..f5586cb1f
--- /dev/null
+++ b/data/init/images/start_eintro_026.png
Binary files differ
diff --git a/data/init/images/start_eintro_027.png b/data/init/images/start_eintro_027.png
new file mode 100644
index 000000000..c936bc2cb
--- /dev/null
+++ b/data/init/images/start_eintro_027.png
Binary files differ
diff --git a/data/init/images/start_eintro_028.png b/data/init/images/start_eintro_028.png
new file mode 100644
index 000000000..6b4539b2a
--- /dev/null
+++ b/data/init/images/start_eintro_028.png
Binary files differ
diff --git a/data/init/images/start_eintro_029.png b/data/init/images/start_eintro_029.png
new file mode 100644
index 000000000..13d988ac0
--- /dev/null
+++ b/data/init/images/start_eintro_029.png
Binary files differ
diff --git a/data/init/images/start_eintro_030.png b/data/init/images/start_eintro_030.png
new file mode 100644
index 000000000..443016574
--- /dev/null
+++ b/data/init/images/start_eintro_030.png
Binary files differ
diff --git a/data/init/images/start_eintro_031.png b/data/init/images/start_eintro_031.png
new file mode 100644
index 000000000..d34ba53dd
--- /dev/null
+++ b/data/init/images/start_eintro_031.png
Binary files differ
diff --git a/data/init/images/start_eintro_032.png b/data/init/images/start_eintro_032.png
new file mode 100644
index 000000000..0197baf1f
--- /dev/null
+++ b/data/init/images/start_eintro_032.png
Binary files differ
diff --git a/data/init/images/start_eintro_033.png b/data/init/images/start_eintro_033.png
new file mode 100644
index 000000000..1de5435d7
--- /dev/null
+++ b/data/init/images/start_eintro_033.png
Binary files differ
diff --git a/data/init/images/start_eintro_034.png b/data/init/images/start_eintro_034.png
new file mode 100644
index 000000000..11418467f
--- /dev/null
+++ b/data/init/images/start_eintro_034.png
Binary files differ
diff --git a/data/init/images/start_eintro_035.png b/data/init/images/start_eintro_035.png
new file mode 100644
index 000000000..d7dd6c47d
--- /dev/null
+++ b/data/init/images/start_eintro_035.png
Binary files differ
diff --git a/data/init/images/start_eintro_036.png b/data/init/images/start_eintro_036.png
new file mode 100644
index 000000000..474e4f180
--- /dev/null
+++ b/data/init/images/start_eintro_036.png
Binary files differ
diff --git a/data/init/images/start_eintro_037.png b/data/init/images/start_eintro_037.png
new file mode 100644
index 000000000..95aa06b2a
--- /dev/null
+++ b/data/init/images/start_eintro_037.png
Binary files differ
diff --git a/data/init/images/start_eintro_038.png b/data/init/images/start_eintro_038.png
new file mode 100644
index 000000000..a9b5cef72
--- /dev/null
+++ b/data/init/images/start_eintro_038.png
Binary files differ
diff --git a/data/init/images/start_eintro_039.png b/data/init/images/start_eintro_039.png
new file mode 100644
index 000000000..04ac5b398
--- /dev/null
+++ b/data/init/images/start_eintro_039.png
Binary files differ
diff --git a/data/init/images/start_eintro_040.png b/data/init/images/start_eintro_040.png
new file mode 100644
index 000000000..75d1b0546
--- /dev/null
+++ b/data/init/images/start_eintro_040.png
Binary files differ
diff --git a/data/init/images/start_eintro_041.png b/data/init/images/start_eintro_041.png
new file mode 100644
index 000000000..61168d76c
--- /dev/null
+++ b/data/init/images/start_eintro_041.png
Binary files differ
diff --git a/data/init/images/start_eintro_042.png b/data/init/images/start_eintro_042.png
new file mode 100644
index 000000000..35e6d5585
--- /dev/null
+++ b/data/init/images/start_eintro_042.png
Binary files differ
diff --git a/data/init/images/start_eintro_043.png b/data/init/images/start_eintro_043.png
new file mode 100644
index 000000000..95fc66e09
--- /dev/null
+++ b/data/init/images/start_eintro_043.png
Binary files differ
diff --git a/data/init/images/start_eintro_044.png b/data/init/images/start_eintro_044.png
new file mode 100644
index 000000000..90c932090
--- /dev/null
+++ b/data/init/images/start_eintro_044.png
Binary files differ
diff --git a/data/init/images/start_eintro_045.png b/data/init/images/start_eintro_045.png
new file mode 100644
index 000000000..db5884d15
--- /dev/null
+++ b/data/init/images/start_eintro_045.png
Binary files differ
diff --git a/data/init/images/start_eintro_046.png b/data/init/images/start_eintro_046.png
new file mode 100644
index 000000000..421290373
--- /dev/null
+++ b/data/init/images/start_eintro_046.png
Binary files differ
diff --git a/data/init/images/start_eintro_047.png b/data/init/images/start_eintro_047.png
new file mode 100644
index 000000000..8c52c4b8b
--- /dev/null
+++ b/data/init/images/start_eintro_047.png
Binary files differ
diff --git a/data/init/images/start_eintro_048.png b/data/init/images/start_eintro_048.png
new file mode 100644
index 000000000..caa8e8e6f
--- /dev/null
+++ b/data/init/images/start_eintro_048.png
Binary files differ
diff --git a/data/init/images/start_eintro_049.png b/data/init/images/start_eintro_049.png
new file mode 100644
index 000000000..add99ac96
--- /dev/null
+++ b/data/init/images/start_eintro_049.png
Binary files differ
diff --git a/data/init/images/start_eintro_050.png b/data/init/images/start_eintro_050.png
new file mode 100644
index 000000000..accec2482
--- /dev/null
+++ b/data/init/images/start_eintro_050.png
Binary files differ
diff --git a/data/init/images/start_eintro_051.png b/data/init/images/start_eintro_051.png
new file mode 100644
index 000000000..7335ca364
--- /dev/null
+++ b/data/init/images/start_eintro_051.png
Binary files differ
diff --git a/data/init/images/start_eintro_052.png b/data/init/images/start_eintro_052.png
new file mode 100644
index 000000000..e6b2279b3
--- /dev/null
+++ b/data/init/images/start_eintro_052.png
Binary files differ
diff --git a/data/init/images/start_eintro_053.png b/data/init/images/start_eintro_053.png
new file mode 100644
index 000000000..084604f5b
--- /dev/null
+++ b/data/init/images/start_eintro_053.png
Binary files differ
diff --git a/data/init/images/start_eintro_054.png b/data/init/images/start_eintro_054.png
new file mode 100644
index 000000000..ccb25ab1d
--- /dev/null
+++ b/data/init/images/start_eintro_054.png
Binary files differ
diff --git a/data/init/images/start_eintro_055.png b/data/init/images/start_eintro_055.png
new file mode 100644
index 000000000..8a0f2542d
--- /dev/null
+++ b/data/init/images/start_eintro_055.png
Binary files differ
diff --git a/data/init/images/start_eintro_056.png b/data/init/images/start_eintro_056.png
new file mode 100644
index 000000000..7c0fb8fdf
--- /dev/null
+++ b/data/init/images/start_eintro_056.png
Binary files differ
diff --git a/data/init/images/start_eintro_057.png b/data/init/images/start_eintro_057.png
new file mode 100644
index 000000000..3e91cdc83
--- /dev/null
+++ b/data/init/images/start_eintro_057.png
Binary files differ
diff --git a/data/init/images/start_eintro_058.png b/data/init/images/start_eintro_058.png
new file mode 100644
index 000000000..edcf362c2
--- /dev/null
+++ b/data/init/images/start_eintro_058.png
Binary files differ
diff --git a/data/init/images/start_eintro_059.png b/data/init/images/start_eintro_059.png
new file mode 100644
index 000000000..1b01264b9
--- /dev/null
+++ b/data/init/images/start_eintro_059.png
Binary files differ
diff --git a/data/init/images/start_eintro_060.png b/data/init/images/start_eintro_060.png
new file mode 100644
index 000000000..c10c7eb9e
--- /dev/null
+++ b/data/init/images/start_eintro_060.png
Binary files differ
diff --git a/data/init/images/start_eintro_061.png b/data/init/images/start_eintro_061.png
new file mode 100644
index 000000000..8373fabba
--- /dev/null
+++ b/data/init/images/start_eintro_061.png
Binary files differ
diff --git a/data/init/images/start_eintro_062.png b/data/init/images/start_eintro_062.png
new file mode 100644
index 000000000..17d58a00f
--- /dev/null
+++ b/data/init/images/start_eintro_062.png
Binary files differ
diff --git a/data/init/images/start_eintro_063.png b/data/init/images/start_eintro_063.png
new file mode 100644
index 000000000..2714771c1
--- /dev/null
+++ b/data/init/images/start_eintro_063.png
Binary files differ
diff --git a/data/init/images/start_eintro_064.png b/data/init/images/start_eintro_064.png
new file mode 100644
index 000000000..c8c5dccaa
--- /dev/null
+++ b/data/init/images/start_eintro_064.png
Binary files differ
diff --git a/data/init/images/start_eintro_065.png b/data/init/images/start_eintro_065.png
new file mode 100644
index 000000000..2631bbc23
--- /dev/null
+++ b/data/init/images/start_eintro_065.png
Binary files differ
diff --git a/data/init/images/start_eintro_066.png b/data/init/images/start_eintro_066.png
new file mode 100644
index 000000000..485552a77
--- /dev/null
+++ b/data/init/images/start_eintro_066.png
Binary files differ
diff --git a/data/init/images/start_eintro_067.png b/data/init/images/start_eintro_067.png
new file mode 100644
index 000000000..d5021fe90
--- /dev/null
+++ b/data/init/images/start_eintro_067.png
Binary files differ
diff --git a/data/init/images/start_eintro_068.png b/data/init/images/start_eintro_068.png
new file mode 100644
index 000000000..bd5ec760f
--- /dev/null
+++ b/data/init/images/start_eintro_068.png
Binary files differ
diff --git a/data/init/images/start_eintro_069.png b/data/init/images/start_eintro_069.png
new file mode 100644
index 000000000..7d53ea22b
--- /dev/null
+++ b/data/init/images/start_eintro_069.png
Binary files differ
diff --git a/data/init/images/start_eintro_070.png b/data/init/images/start_eintro_070.png
new file mode 100644
index 000000000..f094f4c64
--- /dev/null
+++ b/data/init/images/start_eintro_070.png
Binary files differ
diff --git a/data/init/images/start_eintro_071.png b/data/init/images/start_eintro_071.png
new file mode 100644
index 000000000..595cb3ef3
--- /dev/null
+++ b/data/init/images/start_eintro_071.png
Binary files differ
diff --git a/data/init/images/start_eintro_072.png b/data/init/images/start_eintro_072.png
new file mode 100644
index 000000000..f2f0c5531
--- /dev/null
+++ b/data/init/images/start_eintro_072.png
Binary files differ
diff --git a/data/init/images/start_eintro_073.png b/data/init/images/start_eintro_073.png
new file mode 100644
index 000000000..56700472d
--- /dev/null
+++ b/data/init/images/start_eintro_073.png
Binary files differ
diff --git a/data/init/images/start_eintro_074.png b/data/init/images/start_eintro_074.png
new file mode 100644
index 000000000..165c24564
--- /dev/null
+++ b/data/init/images/start_eintro_074.png
Binary files differ
diff --git a/data/init/images/start_eintro_075.png b/data/init/images/start_eintro_075.png
new file mode 100644
index 000000000..db153410d
--- /dev/null
+++ b/data/init/images/start_eintro_075.png
Binary files differ
diff --git a/data/init/images/start_eintro_076.png b/data/init/images/start_eintro_076.png
new file mode 100644
index 000000000..ea382a436
--- /dev/null
+++ b/data/init/images/start_eintro_076.png
Binary files differ
diff --git a/data/init/images/start_eintro_077.png b/data/init/images/start_eintro_077.png
new file mode 100644
index 000000000..15167094f
--- /dev/null
+++ b/data/init/images/start_eintro_077.png
Binary files differ
diff --git a/data/init/images/start_eintro_078.png b/data/init/images/start_eintro_078.png
new file mode 100644
index 000000000..80b957b16
--- /dev/null
+++ b/data/init/images/start_eintro_078.png
Binary files differ
diff --git a/data/init/images/start_eintro_079.png b/data/init/images/start_eintro_079.png
new file mode 100644
index 000000000..7256d23a4
--- /dev/null
+++ b/data/init/images/start_eintro_079.png
Binary files differ
diff --git a/data/init/images/start_eintro_080.png b/data/init/images/start_eintro_080.png
new file mode 100644
index 000000000..be6d15c02
--- /dev/null
+++ b/data/init/images/start_eintro_080.png
Binary files differ
diff --git a/data/init/images/start_eintro_081.png b/data/init/images/start_eintro_081.png
new file mode 100644
index 000000000..440082f99
--- /dev/null
+++ b/data/init/images/start_eintro_081.png
Binary files differ
diff --git a/data/init/images/start_eintro_082.png b/data/init/images/start_eintro_082.png
new file mode 100644
index 000000000..2ece3024d
--- /dev/null
+++ b/data/init/images/start_eintro_082.png
Binary files differ
diff --git a/data/init/images/start_eintro_083.png b/data/init/images/start_eintro_083.png
new file mode 100644
index 000000000..e53d5bafc
--- /dev/null
+++ b/data/init/images/start_eintro_083.png
Binary files differ
diff --git a/data/init/images/start_eintro_084.png b/data/init/images/start_eintro_084.png
new file mode 100644
index 000000000..2c11444eb
--- /dev/null
+++ b/data/init/images/start_eintro_084.png
Binary files differ
diff --git a/data/init/images/start_eintro_085.png b/data/init/images/start_eintro_085.png
new file mode 100644
index 000000000..209e8f58d
--- /dev/null
+++ b/data/init/images/start_eintro_085.png
Binary files differ
diff --git a/data/init/images/start_eintro_086.png b/data/init/images/start_eintro_086.png
new file mode 100644
index 000000000..9acf91059
--- /dev/null
+++ b/data/init/images/start_eintro_086.png
Binary files differ
diff --git a/data/init/images/start_eintro_087.png b/data/init/images/start_eintro_087.png
new file mode 100644
index 000000000..986627517
--- /dev/null
+++ b/data/init/images/start_eintro_087.png
Binary files differ
diff --git a/data/init/images/start_eintro_088.png b/data/init/images/start_eintro_088.png
new file mode 100644
index 000000000..e03fa5670
--- /dev/null
+++ b/data/init/images/start_eintro_088.png
Binary files differ
diff --git a/data/init/images/start_eintro_089.png b/data/init/images/start_eintro_089.png
new file mode 100644
index 000000000..5ba338bb5
--- /dev/null
+++ b/data/init/images/start_eintro_089.png
Binary files differ
diff --git a/data/init/images/start_eintro_090.png b/data/init/images/start_eintro_090.png
new file mode 100644
index 000000000..a2c7c12fe
--- /dev/null
+++ b/data/init/images/start_eintro_090.png
Binary files differ
diff --git a/data/init/images/start_eintro_091.png b/data/init/images/start_eintro_091.png
new file mode 100644
index 000000000..7014087e0
--- /dev/null
+++ b/data/init/images/start_eintro_091.png
Binary files differ
diff --git a/data/init/images/start_eintro_092.png b/data/init/images/start_eintro_092.png
new file mode 100644
index 000000000..472f559a3
--- /dev/null
+++ b/data/init/images/start_eintro_092.png
Binary files differ
diff --git a/data/init/images/start_eintro_093.png b/data/init/images/start_eintro_093.png
new file mode 100644
index 000000000..f7ac4f1a1
--- /dev/null
+++ b/data/init/images/start_eintro_093.png
Binary files differ
diff --git a/data/init/images/start_eintro_094.png b/data/init/images/start_eintro_094.png
new file mode 100644
index 000000000..be6cc1762
--- /dev/null
+++ b/data/init/images/start_eintro_094.png
Binary files differ
diff --git a/data/init/images/start_eintro_095.png b/data/init/images/start_eintro_095.png
new file mode 100644
index 000000000..4176bae37
--- /dev/null
+++ b/data/init/images/start_eintro_095.png
Binary files differ
diff --git a/data/init/images/start_eintro_096.png b/data/init/images/start_eintro_096.png
new file mode 100644
index 000000000..9fcd7383a
--- /dev/null
+++ b/data/init/images/start_eintro_096.png
Binary files differ
diff --git a/data/init/images/start_eintro_097.png b/data/init/images/start_eintro_097.png
new file mode 100644
index 000000000..9f5319320
--- /dev/null
+++ b/data/init/images/start_eintro_097.png
Binary files differ
diff --git a/data/init/images/start_eintro_098.png b/data/init/images/start_eintro_098.png
new file mode 100644
index 000000000..01caa10f6
--- /dev/null
+++ b/data/init/images/start_eintro_098.png
Binary files differ
diff --git a/data/init/images/start_eintro_099.png b/data/init/images/start_eintro_099.png
new file mode 100644
index 000000000..b8c037fac
--- /dev/null
+++ b/data/init/images/start_eintro_099.png
Binary files differ
diff --git a/data/init/images/start_eintro_100.png b/data/init/images/start_eintro_100.png
new file mode 100644
index 000000000..6574ab797
--- /dev/null
+++ b/data/init/images/start_eintro_100.png
Binary files differ
diff --git a/data/init/images/start_eintro_101.png b/data/init/images/start_eintro_101.png
new file mode 100644
index 000000000..7121c4540
--- /dev/null
+++ b/data/init/images/start_eintro_101.png
Binary files differ
diff --git a/data/init/images/start_eintro_102.png b/data/init/images/start_eintro_102.png
new file mode 100644
index 000000000..0ccd5035d
--- /dev/null
+++ b/data/init/images/start_eintro_102.png
Binary files differ
diff --git a/data/init/images/start_eintro_103.png b/data/init/images/start_eintro_103.png
new file mode 100644
index 000000000..7ae1c7144
--- /dev/null
+++ b/data/init/images/start_eintro_103.png
Binary files differ
diff --git a/data/init/images/start_eintro_104.png b/data/init/images/start_eintro_104.png
new file mode 100644
index 000000000..44d128104
--- /dev/null
+++ b/data/init/images/start_eintro_104.png
Binary files differ
diff --git a/data/init/images/start_eintro_105.png b/data/init/images/start_eintro_105.png
new file mode 100644
index 000000000..02aeca3d0
--- /dev/null
+++ b/data/init/images/start_eintro_105.png
Binary files differ
diff --git a/data/init/images/start_eintro_106.png b/data/init/images/start_eintro_106.png
new file mode 100644
index 000000000..11044ea27
--- /dev/null
+++ b/data/init/images/start_eintro_106.png
Binary files differ
diff --git a/data/init/images/start_eintro_107.png b/data/init/images/start_eintro_107.png
new file mode 100644
index 000000000..a30d402a4
--- /dev/null
+++ b/data/init/images/start_eintro_107.png
Binary files differ
diff --git a/data/init/images/start_eintro_108.png b/data/init/images/start_eintro_108.png
new file mode 100644
index 000000000..fcac718ab
--- /dev/null
+++ b/data/init/images/start_eintro_108.png
Binary files differ
diff --git a/data/init/images/start_eintro_109.png b/data/init/images/start_eintro_109.png
new file mode 100644
index 000000000..d2f3387cd
--- /dev/null
+++ b/data/init/images/start_eintro_109.png
Binary files differ
diff --git a/data/init/images/start_eintro_110.png b/data/init/images/start_eintro_110.png
new file mode 100644
index 000000000..a9ec17f9c
--- /dev/null
+++ b/data/init/images/start_eintro_110.png
Binary files differ
diff --git a/data/init/images/start_eintro_111.png b/data/init/images/start_eintro_111.png
new file mode 100644
index 000000000..05945e45c
--- /dev/null
+++ b/data/init/images/start_eintro_111.png
Binary files differ
diff --git a/data/init/images/start_eintro_112.png b/data/init/images/start_eintro_112.png
new file mode 100644
index 000000000..56a0dd9cb
--- /dev/null
+++ b/data/init/images/start_eintro_112.png
Binary files differ
diff --git a/data/init/images/start_eintro_113.png b/data/init/images/start_eintro_113.png
new file mode 100644
index 000000000..c28b43b7a
--- /dev/null
+++ b/data/init/images/start_eintro_113.png
Binary files differ
diff --git a/data/init/images/start_eintro_114.png b/data/init/images/start_eintro_114.png
new file mode 100644
index 000000000..92beaa243
--- /dev/null
+++ b/data/init/images/start_eintro_114.png
Binary files differ
diff --git a/data/init/images/start_eintro_115.png b/data/init/images/start_eintro_115.png
new file mode 100644
index 000000000..fa03b6c8d
--- /dev/null
+++ b/data/init/images/start_eintro_115.png
Binary files differ
diff --git a/data/init/images/start_eintro_116.png b/data/init/images/start_eintro_116.png
new file mode 100644
index 000000000..8ea37dcab
--- /dev/null
+++ b/data/init/images/start_eintro_116.png
Binary files differ
diff --git a/data/init/images/start_eintro_117.png b/data/init/images/start_eintro_117.png
new file mode 100644
index 000000000..7035eea4a
--- /dev/null
+++ b/data/init/images/start_eintro_117.png
Binary files differ
diff --git a/data/init/images/start_eintro_118.png b/data/init/images/start_eintro_118.png
new file mode 100644
index 000000000..5f80f1ca3
--- /dev/null
+++ b/data/init/images/start_eintro_118.png
Binary files differ
diff --git a/data/init/images/start_eintro_119.png b/data/init/images/start_eintro_119.png
new file mode 100644
index 000000000..9b23bab9e
--- /dev/null
+++ b/data/init/images/start_eintro_119.png
Binary files differ
diff --git a/data/init/images/start_eintro_120.png b/data/init/images/start_eintro_120.png
new file mode 100644
index 000000000..5f9b4df54
--- /dev/null
+++ b/data/init/images/start_eintro_120.png
Binary files differ
diff --git a/data/init/init.edc b/data/init/init.edc
new file mode 100644
index 000000000..6a001af2e
--- /dev/null
+++ b/data/init/init.edc
@@ -0,0 +1,1171 @@
+#ifdef E17_PROFILE
+# if E17_PROFILE == LOWRES_PDA
+# define SM "sm_"
+# define FRAME LOSSY 30
+# define LOGOSZ 160 120
+# define TSIZE 12
+# define SSIZE 8
+# define VSIZE 6
+# elif E17_PROFILE == MEDIUMRES_PDA
+# define SM "sm_"
+# define FRAME LOSSY 70
+# define LOGOSZ 240 180
+# define TSIZE 16
+# define SSIZE 10
+# define VSIZE 10
+# elif E17_PROFILE == HIRES_PDA
+# define SM "sm_"
+# define FRAME LOSSY 70
+# define LOGOSZ 320 240
+# define TSIZE 16
+# define SSIZE 10
+# define VSIZE 10
+# elif E17_PROFILE == SLOW_PC
+# define HALFFRAMES
+# define SM
+# define FRAME LOSSY 90
+# define LOGOSZ 320 240
+# define TSIZE 16
+# define SSIZE 10
+# define VSIZE 10
+# elif E17_PROFILE == MEDIUM_PC
+# define HALFFRAMES
+# define SM
+# define FRAME LOSSY 90
+# define LOGOSZ 640 480
+# define TSIZE 16
+# define SSIZE 10
+# define VSIZE 10
+# elif E17_PROFILE == FAST_PC
+# define ALLFRAMES
+# define SM
+# define FRAME LOSSY 90
+# define LOGOSZ 640 480
+# define TSIZE 16
+# define SSIZE 10
+# define VSIZE 10
+# endif
+#else
+# define ALLFRAMES
+# define SM
+# define FRAME LOSSY 90
+# define LOGOSZ 640 480
+# define TSIZE 16
+# define SSIZE 10
+# define VSIZE 10
+#endif
+
+fonts {
+ font: "Vera.ttf" "Edje Vera";
+ font: "VeraBd.ttf" "Edje Vera Bold";
+}
+
+images {
+ image: "brushed.png" COMP;
+ image: SM"shadow.png" LOSSY 70;
+ image: SM"reflection_overlay.png" LOSSY 70;
+
+#ifdef ALLFRAMES
+ image: SM"start_eintro_001.png" FRAME;
+ image: SM"start_eintro_002.png" FRAME;
+ image: SM"start_eintro_003.png" FRAME;
+ image: SM"start_eintro_004.png" FRAME;
+ image: SM"start_eintro_005.png" FRAME;
+ image: SM"start_eintro_006.png" FRAME;
+ image: SM"start_eintro_007.png" FRAME;
+ image: SM"start_eintro_008.png" FRAME;
+ image: SM"start_eintro_009.png" FRAME;
+ image: SM"start_eintro_010.png" FRAME;
+ image: SM"start_eintro_011.png" FRAME;
+ image: SM"start_eintro_012.png" FRAME;
+ image: SM"start_eintro_013.png" FRAME;
+ image: SM"start_eintro_014.png" FRAME;
+ image: SM"start_eintro_015.png" FRAME;
+ image: SM"start_eintro_016.png" FRAME;
+ image: SM"start_eintro_017.png" FRAME;
+ image: SM"start_eintro_018.png" FRAME;
+ image: SM"start_eintro_019.png" FRAME;
+ image: SM"start_eintro_020.png" FRAME;
+ image: SM"start_eintro_021.png" FRAME;
+ image: SM"start_eintro_022.png" FRAME;
+ image: SM"start_eintro_023.png" FRAME;
+ image: SM"start_eintro_024.png" FRAME;
+ image: SM"start_eintro_025.png" FRAME;
+ image: SM"start_eintro_026.png" FRAME;
+ image: SM"start_eintro_027.png" FRAME;
+ image: SM"start_eintro_028.png" FRAME;
+ image: SM"start_eintro_029.png" FRAME;
+ image: SM"start_eintro_030.png" FRAME;
+ image: SM"start_eintro_031.png" FRAME;
+ image: SM"start_eintro_032.png" FRAME;
+ image: SM"start_eintro_033.png" FRAME;
+ image: SM"start_eintro_034.png" FRAME;
+ image: SM"start_eintro_035.png" FRAME;
+ image: SM"start_eintro_036.png" FRAME;
+ image: SM"start_eintro_037.png" FRAME;
+ image: SM"start_eintro_038.png" FRAME;
+ image: SM"start_eintro_039.png" FRAME;
+ image: SM"start_eintro_040.png" FRAME;
+ image: SM"start_eintro_041.png" FRAME;
+ image: SM"start_eintro_042.png" FRAME;
+ image: SM"start_eintro_043.png" FRAME;
+ image: SM"start_eintro_044.png" FRAME;
+ image: SM"start_eintro_045.png" FRAME;
+ image: SM"start_eintro_046.png" FRAME;
+ image: SM"start_eintro_047.png" FRAME;
+ image: SM"start_eintro_048.png" FRAME;
+ image: SM"start_eintro_049.png" FRAME;
+ image: SM"start_eintro_050.png" FRAME;
+ image: SM"start_eintro_051.png" FRAME;
+ image: SM"start_eintro_052.png" FRAME;
+ image: SM"start_eintro_053.png" FRAME;
+ image: SM"start_eintro_054.png" FRAME;
+ image: SM"start_eintro_055.png" FRAME;
+ image: SM"start_eintro_056.png" FRAME;
+ image: SM"start_eintro_057.png" FRAME;
+ image: SM"start_eintro_058.png" FRAME;
+ image: SM"start_eintro_059.png" FRAME;
+ image: SM"start_eintro_060.png" FRAME;
+ image: SM"start_eintro_061.png" FRAME;
+ image: SM"start_eintro_062.png" FRAME;
+ image: SM"start_eintro_063.png" FRAME;
+ image: SM"start_eintro_064.png" FRAME;
+ image: SM"start_eintro_065.png" FRAME;
+ image: SM"start_eintro_066.png" FRAME;
+ image: SM"start_eintro_067.png" FRAME;
+ image: SM"start_eintro_068.png" FRAME;
+ image: SM"start_eintro_069.png" FRAME;
+ image: SM"start_eintro_070.png" FRAME;
+ image: SM"start_eintro_071.png" FRAME;
+ image: SM"start_eintro_072.png" FRAME;
+ image: SM"start_eintro_073.png" FRAME;
+ image: SM"start_eintro_074.png" FRAME;
+ image: SM"start_eintro_075.png" FRAME;
+ image: SM"start_eintro_076.png" FRAME;
+ image: SM"start_eintro_077.png" FRAME;
+ image: SM"start_eintro_078.png" FRAME;
+ image: SM"start_eintro_079.png" FRAME;
+ image: SM"start_eintro_080.png" FRAME;
+ image: SM"start_eintro_081.png" FRAME;
+ image: SM"start_eintro_082.png" FRAME;
+ image: SM"start_eintro_083.png" FRAME;
+ image: SM"start_eintro_084.png" FRAME;
+ image: SM"start_eintro_085.png" FRAME;
+ image: SM"start_eintro_086.png" FRAME;
+ image: SM"start_eintro_087.png" FRAME;
+ image: SM"start_eintro_088.png" FRAME;
+ image: SM"start_eintro_089.png" FRAME;
+ image: SM"start_eintro_090.png" FRAME;
+ image: SM"start_eintro_091.png" FRAME;
+ image: SM"start_eintro_092.png" FRAME;
+ image: SM"start_eintro_093.png" FRAME;
+ image: SM"start_eintro_094.png" FRAME;
+ image: SM"start_eintro_095.png" FRAME;
+ image: SM"start_eintro_096.png" FRAME;
+ image: SM"start_eintro_097.png" FRAME;
+ image: SM"start_eintro_098.png" FRAME;
+ image: SM"start_eintro_099.png" FRAME;
+ image: SM"start_eintro_100.png" FRAME;
+ image: SM"start_eintro_101.png" FRAME;
+ image: SM"start_eintro_102.png" FRAME;
+ image: SM"start_eintro_103.png" FRAME;
+ image: SM"start_eintro_104.png" FRAME;
+ image: SM"start_eintro_105.png" FRAME;
+ image: SM"start_eintro_106.png" FRAME;
+ image: SM"start_eintro_107.png" FRAME;
+ image: SM"start_eintro_108.png" FRAME;
+ image: SM"start_eintro_109.png" FRAME;
+ image: SM"start_eintro_110.png" FRAME;
+ image: SM"start_eintro_111.png" FRAME;
+ image: SM"start_eintro_112.png" FRAME;
+ image: SM"start_eintro_113.png" FRAME;
+ image: SM"start_eintro_114.png" FRAME;
+ image: SM"start_eintro_115.png" FRAME;
+ image: SM"start_eintro_116.png" FRAME;
+ image: SM"start_eintro_117.png" FRAME;
+ image: SM"start_eintro_118.png" FRAME;
+ image: SM"start_eintro_119.png" FRAME;
+ image: SM"start_eintro_120.png" FRAME;
+ image: SM"loop_eintro_121.png" FRAME;
+ image: SM"loop_eintro_122.png" FRAME;
+ image: SM"loop_eintro_123.png" FRAME;
+ image: SM"loop_eintro_124.png" FRAME;
+ image: SM"loop_eintro_125.png" FRAME;
+ image: SM"loop_eintro_126.png" FRAME;
+ image: SM"loop_eintro_127.png" FRAME;
+ image: SM"loop_eintro_128.png" FRAME;
+ image: SM"loop_eintro_129.png" FRAME;
+ image: SM"loop_eintro_130.png" FRAME;
+ image: SM"loop_eintro_131.png" FRAME;
+ image: SM"loop_eintro_132.png" FRAME;
+ image: SM"loop_eintro_133.png" FRAME;
+ image: SM"loop_eintro_134.png" FRAME;
+ image: SM"loop_eintro_135.png" FRAME;
+ image: SM"loop_eintro_136.png" FRAME;
+ image: SM"loop_eintro_137.png" FRAME;
+ image: SM"loop_eintro_138.png" FRAME;
+ image: SM"loop_eintro_139.png" FRAME;
+ image: SM"loop_eintro_140.png" FRAME;
+ image: SM"loop_eintro_141.png" FRAME;
+ image: SM"loop_eintro_142.png" FRAME;
+ image: SM"loop_eintro_143.png" FRAME;
+ image: SM"loop_eintro_144.png" FRAME;
+ image: SM"loop_eintro_145.png" FRAME;
+ image: SM"loop_eintro_146.png" FRAME;
+ image: SM"loop_eintro_147.png" FRAME;
+ image: SM"loop_eintro_148.png" FRAME;
+ image: SM"loop_eintro_149.png" FRAME;
+ image: SM"loop_eintro_150.png" FRAME;
+ image: SM"loop_eintro_151.png" FRAME;
+ image: SM"loop_eintro_152.png" FRAME;
+ image: SM"loop_eintro_153.png" FRAME;
+ image: SM"loop_eintro_154.png" FRAME;
+ image: SM"loop_eintro_155.png" FRAME;
+ image: SM"loop_eintro_156.png" FRAME;
+ image: SM"loop_eintro_157.png" FRAME;
+ image: SM"loop_eintro_158.png" FRAME;
+ image: SM"loop_eintro_159.png" FRAME;
+ image: SM"loop_eintro_160.png" FRAME;
+ image: SM"loop_eintro_161.png" FRAME;
+ image: SM"loop_eintro_162.png" FRAME;
+ image: SM"loop_eintro_163.png" FRAME;
+ image: SM"loop_eintro_164.png" FRAME;
+ image: SM"loop_eintro_165.png" FRAME;
+ image: SM"loop_eintro_166.png" FRAME;
+ image: SM"loop_eintro_167.png" FRAME;
+ image: SM"loop_eintro_168.png" FRAME;
+ image: SM"loop_eintro_169.png" FRAME;
+ image: SM"loop_eintro_170.png" FRAME;
+ image: SM"loop_eintro_171.png" FRAME;
+ image: SM"loop_eintro_172.png" FRAME;
+ image: SM"loop_eintro_173.png" FRAME;
+ image: SM"loop_eintro_174.png" FRAME;
+ image: SM"loop_eintro_175.png" FRAME;
+ image: SM"loop_eintro_176.png" FRAME;
+ image: SM"loop_eintro_177.png" FRAME;
+ image: SM"loop_eintro_178.png" FRAME;
+ image: SM"loop_eintro_179.png" FRAME;
+ image: SM"loop_eintro_180.png" FRAME;
+ image: SM"loop_eintro_181.png" FRAME;
+ image: SM"loop_eintro_182.png" FRAME;
+ image: SM"loop_eintro_183.png" FRAME;
+ image: SM"loop_eintro_184.png" FRAME;
+ image: SM"loop_eintro_185.png" FRAME;
+ image: SM"loop_eintro_186.png" FRAME;
+ image: SM"loop_eintro_187.png" FRAME;
+ image: SM"loop_eintro_188.png" FRAME;
+ image: SM"loop_eintro_189.png" FRAME;
+ image: SM"loop_eintro_190.png" FRAME;
+ image: SM"loop_eintro_191.png" FRAME;
+ image: SM"loop_eintro_192.png" FRAME;
+ image: SM"loop_eintro_193.png" FRAME;
+ image: SM"loop_eintro_194.png" FRAME;
+ image: SM"loop_eintro_195.png" FRAME;
+ image: SM"loop_eintro_196.png" FRAME;
+ image: SM"loop_eintro_197.png" FRAME;
+ image: SM"loop_eintro_198.png" FRAME;
+ image: SM"loop_eintro_199.png" FRAME;
+ image: SM"loop_eintro_200.png" FRAME;
+ image: SM"loop_eintro_201.png" FRAME;
+ image: SM"loop_eintro_202.png" FRAME;
+ image: SM"loop_eintro_203.png" FRAME;
+ image: SM"loop_eintro_204.png" FRAME;
+ image: SM"loop_eintro_205.png" FRAME;
+ image: SM"loop_eintro_206.png" FRAME;
+ image: SM"loop_eintro_207.png" FRAME;
+ image: SM"loop_eintro_208.png" FRAME;
+ image: SM"loop_eintro_209.png" FRAME;
+ image: SM"loop_eintro_210.png" FRAME;
+ image: SM"loop_eintro_211.png" FRAME;
+ image: SM"loop_eintro_212.png" FRAME;
+ image: SM"loop_eintro_213.png" FRAME;
+ image: SM"loop_eintro_214.png" FRAME;
+ image: SM"loop_eintro_215.png" FRAME;
+ image: SM"loop_eintro_216.png" FRAME;
+ image: SM"loop_eintro_217.png" FRAME;
+ image: SM"loop_eintro_218.png" FRAME;
+ image: SM"loop_eintro_219.png" FRAME;
+ image: SM"loop_eintro_220.png" FRAME;
+ image: SM"loop_eintro_221.png" FRAME;
+ image: SM"loop_eintro_222.png" FRAME;
+ image: SM"loop_eintro_223.png" FRAME;
+ image: SM"loop_eintro_224.png" FRAME;
+ image: SM"loop_eintro_225.png" FRAME;
+ image: SM"loop_eintro_226.png" FRAME;
+ image: SM"loop_eintro_227.png" FRAME;
+ image: SM"loop_eintro_228.png" FRAME;
+ image: SM"loop_eintro_229.png" FRAME;
+ image: SM"loop_eintro_230.png" FRAME;
+ image: SM"loop_eintro_231.png" FRAME;
+ image: SM"loop_eintro_232.png" FRAME;
+ image: SM"loop_eintro_233.png" FRAME;
+ image: SM"loop_eintro_234.png" FRAME;
+ image: SM"loop_eintro_235.png" FRAME;
+ image: SM"loop_eintro_236.png" FRAME;
+ image: SM"loop_eintro_237.png" FRAME;
+ image: SM"loop_eintro_238.png" FRAME;
+ image: SM"loop_eintro_239.png" FRAME;
+ image: SM"loop_eintro_240.png" FRAME;
+#else
+#ifdef HALFFRAMES
+ image: SM"start_eintro_001.png" FRAME;
+ image: SM"start_eintro_003.png" FRAME;
+ image: SM"start_eintro_005.png" FRAME;
+ image: SM"start_eintro_007.png" FRAME;
+ image: SM"start_eintro_009.png" FRAME;
+ image: SM"start_eintro_011.png" FRAME;
+ image: SM"start_eintro_013.png" FRAME;
+ image: SM"start_eintro_015.png" FRAME;
+ image: SM"start_eintro_017.png" FRAME;
+ image: SM"start_eintro_019.png" FRAME;
+ image: SM"start_eintro_021.png" FRAME;
+ image: SM"start_eintro_023.png" FRAME;
+ image: SM"start_eintro_025.png" FRAME;
+ image: SM"start_eintro_027.png" FRAME;
+ image: SM"start_eintro_029.png" FRAME;
+ image: SM"start_eintro_031.png" FRAME;
+ image: SM"start_eintro_033.png" FRAME;
+ image: SM"start_eintro_035.png" FRAME;
+ image: SM"start_eintro_037.png" FRAME;
+ image: SM"start_eintro_039.png" FRAME;
+ image: SM"start_eintro_041.png" FRAME;
+ image: SM"start_eintro_043.png" FRAME;
+ image: SM"start_eintro_045.png" FRAME;
+ image: SM"start_eintro_047.png" FRAME;
+ image: SM"start_eintro_049.png" FRAME;
+ image: SM"start_eintro_051.png" FRAME;
+ image: SM"start_eintro_053.png" FRAME;
+ image: SM"start_eintro_055.png" FRAME;
+ image: SM"start_eintro_057.png" FRAME;
+ image: SM"start_eintro_059.png" FRAME;
+ image: SM"start_eintro_061.png" FRAME;
+ image: SM"start_eintro_063.png" FRAME;
+ image: SM"start_eintro_065.png" FRAME;
+ image: SM"start_eintro_067.png" FRAME;
+ image: SM"start_eintro_069.png" FRAME;
+ image: SM"start_eintro_071.png" FRAME;
+ image: SM"start_eintro_073.png" FRAME;
+ image: SM"start_eintro_075.png" FRAME;
+ image: SM"start_eintro_077.png" FRAME;
+ image: SM"start_eintro_079.png" FRAME;
+ image: SM"start_eintro_081.png" FRAME;
+ image: SM"start_eintro_083.png" FRAME;
+ image: SM"start_eintro_085.png" FRAME;
+ image: SM"start_eintro_087.png" FRAME;
+ image: SM"start_eintro_089.png" FRAME;
+ image: SM"start_eintro_091.png" FRAME;
+ image: SM"start_eintro_093.png" FRAME;
+ image: SM"start_eintro_095.png" FRAME;
+ image: SM"start_eintro_097.png" FRAME;
+ image: SM"start_eintro_099.png" FRAME;
+ image: SM"start_eintro_101.png" FRAME;
+ image: SM"start_eintro_103.png" FRAME;
+ image: SM"start_eintro_105.png" FRAME;
+ image: SM"start_eintro_107.png" FRAME;
+ image: SM"start_eintro_109.png" FRAME;
+ image: SM"start_eintro_111.png" FRAME;
+ image: SM"start_eintro_113.png" FRAME;
+ image: SM"start_eintro_115.png" FRAME;
+ image: SM"start_eintro_117.png" FRAME;
+ image: SM"start_eintro_119.png" FRAME;
+ image: SM"loop_eintro_121.png" FRAME;
+ image: SM"loop_eintro_123.png" FRAME;
+ image: SM"loop_eintro_125.png" FRAME;
+ image: SM"loop_eintro_127.png" FRAME;
+ image: SM"loop_eintro_129.png" FRAME;
+ image: SM"loop_eintro_131.png" FRAME;
+ image: SM"loop_eintro_133.png" FRAME;
+ image: SM"loop_eintro_135.png" FRAME;
+ image: SM"loop_eintro_137.png" FRAME;
+ image: SM"loop_eintro_139.png" FRAME;
+ image: SM"loop_eintro_141.png" FRAME;
+ image: SM"loop_eintro_143.png" FRAME;
+ image: SM"loop_eintro_145.png" FRAME;
+ image: SM"loop_eintro_147.png" FRAME;
+ image: SM"loop_eintro_149.png" FRAME;
+ image: SM"loop_eintro_151.png" FRAME;
+ image: SM"loop_eintro_153.png" FRAME;
+ image: SM"loop_eintro_155.png" FRAME;
+ image: SM"loop_eintro_157.png" FRAME;
+ image: SM"loop_eintro_159.png" FRAME;
+ image: SM"loop_eintro_161.png" FRAME;
+ image: SM"loop_eintro_163.png" FRAME;
+ image: SM"loop_eintro_165.png" FRAME;
+ image: SM"loop_eintro_167.png" FRAME;
+ image: SM"loop_eintro_169.png" FRAME;
+ image: SM"loop_eintro_171.png" FRAME;
+ image: SM"loop_eintro_173.png" FRAME;
+ image: SM"loop_eintro_175.png" FRAME;
+ image: SM"loop_eintro_177.png" FRAME;
+ image: SM"loop_eintro_179.png" FRAME;
+ image: SM"loop_eintro_181.png" FRAME;
+ image: SM"loop_eintro_183.png" FRAME;
+ image: SM"loop_eintro_185.png" FRAME;
+ image: SM"loop_eintro_187.png" FRAME;
+ image: SM"loop_eintro_189.png" FRAME;
+ image: SM"loop_eintro_191.png" FRAME;
+ image: SM"loop_eintro_193.png" FRAME;
+ image: SM"loop_eintro_195.png" FRAME;
+ image: SM"loop_eintro_197.png" FRAME;
+ image: SM"loop_eintro_199.png" FRAME;
+ image: SM"loop_eintro_201.png" FRAME;
+ image: SM"loop_eintro_203.png" FRAME;
+ image: SM"loop_eintro_205.png" FRAME;
+ image: SM"loop_eintro_207.png" FRAME;
+ image: SM"loop_eintro_209.png" FRAME;
+ image: SM"loop_eintro_211.png" FRAME;
+ image: SM"loop_eintro_213.png" FRAME;
+ image: SM"loop_eintro_215.png" FRAME;
+ image: SM"loop_eintro_217.png" FRAME;
+ image: SM"loop_eintro_219.png" FRAME;
+ image: SM"loop_eintro_221.png" FRAME;
+ image: SM"loop_eintro_223.png" FRAME;
+ image: SM"loop_eintro_225.png" FRAME;
+ image: SM"loop_eintro_227.png" FRAME;
+ image: SM"loop_eintro_229.png" FRAME;
+ image: SM"loop_eintro_231.png" FRAME;
+ image: SM"loop_eintro_233.png" FRAME;
+ image: SM"loop_eintro_235.png" FRAME;
+ image: SM"loop_eintro_237.png" FRAME;
+ image: SM"loop_eintro_239.png" FRAME;
+#else
+ image: SM"start_eintro_001.png" FRAME;
+ image: SM"start_eintro_005.png" FRAME;
+ image: SM"start_eintro_009.png" FRAME;
+ image: SM"start_eintro_013.png" FRAME;
+ image: SM"start_eintro_017.png" FRAME;
+ image: SM"start_eintro_021.png" FRAME;
+ image: SM"start_eintro_025.png" FRAME;
+ image: SM"start_eintro_029.png" FRAME;
+ image: SM"start_eintro_033.png" FRAME;
+ image: SM"start_eintro_037.png" FRAME;
+ image: SM"start_eintro_041.png" FRAME;
+ image: SM"start_eintro_045.png" FRAME;
+ image: SM"start_eintro_049.png" FRAME;
+ image: SM"start_eintro_053.png" FRAME;
+ image: SM"start_eintro_057.png" FRAME;
+ image: SM"start_eintro_061.png" FRAME;
+ image: SM"start_eintro_065.png" FRAME;
+ image: SM"start_eintro_069.png" FRAME;
+ image: SM"start_eintro_073.png" FRAME;
+ image: SM"start_eintro_077.png" FRAME;
+ image: SM"start_eintro_081.png" FRAME;
+ image: SM"start_eintro_085.png" FRAME;
+ image: SM"start_eintro_089.png" FRAME;
+ image: SM"start_eintro_093.png" FRAME;
+ image: SM"start_eintro_097.png" FRAME;
+ image: SM"start_eintro_101.png" FRAME;
+ image: SM"start_eintro_105.png" FRAME;
+ image: SM"start_eintro_109.png" FRAME;
+ image: SM"start_eintro_113.png" FRAME;
+ image: SM"start_eintro_117.png" FRAME;
+ image: SM"loop_eintro_121.png" FRAME;
+ image: SM"loop_eintro_125.png" FRAME;
+ image: SM"loop_eintro_129.png" FRAME;
+ image: SM"loop_eintro_133.png" FRAME;
+ image: SM"loop_eintro_137.png" FRAME;
+ image: SM"loop_eintro_141.png" FRAME;
+ image: SM"loop_eintro_145.png" FRAME;
+ image: SM"loop_eintro_149.png" FRAME;
+ image: SM"loop_eintro_153.png" FRAME;
+ image: SM"loop_eintro_157.png" FRAME;
+ image: SM"loop_eintro_161.png" FRAME;
+ image: SM"loop_eintro_165.png" FRAME;
+ image: SM"loop_eintro_169.png" FRAME;
+ image: SM"loop_eintro_173.png" FRAME;
+ image: SM"loop_eintro_177.png" FRAME;
+ image: SM"loop_eintro_181.png" FRAME;
+ image: SM"loop_eintro_185.png" FRAME;
+ image: SM"loop_eintro_189.png" FRAME;
+ image: SM"loop_eintro_193.png" FRAME;
+ image: SM"loop_eintro_197.png" FRAME;
+ image: SM"loop_eintro_201.png" FRAME;
+ image: SM"loop_eintro_205.png" FRAME;
+ image: SM"loop_eintro_209.png" FRAME;
+ image: SM"loop_eintro_213.png" FRAME;
+ image: SM"loop_eintro_217.png" FRAME;
+ image: SM"loop_eintro_221.png" FRAME;
+ image: SM"loop_eintro_225.png" FRAME;
+ image: SM"loop_eintro_229.png" FRAME;
+ image: SM"loop_eintro_233.png" FRAME;
+ image: SM"loop_eintro_237.png" FRAME;
+#endif
+#endif
+}
+
+collections {
+ group {
+ name: "init/splash";
+ parts {
+ part {
+ name: "background";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ }
+ }
+ part {
+ name: "background_image";
+ description {
+ state: "default" 0.0;
+ image {
+ normal: "brushed.png";
+ }
+ fill {
+ size {
+ relative: 0 0;
+ offset: 400 300;
+ }
+ }
+ }
+ }
+ part {
+ name: "reflection_overlay";
+ description {
+ state: "default" 0.0;
+ image {
+ normal: SM"reflection_overlay.png";
+ }
+ }
+ }
+ part {
+ name: "title";
+ type: TEXT;
+ effect: SOFT_SHADOW;
+ description {
+ state: "default" 0.0;
+ align: 0.5 0.0;
+ rel1 {
+ relative: 0.0 0.75;
+ offset: 0 0;
+ to: "logo_point";
+ }
+ rel2 {
+ relative: 1.0 0.75;
+ offset: -1 -1;
+ to: "logo_point";
+ }
+ color: 255 255 255 255;
+ color3: 0 0 0 32;
+ text {
+ text: "Enlightenment";
+ font: "Edje Vera Bold";
+ size: TSIZE;
+ min: 1 1;
+ align: 0.5 0.5;
+ }
+ }
+ }
+ part {
+ name: "version";
+ type: TEXT;
+ effect: SHADOW;
+ description {
+ state: "default" 0.0;
+ align: 1.0 1.0;
+ rel1 {
+ relative: 1.0 1.0;
+ offset: -5 -5;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -5 -5;
+ }
+ color: 0 0 0 128;
+ color3: 255 255 255 128;
+ text {
+ text: "0.17.0";
+ font: "Edje Vera";
+ size: VSIZE;
+ min: 1 1;
+ align: 0.0 0.0;
+ }
+ }
+ }
+ part {
+ name: "status";
+ type: TEXT;
+ effect: SHADOW;
+ description {
+ state: "default" 0.0;
+ align: 0.5 0.0;
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 5;
+ to: "title";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 5;
+ to: "title";
+ }
+ color: 0 0 0 128;
+ color3: 255 255 255 128;
+ text {
+ text: "Starting Enlightenment. Please wait.";
+ font: "Edje Vera";
+ size: SSIZE;
+ min: 1 1;
+ align: 0.5 0.5;
+ }
+ }
+ }
+ part {
+ name: "logo_point";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 0;
+ visible: 0;
+ aspect: 1.333333333333333333 1.333333333333333333;
+ max: LOGOSZ;
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 255;
+ visible: 1;
+ }
+ }
+ part {
+ name: "logo";
+ clip_to: "logo_point";
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ image {
+ normal: SM"start_eintro_001.png";
+ };
+ }
+ description {
+ state: "intro_start" 0.0;
+ visible: 1;
+ // 3 3, 425x412
+ rel1 {
+ relative: 0.0046875 0.00625;
+ offset: 0 0;
+ to: "logo_point";
+ }
+ rel2 {
+ relative: 0.66875 0.864583333;
+ offset: -1 -1;
+ to: "logo_point";
+ }
+ image {
+ normal: SM"start_eintro_001.png";
+ };
+ }
+ description {
+ state: "intro_go" 0.0;
+ inherit: "intro_start" 0.0;
+ // 3 3, 425x412
+ image {
+#ifdef ALLFRAMES
+ normal: SM"start_eintro_120.png";
+ tween: SM"start_eintro_001.png";
+ tween: SM"start_eintro_002.png";
+ tween: SM"start_eintro_003.png";
+ tween: SM"start_eintro_004.png";
+ tween: SM"start_eintro_005.png";
+ tween: SM"start_eintro_006.png";
+ tween: SM"start_eintro_007.png";
+ tween: SM"start_eintro_008.png";
+ tween: SM"start_eintro_009.png";
+ tween: SM"start_eintro_010.png";
+ tween: SM"start_eintro_011.png";
+ tween: SM"start_eintro_012.png";
+ tween: SM"start_eintro_013.png";
+ tween: SM"start_eintro_014.png";
+ tween: SM"start_eintro_015.png";
+ tween: SM"start_eintro_016.png";
+ tween: SM"start_eintro_017.png";
+ tween: SM"start_eintro_018.png";
+ tween: SM"start_eintro_019.png";
+ tween: SM"start_eintro_020.png";
+ tween: SM"start_eintro_021.png";
+ tween: SM"start_eintro_022.png";
+ tween: SM"start_eintro_023.png";
+ tween: SM"start_eintro_024.png";
+ tween: SM"start_eintro_025.png";
+ tween: SM"start_eintro_026.png";
+ tween: SM"start_eintro_027.png";
+ tween: SM"start_eintro_028.png";
+ tween: SM"start_eintro_029.png";
+ tween: SM"start_eintro_030.png";
+ tween: SM"start_eintro_031.png";
+ tween: SM"start_eintro_032.png";
+ tween: SM"start_eintro_033.png";
+ tween: SM"start_eintro_034.png";
+ tween: SM"start_eintro_035.png";
+ tween: SM"start_eintro_036.png";
+ tween: SM"start_eintro_037.png";
+ tween: SM"start_eintro_038.png";
+ tween: SM"start_eintro_039.png";
+ tween: SM"start_eintro_040.png";
+ tween: SM"start_eintro_041.png";
+ tween: SM"start_eintro_042.png";
+ tween: SM"start_eintro_043.png";
+ tween: SM"start_eintro_044.png";
+ tween: SM"start_eintro_045.png";
+ tween: SM"start_eintro_046.png";
+ tween: SM"start_eintro_047.png";
+ tween: SM"start_eintro_048.png";
+ tween: SM"start_eintro_049.png";
+ tween: SM"start_eintro_050.png";
+ tween: SM"start_eintro_051.png";
+ tween: SM"start_eintro_052.png";
+ tween: SM"start_eintro_053.png";
+ tween: SM"start_eintro_054.png";
+ tween: SM"start_eintro_055.png";
+ tween: SM"start_eintro_056.png";
+ tween: SM"start_eintro_057.png";
+ tween: SM"start_eintro_058.png";
+ tween: SM"start_eintro_059.png";
+ tween: SM"start_eintro_060.png";
+ tween: SM"start_eintro_061.png";
+ tween: SM"start_eintro_062.png";
+ tween: SM"start_eintro_063.png";
+ tween: SM"start_eintro_064.png";
+ tween: SM"start_eintro_065.png";
+ tween: SM"start_eintro_066.png";
+ tween: SM"start_eintro_067.png";
+ tween: SM"start_eintro_068.png";
+ tween: SM"start_eintro_069.png";
+ tween: SM"start_eintro_070.png";
+ tween: SM"start_eintro_071.png";
+ tween: SM"start_eintro_072.png";
+ tween: SM"start_eintro_073.png";
+ tween: SM"start_eintro_074.png";
+ tween: SM"start_eintro_075.png";
+ tween: SM"start_eintro_076.png";
+ tween: SM"start_eintro_077.png";
+ tween: SM"start_eintro_078.png";
+ tween: SM"start_eintro_079.png";
+ tween: SM"start_eintro_080.png";
+ tween: SM"start_eintro_081.png";
+ tween: SM"start_eintro_082.png";
+ tween: SM"start_eintro_083.png";
+ tween: SM"start_eintro_084.png";
+ tween: SM"start_eintro_085.png";
+ tween: SM"start_eintro_086.png";
+ tween: SM"start_eintro_087.png";
+ tween: SM"start_eintro_088.png";
+ tween: SM"start_eintro_089.png";
+ tween: SM"start_eintro_090.png";
+ tween: SM"start_eintro_091.png";
+ tween: SM"start_eintro_092.png";
+ tween: SM"start_eintro_093.png";
+ tween: SM"start_eintro_094.png";
+ tween: SM"start_eintro_095.png";
+ tween: SM"start_eintro_096.png";
+ tween: SM"start_eintro_097.png";
+ tween: SM"start_eintro_098.png";
+ tween: SM"start_eintro_099.png";
+ tween: SM"start_eintro_100.png";
+ tween: SM"start_eintro_101.png";
+ tween: SM"start_eintro_102.png";
+ tween: SM"start_eintro_103.png";
+ tween: SM"start_eintro_104.png";
+ tween: SM"start_eintro_105.png";
+ tween: SM"start_eintro_106.png";
+ tween: SM"start_eintro_107.png";
+ tween: SM"start_eintro_108.png";
+ tween: SM"start_eintro_109.png";
+ tween: SM"start_eintro_110.png";
+ tween: SM"start_eintro_111.png";
+ tween: SM"start_eintro_112.png";
+ tween: SM"start_eintro_113.png";
+ tween: SM"start_eintro_114.png";
+ tween: SM"start_eintro_115.png";
+ tween: SM"start_eintro_116.png";
+ tween: SM"start_eintro_117.png";
+ tween: SM"start_eintro_118.png";
+ tween: SM"start_eintro_119.png";
+#else
+#ifdef HALFFRAMES
+ normal: SM"start_eintro_119.png";
+ tween: SM"start_eintro_001.png";
+ tween: SM"start_eintro_003.png";
+ tween: SM"start_eintro_005.png";
+ tween: SM"start_eintro_007.png";
+ tween: SM"start_eintro_009.png";
+ tween: SM"start_eintro_011.png";
+ tween: SM"start_eintro_013.png";
+ tween: SM"start_eintro_015.png";
+ tween: SM"start_eintro_017.png";
+ tween: SM"start_eintro_019.png";
+ tween: SM"start_eintro_021.png";
+ tween: SM"start_eintro_023.png";
+ tween: SM"start_eintro_025.png";
+ tween: SM"start_eintro_027.png";
+ tween: SM"start_eintro_029.png";
+ tween: SM"start_eintro_031.png";
+ tween: SM"start_eintro_033.png";
+ tween: SM"start_eintro_035.png";
+ tween: SM"start_eintro_037.png";
+ tween: SM"start_eintro_039.png";
+ tween: SM"start_eintro_041.png";
+ tween: SM"start_eintro_043.png";
+ tween: SM"start_eintro_045.png";
+ tween: SM"start_eintro_047.png";
+ tween: SM"start_eintro_049.png";
+ tween: SM"start_eintro_051.png";
+ tween: SM"start_eintro_053.png";
+ tween: SM"start_eintro_055.png";
+ tween: SM"start_eintro_057.png";
+ tween: SM"start_eintro_059.png";
+ tween: SM"start_eintro_061.png";
+ tween: SM"start_eintro_063.png";
+ tween: SM"start_eintro_065.png";
+ tween: SM"start_eintro_067.png";
+ tween: SM"start_eintro_069.png";
+ tween: SM"start_eintro_071.png";
+ tween: SM"start_eintro_073.png";
+ tween: SM"start_eintro_075.png";
+ tween: SM"start_eintro_077.png";
+ tween: SM"start_eintro_079.png";
+ tween: SM"start_eintro_081.png";
+ tween: SM"start_eintro_083.png";
+ tween: SM"start_eintro_085.png";
+ tween: SM"start_eintro_087.png";
+ tween: SM"start_eintro_089.png";
+ tween: SM"start_eintro_091.png";
+ tween: SM"start_eintro_093.png";
+ tween: SM"start_eintro_095.png";
+ tween: SM"start_eintro_097.png";
+ tween: SM"start_eintro_099.png";
+ tween: SM"start_eintro_101.png";
+ tween: SM"start_eintro_103.png";
+ tween: SM"start_eintro_105.png";
+ tween: SM"start_eintro_107.png";
+ tween: SM"start_eintro_109.png";
+ tween: SM"start_eintro_111.png";
+ tween: SM"start_eintro_113.png";
+ tween: SM"start_eintro_115.png";
+ tween: SM"start_eintro_117.png";
+#else
+ normal: SM"start_eintro_117.png";
+ tween: SM"start_eintro_001.png";
+ tween: SM"start_eintro_005.png";
+ tween: SM"start_eintro_009.png";
+ tween: SM"start_eintro_013.png";
+ tween: SM"start_eintro_017.png";
+ tween: SM"start_eintro_021.png";
+ tween: SM"start_eintro_025.png";
+ tween: SM"start_eintro_029.png";
+ tween: SM"start_eintro_033.png";
+ tween: SM"start_eintro_037.png";
+ tween: SM"start_eintro_041.png";
+ tween: SM"start_eintro_045.png";
+ tween: SM"start_eintro_049.png";
+ tween: SM"start_eintro_053.png";
+ tween: SM"start_eintro_057.png";
+ tween: SM"start_eintro_061.png";
+ tween: SM"start_eintro_065.png";
+ tween: SM"start_eintro_069.png";
+ tween: SM"start_eintro_073.png";
+ tween: SM"start_eintro_077.png";
+ tween: SM"start_eintro_081.png";
+ tween: SM"start_eintro_085.png";
+ tween: SM"start_eintro_089.png";
+ tween: SM"start_eintro_093.png";
+ tween: SM"start_eintro_097.png";
+ tween: SM"start_eintro_101.png";
+ tween: SM"start_eintro_105.png";
+ tween: SM"start_eintro_109.png";
+ tween: SM"start_eintro_113.png";
+#endif
+#endif
+ }
+ }
+ description {
+ state: "loop" 0.0;
+ visible: 1;
+ // 228 120, 187x247
+ rel1 {
+ relative: 0.35625 0.25;
+ offset: 0 0;
+ to: "logo_point";
+ }
+ rel2 {
+ relative: 0.6484375 0.76458333;
+ offset: -1 -1;
+ to: "logo_point";
+ }
+ image {
+#ifdef ALLFRAMES
+ normal: SM"loop_eintro_240.png";
+ tween: SM"loop_eintro_121.png";
+ tween: SM"loop_eintro_122.png";
+ tween: SM"loop_eintro_123.png";
+ tween: SM"loop_eintro_124.png";
+ tween: SM"loop_eintro_125.png";
+ tween: SM"loop_eintro_126.png";
+ tween: SM"loop_eintro_127.png";
+ tween: SM"loop_eintro_128.png";
+ tween: SM"loop_eintro_129.png";
+ tween: SM"loop_eintro_130.png";
+ tween: SM"loop_eintro_131.png";
+ tween: SM"loop_eintro_132.png";
+ tween: SM"loop_eintro_133.png";
+ tween: SM"loop_eintro_134.png";
+ tween: SM"loop_eintro_135.png";
+ tween: SM"loop_eintro_136.png";
+ tween: SM"loop_eintro_137.png";
+ tween: SM"loop_eintro_138.png";
+ tween: SM"loop_eintro_139.png";
+ tween: SM"loop_eintro_140.png";
+ tween: SM"loop_eintro_141.png";
+ tween: SM"loop_eintro_142.png";
+ tween: SM"loop_eintro_143.png";
+ tween: SM"loop_eintro_144.png";
+ tween: SM"loop_eintro_145.png";
+ tween: SM"loop_eintro_146.png";
+ tween: SM"loop_eintro_147.png";
+ tween: SM"loop_eintro_148.png";
+ tween: SM"loop_eintro_149.png";
+ tween: SM"loop_eintro_150.png";
+ tween: SM"loop_eintro_151.png";
+ tween: SM"loop_eintro_152.png";
+ tween: SM"loop_eintro_153.png";
+ tween: SM"loop_eintro_154.png";
+ tween: SM"loop_eintro_155.png";
+ tween: SM"loop_eintro_156.png";
+ tween: SM"loop_eintro_157.png";
+ tween: SM"loop_eintro_158.png";
+ tween: SM"loop_eintro_159.png";
+ tween: SM"loop_eintro_160.png";
+ tween: SM"loop_eintro_161.png";
+ tween: SM"loop_eintro_162.png";
+ tween: SM"loop_eintro_163.png";
+ tween: SM"loop_eintro_164.png";
+ tween: SM"loop_eintro_165.png";
+ tween: SM"loop_eintro_166.png";
+ tween: SM"loop_eintro_167.png";
+ tween: SM"loop_eintro_168.png";
+ tween: SM"loop_eintro_169.png";
+ tween: SM"loop_eintro_170.png";
+ tween: SM"loop_eintro_171.png";
+ tween: SM"loop_eintro_172.png";
+ tween: SM"loop_eintro_173.png";
+ tween: SM"loop_eintro_174.png";
+ tween: SM"loop_eintro_175.png";
+ tween: SM"loop_eintro_176.png";
+ tween: SM"loop_eintro_177.png";
+ tween: SM"loop_eintro_178.png";
+ tween: SM"loop_eintro_179.png";
+ tween: SM"loop_eintro_180.png";
+ tween: SM"loop_eintro_181.png";
+ tween: SM"loop_eintro_182.png";
+ tween: SM"loop_eintro_183.png";
+ tween: SM"loop_eintro_184.png";
+ tween: SM"loop_eintro_185.png";
+ tween: SM"loop_eintro_186.png";
+ tween: SM"loop_eintro_187.png";
+ tween: SM"loop_eintro_188.png";
+ tween: SM"loop_eintro_189.png";
+ tween: SM"loop_eintro_190.png";
+ tween: SM"loop_eintro_191.png";
+ tween: SM"loop_eintro_192.png";
+ tween: SM"loop_eintro_193.png";
+ tween: SM"loop_eintro_194.png";
+ tween: SM"loop_eintro_195.png";
+ tween: SM"loop_eintro_196.png";
+ tween: SM"loop_eintro_197.png";
+ tween: SM"loop_eintro_198.png";
+ tween: SM"loop_eintro_199.png";
+ tween: SM"loop_eintro_200.png";
+ tween: SM"loop_eintro_201.png";
+ tween: SM"loop_eintro_202.png";
+ tween: SM"loop_eintro_203.png";
+ tween: SM"loop_eintro_204.png";
+ tween: SM"loop_eintro_205.png";
+ tween: SM"loop_eintro_206.png";
+ tween: SM"loop_eintro_207.png";
+ tween: SM"loop_eintro_208.png";
+ tween: SM"loop_eintro_209.png";
+ tween: SM"loop_eintro_210.png";
+ tween: SM"loop_eintro_211.png";
+ tween: SM"loop_eintro_212.png";
+ tween: SM"loop_eintro_213.png";
+ tween: SM"loop_eintro_214.png";
+ tween: SM"loop_eintro_215.png";
+ tween: SM"loop_eintro_216.png";
+ tween: SM"loop_eintro_217.png";
+ tween: SM"loop_eintro_218.png";
+ tween: SM"loop_eintro_219.png";
+ tween: SM"loop_eintro_220.png";
+ tween: SM"loop_eintro_221.png";
+ tween: SM"loop_eintro_222.png";
+ tween: SM"loop_eintro_223.png";
+ tween: SM"loop_eintro_224.png";
+ tween: SM"loop_eintro_225.png";
+ tween: SM"loop_eintro_226.png";
+ tween: SM"loop_eintro_227.png";
+ tween: SM"loop_eintro_228.png";
+ tween: SM"loop_eintro_229.png";
+ tween: SM"loop_eintro_230.png";
+ tween: SM"loop_eintro_231.png";
+ tween: SM"loop_eintro_232.png";
+ tween: SM"loop_eintro_233.png";
+ tween: SM"loop_eintro_234.png";
+ tween: SM"loop_eintro_235.png";
+ tween: SM"loop_eintro_236.png";
+ tween: SM"loop_eintro_237.png";
+ tween: SM"loop_eintro_238.png";
+ tween: SM"loop_eintro_239.png";
+#else
+#ifdef HALFFRAMES
+ normal: SM"loop_eintro_239.png";
+ tween: SM"loop_eintro_121.png";
+ tween: SM"loop_eintro_123.png";
+ tween: SM"loop_eintro_125.png";
+ tween: SM"loop_eintro_127.png";
+ tween: SM"loop_eintro_129.png";
+ tween: SM"loop_eintro_131.png";
+ tween: SM"loop_eintro_133.png";
+ tween: SM"loop_eintro_135.png";
+ tween: SM"loop_eintro_137.png";
+ tween: SM"loop_eintro_139.png";
+ tween: SM"loop_eintro_141.png";
+ tween: SM"loop_eintro_143.png";
+ tween: SM"loop_eintro_145.png";
+ tween: SM"loop_eintro_147.png";
+ tween: SM"loop_eintro_149.png";
+ tween: SM"loop_eintro_151.png";
+ tween: SM"loop_eintro_153.png";
+ tween: SM"loop_eintro_155.png";
+ tween: SM"loop_eintro_157.png";
+ tween: SM"loop_eintro_159.png";
+ tween: SM"loop_eintro_161.png";
+ tween: SM"loop_eintro_163.png";
+ tween: SM"loop_eintro_165.png";
+ tween: SM"loop_eintro_167.png";
+ tween: SM"loop_eintro_169.png";
+ tween: SM"loop_eintro_171.png";
+ tween: SM"loop_eintro_173.png";
+ tween: SM"loop_eintro_175.png";
+ tween: SM"loop_eintro_177.png";
+ tween: SM"loop_eintro_179.png";
+ tween: SM"loop_eintro_181.png";
+ tween: SM"loop_eintro_183.png";
+ tween: SM"loop_eintro_185.png";
+ tween: SM"loop_eintro_187.png";
+ tween: SM"loop_eintro_189.png";
+ tween: SM"loop_eintro_191.png";
+ tween: SM"loop_eintro_193.png";
+ tween: SM"loop_eintro_195.png";
+ tween: SM"loop_eintro_197.png";
+ tween: SM"loop_eintro_199.png";
+ tween: SM"loop_eintro_201.png";
+ tween: SM"loop_eintro_203.png";
+ tween: SM"loop_eintro_205.png";
+ tween: SM"loop_eintro_207.png";
+ tween: SM"loop_eintro_209.png";
+ tween: SM"loop_eintro_211.png";
+ tween: SM"loop_eintro_213.png";
+ tween: SM"loop_eintro_215.png";
+ tween: SM"loop_eintro_217.png";
+ tween: SM"loop_eintro_219.png";
+ tween: SM"loop_eintro_221.png";
+ tween: SM"loop_eintro_223.png";
+ tween: SM"loop_eintro_225.png";
+ tween: SM"loop_eintro_227.png";
+ tween: SM"loop_eintro_229.png";
+ tween: SM"loop_eintro_231.png";
+ tween: SM"loop_eintro_233.png";
+ tween: SM"loop_eintro_235.png";
+ tween: SM"loop_eintro_237.png";
+#else
+ normal: SM"loop_eintro_237.png";
+ tween: SM"loop_eintro_121.png";
+ tween: SM"loop_eintro_125.png";
+ tween: SM"loop_eintro_129.png";
+ tween: SM"loop_eintro_133.png";
+ tween: SM"loop_eintro_137.png";
+ tween: SM"loop_eintro_141.png";
+ tween: SM"loop_eintro_145.png";
+ tween: SM"loop_eintro_149.png";
+ tween: SM"loop_eintro_153.png";
+ tween: SM"loop_eintro_157.png";
+ tween: SM"loop_eintro_161.png";
+ tween: SM"loop_eintro_165.png";
+ tween: SM"loop_eintro_169.png";
+ tween: SM"loop_eintro_173.png";
+ tween: SM"loop_eintro_177.png";
+ tween: SM"loop_eintro_181.png";
+ tween: SM"loop_eintro_185.png";
+ tween: SM"loop_eintro_189.png";
+ tween: SM"loop_eintro_193.png";
+ tween: SM"loop_eintro_197.png";
+ tween: SM"loop_eintro_201.png";
+ tween: SM"loop_eintro_205.png";
+ tween: SM"loop_eintro_209.png";
+ tween: SM"loop_eintro_213.png";
+ tween: SM"loop_eintro_217.png";
+ tween: SM"loop_eintro_221.png";
+ tween: SM"loop_eintro_225.png";
+ tween: SM"loop_eintro_229.png";
+ tween: SM"loop_eintro_233.png";
+#endif
+#endif
+ }
+ }
+ }
+ part {
+ name: "shadow";
+ description {
+ state: "default" 0.0;
+ image {
+ normal: SM"shadow.png";
+ }
+ }
+ }
+ }
+ programs {
+ program {
+ name: "init_pause";
+ signal: "show";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ transition: LINEAR 1.0;
+ target: "logo_point";
+ after: "logo_show";
+ after: "logo_animate";
+ }
+ program {
+ name: "logo_show";
+ action: STATE_SET "visible" 0.0;
+ transition: SINUSOIDAL 1.0;
+ target: "logo_point";
+ }
+ program {
+ name: "logo_animate";
+ action: STATE_SET "intro_start" 0.0;
+ target: "logo";
+ after: "logo_animate2";
+ }
+ program {
+ name: "logo_animate2";
+ action: STATE_SET "intro_go" 0.0;
+ transition: LINEAR 4.0;
+ target: "logo";
+ after: "logo_animate3";
+ }
+ program {
+ name: "logo_animate3";
+ action: STATE_SET "loop" 0.0;
+ target: "logo";
+ after: "logo_animate4";
+ }
+ program {
+ name: "logo_animate4";
+ action: STATE_SET "loop" 0.0;
+ transition: LINEAR 4.0;
+ target: "logo";
+ after: "logo_animate4";
+ }
+ }
+ }
+}
diff --git a/data/other/Makefile.am b/data/other/Makefile.am
new file mode 100644
index 000000000..02503e4eb
--- /dev/null
+++ b/data/other/Makefile.am
@@ -0,0 +1,5 @@
+MAINTAINERCLEANFILES = Makefile.in
+filesdir = $(datadir)/enlightenment/data/other
+files_DATA = favorite_apps.tar.gz
+
+EXTRA_DIST = $(files_DATA)
diff --git a/data/other/favorite_apps.tar.gz b/data/other/favorite_apps.tar.gz
new file mode 100644
index 000000000..a7bfb7f36
--- /dev/null
+++ b/data/other/favorite_apps.tar.gz
Binary files differ
diff --git a/data/themes/Makefile.am b/data/themes/Makefile.am
new file mode 100644
index 000000000..172a9541c
--- /dev/null
+++ b/data/themes/Makefile.am
@@ -0,0 +1,24 @@
+MAINTAINERCLEANFILES = Makefile.in
+SUBDIRS = images
+
+EDJE_CC = @edje_cc@
+EDJE_FLAGS = \
+-v \
+-id $(top_srcdir)/data/themes/images \
+-fd $(top_srcdir)/data/fonts \
+@EDJE_DEF@
+
+filesdir = $(datadir)/enlightenment/data/themes
+files_DATA = \
+default.eet
+
+EXTRA_DIST = default.edc
+
+default.eet: Makefile default.edc
+ $(EDJE_CC) $(EDJE_FLAGS) \
+ $(top_srcdir)/data/themes/default.edc \
+ $(top_builddir)/data/themes/default.eet
+
+clean-local:
+ rm -f *.eet
+
diff --git a/data/themes/default.edc b/data/themes/default.edc
new file mode 100644
index 000000000..78783c723
--- /dev/null
+++ b/data/themes/default.edc
@@ -0,0 +1,4232 @@
+#ifdef E17_PROFILE
+# if E17_PROFILE == LOWRES_PDA
+# define SM "sm_"
+# elif E17_PROFILE == MEDIUMRES_PDA
+# define SM "sm_"
+# elif E17_PROFILE == HIRES_PDA
+# define SM "sm_"
+# elif E17_PROFILE == SLOW_PC
+# define SM "sm_"
+# elif E17_PROFILE == MEDIUM_PC
+# define SM
+# elif E17_PROFILE == FAST_PC
+# define SM
+# endif
+#else
+# define SM
+#endif
+
+fonts {
+ font: "Vera.ttf" "Edje Vera";
+// font: "kochi-gothic.ttf" "Edje Vera";
+// font: "VeraBd.ttf" "Edje Vera Bold";
+}
+
+images {
+ image: "e17_brushed.png" COMP;
+ image: "e17_"SM"reflection_shadow_overlay.png" LOSSY 70;
+
+ image: "e17_menu_arrow.png" COMP;
+ image: "e17_menu_bg.png" COMP;
+ image: "e17_menu_check1.png" COMP;
+ image: "e17_menu_check2.png" COMP;
+ image: "e17_menu_radio1.png" COMP;
+ image: "e17_menu_radio2.png" COMP;
+ image: "e17_menu_separator.png" COMP;
+
+ image: "e17_border1.png" COMP;
+ image: "e17_border2.png" COMP;
+ image: "e17_border3.png" COMP;
+ image: "e17_border4.png" COMP;
+ image: "e17_border5.png" COMP;
+ image: "e17_border6.png" COMP;
+ image: "e17_border7.png" COMP;
+ image: "e17_titlebar_outline.png" COMP;
+ image: "e17_titlebar.png" COMP;
+ image: "e17_titlebar_shadow1.png" COMP;
+ image: "e17_titlebar_shadow2.png" COMP;
+ image: "e17_button_detail_close.png" COMP;
+ image: "e17_button_detail_maximize.png" COMP;
+ image: "e17_button_detail_minimize.png" COMP;
+ image: "e17_mini_button.png" COMP;
+ image: "e17_mini_button_shadow1.png" COMP;
+ image: "e17_mini_button_shadow2.png" COMP;
+
+ image: "e17_ibar_arrow_d.png" COMP;
+ image: "e17_ibar_arrow_l.png" COMP;
+ image: "e17_ibar_arrow_r.png" COMP;
+ image: "e17_ibar_arrow_u.png" COMP;
+ image: "e17_ibar_bg_h.png" COMP;
+ image: "e17_ibar_bg_v.png" COMP;
+ image: "e17_ibar_handle_h.png" COMP;
+ image: "e17_ibar_handle_h2.png" COMP;
+ image: "e17_ibar_handle_thumb_h.png" COMP;
+ image: "e17_ibar_handle_thumb_v.png" COMP;
+ image: "e17_ibar_handle_v.png" COMP;
+ image: "e17_ibar_handle_v2.png" COMP;
+ image: "e17_ibar_lamp_d.png" COMP;
+ image: "e17_ibar_lamp_l.png" COMP;
+ image: "e17_ibar_lamp_r.png" COMP;
+ image: "e17_ibar_lamp_u.png" COMP;
+ image: "e17_ibar_over_h.png" COMP;
+ image: "e17_ibar_over_v.png" COMP;
+}
+
+images {
+}
+
+collections {
+ group {
+ name: "desktop/background";
+ parts {
+ part {
+ name: "background_image";
+ description {
+ state: "default" 0.0;
+ image {
+ normal: "e17_brushed.png";
+ }
+ fill {
+ size {
+ relative: 0 0;
+ offset: 400 300;
+ }
+ }
+ }
+ }
+ part {
+ name: "reflection_shadow_overlay";
+ description {
+ state: "default" 0.0;
+ image {
+ normal: "e17_"SM"reflection_shadow_overlay.png";
+ }
+ }
+ }
+ }
+ }
+ group {
+ name: "widgets/border/default/border";
+ data {
+ item: "client_inset" "4 4 24 4";
+ }
+ parts {
+ part {
+ name: "title2";
+ type: TEXT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ align: 1.0 0.0;
+ visible: 0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 7;
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ offset: 0 7;
+ }
+ text {
+ text_source: "title_text";
+ source: "title_text";
+ min: 0 1;
+ }
+ }
+ }
+ part {
+ name: "t1";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ aspect: 1.0 1.0;
+ aspect_preference: VERTICAL;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ offset: 0 5;
+ to_y: "title2";
+ }
+ image {
+ normal: "e17_border1.png";
+ border: 6 2 3 3;
+ }
+ }
+ }
+ part {
+ name: "t2";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min: 0 1;
+ rel1 {
+ relative: 1.0 0.0;
+ offset: 0 0;
+ to: "t1";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ offset: -1 -1;
+ to: "t3";
+ }
+ image {
+ normal: "e17_border2.png";
+ border: 2 2 3 3;
+ }
+ }
+ }
+ part {
+ name: "t3";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to_x: "button_2";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 5;
+ to_y: "title2";
+ }
+ image {
+ normal: "e17_border3.png";
+ border: 3 6 3 3;
+ }
+ }
+ }
+ part {
+ name: "b1";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 1.0 1.0;
+ offset: -4 0;
+ to_y: "t3";
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ offset: -1 -1;
+ to_y: "b2";
+ }
+ image {
+ normal: "e17_border4.png";
+ }
+ fill {
+ smooth: 0;
+ }
+ }
+ }
+ part {
+ name: "b2";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 1.0 1.0;
+ offset: -4 -4;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ }
+ image {
+ normal: "e17_border5.png";
+ }
+ }
+ }
+ part {
+ name: "b3";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 1.0 0.0;
+ offset: 0 0;
+ to: "b4";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ offset: -1 -1;
+ to: "b2";
+ }
+ image {
+ normal: "e17_border6.png";
+ }
+ fill {
+ smooth: 0;
+ }
+ }
+ }
+ part {
+ name: "b4";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 -4;
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ offset: 3 -1;
+ }
+ image {
+ normal: "e17_border7.png";
+ }
+ }
+ }
+ part {
+ name: "b5";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 0;
+ to_y: "t1";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ offset: 3 -1;
+ to_y: "b4";
+ }
+ image {
+ normal: "e17_border4.png";
+ }
+ fill {
+ smooth: 0;
+ }
+ }
+ }
+ part {
+ name: "title_outline";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min: 14 14;
+ visible: 1;
+ rel1 {
+ relative: 1.0 0.0;
+ offset: 0 -7;
+ to_x: "t1";
+ to_y: "title2";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ offset: -2 4;
+ to_x: "t3";
+ to_y: "title2";
+ }
+ image {
+ normal: "e17_titlebar_outline.png";
+ border: 8 8 8 8;
+ }
+ color: 255 255 255 255;
+ }
+ description {
+ state: "active" 0.0;
+ min: 14 14;
+ visible: 0;
+ rel1 {
+ relative: 1.0 0.0;
+ offset: 0 -7;
+ to_x: "t1";
+ to_y: "title2";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ offset: -2 4;
+ to_x: "t3";
+ to_y: "title2";
+ }
+ image {
+ normal: "e17_titlebar_outline.png";
+ border: 8 8 8 8;
+ }
+ color: 255 255 255 0;
+ }
+ }
+ part {
+ name: "title_shadow2";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to: "title_outline";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ to: "title_outline";
+ }
+ image {
+ normal: "e17_titlebar_shadow2.png";
+ border: 8 8 8 8;
+ }
+ color: 255 255 255 0;
+ }
+ description {
+ state: "active" 0.0;
+ visible: 1;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to: "title_outline";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ to: "title_outline";
+ }
+ image {
+ normal: "e17_titlebar_shadow2.png";
+ border: 8 8 8 8;
+ }
+ color: 255 255 255 255;
+ }
+ }
+ part {
+ name: "title_shadow1";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to: "title_outline";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ to: "title_outline";
+ }
+ image {
+ normal: "e17_titlebar_shadow1.png";
+ border: 8 8 8 8;
+ }
+ color: 255 255 255 0;
+ }
+ description {
+ state: "active" 0.0;
+ visible: 1;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to: "title_outline";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ to: "title_outline";
+ }
+ image {
+ normal: "e17_titlebar_shadow1.png";
+ border: 8 8 8 8;
+ }
+ color: 255 255 255 255;
+ }
+ }
+ part {
+ name: "title_bar";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to: "title_outline";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ to: "title_outline";
+ }
+ image {
+ normal: "e17_titlebar.png";
+ border: 8 8 8 8;
+ }
+ color: 255 255 255 0;
+ }
+ description {
+ state: "active" 0.0;
+ visible: 1;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to: "title_outline";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ to: "title_outline";
+ }
+ image {
+ normal: "e17_titlebar.png";
+ border: 8 8 8 8;
+ }
+ color: 255 255 255 255;
+ }
+ }
+ part {
+ name: "title_text";
+ type: TEXT;
+ effect: SHADOW;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ align: 1.0 0.0;
+ rel1 {
+ relative: 1.0 0.0;
+ offset: 9 7;
+ to_x: "t1";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ offset: -10 7;
+ to_x: "t3";
+ }
+ color: 0 0 0 255;
+ color3: 255 255 255 128;
+ text {
+ text: "";
+ font: "Edje Vera";
+ size: 10;
+ min: 0 1;
+ align: 0.0 0.5;
+ }
+ }
+ }
+ part {
+ name: "button_0_shadow2";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to: "button_0_bg";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ to: "button_0_bg";
+ }
+ image {
+ normal: "e17_mini_button_shadow2.png";
+ border: 8 8 8 8;
+ }
+ color: 255 255 255 255;
+ }
+ description {
+ state: "active" 0.0;
+ visible: 0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to: "button_0_bg";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ to: "button_0_bg";
+ }
+ image {
+ normal: "e17_mini_button_shadow2.png";
+ border: 8 8 8 8;
+ }
+ color: 255 255 255 0;
+ }
+ }
+ part {
+ name: "button_1_shadow2";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to: "button_1_bg";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ to: "button_1_bg";
+ }
+ image {
+ normal: "e17_mini_button_shadow2.png";
+ border: 8 8 8 8;
+ }
+ }
+ description {
+ state: "active" 0.0;
+ visible: 0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to: "button_1_bg";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ to: "button_1_bg";
+ }
+ image {
+ normal: "e17_mini_button_shadow2.png";
+ border: 8 8 8 8;
+ }
+ color: 255 255 255 0;
+ }
+ }
+ part {
+ name: "button_2_shadow2";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to: "button_2_bg";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ to: "button_2_bg";
+ }
+ image {
+ normal: "e17_mini_button_shadow2.png";
+ border: 8 8 8 8;
+ }
+ }
+ description {
+ state: "active" 0.0;
+ visible: 0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to: "button_2_bg";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ to: "button_2_bg";
+ }
+ image {
+ normal: "e17_mini_button_shadow2.png";
+ border: 8 8 8 8;
+ }
+ color: 255 255 255 0;
+ }
+ }
+ part {
+ name: "button_0_shadow1";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to: "button_0_bg";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ to: "button_0_bg";
+ }
+ image {
+ normal: "e17_mini_button_shadow1.png";
+ border: 8 8 8 8;
+ }
+ color: 255 255 255 255;
+ }
+ description {
+ state: "active" 0.0;
+ visible: 0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to: "button_0_bg";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ to: "button_0_bg";
+ }
+ image {
+ normal: "e17_mini_button_shadow1.png";
+ border: 8 8 8 8;
+ }
+ color: 255 255 255 0;
+ }
+ }
+ part {
+ name: "button_1_shadow1";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to: "button_1_bg";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ to: "button_1_bg";
+ }
+ image {
+ normal: "e17_mini_button_shadow1.png";
+ border: 8 8 8 8;
+ }
+ }
+ description {
+ state: "active" 0.0;
+ visible: 0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to: "button_1_bg";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ to: "button_1_bg";
+ }
+ image {
+ normal: "e17_mini_button_shadow1.png";
+ border: 8 8 8 8;
+ }
+ color: 255 255 255 0;
+ }
+ }
+ part {
+ name: "button_2_shadow1";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to: "button_2_bg";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ to: "button_2_bg";
+ }
+ image {
+ normal: "e17_mini_button_shadow1.png";
+ border: 8 8 8 8;
+ }
+ }
+ description {
+ state: "active" 0.0;
+ visible: 0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to: "button_2_bg";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ to: "button_2_bg";
+ }
+ image {
+ normal: "e17_mini_button_shadow1.png";
+ border: 8 8 8 8;
+ }
+ color: 255 255 255 0;
+ }
+ }
+ part {
+ name: "button_0_bg";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to: "button_0";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ to: "button_0";
+ }
+ image {
+ normal: "e17_mini_button.png";
+ border: 8 8 8 8;
+ }
+ }
+ description {
+ state: "active" 0.0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 1 1;
+ to: "button_0";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: 0 0;
+ to: "button_0";
+ }
+ image {
+ normal: "e17_mini_button.png";
+ border: 8 8 8 8;
+ }
+ }
+ }
+ part {
+ name: "button_1_bg";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to: "button_1";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ to: "button_1";
+ }
+ image {
+ normal: "e17_mini_button.png";
+ border: 8 8 8 8;
+ }
+ }
+ description {
+ state: "active" 0.0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 1 1;
+ to: "button_1";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: 0 0;
+ to: "button_1";
+ }
+ image {
+ normal: "e17_mini_button.png";
+ border: 8 8 8 8;
+ }
+ }
+ }
+ part {
+ name: "button_2_bg";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to: "button_2";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ to: "button_2";
+ }
+ image {
+ normal: "e17_mini_button.png";
+ border: 8 8 8 8;
+ }
+ }
+ description {
+ state: "active" 0.0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 1 1;
+ to: "button_2";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: 0 0;
+ to: "button_2";
+ }
+ image {
+ normal: "e17_mini_button.png";
+ border: 8 8 8 8;
+ }
+ }
+ }
+ part {
+ name: "button_0_detail";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ max: 16 16;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 4 4;
+ to: "button_0_bg";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -5 -5;
+ to: "button_0_bg";
+ }
+ image {
+ normal: "e17_button_detail_close.png";
+ }
+ }
+ }
+ part {
+ name: "button_1_detail";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ max: 16 16;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 4 4;
+ to: "button_1_bg";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -5 -5;
+ to: "button_1_bg";
+ }
+ image {
+ normal: "e17_button_detail_maximize.png";
+ }
+ }
+ }
+ part {
+ name: "button_2_detail";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ max: 16 16;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 4 4;
+ to: "button_2_bg";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -5 -5;
+ to: "button_2_bg";
+ }
+ image {
+ normal: "e17_button_detail_minimize.png";
+ }
+ }
+ }
+ part {
+ name: "client";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 4 0;
+ to: "t1";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ offset: -1 -1;
+ to: "t2";
+ }
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "icon_swallow";
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 2 2;
+ to: "t1";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -2 -3;
+ to: "t1";
+ }
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "resize_l";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 0;
+ to_y: "t1";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ offset: 3 -1;
+ }
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "resize_r";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 1.0 1.0;
+ offset: -4 0;
+ to_y: "t3";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ }
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "resize_b";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 -4;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ }
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "resize_bl";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 -24;
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ offset: 23 -1;
+ }
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "resize_br";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 1.0 1.0;
+ offset: -24 -24;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ }
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "icon";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ to: "icon_swallow";
+ }
+ rel2 {
+ to: "icon_swallow";
+ }
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "button_0";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ align: 1.0 0.0;
+ aspect: 1.0 1.0;
+ aspect_preference: VERTICAL;
+ rel1 {
+ relative: 1.0 0.0;
+ offset: 0 0;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: 0 5;
+ to_y: "title2";
+ }
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "button_1";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ align: 1.0 0.0;
+ aspect: 1.0 1.0;
+ aspect_preference: VERTICAL;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 3 0;
+ to: "button_0";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ offset: 3 -1;
+ to: "button_0";
+ }
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "button_2";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ align: 1.0 0.0;
+ aspect: 1.0 1.0;
+ aspect_preference: VERTICAL;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 3 0;
+ to: "button_1";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ offset: 3 -1;
+ to: "button_1";
+ }
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "title";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ to: "title_bar";
+ }
+ rel2 {
+ to: "title_bar";
+ }
+ color: 0 0 0 0;
+ }
+ }
+ }
+ programs {
+ program {
+ name: "move_window1";
+ signal: "mouse,down,1";
+ source: "title";
+ action: SIGNAL_EMIT "move_start" "mouse,1";
+ }
+ program {
+ name: "move_window2";
+ signal: "mouse,up,1";
+ source: "title";
+ action: SIGNAL_EMIT "move_stop" "mouse,1";
+ }
+ program {
+ name: "resize_window_tl1";
+ signal: "mouse,down,1";
+ source: "resize_tl";
+ action: SIGNAL_EMIT "resize_tl_start" "mouse,1";
+ }
+ program {
+ name: "resize_window_tl2";
+ signal: "mouse,up,1";
+ source: "resize_tl";
+ action: SIGNAL_EMIT "resize_stop" "mouse,1";
+ }
+ program {
+ name: "resize_window_t1";
+ signal: "mouse,down,1";
+ source: "resize_t";
+ action: SIGNAL_EMIT "resize_t_start" "mouse,1";
+ }
+ program {
+ name: "resize_window_t2";
+ signal: "mouse,up,1";
+ source: "resize_t";
+ action: SIGNAL_EMIT "resize_stop" "mouse,1";
+ }
+ program {
+ name: "resize_window_tr1";
+ signal: "mouse,down,1";
+ source: "resize_tr";
+ action: SIGNAL_EMIT "resize_tr_start" "mouse,1";
+ }
+ program {
+ name: "resize_window_tr2";
+ signal: "mouse,up,1";
+ source: "resize_tr";
+ action: SIGNAL_EMIT "resize_stop" "mouse,1";
+ }
+ program {
+ name: "resize_window_r1";
+ signal: "mouse,down,1";
+ source: "resize_r";
+ action: SIGNAL_EMIT "resize_r_start" "mouse,1";
+ }
+ program {
+ name: "resize_window_r2";
+ signal: "mouse,up,1";
+ source: "resize_r";
+ action: SIGNAL_EMIT "resize_stop" "mouse,1";
+ }
+ program {
+ name: "resize_window_br1";
+ signal: "mouse,down,1";
+ source: "resize_br";
+ action: SIGNAL_EMIT "resize_br_start" "mouse,1";
+ }
+ program {
+ name: "resize_window_br2";
+ signal: "mouse,up,1";
+ source: "resize_br";
+ action: SIGNAL_EMIT "resize_stop" "mouse,1";
+ }
+ program {
+ name: "resize_window_b1";
+ signal: "mouse,down,1";
+ source: "resize_b";
+ action: SIGNAL_EMIT "resize_b_start" "mouse,1";
+ }
+ program {
+ name: "resize_window_b2";
+ signal: "mouse,up,1";
+ source: "resize_b";
+ action: SIGNAL_EMIT "resize_stop" "mouse,1";
+ }
+ program {
+ name: "resize_window_bl1";
+ signal: "mouse,down,1";
+ source: "resize_bl";
+ action: SIGNAL_EMIT "resize_bl_start" "mouse,1";
+ }
+ program {
+ name: "resize_window_bl2";
+ signal: "mouse,up,1";
+ source: "resize_bl";
+ action: SIGNAL_EMIT "resize_stop" "mouse,1";
+ }
+ program {
+ name: "resize_window_l1";
+ signal: "mouse,down,1";
+ source: "resize_l";
+ action: SIGNAL_EMIT "resize_l_start" "mouse,1";
+ }
+ program {
+ name: "resize_window_l2";
+ signal: "mouse,up,1";
+ source: "resize_l";
+ action: SIGNAL_EMIT "resize_stop" "mouse,1";
+ }
+ program {
+ name: "close_action";
+ signal: "mouse,clicked,1";
+ source: "button_0";
+ action: SIGNAL_EMIT "action" "close";
+ }
+
+ program {
+ name: "go_active_pre";
+ signal: "active";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "title_outline";
+ target: "title_bar";
+ target: "title_shadow1";
+ target: "title_shadow2";
+ after: "go_active";
+ }
+ program {
+ name: "go_active";
+ action: STATE_SET "active" 0.0;
+ target: "title_outline";
+ target: "title_bar";
+ transition: LINEAR 0.05;
+ after: "go_active2";
+ }
+ program {
+ name: "go_active2";
+ action: STATE_SET "active" 0.0;
+ target: "title_shadow1";
+ transition: LINEAR 0.05;
+ after: "go_active3";
+ }
+ program {
+ name: "go_active3";
+ action: STATE_SET "active" 0.0;
+ target: "title_shadow2";
+ transition: LINEAR 0.05;
+ }
+
+ program {
+ name: "go_passive_pre";
+ signal: "passive";
+ source: "";
+ action: STATE_SET "active" 0.0;
+ target: "title_outline";
+ target: "title_bar";
+ target: "title_shadow1";
+ target: "title_shadow2";
+ after: "go_passive";
+ }
+ program {
+ name: "go_passive";
+ action: STATE_SET "default" 0.0;
+ target: "title_shadow2";
+ transition: LINEAR 0.1;
+ after: "go_passive2";
+ }
+ program {
+ name: "go_passive2";
+ action: STATE_SET "default" 0.0;
+ target: "title_shadow1";
+ transition: LINEAR 0.1;
+ after: "go_passive3";
+ }
+ program {
+ name: "go_passive3";
+ action: STATE_SET "default" 0.0;
+ target: "title_outline";
+ target: "title_bar";
+ transition: LINEAR 0.1;
+ }
+
+ program {
+ name: "button_0_active_pre";
+ signal: "mouse,down,1";
+ source: "button_0";
+ action: STATE_SET "default" 0.0;
+ target: "button_0_shadow1";
+ target: "button_0_shadow2";
+ target: "button_0_bg";
+ target: "button_0_detail";
+ after: "button_0_active";
+ after: "button_0_active_p";
+ }
+ program {
+ name: "button_0_active";
+ action: STATE_SET "active" 0.0;
+ target: "button_0_shadow2";
+ transition: LINEAR 0.05;
+ after: "button_0_active2";
+ }
+ program {
+ name: "button_0_active2";
+ action: STATE_SET "active" 0.0;
+ target: "button_0_shadow1";
+ transition: LINEAR 0.05;
+ }
+ program {
+ name: "button_0_active_p";
+ action: STATE_SET "active" 0.0;
+ target: "button_0_bg";
+ target: "button_0_detail";
+ transition: LINEAR 0.1;
+ }
+ program {
+ name: "button_0_passive_pre";
+ signal: "mouse,up,1";
+ source: "button_0";
+ action: STATE_SET "active" 0.0;
+ target: "button_0_shadow1";
+ target: "button_0_shadow2";
+ target: "button_0_bg";
+ target: "button_0_detail";
+ after: "button_0_passive";
+ after: "button_0_passive_p";
+ }
+ program {
+ name: "button_0_passive";
+ action: STATE_SET "default" 0.0;
+ target: "button_0_shadow2";
+ transition: LINEAR 0.1;
+ after: "button_0_passive2";
+ }
+ program {
+ name: "button_0_passive2";
+ action: STATE_SET "default" 0.0;
+ target: "button_0_shadow1";
+ transition: LINEAR 0.1;
+ }
+ program {
+ name: "button_0_passive_p";
+ action: STATE_SET "default" 0.0;
+ target: "button_0_bg";
+ target: "button_0_detail";
+ transition: LINEAR 0.2;
+ }
+
+
+ program {
+ name: "button_1_active_pre";
+ signal: "mouse,down,1";
+ source: "button_1";
+ action: STATE_SET "default" 0.0;
+ target: "button_1_shadow1";
+ target: "button_1_shadow2";
+ target: "button_1_bg";
+ target: "button_1_detail";
+ after: "button_1_active";
+ after: "button_1_active_p";
+ }
+ program {
+ name: "button_1_active";
+ action: STATE_SET "active" 0.0;
+ target: "button_1_shadow2";
+ transition: LINEAR 0.05;
+ after: "button_1_active2";
+ }
+ program {
+ name: "button_1_active2";
+ action: STATE_SET "active" 0.0;
+ target: "button_1_shadow1";
+ transition: LINEAR 0.05;
+ }
+ program {
+ name: "button_1_active_p";
+ action: STATE_SET "active" 0.0;
+ target: "button_1_bg";
+ target: "button_1_detail";
+ transition: LINEAR 0.1;
+ }
+ program {
+ name: "button_1_passive_pre";
+ signal: "mouse,up,1";
+ source: "button_1";
+ action: STATE_SET "active" 0.0;
+ target: "button_1_shadow1";
+ target: "button_1_shadow2";
+ target: "button_1_bg";
+ target: "button_1_detail";
+ after: "button_1_passive";
+ after: "button_1_passive_p";
+ }
+ program {
+ name: "button_1_passive";
+ action: STATE_SET "default" 0.0;
+ target: "button_1_shadow2";
+ transition: LINEAR 0.1;
+ after: "button_1_passive2";
+ }
+ program {
+ name: "button_1_passive2";
+ action: STATE_SET "default" 0.0;
+ target: "button_1_shadow1";
+ transition: LINEAR 0.1;
+ }
+ program {
+ name: "button_1_passive_p";
+ action: STATE_SET "default" 0.0;
+ target: "button_1_bg";
+ target: "button_1_detail";
+ transition: LINEAR 0.2;
+ }
+
+ program {
+ name: "button_2_active_pre";
+ signal: "mouse,down,1";
+ source: "button_2";
+ action: STATE_SET "default" 0.0;
+ target: "button_2_shadow1";
+ target: "button_2_shadow2";
+ target: "button_2_bg";
+ target: "button_2_detail";
+ after: "button_2_active";
+ after: "button_2_active_p";
+ }
+ program {
+ name: "button_2_active";
+ action: STATE_SET "active" 0.0;
+ target: "button_2_shadow2";
+ transition: LINEAR 0.05;
+ after: "button_2_active2";
+ }
+ program {
+ name: "button_2_active2";
+ action: STATE_SET "active" 0.0;
+ target: "button_2_shadow1";
+ transition: LINEAR 0.05;
+ }
+ program {
+ name: "button_2_active_p";
+ action: STATE_SET "active" 0.0;
+ target: "button_2_bg";
+ target: "button_2_detail";
+ transition: LINEAR 0.1;
+ }
+ program {
+ name: "button_2_passive_pre";
+ signal: "mouse,up,1";
+ source: "button_2";
+ action: STATE_SET "active" 0.0;
+ target: "button_2_shadow1";
+ target: "button_2_shadow2";
+ target: "button_2_bg";
+ target: "button_2_detail";
+ after: "button_2_passive";
+ after: "button_2_passive_p";
+ }
+ program {
+ name: "button_2_passive";
+ action: STATE_SET "default" 0.0;
+ target: "button_2_shadow2";
+ transition: LINEAR 0.1;
+ after: "button_2_passive2";
+ }
+ program {
+ name: "button_2_passive2";
+ action: STATE_SET "default" 0.0;
+ target: "button_2_shadow1";
+ transition: LINEAR 0.1;
+ }
+ program {
+ name: "button_2_passive_p";
+ action: STATE_SET "default" 0.0;
+ target: "button_2_bg";
+ target: "button_2_detail";
+ transition: LINEAR 0.2;
+ }
+ }
+ }
+ group {
+ name: "widgets/menu/default/background";
+ parts {
+ part {
+ name: "base";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ }
+ image {
+ normal: "e17_menu_bg.png";
+ border: 3 3 3 3;
+ }
+ }
+ }
+ part {
+ name: "items";
+ mouse_events: 0;
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 1 1;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -2 -2;
+ }
+ color: 0 0 0 0;
+ }
+ }
+ }
+ }
+ group {
+ name: "widgets/menu/default/separator";
+ parts {
+ part {
+ name: "separator";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min: 20 2;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 2 2;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -3 -3;
+ }
+ image {
+ normal: "e17_menu_separator.png";
+ border: 3 3 0 0;
+ }
+ }
+ }
+ }
+ }
+ group {
+ name: "widgets/menu/default/item_bg";
+ parts {
+ part {
+ name: "item";
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ }
+ }
+ }
+ }
+ }
+ group {
+ name: "widgets/menu/default/submenu_bg";
+ parts {
+ part {
+ name: "item";
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ }
+ }
+ }
+ }
+ }
+ group {
+ name: "widgets/menu/default/check";
+ parts {
+ part {
+ name: "background";
+ mouse_events: 0;
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 18 18;
+ max: 18 18;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ }
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "outline";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min: 16 16;
+ max: 16 16;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ }
+ image {
+ normal: "e17_menu_check1.png";
+ }
+ }
+ }
+ part {
+ name: "item1";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min: 16 16;
+ max: 16 16;
+ visible: 0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ }
+ image {
+ normal: "e17_menu_check2.png";
+ }
+ }
+ description {
+ state: "active" 0.0;
+ min: 16 16;
+ max: 16 16;
+ visible: 1;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ }
+ image {
+ normal: "e17_menu_check2.png";
+ }
+ }
+ }
+ }
+ programs {
+ program {
+ name: "turn_on1";
+ signal: "toggle_on";
+ source: "";
+ action: STATE_SET "active" 0.0;
+ target: "item1";
+ }
+ program {
+ name: "turn_off1";
+ signal: "toggle_off";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "item1";
+ }
+ }
+ }
+ group {
+ name: "widgets/menu/default/radio";
+ parts {
+ part {
+ name: "background";
+ mouse_events: 0;
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 18 18;
+ max: 18 18;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ }
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "outline";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min: 16 16;
+ max: 16 16;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ }
+ image {
+ normal: "e17_menu_radio1.png";
+ }
+ }
+ }
+ part {
+ name: "item1";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min: 16 16;
+ max: 16 16;
+ visible: 0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ }
+ image {
+ normal: "e17_menu_radio2.png";
+ }
+ }
+ description {
+ state: "active" 0.0;
+ min: 16 16;
+ max: 16 16;
+ visible: 1;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ }
+ image {
+ normal: "e17_menu_radio2.png";
+ }
+ }
+ }
+ }
+ programs {
+ program {
+ name: "turn_on1";
+ signal: "toggle_on";
+ source: "";
+ action: STATE_SET "active" 0.0;
+ target: "item1";
+ }
+ program {
+ name: "turn_off1";
+ signal: "toggle_off";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "item1";
+ }
+ }
+ }
+ group {
+ name: "widgets/menu/default/icon";
+ parts {
+ part {
+ name: "item";
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 2 2;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -3 -3;
+ }
+ }
+ }
+ }
+ }
+ group {
+ name: "widgets/menu/default/label";
+ parts {
+ part {
+ name: "title_outline";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min: 14 14;
+ visible: 1;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: -1 -1;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ }
+ image {
+ normal: "e17_titlebar_outline.png";
+ border: 8 8 8 8;
+ }
+ color: 255 255 255 255;
+ }
+ description {
+ state: "active" 0.0;
+ min: 14 14;
+ visible: 0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: -1 -1;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ }
+ image {
+ normal: "e17_titlebar_outline.png";
+ border: 8 8 8 8;
+ }
+ color: 255 255 255 0;
+ }
+ }
+ part {
+ name: "title_shadow2";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to: "title_outline";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ to: "title_outline";
+ }
+ image {
+ normal: "e17_titlebar_shadow2.png";
+ border: 8 8 8 8;
+ }
+ color: 255 255 255 0;
+ }
+ description {
+ state: "active" 0.0;
+ visible: 1;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to: "title_outline";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ to: "title_outline";
+ }
+ image {
+ normal: "e17_titlebar_shadow2.png";
+ border: 8 8 8 8;
+ }
+ color: 255 255 255 255;
+ }
+ }
+ part {
+ name: "title_shadow1";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to: "title_outline";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ to: "title_outline";
+ }
+ image {
+ normal: "e17_titlebar_shadow1.png";
+ border: 8 8 8 8;
+ }
+ color: 255 255 255 0;
+ }
+ description {
+ state: "active" 0.0;
+ visible: 1;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to: "title_outline";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ to: "title_outline";
+ }
+ image {
+ normal: "e17_titlebar_shadow1.png";
+ border: 8 8 8 8;
+ }
+ color: 255 255 255 255;
+ }
+ }
+ part {
+ name: "title_bar";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to: "title_outline";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ to: "title_outline";
+ }
+ image {
+ normal: "e17_titlebar.png";
+ border: 8 8 8 8;
+ }
+ color: 255 255 255 0;
+ }
+ description {
+ state: "active" 0.0;
+ visible: 1;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to: "title_outline";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ to: "title_outline";
+ }
+ image {
+ normal: "e17_titlebar.png";
+ border: 8 8 8 8;
+ }
+ color: 255 255 255 255;
+ }
+ }
+ part {
+ name: "label";
+ type: TEXT;
+ effect: SHADOW;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 8 6;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -8 -6;
+ }
+ color: 0 0 0 255;
+ color3: 255 255 255 128;
+ text {
+ text: "Item Label";
+ font: "Edje Vera";
+ size: 10;
+ min: 1 1;
+ align: 0.0 0.5;
+ }
+ }
+ }
+ }
+ programs {
+ program {
+ name: "go_active_pre";
+ signal: "active";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "title_outline";
+ target: "title_bar";
+ target: "title_shadow1";
+ target: "title_shadow2";
+ after: "go_active";
+ }
+ program {
+ name: "go_active";
+ action: STATE_SET "active" 0.0;
+ target: "title_outline";
+ target: "title_bar";
+ transition: LINEAR 0.05;
+ after: "go_active2";
+ }
+ program {
+ name: "go_active2";
+ action: STATE_SET "active" 0.0;
+ target: "title_shadow1";
+ transition: LINEAR 0.05;
+ after: "go_active3";
+ }
+ program {
+ name: "go_active3";
+ action: STATE_SET "active" 0.0;
+ target: "title_shadow2";
+ transition: LINEAR 0.05;
+ }
+
+ program {
+ name: "go_passive_pre";
+ signal: "passive";
+ source: "";
+ action: STATE_SET "active" 0.0;
+ target: "title_outline";
+ target: "title_bar";
+ target: "title_shadow1";
+ target: "title_shadow2";
+ after: "go_passive";
+ }
+ program {
+ name: "go_passive";
+ action: STATE_SET "default" 0.0;
+ target: "title_shadow2";
+ transition: LINEAR 0.1;
+ after: "go_passive2";
+ }
+ program {
+ name: "go_passive2";
+ action: STATE_SET "default" 0.0;
+ target: "title_shadow1";
+ transition: LINEAR 0.1;
+ after: "go_passive3";
+ }
+ program {
+ name: "go_passive3";
+ action: STATE_SET "default" 0.0;
+ target: "title_outline";
+ target: "title_bar";
+ transition: LINEAR 0.1;
+ }
+ }
+ }
+ group {
+ name: "widgets/menu/default/submenu";
+ parts {
+ part {
+ name: "background";
+ mouse_events: 0;
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 12 12;
+ max: 12 12;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ }
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "arrow";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min: 6 12;
+ max: 6 12;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to: "background";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ to: "background";
+ }
+ image {
+ normal: "e17_menu_arrow.png";
+ }
+ }
+ }
+ }
+ }
+ group {
+ name: "modules/ibar/main";
+ data {
+// item: "item_list", "item item2 item3";
+ }
+ script {
+ public orient;
+ }
+ parts {
+ part {
+ name: "background";
+ mouse_events: 1;
+ clip_to: "items_clip";
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 2 2;
+ to: "overlay";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -3 -3;
+ to: "overlay";
+ }
+ image {
+ normal: "e17_ibar_bg_h.png";
+ }
+ fill {
+ smooth: 0;
+ }
+ }
+ description {
+ state: "vert" 0.0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 2 2;
+ to: "overlay";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -3 -3;
+ to: "overlay";
+ }
+ image {
+ normal: "e17_ibar_bg_v.png";
+ }
+ fill {
+ smooth: 0;
+ }
+ }
+ }
+ part {
+ name: "items_clip";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ to: "background";
+ }
+ rel2 {
+ to: "background";
+ }
+ color: 255 255 255 255;
+ }
+ }
+ part {
+ name: "items";
+ type: SWALLOW;
+ mouse_events: 0;
+ clip_to: "items_clip";
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 1.0 1.0;
+ offset: 0 0;
+ to_x: "h1";
+ to_y: "h3";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ offset: -1 -1;
+ to_x: "h2";
+ }
+ color: 0 0 0 0;
+ }
+ description {
+ state: "top" 0.0;
+ rel1 {
+ relative: 1.0 0.0;
+ offset: 0 0;
+ to_x: "h1";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ offset: -1 -1;
+ to_x: "h2";
+ to_y: "h3";
+ }
+ color: 0 0 0 0;
+ }
+ description {
+ state: "left" 0.0;
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 0;
+ to_y: "h1";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ offset: -1 -1;
+ to_y: "h2";
+ to_x: "h3";
+ }
+ color: 0 0 0 0;
+ }
+ description {
+ state: "right" 0.0;
+ rel1 {
+ relative: 1.0 1.0;
+ offset: 0 0;
+ to_y: "h1";
+ to_x: "h3";
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ offset: -1 -1;
+ to_y: "h2";
+ }
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "overlay";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 18 0;
+ to_y: "h3";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -19 -1;
+ }
+ image {
+ normal: "e17_ibar_over_h.png";
+ border: 25 25 25 25;
+ }
+ fill {
+ smooth: 0;
+ }
+ }
+ description {
+ state: "top" 0.0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 18 0;
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ offset: -19 -1;
+ to_y: "h3";
+ }
+ image {
+ normal: "e17_ibar_over_h.png";
+ border: 25 25 25 25;
+ }
+ fill {
+ smooth: 0;
+ }
+ }
+ description {
+ state: "left" 0.0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 18;
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ offset: -1 -19;
+ to_x: "h3";
+ }
+ image {
+ normal: "e17_ibar_over_v.png";
+ border: 25 25 25 25;
+ }
+ fill {
+ smooth: 0;
+ }
+ }
+ description {
+ state: "right" 0.0;
+ rel1 {
+ relative: 1.0 0.0;
+ offset: 0 18;
+ to_x: "h3";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -19;
+ }
+ image {
+ normal: "e17_ibar_over_v.png";
+ border: 25 25 25 25;
+ }
+ fill {
+ smooth: 0;
+ }
+ }
+ }
+ part {
+ name: "h1a1";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ align: 1.0 0.5;
+ min: 21 29;
+ max: 21 29;
+ visible: 0;
+ color: 255 255 255 0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: -1 0;
+ to: "h1";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ offset: -1 -1;
+ to: "h1";
+ }
+ image {
+ normal: "e17_ibar_arrow_l.png";
+ }
+ }
+ description {
+ state: "default2" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ color: 255 255 255 255;
+ }
+ description {
+ state: "vert" 0.0;
+ align: 0.5 1.0;
+ min: 29 21;
+ max: 29 21;
+ visible: 0;
+ color: 255 255 255 0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 -1;
+ to: "h1";
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ offset: -1 -1;
+ to: "h1";
+ }
+ image {
+ normal: "e17_ibar_arrow_u.png";
+ }
+ }
+ description {
+ state: "vert2" 0.0;
+ inherit: "vert" 0.0;
+ visible: 1;
+ color: 255 255 255 255;
+ }
+ }
+ part {
+ name: "h1a2";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ align: 1.0 0.5;
+ min: 21 29;
+ max: 21 29;
+ visible: 0;
+ color: 255 255 255 0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: -1 0;
+ to: "h1a1";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ offset: -1 -1;
+ to: "h1a1";
+ }
+ image {
+ normal: "e17_ibar_arrow_l.png";
+ }
+ }
+ description {
+ state: "default2" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ color: 255 255 255 255;
+ }
+ description {
+ state: "vert" 0.0;
+ align: 0.5 1.0;
+ min: 29 21;
+ max: 29 21;
+ visible: 0;
+ color: 255 255 255 0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 -1;
+ to: "h1a1";
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ offset: -1 -1;
+ to: "h1a1";
+ }
+ image {
+ normal: "e17_ibar_arrow_u.png";
+ }
+ }
+ description {
+ state: "vert2" 0.0;
+ inherit: "vert" 0.0;
+ visible: 1;
+ color: 255 255 255 255;
+ }
+ }
+ part {
+ name: "h1a3";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ align: 1.0 0.5;
+ min: 21 29;
+ max: 21 29;
+ visible: 0;
+ color: 255 255 255 0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: -1 0;
+ to: "h1a2";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ offset: -1 -1;
+ to: "h1a2";
+ }
+ image {
+ normal: "e17_ibar_arrow_l.png";
+ }
+ }
+ description {
+ state: "default2" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ color: 255 255 255 255;
+ }
+ description {
+ state: "vert" 0.0;
+ align: 0.5 1.0;
+ min: 29 21;
+ max: 29 21;
+ visible: 0;
+ color: 255 255 255 0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 -1;
+ to: "h1a2";
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ offset: -1 -1;
+ to: "h1a2";
+ }
+ image {
+ normal: "e17_ibar_arrow_u.png";
+ }
+ }
+ description {
+ state: "vert2" 0.0;
+ inherit: "vert" 0.0;
+ visible: 1;
+ color: 255 255 255 255;
+ }
+ }
+ part {
+ name: "h1a4";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ align: 1.0 0.5;
+ min: 21 29;
+ max: 21 29;
+ visible: 0;
+ color: 255 255 255 0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: -1 0;
+ to: "h1a3";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ offset: -1 -1;
+ to: "h1a3";
+ }
+ image {
+ normal: "e17_ibar_arrow_l.png";
+ }
+ }
+ description {
+ state: "default2" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ color: 255 255 255 255;
+ }
+ description {
+ state: "vert" 0.0;
+ align: 0.5 1.0;
+ min: 29 21;
+ max: 29 21;
+ visible: 0;
+ color: 255 255 255 0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 -1;
+ to: "h1a3";
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ offset: -1 -1;
+ to: "h1a3";
+ }
+ image {
+ normal: "e17_ibar_arrow_u.png";
+ }
+ }
+ description {
+ state: "vert2" 0.0;
+ inherit: "vert" 0.0;
+ visible: 1;
+ color: 255 255 255 255;
+ }
+ }
+ part {
+ name: "h1";
+ mouse_events: 1;
+ clip_to: "clp";
+ description {
+ state: "default" 0.0;
+ align: 0.0 0.5;
+ min: 18 36;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to_y: "overlay";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ offset: 0 -1;
+ }
+ image {
+ normal: "e17_ibar_handle_h.png";
+ border: 0 0 19 19;
+ }
+ }
+ description {
+ state: "default2" 0.0;
+ inherit: "default" 0.0;
+ image {
+ normal: "e17_ibar_handle_h2.png";
+ }
+ }
+ description {
+ state: "top" 0.0;
+ align: 0.0 0.5;
+ min: 18 36;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ offset: 0 -1;
+ to_y: "overlay";
+ }
+ image {
+ normal: "e17_ibar_handle_h.png";
+ border: 0 0 19 19;
+ }
+ }
+ description {
+ state: "top2" 0.0;
+ inherit: "top" 0.0;
+ image {
+ normal: "e17_ibar_handle_h2.png";
+ }
+ }
+ description {
+ state: "left" 0.0;
+ align: 0.5 0.0;
+ min: 36 18;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ offset: -1 0;
+ to_x: "overlay";
+ }
+ image {
+ normal: "e17_ibar_handle_v.png";
+ border: 19 19 0 0;
+ }
+ }
+ description {
+ state: "left2" 0.0;
+ inherit: "left" 0.0;
+ image {
+ normal: "e17_ibar_handle_v2.png";
+ }
+ }
+ description {
+ state: "right" 0.0;
+ align: 0.5 0.0;
+ min: 36 18;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to_x: "overlay";
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ offset: -1 0;
+ }
+ image {
+ normal: "e17_ibar_handle_v.png";
+ border: 19 19 0 0;
+ }
+ }
+ description {
+ state: "right2" 0.0;
+ inherit: "right" 0.0;
+ image {
+ normal: "e17_ibar_handle_v2.png";
+ }
+ }
+ }
+ part {
+ name: "h1th";
+ mouse_events: 0;
+ clip_to: "clp";
+ description {
+ state: "default" 0.0;
+ max: 6 16;
+ rel1 {
+ offset: -1 -1;
+ to: "h1";
+ }
+ rel2 {
+ offset: -2 -2;
+ to: "h1";
+ }
+ image {
+ normal: "e17_ibar_handle_thumb_h.png";
+ }
+ }
+ description {
+ state: "default2" 0.0;
+ inherit: "default" 0.0;
+ rel1 {
+ offset: 0 0;
+ }
+ rel2 {
+ offset: -1 -1;
+ }
+ }
+ description {
+ state: "vert" 0.0;
+ max: 16 6;
+ rel1 {
+ offset: -1 -1;
+ to: "h1";
+ }
+ rel2 {
+ offset: -2 -2;
+ to: "h1";
+ }
+ image {
+ normal: "e17_ibar_handle_thumb_v.png";
+ }
+ }
+ description {
+ state: "vert2" 0.0;
+ inherit: "vert" 0.0;
+ rel1 {
+ offset: 0 0;
+ }
+ rel2 {
+ offset: -1 -1;
+ }
+ }
+ }
+ part {
+ name: "h2a1";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ align: 0.0 0.5;
+ min: 21 29;
+ max: 21 29;
+ visible: 0;
+ color: 255 255 255 0;
+ rel1 {
+ relative: 1.0 0.0;
+ offset: 0 0;
+ to: "h2";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: 0 -1;
+ to: "h2";
+ }
+ image {
+ normal: "e17_ibar_arrow_r.png";
+ }
+ }
+ description {
+ state: "default2" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ color: 255 255 255 255;
+ }
+ description {
+ state: "vert" 0.0;
+ align: 0.5 0.0;
+ min: 29 21;
+ max: 29 21;
+ visible: 0;
+ color: 255 255 255 0;
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 0;
+ to: "h2";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 0;
+ to: "h2";
+ }
+ image {
+ normal: "e17_ibar_arrow_d.png";
+ }
+ }
+ description {
+ state: "vert2" 0.0;
+ inherit: "vert" 0.0;
+ visible: 1;
+ color: 255 255 255 255;
+ }
+ }
+ part {
+ name: "h2a2";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ align: 0.0 0.5;
+ min: 21 29;
+ max: 21 29;
+ visible: 0;
+ color: 255 255 255 0;
+ rel1 {
+ relative: 1.0 0.0;
+ offset: 0 0;
+ to: "h2a1";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: 0 -1;
+ to: "h2a1";
+ }
+ image {
+ normal: "e17_ibar_arrow_r.png";
+ }
+ }
+ description {
+ state: "default2" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ color: 255 255 255 255;
+ }
+ description {
+ state: "vert" 0.0;
+ align: 0.5 0.0;
+ min: 29 21;
+ max: 29 21;
+ visible: 0;
+ color: 255 255 255 0;
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 0;
+ to: "h2a1";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 0;
+ to: "h2a1";
+ }
+ image {
+ normal: "e17_ibar_arrow_d.png";
+ }
+ }
+ description {
+ state: "vert2" 0.0;
+ inherit: "vert" 0.0;
+ visible: 1;
+ color: 255 255 255 255;
+ }
+ }
+ part {
+ name: "h2a3";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ align: 0.0 0.5;
+ min: 21 29;
+ max: 21 29;
+ visible: 0;
+ color: 255 255 255 0;
+ rel1 {
+ relative: 1.0 0.0;
+ offset: 0 0;
+ to: "h2a2";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: 0 -1;
+ to: "h2a2";
+ }
+ image {
+ normal: "e17_ibar_arrow_r.png";
+ }
+ }
+ description {
+ state: "default2" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ color: 255 255 255 255;
+ }
+ description {
+ state: "vert" 0.0;
+ align: 0.5 0.0;
+ min: 29 21;
+ max: 29 21;
+ visible: 0;
+ color: 255 255 255 0;
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 0;
+ to: "h2a2";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 0;
+ to: "h2a2";
+ }
+ image {
+ normal: "e17_ibar_arrow_d.png";
+ }
+ }
+ description {
+ state: "vert2" 0.0;
+ inherit: "vert" 0.0;
+ visible: 1;
+ color: 255 255 255 255;
+ }
+ }
+ part {
+ name: "h2a4";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ align: 0.0 0.5;
+ min: 21 29;
+ max: 21 29;
+ visible: 0;
+ color: 255 255 255 0;
+ rel1 {
+ relative: 1.0 0.0;
+ offset: 0 0;
+ to: "h2a3";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: 0 -1;
+ to: "h2a3";
+ }
+ image {
+ normal: "e17_ibar_arrow_r.png";
+ }
+ }
+ description {
+ state: "default2" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ color: 255 255 255 255;
+ }
+ description {
+ state: "vert" 0.0;
+ align: 0.5 0.0;
+ min: 29 21;
+ max: 29 21;
+ visible: 0;
+ color: 255 255 255 0;
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 0;
+ to: "h2a3";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 0;
+ to: "h2a3";
+ }
+ image {
+ normal: "e17_ibar_arrow_d.png";
+ }
+ }
+ description {
+ state: "vert2" 0.0;
+ inherit: "vert" 0.0;
+ visible: 1;
+ color: 255 255 255 255;
+ }
+ }
+ part {
+ name: "h2";
+ mouse_events: 1;
+ clip_to: "clp";
+ description {
+ state: "default" 0.0;
+ align: 1.0 0.5;
+ min: 18 36;
+ rel1 {
+ relative: 1.0 0.0;
+ offset: -1 0;
+ to_y: "overlay";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ }
+ image {
+ normal: "e17_ibar_handle_h.png";
+ border: 0 0 19 19;
+ }
+ }
+ description {
+ state: "default2" 0.0;
+ inherit: "default" 0.0;
+ image {
+ normal: "e17_ibar_handle_h2.png";
+ }
+ }
+ description {
+ state: "top" 0.0;
+ align: 1.0 0.5;
+ min: 18 36;
+ rel1 {
+ relative: 1.0 0.0;
+ offset: -1 0;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ to_y: "overlay";
+ }
+ image {
+ normal: "e17_ibar_handle_h.png";
+ border: 0 0 19 19;
+ }
+ }
+ description {
+ state: "top2" 0.0;
+ inherit: "top" 0.0;
+ image {
+ normal: "e17_ibar_handle_h2.png";
+ }
+ }
+ description {
+ state: "left" 0.0;
+ align: 0.5 1.0;
+ min: 36 18;
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 -1;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ to_x: "overlay";
+ }
+ image {
+ normal: "e17_ibar_handle_v.png";
+ border: 19 19 0 0;
+ }
+ }
+ description {
+ state: "left2" 0.0;
+ inherit: "left" 0.0;
+ image {
+ normal: "e17_ibar_handle_v2.png";
+ }
+ }
+ description {
+ state: "right" 0.0;
+ align: 0.5 1.0;
+ min: 36 18;
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 -1;
+ to_x: "overlay";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ }
+ image {
+ normal: "e17_ibar_handle_v.png";
+ border: 19 19 0 0;
+ }
+ }
+ description {
+ state: "right2" 0.0;
+ inherit: "right" 0.0;
+ image {
+ normal: "e17_ibar_handle_v2.png";
+ }
+ }
+ }
+ part {
+ name: "h2th";
+ mouse_events: 0;
+ clip_to: "clp";
+ description {
+ state: "default" 0.0;
+ max: 6 16;
+ rel1 {
+ offset: -1 -1;
+ to: "h2";
+ }
+ rel2 {
+ offset: -2 -2;
+ to: "h2";
+ }
+ image {
+ normal: "e17_ibar_handle_thumb_h.png";
+ }
+ }
+ description {
+ state: "default2" 0.0;
+ inherit: "default" 0.0;
+ rel1 {
+ offset: 0 0;
+ }
+ rel2 {
+ offset: -1 -1;
+ }
+ }
+ description {
+ state: "vert" 0.0;
+ max: 16 6;
+ rel1 {
+ offset: -1 -1;
+ to: "h2";
+ }
+ rel2 {
+ offset: -2 -2;
+ to: "h2";
+ }
+ image {
+ normal: "e17_ibar_handle_thumb_v.png";
+ }
+ }
+ description {
+ state: "vert2" 0.0;
+ inherit: "vert" 0.0;
+ rel1 {
+ offset: 0 0;
+ }
+ rel2 {
+ offset: -1 -1;
+ }
+ }
+ }
+ part {
+ name: "h3";
+ mouse_events: 1;
+ clip_to: "clp";
+ description {
+ state: "default" 0.0;
+ align: 0.5 0.0;
+ min: 36 18;
+ max: 60 18;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ offset: -1 0;
+ }
+ image {
+ normal: "e17_ibar_handle_v.png";
+ border: 19 19 0 0;
+ }
+ }
+ description {
+ state: "default2" 0.0;
+ inherit: "default" 0.0;
+ image {
+ normal: "e17_ibar_handle_v2.png";
+ }
+ }
+ description {
+ state: "top" 0.0;
+ align: 0.5 1.0;
+ min: 36 18;
+ max: 60 18;
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 -1;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ }
+ image {
+ normal: "e17_ibar_handle_v.png";
+ border: 19 19 0 0;
+ }
+ }
+ description {
+ state: "top2" 0.0;
+ inherit: "top" 0.0;
+ image {
+ normal: "e17_ibar_handle_v2.png";
+ }
+ }
+ description {
+ state: "left" 0.0;
+ align: 1.0 0.5;
+ min: 18 36;
+ max: 18 60;
+ rel1 {
+ relative: 1.0 0.0;
+ offset: -1 0;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ }
+ image {
+ normal: "e17_ibar_handle_h.png";
+ border: 0 0 19 19;
+ }
+ }
+ description {
+ state: "left2" 0.0;
+ inherit: "left" 0.0;
+ image {
+ normal: "e17_ibar_handle_h2.png";
+ }
+ }
+ description {
+ state: "right" 0.0;
+ align: 0.0 0.5;
+ min: 18 36;
+ max: 18 60;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ offset: 0 -1;
+ }
+ image {
+ normal: "e17_ibar_handle_h.png";
+ border: 0 0 19 19;
+ }
+ }
+ description {
+ state: "right2" 0.0;
+ inherit: "right" 0.0;
+ image {
+ normal: "e17_ibar_handle_h2.png";
+ }
+ }
+ }
+ part {
+ name: "h3th";
+ mouse_events: 0;
+ clip_to: "clp";
+ description {
+ state: "default" 0.0;
+ max: 16 6;
+ rel1 {
+ offset: -1 -1;
+ to: "h3";
+ }
+ rel2 {
+ offset: -2 -2;
+ to: "h3";
+ }
+ image {
+ normal: "e17_ibar_handle_thumb_v.png";
+ }
+ }
+ description {
+ state: "default2" 0.0;
+ inherit: "default" 0.0;
+ rel1 {
+ offset: 0 0;
+ }
+ rel2 {
+ offset: -1 -1;
+ }
+ }
+ description {
+ state: "vert" 0.0;
+ max: 6 16;
+ rel1 {
+ offset: -1 -1;
+ to: "h3";
+ }
+ rel2 {
+ offset: -2 -2;
+ to: "h3";
+ }
+ image {
+ normal: "e17_ibar_handle_thumb_h.png";
+ }
+ }
+ description {
+ state: "vert2" 0.0;
+ inherit: "vert" 0.0;
+ rel1 {
+ offset: 0 0;
+ }
+ rel2 {
+ offset: -1 -1;
+ }
+ }
+ }
+ part {
+ name: "clp";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ color: 255 255 255 0;
+ }
+ description {
+ state: "on" 0.0;
+ visible: 1;
+ color: 255 255 255 255;
+ }
+ }
+ part {
+ name: "inn";
+ type: RECT;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ }
+ programs {
+ program {
+ name: "load";
+ signal: "load";
+ source: "";
+ action: SIGNAL_EMIT "set_orientation" "bottom";
+ }
+ program {
+ name: "orient";
+ signal: "set_orientation";
+ source: "*";
+ script { // sig, src
+ if (!strcmp(src, "left")) {
+ set_int(orient, 0);
+ set_state(PART:"background", "vert", 0.0);
+ set_state(PART:"overlay", "left", 0.0);
+ set_state(PART:"items", "left", 0.0);
+ set_state(PART:"h1", "left", 0.0);
+ set_state(PART:"h2", "left", 0.0);
+ set_state(PART:"h1th", "vert", 0.0);
+ set_state(PART:"h2th", "vert", 0.0);
+ set_state(PART:"h1a1", "vert", 0.0);
+ set_state(PART:"h1a2", "vert", 0.0);
+ set_state(PART:"h1a3", "vert", 0.0);
+ set_state(PART:"h1a4", "vert", 0.0);
+ set_state(PART:"h2a1", "vert", 0.0);
+ set_state(PART:"h2a2", "vert", 0.0);
+ set_state(PART:"h2a3", "vert", 0.0);
+ set_state(PART:"h2a4", "vert", 0.0);
+ set_state(PART:"h3", "left", 0.0);
+ set_state(PART:"h3th", "vert", 0.0);
+ }
+ else if (!strcmp(src, "right")) {
+ set_int(orient, 1);
+ set_state(PART:"background", "vert", 0.0);
+ set_state(PART:"overlay", "right", 0.0);
+ set_state(PART:"items", "right", 0.0);
+ set_state(PART:"h1", "right", 0.0);
+ set_state(PART:"h2", "right", 0.0);
+ set_state(PART:"h1th", "vert", 0.0);
+ set_state(PART:"h2th", "vert", 0.0);
+ set_state(PART:"h1a1", "vert", 0.0);
+ set_state(PART:"h1a2", "vert", 0.0);
+ set_state(PART:"h1a3", "vert", 0.0);
+ set_state(PART:"h1a4", "vert", 0.0);
+ set_state(PART:"h2a1", "vert", 0.0);
+ set_state(PART:"h2a2", "vert", 0.0);
+ set_state(PART:"h2a3", "vert", 0.0);
+ set_state(PART:"h2a4", "vert", 0.0);
+ set_state(PART:"h3", "right", 0.0);
+ set_state(PART:"h3th", "vert", 0.0);
+ }
+ else if (!strcmp(src, "top")) {
+ set_int(orient, 2);
+ set_state(PART:"background", "default", 0.0);
+ set_state(PART:"overlay", "top", 0.0);
+ set_state(PART:"items", "top", 0.0);
+ set_state(PART:"h1", "top", 0.0);
+ set_state(PART:"h2", "top", 0.0);
+ set_state(PART:"h1th", "default", 0.0);
+ set_state(PART:"h2th", "default", 0.0);
+ set_state(PART:"h1a1", "default", 0.0);
+ set_state(PART:"h1a2", "default", 0.0);
+ set_state(PART:"h1a3", "default", 0.0);
+ set_state(PART:"h1a4", "default", 0.0);
+ set_state(PART:"h2a1", "default", 0.0);
+ set_state(PART:"h2a2", "default", 0.0);
+ set_state(PART:"h2a3", "default", 0.0);
+ set_state(PART:"h2a4", "default", 0.0);
+ set_state(PART:"h3", "top", 0.0);
+ set_state(PART:"h3th", "default", 0.0);
+ }
+ else if (!strcmp(src, "bottom")) {
+ set_int(orient, 3);
+ set_state(PART:"background", "default", 0.0);
+ set_state(PART:"overlay", "default", 0.0);
+ set_state(PART:"items", "default", 0.0);
+ set_state(PART:"h1", "default", 0.0);
+ set_state(PART:"h2", "default", 0.0);
+ set_state(PART:"h1th", "default", 0.0);
+ set_state(PART:"h2th", "default", 0.0);
+ set_state(PART:"h1a1", "default", 0.0);
+ set_state(PART:"h1a2", "default", 0.0);
+ set_state(PART:"h1a3", "default", 0.0);
+ set_state(PART:"h1a4", "default", 0.0);
+ set_state(PART:"h2a1", "default", 0.0);
+ set_state(PART:"h2a2", "default", 0.0);
+ set_state(PART:"h2a3", "default", 0.0);
+ set_state(PART:"h2a4", "default", 0.0);
+ set_state(PART:"h3", "default", 0.0);
+ set_state(PART:"h3th", "default", 0.0);
+ }
+ }
+ }
+
+ program {
+ name: "inn_in";
+ signal: "mouse,in";
+ source: "inn";
+ action: STATE_SET "on" 0.0;
+ transition: SINUSOIDAL 0.25;
+ target: "clp";
+ }
+ program {
+ name: "inn_out";
+ signal: "mouse,out";
+ source: "inn";
+ action: STATE_SET "default" 0.0;
+ transition: SINUSOIDAL 1.0;
+ target: "clp";
+ }
+
+ program {
+ name: "h1_in";
+ signal: "mouse,in";
+ source: "h1";
+ script {
+ new ori = get_int(orient);
+ if ((ori == 0) || (ori == 1)) {
+ emit("h1_v_pulse", "");
+ }
+ else {
+ emit("h1_h_pulse", "");
+ }
+ }
+ }
+ program {
+ name: "h1_out";
+ signal: "mouse,out";
+ source: "h1";
+ action: ACTION_STOP;
+ target: "h1_h_in1a";
+ target: "h1_h_in1b";
+ target: "h1_h_in2a";
+ target: "h1_h_in2b";
+ target: "h1_h_in3a";
+ target: "h1_h_in3b";
+ target: "h1_h_in4a";
+ target: "h1_h_in4b";
+ target: "h1_v_in1a";
+ target: "h1_v_in1b";
+ target: "h1_v_in2a";
+ target: "h1_v_in2b";
+ target: "h1_v_in3a";
+ target: "h1_v_in3b";
+ target: "h1_v_in4a";
+ target: "h1_v_in4b";
+ after: "h1_out2";
+ }
+ program {
+ name: "h1_out2";
+ script {
+ new ori = get_int(orient);
+ if ((ori == 0) || (ori == 1)) {
+ set_state(PART:"h1a1", "vert", 0.0);
+ set_state(PART:"h1a2", "vert", 0.0);
+ set_state(PART:"h1a3", "vert", 0.0);
+ set_state(PART:"h1a4", "vert", 0.0);
+ }
+ else {
+ set_state(PART:"h1a1", "default", 0.0);
+ set_state(PART:"h1a2", "default", 0.0);
+ set_state(PART:"h1a3", "default", 0.0);
+ set_state(PART:"h1a4", "default", 0.0);
+ }
+ }
+ }
+
+ program {
+ name: "h1_h_0";
+ signal: "h1_h_pulse";
+ source: "";
+ after: "h1_h_in1a";
+ }
+ program {
+ name: "h1_h_in1a";
+ action: STATE_SET "default2" 0.0;
+ transition: SINUSOIDAL 0.25;
+ target: "h1a1";
+ after: "h1_h_in2a";
+ after: "h1_h_in2b";
+ }
+ program {
+ name: "h1_h_in1b";
+ action: STATE_SET "default" 0.0;
+ transition: DECELERATE 0.75;
+ target: "h1a4";
+ }
+
+ program {
+ name: "h1_h_in2a";
+ action: STATE_SET "default2" 0.0;
+ transition: SINUSOIDAL 0.25;
+ target: "h1a2";
+ after: "h1_h_in3a";
+ after: "h1_h_in3b";
+ }
+ program {
+ name: "h1_h_in2b";
+ action: STATE_SET "default" 0.0;
+ transition: DECELERATE 0.75;
+ target: "h1a1";
+ }
+
+ program {
+ name: "h1_h_in3a";
+ action: STATE_SET "default2" 0.0;
+ transition: SINUSOIDAL 0.25;
+ target: "h1a3";
+ after: "h1_h_in4a";
+ after: "h1_h_in4b";
+ }
+ program {
+ name: "h1_h_in3b";
+ action: STATE_SET "default" 0.0;
+ transition: DECELERATE 0.75;
+ target: "h1a2";
+ }
+
+ program {
+ name: "h1_h_in4a";
+ action: STATE_SET "default2" 0.0;
+ transition: SINUSOIDAL 0.25;
+ target: "h1a4";
+ after: "h1_h_in1a";
+ after: "h1_h_in1b";
+ }
+ program {
+ name: "h1_h_in4b";
+ action: STATE_SET "default" 0.0;
+ transition: DECELERATE 0.75;
+ target: "h1a3";
+ }
+
+ program {
+ name: "h1_v_0";
+ signal: "h1_v_pulse";
+ source: "";
+ after: "h1_v_in1a";
+ }
+ program {
+ name: "h1_v_in1a";
+ action: STATE_SET "vert2" 0.0;
+ transition: SINUSOIDAL 0.25;
+ target: "h1a1";
+ after: "h1_v_in2a";
+ after: "h1_v_in2b";
+ }
+ program {
+ name: "h1_v_in1b";
+ action: STATE_SET "vert" 0.0;
+ transition: DECELERATE 0.75;
+ target: "h1a4";
+ }
+
+ program {
+ name: "h1_v_in2a";
+ action: STATE_SET "vert2" 0.0;
+ transition: SINUSOIDAL 0.25;
+ target: "h1a2";
+ after: "h1_v_in3a";
+ after: "h1_v_in3b";
+ }
+ program {
+ name: "h1_v_in2b";
+ action: STATE_SET "vert" 0.0;
+ transition: DECELERATE 0.75;
+ target: "h1a1";
+ }
+
+ program {
+ name: "h1_v_in3a";
+ action: STATE_SET "vert2" 0.0;
+ transition: SINUSOIDAL 0.25;
+ target: "h1a3";
+ after: "h1_v_in4a";
+ after: "h1_v_in4b";
+ }
+ program {
+ name: "h1_v_in3b";
+ action: STATE_SET "vert" 0.0;
+ transition: DECELERATE 0.75;
+ target: "h1a2";
+ }
+
+ program {
+ name: "h1_v_in4a";
+ action: STATE_SET "vert2" 0.0;
+ transition: SINUSOIDAL 0.25;
+ target: "h1a4";
+ after: "h1_v_in1a";
+ after: "h1_v_in1b";
+ }
+ program {
+ name: "h1_v_in4b";
+ action: STATE_SET "vert" 0.0;
+ transition: DECELERATE 0.75;
+ target: "h1a3";
+ }
+
+ program {
+ name: "h1_click1";
+ signal: "mouse,down,1";
+ source: "h1";
+ script {
+ new ori = get_int(orient);
+ if (ori == 0) {
+ set_state(PART:"h1", "left2", 0.0);
+ set_state(PART:"h1th", "vert2", 0.0);
+ }
+ else if (ori == 1) {
+ set_state(PART:"h1", "right2", 0.0);
+ set_state(PART:"h1th", "vert2", 0.0);
+ }
+ else if (ori == 2) {
+ set_state(PART:"h1", "top2", 0.0);
+ set_state(PART:"h1th", "default2", 0.0);
+ }
+ else {
+ set_state(PART:"h1", "default2", 0.0);
+ set_state(PART:"h1th", "default2", 0.0);
+ }
+ emit("resize1_start", "");
+ }
+ }
+ program {
+ name: "h1_click2";
+ signal: "mouse,up,1";
+ source: "h1";
+ script {
+ new ori = get_int(orient);
+ if (ori == 0) {
+ set_state(PART:"h1", "left", 0.0);
+ set_state(PART:"h1th", "vert", 0.0);
+ }
+ else if (ori == 1) {
+ set_state(PART:"h1", "right", 0.0);
+ set_state(PART:"h1th", "vert", 0.0);
+ }
+ else if (ori == 2) {
+ set_state(PART:"h1", "top", 0.0);
+ set_state(PART:"h1th", "default", 0.0);
+ }
+ else {
+ set_state(PART:"h1", "default", 0.0);
+ set_state(PART:"h1th", "default", 0.0);
+ }
+ emit("resize1_stop", "");
+ }
+ }
+
+ program {
+ name: "h2_in";
+ signal: "mouse,in";
+ source: "h2";
+ script {
+ new ori = get_int(orient);
+ if ((ori == 0) || (ori == 1)) {
+ emit("h2_v_pulse", "");
+ }
+ else {
+ emit("h2_h_pulse", "");
+ }
+ }
+ }
+ program {
+ name: "h2_out";
+ signal: "mouse,out";
+ source: "h2";
+ action: ACTION_STOP;
+ target: "h2_h_in1a";
+ target: "h2_h_in1b";
+ target: "h2_h_in2a";
+ target: "h2_h_in2b";
+ target: "h2_h_in3a";
+ target: "h2_h_in3b";
+ target: "h2_h_in4a";
+ target: "h2_h_in4b";
+ target: "h2_v_in1a";
+ target: "h2_v_in1b";
+ target: "h2_v_in2a";
+ target: "h2_v_in2b";
+ target: "h2_v_in3a";
+ target: "h2_v_in3b";
+ target: "h2_v_in4a";
+ target: "h2_v_in4b";
+ after: "h2_out2";
+ }
+ program {
+ name: "h2_out2";
+ script {
+ new ori = get_int(orient);
+ if ((ori == 0) || (ori == 1)) {
+ set_state(PART:"h2a1", "vert", 0.0);
+ set_state(PART:"h2a2", "vert", 0.0);
+ set_state(PART:"h2a3", "vert", 0.0);
+ set_state(PART:"h2a4", "vert", 0.0);
+ }
+ else {
+ set_state(PART:"h2a1", "default", 0.0);
+ set_state(PART:"h2a2", "default", 0.0);
+ set_state(PART:"h2a3", "default", 0.0);
+ set_state(PART:"h2a4", "default", 0.0);
+ }
+ }
+ }
+
+ program {
+ name: "h2_h_0";
+ signal: "h2_h_pulse";
+ source: "";
+ after: "h2_h_in1a";
+ }
+ program {
+ name: "h2_h_in1a";
+ action: STATE_SET "default2" 0.0;
+ transition: SINUSOIDAL 0.25;
+ target: "h2a1";
+ after: "h2_h_in2a";
+ after: "h2_h_in2b";
+ }
+ program {
+ name: "h2_h_in1b";
+ action: STATE_SET "default" 0.0;
+ transition: DECELERATE 0.75;
+ target: "h2a4";
+ }
+
+ program {
+ name: "h2_h_in2a";
+ action: STATE_SET "default2" 0.0;
+ transition: SINUSOIDAL 0.25;
+ target: "h2a2";
+ after: "h2_h_in3a";
+ after: "h2_h_in3b";
+ }
+ program {
+ name: "h2_h_in2b";
+ action: STATE_SET "default" 0.0;
+ transition: DECELERATE 0.75;
+ target: "h2a1";
+ }
+
+ program {
+ name: "h2_h_in3a";
+ action: STATE_SET "default2" 0.0;
+ transition: SINUSOIDAL 0.25;
+ target: "h2a3";
+ after: "h2_h_in4a";
+ after: "h2_h_in4b";
+ }
+ program {
+ name: "h2_h_in3b";
+ action: STATE_SET "default" 0.0;
+ transition: DECELERATE 0.75;
+ target: "h2a2";
+ }
+
+ program {
+ name: "h2_h_in4a";
+ action: STATE_SET "default2" 0.0;
+ transition: SINUSOIDAL 0.25;
+ target: "h2a4";
+ after: "h2_h_in1a";
+ after: "h2_h_in1b";
+ }
+ program {
+ name: "h2_h_in4b";
+ action: STATE_SET "default" 0.0;
+ transition: DECELERATE 0.75;
+ target: "h2a3";
+ }
+
+ program {
+ name: "h2_v_0";
+ signal: "h2_v_pulse";
+ source: "";
+ after: "h2_v_in1a";
+ }
+ program {
+ name: "h2_v_in1a";
+ action: STATE_SET "vert2" 0.0;
+ transition: SINUSOIDAL 0.25;
+ target: "h2a1";
+ after: "h2_v_in2a";
+ after: "h2_v_in2b";
+ }
+ program {
+ name: "h2_v_in1b";
+ action: STATE_SET "vert" 0.0;
+ transition: DECELERATE 0.75;
+ target: "h2a4";
+ }
+
+ program {
+ name: "h2_v_in2a";
+ action: STATE_SET "vert2" 0.0;
+ transition: SINUSOIDAL 0.25;
+ target: "h2a2";
+ after: "h2_v_in3a";
+ after: "h2_v_in3b";
+ }
+ program {
+ name: "h2_v_in2b";
+ action: STATE_SET "vert" 0.0;
+ transition: DECELERATE 0.75;
+ target: "h2a1";
+ }
+
+ program {
+ name: "h2_v_in3a";
+ action: STATE_SET "vert2" 0.0;
+ transition: SINUSOIDAL 0.25;
+ target: "h2a3";
+ after: "h2_v_in4a";
+ after: "h2_v_in4b";
+ }
+ program {
+ name: "h2_v_in3b";
+ action: STATE_SET "vert" 0.0;
+ transition: DECELERATE 0.75;
+ target: "h2a2";
+ }
+
+ program {
+ name: "h2_v_in4a";
+ action: STATE_SET "vert2" 0.0;
+ transition: SINUSOIDAL 0.25;
+ target: "h2a4";
+ after: "h2_v_in1a";
+ after: "h2_v_in1b";
+ }
+ program {
+ name: "h2_v_in4b";
+ action: STATE_SET "vert" 0.0;
+ transition: DECELERATE 0.75;
+ target: "h2a3";
+ }
+
+ program {
+ name: "h2_click1";
+ signal: "mouse,down,1";
+ source: "h2";
+ script {
+ new ori = get_int(orient);
+ if (ori == 0) {
+ set_state(PART:"h2", "left2", 0.0);
+ set_state(PART:"h2th", "vert2", 0.0);
+ }
+ else if (ori == 1) {
+ set_state(PART:"h2", "right2", 0.0);
+ set_state(PART:"h2th", "vert2", 0.0);
+ }
+ else if (ori == 2) {
+ set_state(PART:"h2", "top2", 0.0);
+ set_state(PART:"h2th", "default2", 0.0);
+ }
+ else {
+ set_state(PART:"h2", "default2", 0.0);
+ set_state(PART:"h2th", "default2", 0.0);
+ }
+ emit("resize2_start", "");
+ }
+ }
+ program {
+ name: "h2_click2";
+ signal: "mouse,up,1";
+ source: "h2";
+ script {
+ new ori = get_int(orient);
+ if (ori == 0) {
+ set_state(PART:"h2", "left", 0.0);
+ set_state(PART:"h2th", "vert", 0.0);
+ }
+ else if (ori == 1) {
+ set_state(PART:"h2", "right", 0.0);
+ set_state(PART:"h2th", "vert", 0.0);
+ }
+ else if (ori == 2) {
+ set_state(PART:"h2", "top", 0.0);
+ set_state(PART:"h2th", "default", 0.0);
+ }
+ else {
+ set_state(PART:"h2", "default", 0.0);
+ set_state(PART:"h2th", "default", 0.0);
+ }
+ emit("resize2_stop", "");
+ }
+ }
+
+
+ program {
+ name: "h3_click1";
+ signal: "mouse,down,1";
+ source: "h3";
+ script {
+ new ori = get_int(orient);
+ if (ori == 0) {
+ set_state(PART:"h3", "left2", 0.0);
+ set_state(PART:"h3th", "vert2", 0.0);
+ }
+ else if (ori == 1) {
+ set_state(PART:"h3", "right2", 0.0);
+ set_state(PART:"h3th", "vert2", 0.0);
+ }
+ else if (ori == 2) {
+ set_state(PART:"h3", "top2", 0.0);
+ set_state(PART:"h3th", "default2", 0.0);
+ }
+ else {
+ set_state(PART:"h3", "default2", 0.0);
+ set_state(PART:"h3th", "default2", 0.0);
+ }
+ emit("move_start", "");
+ }
+ }
+ program {
+ name: "h3_click2";
+ signal: "mouse,up,1";
+ source: "h3";
+ script {
+ new ori = get_int(orient);
+ if (ori == 0) {
+ set_state(PART:"h3", "left", 0.0);
+ set_state(PART:"h3th", "vert", 0.0);
+ }
+ else if (ori == 1) {
+ set_state(PART:"h3", "right", 0.0);
+ set_state(PART:"h3th", "vert", 0.0);
+ }
+ else if (ori == 2) {
+ set_state(PART:"h3", "top", 0.0);
+ set_state(PART:"h3th", "default", 0.0);
+ }
+ else {
+ set_state(PART:"h3", "default", 0.0);
+ set_state(PART:"h3th", "default", 0.0);
+ }
+ emit("move_stop", "");
+ }
+ }
+ }
+ }
+ group {
+ name: "modules/ibar/follower";
+ min: 56 56;
+ data {
+// item: "item_list", "item item2 item3";
+ }
+ parts {
+ part {
+ name: "top";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 -13;
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ offset: -1 27;
+ }
+ image {
+ normal: "e17_ibar_lamp_d.png";
+ }
+ }
+ description {
+ state: "top" 0.0;
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 -27;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 13;
+ }
+ image {
+ normal: "e17_ibar_lamp_u.png";
+ }
+ }
+ description {
+ state: "right" 0.0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: -13 0;
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ offset: 27 -1;
+ }
+ image {
+ normal: "e17_ibar_lamp_r.png";
+ }
+ }
+ description {
+ state: "left" 0.0;
+ rel1 {
+ relative: 1.0 0.0;
+ offset: -27 0;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: 13 -1;
+ }
+ image {
+ normal: "e17_ibar_lamp_l.png";
+ }
+ }
+ }
+ program {
+ name: "orient";
+ signal: "set_orientation";
+ source: "bottom";
+ action: STATE_SET "default" 0.0;
+ target: "top";
+ }
+ program {
+ name: "orient2";
+ signal: "set_orientation";
+ source: "top";
+ action: STATE_SET "top" 0.0;
+ target: "top";
+ }
+ program {
+ name: "orient3";
+ signal: "set_orientation";
+ source: "left";
+ action: STATE_SET "left" 0.0;
+ target: "top";
+ }
+ program {
+ name: "orient4";
+ signal: "set_orientation";
+ source: "right";
+ action: STATE_SET "right" 0.0;
+ target: "top";
+ }
+ }
+ }
+ group {
+ name: "modules/ibar/icon";
+ data {
+ item: "raise_on_hilight" "0"; // 1 or 0 if u want an icon holder to raise when the mouse (or keyboard) hilights it
+// item: "item_list" "item item2 item3";
+ }
+ parts {
+ part {
+ name: "item";
+ type: SWALLOW;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 4 4;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -5 -5;
+ }
+ color: 0 0 0 0;
+ }
+ }
+ }
+ }
+ group {
+ name: "modules/ibar/icon_overlay";
+ data {
+// item: "item_list", "item item2 item3";
+ }
+ parts {
+ part {
+ name: "base";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 4 4;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -5 -5;
+ }
+ color: 255 255 255 0;
+ }
+ }
+ part {
+ name: "background";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to: "base";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ to: "base";
+ }
+ color: 255 255 255 0;
+ }
+ description {
+ state: "visible" 0.0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to: "base";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ to: "base";
+ }
+ color: 255 255 255 255;
+ }
+ description {
+ state: "hidden" 0.0;
+ rel1 {
+ relative: -0.5 -0.5;
+ offset: 0 0;
+ to: "base";
+ }
+ rel2 {
+ relative: 1.5 1.5;
+ offset: -1 -1;
+ to: "base";
+ }
+ color: 255 255 255 0;
+ }
+ }
+ part {
+ name: "item";
+ type: SWALLOW;
+ mouse_events: 0;
+ clip_to: "background";
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to: "background";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ to: "background";
+ }
+ color: 0 0 0 0;
+ }
+ }
+ }
+ programs {
+ program {
+ name: "go_active";
+ signal: "active";
+ source: "";
+ action: STATE_SET "visible" 0.0;
+ target: "background";
+ after: "go_active2";
+ }
+ program {
+ name: "go_active2";
+ signal: "";
+ source: "";
+ action: STATE_SET "hidden" 0.0;
+ transition: LINEAR 0.5;
+ target: "background";
+ after: "go_active";
+ }
+ program {
+ name: "go_passive";
+ signal: "passive";
+ source: "";
+ action: ACTION_STOP;
+ target: "go_active";
+ target: "go_active2";
+ after: "go_passive2";
+ }
+ program {
+ name: "go_passive2";
+ signal: "";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "background";
+ }
+ }
+ }
+}
diff --git a/data/themes/images/Makefile.am b/data/themes/images/Makefile.am
new file mode 100644
index 000000000..3f6b60e05
--- /dev/null
+++ b/data/themes/images/Makefile.am
@@ -0,0 +1,49 @@
+MAINTAINERCLEANFILES = Makefile.in
+EXTRA_DIST = \
+e17_brushed.png \
+e17_reflection_shadow_overlay.png \
+e17_sm_reflection_shadow_overlay.png \
+e17_border1.png \
+e17_border2.png \
+e17_border3.png \
+e17_border4.png \
+e17_border5.png \
+e17_border6.png \
+e17_border7.png \
+e17_button.png \
+e17_button2.png \
+e17_button_detail_close.png \
+e17_button_detail_maximize.png \
+e17_button_detail_minimize.png \
+e17_menu_arrow.png \
+e17_menu_bg.png \
+e17_menu_check1.png \
+e17_menu_check2.png \
+e17_menu_radio1.png \
+e17_menu_radio2.png \
+e17_menu_separator.png \
+e17_mini_button.png \
+e17_mini_button_shadow1.png \
+e17_mini_button_shadow2.png \
+e17_titlebar.png \
+e17_titlebar_outline.png \
+e17_titlebar_shadow1.png \
+e17_titlebar_shadow2.png \
+e17_ibar_arrow_d.png \
+e17_ibar_arrow_l.png \
+e17_ibar_arrow_r.png \
+e17_ibar_arrow_u.png \
+e17_ibar_bg_h.png \
+e17_ibar_bg_v.png \
+e17_ibar_handle_h.png \
+e17_ibar_handle_h2.png \
+e17_ibar_handle_thumb_h.png \
+e17_ibar_handle_thumb_v.png \
+e17_ibar_handle_v.png \
+e17_ibar_handle_v2.png \
+e17_ibar_lamp_d.png \
+e17_ibar_lamp_l.png \
+e17_ibar_lamp_r.png \
+e17_ibar_lamp_u.png \
+e17_ibar_over_h.png \
+e17_ibar_over_v.png
diff --git a/data/themes/images/e17_border1.png b/data/themes/images/e17_border1.png
new file mode 100644
index 000000000..645bd6b37
--- /dev/null
+++ b/data/themes/images/e17_border1.png
Binary files differ
diff --git a/data/themes/images/e17_border2.png b/data/themes/images/e17_border2.png
new file mode 100644
index 000000000..30d457bcf
--- /dev/null
+++ b/data/themes/images/e17_border2.png
Binary files differ
diff --git a/data/themes/images/e17_border3.png b/data/themes/images/e17_border3.png
new file mode 100644
index 000000000..997168b30
--- /dev/null
+++ b/data/themes/images/e17_border3.png
Binary files differ
diff --git a/data/themes/images/e17_border4.png b/data/themes/images/e17_border4.png
new file mode 100644
index 000000000..5c3c9c2cf
--- /dev/null
+++ b/data/themes/images/e17_border4.png
Binary files differ
diff --git a/data/themes/images/e17_border5.png b/data/themes/images/e17_border5.png
new file mode 100644
index 000000000..7b77ce9de
--- /dev/null
+++ b/data/themes/images/e17_border5.png
Binary files differ
diff --git a/data/themes/images/e17_border6.png b/data/themes/images/e17_border6.png
new file mode 100644
index 000000000..053cc868e
--- /dev/null
+++ b/data/themes/images/e17_border6.png
Binary files differ
diff --git a/data/themes/images/e17_border7.png b/data/themes/images/e17_border7.png
new file mode 100644
index 000000000..02416cf83
--- /dev/null
+++ b/data/themes/images/e17_border7.png
Binary files differ
diff --git a/data/themes/images/e17_brushed.png b/data/themes/images/e17_brushed.png
new file mode 100644
index 000000000..0b6cda97b
--- /dev/null
+++ b/data/themes/images/e17_brushed.png
Binary files differ
diff --git a/data/themes/images/e17_button.png b/data/themes/images/e17_button.png
new file mode 100644
index 000000000..6b847fa62
--- /dev/null
+++ b/data/themes/images/e17_button.png
Binary files differ
diff --git a/data/themes/images/e17_button2.png b/data/themes/images/e17_button2.png
new file mode 100644
index 000000000..fadeccc93
--- /dev/null
+++ b/data/themes/images/e17_button2.png
Binary files differ
diff --git a/data/themes/images/e17_button_detail_close.png b/data/themes/images/e17_button_detail_close.png
new file mode 100644
index 000000000..de359e68b
--- /dev/null
+++ b/data/themes/images/e17_button_detail_close.png
Binary files differ
diff --git a/data/themes/images/e17_button_detail_maximize.png b/data/themes/images/e17_button_detail_maximize.png
new file mode 100644
index 000000000..bb728009f
--- /dev/null
+++ b/data/themes/images/e17_button_detail_maximize.png
Binary files differ
diff --git a/data/themes/images/e17_button_detail_minimize.png b/data/themes/images/e17_button_detail_minimize.png
new file mode 100644
index 000000000..56790808a
--- /dev/null
+++ b/data/themes/images/e17_button_detail_minimize.png
Binary files differ
diff --git a/data/themes/images/e17_ibar_arrow_d.png b/data/themes/images/e17_ibar_arrow_d.png
new file mode 100644
index 000000000..f0602124f
--- /dev/null
+++ b/data/themes/images/e17_ibar_arrow_d.png
Binary files differ
diff --git a/data/themes/images/e17_ibar_arrow_l.png b/data/themes/images/e17_ibar_arrow_l.png
new file mode 100644
index 000000000..bc4ec1c31
--- /dev/null
+++ b/data/themes/images/e17_ibar_arrow_l.png
Binary files differ
diff --git a/data/themes/images/e17_ibar_arrow_r.png b/data/themes/images/e17_ibar_arrow_r.png
new file mode 100644
index 000000000..21768a352
--- /dev/null
+++ b/data/themes/images/e17_ibar_arrow_r.png
Binary files differ
diff --git a/data/themes/images/e17_ibar_arrow_u.png b/data/themes/images/e17_ibar_arrow_u.png
new file mode 100644
index 000000000..b7bd1e1be
--- /dev/null
+++ b/data/themes/images/e17_ibar_arrow_u.png
Binary files differ
diff --git a/data/themes/images/e17_ibar_bg_h.png b/data/themes/images/e17_ibar_bg_h.png
new file mode 100644
index 000000000..01079bc25
--- /dev/null
+++ b/data/themes/images/e17_ibar_bg_h.png
Binary files differ
diff --git a/data/themes/images/e17_ibar_bg_v.png b/data/themes/images/e17_ibar_bg_v.png
new file mode 100644
index 000000000..0c2ff0872
--- /dev/null
+++ b/data/themes/images/e17_ibar_bg_v.png
Binary files differ
diff --git a/data/themes/images/e17_ibar_handle_h.png b/data/themes/images/e17_ibar_handle_h.png
new file mode 100644
index 000000000..0d4d3f9e9
--- /dev/null
+++ b/data/themes/images/e17_ibar_handle_h.png
Binary files differ
diff --git a/data/themes/images/e17_ibar_handle_h2.png b/data/themes/images/e17_ibar_handle_h2.png
new file mode 100644
index 000000000..a39040690
--- /dev/null
+++ b/data/themes/images/e17_ibar_handle_h2.png
Binary files differ
diff --git a/data/themes/images/e17_ibar_handle_thumb_h.png b/data/themes/images/e17_ibar_handle_thumb_h.png
new file mode 100644
index 000000000..185a0d1fd
--- /dev/null
+++ b/data/themes/images/e17_ibar_handle_thumb_h.png
Binary files differ
diff --git a/data/themes/images/e17_ibar_handle_thumb_v.png b/data/themes/images/e17_ibar_handle_thumb_v.png
new file mode 100644
index 000000000..f1ad33fb5
--- /dev/null
+++ b/data/themes/images/e17_ibar_handle_thumb_v.png
Binary files differ
diff --git a/data/themes/images/e17_ibar_handle_v.png b/data/themes/images/e17_ibar_handle_v.png
new file mode 100644
index 000000000..c2cda12fb
--- /dev/null
+++ b/data/themes/images/e17_ibar_handle_v.png
Binary files differ
diff --git a/data/themes/images/e17_ibar_handle_v2.png b/data/themes/images/e17_ibar_handle_v2.png
new file mode 100644
index 000000000..c550f7b7e
--- /dev/null
+++ b/data/themes/images/e17_ibar_handle_v2.png
Binary files differ
diff --git a/data/themes/images/e17_ibar_lamp_d.png b/data/themes/images/e17_ibar_lamp_d.png
new file mode 100644
index 000000000..affd3e753
--- /dev/null
+++ b/data/themes/images/e17_ibar_lamp_d.png
Binary files differ
diff --git a/data/themes/images/e17_ibar_lamp_l.png b/data/themes/images/e17_ibar_lamp_l.png
new file mode 100644
index 000000000..a7480e9bc
--- /dev/null
+++ b/data/themes/images/e17_ibar_lamp_l.png
Binary files differ
diff --git a/data/themes/images/e17_ibar_lamp_r.png b/data/themes/images/e17_ibar_lamp_r.png
new file mode 100644
index 000000000..513600d4d
--- /dev/null
+++ b/data/themes/images/e17_ibar_lamp_r.png
Binary files differ
diff --git a/data/themes/images/e17_ibar_lamp_u.png b/data/themes/images/e17_ibar_lamp_u.png
new file mode 100644
index 000000000..373f32774
--- /dev/null
+++ b/data/themes/images/e17_ibar_lamp_u.png
Binary files differ
diff --git a/data/themes/images/e17_ibar_over_h.png b/data/themes/images/e17_ibar_over_h.png
new file mode 100644
index 000000000..48bdd5395
--- /dev/null
+++ b/data/themes/images/e17_ibar_over_h.png
Binary files differ
diff --git a/data/themes/images/e17_ibar_over_v.png b/data/themes/images/e17_ibar_over_v.png
new file mode 100644
index 000000000..3e60827cd
--- /dev/null
+++ b/data/themes/images/e17_ibar_over_v.png
Binary files differ
diff --git a/data/themes/images/e17_menu_arrow.png b/data/themes/images/e17_menu_arrow.png
new file mode 100644
index 000000000..42382f172
--- /dev/null
+++ b/data/themes/images/e17_menu_arrow.png
Binary files differ
diff --git a/data/themes/images/e17_menu_bg.png b/data/themes/images/e17_menu_bg.png
new file mode 100644
index 000000000..c3eaad983
--- /dev/null
+++ b/data/themes/images/e17_menu_bg.png
Binary files differ
diff --git a/data/themes/images/e17_menu_check1.png b/data/themes/images/e17_menu_check1.png
new file mode 100644
index 000000000..13ef3823c
--- /dev/null
+++ b/data/themes/images/e17_menu_check1.png
Binary files differ
diff --git a/data/themes/images/e17_menu_check2.png b/data/themes/images/e17_menu_check2.png
new file mode 100644
index 000000000..196e18d60
--- /dev/null
+++ b/data/themes/images/e17_menu_check2.png
Binary files differ
diff --git a/data/themes/images/e17_menu_radio1.png b/data/themes/images/e17_menu_radio1.png
new file mode 100644
index 000000000..1655f75ef
--- /dev/null
+++ b/data/themes/images/e17_menu_radio1.png
Binary files differ
diff --git a/data/themes/images/e17_menu_radio2.png b/data/themes/images/e17_menu_radio2.png
new file mode 100644
index 000000000..de9a67924
--- /dev/null
+++ b/data/themes/images/e17_menu_radio2.png
Binary files differ
diff --git a/data/themes/images/e17_menu_separator.png b/data/themes/images/e17_menu_separator.png
new file mode 100644
index 000000000..46a119a62
--- /dev/null
+++ b/data/themes/images/e17_menu_separator.png
Binary files differ
diff --git a/data/themes/images/e17_mini_button.png b/data/themes/images/e17_mini_button.png
new file mode 100644
index 000000000..1c483a21f
--- /dev/null
+++ b/data/themes/images/e17_mini_button.png
Binary files differ
diff --git a/data/themes/images/e17_mini_button_shadow1.png b/data/themes/images/e17_mini_button_shadow1.png
new file mode 100644
index 000000000..68c7dd84d
--- /dev/null
+++ b/data/themes/images/e17_mini_button_shadow1.png
Binary files differ
diff --git a/data/themes/images/e17_mini_button_shadow2.png b/data/themes/images/e17_mini_button_shadow2.png
new file mode 100644
index 000000000..96277cc13
--- /dev/null
+++ b/data/themes/images/e17_mini_button_shadow2.png
Binary files differ
diff --git a/data/themes/images/e17_reflection_shadow_overlay.png b/data/themes/images/e17_reflection_shadow_overlay.png
new file mode 100644
index 000000000..241b6f3e6
--- /dev/null
+++ b/data/themes/images/e17_reflection_shadow_overlay.png
Binary files differ
diff --git a/data/themes/images/e17_sm_reflection_shadow_overlay.png b/data/themes/images/e17_sm_reflection_shadow_overlay.png
new file mode 100644
index 000000000..b75097cb0
--- /dev/null
+++ b/data/themes/images/e17_sm_reflection_shadow_overlay.png
Binary files differ
diff --git a/data/themes/images/e17_titlebar.png b/data/themes/images/e17_titlebar.png
new file mode 100644
index 000000000..96626a64f
--- /dev/null
+++ b/data/themes/images/e17_titlebar.png
Binary files differ
diff --git a/data/themes/images/e17_titlebar_outline.png b/data/themes/images/e17_titlebar_outline.png
new file mode 100644
index 000000000..cdaf62a3f
--- /dev/null
+++ b/data/themes/images/e17_titlebar_outline.png
Binary files differ
diff --git a/data/themes/images/e17_titlebar_shadow1.png b/data/themes/images/e17_titlebar_shadow1.png
new file mode 100644
index 000000000..9d51e4e43
--- /dev/null
+++ b/data/themes/images/e17_titlebar_shadow1.png
Binary files differ
diff --git a/data/themes/images/e17_titlebar_shadow2.png b/data/themes/images/e17_titlebar_shadow2.png
new file mode 100644
index 000000000..eef1ef99a
--- /dev/null
+++ b/data/themes/images/e17_titlebar_shadow2.png
Binary files differ
diff --git a/doc/Makefile.am b/doc/Makefile.am
new file mode 100644
index 000000000..698471c98
--- /dev/null
+++ b/doc/Makefile.am
@@ -0,0 +1,7 @@
+MAINTAINERCLEANFILES = Makefile.in
+filesdir = $(datadir)/enlightenment/doc
+files_DATA = \
+documentation.html \
+enlightenment.png
+
+EXTRA_DIST = $(files_DATA)
diff --git a/doc/documentation.html b/doc/documentation.html
new file mode 100644
index 000000000..8be581a68
--- /dev/null
+++ b/doc/documentation.html
@@ -0,0 +1,451 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+ <TITLE>Enlightenment Developer Documentation</TITLE>
+ <STYLE>
+ <!--
+ @page { size: 51pc 66pc }
+ P.western { font-size: 8pt }
+ P.cjk { font-family: "Bitstream Vera Sans"; font-size: 8pt }
+ A.western:link { font-size: 8pt }
+ A.cjk:link { font-family: "Bitstream Vera Sans"; font-size: 8pt }
+ A.sdfootnotesym-western { font-size: 8pt }
+ A.sdfootnotesym-cjk { font-family: "Bitstream Vera Sans"; font-size: 8pt }
+ A.sdendnotesym-western { font-size: 8pt }
+ A.sdendnotesym-cjk { font-family: "Bitstream Vera Sans"; font-size: 8pt }
+ -->
+ </STYLE>
+</HEAD>
+<BODY LANG="en-US" DIR="LTR">
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=0 STYLE="page-break-before: always">
+ <COL WIDTH=256*>
+ <TR>
+ <TD WIDTH=100% VALIGN=TOP>
+ <P CLASS="western" ALIGN=CENTER STYLE="margin-bottom: 0pc"><IMG SRC="enlightenment.png" NAME="Graphic1" ALIGN=LEFT WIDTH=320 HEIGHT=320 BORDER=0><FONT FACE="Bitstream Vera Sans"><FONT SIZE=5><B>Enlightenment</B></FONT></FONT></P>
+ <P CLASS="western" STYLE="margin-bottom: 0pc"><BR>
+ </P>
+ <P CLASS="western" ALIGN=CENTER STYLE="margin-bottom: 0pc"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 6pt">Version
+ 0.17.0 </FONT></FONT>
+ </P>
+ <P CLASS="western" STYLE="margin-bottom: 0pc"><BR>
+ </P>
+ <P CLASS="western"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt"><B>What
+ is Enlightenment?</B> </FONT></FONT>
+ </P>
+ <P CLASS="western"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt">Enlightenment
+ is a Window Manager for X11. This is the latest incarnation of
+ code of the Enlightenment window manager (often referred to in
+ short as WM). This WM is built on the EFL (Enlightenment
+ Foundation Libraries) that have been worked on very hard over the
+ last few years. These libraries provide a sound base on which to
+ build the WM and related tools, utilities, and applications.</FONT></FONT></P>
+ <P CLASS="western"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt">Right
+ now if you are just a &quot;user&quot; this code is NOT for you.
+ You're on your own. If you are a developer wanting to work on the
+ code - read on. But first we should take a break for some
+ history... </FONT></FONT>
+ </P>
+ </TD>
+ </TR>
+</TABLE>
+<HR>
+<P CLASS="western"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt"><B>A
+Brief History of Time... err Enlightenment</B></FONT></FONT></P>
+<P CLASS="western" STYLE="margin-left: 4.73pc"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt">In
+the past E has undergone 1 major rewrite since release DR
+(Development Release) 0.1. This rewrite occurred for DR 0.14). DR
+0.17 heralds another major rewrite. We have to be honest here. The
+reason for this is the fact that we got lazy. Design went out the
+window in favor of quick fixes and fast features. Too many people
+worked on the code with too little care and attention to detail.
+Large design mistakes were made, that to undo would be paramount to
+half a rewrite. Patches were accepted without taking care to look at
+them in detail, clean them or even reject them if not &ldquo;well
+done&rdquo; enough for E's code. Thus the decision was made to fix
+things once and for all and split things up, have well defined
+interfaces (the EFL library API's) and clean and consistent code and
+naming schemes. No it's not perfect - probably it will never be, but
+we are trying. It is a massive improvement over anything
+Enlightenment had before, and we are proud enough to probably say
+it's some of the better API's and code of any available in the world
+or used in any application or WM. It's not the best, but it's pretty
+good. In doing this rewrite and split, we aim to not make those
+mistakes again that happened before DR 0.17.0.</FONT></FONT></P>
+<P CLASS="western" STYLE="margin-left: 4.73pc"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt">With
+Enlightenment and EFL's massive break-up into smaller sized chunks,
+many users will complain about &ldquo;how hard it is to install&rdquo;
+because there are so many libraries and inter-dependencies to handle.
+We believe this is not our job, but the job of a package management
+system to handle. We have documented the dependencies for people to
+follow, but if anything, we aim to split things up more to make
+maintenance, in the long term, an easier task. So in an effort to
+avoid them, Here is a quick style and design guide for working on
+this code. Please follow it, and if what you want to do doesn't fit
+in, please discuss it first. Discuss your designs on the e-devel
+(enlightemment-devel@lists.sourceforge.net) mailing list. Make your
+code consistent and easy to follow - make it follow the style of the
+rest in function naming, variable naming, access functions etc. Use
+existing infrastructures - or extend them cleanly as needed. Just
+because an infrastructure or system doesn't provide an accessor or
+way of doing something does NOT mean you can't add it. Choose a clean
+&ldquo;correct&rdquo; implementation over a nasty hack, all the time.
+You get the idea. Now, on to the style guide.</FONT></FONT></P>
+<P CLASS="western"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt"><B>Enlightenment
+Stylin'</B></FONT></FONT></P>
+<P CLASS="western" STYLE="margin-left: 4.73pc"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt">Firstly
+comes naming. All functions are name spaced. The EFL libraries begin
+with library_something_something. It is object oriented naming so you
+will have system_subsystem_subsystem_object_verb() as a name. For
+example: e_config_load() or e_border_move() etc. All functions are
+all lower-case with underscores between &quot;words&quot;. All
+functions that are accessed outside a file must have a prototype in
+the file's header. All files have their code file (e_file.c) and a
+header (e_file.h). The main &quot;master&quot; header (e.h) includes
+all the smaller ones. All functions within that file are the same
+name as the file. i.e. e_frog.c contains functions called
+e_frog_something(). All internal functions only used within that file
+should be declared as static and should begin with an underscore.
+i.e. _e_frog_something(). All &quot;local&quot; globals (global to
+that file only) should be declared static and beginning with _e_frog
+just like functions. All static local functions should be at the end
+of the file. All static function prototypes should be first at the
+top of each file. All static local variables should come next, then
+followed by the accessible functions. Any system that has &quot;state&quot;
+should have an init and shutdown function. The init and shutdown
+functions should be called from e_main.c during startup and shutdown
+of the WM. It is encouraged that even systems that do not have state
+have an init and shutdown call pair, just in case in future they will
+gain state internally.</FONT></FONT></P>
+<P CLASS="western" STYLE="margin-left: 4.73pc"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt">Any
+system that returns objects (allocated structures) should probably
+use the E_Object system as a parent. See examples on its use in the
+code. E_Object provides a simple object wrapper with reference
+counting, object pointer and type checking and safety that should,
+runtime, trap a lot of potential problems and let the programmer know
+about them. Use the object type checking macros for checking if an
+object passed into a function as a parameter is a valid object.</FONT></FONT></P>
+<P CLASS="western" STYLE="margin-left: 4.73pc"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt">Keep
+to the indentation and spacing style thats there - it makes it easier
+to read if all the code matches. All functions called as &quot;callbacks&quot;
+should be called _e_system_cb_something. The &quot;cb&quot; denotes
+that that function may get called by other code, maybe unpredictably,
+at any time in response to an event, timer, or something mostly out
+of the control of the program itself. Functions such as the free
+function for an object aren't the same kind of callback, since they
+are predictable and controllable, so they do not get &quot;cb&quot;
+in their name.</FONT></FONT></P>
+<P CLASS="western" STYLE="margin-left: 4.73pc"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt">So
+that's the quick rundown on basic coding style. More will likely be
+added to this list, but the best way to put it all is &quot;look at
+what's there and follow the same style&quot;.</FONT></FONT></P>
+<P CLASS="western"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt"><B>Tree
+Layout</B></FONT></FONT></P>
+<P CLASS="western" STYLE="margin-left: 4.73pc"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt">The
+E17 source tree is well structured, with a location for everything.
+In the top-level directory you will find a src directory that is the
+master directory for all the C source code for the WM and components.
+You will also find a doc and data directories. The doc directory
+contains all documentation (this document for example).</FONT></FONT></P>
+<P CLASS="western" STYLE="margin-left: 4.73pc"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt">The
+data directory contains all cross-platform data needed for the WM to
+run as well as a basic default theme that it also needs to run.
+Currently the default theme is not complete at all and is no
+indication of Enlightenments final look when it is released. It is
+only just enough to make it work and demonstrate an example of how to
+make a theme. There is also other data used for things like low-level
+error dialogs (used for example if the theme doesn't work) as well as
+a default font and other system data such as data for the splash
+screen displayed while Enlightenment starts up.</FONT></FONT></P>
+<P CLASS="western" STYLE="margin-left: 4.73pc"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt">The
+src directory contains 3 main repositories of code. They are bin, lib
+and modules. The bin directory contains all the source code for the
+WM itself and any primary executables it uses curing execution. The
+modules directory contains all plug-in modules that E17 can load and
+unload dynamically at runtime, allowing the WM to be extended even
+after it has been compiled and installed by users, other developers
+or by the E development team itself. These modules are intended to
+provide clean modular boundaries for certain features of
+Enlightenment too, so if a feature isn't used it doesn't have to use
+any resources at all. Each module lives in its own subdirectory with
+the code and special module specific data like images, Edje .eet
+files etc. that are specific to that module. See further on for more
+information on modules.</FONT></FONT></P>
+<P CLASS="western"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt"><B>Design
+Ethos</B></FONT></FONT></P>
+<P CLASS="western" STYLE="margin-left: 4.73pc"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt">As
+for design, Enlightenment doesn't strictly follow a conservative WM
+design. It does some things quite differently, with the aim of
+providing more features with simpler internal design to achieve more
+features with more solidity than a conservative design. An example of
+this is the fact that E17 does away completely with the root window
+and puts all managed windows within a virtual root. Virtual roots are
+valid to be used in WM's but are rarely used and many client
+applications are badly written to hunt for windows on the screen
+ASSUMING there is no virtual root. These are bugs in the respective
+applications (some of which are: Mozilla, xwininfo, xprop, xkill)
+which when searching for an application window should walk the window
+tree correctly. The reason for Enlightenment to adopt virtual roots
+is not to make users annoyed or force application developers to
+change their code, but to allow certain things to be done much more
+efficiently. A virtual root allows the WM to scroll windows
+seamlessly and all in sync by using window gravity and resizing of
+the virtual root container. It also allows the WM to simulate
+different resolutions very easily since it can control the virtual
+root window, which is not normally possible to do with the real root
+window.</FONT></FONT></P>
+<P CLASS="western"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt"><B>Managers</B></FONT></FONT></P>
+<P CLASS="western" STYLE="margin-left: 4.73pc"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt">Managers
+are the basic unit of window management. One Manager object is create
+per root window to manage. For more people, even if they run Xinerama
+across multiple screens, there is only 1 root window, and thus E17
+will only ever have 1 Manager object. If the user runs traditional
+Multihead there will be 1 root window per screen, that may be a
+different size and color depth. E17 will create 1 Manager object per
+screen in this situation. The Manager object handles redirection WM
+specific events for the root window into the WM, thus effectively
+being able to trap several kinds of events before a client gets to
+perform them, thus enabling it to be a WM. A Manager object actually
+creates a window the size of the root window it manages and covers
+the root window up completely. Each Manager object may contain 1 or
+more Container objects which in-turn create their own child windows
+of the Manager window.</FONT></FONT></P>
+<P CLASS="western"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt"><B>Containers</B></FONT></FONT></P>
+<P CLASS="western" STYLE="margin-left: 4.73pc"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt">Container
+objects create their own windows to CONTAIN managed window frames,
+the desktop window (the desktop background is actually just a big
+window that is always kept below all frame windows that contains a
+canvas for displaying the desktop background and all desktop objects
+such as a launcher bar, file icons, etc. etc.). The Container is
+responsible for holding this together and also managing a list of
+&ldquo;obscuring&rdquo; objects that fully obscure the desktop
+canvas, so it can help optimize drawing to the desktop canvas by
+avoiding to draw parts of the desktop background canvas that cannot
+be seen at all. This list is also used to draw soft drop shadows on
+the desktop canvas by the Dropshadow module. The Container object
+managed the desktop background, which is actually a complete EDJE
+object. This may seem strange as a simple JPEG or PNG or GIF may be
+enough, but by using an EDJE object for the background, the desktop
+wallpaper can be animated, react to events and input, scale
+intelligently (not just &ldquo;stretch&rdquo; or &ldquo;tile&rdquo;),
+where the desktop wallpaper designer can specify what elements of the
+wallpaper scale, align, where and how, if they tile, overlay,
+underlay each other, and how.</FONT></FONT></P>
+<P CLASS="western" STYLE="margin-left: 4.73pc"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt">Currently
+the Container only responds to configuration change events to change
+the background, which needs to be a path to a Edje .eet file that
+contains a Edje group of the key &ldquo;desktop/background&rdquo;. It
+will load this group, if present in the file as the background. What
+it needs is a configuration tool that can browse the filing system
+and directories for .eet files that are like this, display thumbnails
+and previews, allow a user to select a new background and maybe
+specify if the background file should change between different
+virtual desktops (which are currently not implemented), and also be
+able to browse normal JPEG, PNG etc. files and &ldquo;import&rdquo;
+them into a users wallpaper database (a directory of wallpaper .eet
+files) and thus convert into a Edje .eet file, which now retains the
+scaling, tiling and other preferences the user selected within the
+file. The user can now give this file to others and it will retain
+the same information, without them needing to know if the wallpaper
+needs to tile as a pattern, stretch etc.</FONT></FONT></P>
+<P CLASS="western" STYLE="margin-left: 4.73pc"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt">The
+desktop canvas is also shared by many modules that may display things
+like battery meters, cpu load, launcher bars, drop shadows etc. on
+the desktop background. The desktop canvas lets this be a bit more
+organized than it would be with a &ldquo;free for all&rdquo; drawing
+to the root window under more conservative WM's.</FONT></FONT></P>
+<P CLASS="western"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt"><B>Borders</B></FONT></FONT></P>
+<P CLASS="western" STYLE="margin-left: 4.73pc"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt">Borders
+are the frame outside an application window that is controlled by the
+WM and that holds the application window within, and allows users to
+move, resize, shade, lower, close and otherwise control windows. This
+is currently buggy and not very useful and needs work in combination
+with the Manager system.</FONT></FONT></P>
+<P CLASS="western"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt"><B>Menus</B></FONT></FONT></P>
+<P CLASS="western" STYLE="margin-left: 4.73pc"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt">Enlightenment
+has its own Menu widget code to allow for highly themable menus that
+match your WM's theme. These menus are intended to act as ways to
+launch programs, select actions to perform with context sensitive
+menus and to provide basic on/off and option select options for
+simple enabling and disabling of features of states on objects. The
+menu code is fairly solid, but incomplete. It is efficient, able to
+let the user navigate with the keyboard, mouse wheel or mouse. It
+currently needs work to support shaped menu windows, be able to add,
+delete and modify menu items while the item is still realized, and a
+set of other things listed in the TODO list at the top of the
+e_menu.c source file.</FONT></FONT></P>
+<P CLASS="western"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt"><B>Modules</B></FONT></FONT></P>
+<P CLASS="western" STYLE="margin-left: 4.73pc"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt">Modules
+are a new and powerful way to extend E17 by being able to load and
+execute code during runtime that may be shipped with E17 or even
+developed after installation as enhancements and additions. This
+system still needs work in the configuration department, knowing what
+modules to load and not load, if they are to be enabled once they are
+loaded etc. It is possible to have &ldquo;dormant&rdquo; modules that
+are loaded but not enabled. They will use memory and resources for
+the module entry and the binary executable code loaded into memory,
+but nothing else. An enabled module will also use resources for
+objects, images, etc. etc.</FONT></FONT></P>
+<P CLASS="western"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt"><B>Dropshadow
+Module</B></FONT></FONT></P>
+<P CLASS="western" STYLE="margin-left: 4.73pc"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt">This
+module demonstrates the Container shape system allowing a module to
+monitor obscuring shapes in a container. This lets the module, in
+this case, draw soft shadows under these obscuring shapes. It is a
+fairly simple module and also demonstrates a module that has no
+visible elements on the screen you can click on or control directly
+with the mouse or keyboard. It could do with some optimization work
+with the blur algorithm, like clipping out the obscuring shape
+entirely from the blurring algorithm, and perhaps finding a way of
+blurring using a Gaussian blur that is faster.</FONT></FONT></P>
+<P CLASS="western"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt"><B>IBar
+Module</B></FONT></FONT></P>
+<P CLASS="western" STYLE="margin-left: 4.73pc"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt">The
+IBar module is a template for doing a &ldquo;launcher panel&rdquo; in
+E17. It allows the user to manage a list of frequently used
+applications to go into the IBar's panel. It is an attempt to unify
+the configuration of &ldquo;bars&rdquo; in E17 so if a user changes
+launcher bar modules, they can retain at least most of the basic
+configuration, like what applications are in the bar, and so-on. The
+IBar has some unique characteristics allowing a lot of applications
+to be held in a small bar, by having it auto-scroll on mouse over to
+the desired location in the list. It uses the Application interface
+to fetch a list of applications and monitor this list for changes on
+disk. The IBar also allows itself to be resized and dragged around
+the edges of the screen, set to fill a edge, auto-size to fit its
+contents, or be a fixed size.</FONT></FONT></P>
+<P CLASS="western" STYLE="margin-left: 4.73pc"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt">It
+needs work to be done on auto hide and auto show, so on an auto show
+it could signal other parts of E17, for example, to slide all windows
+out of the way, or other such features. It needs work to display
+application names, descriptions and other such information as well.
+It also needs to support the icon size changing on the fly as well as
+saving and loading its configuration, On of the largest pieces of
+work is to support subdirectories in the bar's application list. How
+best to do this is still up in the air. For now this isn't supported.</FONT></FONT></P>
+<P CLASS="western"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt"><B>Test
+Module</B></FONT></FONT></P>
+<P CLASS="western" STYLE="margin-left: 4.73pc"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt">This
+is just a test module for playing with new module features. It will
+not make its way into a final E17 release, but can be used as a bare
+skeleton for building a new module.</FONT></FONT></P>
+<P CLASS="western"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt"><B>Applications</B></FONT></FONT></P>
+<P CLASS="western" STYLE="margin-left: 4.73pc"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt">This
+subsystem is responsible for being able to list applications held in
+E17 specific application directories. This system can inform other
+parts of E17 and modules of changes, such as an application being
+deleted or added, its name or icon changed, the order of applications
+in a directory changing, an application being executed or displaying
+its window, or finishing execution. It can share the application
+lists between multiple systems to save RAM and CPU and I/O in loading
+them multiple times.</FONT></FONT></P>
+<P CLASS="western" STYLE="margin-left: 4.73pc"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt">It
+may be of surprise to find E17 is not loading the XML, .desktop
+entries etc. etc. than KDE and GNOME use. In all honesty that system
+is a little overcomplicated and hard to keep up with. It also is not
+as robust as E17's system. With E17's system the images for the icons
+are within the application file. They cannot be separately deleted.
+Also using an Edje .eet file for the application entry allows for
+fully scalable and animated icons as well, with excellent compression
+abilities. The intent is to have external tools that can import and
+create such files FROM existing system databases of applications and
+monitor these for changes, reflecting those changes in Enlightenments
+application directories.</FONT></FONT></P>
+<P CLASS="western"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt"><B>IPC</B></FONT></FONT></P>
+<P CLASS="western" STYLE="margin-left: 4.73pc"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt">IPC
+(inter process communication) is provided in E17 as a mechanism for
+another application to send commands and requests to Enlightenment
+and receive responses with information. This mechanism is intended to
+allow external utilities to be written and ask Enlightenment to do
+things via a communications channel built into the WM. E17 uses the
+Ecore IPC system to do this. So far it support no commands at all,
+but will accept clients connecting. Many commands need to be
+implemented here, such as being able to ask E17 to load or unload a
+module, change background, change focus mode, theme, restart etc.</FONT></FONT></P>
+<P CLASS="western"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt"><B>Objects</B></FONT></FONT></P>
+<P CLASS="western" STYLE="margin-left: 4.73pc"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt">This
+provides a basic Object Oriented handling system for E17. Any major
+&ldquo;object&rdquo; in E17 should use this system for handling
+reference counting, destruction and creation of objects, as it
+provides safety mechanisms to check if an object has accidentally
+been destroyed and still has a pointer to it, keep references on
+objects intact etc. This should be used as much as possible, as well
+as the macros it provides for checking on entry points into subsystem
+functions etc.</FONT></FONT></P>
+<P CLASS="western"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt"><B>Pointers</B></FONT></FONT></P>
+<P CLASS="western" STYLE="margin-left: 4.73pc"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt">This
+subsystem handles setting of X mouse cursors in an abstract fashion.
+In theory E just looks at a cursor as RGBA pixel data. In future
+Ecore will be expanded to be able to set full color cursors in X as
+well as monochrome versions of them. Currently it is very simplistic
+loading a fixed PNG as a cursor. This needs to be improved.</FONT></FONT></P>
+<P CLASS="western"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt"><B>Box</B></FONT></FONT></P>
+<P CLASS="western" STYLE="margin-left: 4.73pc"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt">This
+is a basic Evas Smart Object that acts as a horizontal or vertical
+box layout container. It needs more features for layout, like better
+non homogeneous layout. This is a handy object that is sued by menus
+and the IBar module for starters.</FONT></FONT></P>
+<P CLASS="western"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt"><B>Icons</B></FONT></FONT></P>
+<P CLASS="western" STYLE="margin-left: 4.73pc"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt">This
+is an Evas Smart Object that creates a icon display object That
+handles scaling the icon sensibly within the object bounds, so the
+application doesn't have to handle trying to retain aspect ratio for
+the object. This is a simple smart object and indicative of possibly
+more in future to go into E17's code to save time and effort.</FONT></FONT></P>
+<P CLASS="western"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt"><B>Paths</B></FONT></FONT></P>
+<P CLASS="western" STYLE="margin-left: 4.73pc"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt">This
+helps E17 find files in a list of paths/directories. There isn't a
+lot to say about this except that it works and may need some minimal
+expansion in future.</FONT></FONT></P>
+<P CLASS="western"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt"><B>User
+Information</B></FONT></FONT></P>
+<P CLASS="western" STYLE="margin-left: 4.73pc"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt">This
+returns information about a user such as their home directory. This
+will expand in future.</FONT></FONT></P>
+<P CLASS="western"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt"><B>Virtual
+and Multiple Desktops</B></FONT></FONT></P>
+<P CLASS="western" STYLE="margin-left: 4.73pc"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt">This
+is not implemented yet.</FONT></FONT></P>
+<P CLASS="western"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt"><B>Error
+Dialogs</B></FONT></FONT></P>
+<P CLASS="western" STYLE="margin-left: 4.73pc"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt">This
+displays very basic error dialogs right now, either as text in the
+console inf E17 isn't ready to run graphically yet, This needs to be
+made more robust, so it can display errors if it cannot find the font
+and images for the basic error dialog. It should also be expanded to
+support fully themed dialogs if the theme loads properly and properly
+supports theming of dialogs, so dialogs look good.</FONT></FONT></P>
+<P CLASS="western"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt"><B>Initialization
+Splash Screen</B></FONT></FONT></P>
+<P CLASS="western" STYLE="margin-left: 4.73pc"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt">This
+keeps the user amused while E17 starts up and launches all programs.
+For now it is artificially fixed to stay up for 4 seconds so you can
+enjoy its radiant splendor, as E17 starts so quickly you'd never see
+it, but in future it will stay up until the WM is all ready to go.</FONT></FONT></P>
+<P CLASS="western"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt"><B>Configuration</B></FONT></FONT></P>
+<P CLASS="western" STYLE="margin-left: 4.73pc"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt">Loading
+and saving configuration is a big task. E17 uses Ecore Config as its
+underlying layer for saving and loading configuration. The E17 Config
+system simply sets up all listeners for when configuration values
+change, loads all the initial configuration values, and saves them
+when and if they change internally. It needs work to make it much
+simpler as many more config values will be added and it needs to be
+more efficient ad loading them if they change runtime via a listener
+(the number of listeners needs to be reduced), so maybe loading
+config values in sections/groups and deferring a reload in a Ecore
+Job would limit the reloading effects. Also declaring config values
+and how to load and declare them is required. Maybe a big table with
+default values, min, max, step, descriptions etc.</FONT></FONT></P>
+<P CLASS="western"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt"><B>File
+Operations</B></FONT></FONT></P>
+<P CLASS="western" STYLE="margin-left: 4.73pc"><FONT SIZE=1 STYLE="font-size: 8pt"><FONT FACE="Bitstream Vera Sans">Files
+need to be accessed, listed, found, examined as part of E17 running.
+This file has simplified, easy-to-use functions for doing anything
+related to files. This file will expand over time as more file
+operations are needed.</FONT></FONT></P>
+<P CLASS="western"><FONT FACE="Bitstream Vera Sans"><FONT SIZE=1 STYLE="font-size: 8pt"><B>Miscellaneous
+Utilities</B></FONT></FONT></P>
+<P CLASS="western" STYLE="margin-left: 4.73pc"><FONT SIZE=1 STYLE="font-size: 8pt"><FONT FACE="Bitstream Vera Sans">Things
+that are useful in many places but do not have enough scope to have a
+file of their own go into this file.</FONT></FONT></P>
+</BODY>
+</HTML>
diff --git a/doc/enlightenment.png b/doc/enlightenment.png
new file mode 100644
index 000000000..47597a8d4
--- /dev/null
+++ b/doc/enlightenment.png
Binary files differ
diff --git a/enlightenment-config.in b/enlightenment-config.in
new file mode 100644
index 000000000..819ae8cf0
--- /dev/null
+++ b/enlightenment-config.in
@@ -0,0 +1,59 @@
+#!/bin/sh
+
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+exec_prefix_set=no
+
+usage="\
+Usage: evas-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--libs] [--cflags]"
+
+if test $# -eq 0; then
+ echo "${usage}" 1>&2
+ exit 1
+fi
+
+while test $# -gt 0; do
+ case "$1" in
+ -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+ *) optarg= ;;
+ esac
+
+ case $1 in
+ --prefix=*)
+ prefix=$optarg
+ if test $exec_prefix_set = no ; then
+ exec_prefix=$optarg
+ fi
+ ;;
+ --prefix)
+ echo $prefix
+ ;;
+ --exec-prefix=*)
+ exec_prefix=$optarg
+ exec_prefix_set=yes
+ ;;
+ --exec-prefix)
+ echo $exec_prefix
+ ;;
+ --version)
+ echo @VERSION@
+ ;;
+ --cflags)
+ if test @includedir@ != /usr/include ; then
+ includes=-I@includedir@
+ fi
+ echo $includes
+ ;;
+ --libs)
+ libdirs=-L@libdir@
+ echo $libdirs
+ ;;
+ *)
+ echo "${usage}" 1>&2
+ exit 1
+ ;;
+ esac
+ shift
+done
+
+exit 0
diff --git a/enlightenment.oe b/enlightenment.oe
new file mode 100644
index 000000000..1240e9304
--- /dev/null
+++ b/enlightenment.oe
@@ -0,0 +1,28 @@
+DESCRIPTION = "Enlightenment 0.17.0 snapshot release"
+HOMEPAGE = "http://www.enlightenment.org"
+MAINTAINER = "Carsten Haitzler (Rasterman) <raster@rasterman.com>"
+SECTION = "e/windowmanager"
+PRIORITY = "optional"
+DEPENDS = "ecore edje eet embryo evas imlib2 embryo-native edje-native imlib2-native"
+PV = "0.17.0_pre5"
+PR = "1"
+
+do_prepsources () {
+ make clean distclean || true
+}
+addtask prepsources after do_fetch before do_unpack
+SRC_URI = "file://./"
+S = "${WORKDIR}/e"
+
+inherit autotools pkgconfig binconfig
+
+export EET_CONFIG = "${STAGING_BINDIR}/eet-config"
+export EVAS_CONFIG = "${STAGING_BINDIR}/evas-config"
+export ECORE_CONFIG = "${STAGING_BINDIR}/ecore-config"
+export EMBRYO_CONFIG = "${STAGING_BINDIR}/embryo-config"
+export EDJE_CONFIG = "${STAGING_BINDIR}/edje-config"
+
+EXTRA_OECONF = "--with-profile=HIRES_PDA \
+ --with-edje-cc=/usr/local/bin/edje_cc"
+
+FILES_${PN} = "${bindir}/* ${libdir}/* ${datadir}"
diff --git a/enlightenment.spec b/enlightenment.spec
new file mode 100644
index 000000000..c75fe555b
--- /dev/null
+++ b/enlightenment.spec
@@ -0,0 +1,67 @@
+# Note that this is NOT a relocatable package
+%define ver 0.17.0_pre5
+%define rel NOT_RELEASE_1
+%define prefix /usr
+
+Summary: enlightenment
+Name: enlightenment
+Version: %ver
+Release: %rel
+Copyright: BSD
+Group: System Environment/Desktops
+Source: ftp://ftp.enlightenment.org/pub/enlightenment/enlightenment-%{ver}.tar.gz
+BuildRoot: /var/tmp/enlightenment-root
+Packager: The Rasterman <raster@rasterman.com>
+URL: http://www.enlightenment.org/
+BuildRequires: evas-devel
+BuildRequires: edje-devel
+BuildRequires: ecore-devel
+Requires: edje
+Requires: evas
+Requires: ecore
+
+Docdir: %{prefix}/doc
+
+%description
+
+Enlightenment is a window manager
+
+%prep
+rm -rf $RPM_BUILD_ROOT
+
+%setup -q
+
+%build
+./configure --prefix=%prefix
+
+if [ "$SMP" != "" ]; then
+ (make "MAKE=make -k -j $SMP"; exit 0)
+ make
+else
+ make
+fi
+###########################################################################
+
+%install
+make DESTDIR=$RPM_BUILD_ROOT install
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post
+
+%postun
+
+%files
+%defattr(-,root,root)
+%attr(755,root,root) %{prefix}/lib/enlightenment
+%attr(755,root,root) %{prefix}/bin/*
+%attr(755,root,root) %{prefix}/share/enlightenment
+%doc AUTHORS
+%doc COPYING
+%doc COPYING-PLAIN
+%doc README
+
+%changelog
+* Sat Jun 23 2001 The Rasterman <raster@rasterman.com>
+- Created spec file
diff --git a/m4/ac_expand_dir.m4 b/m4/ac_expand_dir.m4
new file mode 100644
index 000000000..b5599a074
--- /dev/null
+++ b/m4/ac_expand_dir.m4
@@ -0,0 +1,14 @@
+dnl AC_EXPAND_DIR(VARNAME, DIR)
+dnl expands occurrences of ${prefix} and ${exec_prefix} in the given DIR,
+dnl and assigns the resulting string to VARNAME
+dnl example: AC_DEFINE_DIR(DATADIR, "$datadir")
+dnl by Alexandre Oliva <oliva@dcc.unicamp.br>
+AC_DEFUN([AC_EXPAND_DIR], [
+ $1=$2
+ $1=`(
+ test "x$prefix" = xNONE && prefix="$ac_default_prefix"
+ test "x$exec_prefix" = xNONE && exec_prefix="${prefix}"
+ eval echo \""[$]$1"\"
+ )`
+])
+
diff --git a/m4/ac_path_generic.m4 b/m4/ac_path_generic.m4
new file mode 100644
index 000000000..27b55b3ff
--- /dev/null
+++ b/m4/ac_path_generic.m4
@@ -0,0 +1,136 @@
+dnl @synopsis AC_PATH_GENERIC(LIBRARY [, MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+dnl
+dnl Runs a LIBRARY-config script and defines LIBRARY_CFLAGS and LIBRARY_LIBS
+dnl
+dnl The script must support `--cflags' and `--libs' args.
+dnl If MINIMUM-VERSION is specified, the script must also support the
+dnl `--version' arg.
+dnl If the `--with-library-[exec-]prefix' arguments to ./configure are given,
+dnl it must also support `--prefix' and `--exec-prefix'.
+dnl (In other words, it must be like gtk-config.)
+dnl
+dnl For example:
+dnl
+dnl AC_PATH_GENERIC(Foo, 1.0.0)
+dnl
+dnl would run `foo-config --version' and check that it is at least 1.0.0
+dnl
+dnl If so, the following would then be defined:
+dnl
+dnl FOO_CFLAGS to `foo-config --cflags`
+dnl FOO_LIBS to `foo-config --libs`
+dnl
+dnl At present there is no support for additional "MODULES" (see AM_PATH_GTK)
+dnl (shamelessly stolen from gtk.m4 and then hacked around a fair amount)
+dnl
+dnl @author Angus Lees <gusl@cse.unsw.edu.au>
+
+AC_DEFUN([AC_PATH_GENERIC],
+[dnl
+dnl we're going to need uppercase, lowercase and user-friendly versions of the
+dnl string `LIBRARY'
+pushdef([UP], translit([$1], [a-z], [A-Z]))dnl
+pushdef([DOWN], translit([$1], [A-Z], [a-z]))dnl
+
+dnl
+dnl Get the cflags and libraries from the LIBRARY-config script
+dnl
+AC_ARG_WITH(DOWN-prefix,[ --with-]DOWN[-prefix=PFX Prefix where $1 is installed (optional)],
+ DOWN[]_config_prefix="$withval", DOWN[]_config_prefix="")
+AC_ARG_WITH(DOWN-exec-prefix,[ --with-]DOWN[-exec-prefix=PFX Exec prefix where $1 is installed (optional)],
+ DOWN[]_config_exec_prefix="$withval", DOWN[]_config_exec_prefix="")
+
+ if test x$DOWN[]_config_exec_prefix != x ; then
+ DOWN[]_config_args="$DOWN[]_config_args --exec-prefix=$DOWN[]_config_exec_prefix"
+ if test x${UP[]_CONFIG+set} != xset ; then
+ UP[]_CONFIG=$DOWN[]_config_exec_prefix/bin/DOWN-config
+ fi
+ fi
+ if test x$DOWN[]_config_prefix != x ; then
+ DOWN[]_config_args="$DOWN[]_config_args --prefix=$DOWN[]_config_prefix"
+ if test x${UP[]_CONFIG+set} != xset ; then
+ UP[]_CONFIG=$DOWN[]_config_prefix/bin/DOWN-config
+ fi
+ fi
+
+ AC_PATH_PROG(UP[]_CONFIG, DOWN-config, no)
+ ifelse([$2], ,
+ AC_MSG_CHECKING(for $1),
+ AC_MSG_CHECKING(for $1 - version >= $2)
+ )
+ no_[]DOWN=""
+ if test "$UP[]_CONFIG" = "no" ; then
+ no_[]DOWN=yes
+ else
+ UP[]_CFLAGS="`$UP[]_CONFIG $DOWN[]_config_args --cflags`"
+ UP[]_LIBS="`$UP[]_CONFIG $DOWN[]_config_args --libs`"
+ ifelse([$2], , ,[
+ DOWN[]_config_major_version=`$UP[]_CONFIG $DOWN[]_config_args \
+ --version | sed 's/[[^0-9]]*\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+ DOWN[]_config_minor_version=`$UP[]_CONFIG $DOWN[]_config_args \
+ --version | sed 's/[[^0-9]]*\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+ DOWN[]_config_micro_version=`$UP[]_CONFIG $DOWN[]_config_args \
+ --version | sed 's/[[^0-9]]*\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+ DOWN[]_wanted_major_version="regexp($2, [\<\([0-9]*\)], [\1])"
+ DOWN[]_wanted_minor_version="regexp($2, [\<\([0-9]*\)\.\([0-9]*\)], [\2])"
+ DOWN[]_wanted_micro_version="regexp($2, [\<\([0-9]*\).\([0-9]*\).\([0-9]*\)], [\3])"
+
+ # Compare wanted version to what config script returned.
+ # If I knew what library was being run, i'd probably also compile
+ # a test program at this point (which also extracted and tested
+ # the version in some library-specific way)
+ if test "$DOWN[]_config_major_version" -lt \
+ "$DOWN[]_wanted_major_version" \
+ -o \( "$DOWN[]_config_major_version" -eq \
+ "$DOWN[]_wanted_major_version" \
+ -a "$DOWN[]_config_minor_version" -lt \
+ "$DOWN[]_wanted_minor_version" \) \
+ -o \( "$DOWN[]_config_major_version" -eq \
+ "$DOWN[]_wanted_major_version" \
+ -a "$DOWN[]_config_minor_version" -eq \
+ "$DOWN[]_wanted_minor_version" \
+ -a "$DOWN[]_config_micro_version" -lt \
+ "$DOWN[]_wanted_micro_version" \) ; then
+ # older version found
+ no_[]DOWN=yes
+ echo -n "*** An old version of $1 "
+ echo -n "($DOWN[]_config_major_version"
+ echo -n ".$DOWN[]_config_minor_version"
+ echo ".$DOWN[]_config_micro_version) was found."
+ echo -n "*** You need a version of $1 newer than "
+ echo -n "$DOWN[]_wanted_major_version"
+ echo -n ".$DOWN[]_wanted_minor_version"
+ echo ".$DOWN[]_wanted_micro_version."
+ echo "***"
+ echo "*** If you have already installed a sufficiently new version, this error"
+ echo "*** probably means that the wrong copy of the DOWN-config shell script is"
+ echo "*** being found. The easiest way to fix this is to remove the old version"
+ echo "*** of $1, but you can also set the UP[]_CONFIG environment to point to the"
+ echo "*** correct copy of DOWN-config. (In this case, you will have to"
+ echo "*** modify your LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf"
+ echo "*** so that the correct libraries are found at run-time)"
+ fi
+ ])
+ fi
+ if test "x$no_[]DOWN" = x ; then
+ AC_MSG_RESULT(yes)
+ ifelse([$3], , :, [$3])
+ else
+ AC_MSG_RESULT(no)
+ if test "$UP[]_CONFIG" = "no" ; then
+ echo "*** The DOWN-config script installed by $1 could not be found"
+ echo "*** If $1 was installed in PREFIX, make sure PREFIX/bin is in"
+ echo "*** your path, or set the UP[]_CONFIG environment variable to the"
+ echo "*** full path to DOWN-config."
+ fi
+ UP[]_CFLAGS=""
+ UP[]_LIBS=""
+ ifelse([$4], , :, [$4])
+ fi
+ AC_SUBST(UP[]_CFLAGS)
+ AC_SUBST(UP[]_LIBS)
+
+ popdef([UP])
+ popdef([DOWN])
+])
+
diff --git a/src/Makefile.am b/src/Makefile.am
new file mode 100644
index 000000000..3c913a89e
--- /dev/null
+++ b/src/Makefile.am
@@ -0,0 +1,2 @@
+MAINTAINERCLEANFILES = Makefile.in
+SUBDIRS = lib bin modules
diff --git a/src/bin/Makefile.am b/src/bin/Makefile.am
new file mode 100644
index 000000000..eb05130d7
--- /dev/null
+++ b/src/bin/Makefile.am
@@ -0,0 +1,63 @@
+MAINTAINERCLEANFILES = Makefile.in
+INCLUDES = -I$(includedir) \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/src/bin \
+ -I$(top_srcdir)/src/lib \
+ @e_cflags@ \
+ @EDJE_DEF@
+
+bin_PROGRAMS = enlightenment
+
+enlightenment_SOURCES = \
+e.h \
+e_file.h \
+e_file.c \
+e_main.c \
+e_user.h \
+e_user.c \
+e_manager.h \
+e_manager.c \
+e_path.h \
+e_path.c \
+e_init.h \
+e_init.c \
+e_ipc.h \
+e_ipc.c \
+e_error.h \
+e_error.c \
+e_container.h \
+e_container.c \
+e_desk.h \
+e_desk.c \
+e_border.h \
+e_border.c \
+e_pointer.h \
+e_pointer.c \
+e_config.h \
+e_config.c \
+e_menu.h \
+e_menu.c \
+e_object.h \
+e_object.c \
+e_icon.h \
+e_icon.c \
+e_box.h \
+e_box.c \
+e_int_menus.h \
+e_int_menus.c \
+e_module.h \
+e_module.c \
+e_apps.h \
+e_apps.c \
+e_utils.h \
+e_utils.c \
+e_canvas.h \
+e_canvas.c \
+e_focus.h \
+e_focus.c \
+e_place.h \
+e_place.c \
+e_resist.h \
+e_resist.c
+
+enlightenment_LDFLAGS = -export-dynamic @e_libs@ @dlopen_libs@
diff --git a/src/bin/e.h b/src/bin/e.h
new file mode 100644
index 000000000..299fc3b81
--- /dev/null
+++ b/src/bin/e.h
@@ -0,0 +1,99 @@
+#ifndef E_H
+#define E_H
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/time.h>
+#include <sys/param.h>
+#include <dlfcn.h>
+
+#include <Evas.h>
+#include <Ecore.h>
+#include <Ecore_X.h>
+#include <Ecore_Evas.h>
+#include <Ecore_Con.h>
+#include <Ecore_Ipc.h>
+#include <Ecore_Job.h>
+#include <Ecore_Txt.h>
+#include <Ecore_Config.h>
+#include <Eet.h>
+#include <Edje.h>
+
+#include "config.h"
+
+#include "e_object.h"
+#include "e_file.h"
+#include "e_user.h"
+#include "e_manager.h"
+#include "e_path.h"
+#include "e_ipc.h"
+#include "e_error.h"
+#include "e_container.h"
+#include "e_desk.h"
+#include "e_border.h"
+#include "e_pointer.h"
+#include "e_config.h"
+#include "e_menu.h"
+#include "e_icon.h"
+#include "e_box.h"
+#include "e_init.h"
+#include "e_int_menus.h"
+#include "e_module.h"
+#include "e_apps.h"
+#include "e_utils.h"
+#include "e_canvas.h"
+#include "e_focus.h"
+#include "e_place.h"
+
+typedef struct _E_Before_Idler E_Before_Idler;
+
+E_Before_Idler *e_main_idler_before_add(int (*func) (void *data), void *data, int once);
+void e_main_idler_before_del(E_Before_Idler *eb);
+
+extern E_Path *path_data;
+extern E_Path *path_images;
+extern E_Path *path_fonts;
+extern E_Path *path_themes;
+extern E_Path *path_init;
+
+/* convenience macro to compress code and avoid typos */
+#define E_FN_DEL(_fn, _h) \
+if (_h) \
+{ \
+ _fn(_h); \
+ _h = NULL; \
+}
+
+#define E_INTERSECTS(x, y, w, h, xx, yy, ww, hh) \
+(((x) < ((xx) + (ww))) && \
+((y) < ((yy) + (hh))) && \
+(((x) + (w)) > (xx)) && \
+(((y) + (h)) > (yy)))
+
+#define E_SPANS_COMMON(x1, w1, x2, w2) \
+(!((((x2) + (w2)) <= (x1)) || ((x2) >= ((x1) + (w1)))))
+
+#define E_REALLOC(p, s, n) \
+ p = realloc(p, sizeof(s) * n)
+
+#define E_NEW(s, n) \
+ calloc(n, sizeof(s))
+
+#define E_NEW_BIG(s, n) \
+ malloc(n * sizeof(s))
+
+#define E_FREE(p) \
+ { if (p) {free(p); p = NULL;} }
+
+typedef struct _E_Rect E_Rect;
+
+struct _E_Rect
+{
+ int x, y, w, h;
+};
+
+#endif
diff --git a/src/bin/e_apps.c b/src/bin/e_apps.c
new file mode 100644
index 000000000..529e24dc9
--- /dev/null
+++ b/src/bin/e_apps.c
@@ -0,0 +1,678 @@
+#include "e.h"
+
+/* TODO List:
+ *
+ * * if a application .eet file is added in a different location in a monitored app tree but has the same filename as an existing one somewhere else, the existing one gets a changed callback, not an dded callback for the new one
+ * * track app execution state, visibility state etc. and call callbacks
+ * * calls to execute an app or query its runing/starting state etc.
+ */
+
+/* local subsystem functions */
+typedef struct _E_App_Change_Info E_App_Change_Info;
+typedef struct _E_App_Callback E_App_Callback;
+
+struct _E_App_Change_Info
+{
+ E_App *app;
+ E_App_Change change;
+};
+
+struct _E_App_Callback
+{
+ void (*func) (void *data, E_App *a, E_App_Change ch);
+ void *data;
+ unsigned char delete_me : 1;
+};
+
+static void _e_app_free (E_App *a);
+static void _e_app_fields_fill (E_App *a, char *path);
+static void _e_app_fields_empty (E_App *a);
+static Evas_List *_e_app_dir_file_list_get (E_App *a, char *path);
+static E_App *_e_app_subapp_path_find (E_App *a, char *subpath);
+static void _e_app_monitor (void);
+static void _e_app_change (E_App *a, E_App_Change ch);
+static int _e_app_check (void *data);
+static Evas_Bool _e_app_check_each (Evas_Hash *hash, const char *key, void *data, void *fdata);
+static int _e_apps_cb_exit (void *data, int type, void *event);
+
+/* local subsystem globals */
+static Evas_Hash *_e_apps = NULL;
+static Ecore_Timer *_e_apps_checker = NULL;
+static int _e_apps_callbacks_walking = 0;
+static int _e_apps_callbacks_delete_me = 0;
+static Evas_List *_e_apps_change_callbacks = NULL;
+static Ecore_Event_Handler *_e_apps_exit_handler = NULL;
+
+/* externally accessible functions */
+int
+e_app_init(void)
+{
+ _e_apps_exit_handler = ecore_event_handler_add(ECORE_EVENT_EXE_EXIT, _e_apps_cb_exit, NULL);
+ return 1;
+}
+
+int
+e_app_shutdown(void)
+{
+ if (_e_apps_exit_handler)
+ {
+ ecore_event_handler_del(_e_apps_exit_handler);
+ _e_apps_exit_handler = NULL;
+ }
+ return 1;
+}
+
+E_App *
+e_app_new(char *path, int scan_subdirs)
+{
+ E_App *a;
+
+ a = evas_hash_find(_e_apps, path);
+ if (a)
+ {
+ e_object_ref(E_OBJECT(a));
+ return a;
+ }
+ a = E_OBJECT_ALLOC(E_App, _e_app_free);
+ a->mod_time = e_file_mod_time(path);
+ if (e_file_is_dir(path))
+ {
+ char buf[4096];
+
+ a->path = strdup(path);
+ snprintf(buf, sizeof(buf), "%s/.directory.eet", path);
+ a->directory_mod_time = e_file_mod_time(buf);
+ if (e_file_exists(buf))
+ _e_app_fields_fill(a, buf);
+ else
+ a->name = strdup(e_file_get_file(path));
+ if (scan_subdirs) e_app_subdir_scan(a, scan_subdirs);
+ }
+ else if (e_file_exists(path))
+ {
+ char *p;
+
+ /* check if file ends in .eet */
+ p = strrchr(path, '.');
+ if (!p)
+ {
+ free(a);
+ return NULL;
+ }
+ p++;
+ if (strcasecmp(p, "eet"))
+ {
+ free(a);
+ return NULL;
+ }
+ /* record the path */
+ a->path = strdup(path);
+
+ /* get the field data */
+ _e_app_fields_fill(a, path);
+
+ /* no exe field.. not valid. drop it */
+ if (!a->exe)
+ {
+ if (a->name) free(a->name);
+ if (a->generic) free(a->generic);
+ if (a->comment) free(a->comment);
+ if (a->exe) free(a->exe);
+ if (a->path) free(a->path);
+ if (a->win_name) free(a->win_name);
+ if (a->win_class) free(a->win_class);
+ free(a);
+ return NULL;
+ }
+ }
+ else
+ {
+ free(a);
+ return NULL;
+ }
+ _e_apps = evas_hash_add(_e_apps, a->path, a);
+ _e_app_monitor();
+ return a;
+}
+
+void
+e_app_subdir_scan(E_App *a, int scan_subdirs)
+{
+ Evas_List *files, *files2 = NULL;
+ FILE *f;
+ char buf[4096];
+
+ E_OBJECT_CHECK(a);
+ if (a->exe) return;
+ if (a->scanned)
+ {
+ Evas_List *l;
+
+ if (!scan_subdirs) return;
+ for (l = a->subapps; l; l = l->next)
+ e_app_subdir_scan(l->data, scan_subdirs);
+ return;
+ }
+ a->scanned = 1;
+ files = _e_app_dir_file_list_get(a, a->path);
+ while (files)
+ {
+ E_App *a2;
+ char *s;
+
+ s = files->data;
+ if (s[0] != '.')
+ {
+ snprintf(buf, sizeof(buf), "%s/%s", a->path, s);
+ free(s);
+ a2 = e_app_new(buf, scan_subdirs);
+ if (a2)
+ {
+ a->subapps = evas_list_append(a->subapps, a2);
+ a2->parent = a;
+ }
+ }
+ files = evas_list_remove_list(files, files);
+ }
+}
+
+int
+e_app_exec(E_App *a)
+{
+ Ecore_Exe *exe;
+
+ E_OBJECT_CHECK_RETURN(a, 0);
+ if (!a->exe) return 0;
+ exe = ecore_exe_run(a->exe, a);
+ if (!exe) return 0;
+ a->instances = evas_list_append(a->instances, exe);
+ if (a->startup_notify) a->starting = 1;
+ _e_app_change(a, E_APP_EXEC);
+ return 1;
+}
+
+int
+e_app_starting_get(E_App *a)
+{
+ E_OBJECT_CHECK_RETURN(a, 0);
+ return a->starting;
+}
+
+int
+e_app_running_get(E_App *a)
+{
+ E_OBJECT_CHECK_RETURN(a, 0);
+ if (a->instances) return 1;
+ return 0;
+}
+
+void
+e_app_change_callback_add(void (*func) (void *data, E_App *a, E_App_Change ch), void *data)
+{
+ E_App_Callback *cb;
+
+ cb = calloc(1, sizeof(E_App_Callback));
+ cb->func = func;
+ cb->data = data;
+ _e_apps_change_callbacks = evas_list_append(_e_apps_change_callbacks, cb);
+ _e_app_monitor();
+}
+
+void
+e_app_change_callback_del(void (*func) (void *data, E_App *a, E_App_Change ch), void *data)
+{
+ Evas_List *l;
+
+ for (l = _e_apps_change_callbacks; l; l = l->next)
+ {
+ E_App_Callback *cb;
+
+ cb = l->data;
+ if ((cb->func == func) && (cb->data == data))
+ {
+ if (_e_apps_callbacks_walking)
+ {
+ cb->delete_me = 1;
+ _e_apps_callbacks_delete_me = 1;
+ }
+ else
+ {
+ _e_apps_change_callbacks = evas_list_remove_list(_e_apps_change_callbacks, l);
+ free(cb);
+ _e_app_monitor();
+ }
+ return;
+ }
+ }
+}
+
+/* local subsystem functions */
+static void
+_e_app_free(E_App *a)
+{
+ while (a->instances)
+ {
+ Ecore_Exe *exe;
+
+ exe = a->instances->data;
+ ecore_exe_free(exe);
+ a->instances = evas_list_remove_list(a->instances, a->instances);
+ }
+ while (a->subapps)
+ {
+ E_App *a2;
+
+ a2 = a->subapps->data;
+ e_object_unref(E_OBJECT(a2));
+ a->subapps = evas_list_remove(a->subapps, a2);
+ }
+ if (a->parent)
+ a->parent->subapps = evas_list_remove(a->parent->subapps, a);
+ _e_apps = evas_hash_del(_e_apps, a->path, a);
+ if (a->name) free(a->name);
+ if (a->generic) free(a->generic);
+ if (a->comment) free(a->comment);
+ if (a->exe) free(a->exe);
+ if (a->path) free(a->path);
+ if (a->win_name) free(a->win_name);
+ if (a->win_class) free(a->win_class);
+ free(a);
+ _e_app_monitor();
+}
+
+static void
+_e_app_fields_fill(E_App *a, char *path)
+{
+ char buf[4096];
+ char *str;
+ char *lang;
+
+ /* get our current language */
+ lang = getenv("LANG");
+ /* if its "C" its the default - so drop it */
+ if ((lang) && (!strcmp(lang, "C")))
+ lang = NULL;
+ /* get fields (language local preferred) */
+ if (lang)
+ {
+ snprintf(buf, sizeof(buf), "app/name[%s]", lang);
+ a->name = edje_file_data_get(path, buf);
+ }
+ if (!a->name) a->name = edje_file_data_get(path, "app/name");
+ if (lang)
+ {
+ snprintf(buf, sizeof(buf), "app/generic[%s]", lang);
+ a->generic = edje_file_data_get(path, buf);
+ }
+ if (!a->generic) a->generic = edje_file_data_get(path, "app/generic");
+ if (lang)
+ {
+ snprintf(buf, sizeof(buf), "app/comment[%s]", lang);
+ a->comment = edje_file_data_get(path, buf);
+ }
+ if (!a->comment) a->comment = edje_file_data_get(path, "app/comment");
+
+ a->exe = edje_file_data_get(path, "app/exe");
+ a->win_name = edje_file_data_get(path, "app/window/name");
+ a->win_class = edje_file_data_get(path, "app/window/class");
+
+ str = edje_file_data_get(path, "app/startup_notify");
+ if (str)
+ {
+ a->startup_notify = atoi(str);
+ free(str);
+ }
+}
+
+static void
+_e_app_fields_empty(E_App *a)
+{
+ if (a->name)
+ {
+ free(a->name);
+ a->name = NULL;
+ }
+ if (a->generic)
+ {
+ free(a->generic);
+ a->generic = NULL;
+ }
+ if (a->comment)
+ {
+ free(a->comment);
+ a->comment = NULL;
+ }
+ if (a->exe)
+ {
+ free(a->exe);
+ a->exe = NULL;
+ }
+ if (a->win_name)
+ {
+ free(a->win_name);
+ a->win_name = NULL;
+ }
+ if (a->win_class)
+ {
+ free(a->win_class);
+ a->win_class = NULL;
+ }
+}
+
+static Evas_List *
+_e_app_dir_file_list_get(E_App *a, char *path)
+{
+ Evas_List *files, *files2 = NULL, *l;
+ FILE *f;
+ char buf[4096];
+
+ snprintf(buf, sizeof(buf), "%s/.order", path);
+ a->order_mod_time = e_file_mod_time(buf);
+ files = e_file_ls(path);
+ f = fopen(buf, "rb");
+ if (f)
+ {
+ while (fgets(buf, sizeof(buf), f))
+ {
+ int len;
+
+ len = strlen(buf);
+ if (len > 0)
+ {
+ int ok = 0;
+
+ if (buf[len - 1] == '\n') buf[len - 1] = 0;
+ for (l = files; l; l = l->next)
+ {
+ if (!strcmp(buf, l->data))
+ {
+ free(l->data);
+ files = evas_list_remove_list(files, l);
+ ok = 1;
+ break;
+ }
+ }
+ if (ok)
+ files2 = evas_list_append(files2, strdup(buf));
+ }
+ }
+ fclose(f);
+ }
+ else
+ {
+ files2 = files;
+ files = NULL;
+ }
+ while (files)
+ {
+ char *s;
+
+ s = files->data;
+ if (s[0] != '.')
+ files2 = evas_list_append(files2, s);
+ else
+ free(s);
+ files = evas_list_remove_list(files, files);
+ }
+ files = files2;
+ return files;
+}
+
+static E_App *
+_e_app_subapp_path_find(E_App *a, char *subpath)
+{
+ Evas_List *l;
+
+ for (l = a->subapps; l; l = l->next)
+ {
+ E_App *a2;
+
+ a2 = l->data;
+ if (!strcmp(a2->path, subpath)) return a2;
+ }
+ return NULL;
+}
+
+static void
+_e_app_monitor(void)
+{
+ if ((_e_apps) && (_e_apps_change_callbacks))
+ {
+ if (!_e_apps_checker)
+ _e_apps_checker = ecore_timer_add(1.0, _e_app_check, NULL);
+ }
+ else
+ {
+ if (_e_apps_checker)
+ {
+ ecore_timer_del(_e_apps_checker);
+ _e_apps_checker = NULL;
+ }
+ }
+}
+
+static void
+_e_app_change(E_App *a, E_App_Change ch)
+{
+ Evas_List *l;
+
+ _e_apps_callbacks_walking = 1;
+ for (l = _e_apps_change_callbacks; l; l = l->next)
+ {
+ E_App_Callback *cb;
+
+ cb = l->data;
+ if (!cb->delete_me)
+ {
+ cb->func(cb->data, a, ch);
+ }
+ }
+ _e_apps_callbacks_walking = 0;
+ if (_e_apps_callbacks_delete_me)
+ {
+ for (l = _e_apps_change_callbacks; l;)
+ {
+ E_App_Callback *cb;
+ Evas_List *pl;
+
+ cb = l->data;
+ pl = l;
+ l = l->next;
+ if (cb->delete_me)
+ {
+ _e_apps_change_callbacks = evas_list_remove_list(_e_apps_change_callbacks, pl);
+ free(cb);
+ }
+ }
+ _e_apps_callbacks_delete_me = 0;
+ _e_app_monitor();
+ }
+}
+
+static int
+_e_app_check(void *data)
+{
+ Evas_List *changes = NULL;
+
+ evas_hash_foreach(_e_apps, _e_app_check_each, &changes);
+
+ while (changes)
+ {
+ E_App_Change_Info *ch;
+ Evas_List *l;
+
+ ch = changes->data;
+ changes = evas_list_remove_list(changes, changes);
+ _e_app_change(ch->app, ch->change);
+ e_object_unref(E_OBJECT(ch->app));
+ free(ch);
+ }
+ if (_e_apps_checker) return 1;
+ return 0;
+}
+
+static Evas_Bool
+_e_app_check_each(Evas_Hash *hash, const char *key, void *data, void *fdata)
+{
+ Evas_List **changes;
+ E_App *a;
+ E_App_Change_Info *ch;
+
+ changes = fdata;
+ a = data;
+ if (a->exe)
+ {
+ time_t mod_time;
+
+ mod_time = e_file_mod_time(a->path);
+ if (mod_time != a->mod_time)
+ {
+ a->mod_time = mod_time;
+ if (e_file_exists(a->path))
+ {
+ _e_app_fields_empty(a);
+ _e_app_fields_fill(a, a->path);
+ if (!a->exe)
+ {
+ ch = calloc(1, sizeof(E_App_Change_Info));
+ ch->app = a;
+ ch->change = E_APP_DEL;
+ e_object_ref(E_OBJECT(ch->app));
+ *changes = evas_list_append(*changes, ch);
+ }
+ else
+ {
+ ch = calloc(1, sizeof(E_App_Change_Info));
+ ch->app = a;
+ ch->change = E_APP_CHANGE;
+ e_object_ref(E_OBJECT(ch->app));
+ *changes = evas_list_append(*changes, ch);
+ }
+ }
+ else
+ {
+ ch = calloc(1, sizeof(E_App_Change_Info));
+ ch->app = a;
+ ch->change = E_APP_DEL;
+ e_object_ref(E_OBJECT(ch->app));
+ *changes = evas_list_append(*changes, ch);
+ }
+ }
+ }
+ else
+ {
+ time_t mod_time, order_mod_time, directory_mod_time;
+ char buf[4096];
+
+ mod_time = e_file_mod_time(a->path);
+ snprintf(buf, sizeof(buf), "%s/.order", a->path);
+ order_mod_time = e_file_mod_time(buf);
+ snprintf(buf, sizeof(buf), "%s/.directory.eet", a->path);
+ directory_mod_time = e_file_mod_time(buf);
+ if ((mod_time != a->mod_time) ||
+ (order_mod_time != a->order_mod_time) ||
+ (directory_mod_time != a->directory_mod_time))
+ {
+ a->mod_time = mod_time;
+ if (!e_file_is_dir(a->path))
+ {
+ ch = calloc(1, sizeof(E_App_Change_Info));
+ ch->app = a;
+ ch->change = E_APP_DEL;
+ e_object_ref(E_OBJECT(ch->app));
+ *changes = evas_list_append(*changes, ch);
+ }
+ else
+ {
+ if (order_mod_time != a->order_mod_time)
+ {
+ ch = calloc(1, sizeof(E_App_Change_Info));
+ ch->app = a;
+ ch->change = E_APP_ORDER;
+ e_object_ref(E_OBJECT(ch->app));
+ *changes = evas_list_append(*changes, ch);
+ }
+ if (directory_mod_time != a->directory_mod_time)
+ {
+ snprintf(buf, sizeof(buf), "%s/.directory.eet", a->path);
+ _e_app_fields_empty(a);
+ _e_app_fields_fill(a, buf);
+ ch = calloc(1, sizeof(E_App_Change_Info));
+ ch->app = a;
+ ch->change = E_APP_CHANGE;
+ e_object_ref(E_OBJECT(ch->app));
+ *changes = evas_list_append(*changes, ch);
+ }
+ a->order_mod_time = order_mod_time;
+ a->directory_mod_time = directory_mod_time;
+ if (a->scanned)
+ {
+ Evas_List *l, *files;
+
+ files = _e_app_dir_file_list_get(a, a->path);
+ for (l = files; l; l = l->next)
+ {
+ E_App *a2;
+ char *s;
+
+ s = l->data;
+ snprintf(buf, sizeof(buf), "%s/%s", a->path, s);
+ if (!_e_app_subapp_path_find(a, buf))
+ {
+ a2 = e_app_new(buf, 0);
+ if (a2)
+ {
+ a2->parent = a;
+ a->subapps = evas_list_append(a->subapps, a2);
+ ch = calloc(1, sizeof(E_App_Change_Info));
+ ch->app = a2;
+ ch->change = E_APP_ADD;
+ e_object_ref(E_OBJECT(ch->app));
+ *changes = evas_list_append(*changes, ch);
+ }
+ }
+ }
+ for (l = files; l; l = l->next)
+ {
+ E_App *a2;
+ char *s;
+
+ s = l->data;
+ snprintf(buf, sizeof(buf), "%s/%s", a->path, s);
+ a2 = _e_app_subapp_path_find(a, buf);
+ if (a2)
+ {
+ a->subapps = evas_list_remove(a->subapps, a2);
+ a->subapps = evas_list_append(a->subapps, a2);
+ }
+ }
+ while (files)
+ {
+ free(files->data);
+ files = evas_list_remove_list(files, files);
+ }
+ }
+ }
+ }
+ }
+ return 1;
+}
+
+static int
+_e_apps_cb_exit(void *data, int type, void *event)
+{
+ Ecore_Event_Exe_Exit *ev;
+ E_App *a;
+
+ ev = event;
+ if (ev->exe)
+ {
+ a = ecore_exe_data_get(ev->exe);
+ if (a)
+ {
+ a->instances = evas_list_remove(a->instances, ev->exe);
+ _e_app_change(a, E_APP_EXIT);
+ }
+ }
+ return 1;
+}
diff --git a/src/bin/e_apps.h b/src/bin/e_apps.h
new file mode 100644
index 000000000..929e0874a
--- /dev/null
+++ b/src/bin/e_apps.h
@@ -0,0 +1,57 @@
+#ifndef E_APPS_H
+#define E_APPS_H
+
+typedef enum _E_App_Change
+{
+ E_APP_ADD,
+ E_APP_DEL,
+ E_APP_CHANGE,
+ E_APP_ORDER,
+ E_APP_EXEC,
+ E_APP_READY,
+ E_APP_EXIT
+} E_App_Change;
+
+typedef struct _E_App E_App;
+
+struct _E_App
+{
+ E_Object e_obj_inherit;
+
+ E_App *parent; /* the parent e_app node */
+
+ char *name; /* app name */
+ char *generic; /* generic app name */
+ char *comment; /* a longer description */
+ char *exe; /* command to execute, NULL if directory */
+ char *path; /* path to .eet containing icons etc. etc. */
+
+ char *win_name; /* window name */
+ char *win_class; /* window class */
+
+ Evas_List *subapps; /* if this a directory, a list of more E_App's */
+
+ time_t mod_time; /* last modified time for file or dir */
+ time_t order_mod_time; /* secondary modified time for .order */
+ time_t directory_mod_time; /* secondary modified time for .directory.eet */
+
+ Evas_List *instances; /* a list of all the exe handles for executions */
+
+ unsigned char startup_notify : 1; /* disable while starting etc. */
+ unsigned char starting : 1; /* this app is starting */
+
+ unsigned char scanned : 1; /* have we scanned a subdir app yet */
+};
+
+int e_app_init(void);
+int e_app_shutdown(void);
+
+E_App *e_app_new(char *path, int scan_subdirs);
+void e_app_subdir_scan(E_App *a, int scan_subdirs);
+int e_app_exec(E_App *a);
+int e_app_starting_get(E_App *a);
+int e_app_running_get(E_App *a);
+
+void e_app_change_callback_add(void (*func) (void *data, E_App *a, E_App_Change ch), void *data);
+void e_app_change_callback_del(void (*func) (void *data, E_App *a, E_App_Change ch), void *data);
+#endif
diff --git a/src/bin/e_border.c b/src/bin/e_border.c
new file mode 100644
index 000000000..803fb1d28
--- /dev/null
+++ b/src/bin/e_border.c
@@ -0,0 +1,1495 @@
+#include "e.h"
+
+#define RESIZE_NONE 0
+#define RESIZE_TL 1
+#define RESIZE_T 2
+#define RESIZE_TR 3
+#define RESIZE_R 4
+#define RESIZE_BR 5
+#define RESIZE_B 6
+#define RESIZE_BL 7
+#define RESIZE_L 8
+
+/* local subsystem functions */
+static void _e_border_free(E_Border *bd);
+
+/* FIXME: these likely belong in a separate icccm/client handler */
+/* and the border needs to be come a dumb object that just does what its */
+/* told to do */
+static int _e_border_cb_window_show_request(void *data, int ev_type, void *ev);
+static int _e_border_cb_window_destroy(void *data, int ev_type, void *ev);
+static int _e_border_cb_window_hide(void *data, int ev_type, void *ev);
+static int _e_border_cb_window_reparent(void *data, int ev_type, void *ev);
+static int _e_border_cb_window_configure_request(void *data, int ev_type, void *ev);
+static int _e_border_cb_window_gravity(void *data, int ev_type, void *ev);
+static int _e_border_cb_window_stack_request(void *data, int ev_type, void *ev);
+static int _e_border_cb_window_property(void *data, int ev_type, void *ev);
+static int _e_border_cb_window_colormap(void *data, int ev_type, void *ev);
+static int _e_border_cb_window_shape(void *data, int ev_type, void *ev);
+static int _e_border_cb_window_focus_in(void *data, int ev_type, void *ev);
+static int _e_border_cb_window_focus_out(void *data, int ev_type, void *ev);
+static int _e_border_cb_client_message(void *data, int ev_type, void *ev);
+
+static void _e_border_cb_signal_move_start(void *data, Evas_Object *obj, const char *emission, const char *source);
+static void _e_border_cb_signal_move_stop(void *data, Evas_Object *obj, const char *emission, const char *source);
+static void _e_border_cb_signal_resize_tl_start(void *data, Evas_Object *obj, const char *emission, const char *source);
+static void _e_border_cb_signal_resize_t_start(void *data, Evas_Object *obj, const char *emission, const char *source);
+static void _e_border_cb_signal_resize_tr_start(void *data, Evas_Object *obj, const char *emission, const char *source);
+static void _e_border_cb_signal_resize_r_start(void *data, Evas_Object *obj, const char *emission, const char *source);
+static void _e_border_cb_signal_resize_br_start(void *data, Evas_Object *obj, const char *emission, const char *source);
+static void _e_border_cb_signal_resize_b_start(void *data, Evas_Object *obj, const char *emission, const char *source);
+static void _e_border_cb_signal_resize_bl_start(void *data, Evas_Object *obj, const char *emission, const char *source);
+static void _e_border_cb_signal_resize_l_start(void *data, Evas_Object *obj, const char *emission, const char *source);
+static void _e_border_cb_signal_resize_stop(void *data, Evas_Object *obj, const char *emission, const char *source);
+static void _e_border_cb_signal_action(void *data, Evas_Object *obj, const char *emission, const char *source);
+static int _e_border_cb_mouse_in(void *data, int type, void *event);
+static int _e_border_cb_mouse_out(void *data, int type, void *event);
+static int _e_border_cb_mouse_down(void *data, int type, void *event);
+static int _e_border_cb_mouse_up(void *data, int type, void *event);
+static int _e_border_cb_mouse_move(void *data, int type, void *event);
+static int _e_border_cb_mouse_wheel(void *data, int type, void *event);
+
+static void _e_border_eval(E_Border *bd);
+static void _e_border_resize_limit(E_Border *bd, int *w, int *h);
+static void _e_border_moveinfo_gather(E_Border *bd, const char *source);
+static void _e_border_resize_handle(E_Border *bd);
+
+/* local subsystem globals */
+static Evas_List *handlers = NULL;
+static Evas_List *borders = NULL;
+
+/* externally accessible functions */
+int
+e_border_init(void)
+{
+ handlers = evas_list_append(handlers, ecore_event_handler_add(ECORE_X_EVENT_WINDOW_SHOW_REQUEST, _e_border_cb_window_show_request, NULL));
+ handlers = evas_list_append(handlers, ecore_event_handler_add(ECORE_X_EVENT_WINDOW_DESTROY, _e_border_cb_window_destroy, NULL));
+ handlers = evas_list_append(handlers, ecore_event_handler_add(ECORE_X_EVENT_WINDOW_HIDE, _e_border_cb_window_hide, NULL));
+ handlers = evas_list_append(handlers, ecore_event_handler_add(ECORE_X_EVENT_WINDOW_REPARENT, _e_border_cb_window_reparent, NULL));
+ handlers = evas_list_append(handlers, ecore_event_handler_add(ECORE_X_EVENT_WINDOW_CONFIGURE_REQUEST, _e_border_cb_window_configure_request, NULL));
+ handlers = evas_list_append(handlers, ecore_event_handler_add(ECORE_X_EVENT_WINDOW_GRAVITY, _e_border_cb_window_gravity, NULL));
+ handlers = evas_list_append(handlers, ecore_event_handler_add(ECORE_X_EVENT_WINDOW_STACK_REQUEST, _e_border_cb_window_stack_request, NULL));
+ handlers = evas_list_append(handlers, ecore_event_handler_add(ECORE_X_EVENT_WINDOW_PROPERTY, _e_border_cb_window_property, NULL));
+ handlers = evas_list_append(handlers, ecore_event_handler_add(ECORE_X_EVENT_WINDOW_COLORMAP, _e_border_cb_window_colormap, NULL));
+ handlers = evas_list_append(handlers, ecore_event_handler_add(ECORE_X_EVENT_WINDOW_SHAPE, _e_border_cb_window_shape, NULL));
+ handlers = evas_list_append(handlers, ecore_event_handler_add(ECORE_X_EVENT_WINDOW_FOCUS_IN, _e_border_cb_window_focus_in, NULL));
+ handlers = evas_list_append(handlers, ecore_event_handler_add(ECORE_X_EVENT_WINDOW_FOCUS_OUT, _e_border_cb_window_focus_out, NULL));
+ handlers = evas_list_append(handlers, ecore_event_handler_add(ECORE_X_EVENT_CLIENT_MESSAGE, _e_border_cb_client_message, NULL));
+ return 1;
+}
+
+int
+e_border_shutdown(void)
+{
+ while (handlers)
+ {
+ Ecore_Event_Handler *h;
+
+ h = handlers->data;
+ handlers = evas_list_remove(handlers, h);
+ ecore_event_handler_del(h);
+ }
+ return 1;
+}
+
+E_Border *
+e_border_new(E_Container *con, Ecore_X_Window win, int first_map)
+{
+ E_Border *bd;
+ Ecore_Event_Handler *h;
+ Ecore_X_Window_Attributes *att;
+
+ bd = E_OBJECT_ALLOC(E_Border, _e_border_free);
+ if (!bd) return NULL;
+ bd->container = con;
+ bd->w = 1;
+ bd->h = 1;
+ bd->win = ecore_x_window_override_new(bd->container->win, 0, 0, bd->w, bd->h);
+ bd->bg_ecore_evas = ecore_evas_software_x11_new(NULL, bd->win, 0, 0, bd->w, bd->h);
+ ecore_evas_software_x11_direct_resize_set(bd->bg_ecore_evas, 1);
+ e_canvas_add(bd->bg_ecore_evas);
+ bd->event_win = ecore_x_window_input_new(bd->win, 0, 0, bd->w, bd->h);
+ bd->bg_evas = ecore_evas_get(bd->bg_ecore_evas);
+ bd->bg_win = ecore_evas_software_x11_window_get(bd->bg_ecore_evas);
+ ecore_evas_name_class_set(bd->bg_ecore_evas, "E", "Frame_Window");
+ ecore_evas_title_set(bd->bg_ecore_evas, "Enlightenment Frame");
+ /* ecore_evas_avoid_damage_set(bd->bg_ecore_evas, 1); */
+ ecore_evas_show(bd->bg_ecore_evas);
+ evas_font_path_append(bd->bg_evas, e_path_find(path_data, "fonts"));
+ bd->client.shell_win = ecore_x_window_override_new(bd->win, 0, 0, 1, 1);
+ ecore_x_window_container_manage(bd->client.shell_win);
+ ecore_x_window_client_manage(win);
+ /* FIXME: Round trip. XCB */
+ /* 2nd fetch needed to avoid grabbing the server as window may vanish */
+ att = &bd->client.initial_attributes;
+ if ((!ecore_x_window_attributes_get(win, att)) || (att->input_only))
+ {
+ e_canvas_del(bd->bg_ecore_evas);
+ ecore_evas_free(bd->bg_ecore_evas);
+ ecore_x_window_del(bd->client.shell_win);
+ ecore_x_window_del(bd->win);
+ free(bd);
+ return NULL;
+ }
+ bd->handlers = evas_list_append(bd->handlers, ecore_event_handler_add(ECORE_X_EVENT_MOUSE_IN, _e_border_cb_mouse_in, bd));
+ bd->handlers = evas_list_append(bd->handlers, ecore_event_handler_add(ECORE_X_EVENT_MOUSE_OUT, _e_border_cb_mouse_out, bd));
+ bd->handlers = evas_list_append(bd->handlers, ecore_event_handler_add(ECORE_X_EVENT_MOUSE_BUTTON_DOWN, _e_border_cb_mouse_down, bd));
+ bd->handlers = evas_list_append(bd->handlers, ecore_event_handler_add(ECORE_X_EVENT_MOUSE_BUTTON_UP, _e_border_cb_mouse_up, bd));
+ bd->handlers = evas_list_append(bd->handlers, ecore_event_handler_add(ECORE_X_EVENT_MOUSE_MOVE, _e_border_cb_mouse_move, bd));
+ bd->handlers = evas_list_append(bd->handlers, ecore_event_handler_add(ECORE_X_EVENT_MOUSE_WHEEL, _e_border_cb_mouse_wheel, bd));
+
+ bd->client.win = win;
+
+ bd->client.icccm.title = strdup("");
+ bd->client.icccm.name = strdup("");
+ bd->client.icccm.class = strdup("");
+ bd->client.icccm.icon_name = strdup("");
+ bd->client.icccm.machine = strdup("");
+ bd->client.icccm.min_w = 1;
+ bd->client.icccm.min_h = 1;
+ bd->client.icccm.max_w = 32767;
+ bd->client.icccm.max_h = 32767;
+ bd->client.icccm.base_w = 0;
+ bd->client.icccm.base_h = 0;
+ bd->client.icccm.step_w = 1;
+ bd->client.icccm.step_h = 1;
+ bd->client.icccm.min_aspect = 0.0;
+ bd->client.icccm.max_aspect = 0.0;
+
+ bd->client.icccm.fetch.title = 1;
+ bd->client.icccm.fetch.name_class = 1;
+ bd->client.icccm.fetch.icon_name = 1;
+ bd->client.icccm.fetch.machine = 1;
+ bd->client.icccm.fetch.hints = 1;
+ bd->client.icccm.fetch.size_pos_hints = 1;
+ bd->client.icccm.fetch.protocol = 1;
+ bd->client.mwm.fetch.borderless = 1;
+ bd->client.netwm.fetch.pid = 1;
+ bd->client.netwm.fetch.desktop = 1;
+ bd->client.border.changed = 1;
+
+ bd->client.w = att->w;
+ bd->client.h = att->h;
+
+ bd->w = bd->client.w;
+ bd->h = bd->client.h;
+ bd->changes.size = 1;
+
+ /* FIXME: if first_map is 1 then we should ignore the first hide event
+ * or ensure the window is alreayd hidden and events flushed before we
+ * create a border for it
+ */
+ if (first_map)
+ {
+ bd->x = att->x;
+ bd->y = att->y;
+ bd->changes.pos = 1;
+ bd->re_manage = 1;
+ bd->ignore_first_unmap = 2;
+ }
+
+ ecore_x_window_save_set_add(win);
+ ecore_x_window_reparent(win, bd->client.shell_win, 0, 0);
+ ecore_x_window_border_width_set(win, 0);
+ ecore_x_window_show(bd->event_win);
+ ecore_x_window_show(bd->client.shell_win);
+ bd->shape = e_container_shape_add(con);
+
+ bd->new_client = 1;
+ bd->changed = 1;
+
+ con->clients = evas_list_append(con->clients, bd);
+ borders = evas_list_append(borders, bd);
+ return bd;
+}
+
+void
+e_border_show(E_Border *bd)
+{
+ if (bd->visible) return;
+ e_container_shape_show(bd->shape);
+ ecore_x_window_show(bd->client.win);
+ ecore_x_icccm_state_set(bd->client.win, ECORE_X_WINDOW_STATE_HINT_NORMAL);
+ bd->visible = 1;
+ bd->changed = 1;
+ bd->changes.visible = 1;
+}
+
+void
+e_border_hide(E_Border *bd)
+{
+ if (!bd->visible) return;
+ ecore_x_window_hide(bd->client.win);
+ e_container_shape_hide(bd->shape);
+ /* FIXME: might be iconic too - need to do this elsewhere */
+ ecore_x_icccm_state_set(bd->client.win, ECORE_X_WINDOW_STATE_HINT_WITHDRAWN);
+ /* ecore_x_icccm_state_set(bd->client.win, ECORE_X_WINDOW_STATE_HINT_ICONIC); */
+ bd->visible = 0;
+ bd->changed = 1;
+ bd->changes.visible = 1;
+}
+
+void
+e_border_move(E_Border *bd, int x, int y)
+{
+ if ((x == bd->x) && (y == bd->y)) return;
+ bd->x = x;
+ bd->y = y;
+ bd->changed = 1;
+ bd->changes.pos = 1;
+ ecore_x_icccm_move_resize_send(bd->client.win,
+ bd->x + bd->client_inset.l,
+ bd->y + bd->client_inset.t,
+ bd->client.w,
+ bd->client.h);
+}
+
+void
+e_border_resize(E_Border *bd, int w, int h)
+{
+ if ((w == bd->w) && (h == bd->h)) return;
+ bd->w = w;
+ bd->h = h;
+ bd->client.w = bd->w - (bd->client_inset.l + bd->client_inset.r);
+ bd->client.h = bd->h - (bd->client_inset.t + bd->client_inset.b);
+ bd->changed = 1;
+ bd->changes.size = 1;
+ ecore_x_icccm_move_resize_send(bd->client.win,
+ bd->x + bd->client_inset.l,
+ bd->y + bd->client_inset.t,
+ bd->client.w,
+ bd->client.h);
+}
+
+void
+e_border_move_resize(E_Border *bd, int x, int y, int w, int h)
+{
+ if ((x == bd->x) && (y == bd->y) && (w == bd->w) && (h == bd->h)) return;
+ bd->x = x;
+ bd->y = y;
+ bd->w = w;
+ bd->h = h;
+ bd->client.w = bd->w - (bd->client_inset.l + bd->client_inset.r);
+ bd->client.h = bd->h - (bd->client_inset.t + bd->client_inset.b);
+ bd->changed = 1;
+ bd->changes.pos = 1;
+ bd->changes.size = 1;
+ ecore_x_icccm_move_resize_send(bd->client.win,
+ bd->x + bd->client_inset.l,
+ bd->y + bd->client_inset.t,
+ bd->client.w,
+ bd->client.h);
+}
+
+void
+e_border_raise(E_Border *bd)
+{
+ bd->container->clients = evas_list_remove(bd->container->clients, bd);
+ bd->container->clients = evas_list_append(bd->container->clients, bd);
+ ecore_x_window_raise(bd->win);
+}
+
+void
+e_border_lower(E_Border *bd)
+{
+ bd->container->clients = evas_list_remove(bd->container->clients, bd);
+ bd->container->clients = evas_list_prepend(bd->container->clients, bd);
+ ecore_x_window_lower(bd->win);
+}
+
+void
+e_border_stack_above(E_Border *bd, E_Border *above)
+{
+ bd->container->clients = evas_list_remove(bd->container->clients, bd);
+ bd->container->clients = evas_list_append_relative(bd->container->clients, bd, above);
+ ecore_x_window_configure(bd->win,
+ ECORE_X_WINDOW_CONFIGURE_MASK_SIBLING |
+ ECORE_X_WINDOW_CONFIGURE_MASK_STACK_MODE,
+ 0, 0, 0, 0, 0,
+ above->win, ECORE_X_WINDOW_STACK_ABOVE);
+}
+
+void
+e_border_stack_below(E_Border *bd, E_Border *below)
+{
+ bd->container->clients = evas_list_remove(bd->container->clients, bd);
+ bd->container->clients = evas_list_prepend_relative(bd->container->clients, bd, below);
+ ecore_x_window_configure(bd->win,
+ ECORE_X_WINDOW_CONFIGURE_MASK_SIBLING |
+ ECORE_X_WINDOW_CONFIGURE_MASK_STACK_MODE,
+ 0, 0, 0, 0, 0,
+ below->win, ECORE_X_WINDOW_STACK_BELOW);
+}
+
+E_Border *
+e_border_find_by_client_window(Ecore_X_Window win)
+{
+ Evas_List *l;
+
+ for (l = borders; l; l = l->next)
+ {
+ E_Border *bd;
+
+ bd = l->data;
+ if (bd->client.win == win) return bd;
+ }
+ return NULL;
+}
+
+void
+e_border_idler_before(void)
+{
+ Evas_List *l;
+
+ for (l = borders; l; l = l->next)
+ {
+ E_Border *bd;
+
+ bd = l->data;
+ if (bd->changed) _e_border_eval(bd);
+ }
+}
+
+
+/* local subsystem functions */
+static void
+_e_border_free(E_Border *bd)
+{
+ while (bd->handlers)
+ {
+ Ecore_Event_Handler *h;
+
+ h = bd->handlers->data;
+ bd->handlers = evas_list_remove(bd->handlers, h);
+ ecore_event_handler_del(h);
+ }
+ ecore_x_window_reparent(bd->client.win, bd->container->manager->root, bd->x + bd->client_inset.l, bd->y + bd->client_inset.t);
+ ecore_x_window_save_set_del(bd->client.win);
+ if (bd->client.border.name) free(bd->client.border.name);
+ if (bd->client.icccm.title) free(bd->client.icccm.title);
+ if (bd->client.icccm.name) free(bd->client.icccm.name);
+ if (bd->client.icccm.class) free(bd->client.icccm.class);
+ if (bd->client.icccm.icon_name) free(bd->client.icccm.icon_name);
+ if (bd->client.icccm.machine) free(bd->client.icccm.machine);
+ e_object_del(E_OBJECT(bd->shape));
+ evas_object_del(bd->bg_object);
+ e_canvas_del(bd->bg_ecore_evas);
+ ecore_evas_free(bd->bg_ecore_evas);
+ ecore_x_window_del(bd->client.shell_win);
+ ecore_x_window_del(bd->win);
+ bd->container->clients = evas_list_remove(bd->container->clients, bd);
+ borders = evas_list_remove(borders, bd);
+ free(bd);
+}
+
+static int
+_e_border_cb_window_show_request(void *data, int ev_type, void *ev)
+{
+ E_Border *bd;
+ Ecore_X_Event_Window_Show_Request *e;
+
+ e = ev;
+ bd = e_border_find_by_client_window(e->win);
+ if (!bd) return 1;
+ return 0;
+}
+
+static int _e_border_cb_window_destroy(void *data, int ev_type, void *ev)
+{
+ E_Border *bd;
+ Ecore_X_Event_Window_Destroy *e;
+
+ e = ev;
+ bd = e_border_find_by_client_window(e->win);
+ if (!bd) return 1;
+ e_object_del(E_OBJECT(bd));
+ return 0;
+}
+
+static int
+_e_border_cb_window_hide(void *data, int ev_type, void *ev)
+{
+ E_Border *bd;
+ Ecore_X_Event_Window_Hide *e;
+
+ bd = data;
+ e = ev;
+ bd = e_border_find_by_client_window(e->win);
+ if (!bd) return 1;
+ if (bd->ignore_first_unmap > 0)
+ {
+ bd->ignore_first_unmap--;
+ return 1;
+ }
+ e_object_del(E_OBJECT(bd));
+ return 0;
+}
+
+static int
+_e_border_cb_window_reparent(void *data, int ev_type, void *ev)
+{
+ E_Border *bd;
+ Ecore_X_Event_Window_Reparent *e;
+
+ bd = data;
+ e = ev;
+ bd = e_border_find_by_client_window(e->win);
+ if (!bd) return 1;
+ if (e->parent == bd->client.shell_win) return 1;
+ e_object_del(E_OBJECT(bd));
+ return 0;
+}
+
+static int
+_e_border_cb_window_configure_request(void *data, int ev_type, void *ev)
+{
+ E_Border *bd;
+ Ecore_X_Event_Window_Configure_Request *e;
+
+ bd = data;
+ e = ev;
+ bd = e_border_find_by_client_window(e->win);
+ if (!bd)
+ {
+ printf("generic config request %x %i %i %ix%i ...\n",
+ e->win, e->x, e->y, e->w, e->h);
+ ecore_x_window_configure(e->win, e->value_mask,
+ e->x, e->y, e->w, e->h, e->border,
+ e->abovewin, e->detail);
+ return 1;
+ }
+ printf("config req %0x\n", e->win);
+ {
+ if ((e->value_mask & ECORE_X_WINDOW_CONFIGURE_MASK_X) ||
+ (e->value_mask & ECORE_X_WINDOW_CONFIGURE_MASK_Y))
+ {
+ int x, y;
+
+ y = bd->y;
+ x = bd->x;
+ if (e->value_mask & ECORE_X_WINDOW_CONFIGURE_MASK_X)
+ x = e->x - bd->client_inset.l;
+ if (e->value_mask & ECORE_X_WINDOW_CONFIGURE_MASK_Y)
+ y = e->y - bd->client_inset.t;
+ if ((e->value_mask & ECORE_X_WINDOW_CONFIGURE_MASK_W) ||
+ (e->value_mask & ECORE_X_WINDOW_CONFIGURE_MASK_H))
+ {
+ int w, h;
+
+ h = bd->h;
+ w = bd->w;
+ if (e->value_mask & ECORE_X_WINDOW_CONFIGURE_MASK_W)
+ w = e->w + bd->client_inset.l + bd->client_inset.r;
+ if (e->value_mask & ECORE_X_WINDOW_CONFIGURE_MASK_H)
+ h = e->h + bd->client_inset.t + bd->client_inset.b;
+ e_border_move_resize(bd, x, y, w, h);
+ }
+ else
+ e_border_move(bd, x, y);
+ }
+ else if ((e->value_mask & ECORE_X_WINDOW_CONFIGURE_MASK_W) ||
+ (e->value_mask & ECORE_X_WINDOW_CONFIGURE_MASK_H))
+ {
+ int w, h;
+
+ h = bd->h;
+ w = bd->w;
+ if (e->value_mask & ECORE_X_WINDOW_CONFIGURE_MASK_W)
+ w = e->w + bd->client_inset.l + bd->client_inset.r;
+ if (e->value_mask & ECORE_X_WINDOW_CONFIGURE_MASK_H)
+ h = e->h + bd->client_inset.t + bd->client_inset.b;
+ e_border_resize(bd, w, h);
+ }
+ if ((e->value_mask & ECORE_X_WINDOW_CONFIGURE_MASK_STACK_MODE) &&
+ (e->value_mask & ECORE_X_WINDOW_CONFIGURE_MASK_SIBLING))
+ {
+ E_Border *obd;
+
+ if (e->detail == ECORE_X_WINDOW_STACK_ABOVE)
+ {
+ obd = e_border_find_by_client_window(e->abovewin);
+ if (obd)
+ e_border_stack_above(bd, obd);
+ }
+ else if (e->detail == ECORE_X_WINDOW_STACK_BELOW)
+ {
+ obd = e_border_find_by_client_window(e->abovewin);
+ if (obd)
+ e_border_stack_below(bd, obd);
+ }
+ else if (e->detail == ECORE_X_WINDOW_STACK_TOP_IF)
+ {
+ /* FIXME: do */
+ }
+ else if (e->detail == ECORE_X_WINDOW_STACK_BOTTOM_IF)
+ {
+ /* FIXME: do */
+ }
+ else if (e->detail == ECORE_X_WINDOW_STACK_OPPOSITE)
+ {
+ /* FIXME: do */
+ }
+ }
+ else if (e->value_mask & ECORE_X_WINDOW_CONFIGURE_MASK_STACK_MODE)
+ {
+ if (e->detail == ECORE_X_WINDOW_STACK_ABOVE)
+ {
+ e_border_raise(bd);
+ }
+ else if (e->detail == ECORE_X_WINDOW_STACK_BELOW)
+ {
+ e_border_lower(bd);
+ }
+ else if (e->detail == ECORE_X_WINDOW_STACK_TOP_IF)
+ {
+ /* FIXME: do */
+ }
+ else if (e->detail == ECORE_X_WINDOW_STACK_BOTTOM_IF)
+ {
+ /* FIXME: do */
+ }
+ else if (e->detail == ECORE_X_WINDOW_STACK_OPPOSITE)
+ {
+ /* FIXME: do */
+ }
+ }
+ }
+ return 0;
+}
+
+static int
+_e_border_cb_window_gravity(void *data, int ev_type, void *ev)
+{
+ E_Border *bd;
+ Ecore_X_Event_Window_Gravity *e;
+
+ e = ev;
+ bd = e_border_find_by_client_window(e->win);
+ if (!bd) return 1;
+ printf("gravity for %0x\n", e->win);
+ return 0;
+}
+
+static int
+_e_border_cb_window_stack_request(void *data, int ev_type, void *ev)
+{
+ E_Border *bd;
+ Ecore_X_Event_Window_Stack_Request *e;
+
+ e = ev;
+ bd = e_border_find_by_client_window(e->win);
+ printf("stack req for %0x bd %p\n", e->win, bd);
+ if (!bd) return 1;
+ return 0;
+}
+
+static int
+_e_border_cb_window_property(void *data, int ev_type, void *ev)
+{
+ E_Border *bd;
+ Ecore_X_Event_Window_Property *e;
+
+ e = ev;
+ bd = e_border_find_by_client_window(e->win);
+ if (!bd) return 1;
+ {
+ char *name;
+
+ name = XGetAtomName(ecore_x_display_get(), e->atom);
+ printf("property for %0x [%s]\n", e->win, name);
+ XFree(name);
+ }
+ /* FIXME: only flag the property to fetch based on the atom of the change */
+ bd->client.icccm.fetch.title = 1;
+ bd->client.icccm.fetch.name_class = 1;
+ bd->client.icccm.fetch.icon_name = 1;
+ bd->client.icccm.fetch.machine = 1;
+ bd->client.icccm.fetch.hints = 1;
+ bd->client.icccm.fetch.size_pos_hints = 1;
+ bd->client.icccm.fetch.protocol = 1;
+ bd->client.mwm.fetch.borderless = 1;
+ bd->client.netwm.fetch.pid = 1;
+ bd->client.netwm.fetch.desktop = 1;
+// bd->client.border.changed = 1;
+ bd->changed = 1;
+ return 0;
+}
+
+static int
+_e_border_cb_window_colormap(void *data, int ev_type, void *ev)
+{
+ E_Border *bd;
+ Ecore_X_Event_Window_Colormap *e;
+
+ e = ev;
+ bd = e_border_find_by_client_window(e->win);
+ if (!bd) return 1;
+ return 0;
+}
+
+static int
+_e_border_cb_window_shape(void *data, int ev_type, void *ev)
+{
+ E_Border *bd;
+ Ecore_X_Event_Window_Shape *e;
+
+ e = ev;
+ bd = e_border_find_by_client_window(e->win);
+ if (!bd) return 1;
+ return 0;
+}
+
+static int
+_e_border_cb_window_focus_in(void *data, int ev_type, void *ev)
+{
+ E_Border *bd;
+ Ecore_X_Event_Window_Focus_In *e;
+
+ e = ev;
+ bd = e_border_find_by_client_window(e->win);
+ if (!bd) return 1;
+ printf("f IN %i | %i\n", e->mode, e->detail);
+ if (!bd->focused)
+ {
+ bd->focused = 1;
+ edje_object_signal_emit(bd->bg_object, "active", "");
+ }
+ return 0;
+}
+
+static int
+_e_border_cb_window_focus_out(void *data, int ev_type, void *ev)
+{
+ E_Border *bd;
+ Ecore_X_Event_Window_Focus_Out *e;
+
+ e = ev;
+ bd = e_border_find_by_client_window(e->win);
+ if (!bd) return 1;
+ printf("f OUT %i | %i\n", e->mode, e->detail);
+ if (bd->focused)
+ {
+ bd->focused = 0;
+ edje_object_signal_emit(bd->bg_object, "passive", "");
+ }
+ return 0;
+}
+
+static int
+_e_border_cb_client_message(void *data, int ev_type, void *ev)
+{
+ E_Border *bd;
+ Ecore_X_Event_Client_Message *e;
+
+ e = ev;
+ bd = e_border_find_by_client_window(e->win);
+ if (!bd) return 1;
+ printf("client message for %0x\n", e->win);
+ return 0;
+}
+
+static void
+_e_border_cb_signal_move_start(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+ E_Border *bd;
+
+ bd = data;
+ bd->moving = 1;
+ _e_border_moveinfo_gather(bd, source);
+ e_border_raise(bd);
+}
+
+static void
+_e_border_cb_signal_move_stop(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+ E_Border *bd;
+ int x, y;
+
+ bd = data;
+ bd->moving = 0;
+}
+
+#define GRAV_SET(bd, grav) \
+printf("GRAV TO %i\n", grav); \
+ecore_x_window_gravity_set(bd->bg_win, grav); \
+ecore_x_window_pixel_gravity_set(bd->bg_win, grav); \
+ecore_x_window_gravity_set(bd->client.shell_win, grav); \
+ecore_x_window_pixel_gravity_set(bd->client.shell_win, grav); \
+ecore_x_window_gravity_set(bd->client.win, grav); \
+ecore_x_window_gravity_set(ecore_evas_software_x11_subwindow_get(bd->bg_ecore_evas), grav); \
+ecore_x_window_pixel_gravity_set(ecore_evas_software_x11_subwindow_get(bd->bg_ecore_evas), grav);
+
+static void
+_e_border_cb_signal_resize_tl_start(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+ E_Border *bd;
+
+ bd = data;
+ bd->resize_mode = RESIZE_TL;
+ _e_border_moveinfo_gather(bd, source);
+ GRAV_SET(bd, ECORE_X_GRAVITY_SE);
+}
+
+static void
+_e_border_cb_signal_resize_t_start(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+ E_Border *bd;
+
+ bd = data;
+ bd->resize_mode = RESIZE_T;
+ _e_border_moveinfo_gather(bd, source);
+ GRAV_SET(bd, ECORE_X_GRAVITY_S);
+ ecore_x_window_gravity_set(bd->bg_win, ECORE_X_GRAVITY_S);
+}
+
+static void
+_e_border_cb_signal_resize_tr_start(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+ E_Border *bd;
+
+ bd = data;
+ bd->resize_mode = RESIZE_TR;
+ _e_border_moveinfo_gather(bd, source);
+ GRAV_SET(bd, ECORE_X_GRAVITY_SW);
+}
+
+static void
+_e_border_cb_signal_resize_r_start(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+ E_Border *bd;
+
+ bd = data;
+ bd->resize_mode = RESIZE_R;
+ _e_border_moveinfo_gather(bd, source);
+ GRAV_SET(bd, ECORE_X_GRAVITY_W);
+}
+
+static void
+_e_border_cb_signal_resize_br_start(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+ E_Border *bd;
+
+ bd = data;
+ bd->resize_mode = RESIZE_BR;
+ _e_border_moveinfo_gather(bd, source);
+ GRAV_SET(bd, ECORE_X_GRAVITY_NW);
+}
+
+static void
+_e_border_cb_signal_resize_b_start(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+ E_Border *bd;
+
+ bd = data;
+ bd->resize_mode = RESIZE_B;
+ _e_border_moveinfo_gather(bd, source);
+ GRAV_SET(bd, ECORE_X_GRAVITY_N);
+}
+
+static void
+_e_border_cb_signal_resize_bl_start(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+ E_Border *bd;
+
+ bd = data;
+ bd->resize_mode = RESIZE_BL;
+ _e_border_moveinfo_gather(bd, source);
+ GRAV_SET(bd, ECORE_X_GRAVITY_NE);
+}
+
+static void
+_e_border_cb_signal_resize_l_start(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+ E_Border *bd;
+
+ bd = data;
+ bd->resize_mode = RESIZE_L;
+ _e_border_moveinfo_gather(bd, source);
+ GRAV_SET(bd, ECORE_X_GRAVITY_E);
+}
+
+static void
+_e_border_cb_signal_resize_stop(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+ E_Border *bd;
+ int x, y;
+
+ bd = data;
+ _e_border_resize_handle(bd);
+ bd->resize_mode = RESIZE_NONE;
+ bd->changes.reset_gravity = 1;
+ bd->changed = 1;
+}
+
+static void
+_e_border_cb_signal_action(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+ E_Border *bd;
+
+ bd = data;
+ printf("action %s\n", source);
+ if (!strcmp(source, "close"))
+ {
+ if (bd->client.icccm.delete_request)
+ ecore_x_window_delete_request_send(bd->client.win);
+ else
+ {
+ ecore_x_killall(bd->client.win);
+// ecore_x_window_del(bd->client.win);
+ e_object_del(E_OBJECT(bd));
+ }
+ }
+}
+
+static int
+_e_border_cb_mouse_in(void *data, int type, void *event)
+{
+ Ecore_X_Event_Mouse_In *ev;
+ E_Border *bd;
+
+ ev = event;
+ bd = data;
+ if (ev->event_win == bd->win)
+ {
+ /* FIXME: this would normally put focus on the client on pointer */
+ /* focus - but click to focus it wouldnt */
+ if (bd->client.icccm.accepts_focus)
+ {
+ if (bd->client.icccm.take_focus)
+ ecore_x_icccm_take_focus_send(bd->client.win, ECORE_X_CURRENT_TIME);
+ else
+ ecore_x_window_focus(bd->client.win);
+ }
+ }
+ if (ev->win != bd->event_win) return 1;
+ bd->mouse.current.mx = ev->root.x;
+ bd->mouse.current.my = ev->root.y;
+ evas_event_feed_mouse_move(bd->bg_evas, ev->x, ev->y);
+ evas_event_feed_mouse_in(bd->bg_evas);
+ return 1;
+}
+
+static int
+_e_border_cb_mouse_out(void *data, int type, void *event)
+{
+ Ecore_X_Event_Mouse_Out *ev;
+ E_Border *bd;
+
+ ev = event;
+ bd = data;
+ /* FIXME: this would normally take focus away in pointer focus mode */
+ if (ev->event_win == bd->win)
+ ecore_x_window_focus(bd->container->manager->win);
+ if (ev->win != bd->event_win) return 1;
+ bd->mouse.current.mx = ev->root.x;
+ bd->mouse.current.my = ev->root.y;
+ evas_event_feed_mouse_move(bd->bg_evas, ev->x, ev->y);
+ evas_event_feed_mouse_out(bd->bg_evas);
+ return 1;
+}
+
+static int
+_e_border_cb_mouse_down(void *data, int type, void *event)
+{
+ Ecore_X_Event_Mouse_Button_Down *ev;
+ E_Border *bd;
+
+ ev = event;
+ bd = data;
+ if (ev->win != bd->event_win) return 1;
+ if ((ev->button >= 1) && (ev->button <= 3))
+ {
+ bd->mouse.last_down[ev->button - 1].mx = ev->root.x;
+ bd->mouse.last_down[ev->button - 1].my = ev->root.y;
+ bd->mouse.last_down[ev->button - 1].x = bd->x;
+ bd->mouse.last_down[ev->button - 1].y = bd->y;
+ bd->mouse.last_down[ev->button - 1].w = bd->w;
+ bd->mouse.last_down[ev->button - 1].h = bd->h;
+ }
+ bd->mouse.current.mx = ev->root.x;
+ bd->mouse.current.my = ev->root.y;
+ if (bd->moving)
+ {
+ }
+ else
+ {
+ evas_event_feed_mouse_move(bd->bg_evas, ev->x, ev->y);
+ evas_event_feed_mouse_down(bd->bg_evas, ev->button);
+ }
+ return 1;
+}
+
+static int
+_e_border_cb_mouse_up(void *data, int type, void *event)
+{
+ Ecore_X_Event_Mouse_Button_Up *ev;
+ E_Border *bd;
+
+ ev = event;
+ bd = data;
+ if (ev->win != bd->event_win) return 1;
+ if ((ev->button >= 1) && (ev->button <= 3))
+ {
+ bd->mouse.last_up[ev->button - 1].mx = ev->root.x;
+ bd->mouse.last_up[ev->button - 1].my = ev->root.y;
+ bd->mouse.last_up[ev->button - 1].x = bd->x;
+ bd->mouse.last_up[ev->button - 1].y = bd->y;
+ }
+ bd->mouse.current.mx = ev->root.x;
+ bd->mouse.current.my = ev->root.y;
+ evas_event_feed_mouse_move(bd->bg_evas, ev->x, ev->y);
+ evas_event_feed_mouse_up(bd->bg_evas, ev->button);
+ return 1;
+}
+
+static int
+_e_border_cb_mouse_move(void *data, int type, void *event)
+{
+ Ecore_X_Event_Mouse_Move *ev;
+ E_Border *bd;
+
+ ev = event;
+ bd = data;
+ if (ev->win != bd->event_win) return 1;
+ bd->mouse.current.mx = ev->root.x;
+ bd->mouse.current.my = ev->root.y;
+ if (bd->moving)
+ {
+ int x, y, new_x, new_y;
+ Evas_List *skiplist = NULL;
+
+ if ((bd->moveinfo.down.button >= 1) && (bd->moveinfo.down.button <= 3))
+ {
+ x = bd->mouse.last_down[bd->moveinfo.down.button - 1].x +
+ (bd->mouse.current.mx - bd->moveinfo.down.mx);
+ y = bd->mouse.last_down[bd->moveinfo.down.button - 1].y +
+ (bd->mouse.current.my - bd->moveinfo.down.my);
+ }
+ else
+ {
+ x = bd->x +
+ (bd->mouse.current.mx - bd->moveinfo.down.mx);
+ y = bd->y +
+ (bd->mouse.current.my - bd->moveinfo.down.my);
+ }
+ new_x = x;
+ new_y = y;
+ skiplist = evas_list_append(skiplist, bd);
+ e_resist_container_position(bd->container, skiplist,
+ bd->x, bd->y, bd->w, bd->h,
+ x, y, bd->w, bd->h,
+ &new_x, &new_y);
+ evas_list_free(skiplist);
+ e_border_move(bd, new_x, new_y);
+ }
+ else if (bd->resize_mode != RESIZE_NONE)
+ {
+ _e_border_resize_handle(bd);
+ }
+ else
+ {
+ evas_event_feed_mouse_move(bd->bg_evas, ev->x, ev->y);
+ }
+ return 1;
+}
+
+static int
+_e_border_cb_mouse_wheel(void *data, int type, void *event)
+{
+ Ecore_X_Event_Mouse_Wheel *ev;
+ E_Border *bd;
+
+ ev = event;
+ bd = data;
+ if (ev->win != bd->event_win) return 1;
+ bd->mouse.current.mx = ev->root.x;
+ bd->mouse.current.my = ev->root.y;
+ evas_event_feed_mouse_move(bd->bg_evas, ev->x, ev->y);
+ evas_event_feed_mouse_wheel(bd->bg_evas, ev->direction, ev->z);
+ return 1;
+}
+
+static void
+_e_border_eval(E_Border *bd)
+{
+ /* FIXME: get min/max/start size etc. gravity etc. */
+
+ /* fetch any info queued to be fetched */
+ if (bd->client.icccm.fetch.title)
+ {
+ if (bd->client.icccm.title) free(bd->client.icccm.title);
+ bd->client.icccm.title = ecore_x_icccm_title_get(bd->client.win);
+ bd->client.icccm.fetch.title = 0;
+ if (bd->bg_object)
+ {
+ edje_object_part_text_set(bd->bg_object, "title_text",
+ bd->client.icccm.title);
+ printf("SET TITLE %s\n", bd->client.icccm.title);
+ }
+ }
+ if (bd->client.icccm.fetch.name_class)
+ {
+ if (bd->client.icccm.name) free(bd->client.icccm.name);
+ bd->client.icccm.name = NULL;
+ if (bd->client.icccm.class) free(bd->client.icccm.class);
+ bd->client.icccm.class = NULL;
+ ecore_x_window_prop_name_class_get(bd->client.win, &bd->client.icccm.name, &bd->client.icccm.class);
+ bd->client.icccm.fetch.name_class = 0;
+ }
+ if (bd->client.icccm.fetch.icon_name)
+ {
+ if (bd->client.icccm.icon_name) free(bd->client.icccm.icon_name);
+ bd->client.icccm.icon_name = ecore_x_window_prop_icon_name_get(bd->client.win);
+ bd->client.icccm.fetch.icon_name = 0;
+ }
+ if (bd->client.icccm.fetch.machine)
+ {
+ if (bd->client.icccm.machine) free(bd->client.icccm.machine);
+ bd->client.icccm.machine = ecore_x_window_prop_client_machine_get(bd->client.win);
+ bd->client.icccm.fetch.machine = 0;
+ }
+ if (bd->client.icccm.fetch.hints)
+ {
+ int accepts_focus = 1;
+ int is_urgent = 0;
+
+ bd->client.icccm.initial_state = ECORE_X_WINDOW_STATE_HINT_NORMAL;
+ ecore_x_icccm_hints_get(bd->client.win,
+ &accepts_focus,
+ &bd->client.icccm.initial_state,
+ &bd->client.icccm.icon_pixmap,
+ &bd->client.icccm.icon_mask,
+ &bd->client.icccm.icon_window,
+ &bd->client.icccm.window_group,
+ &is_urgent);
+ bd->client.icccm.accepts_focus = accepts_focus;
+ bd->client.icccm.urgent = is_urgent;
+ bd->client.icccm.fetch.hints = 0;
+ }
+ if (bd->client.icccm.fetch.size_pos_hints)
+ {
+ int request_pos = 0;
+
+ if (!ecore_x_icccm_size_pos_hints_get(bd->client.win,
+ &request_pos,
+ &bd->client.icccm.gravity,
+ &bd->client.icccm.min_w,
+ &bd->client.icccm.min_h,
+ &bd->client.icccm.max_w,
+ &bd->client.icccm.max_h,
+ &bd->client.icccm.base_w,
+ &bd->client.icccm.base_h,
+ &bd->client.icccm.step_w,
+ &bd->client.icccm.step_h,
+ &bd->client.icccm.min_aspect,
+ &bd->client.icccm.max_aspect))
+ {
+ printf("NO SIZE HINTS!\n");
+ }
+ if (bd->client.icccm.min_w > 32767) bd->client.icccm.min_w = 32767;
+ if (bd->client.icccm.min_h > 32767) bd->client.icccm.min_h = 32767;
+ if (bd->client.icccm.max_w > 32767) bd->client.icccm.max_w = 32767;
+ if (bd->client.icccm.max_h > 32767) bd->client.icccm.max_h = 32767;
+ if (bd->client.icccm.base_w > 32767) bd->client.icccm.base_w = 32767;
+ if (bd->client.icccm.base_h > 32767) bd->client.icccm.base_h = 32767;
+ bd->client.icccm.request_pos = request_pos;
+ bd->client.icccm.fetch.size_pos_hints = 0;
+ }
+ if (bd->client.icccm.fetch.protocol)
+ {
+ int i, num;
+ Ecore_X_WM_Protocol *proto;
+
+ proto = ecore_x_window_prop_protocol_list_get(bd->client.win, &num);
+ if (proto)
+ {
+ for (i = 0; i < num; i++)
+ {
+ if (proto[i] == ECORE_X_WM_PROTOCOL_DELETE_REQUEST)
+ bd->client.icccm.delete_request = 1;
+ if (proto[i] == ECORE_X_WM_PROTOCOL_TAKE_FOCUS)
+ bd->client.icccm.take_focus = 1;
+ }
+ free(proto);
+ }
+ bd->client.icccm.fetch.protocol = 0;
+ }
+ if (bd->client.mwm.fetch.borderless)
+ {
+ int pb;
+
+ pb = bd->client.mwm.borderless;
+ bd->client.mwm.borderless = ecore_x_window_prop_borderless_get(bd->client.win);
+ bd->client.mwm.fetch.borderless = 0;
+ if (bd->client.mwm.borderless != pb)
+ {
+ if (bd->client.border.name) free(bd->client.border.name);
+ if (bd->client.mwm.borderless)
+ bd->client.border.name = strdup("borderless");
+ else
+ bd->client.border.name = strdup("default");
+ bd->client.border.changed = 1;
+ }
+ }
+ if (bd->client.netwm.fetch.pid)
+ {
+ bd->client.netwm.pid = ecore_x_window_prop_pid_get(bd->client.win);
+ bd->client.netwm.fetch.pid = 0;
+ }
+ if (bd->client.netwm.fetch.desktop)
+ {
+ bd->client.netwm.desktop = ecore_x_window_prop_desktop_get(bd->client.win);
+ bd->client.netwm.fetch.desktop = 0;
+ }
+
+ if (bd->client.border.changed)
+ {
+ Evas_Object *o;
+ int iw, ih;
+ const char *path, *str;
+ char buf[4096];
+
+ if (!bd->client.border.name)
+ {
+ bd->client.border.name = strdup("default");
+ }
+ if (bd->bg_object)
+ {
+ bd->w -= (bd->client_inset.l + bd->client_inset.r);
+ bd->h -= (bd->client_inset.t + bd->client_inset.b);
+ bd->client_inset.l = 0;
+ bd->client_inset.r = 0;
+ bd->client_inset.t = 0;
+ bd->client_inset.b = 0;
+ bd->changes.size = 1;
+ evas_object_del(bd->bg_object);
+ }
+ o = edje_object_add(bd->bg_evas);
+ bd->bg_object = o;
+ /* FIXME: "default.eet" needs to come from conf */
+ path = e_path_find(path_themes, "default.eet");
+ snprintf(buf, sizeof(buf), "widgets/border/%s/border",
+ bd->client.border.name);
+ edje_object_file_set(o, path, buf);
+ edje_object_part_text_set(o, "title_text",
+ bd->client.icccm.title);
+ printf("SET TITLE2 %s\n", bd->client.icccm.title);
+ str = edje_object_data_get(o, "client_inset");
+ if (str)
+ {
+ int l, r, t, b;
+
+ if (sscanf(str, "%i %i %i %i", &l, &r, &t, &b) == 4)
+ {
+ bd->client_inset.l = l;
+ bd->client_inset.r = r;
+ bd->client_inset.t = t;
+ bd->client_inset.b = b;
+ bd->w += (bd->client_inset.l + bd->client_inset.r);
+ bd->h += (bd->client_inset.t + bd->client_inset.b);
+ bd->changes.size = 1;
+ ecore_x_window_move(bd->client.shell_win, l, t);
+ }
+ }
+ edje_object_signal_callback_add(o, "move_start", "*",
+ _e_border_cb_signal_move_start, bd);
+ edje_object_signal_callback_add(o, "move_stop", "*",
+ _e_border_cb_signal_move_stop, bd);
+ edje_object_signal_callback_add(o, "resize_tl_start", "*",
+ _e_border_cb_signal_resize_tl_start, bd);
+ edje_object_signal_callback_add(o, "resize_t_start", "*",
+ _e_border_cb_signal_resize_t_start, bd);
+ edje_object_signal_callback_add(o, "resize_tr_start", "*",
+ _e_border_cb_signal_resize_tr_start, bd);
+ edje_object_signal_callback_add(o, "resize_r_start", "*",
+ _e_border_cb_signal_resize_r_start, bd);
+ edje_object_signal_callback_add(o, "resize_br_start", "*",
+ _e_border_cb_signal_resize_br_start, bd);
+ edje_object_signal_callback_add(o, "resize_b_start", "*",
+ _e_border_cb_signal_resize_b_start, bd);
+ edje_object_signal_callback_add(o, "resize_bl_start", "*",
+ _e_border_cb_signal_resize_bl_start, bd);
+ edje_object_signal_callback_add(o, "resize_l_start", "*",
+ _e_border_cb_signal_resize_l_start, bd);
+ edje_object_signal_callback_add(o, "resize_stop", "*",
+ _e_border_cb_signal_resize_stop, bd);
+ edje_object_signal_callback_add(o, "action", "*",
+ _e_border_cb_signal_action, bd);
+ if (bd->focused)
+ edje_object_signal_emit(bd->bg_object, "active", "");
+ evas_object_move(o, 0, 0);
+ evas_object_resize(o, bd->w, bd->h);
+ evas_object_show(o);
+ bd->client.border.changed = 0;
+ }
+
+ if (bd->new_client)
+ {
+ printf("NEW CLIENT SETUP\n");
+ if (bd->re_manage)
+ {
+ printf("REMANAGE!\n");
+ bd->x -= bd->client_inset.l;
+ bd->y -= bd->client_inset.t;
+ bd->changes.pos = 1;
+ }
+ else
+ {
+ if (bd->client.icccm.request_pos)
+ {
+ Ecore_X_Window_Attributes *att;
+ int bw;
+
+ printf("REQUEST POS!\n");
+ att = &bd->client.initial_attributes;
+ bw = att->border * 2;
+ switch (bd->client.icccm.gravity)
+ {
+ case ECORE_X_GRAVITY_N:
+ bd->x = (att->x - (bw / 2));
+ bd->y = att->y;
+ break;
+ case ECORE_X_GRAVITY_NE:
+ bd->x = (att->x - (bw)) - (bd->client_inset.l);
+ bd->y = att->y;
+ break;
+ case ECORE_X_GRAVITY_E:
+ bd->x = (att->x - (bw)) - (bd->client_inset.l);
+ bd->y = (att->y - (bw / 2));
+ break;
+ case ECORE_X_GRAVITY_SE:
+ bd->x = (att->x - (bw)) - (bd->client_inset.l);
+ bd->y = (att->y - (bw)) - (bd->client_inset.t);
+ break;
+ case ECORE_X_GRAVITY_S:
+ bd->x = (att->x - (bw / 2));
+ bd->y = (att->y - (bw)) - (bd->client_inset.t);
+ break;
+ case ECORE_X_GRAVITY_SW:
+ bd->x = att->x;
+ bd->y = (att->y - (bw)) - (bd->client_inset.t);
+ break;
+ case ECORE_X_GRAVITY_W:
+ bd->x = att->x;
+ bd->y = (att->y - (bw)) - (bd->client_inset.t);
+ break;
+ case ECORE_X_GRAVITY_NW:
+ default:
+ bd->x = att->x;
+ bd->y = att->y;
+ }
+ bd->changes.pos = 1;
+ }
+ else
+ {
+ Evas_List *skiplist = NULL;
+ int new_x, new_y;
+
+ printf("AUTO POS!\n");
+ new_x = rand() % (bd->container->w - bd->w);
+ new_y = rand() % (bd->container->h - bd->h);
+ skiplist = evas_list_append(skiplist, bd);
+ e_place_container_region_smart(bd->container, skiplist,
+ bd->x, bd->y, bd->w, bd->h,
+ &new_x, &new_y);
+ evas_list_free(skiplist);
+ bd->x = new_x;
+ bd->y = new_y;
+ bd->changes.pos = 1;
+ }
+ }
+ }
+
+ /* effect changes to the window border itself */
+ if (bd->changes.visible)
+ {
+ if (bd->visible) ecore_x_window_show(bd->win);
+ else ecore_x_window_hide(bd->win);
+ bd->changes.visible = 0;
+ }
+ if ((bd->changes.pos) && (bd->changes.size))
+ {
+ printf("border move resize\n");
+ evas_obscured_clear(bd->bg_evas);
+ evas_obscured_rectangle_add(bd->bg_evas,
+ bd->client_inset.l, bd->client_inset.t,
+ bd->w - (bd->client_inset.l + bd->client_inset.r),
+ bd->h - (bd->client_inset.t + bd->client_inset.b));
+ ecore_x_window_move_resize(bd->win, bd->x, bd->y, bd->w, bd->h);
+ ecore_x_window_move_resize(bd->event_win, 0, 0, bd->w, bd->h);
+ ecore_x_window_move_resize(bd->client.shell_win,
+ bd->client_inset.l, bd->client_inset.t,
+ bd->client.w, bd->client.h);
+ ecore_x_window_move_resize(bd->client.win, 0, 0,
+ bd->client.w, bd->client.h);
+ ecore_evas_move_resize(bd->bg_ecore_evas, 0, 0, bd->w, bd->h);
+ evas_object_resize(bd->bg_object, bd->w, bd->h);
+ e_container_shape_resize(bd->shape, bd->w, bd->h);
+ e_container_shape_move(bd->shape, bd->x, bd->y);
+ bd->changes.pos = 0;
+ bd->changes.size = 0;
+ printf("border move resize done\n");
+ }
+ else if (bd->changes.pos)
+ {
+ ecore_x_window_move(bd->win, bd->x, bd->y);
+ e_container_shape_move(bd->shape, bd->x, bd->y);
+ bd->changes.pos = 0;
+ }
+ else if (bd->changes.size)
+ {
+ printf("border move resize\n");
+ evas_obscured_clear(bd->bg_evas);
+ evas_obscured_rectangle_add(bd->bg_evas,
+ bd->client_inset.l, bd->client_inset.t,
+ bd->w - (bd->client_inset.l + bd->client_inset.r), bd->h - (bd->client_inset.t + bd->client_inset.b));
+ ecore_x_window_move_resize(bd->event_win, 0, 0, bd->w, bd->h);
+ ecore_x_window_resize(bd->win, bd->w, bd->h);
+ ecore_x_window_move_resize(bd->client.shell_win,
+ bd->client_inset.l, bd->client_inset.t,
+ bd->client.w, bd->client.h);
+ ecore_x_window_move_resize(bd->client.win, 0, 0,
+ bd->client.w, bd->client.h);
+ ecore_evas_move_resize(bd->bg_ecore_evas, 0, 0, bd->w, bd->h);
+ evas_object_resize(bd->bg_object, bd->w, bd->h);
+ e_container_shape_resize(bd->shape, bd->w, bd->h);
+ printf("border move resize done\n");
+ bd->changes.size = 0;
+ }
+ if (bd->changes.reset_gravity)
+ {
+ GRAV_SET(bd, ECORE_X_GRAVITY_NW);
+ bd->changes.reset_gravity = 0;
+ }
+
+ bd->new_client = 0;
+ bd->changed = 0;
+
+ bd->changes.stack = 0;
+ bd->changes.prop = 0;
+ bd->changes.border = 0;
+}
+
+static void
+_e_border_resize_limit(E_Border *bd, int *w, int *h)
+{
+ double a;
+
+ *w -= bd->client_inset.l + bd->client_inset.r;
+ *h -= bd->client_inset.t + bd->client_inset.b;
+ if (*h < 1) *h = 1;
+ if (*w < 1) *w = 1;
+ a = *w / *h;
+ if ((bd->client.icccm.min_aspect != 0.0) &&
+ (a < bd->client.icccm.min_aspect))
+ *w = *h / bd->client.icccm.min_aspect;
+ else if
+ ((bd->client.icccm.max_aspect != 0.0) &&
+ (a > bd->client.icccm.max_aspect))
+ *h = *w * bd->client.icccm.max_aspect;
+ *w = bd->client.icccm.base_w +
+ (((*w - bd->client.icccm.base_w) / bd->client.icccm.step_w) *
+ bd->client.icccm.step_w);
+ *h = bd->client.icccm.base_h +
+ (((*h - bd->client.icccm.base_h) / bd->client.icccm.step_h) *
+ bd->client.icccm.step_h);
+ if (*w > bd->client.icccm.max_w) *w = bd->client.icccm.max_w;
+ else if (*w < bd->client.icccm.min_w) *w = bd->client.icccm.min_w;
+ if (*h > bd->client.icccm.max_h) *h = bd->client.icccm.max_h;
+ else if (*h < bd->client.icccm.min_h) *h = bd->client.icccm.min_h;
+
+ *w += bd->client_inset.l + bd->client_inset.r;
+ *h += bd->client_inset.t + bd->client_inset.b;
+}
+
+static void
+_e_border_moveinfo_gather(E_Border *bd, const char *source)
+{
+ if (!strcmp(source, "mouse,1")) bd->moveinfo.down.button = 1;
+ else if (!strcmp(source, "mouse,2")) bd->moveinfo.down.button = 2;
+ else if (!strcmp(source, "mouse,3")) bd->moveinfo.down.button = 3;
+ else bd->moveinfo.down.button = 0;
+ if ((bd->moveinfo.down.button >= 1) && (bd->moveinfo.down.button <= 3))
+ {
+ bd->moveinfo.down.mx = bd->mouse.last_down[bd->moveinfo.down.button - 1].mx;
+ bd->moveinfo.down.my = bd->mouse.last_down[bd->moveinfo.down.button - 1].my;
+ }
+ else
+ {
+ bd->moveinfo.down.mx = bd->mouse.current.mx;
+ bd->moveinfo.down.my = bd->mouse.current.my;
+ }
+}
+
+static void
+_e_border_resize_handle(E_Border *bd)
+{
+ int x, y, w, h;
+ int tw, th;
+
+ x = bd->x;
+ y = bd->y;
+ w = bd->w;
+ h = bd->h;
+
+ if ((bd->resize_mode == RESIZE_TR) ||
+ (bd->resize_mode == RESIZE_R) ||
+ (bd->resize_mode == RESIZE_BR))
+ {
+ if ((bd->moveinfo.down.button >= 1) &&
+ (bd->moveinfo.down.button <= 3))
+ w = bd->mouse.last_down[bd->moveinfo.down.button - 1].w +
+ (bd->mouse.current.mx - bd->moveinfo.down.mx);
+ else
+ w = bd->w + (bd->mouse.current.mx - bd->moveinfo.down.mx);
+ }
+ else if ((bd->resize_mode == RESIZE_TL) ||
+ (bd->resize_mode == RESIZE_L) ||
+ (bd->resize_mode == RESIZE_BL))
+ {
+ if ((bd->moveinfo.down.button >= 1) &&
+ (bd->moveinfo.down.button <= 3))
+ w = bd->mouse.last_down[bd->moveinfo.down.button - 1].w -
+ (bd->mouse.current.mx - bd->moveinfo.down.mx);
+ else
+ w = bd->w - (bd->mouse.current.mx - bd->moveinfo.down.mx);
+ }
+
+ if ((bd->resize_mode == RESIZE_TL) ||
+ (bd->resize_mode == RESIZE_T) ||
+ (bd->resize_mode == RESIZE_TR))
+ {
+ if ((bd->moveinfo.down.button >= 1) &&
+ (bd->moveinfo.down.button <= 3))
+ h = bd->mouse.last_down[bd->moveinfo.down.button - 1].h -
+ (bd->mouse.current.my - bd->moveinfo.down.my);
+ else
+ h = bd->h - (bd->mouse.current.my - bd->moveinfo.down.my);
+ }
+ else if ((bd->resize_mode == RESIZE_BL) ||
+ (bd->resize_mode == RESIZE_B) ||
+ (bd->resize_mode == RESIZE_BR))
+ {
+ if ((bd->moveinfo.down.button >= 1) &&
+ (bd->moveinfo.down.button <= 3))
+ h = bd->mouse.last_down[bd->moveinfo.down.button - 1].h +
+ (bd->mouse.current.my - bd->moveinfo.down.my);
+ else
+ h = bd->h + (bd->mouse.current.my - bd->moveinfo.down.my);
+ }
+
+ tw = bd->w;
+ th = bd->h;
+ _e_border_resize_limit(bd, &w, &h);
+
+ if ((bd->resize_mode == RESIZE_TL) ||
+ (bd->resize_mode == RESIZE_L) ||
+ (bd->resize_mode == RESIZE_BL))
+ x += (tw - w);
+ if ((bd->resize_mode == RESIZE_TL) ||
+ (bd->resize_mode == RESIZE_T) ||
+ (bd->resize_mode == RESIZE_TR))
+ y += (th - h);
+
+ e_border_move_resize(bd, x, y, w, h);
+}
diff --git a/src/bin/e_border.h b/src/bin/e_border.h
new file mode 100644
index 000000000..7a89ccdeb
--- /dev/null
+++ b/src/bin/e_border.h
@@ -0,0 +1,149 @@
+#ifndef E_BORDER_H
+#define E_BORDER_H
+
+typedef struct _E_Border E_Border;
+
+struct _E_Border
+{
+ E_Object e_obj_inherit;
+
+ struct {
+ struct {
+ int x, y, w, h;
+ int mx, my;
+ } current, last_down[3], last_up[3];
+ } mouse;
+
+ struct {
+ struct {
+ int x, y, w, h;
+ int mx, my;
+ int button;
+ } down;
+ } moveinfo;
+
+ Ecore_X_Window win;
+ int x, y, w, h;
+ int ref;
+ E_Container *container;
+ Evas_List *handlers;
+
+ struct {
+ int l, r, t, b;
+ } client_inset;
+
+ Ecore_Evas *bg_ecore_evas;
+ Evas *bg_evas;
+ Ecore_X_Window bg_win;
+ Evas_Object *bg_object;
+ Ecore_X_Window event_win;
+
+ struct {
+ Ecore_X_Window shell_win;
+ Ecore_X_Window win;
+
+ int x, y, w, h;
+
+ struct {
+ unsigned char changed : 1;
+ char *name;
+ } border;
+
+ struct {
+ char *title;
+ char *name;
+ char *class;
+ char *icon_name;
+ char *machine;
+ int min_w, min_h;
+ int max_w, max_h;
+ int base_w, base_h;
+ int step_w, step_h;
+ int start_x, start_y;
+ double min_aspect, max_aspect;
+ Ecore_X_Window_State_Hint initial_state;
+ Ecore_X_Pixmap icon_pixmap;
+ Ecore_X_Pixmap icon_mask;
+ Ecore_X_Window icon_window;
+ Ecore_X_Window window_group;
+ Ecore_X_Gravity gravity;
+ unsigned char take_focus : 1;
+ unsigned char accepts_focus : 1;
+ unsigned char urgent : 1;
+ unsigned char delete_request : 1;
+ unsigned char withdrawn : 1;
+ unsigned char iconic : 1;
+ unsigned char request_pos : 1;
+ struct {
+ unsigned int title : 1;
+ unsigned int name_class : 1;
+ unsigned int icon_name : 1;
+ unsigned int machine : 1;
+ unsigned int hints : 1;
+ unsigned int size_pos_hints : 1;
+ unsigned int protocol : 1;
+ } fetch;
+ } icccm;
+ struct {
+ unsigned char borderless : 1;
+ struct {
+ unsigned int borderless : 1;
+ } fetch;
+ } mwm;
+ struct {
+ pid_t pid;
+ int desktop;
+ struct {
+ unsigned int pid : 1;
+ unsigned int desktop : 1;
+ } fetch;
+ } netwm;
+ Ecore_X_Window_Attributes initial_attributes;
+ } client;
+
+ E_Container_Shape *shape;
+
+ unsigned char visible : 1;
+ unsigned char moving : 1;
+ unsigned char focused : 1;
+ unsigned char new_client : 1;
+ unsigned char re_manage : 1;
+
+ unsigned char changed : 1;
+
+ unsigned char ignore_first_unmap;
+ unsigned char resize_mode;
+
+ struct {
+ unsigned int visible : 1;
+ unsigned int pos : 1;
+ unsigned int size : 1;
+ unsigned int stack : 1;
+ unsigned int prop : 1;
+ unsigned int border : 1;
+ unsigned int reset_gravity : 1;
+ } changes;
+};
+
+int e_border_init(void);
+int e_border_shutdown(void);
+
+E_Border *e_border_new(E_Container *con, Ecore_X_Window win, int first_map);
+void e_border_free(E_Border *bd);
+void e_border_ref(E_Border *bd);
+void e_border_unref(E_Border *bd);
+void e_border_show(E_Border *bd);
+void e_border_hide(E_Border *bd);
+void e_border_move(E_Border *bd, int x, int y);
+void e_border_resize(E_Border *bd, int w, int h);
+void e_border_move_resize(E_Border *bd, int x, int y, int w, int h);
+void e_border_raise(E_Border *bd);
+void e_border_lower(E_Border *bd);
+void e_border_stack_above(E_Border *bd, E_Border *above);
+void e_border_stack_below(E_Border *bd, E_Border *below);
+
+E_Border *e_border_find_by_client_window(Ecore_X_Window win);
+
+void e_border_idler_before(void);
+
+#endif
diff --git a/src/bin/e_box.c b/src/bin/e_box.c
new file mode 100644
index 000000000..216050e19
--- /dev/null
+++ b/src/bin/e_box.c
@@ -0,0 +1,802 @@
+#include "e.h"
+
+typedef struct _E_Smart_Data E_Smart_Data;
+typedef struct _E_Box_Item E_Box_Item;
+
+struct _E_Smart_Data
+{
+ Evas_Coord x, y, w, h;
+ Evas_Object *obj;
+ int frozen;
+ unsigned char changed : 1;
+ unsigned char horizontal : 1;
+ unsigned char homogenous : 1;
+ Evas_List *items;
+ struct {
+ Evas_Coord w, h;
+ } min, max;
+ struct {
+ double x, y;
+ } align;
+};
+
+struct _E_Box_Item
+{
+ E_Smart_Data *sd;
+ unsigned char fill_w : 1;
+ unsigned char fill_h : 1;
+ unsigned char expand_w : 1;
+ unsigned char expand_h : 1;
+ struct {
+ Evas_Coord w, h;
+ } min, max;
+ struct {
+ double x, y;
+ } align;
+ Evas_Object *obj;
+};
+
+/* local subsystem functions */
+static E_Box_Item *_e_box_smart_adopt(E_Smart_Data *sd, Evas_Object *obj);
+static void _e_box_smart_disown(Evas_Object *obj);
+static void _e_box_smart_item_del_hook(void *data, Evas *e, Evas_Object *obj, void *event_info);
+static void _e_box_smart_reconfigure(E_Smart_Data *sd);
+static void _e_box_smart_extents_calcuate(E_Smart_Data *sd);
+
+static void _e_box_smart_init(void);
+static void _e_box_smart_add(Evas_Object *obj);
+static void _e_box_smart_del(Evas_Object *obj);
+static void _e_box_smart_layer_set(Evas_Object *obj, int layer);
+static void _e_box_smart_raise(Evas_Object *obj);
+static void _e_box_smart_lower(Evas_Object *obj);
+static void _e_box_smart_stack_above(Evas_Object *obj, Evas_Object * above);
+static void _e_box_smart_stack_below(Evas_Object *obj, Evas_Object * below);
+static void _e_box_smart_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y);
+static void _e_box_smart_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h);
+static void _e_box_smart_show(Evas_Object *obj);
+static void _e_box_smart_hide(Evas_Object *obj);
+static void _e_box_smart_color_set(Evas_Object *obj, int r, int g, int b, int a);
+static void _e_box_smart_clip_set(Evas_Object *obj, Evas_Object *clip);
+static void _e_box_smart_clip_unset(Evas_Object *obj);
+
+/* local subsystem globals */
+static Evas_Smart *_e_smart = NULL;
+
+/* externally accessible functions */
+Evas_Object *
+e_box_add(Evas *evas)
+{
+ _e_box_smart_init();
+ return evas_object_smart_add(evas, _e_smart);
+}
+
+int
+e_box_freeze(Evas_Object *obj)
+{
+ E_Smart_Data *sd;
+
+ sd = evas_object_smart_data_get(obj);
+ sd->frozen++;
+ return sd->frozen;
+}
+
+int
+e_box_thaw(Evas_Object *obj)
+{
+ E_Smart_Data *sd;
+
+ sd = evas_object_smart_data_get(obj);
+ sd->frozen--;
+ if (sd->frozen <= 0) _e_box_smart_reconfigure(sd);
+ return sd->frozen;
+}
+
+void
+e_box_orientation_set(Evas_Object *obj, int horizontal)
+{
+ E_Smart_Data *sd;
+
+ sd = evas_object_smart_data_get(obj);
+ if (((sd->horizontal) && (horizontal)) ||
+ ((!sd->horizontal) && (!horizontal))) return;
+ sd->horizontal = horizontal;
+ sd->changed = 1;
+ if (sd->frozen <= 0) _e_box_smart_reconfigure(sd);
+}
+
+void
+e_box_homogenous_set(Evas_Object *obj, int homogenous)
+{
+ E_Smart_Data *sd;
+
+ sd = evas_object_smart_data_get(obj);
+ if (sd->homogenous == homogenous) return;
+ sd->homogenous = homogenous;
+ sd->changed = 1;
+ if (sd->frozen <= 0) _e_box_smart_reconfigure(sd);
+}
+
+int
+e_box_pack_start(Evas_Object *obj, Evas_Object *child)
+{
+ E_Smart_Data *sd;
+
+ sd = evas_object_smart_data_get(obj);
+ _e_box_smart_adopt(sd, child);
+ sd->items = evas_list_prepend(sd->items, child);
+ sd->changed = 1;
+ if (sd->frozen <= 0) _e_box_smart_reconfigure(sd);
+ return 0;
+}
+
+int
+e_box_pack_end(Evas_Object *obj, Evas_Object *child)
+{
+ E_Smart_Data *sd;
+
+ sd = evas_object_smart_data_get(obj);
+ _e_box_smart_adopt(sd, child);
+ sd->items = evas_list_append(sd->items, child);
+ sd->changed = 1;
+ if (sd->frozen <= 0) _e_box_smart_reconfigure(sd);
+ return evas_list_count(sd->items) - 1;
+}
+
+int
+e_box_pack_before(Evas_Object *obj, Evas_Object *child, Evas_Object *before)
+{
+ E_Smart_Data *sd;
+ int i = 0;
+ Evas_List *l;
+
+ sd = evas_object_smart_data_get(obj);
+ _e_box_smart_adopt(sd, child);
+ sd->items = evas_list_prepend_relative(sd->items, child, before);
+ for (i = 0, l = sd->items; l; l = l->next, i++)
+ {
+ if (l->data == child) break;
+ }
+ sd->changed = 1;
+ if (sd->frozen <= 0) _e_box_smart_reconfigure(sd);
+ return i;
+}
+
+int
+e_box_pack_after(Evas_Object *obj, Evas_Object *child, Evas_Object *after)
+{
+ E_Smart_Data *sd;
+ int i = 0;
+ Evas_List *l;
+
+ sd = evas_object_smart_data_get(obj);
+ _e_box_smart_adopt(sd, child);
+ sd->items = evas_list_append_relative(sd->items, child, after);
+ for (i = 0, l = sd->items; l; l = l->next, i++)
+ {
+ if (l->data == child) break;
+ }
+ sd->changed = 1;
+ if (sd->frozen <= 0) _e_box_smart_reconfigure(sd);
+ return i;
+}
+
+int
+e_box_pack_count_get(Evas_Object *obj)
+{
+ E_Smart_Data *sd;
+
+ sd = evas_object_smart_data_get(obj);
+ return evas_list_count(sd->items);
+}
+
+Evas_Object *
+e_box_pack_object_nth(Evas_Object *obj, int n)
+{
+ E_Smart_Data *sd;
+
+ sd = evas_object_smart_data_get(obj);
+ return evas_list_nth(sd->items, n);
+}
+
+Evas_Object *
+e_box_pack_object_first(Evas_Object *obj)
+{
+ E_Smart_Data *sd;
+
+ sd = evas_object_smart_data_get(obj);
+ return evas_list_data(sd->items);
+}
+
+Evas_Object *
+e_box_pack_object_last(Evas_Object *obj)
+{
+ E_Smart_Data *sd;
+
+ sd = evas_object_smart_data_get(obj);
+ return evas_list_data(evas_list_last(sd->items));
+}
+
+void
+e_box_pack_options_set(Evas_Object *obj, int fill_w, int fill_h, int expand_w, int expand_h, double align_x, double align_y, Evas_Coord min_w, Evas_Coord min_h, Evas_Coord max_w, Evas_Coord max_h)
+{
+ E_Box_Item *bi;
+
+ bi = evas_object_data_get(obj, "e_box_data");
+ if (!bi) return;
+ bi->fill_w = fill_w;
+ bi->fill_h = fill_h;
+ bi->expand_w = expand_w;
+ bi->expand_h = expand_h;
+ bi->align.x = align_x;
+ bi->align.y = align_y;
+ bi->min.w = min_w;
+ bi->min.h = min_h;
+ bi->max.w = max_w;
+ bi->max.h = max_h;
+ bi->sd->changed = 1;
+ if (bi->sd->frozen <= 0) _e_box_smart_reconfigure(bi->sd);
+}
+
+void
+e_box_unpack(Evas_Object *obj)
+{
+ E_Box_Item *bi;
+ E_Smart_Data *sd;
+
+ bi = evas_object_data_get(obj, "e_box_data");
+ if (!bi) return;
+ sd = bi->sd;
+ sd->items = evas_list_remove(sd->items, obj);
+ _e_box_smart_disown(obj);
+ sd->changed = 1;
+ if (sd->frozen <= 0) _e_box_smart_reconfigure(sd);
+}
+
+void
+e_box_min_size_get(Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh)
+{
+ E_Smart_Data *sd;
+
+ sd = evas_object_smart_data_get(obj);
+ if (sd->changed) _e_box_smart_extents_calcuate(sd);
+ if (minw) *minw = sd->min.w;
+ if (minh) *minh = sd->min.h;
+}
+
+void
+e_box_max_size_get(Evas_Object *obj, Evas_Coord *maxw, Evas_Coord *maxh)
+{
+ E_Smart_Data *sd;
+
+ sd = evas_object_smart_data_get(obj);
+ if (sd->changed) _e_box_smart_extents_calcuate(sd);
+ if (maxw) *maxw = sd->max.w;
+ if (maxh) *maxh = sd->max.h;
+}
+
+void
+e_box_align_get(Evas_Object *obj, double *ax, double *ay)
+{
+ E_Smart_Data *sd;
+
+ sd = evas_object_smart_data_get(obj);
+ if (ax) *ax = sd->align.x;
+ if (ay) *ay = sd->align.y;
+}
+
+void
+e_box_align_set(Evas_Object *obj, double ax, double ay)
+{
+ E_Smart_Data *sd;
+
+ sd = evas_object_smart_data_get(obj);
+ if ((sd->align.x == ax) && (sd->align.y == ay)) return;
+ sd->align.x = ax;
+ sd->align.y = ay;
+ sd->changed = 1;
+ if (sd->frozen <= 0) _e_box_smart_reconfigure(sd);
+}
+
+/* local subsystem functions */
+static E_Box_Item *
+_e_box_smart_adopt(E_Smart_Data *sd, Evas_Object *obj)
+{
+ E_Box_Item *bi;
+
+ bi = calloc(1, sizeof(E_Box_Item));
+ if (!bi) return NULL;
+ bi->sd = sd;
+ bi->obj = obj;
+ /* defaults */
+ bi->fill_w = 0;
+ bi->fill_h = 0;
+ bi->expand_w = 0;
+ bi->expand_h = 0;
+ bi->align.x = 0.5;
+ bi->align.y = 0.5;
+ bi->min.w = 0;
+ bi->min.h = 0;
+ bi->max.w = 0;
+ bi->max.h = 0;
+ evas_object_clip_set(obj, evas_object_clip_get(sd->obj));
+ evas_object_stack_above(obj, sd->obj);
+ evas_object_smart_member_add(bi->sd->obj, obj);
+ evas_object_data_set(obj, "e_box_data", bi);
+ evas_object_event_callback_add(obj, EVAS_CALLBACK_FREE,
+ _e_box_smart_item_del_hook, NULL);
+ return bi;
+}
+
+static void
+_e_box_smart_disown(Evas_Object *obj)
+{
+ E_Box_Item *bi;
+
+ bi = evas_object_data_get(obj, "e_box_data");
+ if (!bi) return;
+ evas_object_event_callback_del(obj,
+ EVAS_CALLBACK_FREE,
+ _e_box_smart_item_del_hook);
+ evas_object_smart_member_del(bi->sd->obj);
+ evas_object_data_del(obj, "e_box_data");
+ free(bi);
+}
+
+static void
+_e_box_smart_item_del_hook(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ e_box_unpack(obj);
+}
+
+static void
+_e_box_smart_reconfigure(E_Smart_Data *sd)
+{
+ Evas_Coord x, y, w, h, xx, yy;
+ Evas_List *l;
+ int minw, minh;
+ int count, expand;
+
+ if (!sd->changed) return;
+
+ x = sd->x;
+ y = sd->y;
+ w = sd->w;
+ h = sd->h;
+
+ _e_box_smart_extents_calcuate(sd);
+ minw = sd->min.w;
+ minh = sd->min.h;
+ count = evas_list_count(sd->items);
+ expand = 0;
+ if (w < minw)
+ {
+ x = x + ((w - minw) * (1.0 - sd->align.x));
+ w = minw;
+ }
+ if (h < minh)
+ {
+ y = y + ((h - minh) * (1.0 - sd->align.y));
+ h = minh;
+ }
+ for (l = sd->items; l; l = l->next)
+ {
+ E_Box_Item *bi;
+ Evas_Object *obj;
+
+ obj = l->data;
+ bi = evas_object_data_get(obj, "e_box_data");
+ if (sd->horizontal)
+ {
+ if (bi->expand_w) expand++;
+ }
+ else
+ {
+ if (bi->expand_h) expand++;
+ }
+ }
+ if (expand == 0)
+ {
+ if (sd->horizontal)
+ {
+ x += (w - minw) / 2;
+ w = minw;
+ }
+ else
+ {
+ y += (h - minh) / 2;
+ h = minh;
+ }
+ }
+ xx = x;
+ yy = y;
+ for (l = sd->items; l; l = l->next)
+ {
+ E_Box_Item *bi;
+ Evas_Object *obj;
+
+ obj = l->data;
+ bi = evas_object_data_get(obj, "e_box_data");
+ if (sd->horizontal)
+ {
+ if (sd->homogenous)
+ {
+ Evas_Coord ww, hh, ow, oh;
+
+ ww = (w / (Evas_Coord)count);
+ hh = h;
+ ow = bi->min.w;
+ if (bi->expand_w) ow = ww;
+ if ((bi->max.w >= 0) && (bi->max.w < oh)) ow = bi->max.w;
+ oh = bi->min.h;
+ if (bi->expand_h) oh = hh;
+ if ((bi->max.h >= 0) && (bi->max.h < oh)) oh = bi->max.h;
+ evas_object_move(obj,
+ xx + (Evas_Coord)(((double)(ww - ow)) * bi->align.x),
+ yy + (Evas_Coord)(((double)(hh - oh)) * bi->align.y));
+ evas_object_resize(obj, ow, oh);
+ xx += ww;
+ }
+ else
+ {
+ /* FIXME: not done - this is fucked atm */
+ Evas_Coord ww, hh, ow, oh;
+
+ ww = bi->min.w;
+ hh = h;
+ ow = bi->min.w;
+ if (bi->expand_w) ow = ww;
+ if ((bi->max.w >= 0) && (bi->max.w < ow)) ow = bi->max.w;
+ oh = bi->min.h;
+ if (bi->expand_h) oh = hh;
+ if ((bi->max.h >= 0) && (bi->max.h < oh)) oh = bi->max.h;
+ evas_object_move(obj,
+ xx + (Evas_Coord)(((double)(ww - ow)) * bi->align.x),
+ yy + (Evas_Coord)(((double)(hh - oh)) * bi->align.y));
+ evas_object_resize(obj, ow, oh);
+ xx += ww;
+ }
+ }
+ else
+ {
+ if (sd->homogenous)
+ {
+ Evas_Coord ww, hh, ow, oh;
+
+ ww = w;
+ hh = (h / (Evas_Coord)count);
+ ow = bi->min.w;
+ if (bi->expand_w) ow = ww;
+ if ((bi->max.w >= 0) && (bi->max.w < ow)) ow = bi->max.w;
+ oh = bi->min.h;
+ if (bi->expand_h) oh = hh;
+ if ((bi->max.h >= 0) && (bi->max.h < oh)) oh = bi->max.h;
+ evas_object_move(obj,
+ xx + (Evas_Coord)(((double)(ww - ow)) * bi->align.x),
+ yy + (Evas_Coord)(((double)(hh - oh)) * bi->align.y));
+ evas_object_resize(obj, ow, oh);
+ yy += hh;
+ }
+ else
+ {
+ /* FIXME: not done - this is fucked atm */
+ Evas_Coord ww, hh, ow, oh;
+
+ ww = w;
+ hh = bi->min.h;
+ ow = bi->min.w;
+ if (bi->expand_w) ow = ww;
+ if ((bi->max.w >= 0) && (bi->max.w < ow)) ow = bi->max.w;
+ oh = bi->min.h;
+ if (bi->expand_h) oh = hh;
+ if ((bi->max.h >= 0) && (bi->max.h < oh)) oh = bi->max.h;
+ evas_object_move(obj,
+ xx + (Evas_Coord)(((double)(ww - ow)) * bi->align.x),
+ yy + (Evas_Coord)(((double)(hh - oh)) * bi->align.y));
+ evas_object_resize(obj, ow, oh);
+ yy += hh;
+ }
+ }
+ }
+ sd->changed = 0;
+}
+
+/* FIXME: need to have min/max size calc routines */
+static void
+_e_box_smart_extents_calcuate(E_Smart_Data *sd)
+{
+ Evas_List *l;
+ int minw, minh;
+
+ sd->max.w = -1; /* max < 0 == unlimited */
+ sd->max.h = -1;
+
+ minw = 0;
+ minh = 0;
+ if (sd->homogenous)
+ {
+ for (l = sd->items; l; l = l->next)
+ {
+ E_Box_Item *bi;
+ Evas_Object *obj;
+
+ obj = l->data;
+ bi = evas_object_data_get(obj, "e_box_data");
+ if (sd->horizontal)
+ {
+ if (minh < bi->min.h) minh = bi->min.h;
+ if (minw < bi->min.w) minw = bi->min.w;
+ }
+ else
+ {
+ if (minw < bi->min.w) minw = bi->min.w;
+ if (minh < bi->min.h) minh = bi->min.h;
+ }
+ }
+ if (sd->horizontal)
+ {
+ minw *= evas_list_count(sd->items);
+ }
+ else
+ {
+ minh *= evas_list_count(sd->items);
+ }
+ }
+ else
+ {
+ for (l = sd->items; l; l = l->next)
+ {
+ E_Box_Item *bi;
+ Evas_Object *obj;
+
+ obj = l->data;
+ bi = evas_object_data_get(obj, "e_box_data");
+ if (sd->horizontal)
+ {
+ if (minh < bi->min.h) minh = bi->min.h;
+ minw += bi->min.w;
+ }
+ else
+ {
+ if (minw < bi->min.w) minw = bi->min.w;
+ minh += bi->min.h;
+ }
+ }
+ }
+ sd->min.w = minw;
+ sd->min.h = minh;
+}
+
+static void
+_e_box_smart_init(void)
+{
+ if (_e_smart) return;
+ _e_smart = evas_smart_new("e_box",
+ _e_box_smart_add,
+ _e_box_smart_del,
+ _e_box_smart_layer_set,
+ _e_box_smart_raise,
+ _e_box_smart_lower,
+ _e_box_smart_stack_above,
+ _e_box_smart_stack_below,
+ _e_box_smart_move,
+ _e_box_smart_resize,
+ _e_box_smart_show,
+ _e_box_smart_hide,
+ _e_box_smart_color_set,
+ _e_box_smart_clip_set,
+ _e_box_smart_clip_unset,
+ NULL);
+}
+
+static void
+_e_box_smart_add(Evas_Object *obj)
+{
+ E_Smart_Data *sd;
+
+ sd = calloc(1, sizeof(E_Smart_Data));
+ if (!sd) return;
+ sd->obj = obj;
+ sd->x = 0;
+ sd->y = 0;
+ sd->w = 0;
+ sd->h = 0;
+ evas_object_smart_data_set(obj, sd);
+}
+
+static void
+_e_box_smart_del(Evas_Object *obj)
+{
+ E_Smart_Data *sd;
+
+ sd = evas_object_smart_data_get(obj);
+ if (!sd) return;
+ while (sd->items)
+ {
+ Evas_Object *child;
+
+ child = sd->items->data;
+ e_box_unpack(child);
+ }
+ free(sd);
+}
+
+static void
+_e_box_smart_layer_set(Evas_Object *obj, int layer)
+{
+ E_Smart_Data *sd;
+
+ sd = evas_object_smart_data_get(obj);
+ if (!sd) return;
+
+ {
+ Evas_List *l;
+
+ for (l = sd->items; l; l = l->next)
+ {
+ evas_object_layer_set(l->data, layer);
+ }
+ }
+}
+
+static void
+_e_box_smart_raise(Evas_Object *obj)
+{
+ E_Smart_Data *sd;
+
+ sd = evas_object_smart_data_get(obj);
+ if (!sd) return;
+
+ {
+ Evas_List *l;
+
+ for (l = evas_list_last(sd->items); l; l = l->prev)
+ {
+ evas_object_raise(l->data);
+ }
+ }
+}
+
+static void
+_e_box_smart_lower(Evas_Object *obj)
+{
+ E_Smart_Data *sd;
+
+ sd = evas_object_smart_data_get(obj);
+ if (!sd) return;
+
+ {
+ Evas_List *l;
+
+ for (l = sd->items; l; l = l->next)
+ {
+ evas_object_lower(l->data);
+ }
+ }
+}
+
+static void
+_e_box_smart_stack_above(Evas_Object *obj, Evas_Object *above)
+{
+ E_Smart_Data *sd;
+
+ sd = evas_object_smart_data_get(obj);
+ if (!sd) return;
+
+ {
+ Evas_List *l;
+
+ for (l = sd->items; l; l = l->next)
+ {
+ evas_object_stack_above(l->data, above);
+ }
+ }
+}
+
+static void
+_e_box_smart_stack_below(Evas_Object *obj, Evas_Object *below)
+{
+ E_Smart_Data *sd;
+
+ sd = evas_object_smart_data_get(obj);
+ if (!sd) return;
+
+ {
+ Evas_List *l;
+
+ for (l = evas_list_last(sd->items); l; l = l->prev)
+ {
+ evas_object_stack_below(l->data, below);
+ }
+ }
+}
+
+static void
+_e_box_smart_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
+{
+ E_Smart_Data *sd;
+
+ sd = evas_object_smart_data_get(obj);
+ if (!sd) return;
+ if ((x == sd->x) && (y == sd->y)) return;
+ sd->x = x;
+ sd->y = y;
+ sd->changed = 1;
+ _e_box_smart_reconfigure(sd);
+}
+
+static void
+_e_box_smart_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
+{
+ E_Smart_Data *sd;
+
+ sd = evas_object_smart_data_get(obj);
+ if (!sd) return;
+ if ((w == sd->w) && (h == sd->h)) return;
+ sd->w = w;
+ sd->h = h;
+ sd->changed = 1;
+ _e_box_smart_reconfigure(sd);
+}
+
+static void
+_e_box_smart_show(Evas_Object *obj)
+{
+ E_Smart_Data *sd;
+
+ sd = evas_object_smart_data_get(obj);
+ if (!sd) return;
+}
+
+static void
+_e_box_smart_hide(Evas_Object *obj)
+{
+ E_Smart_Data *sd;
+
+ sd = evas_object_smart_data_get(obj);
+ if (!sd) return;
+}
+
+static void
+_e_box_smart_color_set(Evas_Object *obj, int r, int g, int b, int a)
+{
+ E_Smart_Data *sd;
+
+ sd = evas_object_smart_data_get(obj);
+ if (!sd) return;
+}
+
+static void
+_e_box_smart_clip_set(Evas_Object *obj, Evas_Object *clip)
+{
+ E_Smart_Data *sd;
+
+ sd = evas_object_smart_data_get(obj);
+ if (!sd) return;
+
+ {
+ Evas_List *l;
+
+ for (l = sd->items; l; l = l->next)
+ {
+ evas_object_clip_set(l->data, clip);
+ }
+ }
+}
+
+static void
+_e_box_smart_clip_unset(Evas_Object *obj)
+{
+ E_Smart_Data *sd;
+
+ sd = evas_object_smart_data_get(obj);
+ if (!sd) return;
+
+ {
+ Evas_List *l;
+
+ for (l = sd->items; l; l = l->next)
+ {
+ evas_object_clip_unset(l->data);
+ }
+ }
+}
diff --git a/src/bin/e_box.h b/src/bin/e_box.h
new file mode 100644
index 000000000..9f998f338
--- /dev/null
+++ b/src/bin/e_box.h
@@ -0,0 +1,25 @@
+#ifndef E_BOX_H
+#define E_BOX_H
+
+Evas_Object *e_box_add (Evas *evas);
+
+int e_box_freeze (Evas_Object *obj);
+int e_box_thaw (Evas_Object *obj);
+void e_box_orientation_set (Evas_Object *obj, int horizontal);
+void e_box_homogenous_set (Evas_Object *obj, int homogenous);
+int e_box_pack_start (Evas_Object *obj, Evas_Object *child);
+int e_box_pack_end (Evas_Object *obj, Evas_Object *child);
+int e_box_pack_before (Evas_Object *obj, Evas_Object *child, Evas_Object *before);
+int e_box_pack_after (Evas_Object *obj, Evas_Object *child, Evas_Object *after);
+int e_box_pack_count_get (Evas_Object *obj);
+Evas_Object *e_box_pack_object_nth (Evas_Object *obj, int n);
+Evas_Object *e_box_pack_object_first (Evas_Object *obj);
+Evas_Object *e_box_pack_object_last (Evas_Object *obj);
+void e_box_pack_options_set (Evas_Object *obj, int fill_w, int fill_h, int expand_w, int expand_h, double align_x, double align_y, Evas_Coord min_w, Evas_Coord min_h, Evas_Coord max_w, Evas_Coord max_h);
+void e_box_unpack (Evas_Object *obj);
+void e_box_min_size_get (Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh);
+void e_box_max_size_get (Evas_Object *obj, Evas_Coord *maxw, Evas_Coord *maxh);
+void e_box_align_get (Evas_Object *obj, double *ax, double *ay);
+void e_box_align_set (Evas_Object *obj, double ax, double ay);
+
+#endif
diff --git a/src/bin/e_canvas.c b/src/bin/e_canvas.c
new file mode 100644
index 000000000..2f36a7e49
--- /dev/null
+++ b/src/bin/e_canvas.c
@@ -0,0 +1,75 @@
+#include "e.h"
+
+/* local subsystem functions */
+
+/* local subsystem globals */
+static Evas_List *_e_canvases = NULL;
+
+void
+e_canvas_add(Ecore_Evas *ee)
+{
+ Evas *e;
+
+ _e_canvases = evas_list_prepend(_e_canvases, ee);
+ e = ecore_evas_get(ee);
+ evas_image_cache_set(e, e_config_val_image_cache * 1024);
+ evas_font_cache_set(e, e_config_val_font_cache * 1024);
+// evas_image_cache_flush(e);
+// evas_image_cache_reload(e);
+}
+
+void
+e_canvas_del(Ecore_Evas *ee)
+{
+ _e_canvases = evas_list_remove(_e_canvases, ee);
+}
+
+void
+e_canvas_recache(void)
+{
+ Evas_List *l;
+
+ for (l = _e_canvases; l; l = l->next)
+ {
+ Ecore_Evas *ee;
+ Evas *e;
+
+ ee = l->data;
+ e = ecore_evas_get(ee);
+ evas_image_cache_set(e, e_config_val_image_cache * 1024);
+ evas_font_cache_set(e, e_config_val_font_cache * 1024);
+ }
+}
+
+void
+e_canvas_cache_flush(void)
+{
+ Evas_List *l;
+
+ for (l = _e_canvases; l; l = l->next)
+ {
+ Ecore_Evas *ee;
+ Evas *e;
+
+ ee = l->data;
+ e = ecore_evas_get(ee);
+ evas_image_cache_flush(e);
+ evas_font_cache_flush(e);
+ }
+}
+
+void
+e_canvas_cache_reload(void)
+{
+ Evas_List *l;
+
+ for (l = _e_canvases; l; l = l->next)
+ {
+ Ecore_Evas *ee;
+ Evas *e;
+
+ ee = l->data;
+ e = ecore_evas_get(ee);
+ evas_image_cache_reload(e);
+ }
+}
diff --git a/src/bin/e_canvas.h b/src/bin/e_canvas.h
new file mode 100644
index 000000000..00f3331d2
--- /dev/null
+++ b/src/bin/e_canvas.h
@@ -0,0 +1,10 @@
+#ifndef E_CANVAS_H
+#define E_CANVAS_H
+
+void e_canvas_add(Ecore_Evas *ee);
+void e_canvas_del(Ecore_Evas *ee);
+void e_canvas_recache(void);
+void e_canvas_cache_flush(void);
+void e_canvas_cache_reload(void);
+
+#endif
diff --git a/src/bin/e_config.c b/src/bin/e_config.c
new file mode 100644
index 000000000..705e3d3ae
--- /dev/null
+++ b/src/bin/e_config.c
@@ -0,0 +1,248 @@
+#include "e.h"
+
+/* TODO List
+ *
+ * * setting up a new config value and a listener callback is too long winded - need to have helper funcs and macros do this so it's more like 1 line per new config value or 2
+ */
+
+#if ((E17_PROFILE >= LOWRES_PDA) && (E17_PROFILE <= HIRES_PDA))
+#define DEF_MENUCLICK 1.25
+#else
+#define DEF_MENUCLICK 0.25
+#endif
+
+char *e_config_val_desktop_default_background = NULL;
+double e_config_val_menus_scroll_speed = 1000.0;
+double e_config_val_menus_fast_mouse_move_thresthold = 500.0;
+double e_config_val_menus_click_drag_timeout = DEF_MENUCLICK;
+double e_config_val_framerate = 30.0;
+int e_config_val_image_cache = 2048;
+int e_config_val_font_cache = 512;
+
+/* local subsystem functions */
+static void _e_config_save_cb(void *data);
+
+static int _e_config_listener_desktop_default_background(const char *key, const Ecore_Config_Type type, const int tag, void *data);
+static int _e_config_listener_menus_scroll_speed(const char *key, const Ecore_Config_Type type, const int tag, void *data);
+static int _e_config_listener_menus_fast_mouse_move_threshold(const char *key, const Ecore_Config_Type type, const int tag, void *data);
+static int _e_config_listener_menus_click_drag_timeout(const char *key, const Ecore_Config_Type type, const int tag, void *data);
+static int _e_config_listener_framerate(const char *key, const Ecore_Config_Type type, const int tag, void *data);
+static int _e_config_listener_image_cache(const char *key, const Ecore_Config_Type type, const int tag, void *data);
+static int _e_config_listener_font_cache(const char *key, const Ecore_Config_Type type, const int tag, void *data);
+
+/* local subsystem globals */
+static Ecore_Job *_e_config_save_job = NULL;
+
+/* externally accessible functions */
+int
+e_config_init(void)
+{
+ int ret;
+
+ ecore_config_init("e");
+
+ ecore_config_string_create
+ ("e.desktop.default.background",
+ PACKAGE_DATA_DIR"/data/themes/default.eet",
+ 'b', "default-background",
+ "The default background for desktops without a custom background");
+ ecore_config_float_create_bound
+ ("e.menus.scroll_speed",
+ 1000.0, 1.0, 20000.0, 10.0,
+ 0, "menus-scroll-speed",
+ "Pixels per second menus scroll around the screen");
+ ecore_config_float_create_bound
+ ("e.menus.fast_mouse_move_threshold",
+ 300.0, 1.0, 2000.0, 1.0,
+ 0, "menus-scroll-speed",
+ "Pixels per second menus scroll around the screen");
+ ecore_config_float_create_bound
+ ("e.menus.click_drag_timeout",
+ DEF_MENUCLICK, 0.0, 10.0, 0.01,
+ 0, "menus-click-drag-timeout",
+ "Seconds after a mouse press when a release will not hide the menu");
+ ecore_config_float_create_bound
+ ("e.framerate",
+ 30.0, 1.0, 200.0, 0.1,
+ 0, "framerate",
+ "A hint at the framerate (in frames per second) Enlightenment should try and animate at");
+ ecore_config_int_create_bound
+ ("e.image-cache",
+ 2048, 0, 32768, 1,
+ 0, "image-cache",
+ "The mount of memory (in Kb) to use as a sepculative image cache");
+ ecore_config_int_create_bound
+ ("e.font-cache",
+ 512, 0, 4096, 1,
+ 0, "font-cache",
+ "The mount of memory (in Kb) to use as a sepculative font cache");
+
+ ecore_config_load();
+ ret = ecore_config_args_parse();
+
+ e_config_val_desktop_default_background =
+ ecore_config_string_get("e.desktop.default.background");
+ ecore_config_listen("e.desktop.default.background",
+ "e.desktop.default.background",
+ _e_config_listener_desktop_default_background,
+ 0, NULL);
+ e_config_val_menus_scroll_speed =
+ ecore_config_float_get("e.menus.scroll_speed");
+ ecore_config_listen("e.menus.scroll_speed",
+ "e.menus.scroll_speed",
+ _e_config_listener_menus_scroll_speed,
+ 0, NULL);
+ e_config_val_menus_fast_mouse_move_thresthold =
+ ecore_config_float_get("e.menus.fast_mouse_move_threshold");
+ ecore_config_listen("e.menus.fast_mouse_move_threshold",
+ "e.menus.fast_mouse_move_threshold",
+ _e_config_listener_menus_fast_mouse_move_threshold,
+ 0, NULL);
+ e_config_val_menus_click_drag_timeout =
+ ecore_config_float_get("e.menus.click_drag_timeout");
+ ecore_config_listen("e.menus.click_drag_timeout",
+ "e.menus.click_drag_timeout",
+ _e_config_listener_menus_click_drag_timeout,
+ 0, NULL);
+ e_config_val_framerate =
+ ecore_config_float_get("e.framerate");
+ if (e_config_val_framerate <= 0.0) e_config_val_framerate = 30.0;
+ ecore_config_listen("e.framerate",
+ "e.framerate",
+ _e_config_listener_framerate,
+ 0, NULL);
+ e_config_val_image_cache =
+ ecore_config_int_get("e.image-cache");
+ ecore_config_listen("e.image-cache",
+ "e.image-cache",
+ _e_config_listener_image_cache,
+ 0, NULL);
+ e_config_val_font_cache =
+ ecore_config_int_get("e.font-cache");
+ ecore_config_listen("e.font-cache",
+ "e.font-cache",
+ _e_config_listener_font_cache,
+ 0, NULL);
+ return 1;
+}
+
+int
+e_config_shutdown(void)
+{
+ /* FIXME: unset listeners */
+ return 1;
+}
+
+int
+e_config_save(void)
+{
+ if (_e_config_save_job)
+ {
+ ecore_job_del(_e_config_save_job);
+ _e_config_save_job = NULL;
+ }
+ return ecore_config_save();
+}
+
+void
+e_config_save_queue(void)
+{
+ if (_e_config_save_job) ecore_job_del(_e_config_save_job);
+ _e_config_save_job = ecore_job_add(_e_config_save_cb, NULL);
+}
+
+/* local subsystem functions */
+static void
+_e_config_save_cb(void *data)
+{
+ _e_config_save_job = NULL;
+ e_module_save_all();
+ e_config_save();
+}
+
+static int
+_e_config_listener_desktop_default_background(const char *key, const Ecore_Config_Type type, const int tag, void *data)
+{
+ Evas_List *managers, *l;
+
+ if (e_config_val_desktop_default_background)
+ free(e_config_val_desktop_default_background);
+ e_config_val_desktop_default_background =
+ ecore_config_string_get("e.desktop.default.background");
+ managers = e_manager_list();
+ for (l = managers; l; l = l->next)
+ {
+ Evas_List *ll;
+ E_Manager *man;
+
+ man = l->data;
+ for (ll = man->containers; ll; ll = ll->next)
+ {
+ E_Container *con;
+
+ con = ll->data;
+ e_container_bg_reconfigure(con);
+ }
+ }
+ return 1;
+}
+
+static int
+_e_config_listener_menus_scroll_speed(const char *key, const Ecore_Config_Type type, const int tag, void *data)
+{
+ e_config_val_menus_scroll_speed =
+ ecore_config_float_get("e.menus.scroll_speed");
+ return 1;
+}
+
+static int
+_e_config_listener_menus_fast_mouse_move_threshold(const char *key, const Ecore_Config_Type type, const int tag, void *data)
+{
+ e_config_val_menus_fast_mouse_move_thresthold =
+ ecore_config_float_get("e.menus.fast_mouse_move_threshold");
+ return 1;
+}
+
+static int
+_e_config_listener_menus_click_drag_timeout(const char *key, const Ecore_Config_Type type, const int tag, void *data)
+{
+ e_config_val_menus_click_drag_timeout =
+ ecore_config_float_get("e.menus.click_drag_timeout");
+ return 1;
+}
+
+static int
+_e_config_listener_framerate(const char *key, const Ecore_Config_Type type, const int tag, void *data)
+{
+ e_config_val_framerate =
+ ecore_config_float_get("e.framerate");
+ if (e_config_val_framerate <= 0.0) e_config_val_framerate = 30.0;
+ edje_frametime_set(1.0 / e_config_val_framerate);
+ return 1;
+}
+
+static int
+_e_config_listener_image_cache(const char *key, const Ecore_Config_Type type, const int tag, void *data)
+{
+ e_config_val_image_cache =
+ ecore_config_int_get("e.image-cache");
+ ecore_config_listen("e.image-cache",
+ "e.image-cache",
+ _e_config_listener_image_cache,
+ 0, NULL);
+ e_canvas_recache();
+ return 1;
+}
+
+static int
+_e_config_listener_font_cache(const char *key, const Ecore_Config_Type type, const int tag, void *data)
+{
+ e_config_val_font_cache =
+ ecore_config_int_get("e.font-cache");
+ ecore_config_listen("e.font-cache",
+ "e.font-cache",
+ _e_config_listener_font_cache,
+ 0, NULL);
+ e_canvas_recache();
+ return 1;
+}
diff --git a/src/bin/e_config.h b/src/bin/e_config.h
new file mode 100644
index 000000000..14d8f0657
--- /dev/null
+++ b/src/bin/e_config.h
@@ -0,0 +1,18 @@
+#ifndef E_CONFIG_H
+#define E_CONFIG_H
+
+int e_config_init(void);
+int e_config_shutdown(void);
+
+int e_config_save(void);
+void e_config_save_queue(void);
+
+extern char *e_config_val_desktop_default_background;
+extern double e_config_val_menus_scroll_speed;
+extern double e_config_val_menus_fast_mouse_move_thresthold;
+extern double e_config_val_menus_click_drag_timeout;
+extern double e_config_val_framerate;
+extern int e_config_val_image_cache;
+extern int e_config_val_font_cache;
+
+#endif
diff --git a/src/bin/e_container.c b/src/bin/e_container.c
new file mode 100644
index 000000000..1ace0963f
--- /dev/null
+++ b/src/bin/e_container.c
@@ -0,0 +1,536 @@
+#include "e.h"
+
+/* TODO List:
+ *
+ * * fix shape callbacks to be able to be safely deleted
+ */
+
+/* local subsystem functions */
+static void _e_container_free(E_Container *con);
+
+static void _e_container_cb_bg_mouse_down(void *data, Evas *evas, Evas_Object *obj, void *event_info);
+static void _e_container_cb_bg_mouse_up(void *data, Evas *evas, Evas_Object *obj, void *event_info);
+static void _e_container_cb_bg_mouse_move(void *data, Evas *evas, Evas_Object *obj, void *event_info);
+static void _e_container_cb_bg_ecore_evas_resize(Ecore_Evas *ee);
+
+static void _e_container_shape_del(E_Container_Shape *es);
+static void _e_container_shape_free(E_Container_Shape *es);
+static void _e_container_shape_change_call(E_Container_Shape *es, E_Container_Shape_Change ch);
+
+/* externally accessible functions */
+int
+e_container_init(void)
+{
+ return 1;
+}
+
+int
+e_container_shutdown(void)
+{
+ return 1;
+}
+
+E_Container *
+e_container_new(E_Manager *man)
+{
+ E_Container *con;
+ Ecore_Event_Handler *h;
+
+ con = E_OBJECT_ALLOC(E_Container, _e_container_free);
+ if (!con) return NULL;
+ con->manager = man;
+ e_object_ref(E_OBJECT(con->manager));
+ con->manager->containers = evas_list_append(con->manager->containers, con);
+ con->w = con->manager->w;
+ con->h = con->manager->h;
+ con->win = ecore_x_window_override_new(con->manager->win, con->x, con->y, con->w, con->h);
+ ecore_x_icccm_title_set(con->win, "Enlightenment Container");
+ con->bg_ecore_evas = ecore_evas_software_x11_new(NULL, con->win, 0, 0, con->w, con->h);
+ e_canvas_add(con->bg_ecore_evas);
+ con->bg_evas = ecore_evas_get(con->bg_ecore_evas);
+ con->bg_win = ecore_evas_software_x11_window_get(con->bg_ecore_evas);
+ ecore_evas_name_class_set(con->bg_ecore_evas, "E", "Background_Window");
+ ecore_evas_title_set(con->bg_ecore_evas, "Enlightenment Background");
+ ecore_evas_avoid_damage_set(con->bg_ecore_evas, 1);
+ ecore_evas_show(con->bg_ecore_evas);
+ e_path_evas_append(path_fonts, con->bg_evas);
+
+ e_pointer_container_set(con);
+
+ if (1) /* for now ALWAYS on - but later maybe a config option */
+ {
+ Evas_Object *o;
+
+ o = evas_object_rectangle_add(con->bg_evas);
+ con->bg_blank_object = 0;
+ evas_object_layer_set(o, -100);
+ evas_object_move(o, 0, 0);
+ evas_object_resize(o, con->w, con->h);
+ evas_object_color_set(o, 255, 255, 255, 255);
+ evas_object_show(o);
+
+ o = edje_object_add(con->bg_evas);
+ con->bg_object = o;
+ evas_object_layer_set(o, -1);
+ evas_object_name_set(o, "desktop/background");
+ evas_object_data_set(o, "e_container", con);
+ evas_object_move(o, 0, 0);
+ evas_object_resize(o, con->w, con->h);
+ edje_object_file_set(o,
+ e_config_val_desktop_default_background,
+ "desktop/background");
+ evas_object_show(o);
+
+ o = evas_object_rectangle_add(con->bg_evas);
+ con->bg_event_object = 0;
+ evas_object_move(o, 0, 0);
+ evas_object_resize(o, con->w, con->h);
+ evas_object_color_set(o, 255, 255, 255, 0);
+ evas_object_show(o);
+ evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, _e_container_cb_bg_mouse_down, con);
+ evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_UP, _e_container_cb_bg_mouse_up, con);
+ evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_MOVE, _e_container_cb_bg_mouse_move, con);
+
+ ecore_evas_callback_resize_set(con->bg_ecore_evas, _e_container_cb_bg_ecore_evas_resize);
+ }
+ return con;
+}
+
+void
+e_container_show(E_Container *con)
+{
+ E_OBJECT_CHECK(con);
+ if (con->visible) return;
+ ecore_x_window_show(con->win);
+ con->visible = 1;
+}
+
+void
+e_container_hide(E_Container *con)
+{
+ E_OBJECT_CHECK(con);
+ if (!con->visible) return;
+ ecore_x_window_hide(con->win);
+ con->visible = 0;
+}
+
+void
+e_container_move(E_Container *con, int x, int y)
+{
+ E_OBJECT_CHECK(con);
+ if ((x == con->x) && (y == con->y)) return;
+ con->x = x;
+ con->y = y;
+ ecore_x_window_move(con->win, con->x, con->y);
+}
+
+void
+e_container_resize(E_Container *con, int w, int h)
+{
+ E_OBJECT_CHECK(con);
+ if ((w == con->w) && (h == con->h)) return;
+ con->w = w;
+ con->h = h;
+ ecore_x_window_resize(con->win, con->w, con->h);
+ ecore_evas_resize(con->bg_ecore_evas, con->w, con->h);
+}
+
+void
+e_container_move_resize(E_Container *con, int x, int y, int w, int h)
+{
+ E_OBJECT_CHECK(con);
+ if ((x == con->x) && (y == con->y) && (w == con->w) && (h == con->h)) return;
+ con->x = x;
+ con->y = y;
+ con->w = w;
+ con->h = h;
+ ecore_x_window_move_resize(con->win, con->x, con->y, con->w, con->h);
+ ecore_evas_resize(con->bg_ecore_evas, con->w, con->h);
+}
+
+void
+e_container_raise(E_Container *con)
+{
+ E_OBJECT_CHECK(con);
+ ecore_x_window_raise(con->win);
+}
+
+void
+e_container_lower(E_Container *con)
+{
+ E_OBJECT_CHECK(con);
+ ecore_x_window_lower(con->win);
+}
+
+void
+e_container_bg_reconfigure(E_Container *con)
+{
+ Evas_Object *o;
+
+ E_OBJECT_CHECK(con);
+ o = con->bg_object;
+ evas_object_hide(o);
+ edje_object_file_set(o,
+ e_config_val_desktop_default_background,
+ "desktop/background");
+ evas_object_layer_set(o, -1);
+ evas_object_show(o);
+}
+
+
+
+E_Container_Shape *
+e_container_shape_add(E_Container *con)
+{
+ E_Container_Shape *es;
+
+ E_OBJECT_CHECK_RETURN(con, NULL);
+
+ es = E_OBJECT_ALLOC(E_Container_Shape, _e_container_shape_free);
+ E_OBJECT_DEL_SET(es, _e_container_shape_del);
+ es->con = con;
+ con->shapes = evas_list_append(con->shapes, es);
+ _e_container_shape_change_call(es, E_CONTAINER_SHAPE_ADD);
+ return es;
+}
+
+void
+e_container_shape_show(E_Container_Shape *es)
+{
+ E_OBJECT_CHECK(es);
+ if (es->visible) return;
+ es->visible = 1;
+ _e_container_shape_change_call(es, E_CONTAINER_SHAPE_SHOW);
+}
+
+void
+e_container_shape_hide(E_Container_Shape *es)
+{
+ E_OBJECT_CHECK(es);
+ if (!es->visible) return;
+ es->visible = 0;
+ _e_container_shape_change_call(es, E_CONTAINER_SHAPE_HIDE);
+}
+
+void
+e_container_shape_move(E_Container_Shape *es, int x, int y)
+{
+ E_OBJECT_CHECK(es);
+ if ((es->x == x) && (es->y == y)) return;
+ es->x = x;
+ es->y = y;
+ _e_container_shape_change_call(es, E_CONTAINER_SHAPE_MOVE);
+}
+
+void
+e_container_shape_resize(E_Container_Shape *es, int w, int h)
+{
+ E_OBJECT_CHECK(es);
+ if (w < 1) w = 1;
+ if (h < 1) h = 1;
+ if ((es->w == w) && (es->h == h)) return;
+ es->w = w;
+ es->h = h;
+ _e_container_shape_change_call(es, E_CONTAINER_SHAPE_RESIZE);
+}
+
+Evas_List *
+e_container_shape_list_get(E_Container *con)
+{
+ E_OBJECT_CHECK_RETURN(con, NULL);
+ return con->shapes;
+}
+
+void
+e_container_shape_geometry_get(E_Container_Shape *es, int *x, int *y, int *w, int *h)
+{
+ E_OBJECT_CHECK(es);
+ if (x) *x = es->x;
+ if (y) *y = es->y;
+ if (w) *w = es->w;
+ if (h) *h = es->h;
+}
+
+E_Container *
+e_container_shape_container_get(E_Container_Shape *es)
+{
+ E_OBJECT_CHECK_RETURN(es, NULL);
+ return es->con;
+}
+
+void
+e_container_shape_change_callback_add(E_Container *con, void (*func) (void *data, E_Container_Shape *es, E_Container_Shape_Change ch), void *data)
+{
+ E_Container_Shape_Callback *cb;
+
+ E_OBJECT_CHECK(con);
+ cb = calloc(1, sizeof(E_Container_Shape_Callback));
+ if (!cb) return;
+ cb->func = func;
+ cb->data = data;
+ con->shape_change_cb = evas_list_append(con->shape_change_cb, cb);
+}
+
+void
+e_container_shape_change_callback_del(E_Container *con, void (*func) (void *data, E_Container_Shape *es, E_Container_Shape_Change ch), void *data)
+{
+ Evas_List *l;
+
+ /* FIXME: if we call this from within a callback we are in trouble */
+ E_OBJECT_CHECK(con);
+ for (l = con->shape_change_cb; l; l = l->next)
+ {
+ E_Container_Shape_Callback *cb;
+
+ cb = l->data;
+ if ((cb->func == func) && (cb->data == data))
+ {
+ con->shape_change_cb = evas_list_remove_list(con->shape_change_cb, l);
+ free(cb);
+ return;
+ }
+ }
+}
+
+Evas_List *
+e_container_shape_rects_get(E_Container_Shape *es)
+{
+ E_OBJECT_CHECK_RETURN(es, NULL);
+ return es->shape;
+}
+
+
+
+
+
+/* local subsystem functions */
+static void
+_e_container_free(E_Container *con)
+{
+ while (con->clients) e_object_del(E_OBJECT(con->clients->data));
+ con->manager->containers = evas_list_remove(con->manager->containers, con);
+ e_canvas_del(con->bg_ecore_evas);
+ ecore_evas_free(con->bg_ecore_evas);
+ ecore_x_window_del(con->win);
+ e_object_unref(E_OBJECT(con->manager));
+ free(con);
+}
+
+static void
+_e_container_cb_bg_mouse_down(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+ E_Container *con;
+ Evas_Event_Mouse_Down *ev;
+
+ ev = (Evas_Event_Mouse_Down *)event_info;
+ con = data;
+ if (ev->button == 1)
+ {
+ char buf[4096];
+ char *homedir;
+
+ homedir = e_user_homedir_get();
+ if (homedir)
+ {
+ E_Menu *m;
+
+ snprintf(buf, sizeof(buf), "%s/.e/e/applications/favorite", homedir);
+ m = e_int_menus_apps_new(buf, 1);
+ e_menu_activate_mouse(m, con, ev->output.x, ev->output.y, 1, 1,
+ E_MENU_POP_DIRECTION_DOWN);
+ e_util_container_fake_mouse_up_all_later(con);
+ free(homedir);
+ }
+ }
+ else if (ev->button == 2)
+ {
+ static E_Menu *m = NULL;
+ static E_Menu *m1 = NULL;
+ static E_Menu *m2 = NULL;
+
+ if (!m)
+ {
+ E_Menu_Item *mi;
+
+ m1 = e_menu_new();
+ mi = e_menu_item_new(m1);
+ e_menu_item_label_set(mi, "Submenu 1 Item 1");
+ mi = e_menu_item_new(m1);
+ e_menu_item_label_set(mi, "Submenu 1 Item 2");
+ mi = e_menu_item_new(m1);
+ e_menu_item_label_set(mi, "Submenu 1 Item 3");
+
+ m2 = e_menu_new();
+ mi = e_menu_item_new(m2);
+ e_menu_item_label_set(mi, "Flimstix");
+ e_menu_item_icon_file_set(mi,
+ e_path_find(path_images, "e.png"));
+ mi = e_menu_item_new(m2);
+ e_menu_item_label_set(mi, "Shub Shub");
+ e_menu_item_icon_file_set(mi,
+ e_path_find(path_images, "e.png"));
+ mi = e_menu_item_new(m2);
+ e_menu_item_label_set(mi, "Gah I thought I'd just make this long");
+ mi = e_menu_item_new(m2);
+ e_menu_item_label_set(mi, "And more");
+ mi = e_menu_item_new(m2);
+ e_menu_item_label_set(mi, "Getting stenchy");
+ mi = e_menu_item_new(m2);
+ e_menu_item_label_set(mi, "Ich bin ein Fisch");
+ mi = e_menu_item_new(m2);
+ e_menu_item_label_set(mi, "PONG");
+ mi = e_menu_item_new(m2);
+ e_menu_item_label_set(mi, "The last word");
+
+ m = e_menu_new();
+ mi = e_menu_item_new(m);
+ e_menu_item_label_set(mi, "First Menu Item");
+ e_menu_item_icon_file_set(mi,
+ e_path_find(path_images, "e.png"));
+ mi = e_menu_item_new(m);
+ e_menu_item_label_set(mi, "Short");
+ mi = e_menu_item_new(m);
+ e_menu_item_label_set(mi, "A very long menu item is here to test with");
+ mi = e_menu_item_new(m);
+ e_menu_item_label_set(mi, "There is no spoon!");
+ mi = e_menu_item_new(m);
+ e_menu_item_label_set(mi, "Icon: Pants On.");
+ e_menu_item_icon_file_set(mi,
+ e_path_find(path_images, "e.png"));
+ mi = e_menu_item_new(m);
+ e_menu_item_label_set(mi, "First Submenu");
+ e_menu_item_submenu_set(mi, m1);
+ mi = e_menu_item_new(m);
+ e_menu_item_separator_set(mi, 1);
+ mi = e_menu_item_new(m);
+ e_menu_item_label_set(mi, "Other side of a separator");
+ mi = e_menu_item_new(m);
+ e_menu_item_label_set(mi, "A Submenu");
+ e_menu_item_icon_file_set(mi,
+ e_path_find(path_images, "e.png"));
+ e_menu_item_submenu_set(mi, m2);
+ mi = e_menu_item_new(m);
+ e_menu_item_check_set(mi, 1);
+ e_menu_item_label_set(mi, "Check 1");
+ e_menu_item_icon_file_set(mi,
+ e_path_find(path_images, "e.png"));
+ mi = e_menu_item_new(m);
+ e_menu_item_check_set(mi, 1);
+ e_menu_item_label_set(mi, "Check 2");
+ mi = e_menu_item_new(m);
+ e_menu_item_check_set(mi, 1);
+ e_menu_item_label_set(mi, "Check 3");
+ mi = e_menu_item_new(m);
+ e_menu_item_separator_set(mi, 1);
+ mi = e_menu_item_new(m);
+ e_menu_item_radio_set(mi, 1);
+ e_menu_item_radio_group_set(mi, 1);
+ e_menu_item_label_set(mi, "Radio 1 Group 1");
+ mi = e_menu_item_new(m);
+ e_menu_item_radio_set(mi, 1);
+ e_menu_item_radio_group_set(mi, 1);
+ e_menu_item_label_set(mi, "Radio 2 Group 1");
+ mi = e_menu_item_new(m);
+ e_menu_item_radio_set(mi, 1);
+ e_menu_item_radio_group_set(mi, 1);
+ e_menu_item_label_set(mi, "Radio 3 Group 1");
+ e_menu_item_icon_file_set(mi,
+ e_path_find(path_images, "e.png"));
+ mi = e_menu_item_new(m);
+ e_menu_item_separator_set(mi, 1);
+ mi = e_menu_item_new(m);
+ e_menu_item_radio_set(mi, 1);
+ e_menu_item_radio_group_set(mi, 2);
+ e_menu_item_label_set(mi, "Radio 1 Group 2");
+ mi = e_menu_item_new(m);
+ e_menu_item_radio_set(mi, 1);
+ e_menu_item_radio_group_set(mi, 2);
+ e_menu_item_label_set(mi, "Radio 2 Group 2");
+ }
+ e_menu_activate_mouse(m, con, ev->output.x, ev->output.y, 1, 1,
+ E_MENU_POP_DIRECTION_DOWN);
+ /* fake the up event as we will now grab the mouse to the menu */
+ e_util_container_fake_mouse_up_all_later(con);
+ }
+ else if (ev->button == 3)
+ {
+ E_Menu *m;
+
+ m = e_int_menus_about_new();
+ e_menu_activate_mouse(m, con, ev->output.x, ev->output.y, 1, 1,
+ E_MENU_POP_DIRECTION_DOWN);
+ e_util_container_fake_mouse_up_all_later(con);
+ }
+}
+
+static void
+_e_container_cb_bg_mouse_up(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+ E_Container *con;
+ Evas_Event_Mouse_Up *ev;
+
+ ev = (Evas_Event_Mouse_Up *)event_info;
+ con = data;
+}
+
+static void
+_e_container_cb_bg_mouse_move(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+ E_Container *con;
+ Evas_Event_Mouse_Move *ev;
+
+ ev = (Evas_Event_Mouse_Move *)event_info;
+ con = data;
+/* printf("move %i %i\n", ev->cur.output.x, ev->cur.output.y); */
+}
+
+static void
+_e_container_cb_bg_ecore_evas_resize(Ecore_Evas *ee)
+{
+ Evas *evas;
+ Evas_Object *o;
+ E_Container *con;
+ Evas_Coord w, h;
+
+ evas = ecore_evas_get(ee);
+ evas_output_viewport_get(evas, NULL, NULL, &w, &h);
+ o = evas_object_name_find(evas, "desktop/background");
+ con = evas_object_data_get(o, "e_container");
+ evas_object_resize(con->bg_object, w, h);
+ evas_object_resize(con->bg_event_object, w, h);
+}
+
+static void
+_e_container_shape_del(E_Container_Shape *es)
+{
+ _e_container_shape_change_call(es, E_CONTAINER_SHAPE_DEL);
+}
+
+static void
+_e_container_shape_free(E_Container_Shape *es)
+{
+ es->con->shapes = evas_list_remove(es->con->shapes, es);
+ while (es->shape)
+ {
+ E_Rect *r;
+
+ r = es->shape->data;
+ es->shape = evas_list_remove_list(es->shape, es->shape);
+ free(r);
+ }
+ free(es);
+}
+
+static void
+_e_container_shape_change_call(E_Container_Shape *es, E_Container_Shape_Change ch)
+{
+ Evas_List *l;
+
+ for (l = es->con->shape_change_cb; l; l = l->next)
+ {
+ E_Container_Shape_Callback *cb;
+
+ cb = l->data;
+ cb->func(cb->data, es, ch);
+ }
+}
diff --git a/src/bin/e_container.h b/src/bin/e_container.h
new file mode 100644
index 000000000..15146833a
--- /dev/null
+++ b/src/bin/e_container.h
@@ -0,0 +1,81 @@
+#ifndef E_CONTAINER_H
+#define E_CONTAINER_H
+
+typedef enum _E_Container_Shape_Change
+{
+ E_CONTAINER_SHAPE_ADD,
+ E_CONTAINER_SHAPE_DEL,
+ E_CONTAINER_SHAPE_SHOW,
+ E_CONTAINER_SHAPE_HIDE,
+ E_CONTAINER_SHAPE_MOVE,
+ E_CONTAINER_SHAPE_RESIZE,
+ E_CONTAINER_SHAPE_RECTS
+} E_Container_Shape_Change;
+
+typedef struct _E_Container E_Container;
+typedef struct _E_Container_Shape E_Container_Shape;
+typedef struct _E_Container_Shape_Callback E_Container_Shape_Callback;
+
+struct _E_Container
+{
+ E_Object e_obj_inherit;
+
+ Ecore_X_Window win;
+ int x, y, w, h;
+ char visible : 1;
+ E_Manager *manager;
+
+ Ecore_Evas *bg_ecore_evas;
+ Evas *bg_evas;
+ Ecore_X_Window bg_win;
+ Evas_Object *bg_blank_object;
+ Evas_Object *bg_object;
+ Evas_Object *bg_event_object;
+
+ Evas_List *shapes;
+ Evas_List *shape_change_cb;
+ Evas_List *clients;
+};
+
+struct _E_Container_Shape
+{
+ E_Object e_obj_inherit;
+
+ E_Container *con;
+ int x, y, w, h;
+ unsigned char visible : 1;
+ Evas_List *shape;
+};
+
+struct _E_Container_Shape_Callback
+{
+ void (*func) (void *data, E_Container_Shape *es, E_Container_Shape_Change ch);
+ void *data;
+};
+
+int e_container_init(void);
+int e_container_shutdown(void);
+
+E_Container *e_container_new(E_Manager *man);
+void e_container_show(E_Container *con);
+void e_container_hide(E_Container *con);
+void e_container_move(E_Container *con, int x, int y);
+void e_container_resize(E_Container *con, int w, int h);
+void e_container_move_resize(E_Container *con, int x, int y, int w, int h);
+void e_container_raise(E_Container *con);
+void e_container_lower(E_Container *con);
+void e_container_bg_reconfigure(E_Container *con);
+
+E_Container_Shape *e_container_shape_add(E_Container *con);
+void e_container_shape_show(E_Container_Shape *es);
+void e_container_shape_hide(E_Container_Shape *es);
+void e_container_shape_move(E_Container_Shape *es, int x, int y);
+void e_container_shape_resize(E_Container_Shape *es, int w, int h);
+Evas_List *e_container_shape_list_get(E_Container *con);
+void e_container_shape_geometry_get(E_Container_Shape *es, int *x, int *y, int *w, int *h);
+E_Container *e_container_shape_container_get(E_Container_Shape *es);
+void e_container_shape_change_callback_add(E_Container *con, void (*func) (void *data, E_Container_Shape *es, E_Container_Shape_Change ch), void *data);
+void e_container_shape_change_callback_del(E_Container *con, void (*func) (void *data, E_Container_Shape *es, E_Container_Shape_Change ch), void *data);
+Evas_List *e_container_shape_rects_get(E_Container_Shape *es);
+
+#endif
diff --git a/src/bin/e_desk.c b/src/bin/e_desk.c
new file mode 100644
index 000000000..1c816a6a0
--- /dev/null
+++ b/src/bin/e_desk.c
@@ -0,0 +1 @@
+#include "e.h"
diff --git a/src/bin/e_desk.h b/src/bin/e_desk.h
new file mode 100644
index 000000000..10410e6f5
--- /dev/null
+++ b/src/bin/e_desk.h
@@ -0,0 +1,4 @@
+#ifndef E_DESK_H
+#define E_DESK_H
+
+#endif
diff --git a/src/bin/e_error.c b/src/bin/e_error.c
new file mode 100644
index 000000000..af70192c9
--- /dev/null
+++ b/src/bin/e_error.c
@@ -0,0 +1,255 @@
+#include "e.h"
+
+/* TODO List:
+ *
+ * * edjify error dialogs if edje data can be found for them
+ * * current gui dialg needs to resize to fit contents if they are bigger
+ */
+
+/* local subsystem functions */
+static void _e_error_message_show_x(char *txt);
+
+static void _e_error_cb_ok_down(void *data, Evas *e, Evas_Object *obj, void *event_info);
+static void _e_error_cb_ok_up(void *data, Evas *e, Evas_Object *obj, void *event_info);
+static void _e_error_cb_job_ecore_evas_free(void *data);
+
+/* local subsystem globals */
+static int error_gui = 0;
+
+/* externally accessible functions */
+void
+e_error_message_show_internal(char *txt)
+{
+ printf("_______ _______\n"
+ "|:::::| Enlightenment Error |:::::|\n"
+ "~~~~~~~ ~~~~~~~\n"
+ "%s\n",
+ txt);
+ if (error_gui) _e_error_message_show_x(txt);
+}
+
+void
+e_error_dialog_show_internal(char *title, char *txt)
+{
+ Evas_List *l;
+ E_Manager *man;
+
+ l = e_manager_list();
+ if (!l) return;
+ man = l->data;
+ e_error_message_manager_show(man, title, txt);
+}
+
+void
+e_error_gui_set(int on)
+{
+ error_gui = on;
+}
+
+void
+e_error_message_manager_show(E_Manager *man, char *title, char *txt)
+{
+ Ecore_Evas *ee;
+ Evas *e;
+ int error_w, error_h;
+ Evas_List *l, *shapelist = NULL;
+
+ error_w = 400;
+ error_h = 200;
+ ee = ecore_evas_software_x11_new(NULL, man->win,
+ (man->w - error_w) / 2, (man->h - error_h) / 2,
+ error_w, error_h);
+ e_canvas_add(ee);
+ for (l = man->containers; l; l = l->next)
+ {
+ E_Container *con;
+ E_Container_Shape *es;
+ int x, y, w, h;
+
+ con = l->data;
+ ecore_evas_geometry_get(ee, &x, &y, &w, &h);
+ es = e_container_shape_add(con);
+ e_container_shape_move(es, x, y);
+ e_container_shape_resize(es, w, h);
+ e_container_shape_show(es);
+ shapelist = evas_list_append(shapelist, es);
+ }
+ ecore_evas_data_set(ee, "shapes", shapelist);
+ ecore_evas_name_class_set(ee, "E", "Low_Level_Dialog");
+ ecore_evas_title_set(ee, "Enlightenment: Low Level Dialog");
+ ecore_evas_show(ee);
+ e = ecore_evas_get(ee);
+ e_path_evas_append(path_fonts, e);
+ e_pointer_ecore_evas_set(ee);
+
+ {
+ Evas_Object *o;
+ Evas_Coord tw, th;
+ char *newstr;
+
+ o = evas_object_image_add(e);
+ evas_object_image_file_set(o, e_path_find(path_images, "error_bg.png"), NULL);
+ evas_object_move(o, 0, 0);
+ evas_object_image_fill_set(o, 0, 0, error_w, error_h);
+ evas_object_resize(o, error_w, error_h);
+ evas_object_image_border_set(o, 3, 3, 3, 3);
+ evas_object_pass_events_set(o, 1);
+ evas_object_show(o);
+
+ o = evas_object_image_add(e);
+ evas_object_image_file_set(o, e_path_find(path_images, "e.png"), NULL);
+ evas_object_move(o, 16, 16);
+ evas_object_resize(o, 64, 64);
+ evas_object_image_fill_set(o, 0, 0, 64, 64);
+ evas_object_pass_events_set(o, 1);
+ evas_object_show(o);
+
+ o = evas_object_text_add(e);
+ evas_object_color_set(o, 255, 255, 255, 128);
+ evas_object_text_font_set(o, "Vera-Bold", 12);
+ evas_object_text_text_set(o, title);
+ evas_object_geometry_get(o, NULL, NULL, &tw, &th);
+ evas_object_move(o,
+ (16 + 64 + 16 + (((400 - (16 + 64 + 16 + 16)) - tw) / 2)) + 1,
+ (16 + ((64 - th) / 2)) + 1);
+ evas_object_pass_events_set(o, 1);
+ evas_object_show(o);
+
+ o = evas_object_text_add(e);
+ evas_object_color_set(o, 0, 0, 0, 255);
+ evas_object_text_font_set(o, "Vera-Bold", 12);
+ evas_object_text_text_set(o, title);
+ evas_object_geometry_get(o, NULL, NULL, &tw, &th);
+ evas_object_move(o,
+ 16 + 64 + 16 + (((400 - (16 + 64 + 16 + 16)) - tw) / 2),
+ 16 + ((64 - th) / 2));
+ evas_object_pass_events_set(o, 1);
+ evas_object_show(o);
+
+ newstr = strdup(txt);
+ if (newstr)
+ {
+ char *p;
+ Evas_Coord y;
+
+ y = 16 + 64 + 16;
+ for (p = newstr; p;)
+ {
+ char *pp;
+
+ pp = strchr(p, '\n');
+ if (pp) *pp = 0;
+ o = evas_object_text_add(e);
+ evas_object_color_set(o, 255, 255, 255, 128);
+ evas_object_text_font_set(o, "Vera", 10);
+ evas_object_text_text_set(o, p);
+ evas_object_geometry_get(o, NULL, NULL, &tw, &th);
+ evas_object_move(o, 16 + 1, y + 1);
+ evas_object_pass_events_set(o, 1);
+ evas_object_show(o);
+
+ o = evas_object_text_add(e);
+ evas_object_color_set(o, 0, 0, 0, 255);
+ evas_object_text_font_set(o, "Vera", 10);
+ evas_object_text_text_set(o, p);
+ evas_object_geometry_get(o, NULL, NULL, &tw, &th);
+ evas_object_move(o, 16, y);
+ evas_object_pass_events_set(o, 1);
+ evas_object_show(o);
+ y += th;
+ if (pp) p = pp + 1;
+ else p = NULL;
+ }
+ free(newstr);
+ }
+
+ o = evas_object_image_add(e);
+ evas_object_image_file_set(o, e_path_find(path_images, "button_out.png"), NULL);
+ evas_object_move(o, (error_w - 64) / 2, error_h - 16 - 32);
+ evas_object_resize(o, 64, 32);
+ evas_object_image_fill_set(o, 0, 0, 64, 32);
+ evas_object_image_border_set(o, 8, 8, 8, 8);
+ evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, _e_error_cb_ok_down, ee);
+ evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_UP, _e_error_cb_ok_up, ee);
+ evas_object_show(o);
+
+ o = evas_object_text_add(e);
+ evas_object_color_set(o, 255, 255, 255, 128);
+ evas_object_text_font_set(o, "Vera-Bold", 12);
+ evas_object_text_text_set(o, "OK");
+ evas_object_geometry_get(o, NULL, NULL, &tw, &th);
+ evas_object_move(o, ((error_w - tw) / 2) + 1, (error_h - 16 - 32 + ((32 - th) / 2)) + 1);
+ evas_object_pass_events_set(o, 1);
+ evas_object_show(o);
+
+ o = evas_object_text_add(e);
+ evas_object_color_set(o, 0, 0, 0, 255);
+ evas_object_text_font_set(o, "Vera-Bold", 12);
+ evas_object_text_text_set(o, "OK");
+ evas_object_geometry_get(o, NULL, NULL, &tw, &th);
+ evas_object_move(o, (error_w - tw) / 2, error_h - 16 - 32 + ((32 - th) / 2));
+ evas_object_pass_events_set(o, 1);
+ evas_object_show(o);
+
+ o = evas_object_rectangle_add(e);
+ evas_object_name_set(o, "allocated");
+ }
+}
+
+/* local subsystem functions */
+static void
+_e_error_message_show_x(char *txt)
+{
+ e_error_dialog_show_internal("Enlightenment: Error!", txt);
+}
+
+static void
+_e_error_cb_ok_down(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ Evas_Event_Mouse_Down *ev;
+ Ecore_Evas *ee;
+
+ ev = event_info;
+ if (ev->button != 1) return;
+ ee = data;
+ evas_object_image_file_set(obj, e_path_find(path_images, "button_in.png"), NULL);
+}
+
+static void
+_e_error_cb_ok_up(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ Evas_Event_Mouse_Up *ev;
+ Ecore_Evas *ee;
+ Evas_Object *o;
+
+ ev = event_info;
+ if (ev->button != 1) return;
+ ee = data;
+ evas_object_image_file_set(obj, e_path_find(path_images, "button_out.png"), NULL);
+ o = evas_object_name_find(ecore_evas_get(ee), "allocated");
+ if (o)
+ {
+ evas_object_del(o);
+ ecore_job_add(_e_error_cb_job_ecore_evas_free, ee);
+ }
+}
+
+static void
+_e_error_cb_job_ecore_evas_free(void *data)
+{
+ Ecore_Evas *ee;
+ Evas_List *shapelist;
+
+ ee = data;
+ shapelist = ecore_evas_data_get(ee, "shapes");
+ while (shapelist)
+ {
+ E_Container_Shape *es;
+
+ es = shapelist->data;
+ shapelist = evas_list_remove_list(shapelist, shapelist);
+ e_object_del(E_OBJECT(es));
+ }
+ e_canvas_del(ee);
+ ecore_evas_free(ee);
+}
diff --git a/src/bin/e_error.h b/src/bin/e_error.h
new file mode 100644
index 000000000..0e1611281
--- /dev/null
+++ b/src/bin/e_error.h
@@ -0,0 +1,27 @@
+#ifndef E_ERROR_H
+#define E_ERROR_H
+
+#define print0(x, args...) x ,print1(## args)
+#define e_error_message_show(args...) \
+{ \
+ char __tmpbuf[4096]; \
+ \
+ snprintf(__tmpbuf, sizeof(__tmpbuf), ##args); \
+ e_error_message_show_internal(__tmpbuf); \
+}
+
+#define e_error_dialog_show(title, args...) \
+{ \
+ char __tmpbuf[4096]; \
+ \
+ snprintf(__tmpbuf, sizeof(__tmpbuf), ##args); \
+ e_error_dialog_show_internal(title, __tmpbuf); \
+}
+
+void e_error_message_show_internal(char *txt);
+void e_error_dialog_show_internal(char *title, char *txt);
+
+void e_error_gui_set(int on);
+void e_error_message_manager_show(E_Manager *man, char *title, char *txt);
+
+#endif
diff --git a/src/bin/e_file.c b/src/bin/e_file.c
new file mode 100644
index 000000000..5be651d8e
--- /dev/null
+++ b/src/bin/e_file.c
@@ -0,0 +1,204 @@
+#include "e.h"
+#include <dirent.h>
+
+/* externally accessible functions */
+time_t
+e_file_mod_time(char *file)
+{
+ struct stat st;
+
+ if (stat(file, &st) < 0) return 0;
+ return st.st_mtime;
+}
+
+int
+e_file_exists(char *file)
+{
+ struct stat st;
+
+ if (stat(file, &st) < 0) return 0;
+ return 1;
+}
+
+int
+e_file_is_dir(char *file)
+{
+ struct stat st;
+
+ if (stat(file, &st) < 0) return 0;
+ if (S_ISDIR(st.st_mode)) return 1;
+ return 0;
+}
+
+static mode_t default_mode = S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH;
+
+int
+e_file_mkdir(char *dir)
+{
+ if (mkdir(dir, default_mode) < 0) return 0;
+ return 1;
+}
+
+int
+e_file_mkpath(char *path)
+{
+ char ss[PATH_MAX];
+ int i, ii;
+
+ ss[0] = 0;
+ i = 0;
+ ii = 0;
+ while (path[i])
+ {
+ if (ii == sizeof(ss) - 1) return 0;
+ ss[ii++] = path[i];
+ ss[ii] = 0;
+ if (path[i] == '/')
+ {
+ if (!e_file_is_dir(ss)) e_file_mkdir(ss);
+ else if (!e_file_is_dir(ss)) return 0;
+ }
+ i++;
+ }
+ if (!e_file_is_dir(ss)) e_file_mkdir(ss);
+ else if (!e_file_is_dir(ss)) return 0;
+ return 1;
+}
+
+int
+e_file_cp(char *src, char *dst)
+{
+ FILE *f1, *f2;
+ char buf[16384];
+ size_t num;
+
+ f1 = fopen(src, "rb");
+ if (!f1) return 0;
+ f2 = fopen(dst, "wb");
+ if (!f2)
+ {
+ fclose(f1);
+ return 0;
+ }
+ while ((num = fread(buf, 1, 16384, f1)) > 0) fwrite(buf, 1, num, f2);
+ fclose(f1);
+ fclose(f2);
+ return 1;
+}
+
+char *
+e_file_realpath(char *file)
+{
+ char buf[PATH_MAX];
+ char *f;
+ struct stat st;
+
+ if (!realpath(file, buf) || stat(buf, &st)) return strdup("");
+ return strdup(buf);
+}
+
+char *
+e_file_get_file(char *path)
+{
+ char *result = NULL;
+
+ if (!path) return NULL;
+ if ((result = strrchr(path, '/'))) result++;
+ else result = path;
+ return result;
+}
+
+char *
+e_file_get_dir(char *file)
+{
+ char *p;
+ char *f;
+ char buf[PATH_MAX];
+
+ strncpy(buf, file, PATH_MAX);
+ p = strrchr(buf, '/');
+ if (!p)
+ {
+ return strdup(file);
+ }
+ *p = 0