aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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;
+ return strdup(buf);
+}
+
+int
+e_file_can_exec(struct stat *st)
+{
+ static int have_uid = 0;
+ static uid_t uid = -1;
+ static gid_t gid = -1;
+ int ok;
+
+ if (!st) return 0;
+ ok = 0;
+ if (!have_uid) uid = getuid();
+ if (!have_uid) gid = getgid();
+ have_uid = 1;
+ if (st->st_uid == uid)
+ {
+ if (st->st_mode & S_IXUSR) ok = 1;
+ }
+ else if (st->st_gid == gid)
+ {
+ if (st->st_mode & S_IXGRP) ok = 1;
+ }
+ else
+ {
+ if (st->st_mode & S_IXOTH) ok = 1;
+ }
+ return(ok);
+}
+
+char *
+e_file_readlink(char *link)
+{
+ char buf[PATH_MAX];
+ char *f;
+ int count;
+
+ if ((count = readlink(link, buf, sizeof(buf))) < 0) return NULL;
+ buf[count] = 0;
+ return strdup(buf);
+}
+
+Evas_List *
+e_file_ls(char *dir)
+{
+ DIR *dirp;
+ struct dirent *dp;
+ Evas_List *list;
+
+ dirp = opendir(dir);
+ if (!dirp) return NULL;
+ list = NULL;
+ while ((dp = readdir(dirp)))
+ {
+ if ((strcmp