From: Tilman Sauerbeck Date: Mon, 2 Oct 2006 08:09:42 +0000 (+0200) Subject: Initial commit. X-Git-Url: http://git.code-monkey.de/?p=euphoria.git;a=commitdiff_plain;h=1e4752ea4801aec7b6ff6c2fe5b09c3be2227c92 Initial commit. --- 1e4752ea4801aec7b6ff6c2fe5b09c3be2227c92 diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..5864b3d --- /dev/null +++ b/AUTHORS @@ -0,0 +1 @@ +Tilman Sauerbeck (tilman at code-monkey de) diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..838979c --- /dev/null +++ b/COPYING @@ -0,0 +1,21 @@ +Copyright (C) 2004 - 2005 Tilman Sauerbeck 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, its documentation and marketing & publicity +materials, and acknowledgment shall be given in the documentation, materials +and software packages that this Software was used. + +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/ChangeLog b/ChangeLog new file mode 100644 index 0000000..42948b6 --- /dev/null +++ b/ChangeLog @@ -0,0 +1,168 @@ +$Id: ChangeLog,v 1.2 2004/03/16 18:14:33 tsauerbeck Exp $ + +2004-03-16 Tilman Sauerbeck + * data/README, src/interface.c, src/euphoria.[ch], + src/callbacks.c: added support for vertical and inverted + seekers. + +2004-02-22 Tilman Sauerbeck + * This sweet application is a XMMS2 frontend now + +2004-02-15 Tilman Sauerbeck + * src/interface.c, src/playlist_item.[ch], src/plugin.h, + src/input/vorbis/vorbis.c: added bitrate and sample rate + parts + +2004-02-03 Tilman Sauerbeck + * src/playlist.c, src/playlist_item.c, src/callbacks.c: + The UI parts and playlist are now correctly re-initialized + after a group switch + +2004-02-01 Tilman Sauerbeck + * src/eplayer.c, src/interface.c, src/playlist.c, + src/playlist_item.c: Each PlayListItem object now + has its own Edje object + * data/README, src/eplayer.c: Added two signals, + PLAYBACK_STARTED and PLAYBACK_STOPPED + * src/callbacks.c: The playlist marker now always follows + the track that's being played + +2004-01-24 Tilman Sauerbeck + * src/eplayer.c, src/plugin.c: Switched to libltdl + * src/interface.c: added draggie support, removed the RAISE + signal. + +2003-12-28 Tilman Sauerbeck + * src/callbacks.c, src/playlist.c, src/interface.c, + data/README: Added PLAYLIST_ITEM_REMOVE (thanks to atmos). + +2003-12-07 Tilman Sauerbeck + * src/output/alsa/alsa.c: make sure changes made to the + mixer levels w/ other applications (like alsamixer) are + reflected in eplayer + * src/eplayer.c, src/track.c, src/interface.c: + update the track info parts etc on group switch + * src/interface.c, src/callbacks.[ch], data/README: + added STOP signal + +2003-12-04 Tilman Sauerbeck + * src/eplayer.c: eplayer.db lives in ~/.e/apps/eplayer now + * data/themes/default/default.edc: Added repeat mode toggle + button + +2003-11-30 Tilman Sauerbeck + * src/data/eplayer.edc: Added "small" (collapsed) mode + to the eplayer theme (thanks to digitalfallout!). + Fixed indentation as well. + +2003-11-24 Tilman Sauerbeck + * src/interface.[ch], scr/callbacks.[ch], data/README: + Added SWITCH_GROUP edje signal + +2003-11-18 Tilman Sauerbeck + * src/interface.c, src/eplayer.c, src/eplayer.h: + The theme that's to be used can now be set in eplayer.db + +2003-11-17 Tilman Sauerbeck + * src/playlist.c: Fixed playlist_load_dir() + * src/interface.c, data/README: + Added QUIT signal, thanks to digitalfallout + * src/interface.c, src/callbacks.c, data/README: + Updated playlist scrolling signals/code, added + PLAYLIST_ITEM_PLAY + +2003-11-15 Tilman Sauerbeck + * src/interface.c: Fixed playlist scrolling + * src/interface.c, src/callbacks.c, data/README: + Added repeat mode stuff + * src/interface.c, src/callbacks.c, data/eplayer.edc, + data/README: Simplified playlist code + +2003-11-14 Tilman Sauerbeck + * src/playlist.c, src/eplayer.c, src/interface.c: + The playlist is loaded/displayed after the GUI has been + initialized now. + +2003-11-10 Tilman Sauerbeck + * src/playlist.c: Misc fixes + * src/callbacks.c: Reset paused state on next/prev/seek + * data/README: Updated Edje documentation + +2003-10-25 Tilman Sauerbeck + * src/eplayer.c, src/track.c: Put the decoding/playing + code in a separate thread + +2003-10-24 Tilman Sauerbeck + * src/input/avcodec: Added libavcodec input plugin + * src/input/avcodec/avcodec.c: Now uses libavformat to read + MP3 tags. + +2003-10-23 Tilman Sauerbeck + * src/input: Added a input plugin system + * src/vorbis.c, src/input/vorbis: Move vorbis specific code + to its own plugin + +2003-10-22 Tilman Sauerbeck + * configure.ac: Fix OSS check, add checks for Solaris' audioio.h + and ALSA + * src/output/solaris: Added Solaris output plugin + * src/output/alsa: Added ALSA output plugin + * etc/Makefile.am, src/eplayer.c: We have a config file now + +2003-10-21 Tilman Sauerbeck + * configure.ac: check for sys/soundcard.h to determine whether + the OSS output plugin should be built + * src/vorbis.c, src/output: added output plugin stuff to replace + libao + * src/output/oss/oss.c: added OSS output plugin + * src/mixer.c, src/mixer.h: removed, mixer is controlled by the + output plugin now + * misc other stuff + +2003-10-18 Tilman Sauerbeck + * src/vorbis.c: track_open() initializes the "time_text" + part, too + * src/callbacks.c: when cb_track_next() is called after the + last playlist item, it moves to the beginning again, without + starting playback. + * src/callbacks.c: cb_track_prev() does nothing when it's + called on the beginning of the playlist + +2003-10-17 Tilman Sauerbeck + * src/mixer.c, src/mixer.h, src/eplayer.c, src/callbacks.c, + interface.c: + Rewrote mixer code, the mixer is periodically read now to + reflect changes made by other applications + * src/eplayer.c: Added _playback_start(), _playback_stop() + * src/vorbis.c: The "time" part is updated in a sane + period now + * src/vorbis.c, src/eplayer.c: Tidied up libao calls + * data/eplayer.edc: buttons emit their signals on mouse_up now + * src/vorbis.c: Fixed a memory leak which was caused by not + calling ao_close() in track_close() + * data/eplayer.edc, src/callbacks.c, src/interface.c: + The playlist can be scrolled using the mousewheel now + * src/eplayer.c: check ao_default_driver_id() on startup + +2003-10-16 Tilman Sauerbeck + * configure.ac: Added endianess-check, added --enable-debug + switch + * src/eplayer.c, src/playlist.c: added playlist_load_any(), + eplayer will now load files and directories as well + * code cleanup + * configure.ac, Makefile.am etc: implemented install and + dist targets + * src/playlist.c: Fixed a potential segfault + * src/vorbis.c: Fixed a segfault that occurred when + play_loop() called open_track() with player->cur_item + being NULL + +2003-10-15 Tilman Sauerbeck + * data/eplayer.edc: Added basic playlist support, + time_text shows elapsed time or time left + * src/Makefile.am: Now linking to libesmart, included playlist.c + and playlist.h + * src/playlist.c,h: Added playlist object + * src/eplayer.c, interface.c: Added basic playlist support + * autogen.sh, configure.ac, src/Makefile.am: + Updated build system diff --git a/NEWS b/NEWS new file mode 100644 index 0000000..53a90bf --- /dev/null +++ b/NEWS @@ -0,0 +1 @@ +Empty diff --git a/README b/README new file mode 100644 index 0000000..450f719 --- /dev/null +++ b/README @@ -0,0 +1,78 @@ +$Id: README,v 1.11 2005/05/21 08:39:19 tsauerbeck Exp $ + +Euphoria v0.8.0 + +Written by Tilman Sauerbeck and various contributors. +See AUTHORS for details/the complete list. + + +DEPENDENCIES +------------ + +Euphoria requires the following: + +Evas +Ecore +Edje +Esmart +XMMS2 +Ruby-EFL +Rake + + +ABOUT +------- + +Euphoria is an audio player which is based on Ecore, Evas and Edje. +It acts as a frontend to XMMS2. + +INSTALLATION OF EUPHORIA & XMMS2 +-------------------------------- + +To use build Euphoria you will need to first install XMMS2. +See http://wiki.xmms2.xmms.se for instructions. + +Now install Euphoria by running "rake install". + +At this point you're ready to rock. Start Euphoria but make sure +the XMMS2 Daemon is running. + +RUNNING EUPHORIA +---------------- + +For the time being (as of this writting) you need to manage your +play list using the CLI client. An example session would be: + +1) Open an Eterm and start the daemon so you can see debugging + information: "xmms2d" +2) Open an Eterm to control XMMS2, use the following commands: + $ xmms2 add /path/to/some/files + $ xmms2 add http://205.188.234.65:8022 + $ xmms2 list + (now the playlist has stuff in it) +3) Start Euphoria with no options. + +REPORTING BUGS +--------------- + +You can report bugs here: http://xcomputerman.com/bugs/ + + +FAQ +------- + +Q: Will you support WinAmp skins? +A: -> Nope.... go use XMMS(1) if you want traditional skins. +Refer to the first question. + +But I will admit that I have considered the possiblity of automating +the conversion of WinAmpv3 skins (.wal's) to Edje. +It doesn't look hard, and Edje can do everything and more that WinAmp +can do with it's interface, but in a far more general way. + +The problem is really just parsing all that XML (the WA skin config +files are now XML). With PERL there could probly be an easy conversion, +but if there is one thing I hate parsing it's XML. + +It would instantly make this audio player the player to use though! + diff --git a/Rakefile b/Rakefile new file mode 100644 index 0000000..b5fb11f --- /dev/null +++ b/Rakefile @@ -0,0 +1,37 @@ +# $Id: Rakefile,v 1.10 2005/06/14 16:41:52 tsauerbeck Exp $ + +require "rbconfig" +require "rake/clean" + +sitelibdir = ENV["RUBYLIBDIR"] || Config::CONFIG["sitelibdir"] +destdir = "#{ENV["DESTDIR"]}" +prefix = ENV["PREFIX"] || "/usr/local" + +themes = ["iio", "winter"].map do |t| + "data/themes/#{t}/#{t}.edj" +end + +CLOBBER.include(themes) + +task :default => :themes +task :themes => themes + +rule ".edj" => [".edc"] do |t| + Dir.chdir(File.dirname(t.source)) do + sh "edje_cc -id img -id images " + + "-fd ../../fonts -fd fonts #{File.basename(t.source)}" + end +end + +task :install => :themes do |t| + ddir = destdir + prefix + "/bin" + FileUtils::Verbose.install("bin/euphoria", ddir, :mode => 0755) + + ddir = destdir + sitelibdir + "/euphoria" + FileUtils::Verbose.mkdir_p(ddir) unless File.directory?(ddir) + FileUtils::Verbose.install(Dir["lib/*.rb"], ddir, :mode => 0644) + + ddir = destdir + prefix + "/share/euphoria/themes" + FileUtils::Verbose.mkdir_p(ddir) unless File.directory?(ddir) + FileUtils::Verbose.install(themes, ddir, :mode => 0644) +end diff --git a/TODO b/TODO new file mode 100644 index 0000000..22ce51e --- /dev/null +++ b/TODO @@ -0,0 +1,11 @@ +EDC Default Theme TODO: + +-> Fix default size of the time text in the "minimized version" -> DONE +-> Replace the ugly close button. -> DONE +-> Constrain double clicks to active minimized action only on the top "title bar" area. -> DONE +-> When switching from minimized to fullsize and back title, etc, aren't updated. + Also, the playlist doesn't redraw. +-> Holding down seek forward or back should seek in a loop. +-> Change the full size buttons to something with graphics instead of text and use diffrent buttons. +-> Add codec display to LCD +-> Fix push animations. diff --git a/bin/euphoria b/bin/euphoria new file mode 100644 index 0000000..707d9e0 --- /dev/null +++ b/bin/euphoria @@ -0,0 +1,402 @@ +#!/usr/bin/ruby -w + +# $Id: euphoria,v 1.41 2006/09/07 13:38:26 tilman Exp $ + +require "ecore" +require "ecore_x" +require "ecore_evas" +require "edje" +require "esmart" +require "esmart_draggies" +require "esmart_container" +require "xmmsclient" +require "xmmsclient_ecore" +require "singleton" +require "yaml" +require "find" +require "fileutils" + +require "euphoria/playlist" +require "euphoria/playlist_item" +require "euphoria/slider" +require "euphoria/volume_box" +require "euphoria/playtime_updater" +require "euphoria/playback_status_handler" +require "euphoria/file_dialog" + +Config = Struct.new("Config", :ipc_path, :theme, :time_display_elapsed) + +# backwards compatibility w/ DrFeelgood and earlier +unless Xmms.respond_to?(:userconfdir) + def Xmms.userconfdir + File.join(File.expand_path("~"), ".xmms2") + end +end + +class Euphoria + DATA_DIR = "/usr/local/share/euphoria" + DATA_DIR_PRIV = File.join(Xmms.userconfdir, + "clients", + "euphoria") + + include Singleton + + attr_reader :xmms, :ee, :edje + + def initialize + @edje = nil + @xmms = nil + @volume_box = nil + + # settings + unless File.directory?(DATA_DIR_PRIV) + FileUtils.mkdir_p(DATA_DIR_PRIV) + end + + @config_file = DATA_DIR_PRIV + "/config.yaml" + + load_config + init_xmms + init_gui + + blk = lambda { |item| ui_fill_track_info(item) } + @playlist = Playlist.new(@xmms, blk) + + setup_callbacks + + @playtime_updater = PlaytimeUpdater.new(xmms) do |current_pos| + ui_refresh_time(current_pos) + + # refresh the seeker + if !@playlist.current_item.nil? + d = @playlist.current_item.duration + if d > 0 + ui_refresh_seeker(current_pos / d.to_f) + end + end + end + + PlaybackStatusHandler.new(xmms) do |state| + @playback_state = state + + signal_playback_state + @playtime_updater.enabled = + (@playback_state == Xmms::Client::PLAY) + end + + # is repeat enabled? + s = @xmms.configval_get("playlist.repeat_all").wait.value + @repeat = (s == "1") + @edje.emit_signal("TOGGLE_REPEAT_MODE", "Euphoria") if @repeat + + @sliders = {} + + unless @edje.data("has_volume_slider").nil? + @sliders["volume"] = VolumeSlider.new(@edje, @xmms, + "player.slider.volume") + end + + if @edje.part_exists?("vol_display_text") + # FIXME Maybe rename the part to volume_box + @volume_box = VolumeBox.new(@edje, @xmms, "player.volumeBox") + end + +=begin + unless @edje.data("has_eq_slider").nil? + 1.upto(10) do |i| + p = "player.slider.eq.band%02i" % i + k = "equalizer.gain#{i - 1}" + @sliders[k] = EqSlider.new(@edje, @xmms, p, k) + end + end +=end + + handle_current_pos(@xmms.playlist_current_pos.wait) + end + + def show + if @edje.data("has_separate_playlist").nil? + @playlist.show(@theme, false) + end + + @ee.show + end + + def save_config + File.open(@config_file, "w") { |fo| YAML.dump(@config, fo) } + end + + def show_file_dialog + if @file_dialog_theme.nil? + puts "file dialog edje not found" + return + end + + FileDialog.open(@file_dialog_theme) do |sel| + if File.directory?(sel) + files = [] + Find.find(sel) { |f| files << f if File.file?(f) } + + files.sort.each do |f| + @xmms.playlist_add("file://" + f).wait + end + elsif File.exists?(sel) + @xmms.playlist_add("file://" + sel).wait + end + end + end + +private + def init_gui + @ee = Ecore::Evas::SoftwareX11.new + @ee.title = "Euphoria" + @ee.name_class = ["Euphoria", "Euphoria"] + @ee.borderless = true + + #@ee.evas.font_path_append("/usr/X11R6/lib/X11/fonts/TTF") + #@ee.evas.font_path_append(ENV["HOME"] + "/.fonts") + + @ee.on_pre_render { Edje::thaw } + @ee.on_post_render { Edje::freeze } + + @ee.on_resize do + x, y, w, h = @ee.geometry + + @edje.resize(w, h) + @dragger.resize(w, h) + end + + @dragger = Esmart::Draggies.new(@ee) + @dragger.name = "dragger" + @dragger.button = 1 + @dragger.show + + @theme = find_theme(@config.theme) + raise "Cannot find theme - #{@config.theme}" if @theme.nil? + + if Edje.collections(@theme).include?("esmart.filedialog") + @file_dialog_theme = @theme + else + @file_dialog_theme = find_theme("file_dialog") + end + + @edje = Edje::Edje.new(@ee.evas) + @edje.load(@theme, "euphoria") + @edje.name = "edje" + @edje.show + + w, h = @edje.get_size_max + @ee.set_size_max(w, h) + + w, h = @edje.get_size_min + @ee.set_size_min(w, h) + + @ee.resize(w, h) + + @ee.shaped = !@edje.data("shaped").nil? + + ui_refresh_seeker(0) + end + + def init_xmms + @xmms = Xmms::Client.new("Euphoria") + @xmms.connect(ENV["XMMS_PATH"] || @config.ipc_path) + @xmms.add_to_ecore_mainloop + + @xmms.on_disconnect do + puts "daemon exited, shutting down" + Ecore.main_loop_quit + end + end + + def setup_callbacks + @edje.on_signal("quit") do + Ecore::main_loop_quit + end + + @edje.on_signal("close") do + Ecore::main_loop_quit + end + + @edje.on_signal("playback.play") do + case @playback_state + when Xmms::Client::PLAY + @xmms.playback_stop.wait + sleep(0.5) # evil hack, fix xmms2d instead + @xmms.playback_start.wait + else + @xmms.playback_start.wait + end + end + + @edje.on_signal("playback.stop") do + @xmms.playback_stop.wait + end + + @edje.on_signal("playback.pause") do + case @playback_state + when Xmms::Client::PLAY + @xmms.playback_pause.wait + when Xmms::Client::PAUSE + @xmms.playback_start.wait + end + end + + @edje.on_signal("playback.next") do + @xmms.playlist_set_next_rel(1).wait + @xmms.playback_tickle.wait + + if @playback_state != Xmms::Client::PLAY + @xmms.playback_start.wait + end + end + + @edje.on_signal("playback.prev") do + @xmms.playlist_set_next_rel(-1).wait + @xmms.playback_tickle.wait + + if @playback_state != Xmms::Client::PLAY + @xmms.playback_start.wait + end + end + + @edje.on_signal("TOGGLE_TIME_DISPLAY_MODE") do + @config.time_display_elapsed = !@config.time_display_elapsed + end + + @edje.on_signal("DEBUG") do |sig, source| + puts source + end + + @edje.on_signal("playlist.open") { @playlist.show(@theme, true) } + + @edje.on_signal("file_dialog.open") do + show_file_dialog + end + + @edje.on_signal("TOGGLE_REPEAT_MODE") do |sig, source| + # don't react on our own emission + next if source == "Euphoria" + + @repeat = !@repeat + + v = @repeat ? "1" : "0" + @xmms.configval_set("playlist.repeat_all", v).wait + end + + @xmms.broadcast_configval_changed.notifier do |res| + k = res.value.keys.first + v = res.value.values.first + + case k + when "playlist.repeat_all" + tmp = (v == "1") + if tmp != @repeat + @repeat = tmp + @edje.emit_signal("TOGGLE_REPEAT_MODE", "Euphoria") + end + when /equalizer\.gain(\d+)/ + @sliders[k].value = v.to_f + end + end + + @xmms.broadcast_playback_volume_changed.notifier do |res| + if @edje.data("has_volume_slider") + @sliders["volume"].value = res.value + end + + if @edje.part_exists?("vol_display_text") + @volume_box.value = res.value + end + end + + @xmms.broadcast_playlist_current_pos.notifier do |res| + handle_current_pos(res) + end + end + + def handle_current_pos(res) + begin + pos = res.value + rescue Xmms::Result::ValueError + else + ui_fill_track_info(@playlist[pos]) + end + end + + def ui_fill_track_info(item) + unless item.nil? + if item.channel.nil? + msg = Edje::Message.new(0, item.artist, item.title, item.album) + else + msg = Edje::Message.new(0, "", item.title, "") + end + @edje.send_message(msg) + end + end + + def ui_refresh_time(time) + return unless @edje.part_exists?("player.time") + + fmt = "%i:%02i" + + unless @config.time_display_elapsed + time = @playlist.current_item.duration - time + fmt = "-" + fmt + end + + tmp = fmt % [time / 60, time % 60] + @edje.part("player.time").text = tmp + end + + def ui_refresh_seeker(pos) + if @edje.part_exists?("seeker") + @edje.part("seeker").set_drag_value(pos, 0.1) + #@edje.thaw + #@edje.evas.render + end + end + + def signal_playback_state + sig = case @playback_state + when Xmms::Client::PAUSE + "PLAYBACK_STATE_PAUSED" + when Xmms::Client::PLAY + "PLAYBACK_STATE_PLAYING" + else + "PLAYBACK_STATE_STOPPED" + end + + @edje.emit_signal(sig, "Euphoria") + end + + def load_config + @config = nil + + if File.exist?(@config_file) + File.open(@config_file) { |fo| @config = YAML.load(fo) } + end + + if @config.nil? || !@config.is_a?(Config) + @config = Config.new + @config.ipc_path = nil + @config.theme = "winter" + @config.time_display_elapsed = true + end + end + + def find_theme(name) + dirs = [DATA_DIR_PRIV, DATA_DIR] + dirs.each do |dir| + tmp = File.join(dir, "themes/#{name}.edj") + return tmp if File.exist?(tmp) + end + + nil + end +end + +$x = Euphoria.instance +Euphoria.instance.show +Ecore::main_loop_begin +Euphoria.instance.save_config diff --git a/data/fonts/Vera.ttf b/data/fonts/Vera.ttf new file mode 100644 index 0000000..58cd6b5 Binary files /dev/null and b/data/fonts/Vera.ttf differ diff --git a/data/fonts/micro.ttf b/data/fonts/micro.ttf new file mode 100644 index 0000000..a94ae16 Binary files /dev/null and b/data/fonts/micro.ttf differ diff --git a/data/fonts/redensek.ttf b/data/fonts/redensek.ttf new file mode 100644 index 0000000..a616653 Binary files /dev/null and b/data/fonts/redensek.ttf differ diff --git a/data/themes/common.inc b/data/themes/common.inc new file mode 100644 index 0000000..1a07e8f --- /dev/null +++ b/data/themes/common.inc @@ -0,0 +1,6 @@ +#if defined __COMMON_INC +#endinput +#endif +#define __COMMON_INC + +#define MSG_ID_SET_SONGNAME 0 diff --git a/data/themes/default/default.edc b/data/themes/default/default.edc new file mode 100644 index 0000000..23df4b9 --- /dev/null +++ b/data/themes/default/default.edc @@ -0,0 +1,50 @@ +/*****************************************************************/ +/* Euphoria Default Theme - by: Ben Rockwood */ +/* Design to pay homage to the awsome interface design */ +/* of the Native Instruments tools, namely Traktor */ +/*****************************************************************/ + +images { + #include "default_images.edc" +} + +collections { + group { + min, 300 60; + max, 300 60; + name, "euphoria_small"; + + parts { + #include "default_small_parts.edc" + } + programs { + #include "default_small_progs.edc" + } + } + + group { + min, 200 320; + max, 200 1280; + name, "euphoria"; + parts { + #include "default_parts.edc" + } + programs { + #include "default_progs.edc" + } + } + + group { + name, "playlist_item"; + min, 200 12; + max, 200 12; + + parts { + #include "default_playlist_parts.edc" + } + programs { + #include "default_playlist_progs.edc" + } + } +} + diff --git a/data/themes/default/default_images.edc b/data/themes/default/default_images.edc new file mode 100644 index 0000000..3d9bd61 --- /dev/null +++ b/data/themes/default/default_images.edc @@ -0,0 +1,57 @@ +/** Image Spec List: +background-dark-green.png: PNG image data, 32 x 32, 8-bit/color RGBA, non-interlaced +background-green.png: PNG image data, 30 x 30, 8-bit/color RGB, non-interlaced +border-scale.png: PNG image data, 28 x 28, 8-bit/color RGBA, non-interlaced +button-3stage-fulldown.png: PNG image data, 56 x 40, 8-bit/color RGBA, non-interlaced +button-3stage-selected.png: PNG image data, 56 x 40, 8-bit/color RGBA, non-interlaced +button-3stage-unselected.png: PNG image data, 56 x 40, 8-bit/color RGBA, non-interlaced +button-full-blinking.png: PNG image data, 56 x 40, 8-bit/color RGBA, non-interlaced +button-full-clicked.png: PNG image data, 56 x 40, 8-bit/color RGBA, non-interlaced +button-full-normal.png: PNG image data, 56 x 40, 8-bit/color RGBA, non-interlaced +button-full-unblinking.png: PNG image data, 56 x 40, 8-bit/color RGBA, non-interlaced +button-off.png: PNG image data, 57 x 20, 8-bit/color RGB, non-interlaced +button-on.png: PNG image data, 57 x 20, 8-bit/color RGB, non-interlaced +button-small-clicked.png: PNG image data, 28 x 20, 8-bit/color RGBA, non-interlaced +button-small-normal.png: PNG image data, 28 x 20, 8-bit/color RGBA, non-interlaced +close_button.png: PNG image data, 8 x 8, 8-bit/color RGBA, non-interlaced +controls-back.png: PNG image data, 37 x 19, 8-bit/color RGBA, non-interlaced +function-button-clicked.png: PNG image data, 54 x 20, 8-bit/color RGB, non-interlaced +function-button-normal.png: PNG image data, 54 x 20, 8-bit/color RGB, non-interlaced +lcd_area.png: PNG image data, 14 x 13, 8-bit/color RGB, non-interlaced +minimize.png: PNG image data, 7 x 2, 8-bit/color RGBA, non-interlaced +set-button-normal.png: PNG image data, 58 x 43, 8-bit/color RGB, non-interlaced +small-text-button.png: PNG image data, 34 x 20, 8-bit/color RGBA, non-interlaced +vol-display.png: PNG image data, 23 x 20, 8-bit/color RGBA, non-interlaced +vol-label.png: PNG image data, 21 x 20, 8-bit/color RGBA, non-interlaced +vol-minus-clicked.png: PNG image data, 29 x 20, 8-bit/color RGBA, non-interlaced +vol-minus.png: PNG image data, 29 x 20, 8-bit/color RGBA, non-interlaced +vol-plus-clicked.png: PNG image data, 25 x 20, 8-bit/color RGBA, non-interlaced +vol-plus.png: PNG image data, 25 x 20, 8-bit/color RGBA, non-interlaced + **/ + + image, "border-scale.png" RAW; + image, "button-full-clicked.png" RAW; + image, "button-full-normal.png" RAW; + image, "lcd_area.png" RAW; + image, "background-dark-green.png" RAW; + image, "controls-back.png" RAW; + image, "button-3stage-fulldown.png" RAW; + image, "button-3stage-selected.png" RAW; + image, "button-3stage-unselected.png" RAW; + image, "button-full-blinking.png" RAW; + image, "button-full-unblinking.png" RAW; + image, "vol-display.png" RAW; + image, "vol-label.png" RAW; + image, "vol-minus.png" RAW; + image, "vol-plus.png" RAW; + image, "vol-minus-clicked.png" RAW; + image, "vol-plus-clicked.png" RAW; + image, "small-text-button.png" RAW; + image, "button-small-normal.png" RAW; + image, "button-small-clicked.png" RAW; + image, "button-on.png" RAW; + image, "button-off.png" RAW; + image, "close_button.png" RAW; + image, "minimize.png" RAW; + image, "function-button-clicked.png" RAW; + image, "function-button-normal.png" RAW; diff --git a/data/themes/default/default_parts.edc b/data/themes/default/default_parts.edc new file mode 100644 index 0000000..eea2069 --- /dev/null +++ b/data/themes/default/default_parts.edc @@ -0,0 +1,1491 @@ +/*** Euphoria Default theme - by Ben Rockwood ***/ +/*** E D J E P A R T S ***/ + + part { + name, "background"; + mouse_events, 0; + type, IMAGE; + 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, "border-scale.png"; + border, 6 6 6 6; + } + + fill { + smooth, 0; + } + } + } + + part { + name, "title"; + type, TEXT; + //effect, SHADOW; + mouse_events, 1; + repeat_events, 1; + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 0 4; + } + rel2 { + relative, 1.0 0.0; + offset, -1 15; + } + color, 255 255 255 255; + text { + text, "Euphoria"; + font, "Vera"; /* Only font Vera works! Use other and segv */ + size, 8; /* Font Size */ + align, 0.5 1.0; /* Text alignment based on rel1/rel2 */ + } + } + } + + part { + name, "titlebar"; + type, RECT; + mouse_events, 1; + repeat_events, 1; + + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 0 0; + } + + rel2 { + relative, 1.0 0.0; + offset, -1 16; + } + + color, 0 0 0 0; + } + + } + + part { + name, "quit"; + type, IMAGE; + mouse_events, 1; + description { + state, "default" 0.0; + + rel1 { + relative, 1.0 0.0; + offset, -15 4; + } + + rel2 { + relative, 1.0 0.0; + offset, -8 11; + } + + image { + normal, "close_button.png"; + } + + fill { + smooth, 0; + } + } + } + + + /* LCD Backdrop Image */ + part { + name, "lcd_backdrop"; + type, IMAGE; + mouse_events, 0; + description { + state, "default" 0.0; + + /* Part should fill from the far left, 20 pixels down */ + rel1 { + relative, 0.0 0.0; + offset, 5 16; + } + + /* all the way to the far right, 40 pixels north of the bottom right corner */ + rel2 { + relative, 1.0 0.0; + offset, -6 81; + } + + image { + normal, "lcd_area.png"; + border, 5 5 5 5; + } + + fill { + smooth, 0; + } + } + } + + /* LCD Clipping Area - Invisible Rect */ + part { + name, "lcd_clip"; + type, RECT; + mouse_events, 0; + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 5 5; + to, "lcd_backdrop"; + } + + rel2 { + relative, 1.0 1.0; + offset, -5 -5; + to, "lcd_backdrop"; + } + //color, 0 0 0 0; + + } + } + part { + name, "artist_name"; + type, TEXT; + //effect, SOFT_OUTLINE; + mouse_events, 0; + clip_to, "lcd_clip"; + description { + state, "default" 0.0; + + /* Use the relative size of the LCD itself, then position with align */ + rel1 { + relative, 0.0 0.0; + offset, 8 0; + to, "lcd_backdrop"; + } + + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "lcd_backdrop"; + } + + + color, 181 247 255 255; + text { + text, "Artist Name"; /* Text String */ + font, "redensek"; /* Only font Vera works! Use other and segv */ + size, 12; /* Font Size */ + align, 0.0 0.1; /* Text alignment based on rel1/rel2 */ + } + } + } + + part { + name, "album_name"; + type, TEXT; + //effect, SOFT_OUTLINE; + mouse_events, 0; + clip_to, "lcd_clip"; + description { + state, "default" 0.0; + + /* Use the relative size of the LCD itself, then position with align */ + rel1 { + relative, 0.0 0.0; + offset, 8 0; + to, "lcd_backdrop"; + } + + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "lcd_backdrop"; + } + + + color, 181 247 255 255; + text { + text, "Album Name"; /* Text String */ + font, "redensek"; /* Only font Vera works! Use other and segv */ + size, 12; /* Font Size */ + align, 0.0 0.3; /* Text alignment based on rel1/rel2 */ + } + } + } + part { + name, "song_name"; + type, TEXT; + //effect, SOFT_OUTLINE; + mouse_events, 0; + clip_to, "lcd_clip"; + description { + state, "default" 0.0; + + /* Use the relative size of the LCD itself, then position with align */ + rel1 { + relative, 0.0 0.0; + offset, 8 0; + to, "lcd_backdrop"; + } + + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "lcd_backdrop"; + } + + + color, 181 247 255 255; + text { + text, "Song Name"; /* Text String */ + font, "redensek"; /* Only font Vera works! Use other and segv */ + size, 12; /* Font Size */ + align, 0.0 0.5; /* Text alignment based on rel1/rel2 */ + } + } + } + + /* Time Counter */ + part { + name, "time_text"; + type, TEXT; + //effect, OUTLINE_SOFT_SHADOW; + clip_to, "lcd_clip"; + mouse_events, 1; + description { + state, "default" 0.0; + + /* Use the relative size of the LCD itself, then position with align */ + rel1 { + relative, 0.0 0.0; + offset, 0 0; + to, "lcd_backdrop"; + } + + rel2 { + relative, 1.0 1.0; + offset, -9 -1; + to, "lcd_backdrop"; + } + + + color, 181 247 255 255; + text { + text, "0:00"; /* Text String */ + font, "micro"; /* Only font Vera works! Use other and segv */ + size, 26; /* Font Size */ + align, 1.0 1.0; /* Text alignment based on rel1/rel2 */ + } + } + } + + + /************* Buttons *******************************/ + /* Button Area */ + part { + name, "button_background"; + type, IMAGE; + mouse_events, 0; + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 1.0; + offset, 1 5; + to, "lcd_backdrop"; + } + + rel2 { + relative, 1.0 1.0; + offset, 0 100; + to, "lcd_backdrop"; + } + + image { + normal, "controls-back.png"; + border, 5 5 5 5; + } + + + fill { + smooth, 0; + } + } + } + + + /* Previous Button */ + part { + name, "previous_button"; + mouse_events, 1; + description { + state, "default" 0.0; + min, 56 40; + max, 56 40; + + rel1 { + relative, 0.0 0.0; + offset, 5 5; + to, "button_background"; + } + rel2 { + relative, 0.0 0.0; + offset, 61 45; + to, "button_background"; + } + image { + normal, "button-full-normal.png"; + } + } + + description { + state, "clicked" 0.0; + min, 56 40; + max, 56 40; + + rel1 { + relative, 0.0 0.0; + offset, 5 5; + to, "button_background"; + } + rel2 { + relative, 0.0 0.0; + offset, 61 45; + to, "button_background"; + } + + image { + normal, "button-full-clicked.png"; + } + } + + } + /* Play Button */ + part { + name, "play_button"; + mouse_events, 1; + description { + state, "default" 0.0; + min, 56 40; + max, 56 40; + align, 0.5 0.0; + + rel1 { + relative, 1.0 0.0; + offset, 0 0; + to, "previous_button"; + } + rel2 { + relative, 0.0 1.0; + offset, -0 -0; + to, "next_button"; + } + image { + normal, "button-full-normal.png"; + } + } + description { + state, "clicked" 0.0; + min, 56 40; + max, 56 40; + align, 0.5 0.0; + + rel1 { + relative, 1.0 0.0; + offset, 0 0; + to, "previous_button"; + } + rel2 { + relative, 0.0 1.0; + offset, -0 -0; + to, "next_button"; + } + + image { + normal, "button-full-clicked.png"; + } + } + description { + state, "blink" 0.0; + min, 56 40; + max, 56 40; + align, 0.5 0.0; + + rel1 { + relative, 1.0 0.0; + offset, 0 0; + to, "previous_button"; + } + rel2 { + relative, 0.0 1.0; + offset, -0 -0; + to, "next_button"; + } + + image { + normal, "button-full-blinking.png"; + tween, "button-full-unblinking.png"; + } + } + + } + + /* Next Button */ + part { + name, "next_button"; + mouse_events, 1; + description { + state, "default" 0.0; + min, 56 40; + max, 56 40; + + rel1 { + relative, 1.0 0.0; + offset, -61 5; + to, "button_background"; + } + rel2 { + relative, 1.0 0.0; + offset, -5 45; + to, "button_background"; + } + image { + normal, "button-full-normal.png"; + } + } + description { + state, "clicked" 0.0; + min, 56 40; + max, 56 40; + + rel1 { + relative, 1.0 0.0; + offset, -61 5; + to, "button_background"; + } + rel2 { + relative, 1.0 0.0; + offset, -5 45; + to, "button_background"; + } + image { + normal, "button-full-clicked.png"; + } + } + } + + /* Seekback Button */ + part { + name, "seekback_button"; + mouse_events, 1; + description { + state, "default" 0.0; + min, 56 40; + max, 56 40; + visible, 1; + + rel1 { + relative, 0.0 0.0; + offset, 5 50; + to, "button_background"; + } + rel2 { + relative, 0.0 0.0; + offset, 61 90; + to, "button_background"; + } + + image { + normal, "button-full-normal.png"; + } + } + description { + state, "clicked" 0.0; + min, 56 40; + max, 56 40; + visible, 1; + + rel1 { + relative, 0.0 0.0; + offset, 5 50; + to, "button_background"; + } + rel2 { + relative, 0.0 0.0; + offset, 61 90; + to, "button_background"; + } + + image { + normal, "button-full-clicked.png"; + } + } + } + + /* Pause Button */ + part { + name, "pause_button"; + mouse_events, 1; + description { + state, "default" 0.0; + min, 56 40; + max, 56 40; + visible, 1; + + rel1 { + relative, 1.0 0.0; + offset, 0 0; + to, "seekback_button"; + } + rel2 { + relative, 0.0 1.0; + offset, -0 -0; + to, "seekforward_button"; + } + + image { + normal, "button-3stage-unselected.png"; + tween, "button-3stage-fulldown.png"; + } + } + description { + state, "clicked" 0.0; + min, 56 40; + max, 56 40; + visible, 1; + + rel1 { + relative, 1.0 0.0; + offset, 0 0; + to, "seekback_button"; + } + rel2 { + relative, 0.0 1.0; + offset, -0 -0; + to, "seekforward_button"; + } + + image { + normal, "button-3stage-selected.png"; + tween, "button-3stage-fulldown.png"; + } + } + description { + state, "blink" 0.0; + min, 56 40; + max, 56 40; + visible, 1; + + rel1 { + relative, 1.0 0.0; + offset, 0 0; + to, "seekback_button"; + } + rel2 { + relative, 0.0 1.0; + offset, -0 -0; + to, "seekforward_button"; + } + + image { + normal, "button-full-blinking.png"; + tween, "button-full-unblinking.png"; + } + } + } + /* Seekforward Button */ + part { + name, "seekforward_button"; + mouse_events, 1; + description { + state, "default" 0.0; + min, 56 40; + max, 56 40; + visible, 1; + + rel1 { + relative, 1.0 0.0; + offset, -61 50; + to, "button_background"; + } + rel2 { + relative, 1.0 0.0; + offset, -5 90; + to, "button_background"; + } + + image { + normal, "button-full-normal.png"; + } + } + description { + state, "clicked" 0.0; + min, 56 40; + max, 56 40; + visible, 1; + + rel1 { + relative, 1.0 0.0; + offset, -61 50; + to, "button_background"; + } + rel2 { + relative, 1.0 0.0; + offset, -5 90; + to, "button_background"; + } + + image { + normal, "button-full-clicked.png"; + } + } + } + + /***************** BUTTON TEXT ELEMENTS *******************************/ + part { + name, "previous_text"; + type, TEXT; + //effect, SOFT_SHADOW; + mouse_events, 0; /* Does part accept mouse events? */ + // clip_to, "previous_button"; /* Clip anything outside of the specified object */ + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 0 0; + to, "previous_button"; + } + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "previous_button"; + } + + + color, 255 255 255 255; /* Color of text */ + color2, 0 0 255 255; /* Does nothing for SOFT_SHADOW */ + color3, 0 0 0 32; /* Color of shadow */ + + text { + text, "Previous"; /* Text String */ + font, "Vera"; /* Only font Vera works! Use other and segv */ + size, 6; /* Font Size */ + align, 0.5 0.5; /* Text alignment based on rel1/rel2 */ + } + } + } + + part { + name, "play_text"; + type, TEXT; + //effect, SOFT_SHADOW; + mouse_events, 0; /* Does part accept mouse events? */ + // clip_to, "play_button"; /* Clip anything outside of the specified object */ + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 0 0; + to, "play_button"; + } + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "play_button"; + } + + + color, 255 255 255 255; /* Color of text */ + color2, 0 0 255 255; /* Does nothing for SOFT_SHADOW */ + color3, 0 0 0 32; /* Color of shadow */ + + text { + text, "Play"; /* Text String */ + font, "Vera"; /* Only font Vera works! Use other and segv */ + size, 6; /* Font Size */ + align, 0.5 0.5; /* Text alignment based on rel1/rel2 */ + } + } + } + + part { + name, "next_text"; + type, TEXT; + //effect, SOFT_SHADOW; + mouse_events, 0; /* Does part accept mouse events? */ + // clip_to, "next_button"; /* Clip anything outside of the specified object */ + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 0 0; + to, "next_button"; + } + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "next_button"; + } + + + color, 255 255 255 255; /* Color of text */ + color2, 0 0 255 255; /* Does nothing for SOFT_SHADOW */ + color3, 0 0 0 32; /* Color of shadow */ + + text { + text, "Next"; /* Text String */ + font, "Vera"; /* Only font Vera works! Use other and segv */ + size, 6; /* Font Size */ + align, 0.5 0.5; /* Text alignment based on rel1/rel2 */ + } + } + } + + part { + name, "seekback_text"; + type, TEXT; + //effect, SOFT_SHADOW; + mouse_events, 0; /* Does part accept mouse events? */ + // clip_to, "seekback_button"; /* Clip anything outside of the specified object */ + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 0 0; + to, "seekback_button"; + } + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "seekback_button"; + } + + + color, 255 255 255 255; /* Color of text */ + color2, 0 0 255 255; /* Does nothing for SOFT_SHADOW */ + color3, 0 0 0 32; /* Color of shadow */ + + text { + text, "<<"; /* Text String */ + font, "Vera"; /* Only font Vera works! Use other and segv */ + size, 6; /* Font Size */ + align, 0.5 0.5; /* Text alignment based on rel1/rel2 */ + } + } + } + + part { + name, "pause_text"; + type, TEXT; + //effect, SOFT_SHADOW; + mouse_events, 0; /* Does part accept mouse events? */ + // clip_to, "pause_button"; /* Clip anything outside of the specified object */ + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 0 0; + to, "pause_button"; + } + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "pause_button"; + } + + + color, 255 255 255 255; /* Color of text */ + color2, 0 0 255 255; /* Does nothing for SOFT_SHADOW */ + color3, 0 0 0 32; /* Color of shadow */ + + text { + text, "Pause"; /* Text String */ + font, "Vera"; /* Only font Vera works! Use other and segv */ + size, 6; /* Font Size */ + align, 0.5 0.5; /* Text alignment based on rel1/rel2 */ + } + } + } + + part { + name, "seekforward_text"; + type, TEXT; + //effect, SOFT_SHADOW; + mouse_events, 0; /* Does part accept mouse events? */ + // clip_to, "seekforward_button"; /* Clip anything outside of the specified object */ + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 0 0; + to, "seekforward_button"; + } + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "seekforward_button"; + } + + + color, 255 255 255 255; /* Color of text */ + color2, 0 0 255 255; /* Does nothing for SOFT_SHADOW */ + color3, 0 0 0 32; /* Color of shadow */ + + text { + text, ">>"; /* Text String */ + font, "Vera"; /* Only font Vera works! Use other and segv */ + size, 6; /* Font Size */ + align, 0.5 0.5; /* Text alignment based on rel1/rel2 */ + } + } + } + + part { + name, "repeat_toggle_disabled_img"; + type, IMAGE; + mouse_events, 1; + + description { + state, "default" 0.0; + visible, 1; + min, 57 20; + max, 57 20; + + rel1 { + relative, 0.0 1.0; + offset, 25 28; + to, "button_background"; + } + + rel2 { + relative, 0.25 1.0; + offset, 0 0; + to, "button_background"; + } + + image { + normal, "button-off.png"; + } + } + + description { + state, "disabled" 0.0; + inherit, "default" 0.0; + visible, 0; + } + } + + part { + name, "repeat_toggle_enabled_img"; + + description { + state, "default" 0.0; + min, 57 20; + max, 57 20; + visible, 0; + + rel1 { + relative, 0.0 1.0; + offset, 25 28; + to, "button_background"; + } + + rel2 { + relative, 0.25 1.0; + offset, 0 0; + to, "button_background"; + } + + image { + normal, "button-on.png"; + } + } + + description { + state, "enabled" 0.0; + inherit: "default" 0.0; + visible, 1; + } + } + part { + name, "repeat_toggle_label"; + type, TEXT; + mouse_events, 0; + + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 0 0; + to, "repeat_toggle_disabled_img"; + } + + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "repeat_toggle_disabled_img"; + } + + color, 0 0 0 255; + + text { + text, "REPEAT"; + font, "Vera"; + size, 5; + align, 0.5 0.6; + } + } + } + + /********** Volume Controls ***************************************/ + part { + name, "vol_label"; + mouse_events, 0; + description { + state, "default" 0.0; + min, 21 20; + max, 21 20; + + rel1 { + relative, 1.0 1.0; + offset, -21 4; + to, "button_background"; + } + rel2 { + relative, 1.0 1.0; + offset, 0 24; + to, "button_background"; + } + + image { + normal, "vol-label.png"; + } + } + } + + part { + name, "vol_label_text"; + type, TEXT; + mouse_events, 0; /* Does part accept mouse events? */ + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 0 0; + to, "vol_label"; + } + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "vol_label"; + } + + + color, 255 255 255 255; /* Color of text */ + color2, 0 0 255 255; /* Does nothing for SOFT_SHADOW */ + color3, 0 0 0 32; /* Color of shadow */ + + text { + text, "VOL"; /* Text String */ + font, "Vera"; /* Only font Vera works! Use other and segv */ + size, 5; /* Font Size */ + align, 0.5 0.6; /* Text alignment based on rel1/rel2 */ + } + } + } + + part { + name, "vol_display"; + mouse_events, 0; + description { + state, "default" 0.0; + min, 23 20; + max, 23 20; + + rel1 { + relative, 0.0 0.0; + offset, -23 0; + to, "vol_label"; + } + rel2 { + relative, 0.0 1.0; + offset, 0 0; + to, "vol_label"; + } + + image { + normal, "vol-display.png"; + } + } + } + + part { + name, "vol_display_text"; + type, TEXT; + //clip_to, "vol_display"; + description { + state, "default" 0.0; + + /* Use the relative size of the LCD itself, then position with align */ + rel1 { + relative, 0.0 0.0; + offset, 0 0; + to, "vol_display"; + } + + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "vol_display"; + } + + + color, 181 247 255 255; + text { + text, "00"; /* Text String */ + font, "Vera"; /* Only font Vera works! Use other and segv */ + size, 8; /* Font Size */ + align, 0.5 0.6; /* Text alignment based on rel1/rel2 */ + } + } + } + + part { + name, "vol_incr_button"; + mouse_events, 1; + description { + state, "default" 0.0; + min, 25 20; + max, 25 20; + + rel1 { + relative, 0.0 0.0; + offset, -25 0; + to, "vol_display"; + } + rel2 { + relative, 0.0 1.0; + offset, 0 0; + to, "vol_display"; + } + + image { + normal, "vol-plus.png"; + } + } + description { + state, "clicked" 0.0; + min, 25 20; + max, 25 20; + + rel1 { + relative, 0.0 0.0; + offset, -25 0; + to, "vol_display"; + } + rel2 { + relative, 0.0 1.0; + offset, 0 0; + to, "vol_display"; + } + + image { + normal, "vol-plus-clicked.png"; + } + } + } + + part { + name, "vol_decr_button"; + mouse_events, 1; + description { + state, "default" 0.0; + min, 29 20; + max, 29 20; + + rel1 { + relative, 0.0 0.0; + offset, -29 0; + to, "vol_incr_button"; + } + rel2 { + relative, 0.0 1.0; + offset, 0 0; + to, "vol_incr_button"; + } + + image { + normal, "vol-minus.png"; + } + } + description { + state, "clicked" 0.0; + min, 29 20; + max, 29 20; + + rel1 { + relative, 0.0 0.0; + offset, -29 0; + to, "vol_incr_button"; + } + rel2 { + relative, 0.0 1.0; + offset, 0 0; + to, "vol_incr_button"; + } + + image { + normal, "vol-minus-clicked.png"; + } + } + } + + /************ PLAYLIST **************************************************/ + + /* LCD Playlist Backdrop Image */ + part { + name, "playlist_backdrop"; + type, IMAGE; + mouse_events, 0; + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 5 210; + } + + rel2 { + relative, 1.0 1.0; + offset, -6 -24; + } + + image { + normal, "lcd_area.png"; + border, 5 5 5 5; + } + + fill { + smooth, 0; + } + } + } + + part { + name, "playlist"; + type, RECT; + mouse_events, 1; + + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 8 5; + to, "playlist_backdrop"; + } + + rel2 { + relative, 1.0 1.0; + offset, -6 -6; + to, "playlist_backdrop"; + } + color, 0 0 0 0; + } + } + + /********* PLAYLIST CONTROLS ****************************/ + /* Button Area */ + part { + name, "controls_background"; + type, IMAGE; + mouse_events, 0; + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 1.0; + offset, 0 1; + to, "playlist_backdrop"; + } + + rel2 { + relative, 1.0 1.0; + offset, -6 -3; + //to, "playlist_backdrop"; + } + + image { + normal, "controls-back.png"; + border, 5 5 5 5; + } + + fill { + smooth, 0; + } + } + } + + part { + name, "add_button"; + type, IMAGE; + mouse_events, 1; + + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 1.0; + offset, 2 2; + to, "playlist_backdrop"; + } + + rel2 { + relative, 0.0 1.0; + offset, 56 20; + to, "playlist_backdrop"; + } + + + image { + normal, "function-button-normal.png"; + border, 5 5 5 5; + } + } + description { + state, "clicked" 0.0; + + rel1 { + relative, 0.0 1.0; + offset, 2 2; + to, "playlist_backdrop"; + } + + rel2 { + relative, 0.0 1.0; + offset, 56 20; + to, "playlist_backdrop"; + } + + image { + normal, "function-button-clicked.png"; + border, 5 5 5 5; + } + } + } + + part { + name, "del_button"; + type, IMAGE; + mouse_events, 1; + + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 1.0; + offset, 67 2; + to, "playlist_backdrop"; + } + + rel2 { + relative, 0.0 1.0; + offset, 121 20; + to, "playlist_backdrop"; + } + + image { + normal, "function-button-normal.png"; + border, 5 5 5 5; + } + } + description { + state, "clicked" 0.0; + + rel1 { + relative, 0.0 1.0; + offset, 67 2; + to, "playlist_backdrop"; + } + + rel2 { + relative, 0.0 1.0; + offset, 121 20; + to, "playlist_backdrop"; + } + + image { + normal, "function-button-clicked.png"; + border, 5 5 5 5; + } + } + } + + part { + name, "edit_button"; + type, IMAGE; + mouse_events, 1; + + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 1.0; + offset, 132 2; + to, "playlist_backdrop"; + } + + rel2 { + relative, 0.0 1.0; + offset, 188 20; + to, "playlist_backdrop"; + } + + image { + normal, "function-button-normal.png"; + border, 5 5 5 5; + } + } + description { + state, "clicked" 0.0; + + rel1 { + relative, 0.0 1.0; + offset, 132 2; + to, "playlist_backdrop"; + } + + rel2 { + relative, 0.0 1.0; + offset, 188 20; + to, "playlist_backdrop"; + } + + image { + normal, "function-button-clicked.png"; + border, 5 5 5 5; + } + } + } + + /*** CONTROL TEXT ***/ + + part { + name, "add_text"; + type, TEXT; + mouse_events, 0; + + description { + state, "default" 0.0; + visible, 1; + + rel1 { + relative, 0.0 0.0; + offset, 0 0; + to, "add_button"; + } + + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "add_button"; + } + + text { + text, "Add"; + font, "Vera"; + size, 6; + align, 0.5 0.7; + } + + color, 255 255 255 255; + } + } + + part { + name, "del_text"; + type, TEXT; + mouse_events, 0; + + description { + state, "default" 0.0; + visible, 1; + + rel1 { + relative, 0.0 0.0; + offset, 0 0; + to, "del_button"; + } + + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "del_button"; + } + + text { + text, "Delete"; + font, "Vera"; + size, 6; + align, 0.5 0.7; + } + + color, 255 255 255 255; + } + } + + part { + name, "edit_text"; + type, TEXT; + mouse_events, 0; + + description { + state, "default" 0.0; + visible, 1; + + rel1 { + relative, 0.0 0.0; + offset, 0 0; + to, "edit_button"; + } + + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "edit_button"; + } + + text { + text, "Edit"; + font, "Vera"; + size, 6; + align, 0.5 0.7; + } + + color, 255 255 255 255; + } + } + + +/************ FIN ***************/ diff --git a/data/themes/default/default_playlist_parts.edc b/data/themes/default/default_playlist_parts.edc new file mode 100644 index 0000000..ea3896c --- /dev/null +++ b/data/themes/default/default_playlist_parts.edc @@ -0,0 +1,67 @@ +/*** Euphoria Default theme - by Ben Rockwood ***/ +/*** Playlist Item Parts ***/ + + + part { + name, "clip"; + type, RECT; + + description { + state, "default" 0.0; + } + } + + part { + name, "background"; + type, RECT; + clip_to, "clip"; + + description { + state, "default" 0.0; + color, 0 0 0 0; + } + + description { + state, "selected" 0.0; + color, 73 104 111 128; + } + } + + part { + name, "title"; + type, TEXT; + mouse_events, 1; + clip_to, "clip"; + + description { + color, 181 247 255 255; + align, 0.0 0.0; + max, 150 12; + + text { + text, "Dummy"; + font, "redensek"; + size, 12; + align, 0.0 0.0; + } + } + } + + part { + name, "length"; + type, TEXT; + mouse_events, 1; + clip_to, "clip"; + + description { + color, 181 247 255 255; + + text { + text, "2:55"; + font, "redensek"; + size, 12; + align, 1.0 0.0; + } + } + } + diff --git a/data/themes/default/default_playlist_progs.edc b/data/themes/default/default_playlist_progs.edc new file mode 100644 index 0000000..3dbadd9 --- /dev/null +++ b/data/themes/default/default_playlist_progs.edc @@ -0,0 +1,49 @@ +/*** Euphoria Default theme - by Ben Rockwood ***/ +/*** Playlist Item Programs ***/ + + program { + name, "selected_mouse"; + signal, "mouse,clicked,1"; + source, "*"; + action, SIGNAL_EMIT "PLAYLIST_ITEM_SELECTED" ""; + } + + program { + name, "selected"; + signal, "PLAYLIST_ITEM_SELECTED"; + source, ""; + action, STATE_SET "selected" 0.0; + transition, LINEAR 0.2; + target, "background"; + } + + program { + name, "unselected"; + signal, "PLAYLIST_ITEM_UNSELECTED"; + source, ""; + action, STATE_SET "default" 0.0; + transition, LINEAR 0.2; + target, "background"; + } + + program { + name, "dbl_clicked"; + signal, "mouse,down,1,double"; + source, "*"; + action, SIGNAL_EMIT "PLAYLIST_ITEM_PLAY" ""; + } + + program { + name, "scroll_up"; + signal, "mouse,wheel,0,-1"; + source, "*"; + action, SIGNAL_EMIT "PLAYLIST_SCROLL_UP" ""; + } + + program { + name, "scroll_down"; + signal, "mouse,wheel,0,1"; + source, "*"; + action, SIGNAL_EMIT "PLAYLIST_SCROLL_DOWN" ""; + } + diff --git a/data/themes/default/default_progs.edc b/data/themes/default/default_progs.edc new file mode 100644 index 0000000..d8e863e --- /dev/null +++ b/data/themes/default/default_progs.edc @@ -0,0 +1,435 @@ +/*** Euphoria Default theme - by Ben Rockwood ***/ +/*** E D J E P R O G R A M S ***/ + + /* Quit Handlers */ + program { + name, "quit_button_in"; + signal, "mouse,in"; + source, "quit"; + action, STATE_SET "active" 0.0; + target, "quit"; + transition, LINEAR 0.5; + } + program { + name, "quit_button_out"; + signal, "mouse,out"; + source, "quit"; + action, STATE_SET "default" 0.0; + target, "quit"; + transition, LINEAR 0.5; + } + program { + name, "quit_button_click"; + signal, "mouse,clicked,1"; + source, "quit"; + action, SIGNAL_EMIT "close" "quit"; + } + + /* switch to "small" mode */ + program { + name, "titlebar_dbl_click"; + signal, "mouse,down,1,double"; + source, "titlebar"; + action, SIGNAL_EMIT "SWITCH_GROUP" "euphoria_small"; + } + + /* Previous File */ + program { + name, "previous_click"; + signal, "mouse,down,1"; + source, "previous_button"; + action, STATE_SET "clicked" 0.0; + transition, LINEAR 0.0; + target, "previous_button"; + } + program { + name, "previous_unclick"; + signal, "mouse,up,1"; + source, "previous_button"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.25; + target, "previous_button"; + } + + program { + name, "previous_click_emission"; + signal, "mouse,up,1"; + source, "previous_button"; + /* Emit signal to handler "previous file", from part/sender "previous_button" */ + /* Catch with the following Edje code in your app */ + /* edje_object_signal_callback_add(edje, "playback.prev", "previous_button", function) */ + action, SIGNAL_EMIT "playback.prev" "previous_button"; + } + + program { + name, "time_text_click"; + signal, "mouse,up,1"; + source, "time_text"; + action, SIGNAL_EMIT "TOGGLE_TIME_DISPLAY_MODE" "time_text"; + } + + /* Seek Backwards */ + + program { + name, "seekback_click"; + signal, "mouse,down,1"; + source, "seekback_button"; + action, STATE_SET "clicked" 0.0; + transition, LINEAR 0.0; + target, "seekback_button"; + } + program { + name, "seekback_unclick"; + signal, "mouse,up,1"; + source, "seekback_button"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.25; + target, "seekback_button"; + } + + program { + name, "seekback_start"; + signal, "mouse,down,1"; + source, "seekback_button"; + action, SIGNAL_EMIT "SEEK_BACK_START" "seekback_button"; + } + + program { + name, "seekback_stop"; + signal, "mouse,up,1"; + source, "seekback_button"; + action, SIGNAL_EMIT "SEEK_BACK_STOP" "seekback_button"; + } + + + + /* Play */ + program { + name, "play_click"; + signal, "mouse,down,1"; + source, "play_button"; + action, STATE_SET "clicked" 0.0; + transition, LINEAR 0.0; + target, "play_button"; + //after, "play_blink"; + } + + program { + name, "play_unclick"; + signal, "mouse,up,1"; + source, "play_button"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.25; + target, "play_button"; + //after, "pause_unblink"; + } + + /* Stop Pause Blinker */ + /* When using the action STOP, the target is the program to be stopped */ + program { + name, "pause_unblink"; + source, "*"; + action, ACTION_STOP; + target, "pause_blink"; + after, "play_blink"; + } + + + /* Loop Play Blinker */ + program { + name, "play_blink"; + source, "*"; + action, STATE_SET "blink" 0.0; + transition, LINEAR 1.0; + target, "play_button"; + after, "play_blink"; + } + + program { + name, "play_click_emission"; + signal, "mouse,up,1"; + source, "play_button"; + action, SIGNAL_EMIT "playback.play" "play_button"; + } + + /**************** Pause ****************/ + program { + name, "pause_click"; + signal, "mouse,down,1"; + source, "pause_button"; + action, STATE_SET "clicked" 0.0; + transition, LINEAR 0.2; + target, "pause_button"; + //after, "pause_blink"; + } + program { + name, "pause_unclick"; + signal, "mouse,up,1"; + source, "pause_button"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.2; + target, "pause_button"; + //after, "play_unblink"; + } + + program { + name, "play_unblink"; + source, "*"; + action, ACTION_STOP; + target, "play_blink"; + after, "pause_blink"; + } + + program { + name, "pause_blink"; + source, "*"; + action, STATE_SET "blink" 0.0; + transition, LINEAR 1.0; + target, "pause_button"; + after, "pause_blink"; + } + + program { + name, "pause_click_emission"; + signal, "mouse,up,1"; + source, "pause_button"; + action, SIGNAL_EMIT "playback.pause" "pause_button"; + } + + /**************** Seek Forward ********************/ + program { + name, "seekforward_click"; + signal, "mouse,down,1"; + source, "seekforward_button"; + action, STATE_SET "clicked" 0.0; + transition, LINEAR 0.0; + target, "seekforward_button"; + } + program { + name, "seekforward_unclick"; + signal, "mouse,up,1"; + source, "seekforward_button"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.25; + target, "seekforward_button"; + } + + program { + name, "seekforward_start"; + signal, "mouse,down,1"; + source, "seekforward_button"; + action, SIGNAL_EMIT "SEEK_FORWARD_START" "seekforward_button"; + } + + program { + name, "seekforward_stop"; + signal, "mouse,up,1"; + source, "seekforward_button"; + action, SIGNAL_EMIT "SEEK_FORWARD_STOP" "seekforward_button"; + } + + + + /* Next File */ + program { + name, "next_click"; + signal, "mouse,down,1"; + source, "next_button"; + action, STATE_SET "clicked" 0.0; + transition, LINEAR 0.0; + target, "next_button"; + } + program { + name, "next_unclick"; + signal, "mouse,up,1"; + source, "next_button"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.25; + target, "next_button"; + } + program { + name, "next_click_emission"; + signal, "mouse,up,1"; + source, "next_button"; + action, SIGNAL_EMIT "playback.next" "next_button"; + } + + /* Volume Button Proggies */ + /* Raise Volume */ + program { + name, "volplus_click"; + signal, "mouse,down,1"; + source, "vol_incr_button"; + action, STATE_SET "clicked" 0.0; + transition, LINEAR 0.0; + target, "vol_incr_button"; + } + program { + name, "volplus_unclick"; + signal, "mouse,up,1"; + source, "vol_incr_button"; + action, STATE_SET "default" 0.0; + transition, LINEAR 0.0; + target, "vol_incr_button"; + } + + program { + name, "vol_incr_sig_wheel1"; + signal, "mouse,wheel,0,-1"; + source, "vol_incr_button"; + action, SIGNAL_EMIT "VOL_INCR" "vol_incr_button"; + } + + program { + name, "vol_incr_sig_wheel2"; + signal, "mouse,wheel,0,1"; + source, "vol_incr_button"; + action, SIGNAL_EMIT "VOL_DECR" "vol_decr_button"; + } + + + /** NOTES: All programs MUST have AT LEAST, a NAME, SOURCE (even if "*";), and an ACTION **/ + + program { + name, "vol_incr_sig"; + //signal, "*"; + //source, "volplus_click"; + signal, "mouse,up,1"; + source, "vol_incr_button"; + action, SIGNAL_EMIT "VOL_INCR" "vol_incr_button"; + } + + /* Lower Volume */ + program { + name, "volminus_click"; + signal, "mouse,down,1"; + source, "vol_decr_button"; + action, STATE_SET "clicked" 0.0; + transition, LINEAR 0.0; + target, "vol_decr_button"; + } + program { + name, "volminus_unclick"; + signal, "mouse,up,1"; + source, "vol_decr_button"; + action, STATE_SET "default" 0.0; + transition, LINEAR 0.0; + target, "vol_decr_button"; + } + program { + name, "vol_decr_sig"; + signal, "mouse,up,1"; + source, "vol_decr_button"; + action, SIGNAL_EMIT "VOL_DECR" "vol_decr_button"; + } + + program { + name, "vol_decr_sig_wheel1"; + signal, "mouse,wheel,0,-1"; + source, "vol_decr_button"; + action, SIGNAL_EMIT "VOL_INCR" "vol_incr_button"; + } + + program { + name, "vol_decr_sig_wheel2"; + signal, "mouse,wheel,0,1"; + source, "vol_decr_button"; + action, SIGNAL_EMIT "VOL_DECR" "vol_decr_button"; + } + + program { + name, "repeat_toggle_activated"; + signal, "mouse,clicked,1"; + source, "repeat_toggle_disabled_img"; + action, STATE_SET "disabled" 0.0; + target, "repeat_toggle_disabled_img"; + action, STATE_SET "enabled" 0.0; + target, "repeat_toggle_enabled_img"; + after, "repeat_toggle_signal"; + } + + program { + name, "repeat_toggle_deactivated"; + signal, "mouse,clicked,1"; + source, "repeat_toggle_enabled_img"; + action, STATE_SET "default" 0.0; + target, "repeat_toggle_enabled_img"; + action, STATE_SET "default" 0.0; + target, "repeat_toggle_disabled_img"; + after, "repeat_toggle_signal"; + } + + program { + name, "repeat_toggle_signal"; + action, SIGNAL_EMIT "TOGGLE_REPEAT_MODE" "repeat_mode"; + } + + /** Playlist control programs **/ + program { + name, "add_click"; + signal, "mouse,down,1"; + source, "add_button"; + action, STATE_SET "clicked" 0.0; + transition, LINEAR 0.0; + target, "add_button"; + } + program { + name, "add_unclick"; + signal, "mouse,up,1"; + source, "add_button"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.25; + target, "add_button"; + } + + program { + name, "add_signal"; + signal, "mouse,up,1"; + source, "add_button"; + action, SIGNAL_EMIT "file_dialog.open" "add_button"; + } + + + program { + name, "del_click"; + signal, "mouse,down,1"; + source, "del_button"; + action, STATE_SET "clicked" 0.0; + transition, LINEAR 0.0; + target, "del_button"; + } + program { + name, "del_unclick"; + signal, "mouse,up,1"; + source, "del_button"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.25; + target, "del_button"; + } + + program { + name, "del_signal"; + signal, "mouse,up,1"; + source, "del_button"; + action, SIGNAL_EMIT "PLAYLIST_DEL" "del_button"; + } + + program { + name, "edit_click"; + signal, "mouse,down,1"; + source, "edit_button"; + action, STATE_SET "clicked" 0.0; + transition, LINEAR 0.0; + target, "edit_button"; + } + program { + name, "edit_unclick"; + signal, "mouse,up,1"; + source, "edit_button"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.25; + target, "edit_button"; + } + +/********** FIN *************/ + diff --git a/data/themes/default/default_small_parts.edc b/data/themes/default/default_small_parts.edc new file mode 100644 index 0000000..b65c7a4 --- /dev/null +++ b/data/themes/default/default_small_parts.edc @@ -0,0 +1,742 @@ +/*** Minimized Interface for Default theme - by digitalfallout ***/ + part { + name, "background"; + mouse_events, 1; + repeat_events, 1; + type, IMAGE; + + 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, "border-scale.png"; + border, 6 6 6 6; + } + fill { + smooth, 0; + } + } + } + part { + name, "title"; + type, TEXT; + mouse_events, 1; + repeat_events, 1; + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 0 0; + } + rel2 { + relative, 1.0 1.0; + offset, -4 -4; + } + color, 255 255 255 255; + text { + text, "Euphoria"; + font, "Vera"; /* Only font Vera works! Use other and segv */ + size, 6; /* Font Size */ + align, 1.0 1.0; /* Text alignment based on rel1/rel2 */ + } + } + } + /***** START LCD AREA *****/ + /* LCD Backdrop Image */ + part { + name, "lcd_backdrop"; + type, IMAGE; + mouse_events, 0; + description { + state, "default" 0.0; + + /* Part should fill from the far left, 20 pixels down */ + rel1 { + relative, 0.0 0.0; + offset, 4 4; + } + + /* all the way to the far right, 40 pixels north of the bottom right corner */ + rel2 { + relative, 1.0 0.0; + offset, -6 35; + } + + image { + normal, "lcd_area.png"; + border, 5 5 5 5; + } + + fill { + smooth, 0; + } + } + } + /* LCD Clipping Area - Invisible Rect */ + part { + name, "lcd_clip"; + type, RECT; + mouse_events, 0; + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 5 5; + to, "lcd_backdrop"; + } + + rel2 { + relative, 1.0 1.0; + offset, -5 -5; + to, "lcd_backdrop"; + } + + } + } + + part { + name, "artist_name"; + type, TEXT; + mouse_events, 0; + clip_to, "lcd_clip"; + description { + state, "default" 0.0; + + /* Use the relative size of the LCD itself, then position with align */ + rel1 { + relative, 0.0 0.0; + offset, 8 0; + to, "lcd_backdrop"; + } + + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "lcd_backdrop"; + } + + + color, 181 247 255 255; + text { + text, "Artist Name"; /* Text String */ + font, "redensek"; /* Only font Vera works! Use other and segv */ + size, 12; /* Font Size */ + align, 0.0 0.1; /* Text alignment based on rel1/rel2 */ + } + } + } + + part { + name, "song_name"; + type, TEXT; + mouse_events, 0; + clip_to, "lcd_clip"; + description { + state, "default" 0.0; + + /* Use the relative size of the LCD itself, then position with align */ + rel1 { + relative, 0.0 0.0; + offset, 8 5; + to, "lcd_backdrop"; + } + + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "lcd_backdrop"; + } + + + color, 181 247 255 255; + text { + text, "Song Name"; /* Text String */ + font, "redensek"; /* Only font Vera works! Use other and segv */ + size, 12; /* Font Size */ + align, 0.0 0.5; /* Text alignment based on rel1/rel2 */ + } + } + } + /* Time Counter */ + part { + name, "time_text"; + type, TEXT; + clip_to, "lcd_clip"; + mouse_events, 1; + description { + state, "default" 0.0; + + /* Use the relative size of the LCD itself, then position with align */ + rel1 { + relative, 0.0 0.0; + offset, 0 0; + to, "lcd_backdrop"; + } + + rel2 { + relative, 1.0 1.0; + offset, -9 -1; + to, "lcd_backdrop"; + } + + + color, 181 247 255 255; + text { + text, "0:00"; /* Text String */ + font, "micro"; /* Only font Vera works! Use other and segv */ + size, 32; /* Font Size */ + align, 1.0 1.0; /* Text alignment based on rel1/rel2 */ + } + } + } + /***** END LCD AREA *****/ + + /***** START BUTTON AREA *****/ + + /***** start previous button *****/ + part { + name, "previous_button"; + mouse_events, 1; + type, IMAGE; + description { + state, "default" 0.0; + rel1 { + relative, 0.0 0.0; + offset, 5 37; + } + rel2 { + relative, 0.0 1.0; + offset, 30 -5; + } + image { + normal, "button-small-normal.png"; + } + } + description { + state, "clicked" 0.0; + rel1 { + relative, 0.0 0.0; + offset, 5 37; + } + rel2 { + relative, 0.0 1.0; + offset, 30 -5; + } + image { + normal, "button-small-clicked.png"; + } + } + } + + part { + name, "previous_text"; + type, TEXT; + mouse_events, 0; /* Does part accept mouse events? */ + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 0 0; + to, "previous_button"; + } + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "previous_button"; + } + + + color, 255 255 255 255; /* Color of text */ + color2, 0 0 255 255; /* Does nothing for SOFT_SHADOW */ + color3, 0 0 0 32; /* Color of shadow */ + + text { + text, "Back"; /* Text String */ + font, "Vera"; /* Only font Vera works! Use other and segv */ + size, 6; /* Font Size */ + align, 0.5 0.5; /* Text alignment based on rel1/rel2 */ + } + } + } + /***** stop previous button *****/ + /***** start play button *****/ + part { + name, "play_button"; + mouse_events, 1; + type, IMAGE; + description { + state, "default" 0.0; + rel1 { + relative, 0.0 0.0; + offset, 35 37; + } + rel2 { + relative, 0.0 1.0; + offset, 60 -5; + } + image { + normal, "button-small-normal.png"; + } + } + description { + state, "clicked" 0.0; + rel1 { + relative, 0.0 0.0; + offset, 35 37; + } + rel2 { + relative, 0.0 1.0; + offset, 60 -5; + } + image { + normal, "button-small-clicked.png"; + } + } + } + + part { + name, "stop_text"; + type, TEXT; + mouse_events, 0; /* Does part accept mouse events? */ + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 0 0; + to, "play_button"; + } + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "play_button"; + } + + + color, 255 255 255 255; /* Color of text */ + color2, 0 0 255 255; /* Does nothing for SOFT_SHADOW */ + color3, 0 0 0 32; /* Color of shadow */ + + text { + text, "Play"; /* Text String */ + font, "Vera"; /* Only font Vera works! Use other and segv */ + size, 6; /* Font Size */ + align, 0.5 0.5; /* Text alignment based on rel1/rel2 */ + } + } + } + /***** stop play button *****/ + /***** start pause button *****/ + part { + name, "pause_button"; + mouse_events, 1; + type, IMAGE; + description { + state, "default" 0.0; + rel1 { + relative, 0.0 0.0; + offset, 65 37; + } + rel2 { + relative, 0.0 1.0; + offset, 90 -5; + } + image { + normal, "button-small-normal.png"; + } + } + description { + state, "clicked" 0.0; + rel1 { + relative, 0.0 0.0; + offset, 65 37; + } + rel2 { + relative, 0.0 1.0; + offset, 90 -5; + } + image { + normal, "button-small-clicked.png"; + } + } + } + + part { + name, "pause_text"; + type, TEXT; + mouse_events, 0; /* Does part accept mouse events? */ + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 0 0; + to, "pause_button"; + } + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "pause_button"; + } + + + color, 255 255 255 255; /* Color of text */ + color2, 0 0 255 255; /* Does nothing for SOFT_SHADOW */ + color3, 0 0 0 32; /* Color of shadow */ + + text { + text, "Stop"; /* Text String */ + font, "Vera"; /* Only font Vera works! Use other and segv */ + size, 6; /* Font Size */ + align, 0.5 0.5; /* Text alignment based on rel1/rel2 */ + } + } + } + /***** stop next button *****/ + /***** start next button *****/ + part { + name, "next_button"; + mouse_events, 1; + type, IMAGE; + description { + state, "default" 0.0; + rel1 { + relative, 0.0 0.0; + offset, 95 37; + } + rel2 { + relative, 0.0 1.0; + offset, 120 -5; + } + image { + normal, "button-small-normal.png"; + } + } + description { + state, "clicked" 0.0; + rel1 { + relative, 0.0 0.0; + offset, 95 37; + } + rel2 { + relative, 0.0 1.0; + offset, 120 -5; + } + image { + normal, "button-small-clicked.png"; + } + } + } + + part { + name, "next_text"; + type, TEXT; + mouse_events, 0; /* Does part accept mouse events? */ + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 0 0; + to, "next_button"; + } + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "next_button"; + } + + + color, 255 255 255 255; /* Color of text */ + color2, 0 0 255 255; /* Does nothing for SOFT_SHADOW */ + color3, 0 0 0 32; /* Color of shadow */ + + text { + text, "Next"; /* Text String */ + font, "Vera"; /* Only font Vera works! Use other and segv */ + size, 6; /* Font Size */ + align, 0.5 0.5; /* Text alignment based on rel1/rel2 */ + } + } + } + /***** stop next button *****/ + /***** start quit button *****/ + part { + name, "quit_button"; + mouse_events, 1; + type, IMAGE; + description { + state, "default" 0.0; + rel1 { + relative, 0.0 0.0; + offset, 125 37; + } + rel2 { + relative, 0.0 1.0; + offset, 150 -5; + } + image { + normal, "button-small-normal.png"; + } + } + description { + state, "clicked" 0.0; + rel1 { + relative, 0.0 0.0; + offset, 125 37; + } + rel2 { + relative, 0.0 1.0; + offset, 150 -5; + } + image { + normal, "button-small-clicked.png"; + } + } + } + + part { + name, "quit_text"; + type, TEXT; + mouse_events, 0; /* Does part accept mouse events? */ + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 0 0; + to, "quit_button"; + } + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "quit_button"; + } + + + color, 255 255 255 255; /* Color of text */ + color2, 0 0 255 255; /* Does nothing for SOFT_SHADOW */ + color3, 0 0 0 32; /* Color of shadow */ + + text { + text, "Quit"; /* Text String */ + font, "Vera"; /* Only font Vera works! Use other and segv */ + size, 6; /* Font Size */ + align, 0.5 0.5; /* Text alignment based on rel1/rel2 */ + } + } + } + /***** stop exit button *****/ + /********** Volume Controls ***************************************/ + part { + name, "vol_label"; + mouse_events, 0; + description { + state, "default" 0.0; + min, 21 20; + max, 21 20; + + rel1 { + relative, 1.0 1.0; + offset, -115 -50; + } + rel2 { + relative, 1.0 1.0; + offset, 0 24; + } + + image { + normal, "vol-label.png"; + } + } + } + + part { + name, "vol_label_text"; + type, TEXT; + mouse_events, 0; /* Does part accept mouse events? */ + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 0 0; + to, "vol_label"; + } + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "vol_label"; + } + + + color, 255 255 255 255; /* Color of text */ + color2, 0 0 255 255; /* Does nothing for SOFT_SHADOW */ + color3, 0 0 0 32; /* Color of shadow */ + + text { + text, "VOL"; /* Text String */ + font, "Vera"; /* Only font Vera works! Use other and segv */ + size, 5; /* Font Size */ + align, 0.5 0.6; /* Text alignment based on rel1/rel2 */ + } + } + } + part { + name, "vol_display"; + mouse_events, 0; + description { + state, "default" 0.0; + min, 23 20; + max, 23 20; + + rel1 { + relative, 0.0 0.0; + offset, -23 0; + to, "vol_label"; + } + rel2 { + relative, 0.0 1.0; + offset, 0 0; + to, "vol_label"; + } + + image { + normal, "vol-display.png"; + } + } + } + + part { + name, "vol_display_text"; + type, TEXT; + //clip_to, "vol_display"; + description { + state, "default" 0.0; + + /* Use the relative size of the LCD itself, then position with align */ + rel1 { + relative, 0.0 0.0; + offset, 0 0; + to, "vol_display"; + } + + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "vol_display"; + } + + + color, 181 247 255 255; + text { + text, "00"; /* Text String */ + font, "Vera"; /* Only font Vera works! Use other and segv */ + size, 8; /* Font Size */ + align, 0.5 0.6; /* Text alignment based on rel1/rel2 */ + } + } + } + + + part { + name, "vol_incr_button"; + mouse_events, 1; + description { + state, "default" 0.0; + min, 25 20; + max, 25 20; + + rel1 { + relative, 0.0 0.0; + offset, -25 0; + to, "vol_display"; + } + rel2 { + relative, 0.0 1.0; + offset, 0 0; + to, "vol_display"; + } + + image { + normal, "vol-plus.png"; + } + } + description { + state, "clicked" 0.0; + min, 25 20; + max, 25 20; + + rel1 { + relative, 0.0 0.0; + offset, -25 0; + to, "vol_display"; + } + rel2 { + relative, 0.0 1.0; + offset, 0 0; + to, "vol_display"; + } + + image { + normal, "vol-plus-clicked.png"; + } + } + } + + part { + name, "vol_decr_button"; + mouse_events, 1; + description { + state, "default" 0.0; + min, 29 20; + max, 29 20; + + rel1 { + relative, 0.0 0.0; + offset, -29 0; + to, "vol_incr_button"; + } + rel2 { + relative, 0.0 1.0; + offset, 0 0; + to, "vol_incr_button"; + } + + image { + normal, "vol-minus.png"; + } + } + description { + state, "clicked" 0.0; + min, 29 20; + max, 29 20; + + rel1 { + relative, 0.0 0.0; + offset, -29 0; + to, "vol_incr_button"; + } + rel2 { + relative, 0.0 1.0; + offset, 0 0; + to, "vol_incr_button"; + } + + image { + normal, "vol-minus-clicked.png"; + } + } + } + +/************** EOF ********************/ diff --git a/data/themes/default/default_small_progs.edc b/data/themes/default/default_small_progs.edc new file mode 100644 index 0000000..5a05116 --- /dev/null +++ b/data/themes/default/default_small_progs.edc @@ -0,0 +1,219 @@ +/*** Minimized Interface for Default theme - by digitalfallout ***/ + + /* Previous */ + program { + name, "previous_click"; + signal, "mouse,down,1"; + source, "previous_button"; + action, STATE_SET "clicked" 0.0; + transition, LINEAR 0.0; + target, "previous_button"; + } + + program { + name, "previous_unclick"; + signal, "mouse,up,1"; + source, "previous_button"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.25; + target, "previous_button"; + } + program { + name, "previous_click_emission"; + signal, "mouse,up,1"; + source, "previous_button"; + action, SIGNAL_EMIT "playback.previous" "previous_button"; + } + + /* Play */ + program { + name, "play_click"; + signal, "mouse,down,1"; + source, "play_button"; + action, STATE_SET "clicked" 0.0; + transition, LINEAR 0.0; + target, "play_button"; + } + + program { + name, "play_unclick"; + signal, "mouse,up,1"; + source, "play_button"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.25; + target, "play_button"; + } + program { + name, "play_click_emission"; + signal, "mouse,up,1"; + source, "play_button"; + action, SIGNAL_EMIT "playback.play" "play_button"; + } + + /* Pause */ + program { + name, "pause_click"; + signal, "mouse,down,1"; + source, "pause_button"; + action, STATE_SET "clicked" 0.0; + transition, LINEAR 0.0; + target, "pause_button"; + } + + program { + name, "pause_unclick"; + signal, "mouse,up,1"; + source, "pause_button"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.25; + target, "pause_button"; + } + program { + name, "pause_click_emission"; + signal, "mouse,up,1"; + source, "pause_button"; + action, SIGNAL_EMIT "PAUSE" "pause_button"; + } + + /* Next */ + program { + name, "next_click"; + signal, "mouse,down,1"; + source, "next_button"; + action, STATE_SET "clicked" 0.0; + transition, LINEAR 0.0; + target, "next_button"; + } + + program { + name, "next_unclick"; + signal, "mouse,up,1"; + source, "next_button"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.25; + target, "next_button"; + } + program { + name, "next_click_emission"; + signal, "mouse,up,1"; + source, "next_button"; + action, SIGNAL_EMIT "playback.next" "next_button"; + } + + + /* Quit */ + program { + name, "quit_click"; + signal, "mouse,down,1"; + source, "quit_button"; + action, STATE_SET "clicked" 0.0; + transition, LINEAR 0.0; + target, "quit_button"; + } + + program { + name, "quit_unclick"; + signal, "mouse,up,1"; + source, "quit_button"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.25; + target, "quit_button"; + } + program { + name, "quit_click_emission"; + signal, "mouse,up,1"; + source, "quit_button"; + action, SIGNAL_EMIT "close" "quit"; + } + /* Volume Button Proggies */ + /* Raise Volume */ + program { + name, "volplus_click"; + signal, "mouse,down,1"; + source, "vol_incr_button"; + action, STATE_SET "clicked" 0.0; + transition, LINEAR 0.0; + target, "vol_incr_button"; + } + program { + name, "volplus_unclick"; + signal, "mouse,up,1"; + source, "vol_incr_button"; + action, STATE_SET "default" 0.0; + transition, LINEAR 0.0; + target, "vol_incr_button"; + } + + program { + name, "vol_incr_sig_wheel1"; + signal, "mouse,wheel,0,-1"; + source, "vol_incr_button"; + action, SIGNAL_EMIT "VOL_INCR" "vol_incr_button"; + } + + program { + name, "vol_incr_sig_wheel2"; + signal, "mouse,wheel,0,1"; + source, "vol_incr_button"; + action, SIGNAL_EMIT "VOL_DECR" "vol_decr_button"; + } + + + /** NOTES: All programs MUST have AT LEAST, a NAME, SOURCE (even if "*";), and an ACTION **/ + + program { + name, "vol_incr_sig"; + //signal, "*"; + //source, "volplus_click"; + signal, "mouse,up,1"; + source, "vol_incr_button"; + action, SIGNAL_EMIT "VOL_INCR" "vol_incr_button"; + } + + /* Lower Volume */ + program { + name, "volminus_click"; + signal, "mouse,down,1"; + source, "vol_decr_button"; + action, STATE_SET "clicked" 0.0; + transition, LINEAR 0.0; + target, "vol_decr_button"; + } + program { + name, "volminus_unclick"; + signal, "mouse,up,1"; + source, "vol_decr_button"; + action, STATE_SET "default" 0.0; + transition, LINEAR 0.0; + target, "vol_decr_button"; + } + program { + name, "vol_decr_sig"; + signal, "mouse,up,1"; + source, "vol_decr_button"; + action, SIGNAL_EMIT "VOL_DECR" "vol_decr_button"; + } + + program { + name, "vol_decr_sig_wheel1"; + signal, "mouse,wheel,0,-1"; + source, "vol_decr_button"; + action, SIGNAL_EMIT "VOL_INCR" "vol_incr_button"; + } + + program { + name, "vol_decr_sig_wheel2"; + signal, "mouse,wheel,0,1"; + source, "vol_decr_button"; + action, SIGNAL_EMIT "VOL_DECR" "vol_decr_button"; + } + + /* switch to "large" mode */ + program { + name, "titlebar_dbl_click"; + signal, "mouse,down,1,double"; + source, "background"; + action, SIGNAL_EMIT "SWITCH_GROUP" "euphoria"; + } + +/********* FIN *****************/ diff --git a/data/themes/default/images/background-dark-green.png b/data/themes/default/images/background-dark-green.png new file mode 100644 index 0000000..e338859 Binary files /dev/null and b/data/themes/default/images/background-dark-green.png differ diff --git a/data/themes/default/images/background-green.png b/data/themes/default/images/background-green.png new file mode 100644 index 0000000..2c44f99 Binary files /dev/null and b/data/themes/default/images/background-green.png differ diff --git a/data/themes/default/images/border-scale.png b/data/themes/default/images/border-scale.png new file mode 100644 index 0000000..ad7a073 Binary files /dev/null and b/data/themes/default/images/border-scale.png differ diff --git a/data/themes/default/images/button-3stage-fulldown.png b/data/themes/default/images/button-3stage-fulldown.png new file mode 100644 index 0000000..56f1464 Binary files /dev/null and b/data/themes/default/images/button-3stage-fulldown.png differ diff --git a/data/themes/default/images/button-3stage-selected.png b/data/themes/default/images/button-3stage-selected.png new file mode 100644 index 0000000..11ce0ae Binary files /dev/null and b/data/themes/default/images/button-3stage-selected.png differ diff --git a/data/themes/default/images/button-3stage-unselected.png b/data/themes/default/images/button-3stage-unselected.png new file mode 100644 index 0000000..616f18d Binary files /dev/null and b/data/themes/default/images/button-3stage-unselected.png differ diff --git a/data/themes/default/images/button-full-blinking.png b/data/themes/default/images/button-full-blinking.png new file mode 100644 index 0000000..01aa251 Binary files /dev/null and b/data/themes/default/images/button-full-blinking.png differ diff --git a/data/themes/default/images/button-full-clicked.png b/data/themes/default/images/button-full-clicked.png new file mode 100644 index 0000000..eeffcf2 Binary files /dev/null and b/data/themes/default/images/button-full-clicked.png differ diff --git a/data/themes/default/images/button-full-normal.png b/data/themes/default/images/button-full-normal.png new file mode 100644 index 0000000..88c4233 Binary files /dev/null and b/data/themes/default/images/button-full-normal.png differ diff --git a/data/themes/default/images/button-full-unblinking.png b/data/themes/default/images/button-full-unblinking.png new file mode 100644 index 0000000..186a2e8 Binary files /dev/null and b/data/themes/default/images/button-full-unblinking.png differ diff --git a/data/themes/default/images/button-off.png b/data/themes/default/images/button-off.png new file mode 100644 index 0000000..15dc4d6 Binary files /dev/null and b/data/themes/default/images/button-off.png differ diff --git a/data/themes/default/images/button-on.png b/data/themes/default/images/button-on.png new file mode 100644 index 0000000..99d1fe7 Binary files /dev/null and b/data/themes/default/images/button-on.png differ diff --git a/data/themes/default/images/button-small-clicked.png b/data/themes/default/images/button-small-clicked.png new file mode 100644 index 0000000..dbcb4b4 Binary files /dev/null and b/data/themes/default/images/button-small-clicked.png differ diff --git a/data/themes/default/images/button-small-normal.png b/data/themes/default/images/button-small-normal.png new file mode 100644 index 0000000..11971c4 Binary files /dev/null and b/data/themes/default/images/button-small-normal.png differ diff --git a/data/themes/default/images/close_button.png b/data/themes/default/images/close_button.png new file mode 100644 index 0000000..a27902a Binary files /dev/null and b/data/themes/default/images/close_button.png differ diff --git a/data/themes/default/images/controls-back.png b/data/themes/default/images/controls-back.png new file mode 100644 index 0000000..73bb2fc Binary files /dev/null and b/data/themes/default/images/controls-back.png differ diff --git a/data/themes/default/images/function-button-clicked.png b/data/themes/default/images/function-button-clicked.png new file mode 100644 index 0000000..36da559 Binary files /dev/null and b/data/themes/default/images/function-button-clicked.png differ diff --git a/data/themes/default/images/function-button-normal.png b/data/themes/default/images/function-button-normal.png new file mode 100644 index 0000000..ddb7927 Binary files /dev/null and b/data/themes/default/images/function-button-normal.png differ diff --git a/data/themes/default/images/lcd_area.png b/data/themes/default/images/lcd_area.png new file mode 100644 index 0000000..927dc38 Binary files /dev/null and b/data/themes/default/images/lcd_area.png differ diff --git a/data/themes/default/images/minimize.png b/data/themes/default/images/minimize.png new file mode 100644 index 0000000..729203b Binary files /dev/null and b/data/themes/default/images/minimize.png differ diff --git a/data/themes/default/images/set-button-normal.png b/data/themes/default/images/set-button-normal.png new file mode 100644 index 0000000..482428e Binary files /dev/null and b/data/themes/default/images/set-button-normal.png differ diff --git a/data/themes/default/images/small-text-button.png b/data/themes/default/images/small-text-button.png new file mode 100644 index 0000000..b45311c Binary files /dev/null and b/data/themes/default/images/small-text-button.png differ diff --git a/data/themes/default/images/tracktor-sample-alive.png b/data/themes/default/images/tracktor-sample-alive.png new file mode 100644 index 0000000..2abddb7 Binary files /dev/null and b/data/themes/default/images/tracktor-sample-alive.png differ diff --git a/data/themes/default/images/tracktor-sample-dead.png b/data/themes/default/images/tracktor-sample-dead.png new file mode 100644 index 0000000..94a9705 Binary files /dev/null and b/data/themes/default/images/tracktor-sample-dead.png differ diff --git a/data/themes/default/images/vol-display.png b/data/themes/default/images/vol-display.png new file mode 100644 index 0000000..7d5f3b1 Binary files /dev/null and b/data/themes/default/images/vol-display.png differ diff --git a/data/themes/default/images/vol-label.png b/data/themes/default/images/vol-label.png new file mode 100644 index 0000000..b35ff83 Binary files /dev/null and b/data/themes/default/images/vol-label.png differ diff --git a/data/themes/default/images/vol-minus-clicked.png b/data/themes/default/images/vol-minus-clicked.png new file mode 100644 index 0000000..afc4877 Binary files /dev/null and b/data/themes/default/images/vol-minus-clicked.png differ diff --git a/data/themes/default/images/vol-minus.png b/data/themes/default/images/vol-minus.png new file mode 100644 index 0000000..f6cde18 Binary files /dev/null and b/data/themes/default/images/vol-minus.png differ diff --git a/data/themes/default/images/vol-plus-clicked.png b/data/themes/default/images/vol-plus-clicked.png new file mode 100644 index 0000000..7ef4918 Binary files /dev/null and b/data/themes/default/images/vol-plus-clicked.png differ diff --git a/data/themes/default/images/vol-plus.png b/data/themes/default/images/vol-plus.png new file mode 100644 index 0000000..4937ae9 Binary files /dev/null and b/data/themes/default/images/vol-plus.png differ diff --git a/data/themes/iio/collections/base_to.edc b/data/themes/iio/collections/base_to.edc new file mode 100644 index 0000000..a2c889b --- /dev/null +++ b/data/themes/iio/collections/base_to.edc @@ -0,0 +1,414 @@ +#define BASE "base_to" + + part { name, BASE; type, IMAGE; mouse_events, 1; repeat_events, 1; + description { state, "default" 0.0; min, 123 94; max, 123 94; + rel1 { relative, 0.0 0.0; offset, 0.0 0.0; } + rel2 { relative, 1.0 1.0; offset, 0 0; } + image { normal, "base_layer.png"; border, 6 6 6 6; } + fill { smooth, 1; } } } +/////////////////////////////////////////////////////////////////////// + part { name, RIGHT"panel"; type, IMAGE; mouse_events, 1; repeat_events, 1; + description { state, "default" 0.0; min, 0 94; max, 145 94; + rel1 { to, BASE; relative, 1.0 0.0; offset, 0 0; } + rel2 { to, RIGHT"border"; relative, 0.0 1.0; offset, -1 -1; } + image { normal, "base_layer.png"; border, 6 6 6 6; } + fill { smooth, 1; } } } + + part { name, RIGHT"border"; mouse_events, 1; + description { state, "default" 0.0; min, 19 94; max, 19 94; + rel1 { to, BASE; relative, 2.0 0.0; offset, 145 0; } + rel2 { to, BASE; relative, 1.0 1.0; offset, 3 -1; } + image { normal, "bar_delay_right.png"; border, 0 0 7 8; } } + + description { state, "slide" 0.0; min, 19 94; max, 19 94; + rel1 { to, BASE; relative, 1.0 1.0; offset, -3 0; } + rel2 { to, BASE; relative, 0.0 0.0; offset, 145 -1; } + image { normal, "bar_delay_right.png"; border, 0 0 7 8; } } } + + part { name, RIGHT"border-slide"; type, RECT; + description { state, "default" 0.0; visible, 0; min, 0 94; max, 9999 9999; + color, 0 0 0 0; + rel1 { to, RIGHT"border"; relative, 1.0 0.0; offset, 0 0; } + rel2 { to, RIGHT"border"; relative, 1.0 1.0; offset, 0 0; } } + + description { state, "slide" 0.0; visible, 1; min, 0 94; max, 9999 9999; + color, 0 0 0 0; + rel1 { to, RIGHT"border"; relative, 0.0 0.0; offset, 0 0; } + rel2 { to, RIGHT"border"; relative, 1.0 1.0; offset, 0 0; } } } +/////////////////////////////////////////////////////////////////////// + part { name, LEFT"panel"; type, IMAGE; mouse_events, 1; repeat_events, 1; + description { state, "default" 0.0; min, 0 94; max, 145 94; + rel1 { to, LEFT"border"; relative, 1.0 0.0; offset, 0 0; } + rel2 { to, BASE; relative, 0.0 1.0; offset, -1 -1; } + image { normal, "base_layer.png"; border, 6 6 6 6; } + fill { smooth, 1; } } } + + part { name, LEFT"border"; mouse_events, 1; + description { state, "default" 0.0; min, 19 94; max, 19 94; align, 0.0 0.0; + rel1 { to, BASE; relative, 0.0 0.0; offset, -145 0; } + rel2 { to, BASE; relative, 0.0 1.0; offset, 0 -1; } + image { normal, "bar_delay_left.png"; } } + + description { state, "slide" 0.0; min, 19 94; max, 19 94; align, 0.0 0.0; + rel1 { to, BASE; relative, 0.0 0.0; offset, -19 0; } + rel2 { to, BASE; relative, 0.0 1.0; offset, 1 -1; } + image { normal, "bar_delay_left.png"; } } } + + part { name, LEFT"border-slide"; type, RECT; + description { state, "default" 0.0; visible, 0; min, 0 94; max, 9999 9999; + color, 0 0 0 0; + rel1 { to, LEFT"border"; relative, 0.0 0.0; offset, 0 0; } + rel2 { to, LEFT"border"; relative, 1.0 1.0; offset, 0 0; } } + + description { state, "slide" 0.0; visible, 1; min, 0 94; max, 9999 9999; + color, 0 0 0 0; + rel1 { to, LEFT"border"; relative, 0.0 0.0; offset, 0 0; } + rel2 { to, LEFT"border"; relative, 1.0 1.0; offset, 0 0; } } } +/////////////////////////////////////////////////////////////////////// + part { name, RIGHT"lcd"; type, IMAGE; mouse_events, 0; + description { state, "default" 0.0; min, 0 94; max, 142 94; + rel1 { to, BASE; relative, 1.0 0.0; offset, -16 0; } + rel2 { to, RIGHT"border"; relative, 0.0 1.0; offset, -1 -1; } + image { normal, "lcd_window.png"; border, 9 9 9 9; } + fill { smooth, 0; } } + + description { state, "slide" 0.0; min, 0 94; max, 142 94; + rel1 { to, BASE; relative, 1.0 0.0; offset, -8 0; } + rel2 { to, RIGHT"border"; relative, 0.0 1.0; offset, -1 -1; } + image { normal, "lcd_window.png"; border, 9 9 9 9; } + fill { smooth, 0; } } } + +// part { name, "RpanelClipArea"; description { +// state, "default" 0.0; min, 0 94; max, 142 94; +// rel1 { to, RIGHT"panel"; relative, 0.0 0.0; offset, 0 0; } +// rel2 { to, BASE; relative, 1.0 1.0; offset, 0 0; } +// border, 0 0 0 0; } } +// + part { name, LEFT"lcd"; type, IMAGE; mouse_events, 0; + description { state, "default" 0.0; min, 0 94; max, 142 94; align, 0.0 0.0; + rel1 { to, LEFT"border"; relative, 1.0 0.0; offset, 0 0; } + rel2 { to, BASE; relative, 0.0 1.0; offset, 16 0; } + image { normal, "lcd_window.png"; border, 9 9 9 9; } + fill { smooth, 0; } } + + description { state, "slide" 0.0; min, 0 94; max, 142 94; align, 0.0 0.0; + rel1 { to, LEFT"border"; relative, 1.0 0.0; offset, 0 0; } + rel2 { to, BASE; relative, 0.0 1.0; offset, 7 0; } + image { normal, "lcd_window.png"; border, 9 9 9 9; } + fill { smooth, 0; } } } +// +/////////////////////////////////////////////////////////////////////// + part { name, "CenterClipArea"; type, RECT; + mouse_events, 1; repeat_events, 1; + description { state, "default" 0.0; min, 123 94; max, 123 94; + color, 0 0 0 0; + rel1 { to, BASE; relative, 0.0 0.0; offset, 0 0; } + rel2 { to, BASE; relative, 1.0 1.0; offset, 0 0; } } } +/////////////////////////////////////////////////////////////////////// +// Placements + + part { name, "ct_align"; type, IMAGE; mouse_events, 0; + description { state, "default" 0.0; min, 85 28; max, 85 28; + rel1 { relative, 0.0 0.5; offset, 0 -20; to, "CenterClipArea"; } + rel2 { relative, 1.0 0.0; offset, 0 0; to, "CenterClipArea"; } + image { normal, "align_top.png"; } } } +// + part { name, "cl_align"; type, IMAGE; mouse_events, 0; + description { state, "default" 0.0; min, 22 41; max, 22 41; + rel1 { relative, 0.0 0.5; offset, 0 2; to, "CenterClipArea"; } + rel2 { relative, 0.5 0.5; offset, -1 0; to, "CenterClipArea"; } + image { normal, "align_left.png"; } } } +// + part { name, "cc_align"; type, IMAGE; mouse_events, 0; + description { state, "default" 0.0; min, 41 41; max, 41 41; + rel1 { relative, 0.0 0.5; offset, 0 2; to, "CenterClipArea"; } + rel2 { relative, 1.0 0.5; offset, 0 0; to, "CenterClipArea"; } + image { normal, "align_center.png"; } } } +// + part { name, "cr_align"; type, IMAGE; mouse_events, 0; + description { state, "default" 0.0; max, 22 41; min, 22 41; + rel1 { relative, 0.5 0.5; offset, 0 2; to, "CenterClipArea"; } + rel2 { relative, 1.0 0.5; offset, 1 0; to, "CenterClipArea"; } + image { normal, "align_right.png"; } } } +// + part { name, "cb_align"; type, IMAGE; mouse_events, 0; + description { state, "default" 0.0; min, 85 25; max, 85 25; + rel1 { relative, 0.0 0.5; offset, 0 1; to, "CenterClipArea"; } + rel2 { relative, 1.0 1.0; offset, 0 20; to, "CenterClipArea"; } + image { normal, "align_bottom.png"; } } } +// +/////////////////////////////////////////////////////////////////////// +// Buttons + + part { name, "prev_button"; type, IMAGE; mouse_events, 1; + description { state, "default" 0.0; min, 13 39; max, 13 39; + rel1 { relative, 0.0 0.0; offset, 0 0; to, "cl_align"; } + rel2 { relative, 1.0 1.0; offset, 5 0; to, "cl_align"; } + image { normal, "previous_button.png"; } } + + description { state, "hilited" 0.0; min, 13 39; max, 13 39; + rel1 { relative, 0.0 0.0; offset, 0 0; to, "cl_align"; } + rel2 { relative, 1.0 1.0; offset, 5 0; to, "cl_align"; } + image { normal, "previous_button_hilited.png";} } + + description { state, "clicked" 0.0; max, 13 39; min, 13 39; + rel1 { relative, 0.0 0.0; offset, 0 0; to, "cl_align"; } + rel2 { relative, 1.0 1.0; offset, 5 0; to, "cl_align"; } + image { normal, "previous_button_clicked.png"; } } } +// + part { name, "pause_button"; type, IMAGE; mouse_events, 1; + description { state, "default" 0.0; min, 39 12; max, 39 12; + rel1 { relative, 0.0 0.0; offset, 0 0; to, "ct_align"; } + rel2 { relative, 1.0 1.0; offset, 0 12; to, "ct_align"; } + image { normal, "pause_button.png"; } } + + description { state, "hilited" 0.0; max, 39 12; min, 39 12; + rel1 { relative, 0.0 0.0; offset, 0 0; to, "ct_align"; } + rel2 { relative, 1.0 1.0; offset, 0 12; to, "ct_align"; } + image { normal, "pause_button_hilited.png"; } } + + description { state, "clicked" 0.0; min, 39 12; max, 39 12; + rel1 { relative, 0.0 0.0; offset, 0 0; to, "ct_align"; } + rel2 { relative, 1.0 1.0; offset, 0 12;to, "ct_align"; } + image { normal, "pause_button_clicked.png"; } } } +// + part { name, "play_button"; type, IMAGE; mouse_events, 1; + description { state, "default" 0.0; min, 23 23; max, 23 23; + rel1 { relative, 0.0 0.0; offset, 0 0; to, "cc_align"; } + rel2 { relative, 1.0 1.0; offset, 0 0; to, "cc_align"; } + image { normal, "play_button.png"; border, 1 1 1 1; } + fill { smooth, 0; } } + + description { state, "hilited" 0.0; min, 23 23; max, 23 23; + rel1 { relative, 0.0 0.0; offset, 0 0; to, "cc_align"; } + rel2 { relative, 1.0 1.0; offset, 0 0; to, "cc_align"; } + image { normal, "play_button_hilited.png"; border, 1 1 1 1; } + fill { smooth, 1; } } + + description { state, "clicked" 0.0; min, 23 23; max, 23 23; + rel1 { relative, 0.0 0.0; offset, 0 0; to, "cc_align"; } + rel2 { relative, 1.0 1.0; offset, 0 0; to, "cc_align"; } + image { normal, "play_button_clicked.png"; border, 1 1 1 1; } + fill { smooth, 0; } } } +// + part { name, "next_button"; type, IMAGE; mouse_events, 1; + description { state, "default" 0.0; min, 13 39; max, 13 39; + rel1 { relative, 0.0 0.0; offset, 0 0; to, "cr_align"; } + rel2 { relative, 1.0 1.0; offset, -5 0; to, "cr_align"; } + image { normal, "next_button.png"; } } + + description { state, "hilited" 0.0; min, 13 39; max, 13 39; + rel1 { relative, 0.0 0.0; offset, 0 0; to, "cr_align"; } + rel2 { relative, 1.0 1.0; offset, -5 0; to, "cr_align"; } + image { normal, "next_button_hilited.png"; } } + + description { state, "clicked" 0.0; min, 13 39; max, 13 39; + rel1 { relative, 0.0 0.0; offset, 0 0; to, "cr_align"; } + rel2 { relative, 1.0 1.0; offset, -5 0; to, "cr_align"; } + image { normal, "next_button_clicked.png"; } } } +// + part { name, "stop_button"; type, IMAGE; mouse_events, 1; + description { state, "default" 0.0; min, 39 13; max, 39 13; + rel1 { relative, 0.0 0.0; offset, 0 0; to, "cb_align"; } + rel2 { relative, 1.0 1.0; offset, 0 -8; to, "cb_align"; } + image { normal, "stop_button.png"; } } + + description { state, "hilited" 0.0; min, 39 13; max, 39 13; + rel1 { relative, 0 0; offset, 0 0; to, "cb_align"; } + rel2 { relative, 1.0 1.0; offset, 0 -8; to, "cb_align"; } + image { normal, "stop_button_hilited.png"; } } + + description { state, "clicked" 0.0; min, 39 13; max, 39 13; + rel1 { relative, 0.0 0.0; offset, 0 0; to, "cb_align"; } + rel2 { relative, 1.0 1.0; offset, 0 -8; to, "cb_align"; } + image { normal, "stop_button_clicked.png"; } } } +// +/////////////////////////////////////////////////////////////////// +/* Track information and misc. */ +// First object CONTAINER for LEFT "lcd" data + + part { name, "trans_Rect"; type, RECT; + description { state, "default" 0.0; min, 132 71; max, 124 71; + rel1 { relative, 1.0 1.0; offset, 19 0; to, LEFT"border"; } + rel2 { relative, 1.0 0.0; offset, 0 0; to, LEFT"panel"; } } + + description { state, "slide" 0.0; min, 0 71; max, 132 71; + rel1 { relative, 1.0 1.0; offset, 19 0; to, LEFT"border"; } + rel2 { relative, 1.0 0.0; offset, 0 0; to, LEFT"panel"; } } } +// + part { name, "time_arrow"; type, IMAGE; clip_to, "trans_Rect"; + description { min, 4 7; max, 4 7; state, "default" 0.0; + rel1 { relative, 0 0; offset, 6 19; to, "trans_Rect"; } + rel2 { relative, 0 0; offset, 0 0; to, "trans_Rect"; } + image { normal, "h_arrow.png"; } + fill { smooth, 1; } } } + + part { name, "player.time"; type, TEXT; mouse_events, 0; clip_to, "trans_Rect"; + description { state, "default" 0.0; visible, 1; + rel1 { to, "trans_Rect"; relative, 0 0; offset, 10 14; } + rel2 { to, "trans_Rect"; relative, 0.5 0; offset, 0 0; } + color, 76 67 88 255; + text { text, "00:00"; font, "Edje.visitor1"; size, 9; align, 0 0; } } } +// + part { name, "artist_bullet"; type, IMAGE; clip_to, "trans_Rect"; + description { min, 3 3; max, 3 3; state, "default" 0.0; + rel1 { relative, 0 0; offset, 2 30; to, "time_arrow"; } + rel2 { relative, 0 0; offset, 0 0; to, "time_arrow"; } + image { normal, "bullet.png"; } + fill { smooth, 1; } } } + + part { name, "artist_name"; type, TEXT; clip_to, "trans_Rect"; + description { state, "default" 0.0; + rel1 { relative, 0.0 0.0; offset, 10 13; to, "trans_Rect"; } + rel2 { relative, 1.0 1.0; offset, -4 12; to, "trans_Rect"; } + color, 76 67 88 255; + text { text, "Artist"; font, "Edje.visitor1"; size, 9; align, 0.0 0.1; } } } +// + part { name, "album_bullet"; type, IMAGE; clip_to, "trans_Rect"; + description { min, 3 3; max, 3 3; state, "default" 0.0; + rel1 { relative, 0 0; offset, 0 8; to, "artist_bullet"; } + rel2 { relative, 1 1; offset, 0 10; to, "artist_bullet"; } + image { normal, "bullet.png"; } + fill { smooth, 1; } } } + + part { name, "album_name"; type, TEXT; clip_to, "trans_Rect"; + description { state, "default" 0.0; + rel1 { relative, 0.0 0.0; offset, 0 15; to, "artist_name"; } + rel2 { relative, 1.0 1.0; offset, 0 17; to, "artist_name"; } + color, 76 67 88 255; + text { text, "Album"; font, "Edje.visitor1"; size, 9; align, 0 0; } } } +// + part { name, "song_bullet"; type, IMAGE; clip_to, "trans_Rect"; + description { min, 3 3; max, 3 3; state, "default" 0.0; + rel1 { relative, 0 0; offset, 0 11; to, "album_bullet"; } + rel2 { relative, 1 1; offset, 0 10; to, "album_bullet"; } + image { normal, "bullet.png"; } + fill { smooth, 1; } } } + + part { name, "song_name"; type, TEXT; mouse_events, 0; clip_to, "trans_Rect"; + description { state, "default" 0.0; + rel1 { relative, 0 0; offset, 0 10; to, "album_name"; } + rel2 { relative, 1 0; offset, 0 10; to, "album_name"; } + color, 76 67 88 255; + text { text, "Song"; font, "Edje.visitor1"; size, 9; align, 0 0; } } } +// + part { name, "bitrate_bullet"; type, IMAGE; clip_to, "trans_Rect"; + description { min, 3 3; max, 3 3; state, "default" 0.0; + rel1 { relative, 0 0; offset, 2 19; to, "song_bullet"; } + rel2 { relative, 0 1; offset, 0 19; to, "song_bullet"; } + image { normal, "bullet.png"; } + fill { smooth, 1; } } } + + part { name, "track_bitrate"; type, TEXT; clip_to, "trans_Rect"; + description { state, "default" 0.0; min, 20 7; max, 20 7; + rel1 { relative, 0 0; offset, 48 22; to, "trans_Rect"; } + rel2 { relative, 0 1; offset, -8 30; to, "trans_Rect"; } + color, 76 67 88 255; + text { text, "000"; font, "Edje.visitor1"; size, 9; align, 0 0; } } } +/////////////////////////////////////////////////////////////////////// +// SeekerBar + + part { name, "seekerTrough"; clip_to, "trans_Rect"; + description { state, "default" 0.0; visible, 1; min, 10 5; max, 9999 5; + rel1 { relative, 0.0 0.0; offset, 1 15; to, "trans_Rect"; } + rel2 { relative, 1.0 1.0; offset, -7 15; to, "trans_Rect"; } + image { normal, "seeker_trough.png"; border, 5 5 1 1; } } } +// + part { name, "seekerBar"; clip_to, "trans_Rect"; + description { state, "default" 0.0; visible, 1; min, 0 5; max, 9999 5; + rel1 { to, "seekerTrough"; relative, 0 0; offset, 0 0; } + rel2 { to_x, "seeker"; to_y, "seekerTrough"; relative, 0 1; offset, 0 -1; } + image { normal, "seeker_bar.png"; border, 5 5 1 1; } } } +// + part { name, "seeker"; type, RECT; clip_to, "trans_Rect"; + dragable { x, 1 1 1; y, 0 0 0; confine, "seekerTrough"; } + description { state, "default" 0.0; visible, 0; color, 0 0 0 255; min, 1 5; max, 1 5; + rel1 { to, "seekerTrough"; relative, 0 0; offset, 0 0; } + rel2 { to, "seekerTrough"; relative, 1 1; offset, -1 -1; } } } +// + part { name, "switch_stance"; type, RECT; mouse_events, 1; clip_to, "trans_Rect"; + description { min, 10 10; max, 10 10; state, "default" 0.0; + rel1 { relative, 1.0 0.0; offset, 190 4; to, "time_arrow"; } + rel2 { relative, 1.0 0.0; offset, 0 0; to, "time_arrow"; } + color, 0 0 0 0; } } +/////////////////////////////////////////////////////////////////////// +// PLAYLIST + + part { name, "playlistPanel"; mouse_events, 1; type, RECT; + description { state, "default" 0.0; min, 0 72; max, 120 72; + rel1 { to, RIGHT"lcd"; relative, 0 1; offset, 8 0; } + rel2 { to, RIGHT"border"; relative, 0 0; offset, -8 -1; } } } + + part { name, "playlist.container"; type, RECT; mouse_events, 1; repeat_events, 1; clip_to, "playlistPanel"; + description { state, "default" 0.0; min, 0 62; max, 120 62; + rel1 { to, "playlistPanel"; relative, 0.0 0.0; offset, 0 -10; } + rel2 { to, "playlistPanel"; relative, 1.0 1.0; offset, 0 1; } + color, 0 0 0 0; } } +// + part { name, "add_button"; type, IMAGE; mouse_events, 1; clip_to, "playlistPanel"; + description { min, 14 12; max, 14 12; state, "default" 0.0; + rel1 { relative, 0 0; offset, 4 20; to, "playlistPanel"; } + rel2 { relative, 0.5 1; offset, 0 37; to, "playlistPanel"; } + image { normal, "add_track.png"; } fill { smooth, 1; } } + + description { min, 14 12; max, 14 12; state, "hilited" 0.0; + rel1 { relative, 0 0; offset, 4 20; to, "playlistPanel"; } + rel2 { relative, 0.5 1; offset, 0 37; to, "playlistPanel"; } + image { normal, "add_track_hilited.png"; } } + + description { min, 14 12; max, 14 12; state, "clicked" 0.0; + rel1 { relative, 0 0; offset, 4 20; to, "playlistPanel"; } + rel2 { relative, 0.5 1; offset, 0 37; to, "playlistPanel"; } + image { normal, "add_track_clicked.png"; } } } + + part { name, "delete_button"; type, IMAGE; mouse_events, 1; clip_to, "playlistPanel"; + description { min, 24 10; max, 24 10; state, "default" 0.0; + rel1 { relative, 0 0; offset, 57 21; to, "playlistPanel"; } + rel2 { relative, 0.5 1; offset, 0 38; to, "playlistPanel"; } + image { normal, "delete_track.png"; } fill { smooth, 1; } } + + description { min, 24 10; max, 24 10; state, "hilited" 0.0; + rel1 { relative, 0 0; offset, 57 21; to, "playlistPanel"; } + rel2 { relative, 0.5 1; offset, 0 38; to, "playlistPanel"; } + image { normal, "delete_track_hilited.png"; } } + + description { min, 24 10; max, 24 10; state, "clicked" 0.0; + rel1 { relative, 0 0; offset, 57 21; to, "playlistPanel"; } + rel2 { relative, 0.5 1; offset, 0 38; to, "playlistPanel"; } + image { normal, "delete_track_clicked.png"; } } } + + part { name, "edit_button"; type, IMAGE; mouse_events, 1; clip_to, "playlistPanel"; + description { min, 16 12; max, 16 12; state, "default" 0.0; + rel1 { relative, 0 0; offset, 104 20; to, "playlistPanel"; } + rel2 { relative, 0.5 1; offset, 10 37; to, "playlistPanel"; } + image { normal, "edit_track.png"; } fill { smooth, 1; } } + + description { min, 16 12; max, 16 12; state, "hilited" 0.0; + rel1 { relative, 0 0; offset, 104 20; to, "playlistPanel"; } + rel2 { relative, 0.5 1; offset, 10 37; to, "playlistPanel"; } + image { normal, "edit_track_hilited.png"; } } + + description { min, 16 12; max, 16 12; state, "clicked" 0.0; + rel1 { relative, 0 0; offset, 104 20; to, "playlistPanel"; } + rel2 { relative, 0.5 1; offset, 10 37; to, "playlistPanel"; } + image { normal, "edit_track_clicked.png"; } } } +/////////////////////////////////////////////////////////////////////// + part { name, "quit"; type, IMAGE; mouse_events, 1; clip_to, "trans_Rect"; + description { min, 10 10; max, 10 10; state, "default" 0.0; + rel1 { relative, 1 0; offset, 10 10; to, "switch_stance"; } + rel2 { relative, 1.0 0.0; offset, 6 0; to, "switch_stance"; } + image { normal, "close_button.png"; } + fill { smooth, 1; } } + + description { min, 10 10; max, 10 10; state, "hilited" 0.0; + rel1 { relative, 1 0; offset, 10 10; to, "switch_stance"; } + rel2 { relative, 1.0 0.0; offset, 6 0; to, "switch_stance"; } + image { normal, "close_button_hilited.png"; } + fill { smooth, 1; } } + + description { min, 10 10; max, 10 10; state, "clicked" 0.0; + rel1 { relative, 1 0; offset, 10 10; to, "switch_stance"; } + rel2 { relative, 1.0 0.0; offset, 6 0; to, "switch_stance"; } + image { normal, "close_button_clicked.png"; } + fill { smooth, 1; } } } +// diff --git a/data/themes/iio/collections/esmart_fd.edc b/data/themes/iio/collections/esmart_fd.edc new file mode 100644 index 0000000..898f6c3 --- /dev/null +++ b/data/themes/iio/collections/esmart_fd.edc @@ -0,0 +1,70 @@ + +part { name, "base"; type, IMAGE; mouse_events, 1; repeat_events, 1; + description { state, "default" 0.0; visible, 1; + rel1 { relative, 0.0 0.0; offset, 20 0; } + rel2 { relative, 1.0 1.0; offset, -18 0; } + image { border, 0 0 12 12; normal, "base_layer.png"; } + } +} + +part { name, "base.confine"; type, RECT; mouse_events, 0; + description { state, "default" 0.0; visible, 1; + rel1 { relative, 0.0 0.0; offset, 20 0; } + rel2 { relative, 1.0 1.0; offset, -20 0; } + color, 255 255 255 0; + } +} + +part { name, "base.dragable"; type, IMAGE; mouse_events, 1; + dragable { y, 0 0 0; x, 1 1 0; confine, "base.confine"; } + description { state, "default" 0.0; visible, 1; min, 11 85; + rel1 { relative, 0.5 0.5; offset, 0 0; } + rel2 { relative, 0.5 0.5; offset, 0 0; } + image { normal, "v_scrollbar.png"; border, 4 4 17 17; } + color, 255 255 255 200; + } +} + +part { name, "base_left"; type, IMAGE; repeat_events, 1; + description { state, "default" 0.0; visible, 1; + rel1 { relative, 0.0 0.0; offset, 0 0; } + rel2 { relative, 0.0 1.0; offset, 19 0; } + image { border, 18 0 12 12; normal, "bar_delay_left.png"; } + } +} + +part { name, "base.directory.clip"; type, RECT; mouse_events, 0; + description { state, "default" 0.0; visible, 1; + rel1 { relative, 0.0 0.0; offset, 15 -9; } + rel2 { relative, 0.0 1.0; offset, -2 8; to_x, "base.dragable"; } + color, 255 255 255 255; + } +} + +VPANEL("directory", "arrow_up.png", "arrow_up.png", 14, 14, + "arrow_down.png", "arrow_down.png", 14, 14, + "base.directory.clip", 0.0 0.0, 0 0, + "base.directory.clip", 1.0 1.0, 0 0, + "base.directory.clip") + +part { name, "base_right"; type, IMAGE; repeat_events, 1; + description { state, "default" 0.0; visible, 1; + rel1 { relative, 1.0 0.0; offset, -19 0; } + rel2 { relative, 1.0 1.0; offset, 0 0; } + image { border, 0 18 12 12; normal, "bar_delay_right.png"; } + } +} + +part { name, "base.files.clip"; type, RECT; mouse_events, 0; + description { state, "default" 0.0; visible, 1; + rel1 { relative, 0.5 0.0; offset, 5 -9; to_x, "base.dragable"; } + rel2 { relative, 1.0 1.0; offset, -18 8; } + color, 255 255 255 255; + } +} + +VPANEL("files", "arrow_up.png", "arrow_up.png", 14, 14, + "arrow_down.png", "arrow_down.png", 14, 14, + "base.files.clip", 0.0 0.0, 0 0, + "base.files.clip", 1.0 1.0, 0 0, + "base.files.clip") diff --git a/data/themes/iio/collections/playlist.edc b/data/themes/iio/collections/playlist.edc new file mode 100644 index 0000000..462c902 --- /dev/null +++ b/data/themes/iio/collections/playlist.edc @@ -0,0 +1,25 @@ +#define BG "background" + + part { name, BG; type, RECT; + description { state, "default" 0.0; color, 249 249 251 255; } + // Enable line bellow if you want to hilite your playlist entry + //description { state, "selected" 0.0; color, 225 222 229 255; } + description { state, "selected" 0.0; color, 249 249 251 255; } } +// + part { name, "title"; type, TEXT; mouse_events, 1; + description { state, "default" 0.0; color, 31 31 55 128; max, 103 7; + rel1 { relative, 0.0 0.0; offset, 0 0; to, BG; } + rel2 { relative, 1.0 1.0; offset, -25 2; to, BG; } + text { text, "title"; font, "Edje.visitor1"; size, 9; align, 0.0 0.0; } } + + description { state, "selected" 0.0; color, 31 31 55 255; max, 103 7; + rel1 { to, BG; relative, 0.0 0.0; offset, 0 0; } + rel2 { to, BG; relative, 1.0 1.0; offset, -25 2; } + text { text, "title"; font, "Edje.visitor1"; size, 9; align, 0.0 0.0; } } } +// + part { name, "duration"; type, TEXT; mouse_events, 1; + description { state, "default" 0.0; color, 31 31 55 128; + text { text, "00:00"; font, "Edje.visitor1"; size, 9; align, 1.0 1.0; } } + + description { state, "selected" 0.0; color, 31 31 55 255; + text { text, "00:00"; font, "Edje.visitor1"; size, 9; align, 1.0 1.0; } } } diff --git a/data/themes/iio/collections/switch.edc b/data/themes/iio/collections/switch.edc new file mode 100644 index 0000000..c6ae197 --- /dev/null +++ b/data/themes/iio/collections/switch.edc @@ -0,0 +1,219 @@ + + part { name, "small_base"; type, IMAGE; mouse_events, 0; + description { state, "default" 0.0; max, 93 187; min, 93 187; + rel1 { relative, 0.0 0.0; offset, 0 0; } + rel2 { relative, 1.0 1.0; offset, 0 0; } + image { normal, "small_base.png"; } + border, 3 3 10 20; fill { smooth, 0; } } } +// + part { name, "small_lcd"; type, IMAGE; mouse_events, 0; + description { state, "default" 0.0; max, 93 71; min, 93 71; align, 0.0 0.0; + rel1 { relative, 1.0 0.0; offset, 0 0; to, "small_base"; } + rel2 { relative, 1.0 1.0; offset, -1 0; to, "small_base"; } + image { normal, "small_lcd.png"; } } + + description { state, "active" 0.0; max, 93 71; min, 93 71; align, 0.0 0.0; + rel1 { relative, 1.0 0.0; offset, 0 0; to, "small_base"; } + rel2 { relative, 1.0 1.0; offset, -1 0; to, "small_base"; } + image { normal, "small_lcd_active.png"; } } } +// + part { name, "a_stop_b"; type, IMAGE; mouse_events, 0; + description { state, "default" 0.0; max, 89 25; min, 89 25; align, 0.0 0.0; + rel1 { relative, 1.0 1.0; offset, 0 0; to, "small_base"; } + rel2 { relative, 1.0 1.0; offset, -3 -2; to, "small_base"; } + image { normal, "s_b_stop.png"; } } } +// + part { name, "a_prev_b"; type, IMAGE; mouse_events, 0; + description { state, "default" 0.0; max, 25 41; min, 25 41; align, 0.0 0.0; + rel1 { relative, 0.0 0.0; offset, -2 0; to, "a_stop_b"; } + rel2 { relative, 0.5 0.0; offset, 0 -1; to, "a_stop_b"; } + image { normal, "s_b_prev.png"; } } } +// + part { name, "a_play_b"; type, IMAGE; mouse_events, 0; + description { state, "default" 0.0; max, 42 41; min, 42 41; align, 0.0 0.0; + rel1 { relative, 1.0 1.0; offset, 0 0; to, "a_prev_b"; } + rel2 { relative, 1.0 1.0; offset,42 -1; to, "a_prev_b"; } + image { normal, "s_b_play.png"; } } } +// + part { name, "a_next_b"; type, IMAGE; mouse_events, 0; + description { state, "default" 0.0; max, 26 41; min, 26 41; align, 0.0 0.0; + rel1 { relative, 1.0 1.0; offset, 0 0; to, "a_play_b"; } + rel2 { relative, 1.0 1.0; offset,42 -1; to, "a_play_b"; } + image { normal, "s_b_next.png"; } } } +// + part { name, "a_pause_b"; type, IMAGE; mouse_events, 0; + description { state, "default" 0.0; max, 93 25; min, 93 25; align, 0.0 0.0; + rel1 { relative, 1.0 0.0; offset, 0 0; to, "a_play_b"; } + rel2 { relative, 1.0 0.0; offset, 25 -1; to, "a_play_b"; } + image { normal, "s_b_pause.png"; } } } + + part { name, "peak_analyzer_img"; type, IMAGE; clip_to, "peak_analyzer_clip"; + description { state, "default" 0.0; max, 63 32; min, 63 32; align, 0.0 0.0; + + rel1 { relative, 0.5 1.0; offset, 0 0; to, "small_lcd"; } + rel2 { relative, 1.0 1.0; offset, -16 -13; to, "small_lcd"; } + + image { normal, "a_s_lcd_011.png"; } } } + + part { name, "peak_analyzer_clip"; type, RECT; + description { state, "default" 0.0; + + rel1 { relative, 0.0 0.0; to, "peak_analyzer"; } + rel2 { relative, 1.0 1.0; to, "peak_analyzer"; } } } + + part { name, "peak_analyzer_trough"; type, RECT; repeat_events, 1; + description { state, "default" 0.0; color, 0 0 0 0; + + rel1 { relative, 0.0 0.0; to, "peak_analyzer_img"; } + rel2 { relative, 1.0 1.0; to, "peak_analyzer_img"; offset, 0 32; } } } + + part { name, "peak_analyzer"; type, RECT; mouse_events, 0; + dragable { x, 0 0 0; y, 1 1 0; confine, "peak_analyzer_trough"; } + description { state, "default" 0.0; color, 0 0 0 0; min, 1 1; + + rel1 { relative, 0.0 0.0; to, "peak_analyzer_img"; } + rel2 { relative, 1.0 1.0; to, "peak_analyzer_img"; } } } +// + part { name, "time_text"; type, TEXT; mouse_events, 0; + description { state, "default" 0.0; + rel1 { relative, 0.5 1.0; offset, -10 -3; to, "small_lcd"; } + rel2 { relative, 1.0 0.5; offset, 0 0; to, "small_lcd"; } + color, 31 31 55 255; + text { text, "0:00"; font, "Edje.visitor1"; size, 9; align, 0.0 0.0; } } } +// + part { name, "_prev_button"; type, IMAGE; mouse_events, 1; + description { state, "default" 0.0; max, 13 39; min, 13 39; + rel1 { relative, 0.0 0.0; offset, 0 0; to, "a_prev_b"; } + rel2 { relative, 1.0 1.0; offset, 9 0; to, "a_prev_b"; } + image { normal, "previous_button.png"; } } + + description { state, "hilited" 0.0; max, 13 39; min, 13 39; + rel1 { relative, 0.0 0.0; offset, 0 0; to, "a_prev_b"; } + rel2 { relative, 1.0 1.0; offset, 9 0; to, "a_prev_b"; } + image { normal, "previous_button_hilited.png"; } } + + description { state, "clicked" 0.0; max, 13 39; min, 13 39; + rel1 { relative, 0.0 0.0; offset, 0 0; to, "a_prev_b"; } + rel2 { relative, 1.0 1.0; offset, 9 0; to, "a_prev_b"; } + image { normal, "previous_button_clicked.png"; } } } +// + part { name, "_pause_button"; type, IMAGE; mouse_events, 1; + description { state, "default" 0.0; max, 39 12; min, 39 12; + rel1 { relative, 0.0 0.0; offset, 0 0; to, "a_pause_b"; } + rel2 { relative, 1.0 1.0; offset, 0 8; to, "a_pause_b"; } + image { normal, "pause_button.png"; } } + + description { state, "hilited" 0.0; max, 39 12; min, 39 12; + rel1 { relative, 0.0 0.0; offset, 0 0; to, "a_pause_b"; } + rel2 { relative, 1.0 1.0; offset, 0 8; to, "a_pause_b"; } + image { normal, "pause_button_hilited.png"; } } + + description { state, "clicked" 0.0; max, 39 12; min, 39 12; + rel1 { relative, 0.0 0.0; offset, 0 0; to, "a_pause_b"; } + rel2 { relative, 1.0 1.0; offset, 0 8; to, "a_pause_b"; } + image { normal, "pause_button_clicked.png"; } } } +// + part { name, "_play_button"; type, IMAGE; mouse_events, 1; + description { state, "default" 0.0; max, 23 23; min, 23 23; + rel1 { relative, 0.0 0.0; offset, 0 0; to, "a_play_b"; } + rel2 { relative, 1.0 1.0; offset, 0 0; to, "a_play_b"; } + image { normal, "play_button.png"; } + border, 1 1 1 1; fill { smooth, 0; } } + + description { state, "hilited" 0.0; max, 23 23; min, 23 23; + rel1 { relative, 0.0 0.0; offset, 0 0; to, "a_play_b"; } + rel2 { relative, 1.0 1.0; offset, 0 0; to, "a_play_b"; } + image { normal, "play_button_hilited.png"; } + border, 1 1 1 1; + fill { smooth, 1; } } + + description { state, "clicked" 0.0; max, 23 23; min, 23 23; + rel1 { relative, 0.0 0.0; offset, 0 0; to, "a_play_b"; } + rel2 { relative, 1.0 1.0; offset, 0 0; to, "a_play_b"; } + image { normal, "play_button_clicked.png"; } + border, 1 1 1 1; + fill { smooth, 0; } } } +// + part { name, "_next_button"; type, IMAGE; mouse_events, 1; + description { state, "default" 0.0; max, 13 39; min, 13 39; + rel1 { relative, 0.0 0.0; offset, 0 0; to, "a_next_b"; } + rel2 { relative, 1.0 1.0; offset, -9 0; to, "a_next_b"; } + image { normal, "next_button.png"; } } + + description { state, "hilited" 0.0; max, 13 39; min, 13 39; + rel1 { relative, 0.0 0.0; offset, 0 0; to, "a_next_b"; } + rel2 { relative, 1.0 1.0; offset, -9 0; to, "a_next_b"; } + image { normal, "next_button_hilited.png"; } } + + description { state, "clicked" 0.0; max, 13 39; min, 13 39; + rel1 { relative, 0.0 0.0; offset, 0 0; to, "a_next_b"; } + rel2 { relative, 1.0 1.0; offset, -9 0; to, "a_next_b"; } + image { normal, "next_button_clicked.png"; } } } +// + part { name, "_stop_button"; type, IMAGE; mouse_events, 1; + description { state, "default" 0.0; max, 39 13; min, 39 13; + rel1 { relative, 0.0 0.0; offset, 0 0; to, "a_stop_b"; } + rel2 { relative, 1.0 1.0; offset, 0 -8; to, "a_stop_b"; } + image { normal, "stop_button.png"; } } + + description { state, "hilited" 0.0; max, 39 13; min, 39 13; + rel1 { relative, 0.0 0.0; offset, 0 0; to, "a_stop_b"; } + rel2 { relative, 1.0 1.0; offset, 0 -8; to, "a_stop_b"; } + image { normal, "stop_button_hilited.png"; } } + + description { state, "clicked" 0.0; max, 39 13; min, 39 13; + rel1 { relative, 0.0 0.0; offset, 0 0; to, "a_stop_b"; } + rel2 { relative, 1.0 1.0; offset, 0 -8; to, "a_stop_b"; } + image { normal, "stop_button_clicked.png"; } } } +// + part { name, "sw_base"; type, IMAGE; mouse_events, 1; + description { state, "default" 0.0; max, 13 27; min, 13 27; align, 0.0 0.0; + rel1 { relative, 0.5 1.0; offset, 0 0; to, "small_base"; } + rel2 { relative, 0.0 0.5; offset, 12 3; to, "small_base"; } + image { normal, "switch_mode.png"; } } + + description { state, "hilited" 0.0; max, 13 27; min, 13 27; align, 0.0 0.0; + rel1 { relative, 0.5 1.0; offset, 0 0; to, "small_base"; } + rel2 { relative, 0.0 0.5; offset, 12 3; to, "small_base"; } + image { normal, "switch_mode_hilited.png"; } } + + description { state, "clicked" 0.0; max, 13 27; min, 13 27; align, 0.0 0.0; + rel1 { relative, 0.5 1.0; offset, 0 0; to, "small_base"; } + rel2 { relative, 0.0 0.5; offset, 12 3; to, "small_base"; } + image { normal, "switch_mode_clicked.png"; } } } +// + part { name, "_quit"; type, IMAGE; mouse_events, 1; + description { state, "default" 0.0; max, 22 22; min, 22 22; + rel1 { relative, 1.0 0.3; offset, 0 10; to, "small_base"; } + rel2 { relative, 0.5 0.5; offset, 13 3; to, "small_base"; } + image { normal, "close_mode_button_normal.png"; } } + + description { state, "hilited" 0.0; max, 22 22; min, 22 22; + rel1 { relative, 1.0 0.3; offset, 0 10; to, "small_base"; } + rel2 { relative, 0.5 0.5; offset, 13 3; to, "small_base"; } + image { normal, "close_mode_button_hilited.png"; } } + + description { state, "clicked" 0.0; max, 22 22; min, 22 22; + rel1 { relative, 1.0 0.3; offset, 0 10; to, "small_base"; } + rel2 { relative, 0.5 0.5; offset, 13 3; to, "small_base"; } + image { normal, "close_mode_button_clicked.png"; } } } +// + part { name, "strans_Rect"; type, RECT; mouse_events, 0; + description { state, "default" 0.0; + color, 252 252 254 255; + min, 47 20; max, 47 20; + rel1 { relative, 0.5 0.5; offset, 0 15; to, "small_lcd"; } + rel2 { relative, 0.5 0.0; offset, 0 1; to, "small_lcd"; } } + + description { state, "active" 0.0; + color, 243 243 249 255; + min, 47 20; max, 47 20; + rel1 { relative, 0.5 0.5; offset, 0 15; to, "small_lcd"; } + rel2 { relative, 0.5 0.0; offset, 0 1; to, "small_lcd"; } } } +// + part { name, "song_name"; type, TEXT; mouse_events, 0; + description { state, "default" 0.0; + rel1 { relative, 0.10 0.6; offset, 0 0; to, "strans_Rect"; } + rel2 { relative, 1.0 0.0; offset, 0 0; to, "strans_Rect"; } + color, 31 31 55 255; + text { text, "song"; font, "Edje.visitor1"; size, 9; align, 0.0 0.0; } } } diff --git a/data/themes/iio/fonts/fonts.edc b/data/themes/iio/fonts/fonts.edc new file mode 100644 index 0000000..f7566e8 --- /dev/null +++ b/data/themes/iio/fonts/fonts.edc @@ -0,0 +1,2 @@ + +font, "visitor1.ttf" "Edje.visitor1"; diff --git a/data/themes/iio/fonts/visitor.txt b/data/themes/iio/fonts/visitor.txt new file mode 100644 index 0000000..c2f57d8 --- /dev/null +++ b/data/themes/iio/fonts/visitor.txt @@ -0,0 +1,86 @@ +______________________________ +Visitor Created by Brian Kent +¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ + +Thanks for Downloading Visitor. + +-Visitor TT1 [.ttf] +-Visitor TT2 [.ttf] +-Visitor [7pt] [.fon] + + 'Visitor.fon' is a Windows Bitmap Font (.fon). This font is best +used at 7pt. To use it at larger point sizes (for images), try using +a graphics program like Photo Shop, Paint Shop Pro, or the Paint +program that comes with Windows. Type out your text at the recommended +point size [7pt], then resize the image. Set the color mode to 256 +or 2 colors so the edges don't get blured when resizing, then after you +have the text to the size that you want, then change back to a higher +color mode and edit the image. + + For programs that don't show Bitmap Fonts in the Font Selector, you +may be able to get the font to work by typing in: +visitor -brk- + + The TTF versions were created different ways. TT1 was created from +within FontLab and TT2 was created in Illustrator then imported into +FontLab. I didn't know which one to include so I just included both. + + +If you have any questions or comments, you can e-mail me at +kentpw@norwich.net + +You can visit my Homepage <ÆNIGMA GAMES & FONTS> at +http://www.aenigmafonts.com/ + +____________ +!!! NOTE !!! +¯¯¯¯¯¯¯¯¯¯¯¯ +This font has been updated! I've edited the (BRK) in the font name +to just BRK. It seems that Adobe Illustrator and web pages with CSS +don't like fonts with ( and ) in their name. + +________________ +INSTALLING FONTS +¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ + There's a couple of ways to install Fonts. The 'easy' way to +install fonts is to just Unzip/place the font file(s) into your +Windows\Fonts directory (I always use this method). If you're unable +to do it the 'easy' way, then try to do it this way (for Windows +95/98/NT): + +1] Unzip the Font(s) to a folder (or somewhere, just remember where +you unzipped it) on your Computer. + +2] Next, click on the START button, then select SETTINGS then +CONTROL PANEL. + +3] When the Control Panel Window pops up, Double Click on FONTS. + +4] When the FONTS window pops up, select File then Install New Font... + +5] A Add Fonts window will pop up, just go to the folder that you +unzipped the Font(s) to, select the Font(s) and then click on OK. +Now the Font(s) are installed. + + Now you can use the Font(s) in programs the utilize Fonts. Make +sure that you install the font(s) first, then open up your apps +(so the app will recognize the font). Sometimes you'll have to +wait until you computer 'auto-refreshes' for programs to recognize +fonts (Windows is sometimes slow to do that). You can refresh your +computer quicker by going into Windows Explorer -or- My Computer and +press F5 (or in the menubar select VIEW then REFRESH). + + +__________ +DISCLAIMER +¯¯¯¯¯¯¯¯¯¯ +-The font(s) in this zip file were created by me (Brian Kent). All +of my Fonts are Freeware, you can use them any way you want to +(Personal use, Commercial use, or whatever). + +-If you have a Font related site and would like to offer my fonts on +your site, go right ahead. All I ask is that you keep this text file +intact with the Font. + +-You may not Sell or Distribute my Fonts for profit or alter them in +any way without asking me first. [e-mail - kentpw@norwich.net] \ No newline at end of file diff --git a/data/themes/iio/fonts/visitor1.ttf b/data/themes/iio/fonts/visitor1.ttf new file mode 100644 index 0000000..04ce123 Binary files /dev/null and b/data/themes/iio/fonts/visitor1.ttf differ diff --git a/data/themes/iio/hashes/containers.edc b/data/themes/iio/hashes/containers.edc new file mode 100644 index 0000000..7aeb7e9 --- /dev/null +++ b/data/themes/iio/hashes/containers.edc @@ -0,0 +1,16 @@ + /* boxtype, app id, container layout */ + item, "e,fd,container,files,direction" "vertical"; + item, "e,fd,container,directory,direction" "vertical"; + + item, "e,fd,container,files,dragbar" "files_scrollbar"; + item, "e,fd,container,directory,dragbar" "directory_scrollbar"; + + item, "e,fd,container,files" "files_list"; + item, "e,fd,container,directory" "directory_list"; + + item, "e,fd,container,scrollbar,scroll,files" "files_list"; + item, "e,fd,container,scrollbar,scroll,directory" "directory_list"; + + /* unused :( */ + item, "e,fd,container,files,spacing" "4"; + item, "e,fd,container,directory,spacing" "4"; diff --git a/data/themes/iio/hashes/window.edc b/data/themes/iio/hashes/window.edc new file mode 100644 index 0000000..c5f75e2 --- /dev/null +++ b/data/themes/iio/hashes/window.edc @@ -0,0 +1,3 @@ + item, "e,fd,window,type" "shaped"; + //item, "e,fd,window,type" "borderless"; + //item, "e,fd,window,type" "trans"; diff --git a/data/themes/iio/iio.edc b/data/themes/iio/iio.edc new file mode 100644 index 0000000..31862cd --- /dev/null +++ b/data/themes/iio/iio.edc @@ -0,0 +1,107 @@ +#include "../common.inc" + +#include "macros/vpanel.edc" +#include "macros/fd_entity.edc" + +#define RIGHT "right-" +#define LEFT "left-" + + images { +#include "img/images.edc" + } + + fonts { +#include "fonts/fonts.edc" + } + +// author: tokyo +// esmart.filedialog by atmos +// iio for euphoria +// various fixed by trill + + collections { + group { name, "euphoria"; min, 413 94; max, 413 94; + + data { + item, "shaped" "you bet"; + } + + script { + public message (Msg_Type:type, id, ...) + { + switch (id) { + case MSG_ID_SET_SONGNAME: { + new buf[128]; + + if (type != MSG_STRING_SET || numargs () < 5) + return; + + getsarg (2, buf, 128); + set_text (PART:"artist_name", buf); + + getsarg (3, buf, 128); + set_text (PART:"song_name", buf); + + getsarg (4, buf, 128); + set_text (PART:"album_name", buf); + } + } + } + } + + parts { +#include "collections/base_to.edc" + } + programs { +#include "programs/controls_to.edc" + } + } + + group { name, "playlist_item"; min, 122 9; max, 122 9; + parts { +#include "collections/playlist.edc" + } + programs { +#include "programs/playlist.edc" + } + } +/* + group { name, "alternate"; min, 93 187; max, 93 187; + parts { +#include "collections/switch.edc" + } + programs { +#include "programs/switch.edc" + } + } +*/ +group { name, "esmart.filedialog"; min, 413 188; max, 413 9999; + data { +#include "hashes/containers.edc" +#include "hashes/window.edc" + } + + parts { +#include "collections/esmart_fd.edc" + } + programs { +#include "programs/esmart_fd.edc" + } + } + group { name, "esmart.filedialog.file"; min, 80 15; max, 800 15; + parts { + FD_ENTITY("file", 1.0 0.5) + } + programs { + FD_ENTITY_PROGS("file") + } + } + group { name, "esmart.filedialog.directory"; min, 80 15; max, 800 15; + parts { + FD_ENTITY("directory", 0.0 0.5) + } + programs { + FD_ENTITY_DIRECTORY_PROGS("directory") + } + } +} diff --git a/data/themes/iio/img/a_s_lcd.png b/data/themes/iio/img/a_s_lcd.png new file mode 100644 index 0000000..f072c2f Binary files /dev/null and b/data/themes/iio/img/a_s_lcd.png differ diff --git a/data/themes/iio/img/a_s_lcd_01.png b/data/themes/iio/img/a_s_lcd_01.png new file mode 100644 index 0000000..90c35b9 Binary files /dev/null and b/data/themes/iio/img/a_s_lcd_01.png differ diff --git a/data/themes/iio/img/a_s_lcd_010.png b/data/themes/iio/img/a_s_lcd_010.png new file mode 100644 index 0000000..0610924 Binary files /dev/null and b/data/themes/iio/img/a_s_lcd_010.png differ diff --git a/data/themes/iio/img/a_s_lcd_011.png b/data/themes/iio/img/a_s_lcd_011.png new file mode 100644 index 0000000..3153283 Binary files /dev/null and b/data/themes/iio/img/a_s_lcd_011.png differ diff --git a/data/themes/iio/img/a_s_lcd_0112.png b/data/themes/iio/img/a_s_lcd_0112.png new file mode 100644 index 0000000..b3637d4 Binary files /dev/null and b/data/themes/iio/img/a_s_lcd_0112.png differ diff --git a/data/themes/iio/img/a_s_lcd_0113.png b/data/themes/iio/img/a_s_lcd_0113.png new file mode 100644 index 0000000..ec2959b Binary files /dev/null and b/data/themes/iio/img/a_s_lcd_0113.png differ diff --git a/data/themes/iio/img/a_s_lcd_0114.png b/data/themes/iio/img/a_s_lcd_0114.png new file mode 100644 index 0000000..5dab751 Binary files /dev/null and b/data/themes/iio/img/a_s_lcd_0114.png differ diff --git a/data/themes/iio/img/a_s_lcd_0115.png b/data/themes/iio/img/a_s_lcd_0115.png new file mode 100644 index 0000000..bdce4ec Binary files /dev/null and b/data/themes/iio/img/a_s_lcd_0115.png differ diff --git a/data/themes/iio/img/a_s_lcd_0116.png b/data/themes/iio/img/a_s_lcd_0116.png new file mode 100644 index 0000000..7d1d74d Binary files /dev/null and b/data/themes/iio/img/a_s_lcd_0116.png differ diff --git a/data/themes/iio/img/a_s_lcd_0117.png b/data/themes/iio/img/a_s_lcd_0117.png new file mode 100644 index 0000000..f00784e Binary files /dev/null and b/data/themes/iio/img/a_s_lcd_0117.png differ diff --git a/data/themes/iio/img/a_s_lcd_0118.png b/data/themes/iio/img/a_s_lcd_0118.png new file mode 100644 index 0000000..3774c87 Binary files /dev/null and b/data/themes/iio/img/a_s_lcd_0118.png differ diff --git a/data/themes/iio/img/a_s_lcd_0119.png b/data/themes/iio/img/a_s_lcd_0119.png new file mode 100644 index 0000000..53ed3bd Binary files /dev/null and b/data/themes/iio/img/a_s_lcd_0119.png differ diff --git a/data/themes/iio/img/a_s_lcd_0120.png b/data/themes/iio/img/a_s_lcd_0120.png new file mode 100644 index 0000000..5ba1673 Binary files /dev/null and b/data/themes/iio/img/a_s_lcd_0120.png differ diff --git a/data/themes/iio/img/a_s_lcd_0121.png b/data/themes/iio/img/a_s_lcd_0121.png new file mode 100644 index 0000000..ee983d8 Binary files /dev/null and b/data/themes/iio/img/a_s_lcd_0121.png differ diff --git a/data/themes/iio/img/a_s_lcd_0122.png b/data/themes/iio/img/a_s_lcd_0122.png new file mode 100644 index 0000000..16ed215 Binary files /dev/null and b/data/themes/iio/img/a_s_lcd_0122.png differ diff --git a/data/themes/iio/img/a_s_lcd_0123.png b/data/themes/iio/img/a_s_lcd_0123.png new file mode 100644 index 0000000..08b2626 Binary files /dev/null and b/data/themes/iio/img/a_s_lcd_0123.png differ diff --git a/data/themes/iio/img/a_s_lcd_0124.png b/data/themes/iio/img/a_s_lcd_0124.png new file mode 100644 index 0000000..beb027a Binary files /dev/null and b/data/themes/iio/img/a_s_lcd_0124.png differ diff --git a/data/themes/iio/img/a_s_lcd_0125.png b/data/themes/iio/img/a_s_lcd_0125.png new file mode 100644 index 0000000..03a5ea7 Binary files /dev/null and b/data/themes/iio/img/a_s_lcd_0125.png differ diff --git a/data/themes/iio/img/a_s_lcd_0126.png b/data/themes/iio/img/a_s_lcd_0126.png new file mode 100644 index 0000000..e0c4b8e Binary files /dev/null and b/data/themes/iio/img/a_s_lcd_0126.png differ diff --git a/data/themes/iio/img/a_s_lcd_0127.png b/data/themes/iio/img/a_s_lcd_0127.png new file mode 100644 index 0000000..fbb2b00 Binary files /dev/null and b/data/themes/iio/img/a_s_lcd_0127.png differ diff --git a/data/themes/iio/img/a_s_lcd_0128.png b/data/themes/iio/img/a_s_lcd_0128.png new file mode 100644 index 0000000..5b01422 Binary files /dev/null and b/data/themes/iio/img/a_s_lcd_0128.png differ diff --git a/data/themes/iio/img/a_s_lcd_0129.png b/data/themes/iio/img/a_s_lcd_0129.png new file mode 100644 index 0000000..f18600c Binary files /dev/null and b/data/themes/iio/img/a_s_lcd_0129.png differ diff --git a/data/themes/iio/img/a_s_lcd_0130.png b/data/themes/iio/img/a_s_lcd_0130.png new file mode 100644 index 0000000..98129a0 Binary files /dev/null and b/data/themes/iio/img/a_s_lcd_0130.png differ diff --git a/data/themes/iio/img/a_s_lcd_0131.png b/data/themes/iio/img/a_s_lcd_0131.png new file mode 100644 index 0000000..a70691b Binary files /dev/null and b/data/themes/iio/img/a_s_lcd_0131.png differ diff --git a/data/themes/iio/img/a_s_lcd_0132.png b/data/themes/iio/img/a_s_lcd_0132.png new file mode 100644 index 0000000..79933bc Binary files /dev/null and b/data/themes/iio/img/a_s_lcd_0132.png differ diff --git a/data/themes/iio/img/a_s_lcd_0133.png b/data/themes/iio/img/a_s_lcd_0133.png new file mode 100644 index 0000000..7f1ca7a Binary files /dev/null and b/data/themes/iio/img/a_s_lcd_0133.png differ diff --git a/data/themes/iio/img/a_s_lcd_02.png b/data/themes/iio/img/a_s_lcd_02.png new file mode 100644 index 0000000..cb1ee41 Binary files /dev/null and b/data/themes/iio/img/a_s_lcd_02.png differ diff --git a/data/themes/iio/img/a_s_lcd_03.png b/data/themes/iio/img/a_s_lcd_03.png new file mode 100644 index 0000000..c2213b6 Binary files /dev/null and b/data/themes/iio/img/a_s_lcd_03.png differ diff --git a/data/themes/iio/img/a_s_lcd_04.png b/data/themes/iio/img/a_s_lcd_04.png new file mode 100644 index 0000000..6374f79 Binary files /dev/null and b/data/themes/iio/img/a_s_lcd_04.png differ diff --git a/data/themes/iio/img/a_s_lcd_05.png b/data/themes/iio/img/a_s_lcd_05.png new file mode 100644 index 0000000..b5cc2f9 Binary files /dev/null and b/data/themes/iio/img/a_s_lcd_05.png differ diff --git a/data/themes/iio/img/a_s_lcd_06.png b/data/themes/iio/img/a_s_lcd_06.png new file mode 100644 index 0000000..28451f8 Binary files /dev/null and b/data/themes/iio/img/a_s_lcd_06.png differ diff --git a/data/themes/iio/img/a_s_lcd_07.png b/data/themes/iio/img/a_s_lcd_07.png new file mode 100644 index 0000000..b06808b Binary files /dev/null and b/data/themes/iio/img/a_s_lcd_07.png differ diff --git a/data/themes/iio/img/a_s_lcd_08.png b/data/themes/iio/img/a_s_lcd_08.png new file mode 100644 index 0000000..25e4ed0 Binary files /dev/null and b/data/themes/iio/img/a_s_lcd_08.png differ diff --git a/data/themes/iio/img/a_s_lcd_09.png b/data/themes/iio/img/a_s_lcd_09.png new file mode 100644 index 0000000..6310c29 Binary files /dev/null and b/data/themes/iio/img/a_s_lcd_09.png differ diff --git a/data/themes/iio/img/add_track.png b/data/themes/iio/img/add_track.png new file mode 100644 index 0000000..eb4079e Binary files /dev/null and b/data/themes/iio/img/add_track.png differ diff --git a/data/themes/iio/img/add_track_clicked.png b/data/themes/iio/img/add_track_clicked.png new file mode 100644 index 0000000..c231086 Binary files /dev/null and b/data/themes/iio/img/add_track_clicked.png differ diff --git a/data/themes/iio/img/add_track_hilited.png b/data/themes/iio/img/add_track_hilited.png new file mode 100644 index 0000000..bc1903e Binary files /dev/null and b/data/themes/iio/img/add_track_hilited.png differ diff --git a/data/themes/iio/img/align_bottom.png b/data/themes/iio/img/align_bottom.png new file mode 100644 index 0000000..0510ac1 Binary files /dev/null and b/data/themes/iio/img/align_bottom.png differ diff --git a/data/themes/iio/img/align_center.png b/data/themes/iio/img/align_center.png new file mode 100644 index 0000000..8f76c4b Binary files /dev/null and b/data/themes/iio/img/align_center.png differ diff --git a/data/themes/iio/img/align_left.png b/data/themes/iio/img/align_left.png new file mode 100644 index 0000000..81ef965 Binary files /dev/null and b/data/themes/iio/img/align_left.png differ diff --git a/data/themes/iio/img/align_right.png b/data/themes/iio/img/align_right.png new file mode 100644 index 0000000..86b7cf7 Binary files /dev/null and b/data/themes/iio/img/align_right.png differ diff --git a/data/themes/iio/img/align_top.png b/data/themes/iio/img/align_top.png new file mode 100644 index 0000000..dd6bc7d Binary files /dev/null and b/data/themes/iio/img/align_top.png differ diff --git a/data/themes/iio/img/arrow_down.png b/data/themes/iio/img/arrow_down.png new file mode 100644 index 0000000..70c5e06 Binary files /dev/null and b/data/themes/iio/img/arrow_down.png differ diff --git a/data/themes/iio/img/arrow_up.png b/data/themes/iio/img/arrow_up.png new file mode 100644 index 0000000..c3df0e7 Binary files /dev/null and b/data/themes/iio/img/arrow_up.png differ diff --git a/data/themes/iio/img/bar_delay_clicked.png b/data/themes/iio/img/bar_delay_clicked.png new file mode 100644 index 0000000..9e3d0cc Binary files /dev/null and b/data/themes/iio/img/bar_delay_clicked.png differ diff --git a/data/themes/iio/img/bar_delay_hilited.png b/data/themes/iio/img/bar_delay_hilited.png new file mode 100644 index 0000000..29a8403 Binary files /dev/null and b/data/themes/iio/img/bar_delay_hilited.png differ diff --git a/data/themes/iio/img/bar_delay_left.png b/data/themes/iio/img/bar_delay_left.png new file mode 100644 index 0000000..c424c65 Binary files /dev/null and b/data/themes/iio/img/bar_delay_left.png differ diff --git a/data/themes/iio/img/bar_delay_right.png b/data/themes/iio/img/bar_delay_right.png new file mode 100644 index 0000000..50780a5 Binary files /dev/null and b/data/themes/iio/img/bar_delay_right.png differ diff --git a/data/themes/iio/img/bar_delay_right_clicked.png b/data/themes/iio/img/bar_delay_right_clicked.png new file mode 100644 index 0000000..6310046 Binary files /dev/null and b/data/themes/iio/img/bar_delay_right_clicked.png differ diff --git a/data/themes/iio/img/bar_delay_right_hilited.png b/data/themes/iio/img/bar_delay_right_hilited.png new file mode 100644 index 0000000..71adb40 Binary files /dev/null and b/data/themes/iio/img/bar_delay_right_hilited.png differ diff --git a/data/themes/iio/img/base_anim.png b/data/themes/iio/img/base_anim.png new file mode 100644 index 0000000..440a360 Binary files /dev/null and b/data/themes/iio/img/base_anim.png differ diff --git a/data/themes/iio/img/base_layer.png b/data/themes/iio/img/base_layer.png new file mode 100644 index 0000000..c94b1df Binary files /dev/null and b/data/themes/iio/img/base_layer.png differ diff --git a/data/themes/iio/img/bullet.png b/data/themes/iio/img/bullet.png new file mode 100644 index 0000000..6aa34c1 Binary files /dev/null and b/data/themes/iio/img/bullet.png differ diff --git a/data/themes/iio/img/close_button.png b/data/themes/iio/img/close_button.png new file mode 100644 index 0000000..5c1feed Binary files /dev/null and b/data/themes/iio/img/close_button.png differ diff --git a/data/themes/iio/img/close_button_clicked.png b/data/themes/iio/img/close_button_clicked.png new file mode 100644 index 0000000..9607e11 Binary files /dev/null and b/data/themes/iio/img/close_button_clicked.png differ diff --git a/data/themes/iio/img/close_button_hilited.png b/data/themes/iio/img/close_button_hilited.png new file mode 100644 index 0000000..6d4cc55 Binary files /dev/null and b/data/themes/iio/img/close_button_hilited.png differ diff --git a/data/themes/iio/img/close_mode_button_clicked.png b/data/themes/iio/img/close_mode_button_clicked.png new file mode 100644 index 0000000..35c53ae Binary files /dev/null and b/data/themes/iio/img/close_mode_button_clicked.png differ diff --git a/data/themes/iio/img/close_mode_button_hilited.png b/data/themes/iio/img/close_mode_button_hilited.png new file mode 100644 index 0000000..9388afb Binary files /dev/null and b/data/themes/iio/img/close_mode_button_hilited.png differ diff --git a/data/themes/iio/img/close_mode_button_normal.png b/data/themes/iio/img/close_mode_button_normal.png new file mode 100644 index 0000000..bc4423b Binary files /dev/null and b/data/themes/iio/img/close_mode_button_normal.png differ diff --git a/data/themes/iio/img/delete_track.png b/data/themes/iio/img/delete_track.png new file mode 100644 index 0000000..b5c7b8d Binary files /dev/null and b/data/themes/iio/img/delete_track.png differ diff --git a/data/themes/iio/img/delete_track_clicked.png b/data/themes/iio/img/delete_track_clicked.png new file mode 100644 index 0000000..75c2e74 Binary files /dev/null and b/data/themes/iio/img/delete_track_clicked.png differ diff --git a/data/themes/iio/img/delete_track_hilited.png b/data/themes/iio/img/delete_track_hilited.png new file mode 100644 index 0000000..3759e00 Binary files /dev/null and b/data/themes/iio/img/delete_track_hilited.png differ diff --git a/data/themes/iio/img/edit_track.png b/data/themes/iio/img/edit_track.png new file mode 100644 index 0000000..fb04d0f Binary files /dev/null and b/data/themes/iio/img/edit_track.png differ diff --git a/data/themes/iio/img/edit_track_clicked.png b/data/themes/iio/img/edit_track_clicked.png new file mode 100644 index 0000000..d7ea305 Binary files /dev/null and b/data/themes/iio/img/edit_track_clicked.png differ diff --git a/data/themes/iio/img/edit_track_hilited.png b/data/themes/iio/img/edit_track_hilited.png new file mode 100644 index 0000000..4e6b2d5 Binary files /dev/null and b/data/themes/iio/img/edit_track_hilited.png differ diff --git a/data/themes/iio/img/h_arrow.png b/data/themes/iio/img/h_arrow.png new file mode 100644 index 0000000..28c0b0d Binary files /dev/null and b/data/themes/iio/img/h_arrow.png differ diff --git a/data/themes/iio/img/images.edc b/data/themes/iio/img/images.edc new file mode 100644 index 0000000..b390832 --- /dev/null +++ b/data/themes/iio/img/images.edc @@ -0,0 +1,101 @@ +// Syntax: images { image "name" COMPRESSION_TYPE; } + + image, "seeker_bar.png" RAW; + image, "seeker_trough.png" RAW; + image, "small_base.png" LOSSY 98; + image, "small_lcd.png" LOSSY 98; + image, "small_lcd_active.png" LOSSY 98; + image, "base_layer.png" LOSSY 98; + image, "lcd_window.png" LOSSY 98; + image, "bullet.png" LOSSY 98; + image, "h_arrow.png" LOSSY 98; + image, "s_b_pause.png" RAW; + image, "s_b_prev.png" RAW; + image, "s_b_play.png" RAW; + image, "s_b_next.png" RAW; + image, "s_b_stop.png" RAW; + /* unused + image, "a_s_lcd.png" LOSSY 98; + image, "a_s_lcd_01.png" LOSSY 98; + image, "a_s_lcd_02.png" LOSSY 98; + image, "a_s_lcd_03.png" LOSSY 98; + image, "a_s_lcd_04.png" LOSSY 98; + image, "a_s_lcd_05.png" LOSSY 98; + image, "a_s_lcd_06.png" LOSSY 98; + image, "a_s_lcd_07.png" LOSSY 98; + image, "a_s_lcd_08.png" LOSSY 98; + image, "a_s_lcd_09.png" LOSSY 98; + image, "a_s_lcd_010.png" LOSSY 98;*/ + image, "a_s_lcd_011.png" LOSSY 98; + /* unused + image, "a_s_lcd_0112.png" LOSSY 98; + image, "a_s_lcd_0113.png" LOSSY 98; + image, "a_s_lcd_0114.png" LOSSY 98; + image, "a_s_lcd_0115.png" LOSSY 98; + image, "a_s_lcd_0116.png" LOSSY 98; + image, "a_s_lcd_0117.png" LOSSY 98; + image, "a_s_lcd_0118.png" LOSSY 98; + image, "a_s_lcd_0119.png" LOSSY 98; + image, "a_s_lcd_0120.png" LOSSY 98; + image, "a_s_lcd_0121.png" LOSSY 98; + image, "a_s_lcd_0122.png" LOSSY 98; + image, "a_s_lcd_0123.png" LOSSY 98; + image, "a_s_lcd_0124.png" LOSSY 98; + image, "a_s_lcd_0125.png" LOSSY 98; + image, "a_s_lcd_0126.png" LOSSY 98; + image, "a_s_lcd_0127.png" LOSSY 98; + image, "a_s_lcd_0128.png" LOSSY 98; + image, "a_s_lcd_0129.png" LOSSY 98; + image, "a_s_lcd_0130.png" LOSSY 98; + image, "a_s_lcd_0131.png" LOSSY 98; + image, "a_s_lcd_0132.png" LOSSY 98; + image, "a_s_lcd_0133.png" LOSSY 98;*/ + image, "bar_delay_left.png" LOSSY 98; + image, "bar_delay_right.png" LOSSY 98; + image, "align_top.png" LOSSY 98; + image, "align_left.png" LOSSY 98; + image, "align_center.png" LOSSY 98; + image, "align_right.png" LOSSY 98; + image, "align_bottom.png" LOSSY 98; + image, "previous_button.png" RAW; + image, "previous_button_hilited.png" RAW; + image, "previous_button_clicked.png" RAW; + image, "pause_button.png" RAW; + image, "pause_button_hilited.png" RAW; + image, "pause_button_clicked.png" RAW; + image, "play_button.png" RAW; + image, "play_button_hilited.png" RAW; + image, "play_button_clicked.png" RAW; + image, "next_button.png" RAW; + image, "next_button_hilited.png" RAW; + image, "next_button_clicked.png" RAW; + image, "stop_button.png" RAW; + image, "stop_button_hilited.png" RAW; + image, "stop_button_clicked.png" RAW; + image, "switch_mode.png" LOSSY 98; + image, "switch_mode_hilited.png" LOSSY 98; + image, "switch_mode_clicked.png" LOSSY 98; + image, "close_mode_button_normal.png" LOSSY 98; + image, "close_mode_button_hilited.png" LOSSY 98; + image, "close_mode_button_clicked.png" LOSSY 98; + image, "close_button.png" LOSSY 98; + image, "close_button_hilited.png" LOSSY 98; + image, "close_button_clicked.png" LOSSY 98; + image, "switch_button.png" LOSSY 98; + image, "switch_button_hilited.png" LOSSY 98; + image, "switch_button_clicked.png" LOSSY 98; + image, "add_track.png" LOSSY 98; + image, "add_track_hilited.png" LOSSY 98; + image, "add_track_clicked.png" LOSSY 98; + image, "delete_track.png" LOSSY 98; + image, "delete_track_hilited.png" LOSSY 98; + image, "delete_track_clicked.png" LOSSY 98; + image, "edit_track.png" LOSSY 98; + image, "edit_track_hilited.png" LOSSY 98; + image, "edit_track_clicked.png" LOSSY 98; + image, "arrow_up.png" LOSSY 98; + image, "arrow_down.png" LOSSY 98; + image, "v_scrollbar.png" LOSSY 98; + image, "v_scrollbar_base.png" LOSSY 98; + + diff --git a/data/themes/iio/img/lcd_window.png b/data/themes/iio/img/lcd_window.png new file mode 100644 index 0000000..c504462 Binary files /dev/null and b/data/themes/iio/img/lcd_window.png differ diff --git a/data/themes/iio/img/left_panel.png b/data/themes/iio/img/left_panel.png new file mode 100644 index 0000000..14c043f Binary files /dev/null and b/data/themes/iio/img/left_panel.png differ diff --git a/data/themes/iio/img/next_button.png b/data/themes/iio/img/next_button.png new file mode 100644 index 0000000..fff2a02 Binary files /dev/null and b/data/themes/iio/img/next_button.png differ diff --git a/data/themes/iio/img/next_button_clicked.png b/data/themes/iio/img/next_button_clicked.png new file mode 100644 index 0000000..52ae02d Binary files /dev/null and b/data/themes/iio/img/next_button_clicked.png differ diff --git a/data/themes/iio/img/next_button_hilited.png b/data/themes/iio/img/next_button_hilited.png new file mode 100644 index 0000000..5efea67 Binary files /dev/null and b/data/themes/iio/img/next_button_hilited.png differ diff --git a/data/themes/iio/img/pause_button.png b/data/themes/iio/img/pause_button.png new file mode 100644 index 0000000..d6513f3 Binary files /dev/null and b/data/themes/iio/img/pause_button.png differ diff --git a/data/themes/iio/img/pause_button_clicked.png b/data/themes/iio/img/pause_button_clicked.png new file mode 100644 index 0000000..c02b3ad Binary files /dev/null and b/data/themes/iio/img/pause_button_clicked.png differ diff --git a/data/themes/iio/img/pause_button_hilited.png b/data/themes/iio/img/pause_button_hilited.png new file mode 100644 index 0000000..698afa0 Binary files /dev/null and b/data/themes/iio/img/pause_button_hilited.png differ diff --git a/data/themes/iio/img/play_button.png b/data/themes/iio/img/play_button.png new file mode 100644 index 0000000..8bee5cd Binary files /dev/null and b/data/themes/iio/img/play_button.png differ diff --git a/data/themes/iio/img/play_button_clicked.png b/data/themes/iio/img/play_button_clicked.png new file mode 100644 index 0000000..5a7f8d4 Binary files /dev/null and b/data/themes/iio/img/play_button_clicked.png differ diff --git a/data/themes/iio/img/play_button_hilited.png b/data/themes/iio/img/play_button_hilited.png new file mode 100644 index 0000000..ec17aa8 Binary files /dev/null and b/data/themes/iio/img/play_button_hilited.png differ diff --git a/data/themes/iio/img/previous_button.png b/data/themes/iio/img/previous_button.png new file mode 100644 index 0000000..2431a9a Binary files /dev/null and b/data/themes/iio/img/previous_button.png differ diff --git a/data/themes/iio/img/previous_button_clicked.png b/data/themes/iio/img/previous_button_clicked.png new file mode 100644 index 0000000..07430ed Binary files /dev/null and b/data/themes/iio/img/previous_button_clicked.png differ diff --git a/data/themes/iio/img/previous_button_hilited.png b/data/themes/iio/img/previous_button_hilited.png new file mode 100644 index 0000000..7e5cad0 Binary files /dev/null and b/data/themes/iio/img/previous_button_hilited.png differ diff --git a/data/themes/iio/img/right_panel.png b/data/themes/iio/img/right_panel.png new file mode 100644 index 0000000..6ded5cf Binary files /dev/null and b/data/themes/iio/img/right_panel.png differ diff --git a/data/themes/iio/img/s_b_next.png b/data/themes/iio/img/s_b_next.png new file mode 100644 index 0000000..a0a55e3 Binary files /dev/null and b/data/themes/iio/img/s_b_next.png differ diff --git a/data/themes/iio/img/s_b_pause.png b/data/themes/iio/img/s_b_pause.png new file mode 100644 index 0000000..22fbb82 Binary files /dev/null and b/data/themes/iio/img/s_b_pause.png differ diff --git a/data/themes/iio/img/s_b_play.png b/data/themes/iio/img/s_b_play.png new file mode 100644 index 0000000..1f63439 Binary files /dev/null and b/data/themes/iio/img/s_b_play.png differ diff --git a/data/themes/iio/img/s_b_prev.png b/data/themes/iio/img/s_b_prev.png new file mode 100644 index 0000000..3b89ae1 Binary files /dev/null and b/data/themes/iio/img/s_b_prev.png differ diff --git a/data/themes/iio/img/s_b_stop.png b/data/themes/iio/img/s_b_stop.png new file mode 100644 index 0000000..3faee58 Binary files /dev/null and b/data/themes/iio/img/s_b_stop.png differ diff --git a/data/themes/iio/img/seeker_bar.png b/data/themes/iio/img/seeker_bar.png new file mode 100644 index 0000000..1893f78 Binary files /dev/null and b/data/themes/iio/img/seeker_bar.png differ diff --git a/data/themes/iio/img/seeker_trough.png b/data/themes/iio/img/seeker_trough.png new file mode 100644 index 0000000..252e3c0 Binary files /dev/null and b/data/themes/iio/img/seeker_trough.png differ diff --git a/data/themes/iio/img/small_base.png b/data/themes/iio/img/small_base.png new file mode 100644 index 0000000..35c02ce Binary files /dev/null and b/data/themes/iio/img/small_base.png differ diff --git a/data/themes/iio/img/small_lcd.png b/data/themes/iio/img/small_lcd.png new file mode 100644 index 0000000..fb7818c Binary files /dev/null and b/data/themes/iio/img/small_lcd.png differ diff --git a/data/themes/iio/img/small_lcd_active.png b/data/themes/iio/img/small_lcd_active.png new file mode 100644 index 0000000..006406c Binary files /dev/null and b/data/themes/iio/img/small_lcd_active.png differ diff --git a/data/themes/iio/img/stop_button.png b/data/themes/iio/img/stop_button.png new file mode 100644 index 0000000..a1f3aaa Binary files /dev/null and b/data/themes/iio/img/stop_button.png differ diff --git a/data/themes/iio/img/stop_button_clicked.png b/data/themes/iio/img/stop_button_clicked.png new file mode 100644 index 0000000..dbafd07 Binary files /dev/null and b/data/themes/iio/img/stop_button_clicked.png differ diff --git a/data/themes/iio/img/stop_button_hilited.png b/data/themes/iio/img/stop_button_hilited.png new file mode 100644 index 0000000..507d5d4 Binary files /dev/null and b/data/themes/iio/img/stop_button_hilited.png differ diff --git a/data/themes/iio/img/switch_button.png b/data/themes/iio/img/switch_button.png new file mode 100644 index 0000000..0551a9f Binary files /dev/null and b/data/themes/iio/img/switch_button.png differ diff --git a/data/themes/iio/img/switch_button_clicked.png b/data/themes/iio/img/switch_button_clicked.png new file mode 100644 index 0000000..15838b4 Binary files /dev/null and b/data/themes/iio/img/switch_button_clicked.png differ diff --git a/data/themes/iio/img/switch_button_hilited.png b/data/themes/iio/img/switch_button_hilited.png new file mode 100644 index 0000000..5e0b183 Binary files /dev/null and b/data/themes/iio/img/switch_button_hilited.png differ diff --git a/data/themes/iio/img/switch_mode.png b/data/themes/iio/img/switch_mode.png new file mode 100644 index 0000000..7dcd1ee Binary files /dev/null and b/data/themes/iio/img/switch_mode.png differ diff --git a/data/themes/iio/img/switch_mode_clicked.png b/data/themes/iio/img/switch_mode_clicked.png new file mode 100644 index 0000000..563db9a Binary files /dev/null and b/data/themes/iio/img/switch_mode_clicked.png differ diff --git a/data/themes/iio/img/switch_mode_hilited.png b/data/themes/iio/img/switch_mode_hilited.png new file mode 100644 index 0000000..36c827a Binary files /dev/null and b/data/themes/iio/img/switch_mode_hilited.png differ diff --git a/data/themes/iio/img/v_scrollbar.png b/data/themes/iio/img/v_scrollbar.png new file mode 100644 index 0000000..8e905f4 Binary files /dev/null and b/data/themes/iio/img/v_scrollbar.png differ diff --git a/data/themes/iio/img/v_scrollbar_base.png b/data/themes/iio/img/v_scrollbar_base.png new file mode 100644 index 0000000..cdbd93c Binary files /dev/null and b/data/themes/iio/img/v_scrollbar_base.png differ diff --git a/data/themes/iio/macros/fd_entity.edc b/data/themes/iio/macros/fd_entity.edc new file mode 100644 index 0000000..2030ece --- /dev/null +++ b/data/themes/iio/macros/fd_entity.edc @@ -0,0 +1,67 @@ +#define FD_ENTITY(pname, talign) \ +part { name, pname".name"; type, TEXT; mouse_events, 0; effect, NONE; \ + description { \ + state, "default" 0.0; visible, 1; \ + rel1 { relative, 0.0 0.0; offset, 5 0; } \ + rel2 { relative, 1.0 1.0; offset, -5 0; } \ + color, 150 150 160 255; text {text,"";font,"Edje.visitor1"; \ + size, 9; align, talign; fit, 0 0; } } \ + description { \ + state, "hilited" 0.0; visible, 1; \ + rel1 { relative, 0.0 0.0; offset, 5 0; } \ + rel2 { relative, 1.0 1.0; offset, -5 0; } \ + color, 31 31 55 255; \ + text {text,"";font,"Edje.visitor1"; size, 9; align, talign; fit, 0 0; } } \ + } \ +part { name, "base"; type, RECT; mouse_events, 1; repeat_events, 1; \ + description { state, "default" 0.0; visible, 1; \ + rel1 { relative, 0.0 0.0; offset, 0 0; } \ + rel2 { relative, 1.0 1.0; offset, 0 0; } \ + color, 255 255 255 0; } \ + description { state, "hilited" 0.0; visible, 1; \ + rel1 { relative, 0.0 0.0; offset, 0 0; } \ + rel2 { relative, 1.0 1.0; offset, 0 0; } \ + color, 100 100 100 0; } } +#define FD_ENTITY_PROGS(pname) \ +program { name, pname"_fd_right_clicked"; signal, "mouse,clicked,3"; \ + source, "base"; action, SIGNAL_EMIT "e,fd,"pname",unselected" ""; } \ +program { name, pname"_fd_double_clicked"; signal, "mouse,down,1,double"; \ + source, "base"; action, SIGNAL_EMIT "e,fd,"pname",load" ""; } \ +program { name, pname"_fd_clicked_kill"; signal, "mouse,down,1,double"; \ + source, "base"; action, ACTION_STOP; target, pname"_fd_clicked"; } \ +program { name, pname"_fd_clicked"; signal, "mouse,down,1"; \ + source, "base"; action, SIGNAL_EMIT "e,fd,"pname",selected" ""; \ + in, 0.25 0.0; } \ +program { name, pname"_file_mouse_in_stop"; signal, "mouse,in"; \ + source, "base"; action, ACTION_STOP; target, pname"_file_mouse_out"; } \ +program { name, pname"_file_mouse_in_start"; signal, "mouse,in"; \ + source, "base"; action, STATE_SET "hilited" 0.0; target, "base"; \ + target, pname".name"; transition, ACCELERATE 0.25; } \ +program { name, pname"_file_mouse_out"; signal, "mouse,out"; \ + source, "base"; action, STATE_SET "default" 0.0; target, "base"; \ + target, pname".name"; transition, DECELERATE 0.25; in, 0.25 0.0; } +#define FD_ENTITY_DIRECTORY_PROGS(pname) \ +program { name, pname"_fd_dir_triple_clicked"; signal, "mouse,down,1,triple"; \ + source, "base"; action, SIGNAL_EMIT "e,fd,"pname",load,recursive" ""; } \ +program { name, pname"_fd_dir_double_clicked_kill"; \ + signal, "mouse,down,1,triple"; source, "base"; \ + action, ACTION_STOP; target, pname"_fd_dir_double_clicked"; \ + target, pname"_fd_dir_clicked"; } \ +program { name, pname"_fd_dir_right_clicked"; signal, "mouse,clicked,3"; \ + source, "base"; action, SIGNAL_EMIT "e,fd,"pname",unselected" ""; } \ +program { name, pname"_fd_dir_double_clicked"; signal, "mouse,down,1,double"; \ + source, "base"; action, SIGNAL_EMIT "e,fd,"pname",load" ""; in, 0.25 0.0; } \ +program { name, pname"_fd_dir_clicked_kill"; \ + signal, "mouse,down,1,double"; source, "base"; \ + action, ACTION_STOP; target, pname"_fd_dir_clicked"; } \ +program { name, pname"_fd_dir_clicked"; signal, "mouse,down,1"; \ + source, "base"; action, SIGNAL_EMIT "e,fd,"pname",selected" ""; \ + in, 0.25 0.0; } \ +program { name, pname"_file_dir_mouse_in_stop"; signal, "mouse,in"; \ + source, "base"; action, ACTION_STOP; target, pname"_file_dir_mouse_out"; } \ +program { name, pname"_file_dir_mouse_in_start"; signal, "mouse,in"; \ + source, "base"; action, STATE_SET "hilited" 0.0; target, "base"; \ + target, pname".name"; transition, ACCELERATE 0.25; } \ +program { name, pname"_file_dir_mouse_out"; signal, "mouse,out"; \ + source, "base"; action, STATE_SET "default" 0.0; target, "base"; \ + target, pname".name"; transition, DECELERATE 0.25; in, 0.25 0.0; } diff --git a/data/themes/iio/macros/vpanel.edc b/data/themes/iio/macros/vpanel.edc new file mode 100644 index 0000000..5a1ee3b --- /dev/null +++ b/data/themes/iio/macros/vpanel.edc @@ -0,0 +1,410 @@ +#define V_PREV_REL(NAME) \ + rel1 { to, NAME"_scrollbar_trough_img"; relative, 0.5 0.0; offset, -7 -14; } \ + rel2 { to, NAME"_scrollbar_trough_img"; relative, 0.5 0.0; offset, 7 0; } +#define V_NEXT_REL(NAME) \ + rel1 { to, NAME"_scrollbar_trough_img"; relative, 0.0 1.0; offset, -7 0; } \ + rel2 { to, NAME"_scrollbar_trough_img"; relative, 1.0 1.0; offset, 7 14; } +#define VPANEL(NAME, BIMG, BIMG2, BW, BH, NIMG, NIMG2, NW, NH, REL1_TO, \ + REL1_REL, REL1_OFF, REL2_TO, REL2_REL, REL2_OFF, CLIPTO) \ + part { \ + name, NAME"_rect"; \ + clip_to, CLIPTO; \ + type, RECT; \ + mouse_events, 0; \ + description { \ + state, "default" 0.0; \ + color, 255 0 0 0; \ + rel1 { \ + to, REL1_TO; \ + relative, REL1_REL; \ + offset, REL1_OFF; \ + } \ + rel2 { \ + to, REL2_TO; \ + relative, REL2_REL; \ + offset, REL2_OFF; \ + } \ + } \ + } \ + part { \ + name, NAME"_list_border"; \ + clip_to, CLIPTO; \ + type, IMAGE; \ + repeat_events, 1; \ + description { \ + state, "default" 0.0; \ + rel1 { \ + to, NAME"_rect"; \ + relative, 0.0 0.0; \ + offset, 3 9; \ + } \ + rel2 { \ + to, NAME"_rect"; \ + relative, 1.0 1.0; \ + offset, -3 -10; \ + } \ + image { \ + normal, "lcd_window.png"; \ + border, 9 9 14 10; \ + } \ + } \ + } \ + part { \ + name, NAME"_scrollbar_trough_img"; \ + clip_to, CLIPTO; \ + type, IMAGE; \ + mouse_events, 0; \ + description { \ + state, "default" 0.0; \ + color, 255 255 255 255; \ + rel1 { \ + to, NAME"_rect"; \ + relative, 1.0 0.0; \ + offset, -25 45; \ + } \ + rel2 { \ + to, NAME"_rect"; \ + relative, 1.0 1.0; \ + offset, -14 -45; \ + } \ + image { \ + normal, "v_scrollbar_base.png"; \ + border, 6 6 20 20; \ + } \ + } \ + } \ + part { \ + name, NAME"_scrollbar_trough"; \ + clip_to, CLIPTO; \ + type, RECT; \ + mouse_events, 1; \ + description { \ + state, "default" 0.0; \ + color, 192 192 192 0; \ + rel1 { \ + to, NAME"_scrollbar_trough_img"; \ + relative, 0.0 0.0; \ + offset, 0 0; \ + } \ + rel2 { \ + to, NAME"_scrollbar_trough_img"; \ + relative, 1.0 1.0; \ + offset, 0 0; \ + } \ + } \ + } \ + part { \ + name, NAME"_scrollbar"; \ + clip_to, CLIPTO; \ + type, IMAGE; \ + mouse_events, 1; \ + dragable { \ + x, 0 0 0; \ + y, 1 1 0; \ + confine, NAME"_scrollbar_trough"; \ + } \ + description { \ + state, "default" 0.0; \ + min, 11 35; \ + align, 0.5 0.5; \ + rel1 { \ + relative, 0.5 0.0; \ + offset, 0 0; \ + to, NAME"_scrollbar_trough";\ + } \ + rel2 { \ + relative, 0.5 0.0; \ + offset, 0 35; \ + to, NAME"_scrollbar_trough";\ + } \ + image { \ + normal, "v_scrollbar.png"; \ + } \ + } \ + description { \ + state, "down" 0.0; \ + min, 11 35; \ + rel1 { \ + relative, 0.5 0.0; \ + offset, 0 0; \ + to, NAME"_scrollbar_trough";\ + } \ + rel2 { \ + relative, 0.5 0.0; \ + offset, 0 35; \ + to, NAME"_scrollbar_trough";\ + } \ + image { \ + normal, "v_scrollbar.png"; \ + } \ + color, 255 255 255 127; \ + } \ + } \ + part { \ + name, NAME"_back"; \ + clip_to, CLIPTO; \ + description { \ + state, "default" 0.0; \ + min, BW BH; \ + max, BW BH; \ + color, 255 255 255 127; \ + V_PREV_REL(NAME) \ + image { \ + normal, BIMG; \ + } \ + } \ + description { \ + state, "over" 0.0; \ + min, BW BH; \ + max, BW BH; \ + color, 255 255 255 255; \ + V_PREV_REL(NAME) \ + image { \ + normal, BIMG; \ + } \ + } \ + description { \ + state, "down" 0.0; \ + min, BW BH; \ + max, BW BH; \ + color, 255 255 255 255; \ + V_PREV_REL(NAME) \ + image { \ + normal, BIMG2; \ + } \ + } \ + } \ + part { \ + name, NAME"_next"; \ + clip_to, CLIPTO; \ + description { \ + state, "default" 0.0; \ + min, NW NH; \ + max, NW NH; \ + color, 255 255 255 127; \ + V_NEXT_REL(NAME) \ + image { \ + normal, NIMG; \ + } \ + } \ + description { \ + state, "over" 0.0; \ + min, NW NH; \ + max, NW NH; \ + color, 255 255 255 255; \ + V_NEXT_REL(NAME) \ + image { \ + normal, NIMG; \ + } \ + } \ + description { \ + state, "down" 0.0; \ + min, NW NH; \ + max, NW NH; \ + color, 255 255 255 255; \ + V_NEXT_REL(NAME) \ + image { \ + normal, NIMG2; \ + } \ + } \ + } \ + part { \ + name, NAME"_list"; \ + clip_to, NAME"_list_clip"; \ + type, RECT; \ + mouse_events, 0; \ + description { \ + state, "default" 0.0; \ + color, 255 0 0 0; \ + rel1 { \ + to, NAME"_rect"; \ + relative, 0.0 0.0; \ + offset, 15 30; \ + } \ + rel2 { \ + to, NAME"_rect"; \ + relative, 1.0 1.0; \ + offset, -30 -30; \ + } \ + } \ + } \ + part { \ + name, NAME"_list_clip"; \ + clip_to, CLIPTO; \ + type, RECT; \ + description { \ + state, "default" 0.0; \ + color, 255 255 255 255; \ + rel1 { \ + to, NAME"_rect"; \ + relative, 0.0 0.0; \ + offset, 5 10; \ + } \ + rel2 { \ + to, NAME"_rect"; \ + relative, 1.0 1.0; \ + offset, -15 -10; \ + } \ + } \ + } \ + part { \ + name, NAME"_wheel_rect"; \ + clip_to, CLIPTO; \ + type, RECT; \ + mouse_events, 1; \ + repeat_events, 1; \ + description { \ + state, "default" 0.0; \ + color, 255 0 0 0; \ + rel1 { \ + to, REL1_TO; \ + relative, REL1_REL; \ + offset, REL1_OFF; \ + } \ + rel2 { \ + to, REL2_TO; \ + relative, REL2_REL; \ + offset, REL2_OFF; \ + } \ + } \ + } + +#define STEP_TIME 0.31 +#define SCROLL_TIME 0.3 + +#define VPANEL_PROG(NAME, SIGBACK, SIGNEXT, SIGDRAG) \ + program { \ + name, NAME"_back-in"; \ + signal, "mouse,in"; \ + source, NAME"_back"; \ + action, STATE_SET "over" 0.0; \ + transition, DECELERATE 0.5; \ + target, NAME"_back"; \ + } \ + program { \ + name, NAME"_back-out"; \ + signal, "mouse,out"; \ + source, NAME"_back"; \ + action, STATE_SET "default" 0.0;\ + transition, DECELERATE 0.5; \ + target, NAME"_back"; \ + } \ + program { \ + name, NAME"_back-down-1"; \ + signal, "mouse,clicked,1"; \ + source, NAME"_back"; \ + action, DRAG_VAL_STEP -0.1 -0.1;\ + target, NAME"_scrollbar"; \ + } \ + program { \ + name, NAME"_back-down-2"; \ + signal, "mouse,clicked,1"; \ + source, NAME"_back"; \ + action, SIGNAL_EMIT SIGDRAG NAME"_scrollbar"; \ + } \ + program { \ + name, NAME"_next-in"; \ + signal, "mouse,in"; \ + source, NAME"_next"; \ + action, STATE_SET "over" 0.0; \ + transition, DECELERATE 0.5; \ + target, NAME"_next"; \ + } \ + program { \ + name, NAME"_next-out"; \ + signal, "mouse,out"; \ + source, NAME"_next"; \ + action, STATE_SET "default" 0.0;\ + transition, DECELERATE 0.5; \ + target, NAME"_next"; \ + } \ + program { \ + name, NAME"_next-down-1"; \ + signal, "mouse,clicked,1"; \ + source, NAME"_next"; \ + action, DRAG_VAL_STEP 0.0 0.1; \ + target, NAME"_scrollbar"; \ + } \ + program { \ + name, NAME"_next-down-2"; \ + signal, "mouse,clicked,1"; \ + source, NAME"_next"; \ + action, SIGNAL_EMIT SIGDRAG NAME"_scrollbar"; \ + } \ + program { \ + name, NAME"_scrollbar_move"; \ + signal, "drag"; \ + source, NAME"_scrollbar"; \ + action, SIGNAL_EMIT SIGDRAG NAME"_scrollbar"; \ + } \ + program { \ + name, NAME"_scrollbar_mouse_up";\ + signal, "mouse,up,1"; \ + source, NAME"_scrollbar"; \ + action, STATE_SET "default" 0.0;\ + transition, DECELERATE 0.25; \ + target, NAME"_scrollbar"; \ + } \ + program { \ + name, NAME"_scrollbar_mouse_down"; \ + signal, "mouse,down,1"; \ + source, NAME"_scrollbar"; \ + action, STATE_SET "down" 0.0; \ + transition, ACCELERATE 0.25; \ + target, NAME"_scrollbar"; \ + } \ + program { \ + name, NAME"_scrollbar_show"; \ + signal, "show"; \ + source, ""; \ + action, DRAG_VAL_SET 0.0 0.0; \ + target, NAME"_scrollbar"; \ + } \ + program { \ + name, NAME"_scrollbar_mouse_wheel_up"; \ + signal, "mouse,wheel,0,-1"; \ + source, NAME"_wheel_rect"; \ + action, DRAG_VAL_STEP -0.1 -0.1;\ + target, NAME"_scrollbar"; \ + } \ + program { \ + name, NAME"_scrollbar_mouse_wheel_down"; \ + signal, "mouse,wheel,0,1"; \ + source, NAME"_wheel_rect"; \ + action, DRAG_VAL_STEP 0.1 0.1;\ + target, NAME"_scrollbar"; \ + } \ + program { \ + name, NAME"_scrollbar_mouse_wheel"; \ + signal, "mouse,wheel,*"; \ + source, NAME"_wheel_rect"; \ + action, SIGNAL_EMIT SIGDRAG NAME"_scrollbar"; \ + } +/* + program { \ + name, NAME"_back-down_timer"; \ + signal, "mouse,down,1"; \ + source, NAME"_back"; \ + action, SIGNAL_EMIT SIGBACK",start" NAME"_back"; \ + in, SCROLL_TIME 0.0; \ + } \ + program { \ + name, NAME"_next-down_timer"; \ + signal, "mouse,down,1"; \ + source, NAME"_next"; \ + action, SIGNAL_EMIT SIGNEXT",start" NAME"_next"; \ + in, SCROLL_TIME 0.0; \ + } \ + program { \ + name, NAME"_back-up_timer"; \ + signal, "mouse,up,1"; \ + source, NAME"_back"; \ + action, SIGNAL_EMIT SIGBACK",stop" NAME"_back"; \ + } \ + program { \ + name, NAME"_next-up_timer"; \ + signal, "mouse,up,1"; \ + source, NAME"_next"; \ + action, SIGNAL_EMIT SIGNEXT",stop" NAME"_next"; \ + } \ +*/ diff --git a/data/themes/iio/programs/controls_to.edc b/data/themes/iio/programs/controls_to.edc new file mode 100644 index 0000000..6c83f25 --- /dev/null +++ b/data/themes/iio/programs/controls_to.edc @@ -0,0 +1,266 @@ +program { + name, "titlebar_click"; signal, "mouse,clicked,*"; source, BASE; + action, SIGNAL_EMIT "RAISE" BASE; } +program { + name, "rslider_bar_click"; signal, "mouse,clicked,*"; source, "CenterClipArea"; + action, SIGNAL_EMIT "RAISE" "CenterClipArea"; } + +#define PB "PLAYBACK_STATE_" +/////////////////////////////////////////////////////////////////////// +// slides +/* +program { name, "hide_Lpanel"; signal, "mouse,clicked,*"; source, LEFT"border"; + action, STATE_SET "slide" 0.0; transition, DECELERATE, 0.5; + target, LEFT"border"; target, LEFT"border-slide"; target, LEFT"lcd"; + target, "trans_Rect"; +} + +program { name, "show_Lpanel"; signal, "mouse,clicked,*"; source, LEFT"border-slide"; + action, STATE_SET "default" 0.0; transition, DECELERATE, 0.5; + target, LEFT"border"; target, LEFT"border-slide"; target, LEFT"lcd"; + target, "trans_Rect"; +} + +program { name, "hide_Rpanel"; signal, "mouse,clicked,*"; source, RIGHT"border"; + action, STATE_SET "slide" 0.0; transition, DECELERATE, 0.5; + target, RIGHT"border"; target, RIGHT"border-slide"; target, RIGHT"lcd"; +} + +program { name, "show_Rpanel"; signal, "mouse,clicked,*"; source, RIGHT"border-slide"; + action, STATE_SET "default" 0.0; transition, DECELERATE, 0.5; + target, RIGHT"border"; target, RIGHT"border-slide"; target, RIGHT"lcd"; +} +*/ +/////////////////////////////////////////////////////////////////////// +// playback signals +// no longer in use + +//program { name, "pb_started"; signal, PB"PLAYING"; source, "*"; +// action, SIGNAL_EMIT "PLAY" "play_button"; +//} +// +//program { +// name, "pb_paused"; signal, PB"PAUSED"; source, "*"; +// action, SIGNAL_EMIT "PAUSE" "pause_button"; +//} +// +//program { +// name, "pb_stopped"; signal, PB"STOPPED"; source, "*"; +// action, SIGNAL_EMIT "STOP" "stop_button"; +//} + +/////////////////////////////////////////////////////////////////////// +// seeker program + +program { name, "seeker-start"; signal, "mouse,down,1"; source, "seeker_grabber"; + action, SIGNAL_EMIT "SEEKER_START" ""; +} + +program { name, "seeker-update"; signal, "mouse,move"; source, "seeker_grabber"; + action, SIGNAL_EMIT "SEEKER_UPDATE" ""; +} + +program { name, "seeker-stop"; signal, "mouse,up,1"; source, "seeker_grabber"; + action, SIGNAL_EMIT "SEEKER_STOP" ""; +} +/////////////////////////////////////////////////////////////////////// +// switch +/* +program { name, "switch_hi"; signal, "mouse,in"; source, "switch_stance"; + action, STATE_SET "hilited" 0.0; transition, LINEAR 0.1; target, "switch_stance"; +} +program { name, "switch_unhilited"; signal, "mouse,out"; source, "switch_stance"; + action, STATE_SET "default" 0.0; transition, LINEAR 0.1; target, "switch_stance"; +} +program { name, "switch_clicked"; signal, "mouse,down,*"; source, "switch_stance"; + action, STATE_SET "clicked" 0.0; transition, LINEAR 1.0; target, "switch_stance"; +} +program { name, "switch_unclicked"; signal, "mouse,up,*"; source, "switch_stance"; + action, STATE_SET "clicked" 0.0; transition, LINEAR 1.0; target, "switch_stance"; +} +program { name, "switch_exec"; signal, "mouse,down,*"; source, "switch_stance"; + action, SIGNAL_EMIT "SWITCH_GROUP" "alternate"; } +*/ +/////////////////////////////////////////////////////////////////////// + +#define PLAY "play_button" + +program { name, "play_hilited"; signal, "mouse,in"; source, PLAY; + action, STATE_SET "hilited" 0.0; transition, LINEAR 0.1; target, PLAY; + /*after, "play_unhilited";*/ in, 0.15 0.0; +} +program { name, "play_unhilited"; signal, "mouse,out"; source, PLAY; + action, ACTION_STOP; target, "play_hilited"; + after, "play_unhilited_real"; +} +program { name, "play_unhilited_real"; + action, STATE_SET "default" 0.0; transition, LINEAR 0.1; target, PLAY; +} +program { name, "play_click"; signal, "mouse,down,*";source, PLAY; + action, STATE_SET "clicked" 0.0; transition, LINEAR 0.1; target, PLAY; + after, "play_unclick"; in, 0.15 0.0; +} +program { name, "play_unclick"; signal, "mouse,up,*"; source, PLAY; + action, STATE_SET "default" 0.0; transition, LINEAR 0.1; target, PLAY; +} +program { name, "play_click_emission"; signal, "mouse,down,*"; source, PLAY; + action, SIGNAL_EMIT "playback.play" PLAY; } + +#define PREV "prev_button" + +program { name, "prev_button_hilited"; signal, "mouse,in"; source, PREV; + action, STATE_SET "hilited" 0.0; transition, LINEAR 0.1; target, PREV; + /*after, "prev_button_unhilited";*/ in, 0.15 0.0; +} +program { name, "prev_button_unhilited"; signal, "mouse,out"; source, PREV; + action, ACTION_STOP; target, "prev_button_hilited"; + after, "prev_button_unhilited_real"; +} +program { name, "prev_button_unhilited_real"; + action, STATE_SET "default" 0.0; transition, LINEAR 0.1; target, PREV; +} +program { name, "prev_clicked"; signal, "mouse,down,*"; source, PREV; + action, STATE_SET "clicked" 0.0; transition, LINEAR 0.1; target, PREV; + after, "prev_unclicked"; in, 0.15 0.0; +} +program { name, "prev_unclicked"; signal, "mouse,up,*"; source, PREV; + action, STATE_SET "default" 0.0; transition, LINEAR 0.1; target, PREV; +} +program { name, "previous_click"; signal, "mouse,down,*"; source, PREV; + action, SIGNAL_EMIT "playback.prev" PREV; } + +#define NEXT "next_button" + +program { name, "next_hilited"; signal, "mouse,in"; source, NEXT; + action, STATE_SET "hilited" 0.0; transition, LINEAR 0.1; target, NEXT; + /*after, "next_unhilited";*/ in, 0.15 0.0; +} +program { name, "next_unhilited"; signal, "mouse,out"; source, NEXT; + action, ACTION_STOP; target, "next_hilited"; + after, "next_unhilited_real"; +} +program { name, "next_unhilited_real"; + action, STATE_SET "default" 0.0; transition, LINEAR 0.1; target, NEXT; +} +program { name, "next_click"; signal, "mouse,down,*"; source, NEXT; + action, STATE_SET "clicked" 0.0; transition, LINEAR 0.1; target, NEXT; + after, "next_unclick"; in, 0.15 0.0; +} +program { name, "next_unclick"; signal, "mouse,up,*"; source, NEXT; + action, STATE_SET "default" 0.0; transition, LINEAR 0.1; target, NEXT; +} +program { name, "next_click_emission"; signal, "mouse,down,*"; source, NEXT; + action, SIGNAL_EMIT "playback.next" NEXT; } + +#define PAUSE "pause_button" + +program { name, "pause_hilited"; signal, "mouse,in"; source, PAUSE; + action, STATE_SET "hilited" 0.0; transition, LINEAR 0.1; target, PAUSE; + /*after, "pause_unhilited";*/ in, 0.15 0.0; +} +program { name, "pause_unhilited"; signal, "mouse,out"; source, PAUSE; + action, ACTION_STOP; target, "pause_hilited"; + after, "pause_unhilited_real"; +} +program { name, "pause_unhilited_real"; + action, STATE_SET "default" 0.0; transition, LINEAR 0.1; target, PAUSE; +} +program { name, "pause_click"; signal, "mouse,down,*"; source, PAUSE; + action, STATE_SET "clicked" 0.0; transition, LINEAR 0.1; target, PAUSE; +} +program { name, "pause_unclick"; signal, "mouse,up,*"; source, PAUSE; + action, STATE_SET "default" 0.0; transition, LINEAR 0.1; target, PAUSE; +} +program { name, "pause_click_emission"; signal, "mouse,down,*"; source, PAUSE; + action, SIGNAL_EMIT "PAUSE" PAUSE; } + +#define STOP "stop_button" + +program { name, "stop_hilited"; signal, "mouse,in"; source, STOP; + action, STATE_SET "hilited" 0.0; transition, LINEAR 0.1; target, STOP; + /*after, "stop_unhilited";*/ in, 0.15 0.0; +} +program { name, "stop_unhilited"; signal, "mouse,out"; source, STOP; + action, ACTION_STOP; target, "stop_hilited"; + after, "stop_unhilited_real"; +} +program { name, "stop_unhilited_real"; + action, STATE_SET "default" 0.0; transition, LINEAR 0.1; target, STOP; +} +program { name, "stop_click"; signal, "mouse,down,*"; source, STOP; + action, STATE_SET "clicked" 0.0; transition, LINEAR 0.1; target, STOP; + after, "stop_unclick"; in, 0.15 0.0; +} +program { name, "stop_unclick"; signal, "mouse,up,*"; source, STOP; + action, STATE_SET "default" 0.0; transition, LINEAR 0.1; target, STOP; +} +program { name, "stop_click_emission"; signal, "mouse,down,*"; source, STOP; + action, SIGNAL_EMIT "STOP" STOP; } +/////////////////////////////////////////////////////////////////////// + +#define ADD "add_button" +#define DELETE "delete_button" +#define EDIT "edit_button" + +program { name, "addFile_hilited"; signal, "mouse,in"; source, ADD; + action, STATE_SET "hilited" 0.0; transition, LINEAR 0.1; target, ADD; +} +program { name, "addFile_unhilited"; signal, "mouse,out"; source, ADD; + action, STATE_SET "default" 0.0; transition, LINEAR 0.1; target, ADD; +} +program { name, "addFile_clicked"; signal, "mouse,down,1"; source, ADD; + action, STATE_SET "clicked" 0.0; transition, LINEAR 0.1; target, ADD; +} +program { name, "addFile_unclicked"; signal, "mouse,down"; source, ADD; + action, STATE_SET "clicked" 0.0; transition, LINEAR 0.1; target, ADD; +} +program { name, "AddFile"; signal, "mouse,up,1"; source, ADD; + action, SIGNAL_EMIT "file_dialog.open" ADD; } +// +program { name, "deleteFile_hilited"; signal, "mouse,in"; source, DELETE; + action, STATE_SET "hilited" 0.0; transition, LINEAR 0.1; target, DELETE; +} +program { name, "deleteFile_unhilited"; signal, "mouse,out"; source, DELETE; + action, STATE_SET "default" 0.0; transition, LINEAR 0.1; target, DELETE; +} +program { name, "deleteFile_clicked"; signal, "mouse,down,1"; source, DELETE; + action, STATE_SET "clicked" 0.0; transition, LINEAR 0.1; target, DELETE; +} +program { name, "deleteFile_unclicked"; signal, "mouse,down"; source, DELETE; + action, STATE_SET "clicked" 0.0; transition, LINEAR 0.1; target, DELETE; +} +program { name, "deleteFile"; signal, "mouse,up,1"; source, DELETE; + action, SIGNAL_EMIT "PLAYLIST_DEL" "*"; } +// +program { name, "editFile_hilited"; signal, "mouse,in"; source, EDIT; + action, STATE_SET "hilited" 0.0; transition, LINEAR 0.1; target, EDIT; +} +program { name, "editFile_unhilited"; signal, "mouse,out"; source, EDIT; + action, STATE_SET "default" 0.0; transition, LINEAR 0.1; target, EDIT; +} +program { name, "editFile_clicked"; signal, "mouse,down,1"; source, EDIT; + action, STATE_SET "clicked" 0.0; transition, LINEAR 0.1; target, EDIT; +} +program { name, "editFile_unclicked"; signal, "mouse,down"; source, EDIT; + action, STATE_SET "clicked" 0.0; transition, LINEAR 0.1; target, EDIT; +} +program { name, "editFile"; signal, "mouse,up,1"; source, EDIT; + action, SIGNAL_EMIT "PLAYLIST_EDIT" EDIT; } + +/////////////////////////////////////////////////////////////////////// +// program: quit + +program { name, "quit_hilited"; signal, "mouse,in"; source, "quit"; + action, STATE_SET "hilited" 0.0; transition, LINEAR 0.1; target, "quit"; +} +program { name, "quit_unhilited"; signal, "mouse,out"; source, "quit"; + action, STATE_SET "default" 0.0; transition, LINEAR 0.1; target, "quit"; +} +program { name, "quit_clicked"; signal, "mouse,down,*"; source, "quit"; + action, STATE_SET "clicked" 0.0; transition, LINEAR 1.0; target, "quit"; +} +program { name, "quit_unclicked"; signal, "mouse,up,*"; source, "quit"; + action, STATE_SET "clicked" 0.0; transition, LINEAR 1.0; target, "quit"; +} +program { name, "quit_exit"; signal, "mouse,down,*"; source, "quit"; + action, SIGNAL_EMIT "close" "quit"; } diff --git a/data/themes/iio/programs/esmart_fd.edc b/data/themes/iio/programs/esmart_fd.edc new file mode 100644 index 0000000..07055c4 --- /dev/null +++ b/data/themes/iio/programs/esmart_fd.edc @@ -0,0 +1,15 @@ +VPANEL_PROG("directory", + "e,fd,container,scroll,back,directory", + "e,fd,container,scroll,next,directory", + "e,fd,container,scrollbar,scroll,,directory") +VPANEL_PROG("files", + "e,fd,container,scroll,back,files", + "e,fd,container,scroll,next,files", + "e,fd,container,scrollbar,scroll,,files") +program { + name, "file_dialog_align_show"; + signal, "show"; + source, ""; + action, DRAG_VAL_SET 0.5 0.5; + target, "base.dragable"; +} diff --git a/data/themes/iio/programs/playlist.edc b/data/themes/iio/programs/playlist.edc new file mode 100644 index 0000000..a5d7957 --- /dev/null +++ b/data/themes/iio/programs/playlist.edc @@ -0,0 +1,21 @@ + +program { name, "selected_mouse"; signal, "mouse,clicked,1"; source, "*"; + action, SIGNAL_EMIT "PLAYLIST_ITEM_SELECTED" ""; } + +program { name, "selected"; signal, "PLAYLIST_ITEM_SELECTED"; source, ""; + action, STATE_SET "selected" 0.0; transition, LINEAR 0.2; + target, "title"; target, "duration"; target, "background"; } + +program { name, "unselected"; signal, "PLAYLIST_ITEM_UNSELECTED"; source, ""; + action, STATE_SET "default" 0.0; transition, LINEAR 0.2; + target, "title"; target, "duration"; target, "background"; } + +program { name, "dbl_clicked"; signal, "mouse,down,1,double"; source, "*"; + action, SIGNAL_EMIT "PLAYLIST_ITEM_PLAY" ""; } + +program { name, "scroll_up"; signal, "mouse,wheel,0,-1"; source, "*"; + action, SIGNAL_EMIT "PLAYLIST_SCROLL_UP" ""; } + +program { name, "scroll_down"; signal, "mouse,wheel,0,1"; source, "*"; + action, SIGNAL_EMIT "PLAYLIST_SCROLL_DOWN" ""; } + diff --git a/data/themes/iio/programs/switch.edc b/data/themes/iio/programs/switch.edc new file mode 100644 index 0000000..5dc48bb --- /dev/null +++ b/data/themes/iio/programs/switch.edc @@ -0,0 +1,142 @@ + +// switch_mode +program { name, "switch_mode_hilited"; signal, "mouse,in"; source, "sw_base"; + action, STATE_SET "hilited" 0.0; transition, LINEAR, 0.1; target, "sw_base"; } + +program { name, "switch_mode_un_unhilited"; signal, "mouse,out"; source, "sw_base"; + action, STATE_SET "default" 0.0; transition, LINEAR, 0.1; target, "sw_base"; } + +program { name, "switch_mode_clicked"; signal, "mouse,down,1"; source, "sw_base"; + action, STATE_SET "clicked" 0.0; transition, LINEAR, 1.0; target, "sw_base"; } + +program { name, "switch_mode_unclicked"; signal, "mouse,down"; source, "sw_base"; + action, STATE_SET "clicked" 0.0; transition, LINEAR, 1.0; target, "sw_base"; } + +program { name, "switch_mode_2"; signal, "mouse,down,1"; source, "sw_base"; + action, SIGNAL_EMIT "SWITCH_GROUP", "euphoria"; } +// +program { name, "_titlebar_click"; signal, "mouse,clicked,1"; source, "small_base"; + action, SIGNAL_EMIT "RAISE", "small_base"; } +// +program { name, "_play_hilited"; signal, "mouse,in"; source, "_play_button"; + action, STATE_SET "hilited" 0.0; transition, LINEAR, 0.1; target, "_play_button"; +} +program { name, "_play_unhilited"; signal, "mouse,out"; source, "_play_button"; + action, STATE_SET "default" 0.0; transition, LINEAR, 1.0; target, "_play_button"; +} +program { name, "_play_click"; signal, "mouse,down,1"; source, "_play_button"; + action, STATE_SET "clicked" 0.0; transition, LINEAR, 0.1; target, "_play_button"; +} +program { name, "_play_unclick"; signal, "mouse,down"; source, "_play_button"; + action, STATE_SET "default" 0.0; transition, LINEAR, 0.1; target, "_play_button"; +} +program { name, "_play_click"; signal, "mouse,down,1"; source, "_play_button"; + action, SIGNAL_EMIT "playback.play" "play_button"; +} + +// +program { name, "_prev_button_hilited"; signal, "mouse,in"; source, "_prev_button"; + action, STATE_SET "hilited" 0.0; transition, LINEAR, 0.1; target, "_prev_button"; +} +program { name, "_prev_button_unhilited"; signal, "mouse,out"; source, "_prev_button"; + action, STATE_SET "default" 0.0; transition, LINEAR, 1.0; target, "_prev_button"; +} +program { name, "_prev_clicked"; signal, "mouse,down,1"; source, "_prev_button"; + action, STATE_SET "clicked" 0.0; transition, LINEAR, 0.1; target, "_prev_button"; +} +program { name, "_prev_unclicked"; signal, "mouse,down"; source, "_prev_button"; + action, STATE_SET "default" 0.0; transition, LINEAR, 0.1; target, "_prev_button"; +} +program { name, "_previous_click"; signal, "mouse,down,1"; source, "_prev_button"; + action, SIGNAL_EMIT "playback.prev" "previous_button"; +} + +// +program { name, "_next_hilited"; signal, "mouse,in"; source, "_next_button"; + action, STATE_SET "hilited" 0.0; transition, LINEAR, 0.1; target, "_next_button"; +} +program { name, "_next_unhilited"; signal, "mouse,out"; source, "_next_button"; + action, STATE_SET "default" 0.0; transition, LINEAR, 1.0; target, "_next_button"; +} +program { name, "_next_click"; signal, "mouse,down,1"; source, "_next_button"; +action, STATE_SET "clicked" 0.0; transition, LINEAR, 0.1; target, "_next_button"; +} +program { name, "_next_unclick"; signal, "mouse,down"; source, "_next_button"; + action, STATE_SET "default" 0.0; transition, LINEAR, 0.1; target, "_next_button"; +} +program { name, "_next_click"; signal, "mouse,down,1"; source, "_next_button"; + action, SIGNAL_EMIT "playback.next" "next_button"; +} + +// +program { name, "_pause_hilited"; signal, "mouse,in"; source, "_pause_button"; + action, STATE_SET "hilited" 0.0; transition, LINEAR, 0.1; target, "_pause_button"; +} +program { name, "_pause_unhilited"; signal, "mouse,out"; source, "_pause_button"; + action, STATE_SET "default" 0.0; transition, LINEAR, 1.0; target, "_pause_button"; +} +program { name, "_pause_click"; signal, "mouse,down,1"; source, "_pause_button"; + action, STATE_SET "clicked" 0.0; transition, LINEAR, 0.1; target, "_pause_button"; +} +program { name, "_pause_unclick"; signal, "mouse,down"; source, "_pause_button"; + action, STATE_SET "default" 0.0; transition, LINEAR, 0.1; target, "_pause_button"; +} +program { name, "_pause_click"; signal, "mouse,down,1"; source, "_pause_button"; + action, SIGNAL_EMIT "PAUSE" "pause_button"; +} + +// +program { name, "_stop_hilited"; signal, "mouse,in"; source, "_stop_button"; + action, STATE_SET "hilited" 0.0; transition, LINEAR, 0.1; target, "_stop_button"; +} +program { name, "_stop_unhilited"; signal, "mouse,out"; source, "_stop_button"; + action, STATE_SET "default" 0.0; transition, LINEAR, 1.0; target, "_stop_button"; +} +program { name, "_stop_click"; signal, "mouse,down,1"; source, "_stop_button"; + action, STATE_SET "clicked" 0.0; transition, LINEAR, 0.1; target, "_stop_button"; +} +program { name, "_stop_unclick"; signal, "mouse,down"; source, "_stop_button"; + action, STATE_SET "default" 0.0; transition, LINEAR, 0.1; target, "_stop_button"; +} +program { name, "_stop_click"; signal, "mouse,down,1"; source, "_stop_button"; + action, SIGNAL_EMIT "STOP" "stop_button"; +} + +program { name, "playback_has_begun"; signal, "PLAYBACK_STATE_PLAYING"; source, "*"; + action, STATE_SET "active" 0.0; transition, DECELERATE 0.1; + target, "small_lcd"; + target, "strans_Rect"; + after, "playback_has_begun"; } +// +program { name, "playback_is_paused"; signal, "PLAYBACK_STATE_PAUSED"; source, "*"; + action, STATE_SET "default" 0.0; transition, DECELERATE 0.1; + target, "small_lcd"; + target, "strans_Rect"; + after, "playback_blink"; } +// +program { name, "playback_blink"; signal, "PLAYBACK_STATE_PAUSED"; source, "*"; + action, STATE_SET "active" 0.0; transition, LINEAR 0.5; + target, "small_lcd"; + target, "strans_Rect"; + after, "playback_is_paused"; } +// +program { name, "playback_has_stopped"; signal, "PLAYBACK_STATE_STOPPED"; source, "*"; + action, STATE_SET "default" 0.0; transition, DECELERATE 0.5; + target, "small_lcd"; + target, "strans_Rect"; } +// +program { name, "_quit_hilited"; signal, "mouse,in"; source, "_quit"; + action, STATE_SET "hilited" 0.0; transition, LINEAR, 0.1; target, "_quit"; +} +program { name, "_quit_unhilited"; signal, "mouse,out"; source, "_quit"; + action, STATE_SET "default" 0.0; transition, LINEAR, 0.1; target, "_quit"; +} +program { name, "_quit_clicked"; signal, "mouse,down,1"; source, "_quit"; + action, STATE_SET "clicked" 0.0; transition, LINEAR, 1.0; target, "_quit"; +} +program { name, "_quit_unclicked"; signal, "mouse,down"; source, "_quit"; + action, STATE_SET "clicked" 0.0; transition, LINEAR, 1.0; target, "_quit"; +} +program { name, "_quit_exit"; signal, "mouse,down,1"; source, "_quit"; + action, SIGNAL_EMIT "close" "quit"; +} diff --git a/data/themes/streamline/images/background-dark-green.png b/data/themes/streamline/images/background-dark-green.png new file mode 100644 index 0000000..e338859 Binary files /dev/null and b/data/themes/streamline/images/background-dark-green.png differ diff --git a/data/themes/streamline/images/background-green.png b/data/themes/streamline/images/background-green.png new file mode 100644 index 0000000..2c44f99 Binary files /dev/null and b/data/themes/streamline/images/background-green.png differ diff --git a/data/themes/streamline/images/border-scale.png b/data/themes/streamline/images/border-scale.png new file mode 100644 index 0000000..ad7a073 Binary files /dev/null and b/data/themes/streamline/images/border-scale.png differ diff --git a/data/themes/streamline/images/button-3stage-fulldown.png b/data/themes/streamline/images/button-3stage-fulldown.png new file mode 100644 index 0000000..56f1464 Binary files /dev/null and b/data/themes/streamline/images/button-3stage-fulldown.png differ diff --git a/data/themes/streamline/images/button-3stage-selected.png b/data/themes/streamline/images/button-3stage-selected.png new file mode 100644 index 0000000..11ce0ae Binary files /dev/null and b/data/themes/streamline/images/button-3stage-selected.png differ diff --git a/data/themes/streamline/images/button-3stage-unselected.png b/data/themes/streamline/images/button-3stage-unselected.png new file mode 100644 index 0000000..616f18d Binary files /dev/null and b/data/themes/streamline/images/button-3stage-unselected.png differ diff --git a/data/themes/streamline/images/button-full-blinking.png b/data/themes/streamline/images/button-full-blinking.png new file mode 100644 index 0000000..01aa251 Binary files /dev/null and b/data/themes/streamline/images/button-full-blinking.png differ diff --git a/data/themes/streamline/images/button-full-clicked.png b/data/themes/streamline/images/button-full-clicked.png new file mode 100644 index 0000000..eeffcf2 Binary files /dev/null and b/data/themes/streamline/images/button-full-clicked.png differ diff --git a/data/themes/streamline/images/button-full-normal.png b/data/themes/streamline/images/button-full-normal.png new file mode 100644 index 0000000..88c4233 Binary files /dev/null and b/data/themes/streamline/images/button-full-normal.png differ diff --git a/data/themes/streamline/images/button-full-unblinking.png b/data/themes/streamline/images/button-full-unblinking.png new file mode 100644 index 0000000..186a2e8 Binary files /dev/null and b/data/themes/streamline/images/button-full-unblinking.png differ diff --git a/data/themes/streamline/images/button-off.png b/data/themes/streamline/images/button-off.png new file mode 100644 index 0000000..15dc4d6 Binary files /dev/null and b/data/themes/streamline/images/button-off.png differ diff --git a/data/themes/streamline/images/button-on.png b/data/themes/streamline/images/button-on.png new file mode 100644 index 0000000..99d1fe7 Binary files /dev/null and b/data/themes/streamline/images/button-on.png differ diff --git a/data/themes/streamline/images/button-small-clicked.png b/data/themes/streamline/images/button-small-clicked.png new file mode 100644 index 0000000..dbcb4b4 Binary files /dev/null and b/data/themes/streamline/images/button-small-clicked.png differ diff --git a/data/themes/streamline/images/button-small-normal.png b/data/themes/streamline/images/button-small-normal.png new file mode 100644 index 0000000..11971c4 Binary files /dev/null and b/data/themes/streamline/images/button-small-normal.png differ diff --git a/data/themes/streamline/images/close_button.png b/data/themes/streamline/images/close_button.png new file mode 100644 index 0000000..a27902a Binary files /dev/null and b/data/themes/streamline/images/close_button.png differ diff --git a/data/themes/streamline/images/compact-nexttrack-clicked.png b/data/themes/streamline/images/compact-nexttrack-clicked.png new file mode 100644 index 0000000..1b10144 Binary files /dev/null and b/data/themes/streamline/images/compact-nexttrack-clicked.png differ diff --git a/data/themes/streamline/images/compact-nexttrack-normal.png b/data/themes/streamline/images/compact-nexttrack-normal.png new file mode 100644 index 0000000..1208c48 Binary files /dev/null and b/data/themes/streamline/images/compact-nexttrack-normal.png differ diff --git a/data/themes/streamline/images/compact-prevtrack-clicked.png b/data/themes/streamline/images/compact-prevtrack-clicked.png new file mode 100644 index 0000000..19ab0b5 Binary files /dev/null and b/data/themes/streamline/images/compact-prevtrack-clicked.png differ diff --git a/data/themes/streamline/images/compact-prevtrack-normal.png b/data/themes/streamline/images/compact-prevtrack-normal.png new file mode 100644 index 0000000..e39e250 Binary files /dev/null and b/data/themes/streamline/images/compact-prevtrack-normal.png differ diff --git a/data/themes/streamline/images/compact-seekback-clicked.png b/data/themes/streamline/images/compact-seekback-clicked.png new file mode 100644 index 0000000..4ca9373 Binary files /dev/null and b/data/themes/streamline/images/compact-seekback-clicked.png differ diff --git a/data/themes/streamline/images/compact-seekback-normal.png b/data/themes/streamline/images/compact-seekback-normal.png new file mode 100644 index 0000000..c3e7d36 Binary files /dev/null and b/data/themes/streamline/images/compact-seekback-normal.png differ diff --git a/data/themes/streamline/images/compact-seekforward-clicked.png b/data/themes/streamline/images/compact-seekforward-clicked.png new file mode 100644 index 0000000..e810a31 Binary files /dev/null and b/data/themes/streamline/images/compact-seekforward-clicked.png differ diff --git a/data/themes/streamline/images/compact-seekforward-normal.png b/data/themes/streamline/images/compact-seekforward-normal.png new file mode 100644 index 0000000..8d2e439 Binary files /dev/null and b/data/themes/streamline/images/compact-seekforward-normal.png differ diff --git a/data/themes/streamline/images/controls-back.png b/data/themes/streamline/images/controls-back.png new file mode 100644 index 0000000..73bb2fc Binary files /dev/null and b/data/themes/streamline/images/controls-back.png differ diff --git a/data/themes/streamline/images/eplayer-interface-2b.png b/data/themes/streamline/images/eplayer-interface-2b.png new file mode 100644 index 0000000..522ea58 Binary files /dev/null and b/data/themes/streamline/images/eplayer-interface-2b.png differ diff --git a/data/themes/streamline/images/lcd_area.png b/data/themes/streamline/images/lcd_area.png new file mode 100644 index 0000000..927dc38 Binary files /dev/null and b/data/themes/streamline/images/lcd_area.png differ diff --git a/data/themes/streamline/images/minimize.png b/data/themes/streamline/images/minimize.png new file mode 100644 index 0000000..729203b Binary files /dev/null and b/data/themes/streamline/images/minimize.png differ diff --git a/data/themes/streamline/images/playpause-clicked.png b/data/themes/streamline/images/playpause-clicked.png new file mode 100644 index 0000000..42ce088 Binary files /dev/null and b/data/themes/streamline/images/playpause-clicked.png differ diff --git a/data/themes/streamline/images/playpause-down.png b/data/themes/streamline/images/playpause-down.png new file mode 100644 index 0000000..d4f5316 Binary files /dev/null and b/data/themes/streamline/images/playpause-down.png differ diff --git a/data/themes/streamline/images/playpause-normal.png b/data/themes/streamline/images/playpause-normal.png new file mode 100644 index 0000000..d665e55 Binary files /dev/null and b/data/themes/streamline/images/playpause-normal.png differ diff --git a/data/themes/streamline/images/playpause-orange-held.png b/data/themes/streamline/images/playpause-orange-held.png new file mode 100644 index 0000000..50fd2c9 Binary files /dev/null and b/data/themes/streamline/images/playpause-orange-held.png differ diff --git a/data/themes/streamline/images/playpause-orange-released.png b/data/themes/streamline/images/playpause-orange-released.png new file mode 100644 index 0000000..0fabe5d Binary files /dev/null and b/data/themes/streamline/images/playpause-orange-released.png differ diff --git a/data/themes/streamline/images/set-button-normal.png b/data/themes/streamline/images/set-button-normal.png new file mode 100644 index 0000000..482428e Binary files /dev/null and b/data/themes/streamline/images/set-button-normal.png differ diff --git a/data/themes/streamline/images/small-text-button.png b/data/themes/streamline/images/small-text-button.png new file mode 100644 index 0000000..b45311c Binary files /dev/null and b/data/themes/streamline/images/small-text-button.png differ diff --git a/data/themes/streamline/images/vol-display.png b/data/themes/streamline/images/vol-display.png new file mode 100644 index 0000000..7d5f3b1 Binary files /dev/null and b/data/themes/streamline/images/vol-display.png differ diff --git a/data/themes/streamline/images/vol-label.png b/data/themes/streamline/images/vol-label.png new file mode 100644 index 0000000..b35ff83 Binary files /dev/null and b/data/themes/streamline/images/vol-label.png differ diff --git a/data/themes/streamline/images/vol-minus-clicked.png b/data/themes/streamline/images/vol-minus-clicked.png new file mode 100644 index 0000000..afc4877 Binary files /dev/null and b/data/themes/streamline/images/vol-minus-clicked.png differ diff --git a/data/themes/streamline/images/vol-minus.png b/data/themes/streamline/images/vol-minus.png new file mode 100644 index 0000000..f6cde18 Binary files /dev/null and b/data/themes/streamline/images/vol-minus.png differ diff --git a/data/themes/streamline/images/vol-plus-clicked.png b/data/themes/streamline/images/vol-plus-clicked.png new file mode 100644 index 0000000..7ef4918 Binary files /dev/null and b/data/themes/streamline/images/vol-plus-clicked.png differ diff --git a/data/themes/streamline/images/vol-plus.png b/data/themes/streamline/images/vol-plus.png new file mode 100644 index 0000000..4937ae9 Binary files /dev/null and b/data/themes/streamline/images/vol-plus.png differ diff --git a/data/themes/streamline/streamline.edc b/data/themes/streamline/streamline.edc new file mode 100644 index 0000000..dc6a05c --- /dev/null +++ b/data/themes/streamline/streamline.edc @@ -0,0 +1,52 @@ +/*** Streamline Euphoria Theme - An Alternation on the default theme ***/ +/*** By: Ben Rockwood ***/ + +images { + #include "streamline_images.edc" +} + +collections { + group { + min, 300 60; + max, 300 60; + name, "euphoria_small"; + + parts { + #include "streamline_small_parts.edc" + } + programs { + #include "streamline_small_progs.edc" + } + + } + + group { + min, 510 90; + max, 510 90; + name, "euphoria"; + parts { + #include "streamline_parts.edc" + } + programs { + #include "streamline_progs.edc" + } + + } + + group { + name, "playlist_item"; + min, 200 12; + max, 200 12; + + parts { + #include "streamline_playlist_parts.edc" + } + programs { + #include "streamline_playlist_progs.edc" + } + + } + +} + + diff --git a/data/themes/streamline/streamline_images.edc b/data/themes/streamline/streamline_images.edc new file mode 100644 index 0000000..d074b67 --- /dev/null +++ b/data/themes/streamline/streamline_images.edc @@ -0,0 +1,78 @@ +/* ************************************************************************************** +background-dark-green.png: PNG image data, 32 x 32, 8-bit/color RGBA, non-interlaced +background-green.png: PNG image data, 30 x 30, 8-bit/color RGB, non-interlaced +border-scale.png: PNG image data, 28 x 28, 8-bit/color RGBA, non-interlaced +button-3stage-fulldown.png: PNG image data, 56 x 40, 8-bit/color RGBA, non-interlaced +button-3stage-selected.png: PNG image data, 56 x 40, 8-bit/color RGBA, non-interlaced +button-3stage-unselected.png: PNG image data, 56 x 40, 8-bit/color RGBA, non-interlaced +button-full-blinking.png: PNG image data, 56 x 40, 8-bit/color RGBA, non-interlaced +button-full-clicked.png: PNG image data, 56 x 40, 8-bit/color RGBA, non-interlaced +button-full-normal.png: PNG image data, 56 x 40, 8-bit/color RGBA, non-interlaced +button-full-unblinking.png: PNG image data, 56 x 40, 8-bit/color RGBA, non-interlaced +button-off.png: PNG image data, 57 x 20, 8-bit/color RGB, non-interlaced +button-on.png: PNG image data, 57 x 20, 8-bit/color RGB, non-interlaced +button-small-clicked.png: PNG image data, 28 x 20, 8-bit/color RGBA, non-interlaced +button-small-normal.png: PNG image data, 28 x 20, 8-bit/color RGBA, non-interlaced +close_button.png: PNG image data, 8 x 8, 8-bit/color RGBA, non-interlaced +compact-nexttrack-clicked.png: PNG image data, 27 x 20, 8-bit/color RGB, non-interlaced +compact-nexttrack-normal.png: PNG image data, 27 x 20, 8-bit/color RGB, non-interlaced +compact-prevtrack-clicked.png: PNG image data, 29 x 20, 8-bit/color RGB, non-interlaced +compact-prevtrack-normal.png: PNG image data, 29 x 20, 8-bit/color RGB, non-interlaced +compact-seekback-clicked.png: PNG image data, 29 x 20, 8-bit/color RGB, non-interlaced +compact-seekback-normal.png: PNG image data, 29 x 20, 8-bit/color RGB, non-interlaced +compact-seekforward-clicked.png: PNG image data, 27 x 20, 8-bit/color RGB, non-interlaced +compact-seekforward-normal.png: PNG image data, 27 x 20, 8-bit/color RGB, non-interlaced +controls-back.png: PNG image data, 37 x 19, 8-bit/color RGBA, non-interlaced +lcd_area.png: PNG image data, 14 x 13, 8-bit/color RGB, non-interlaced +minimize.png: PNG image data, 7 x 2, 8-bit/color RGBA, non-interlaced +playpause-clicked.png: PNG image data, 56 x 40, 8-bit/color RGB, non-interlaced +playpause-down.png: PNG image data, 1600 x 1200, 16-bit/color RGB, non-interlaced +playpause-normal.png: PNG image data, 56 x 40, 8-bit/color RGB, non-interlaced +playpause-orange-held.png: PNG image data, 56 x 40, 8-bit/color RGB, non-interlaced +playpause-orange-released.png: PNG image data, 56 x 40, 8-bit/color RGB, non-interlaced +set-button-normal.png: PNG image data, 58 x 43, 8-bit/color RGB, non-interlaced +small-text-button.png: PNG image data, 34 x 20, 8-bit/color RGBA, non-interlaced +vol-display.png: PNG image data, 23 x 20, 8-bit/color RGBA, non-interlaced +vol-label.png: PNG image data, 21 x 20, 8-bit/color RGBA, non-interlaced +vol-minus-clicked.png: PNG image data, 29 x 20, 8-bit/color RGBA, non-interlaced +vol-minus.png: PNG image data, 29 x 20, 8-bit/color RGBA, non-interlaced +vol-plus-clicked.png: PNG image data, 25 x 20, 8-bit/color RGBA, non-interlaced +vol-plus.png: PNG image data, 25 x 20, 8-bit/color RGBA, non-interlaced + + +************************************************************************ */ + + image, "border-scale.png" RAW; + image, "button-full-clicked.png" RAW; + image, "button-full-normal.png" RAW; + image, "lcd_area.png" RAW; + image, "background-dark-green.png" RAW; + image, "controls-back.png" RAW; + image, "button-3stage-fulldown.png" RAW; + image, "button-3stage-selected.png" RAW; + image, "button-3stage-unselected.png" RAW; + image, "button-full-blinking.png" RAW; + image, "button-full-unblinking.png" RAW; + image, "vol-display.png" RAW; + image, "vol-label.png" RAW; + image, "vol-minus.png" RAW; + image, "vol-plus.png" RAW; + image, "vol-minus-clicked.png" RAW; + image, "vol-plus-clicked.png" RAW; + image, "small-text-button.png" RAW; + image, "button-small-normal.png" RAW; + image, "button-small-clicked.png" RAW; + image, "button-on.png" RAW; + image, "button-off.png" RAW; + image, "close_button.png" RAW; + image, "minimize.png" RAW; + image, "compact-nexttrack-normal.png" RAW; + image, "compact-prevtrack-normal.png" RAW; + image, "compact-seekback-normal.png" RAW; + image, "compact-seekforward-normal.png" RAW; + image, "compact-nexttrack-clicked.png" RAW; + image, "compact-prevtrack-clicked.png" RAW; + image, "compact-seekback-clicked.png" RAW; + image, "compact-seekforward-clicked.png" RAW; + image, "playpause-normal.png" RAW; + image, "playpause-clicked.png" RAW; diff --git a/data/themes/streamline/streamline_parts.edc b/data/themes/streamline/streamline_parts.edc new file mode 100644 index 0000000..7984f8e --- /dev/null +++ b/data/themes/streamline/streamline_parts.edc @@ -0,0 +1,1023 @@ + /* Border Scaled Image for Background */ + part { + name, "background"; + mouse_events, 0; + type, IMAGE; + 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, "border-scale.png"; + border, 6 6 6 6; + } + + fill { + smooth, 0; + } + } + } + + part { + name, "title"; + type, TEXT; + //effect, SHADOW; + mouse_events, 1; + repeat_events, 1; + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 0 4; + } + rel2 { + relative, 1.0 0.0; + offset, -1 15; + } + color, 255 255 255 255; + text { + text, "Euphoria"; + font, "Vera"; /* Only font Vera works! Use other and segv */ + size, 8; /* Font Size */ + align, 0.5 1.0; /* Text alignment based on rel1/rel2 */ + } + } + } + + part { + name, "titlebar"; + type, RECT; + mouse_events, 1; + repeat_events, 1; + + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 0 0; + } + + rel2 { + relative, 1.0 0.0; + offset, -1 16; + } + + color, 0 0 0 0; + } + + } + + + part { + name, "quit"; + type, IMAGE; + mouse_events, 1; + description { + state, "default" 0.0; + + rel1 { + relative, 1.0 0.0; + offset, -15 4; + } + + rel2 { + relative, 1.0 0.0; + offset, -8 11; + } + + image { + normal, "close_button.png"; + } + + fill { + smooth, 0; + } + } + } + + /* LCD Backdrop Image */ + part { + name, "lcd_backdrop"; + type, IMAGE; + mouse_events, 0; + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 4 17; + } + + rel2 { + relative, 0.0 0.0; + offset, 193 86; + } + + image { + normal, "lcd_area.png"; + border, 5 5 5 5; + } + + fill { + smooth, 0; + } + } + } + + /* LCD Clipping Area - Invisible Rect */ + part { + name, "lcd_clip"; + type, RECT; + mouse_events, 0; + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 5 5; + to, "lcd_backdrop"; + } + + rel2 { + relative, 1.0 1.0; + offset, -5 -5; + to, "lcd_backdrop"; + } + //color, 0 0 0 0; + + } + } + + part { + name, "artist_name"; + type, TEXT; + //effect, SOFT_OUTLINE; + mouse_events, 0; + clip_to, "lcd_clip"; + description { + state, "default" 0.0; + + /* Use the relative size of the LCD itself, then position with align */ + rel1 { + relative, 0.0 0.0; + offset, 8 0; + to, "lcd_backdrop"; + } + + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "lcd_backdrop"; + } + + + color, 181 247 255 255; + text { + text, "Artist Name"; /* Text String */ + font, "redensek"; /* Only font Vera works! Use other and segv */ + size, 12; /* Font Size */ + align, 0.0 0.1; /* Text alignment based on rel1/rel2 */ + } + } + } + + part { + name, "album_name"; + type, TEXT; + //effect, SOFT_OUTLINE; + mouse_events, 0; + clip_to, "lcd_clip"; + description { + state, "default" 0.0; + + /* Use the relative size of the LCD itself, then position with align */ + rel1 { + relative, 0.0 0.0; + offset, 8 0; + to, "lcd_backdrop"; + } + + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "lcd_backdrop"; + } + + + color, 181 247 255 255; + text { + text, "Album Name"; /* Text String */ + font, "redensek"; /* Only font Vera works! Use other and segv */ + size, 12; /* Font Size */ + align, 0.0 0.3; /* Text alignment based on rel1/rel2 */ + } + } + } + + part { + name, "song_name"; + type, TEXT; + //effect, SOFT_OUTLINE; + mouse_events, 0; + clip_to, "lcd_clip"; + description { + state, "default" 0.0; + + /* Use the relative size of the LCD itself, then position with align */ + rel1 { + relative, 0.0 0.0; + offset, 8 0; + to, "lcd_backdrop"; + } + + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "lcd_backdrop"; + } + + + color, 181 247 255 255; + text { + text, "Song Name"; /* Text String */ + font, "redensek"; /* Only font Vera works! Use other and segv */ + size, 12; /* Font Size */ + align, 0.0 0.5; /* Text alignment based on rel1/rel2 */ + } + } + } + + /* Time Counter */ + part { + name, "time_text"; + type, TEXT; + //effect, OUTLINE_SOFT_SHADOW; + clip_to, "lcd_clip"; + mouse_events, 1; + description { + state, "default" 0.0; + + /* Use the relative size of the LCD itself, then position with align */ + rel1 { + relative, 0.0 0.0; + offset, 0 0; + to, "lcd_backdrop"; + } + + rel2 { + relative, 1.0 1.0; + offset, -9 -1; + to, "lcd_backdrop"; + } + + + color, 181 247 255 255; + text { + text, "0:00"; /* Text String */ + font, "micro"; /* Only font Vera works! Use other and segv */ + size, 26; /* Font Size */ + align, 1.0 1.0; /* Text alignment based on rel1/rel2 */ + } + } + } + + + /************* Buttons *******************************/ + + /* Button Area */ + part { + name, "button_background"; + type, IMAGE; + mouse_events, 0; + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 196 40; + } + + rel2 { + relative, 0.0 0.0; + offset, 316 86; + } + + image { + normal, "controls-back.png"; + border, 5 5 5 5; + } + + fill { + smooth, 0; + } + } + } + + + /* Previous Button */ + part { + name, "previous_button"; + mouse_events, 1; + description { + state, "default" 0.0; + min, 29 20; + max, 29 20; + + rel1 { + relative, 0.0 0.0; + offset, 3 2; + to, "button_background"; + } + rel2 { + relative, 0.0 0.0; + offset, 32 22; + to, "button_background"; + } + image { + normal, "compact-prevtrack-normal.png"; + } + } + + description { + state, "clicked" 0.0; + min, 29 20; + max, 29 20; + + rel1 { + relative, 0.0 0.0; + offset, 3 2; + to, "button_background"; + } + rel2 { + relative, 0.0 0.0; + offset, 32 22; + to, "button_background"; + } + + image { + normal, "compact-prevtrack-clicked.png"; + } + } + + } + + + /* Play Button */ + part { + name, "play_button"; + mouse_events, 1; + description { + state, "default" 0.0; + min, 56 40; + max, 56 40; + align, 0.5 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 62 3; + to, "button_background"; + } + rel2 { + relative, 0.0 0.0; + offset, 117 43; + to, "button_background"; + } + image { + normal, "playpause-normal.png"; + } + } + description { + state, "clicked" 0.0; + min, 56 40; + max, 56 40; + align, 0.5 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 62 3; + to, "button_background"; + } + rel2 { + relative, 0.0 0.0; + offset, 117 43; + to, "button_background"; + } + image { + normal, "playpause-clicked.png"; + } + } + description { + state, "blink" 0.0; + min, 56 40; + max, 56 40; + align, 0.5 0.0; + + rel1 { + relative, 1.0 0.0; + offset, 0 0; + to, "previous_button"; + } + rel2 { + relative, 0.0 1.0; + offset, -0 -0; + to, "next_button"; + } + + image { + normal, "button-full-blinking.png"; + tween, "button-full-unblinking.png"; + } + } + + } + + /* Pause Button */ + + part { + name, "pause_button"; + mouse_events, 0; + description { + state, "default" 0.0; + min, 56 40; + max, 56 40; + visible, 0; + + rel1 { + relative, 1.0 0.0; + offset, 0 0; + to, "seekback_button"; + } + rel2 { + relative, 0.0 1.0; + offset, -0 -0; + to, "seekforward_button"; + } + + image { + normal, "button-3stage-unselected.png"; + tween, "button-3stage-fulldown.png"; + } + } + description { + state, "clicked" 0.0; + min, 56 40; + max, 56 40; + visible, 1; + + rel1 { + relative, 1.0 0.0; + offset, 0 0; + to, "seekback_button"; + } + rel2 { + relative, 0.0 1.0; + offset, -0 -0; + to, "seekforward_button"; + } + + image { + normal, "button-3stage-selected.png"; + tween, "button-3stage-fulldown.png"; + } + } + description { + state, "blink" 0.0; + min, 56 40; + max, 56 40; + visible, 1; + + rel1 { + relative, 1.0 0.0; + offset, 0 0; + to, "seekback_button"; + } + rel2 { + relative, 0.0 1.0; + offset, -0 -0; + to, "seekforward_button"; + } + + image { + normal, "button-full-blinking.png"; + tween, "button-full-unblinking.png"; + } + } + } + + + + /* Next Button */ + part { + name, "next_button"; + mouse_events, 1; + description { + state, "default" 0.0; + min, 27 20; + max, 27 20; + + rel1 { + relative, 0.0 0.0; + offset, 32 2; + to, "button_background"; + } + rel2 { + relative, 0.0 0.0; + offset, 59 22; + to, "button_background"; + } + image { + normal, "compact-nexttrack-normal.png"; + } + } + description { + state, "clicked" 0.0; + min, 27 20; + max, 27 20; + + rel1 { + relative, 0.0 0.0; + offset, 32 2; + to, "button_background"; + } + rel2 { + relative, 0.0 0.0; + offset, 59 22; + to, "button_background"; + } + image { + normal, "compact-nexttrack-clicked.png"; + } + } + } + + /* Seekback Button */ + part { + name, "seekback_button"; + mouse_events, 1; + description { + state, "default" 0.0; + min, 29 20; + max, 29 20; + visible, 1; + + rel1 { + relative, 0.0 0.0; + offset, 3 24; + to, "button_background"; + } + rel2 { + relative, 0.0 0.0; + offset, 32 44; + to, "button_background"; + } + + image { + normal, "compact-seekback-normal.png"; + } + } + description { + state, "clicked" 0.0; + min, 29 20; + max, 29 20; + visible, 1; + + rel1 { + relative, 0.0 0.0; + offset, 3 24; + to, "button_background"; + } + rel2 { + relative, 0.0 0.0; + offset, 32 44; + to, "button_background"; + } + + image { + normal, "compact-seekback-clicked.png"; + } + } + } + + /* Seekforward Button */ + part { + name, "seekforward_button"; + mouse_events, 1; + description { + state, "default" 0.0; + min, 27 20; + max, 27 20; + visible, 1; + + rel1 { + relative, 0.0 0.0; + offset, 32 24; + to, "button_background"; + } + rel2 { + relative, 0.0 0.0; + offset, 59 44; + to, "button_background"; + } + + image { + normal, "compact-seekforward-normal.png"; + } + } + description { + state, "clicked" 0.0; + min, 27 20; + max, 27 20; + visible, 1; + + rel1 { + relative, 0.0 0.0; + offset, 32 24; + to, "button_background"; + } + rel2 { + relative, 0.0 0.0; + offset, 59 44; + to, "button_background"; + } + + image { + normal, "compact-seekforward-clicked.png"; + } + } + } + + + /*************** Toggle Repeat **************/ + + part { + name, "repeat_toggle_disabled_img"; + type, IMAGE; + mouse_events, 0; + + description { + state, "default" 0.0; + visible, 0; + min, 57 20; + max, 57 20; + + rel1 { + relative, 0.0 1.0; + offset, 25 28; + to, "button_background"; + } + + rel2 { + relative, 0.25 1.0; + offset, 0 0; + to, "button_background"; + } + + image { + normal, "button-off.png"; + } + } + + description { + state, "disabled" 0.0; + inherit, "default" 0.0; + visible, 0; + } + } + + part { + name, "repeat_toggle_enabled_img"; + mouse_events, 0; + + description { + state, "default" 0.0; + visible, 0; + min, 57 20; + max, 57 20; + + rel1 { + relative, 0.0 1.0; + offset, 25 28; + to, "button_background"; + } + + rel2 { + relative, 0.25 1.0; + offset, 0 0; + to, "button_background"; + } + + image { + normal, "button-on.png"; + } + } + + description { + state, "enabled" 0.0; + inherit, "default" 0.0; + visible, 0; + } + } + part { + name, "repeat_toggle_label"; + type, TEXT; + mouse_events, 0; + + description { + state, "default" 0.0; + visible, 0; + + rel1 { + relative, 0.0 0.0; + offset, 0 0; + to, "repeat_toggle_disabled_img"; + } + + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "repeat_toggle_disabled_img"; + } + + color, 0 0 0 255; + + text { + text, "REPEAT"; + font, "Vera"; + size, 5; + align, 0.5 0.6; + } + } + } + + + + + + /********** Volume Controls ***************************************/ + part { + name, "vol_label"; + mouse_events, 0; + description { + state, "default" 0.0; + min, 21 20; + max, 21 20; + + rel1 { + relative, 0.0 0.0; + offset, 282 17; + } + rel2 { + relative, 0.0 0.0; + offset, 305 36; + } + + image { + normal, "vol-label.png"; + } + } + } + + part { + name, "vol_label_text"; + type, TEXT; + mouse_events, 0; /* Does part accept mouse events? */ + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 0 0; + to, "vol_label"; + } + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "vol_label"; + } + + + color, 255 255 255 255; /* Color of text */ + color2, 0 0 255 255; /* Does nothing for SOFT_SHADOW */ + color3, 0 0 0 32; /* Color of shadow */ + + text { + text, "VOL"; /* Text String */ + font, "Vera"; /* Only font Vera works! Use other and segv */ + size, 5; /* Font Size */ + align, 0.5 0.6; /* Text alignment based on rel1/rel2 */ + } + } + } + + part { + name, "vol_display"; + mouse_events, 0; + description { + state, "default" 0.0; + min, 23 20; + max, 23 20; + + rel1 { + relative, 0.0 0.0; + offset, -23 0; + to, "vol_label"; + } + rel2 { + relative, 0.0 1.0; + offset, 0 0; + to, "vol_label"; + } + + image { + normal, "vol-display.png"; + } + } + } + + + part { + name, "vol_display_text"; + type, TEXT; + //clip_to, "vol_display"; + description { + state, "default" 0.0; + + /* Use the relative size of the LCD itself, then position with align */ + rel1 { + relative, 0.0 0.0; + offset, 0 0; + to, "vol_display"; + } + + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "vol_display"; + } + + + color, 181 247 255 255; + text { + text, "00"; /* Text String */ + font, "Vera"; /* Only font Vera works! Use other and segv */ + size, 8; /* Font Size */ + align, 0.5 0.6; /* Text alignment based on rel1/rel2 */ + } + } + } + + part { + name, "vol_incr_button"; + mouse_events, 1; + description { + state, "default" 0.0; + min, 25 20; + max, 25 20; + + rel1 { + relative, 0.0 0.0; + offset, -25 0; + to, "vol_display"; + } + rel2 { + relative, 0.0 1.0; + offset, 0 0; + to, "vol_display"; + } + + image { + normal, "vol-plus.png"; + } + } + description { + state, "clicked" 0.0; + min, 25 20; + max, 25 20; + + rel1 { + relative, 0.0 0.0; + offset, -25 0; + to, "vol_display"; + } + rel2 { + relative, 0.0 1.0; + offset, 0 0; + to, "vol_display"; + } + + image { + normal, "vol-plus-clicked.png"; + } + } + } + + part { + name, "vol_decr_button"; + mouse_events, 1; + description { + state, "default" 0.0; + min, 29 20; + max, 29 20; + + rel1 { + relative, 0.0 0.0; + offset, -29 0; + to, "vol_incr_button"; + } + rel2 { + relative, 0.0 1.0; + offset, 0 0; + to, "vol_incr_button"; + } + + image { + normal, "vol-minus.png"; + } + } + description { + state, "clicked" 0.0; + min, 29 20; + max, 29 20; + + rel1 { + relative, 0.0 0.0; + offset, -29 0; + to, "vol_incr_button"; + } + rel2 { + relative, 0.0 1.0; + offset, 0 0; + to, "vol_incr_button"; + } + + image { + normal, "vol-minus-clicked.png"; + } + } + } + + + /************ PLAYLIST **************************************************/ + + /* LCD Playlist Backdrop Image */ + part { + name, "playlist_backdrop"; + type, IMAGE; + mouse_events, 0; + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 319 17; + } + + rel2 { + relative, 1.0 1.0; + offset, -5 -4; + } + + image { + normal, "lcd_area.png"; + border, 5 5 5 5; + } + + fill { + smooth, 0; + } + } + } + + part { + name, "playlist"; + type, RECT; + mouse_events, 1; + + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 8 5; + to, "playlist_backdrop"; + } + + rel2 { + relative, 1.0 1.0; + offset, -6 -6; + to, "playlist_backdrop"; + } + color, 0 0 0 0; + } + } + + diff --git a/data/themes/streamline/streamline_playlist_parts.edc b/data/themes/streamline/streamline_playlist_parts.edc new file mode 100644 index 0000000..edb01f7 --- /dev/null +++ b/data/themes/streamline/streamline_playlist_parts.edc @@ -0,0 +1,64 @@ + + part { + name, "clip"; + type, RECT; + + description { + state, "default" 0.0; + } + } + + part { + name, "background"; + type, RECT; + clip_to, "clip"; + + description { + state, "default" 0.0; + color, 0 0 0 0; + } + + description { + state, "selected" 0.0; + color, 73 104 111 128; + } + } + + part { + name, "title"; + type, TEXT; + mouse_events, 1; + clip_to, "clip"; + + description { + color, 181 247 255 255; + align, 0.0 0.0; + max, 150 12; + + text { + text, "Dummy"; + font, "redensek"; + size, 12; + align, 0.0 0.0; + } + } + } + + part { + name, "length"; + type, TEXT; + mouse_events, 1; + clip_to, "clip"; + + description { + color, 181 247 255 255; + + text { + text, "2:55"; + font, "redensek"; + size, 12; + align, 1.0 0.0; + } + } + } + diff --git a/data/themes/streamline/streamline_playlist_progs.edc b/data/themes/streamline/streamline_playlist_progs.edc new file mode 100644 index 0000000..7bcfb57 --- /dev/null +++ b/data/themes/streamline/streamline_playlist_progs.edc @@ -0,0 +1,47 @@ + + program { + name, "selected_mouse"; + signal, "mouse,clicked,1"; + source, "*"; + action, SIGNAL_EMIT "PLAYLIST_ITEM_SELECTED" ""; + } + + program { + name, "selected"; + signal, "PLAYLIST_ITEM_SELECTED"; + source, ""; + action, STATE_SET "selected" 0.0; + transition, LINEAR 0.2; + target, "background"; + } + + program { + name, "unselected"; + signal, "PLAYLIST_ITEM_UNSELECTED"; + source, ""; + action, STATE_SET "default" 0.0; + transition, LINEAR 0.2; + target, "background"; + } + + program { + name, "dbl_clicked"; + signal, "mouse,down,1,double"; + source, "*"; + action, SIGNAL_EMIT "PLAYLIST_ITEM_PLAY" ""; + } + + program { + name, "scroll_up"; + signal, "mouse,wheel,0,-1"; + source, "*"; + action, SIGNAL_EMIT "PLAYLIST_SCROLL_UP" ""; + } + + program { + name, "scroll_down"; + signal, "mouse,wheel,0,1"; + source, "*"; + action, SIGNAL_EMIT "PLAYLIST_SCROLL_DOWN" ""; + } + diff --git a/data/themes/streamline/streamline_progs.edc b/data/themes/streamline/streamline_progs.edc new file mode 100644 index 0000000..1bb3af0 --- /dev/null +++ b/data/themes/streamline/streamline_progs.edc @@ -0,0 +1,361 @@ + + /* Quit Handlers */ + program { + name, "quit_button_in"; + signal, "mouse,in"; + source, "quit"; + action, STATE_SET "active" 0.0; + target, "quit"; + transition, LINEAR 0.5; + } + program { + name, "quit_button_out"; + signal, "mouse,out"; + source, "quit"; + action, STATE_SET "default" 0.0; + target, "quit"; + transition, LINEAR 0.5; + } + program { + name, "quit_button_click"; + signal, "mouse,clicked,1"; + source, "quit"; + action, SIGNAL_EMIT "QUIT" "quit"; + } + + /* switch to "small" mode */ + program { + name, "titlebar_dbl_click"; + signal, "mouse,down,1,double"; + source, "titlebar"; + action, SIGNAL_EMIT "SWITCH_GROUP" "euphoria_small"; + } + + /* Previous File */ + program { + name, "previous_click"; + signal, "mouse,down,1"; + source, "previous_button"; + action, STATE_SET "clicked" 0.0; + transition, LINEAR 0.0; + target, "previous_button"; + } + program { + name, "previous_unclick"; + signal, "mouse,up,1"; + source, "previous_button"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.25; + target, "previous_button"; + } + + program { + name, "previous_click_emission"; + signal, "mouse,up,1"; + source, "previous_button"; + /* Emit signal to handler "previous file", from part/sender "previous_button" */ + /* Catch with the following Edje code in your app */ + /* edje_object_signal_callback_add(edje, "playback.prev", "previous_button", function) */ + action, SIGNAL_EMIT "playback.prev" "previous_button"; + } + + program { + name, "time_text_click"; + signal, "mouse,up,1"; + source, "time_text"; + action, SIGNAL_EMIT "TOGGLE_TIME_DISPLAY_MODE" "time_text"; + } + + /* Seek Backwards */ + + program { + name, "seekback_click"; + signal, "mouse,down,1"; + source, "seekback_button"; + action, STATE_SET "clicked" 0.0; + transition, LINEAR 0.0; + target, "seekback_button"; + } + program { + name, "seekback_unclick"; + signal, "mouse,up,1"; + source, "seekback_button"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.25; + target, "seekback_button"; + } + + program { + name, "seekback_start"; + signal, "mouse,down,1"; + source, "seekback_button"; + action, SIGNAL_EMIT "SEEK_BACK_START" "seekback_button"; + } + + program { + name, "seekback_stop"; + signal, "mouse,up,1"; + source, "seekback_button"; + action, SIGNAL_EMIT "SEEK_BACK_STOP" "seekback_button"; + } + + + /* Play */ + program { + name, "play_click"; + signal, "mouse,down,1"; + source, "play_button"; + action, STATE_SET "clicked" 0.0; + transition, LINEAR 0.0; + target, "play_button"; + //after, "play_blink"; + } + + program { + name, "play_unclick"; + signal, "mouse,up,1"; + source, "play_button"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.25; + target, "play_button"; + //after, "pause_unblink"; + } + + /* Stop Pause Blinker */ + /* When using the action STOP, the target is the program to be stopped */ + program { + name, "pause_unblink"; + source, "*"; + action, ACTION_STOP; + target, "pause_blink"; + after, "play_blink"; + } + + + /* Loop Play Blinker */ + program { + name, "play_blink"; + source, "*"; + action, STATE_SET "blink" 0.0; + transition, LINEAR 1.0; + target, "play_button"; + after, "play_blink"; + } + + program { + name, "play_click_emission"; + signal, "mouse,up,1"; + source, "play_button"; + action, SIGNAL_EMIT "playback.play" "play_button"; + } + /**************** Pause ****************/ + program { + name, "pause_click"; + signal, "mouse,down,1"; + source, "pause_button"; + action, STATE_SET "clicked" 0.0; + transition, LINEAR 0.2; + target, "pause_button"; + //after, "pause_blink"; + } + + program { + name, "pause_unclick"; + signal, "mouse,up,1"; + source, "pause_button"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.2; + target, "pause_button"; + //after, "play_unblink"; + } + + program { + name, "play_unblink"; + source, "*"; + action, ACTION_STOP; + target, "play_blink"; + after, "pause_blink"; + } + + program { + name, "pause_blink"; + source, "*"; + action, STATE_SET "blink" 0.0; + transition, LINEAR 1.0; + target, "pause_button"; + after, "pause_blink"; + } + + program { + name, "pause_click_emission"; + signal, "mouse,up,1"; + source, "pause_button"; + action, SIGNAL_EMIT "playback.pause" "pause_button"; + } + + /**************** Seek Forward ********************/ + program { + name, "seekforward_click"; + signal, "mouse,down,1"; + source, "seekforward_button"; + action, STATE_SET "clicked" 0.0; + transition, LINEAR 0.0; + target, "seekforward_button"; + } + program { + name, "seekforward_unclick"; + signal, "mouse,up,1"; + source, "seekforward_button"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.25; + target, "seekforward_button"; + } + + program { + name, "seekforward_start"; + signal, "mouse,down,1"; + source, "seekforward_button"; + action, SIGNAL_EMIT "SEEK_FORWARD_START" "seekforward_button"; + } + + program { + name, "seekforward_stop"; + signal, "mouse,up,1"; + source, "seekforward_button"; + action, SIGNAL_EMIT "SEEK_FORWARD_STOP" "seekforward_button"; + } + + + /* Next File */ + program { + name, "next_click"; + signal, "mouse,down,1"; + source, "next_button"; + action, STATE_SET "clicked" 0.0; + transition, LINEAR 0.0; + target, "next_button"; + } + program { + name, "next_unclick"; + signal, "mouse,up,1"; + source, "next_button"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.25; + target, "next_button"; + } + program { + name, "next_click_emission"; + signal, "mouse,up,1"; + source, "next_button"; + action, SIGNAL_EMIT "playback.next" "next_button"; + } + + /* Volume Button Proggies */ + /* Raise Volume */ + program { + name, "volplus_click"; + signal, "mouse,down,1"; + source, "vol_incr_button"; + action, STATE_SET "clicked" 0.0; + transition, LINEAR 0.0; + target, "vol_incr_button"; + } + program { + name, "volplus_unclick"; + signal, "mouse,up,1"; + source, "vol_incr_button"; + action, STATE_SET "default" 0.0; + transition, LINEAR 0.0; + target, "vol_incr_button"; + } + + program { + name, "vol_incr_sig_wheel1"; + signal, "mouse,wheel,0,-1"; + source, "vol_incr_button"; + action, SIGNAL_EMIT "VOL_INCR" "vol_incr_button"; + } + + program { + name, "vol_incr_sig_wheel2"; + signal, "mouse,wheel,0,1"; + source, "vol_incr_button"; + action, SIGNAL_EMIT "VOL_DECR" "vol_decr_button"; + } + + + /** NOTES: All programs MUST have AT LEAST, a NAME, SOURCE (even if "*";), and an ACTION **/ + + program { + name, "vol_incr_sig"; + //signal, "*"; + //source, "volplus_click"; + signal, "mouse,up,1"; + source, "vol_incr_button"; + action, SIGNAL_EMIT "VOL_INCR" "vol_incr_button"; + } + + /* Lower Volume */ + program { + name, "volminus_click"; + signal, "mouse,down,1"; + source, "vol_decr_button"; + action, STATE_SET "clicked" 0.0; + transition, LINEAR 0.0; + target, "vol_decr_button"; + } + program { + name, "volminus_unclick"; + signal, "mouse,up,1"; + source, "vol_decr_button"; + action, STATE_SET "default" 0.0; + transition, LINEAR 0.0; + target, "vol_decr_button"; + } + program { + name, "vol_decr_sig"; + signal, "mouse,up,1"; + source, "vol_decr_button"; + action, SIGNAL_EMIT "VOL_DECR" "vol_decr_button"; + } + + program { + name, "vol_decr_sig_wheel1"; + signal, "mouse,wheel,0,-1"; + source, "vol_decr_button"; + action, SIGNAL_EMIT "VOL_INCR" "vol_incr_button"; + } + + program { + name, "vol_decr_sig_wheel2"; + signal, "mouse,wheel,0,1"; + source, "vol_decr_button"; + action, SIGNAL_EMIT "VOL_DECR" "vol_decr_button"; + } + + program { + name, "repeat_toggle_activated"; + signal, "mouse,clicked,1"; + source, "repeat_toggle_disabled_img"; + action, STATE_SET "disabled" 0.0; + target, "repeat_toggle_disabled_img"; + action, STATE_SET "enabled" 0.0; + target, "repeat_toggle_enabled_img"; + after, "repeat_toggle_signal"; + } + + program { + name, "repeat_toggle_deactivated"; + signal, "mouse,clicked,1"; + source, "repeat_toggle_enabled_img"; + action, STATE_SET "default" 0.0; + target, "repeat_toggle_enabled_img"; + action, STATE_SET "default" 0.0; + target, "repeat_toggle_disabled_img"; + after, "repeat_toggle_signal"; + } + + program { + name, "repeat_toggle_signal"; + action, SIGNAL_EMIT "TOGGLE_REPEAT_MODE" "repeat_mode"; + } diff --git a/data/themes/streamline/streamline_small_parts.edc b/data/themes/streamline/streamline_small_parts.edc new file mode 100644 index 0000000..cb0f28e --- /dev/null +++ b/data/themes/streamline/streamline_small_parts.edc @@ -0,0 +1,734 @@ +/** Minimized functionality by digitalfallout **/ + part { + name, "background"; + mouse_events, 1; + repeat_events, 1; + type, IMAGE; + + 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, "border-scale.png"; + border, 6 6 6 6; + } + fill { + smooth, 0; + } + } + } + part { + name, "title"; + type, TEXT; + mouse_events, 1; + repeat_events, 1; + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 0 0; + } + rel2 { + relative, 1.0 1.0; + offset, -4 -4; + } + color, 255 255 255 255; + text { + text, "Euphoria"; + font, "Vera"; /* Only font Vera works! Use other and segv */ + size, 6; /* Font Size */ + align, 1.0 1.0; /* Text alignment based on rel1/rel2 */ + } + } + } + /***** START LCD AREA *****/ + /* LCD Backdrop Image */ + part { + name, "lcd_backdrop"; + type, IMAGE; + mouse_events, 0; + description { + state, "default" 0.0; + + /* Part should fill from the far left, 20 pixels down */ + rel1 { + relative, 0.0 0.0; + offset, 4 4; + } + + /* all the way to the far right, 40 pixels north of the bottom right corner */ + rel2 { + relative, 1.0 0.0; + offset, -6 35; + } + + image { + normal, "lcd_area.png"; + border, 5 5 5 5; + } + + fill { + smooth, 0; + } + } + } + /* LCD Clipping Area - Invisible Rect */ + part { + name, "lcd_clip"; + type, RECT; + mouse_events, 0; + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 5 5; + to, "lcd_backdrop"; + } + + rel2 { + relative, 1.0 1.0; + offset, -5 -5; + to, "lcd_backdrop"; + } + + } + } + + part { + name, "artist_name"; + type, TEXT; + mouse_events, 0; + clip_to, "lcd_clip"; + description { + state, "default" 0.0; + + /* Use the relative size of the LCD itself, then position with align */ + rel1 { + relative, 0.0 0.0; + offset, 8 0; + to, "lcd_backdrop"; + } + + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "lcd_backdrop"; + } + + + color, 181 247 255 255; + text { + text, "Artist Name"; /* Text String */ + font, "redensek"; /* Only font Vera works! Use other and segv */ + size, 12; /* Font Size */ + align, 0.0 0.1; /* Text alignment based on rel1/rel2 */ + } + } + } + + part { + name, "song_name"; + type, TEXT; + mouse_events, 0; + clip_to, "lcd_clip"; + description { + state, "default" 0.0; + + /* Use the relative size of the LCD itself, then position with align */ + rel1 { + relative, 0.0 0.0; + offset, 8 5; + to, "lcd_backdrop"; + } + + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "lcd_backdrop"; + } + + + color, 181 247 255 255; + text { + text, "Song Name"; /* Text String */ + font, "redensek"; /* Only font Vera works! Use other and segv */ + size, 12; /* Font Size */ + align, 0.0 0.5; /* Text alignment based on rel1/rel2 */ + } + } + } + /* Time Counter */ + part { + name, "time_text"; + type, TEXT; + clip_to, "lcd_clip"; + mouse_events, 1; + description { + state, "default" 0.0; + + /* Use the relative size of the LCD itself, then position with align */ + rel1 { + relative, 0.0 0.0; + offset, 0 0; + to, "lcd_backdrop"; + } + + rel2 { + relative, 1.0 1.0; + offset, -9 -1; + to, "lcd_backdrop"; + } + + + color, 181 247 255 255; + text { + text, "0:00"; /* Text String */ + font, "micro"; /* Only font Vera works! Use other and segv */ + size, 32; /* Font Size */ + align, 1.0 1.0; /* Text alignment based on rel1/rel2 */ + } + } + } + /***** END LCD AREA *****/ + + /***** START BUTTON AREA *****/ + + /***** start previous button *****/ + part { + name, "previous_button"; + mouse_events, 1; + type, IMAGE; + description { + state, "default" 0.0; + rel1 { + relative, 0.0 0.0; + offset, 5 37; + } + rel2 { + relative, 0.0 1.0; + offset, 30 -5; + } + image { + normal, "button-small-normal.png"; + } + } + description { + state, "clicked" 0.0; + rel1 { + relative, 0.0 0.0; + offset, 5 37; + } + rel2 { + relative, 0.0 1.0; + offset, 30 -5; + } + image { + normal, "button-small-clicked.png"; + } + } + } + part { + name, "previous_text"; + type, TEXT; + mouse_events, 0; /* Does part accept mouse events? */ + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 0 0; + to, "previous_button"; + } + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "previous_button"; + } + + + color, 255 255 255 255; /* Color of text */ + color2, 0 0 255 255; /* Does nothing for SOFT_SHADOW */ + color3, 0 0 0 32; /* Color of shadow */ + + text { + text, "Back"; /* Text String */ + font, "Vera"; /* Only font Vera works! Use other and segv */ + size, 6; /* Font Size */ + align, 0.5 0.5; /* Text alignment based on rel1/rel2 */ + } + } + } + /***** stop previous button *****/ + /***** start play button *****/ + part { + name, "play_button"; + mouse_events, 1; + type, IMAGE; + description { + state, "default" 0.0; + rel1 { + relative, 0.0 0.0; + offset, 35 37; + } + rel2 { + relative, 0.0 1.0; + offset, 60 -5; + } + image { + normal, "button-small-normal.png"; + } + } + description { + state, "clicked" 0.0; + rel1 { + relative, 0.0 0.0; + offset, 35 37; + } + rel2 { + relative, 0.0 1.0; + offset, 60 -5; + } + image { + normal, "button-small-clicked.png"; + } + } + } + part { + name, "stop_text"; + type, TEXT; + mouse_events, 0; /* Does part accept mouse events? */ + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 0 0; + to, "play_button"; + } + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "play_button"; + } + + + color, 255 255 255 255; /* Color of text */ + color2, 0 0 255 255; /* Does nothing for SOFT_SHADOW */ + color3, 0 0 0 32; /* Color of shadow */ + + text { + text, "Play"; /* Text String */ + font, "Vera"; /* Only font Vera works! Use other and segv */ + size, 6; /* Font Size */ + align, 0.5 0.5; /* Text alignment based on rel1/rel2 */ + } + } + } + /***** stop play button *****/ + /***** start pause button *****/ + part { + name, "pause_button"; + mouse_events, 1; + type, IMAGE; + description { + state, "default" 0.0; + rel1 { + relative, 0.0 0.0; + offset, 65 37; + } + rel2 { + relative, 0.0 1.0; + offset, 90 -5; + } + image { + normal, "button-small-normal.png"; + } + } + description { + state, "clicked" 0.0; + rel1 { + relative, 0.0 0.0; + offset, 65 37; + } + rel2 { + relative, 0.0 1.0; + offset, 90 -5; + } + image { + normal, "button-small-clicked.png"; + } + } + } + part { + name, "pause_text"; + type, TEXT; + mouse_events, 0; /* Does part accept mouse events? */ + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 0 0; + to, "pause_button"; + } + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "pause_button"; + } + + + color, 255 255 255 255; /* Color of text */ + color2, 0 0 255 255; /* Does nothing for SOFT_SHADOW */ + color3, 0 0 0 32; /* Color of shadow */ + + text { + text, "Stop"; /* Text String */ + font, "Vera"; /* Only font Vera works! Use other and segv */ + size, 6; /* Font Size */ + align, 0.5 0.5; /* Text alignment based on rel1/rel2 */ + } + } + } + /***** stop next button *****/ + /***** start next button *****/ + part { + name, "next_button"; + mouse_events, 1; + type, IMAGE; + description { + state, "default" 0.0; + rel1 { + relative, 0.0 0.0; + offset, 95 37; + } + rel2 { + relative, 0.0 1.0; + offset, 120 -5; + } + image { + normal, "button-small-normal.png"; + } + } + description { + state, "clicked" 0.0; + rel1 { + relative, 0.0 0.0; + offset, 95 37; + } + rel2 { + relative, 0.0 1.0; + offset, 120 -5; + } + image { + normal, "button-small-clicked.png"; + } + } + } + part { + name, "next_text"; + type, TEXT; + mouse_events, 0; /* Does part accept mouse events? */ + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 0 0; + to, "next_button"; + } + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "next_button"; + } + + + color, 255 255 255 255; /* Color of text */ + color2, 0 0 255 255; /* Does nothing for SOFT_SHADOW */ + color3, 0 0 0 32; /* Color of shadow */ + + text { + text, "Next"; /* Text String */ + font, "Vera"; /* Only font Vera works! Use other and segv */ + size, 6; /* Font Size */ + align, 0.5 0.5; /* Text alignment based on rel1/rel2 */ + } + } + } + /***** stop next button *****/ + /***** start quit button *****/ + part { + name, "quit_button"; + mouse_events, 1; + type, IMAGE; + description { + state, "default" 0.0; + rel1 { + relative, 0.0 0.0; + offset, 125 37; + } + rel2 { + relative, 0.0 1.0; + offset, 150 -5; + } + image { + normal, "button-small-normal.png"; + } + } + description { + state, "clicked" 0.0; + rel1 { + relative, 0.0 0.0; + offset, 125 37; + } + rel2 { + relative, 0.0 1.0; + offset, 150 -5; + } + image { + normal, "button-small-clicked.png"; + } + } + } + part { + name, "quit_text"; + type, TEXT; + mouse_events, 0; /* Does part accept mouse events? */ + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 0 0; + to, "quit_button"; + } + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "quit_button"; + } + + + color, 255 255 255 255; /* Color of text */ + color2, 0 0 255 255; /* Does nothing for SOFT_SHADOW */ + color3, 0 0 0 32; /* Color of shadow */ + + text { + text, "Quit"; /* Text String */ + font, "Vera"; /* Only font Vera works! Use other and segv */ + size, 6; /* Font Size */ + align, 0.5 0.5; /* Text alignment based on rel1/rel2 */ + } + } + } + /***** stop exit button *****/ + /********** Volume Controls ***************************************/ + part { + name, "vol_label"; + mouse_events, 0; + description { + state, "default" 0.0; + min, 21 20; + max, 21 20; + + rel1 { + relative, 1.0 1.0; + offset, -115 -50; + } + rel2 { + relative, 1.0 1.0; + offset, 0 24; + } + + image { + normal, "vol-label.png"; + } + } + } + + part { + name, "vol_label_text"; + type, TEXT; + mouse_events, 0; /* Does part accept mouse events? */ + description { + state, "default" 0.0; + + rel1 { + relative, 0.0 0.0; + offset, 0 0; + to, "vol_label"; + } + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "vol_label"; + } + + + color, 255 255 255 255; /* Color of text */ + color2, 0 0 255 255; /* Does nothing for SOFT_SHADOW */ + color3, 0 0 0 32; /* Color of shadow */ + + text { + text, "VOL"; /* Text String */ + font, "Vera"; /* Only font Vera works! Use other and segv */ + size, 5; /* Font Size */ + align, 0.5 0.6; /* Text alignment based on rel1/rel2 */ + } + } + } + + part { + name, "vol_display"; + mouse_events, 0; + description { + state, "default" 0.0; + min, 23 20; + max, 23 20; + + rel1 { + relative, 0.0 0.0; + offset, -23 0; + to, "vol_label"; + } + rel2 { + relative, 0.0 1.0; + offset, 0 0; + to, "vol_label"; + } + + image { + normal, "vol-display.png"; + } + } + } + part { + name, "vol_display_text"; + type, TEXT; + //clip_to, "vol_display"; + description { + state, "default" 0.0; + + /* Use the relative size of the LCD itself, then position with align */ + rel1 { + relative, 0.0 0.0; + offset, 0 0; + to, "vol_display"; + } + + rel2 { + relative, 1.0 1.0; + offset, -1 -1; + to, "vol_display"; + } + + + color, 181 247 255 255; + text { + text, "00"; /* Text String */ + font, "Vera"; /* Only font Vera works! Use other and segv */ + size, 8; /* Font Size */ + align, 0.5 0.6; /* Text alignment based on rel1/rel2 */ + } + } + } + + part { + name, "vol_incr_button"; + mouse_events, 1; + description { + state, "default" 0.0; + min, 25 20; + max, 25 20; + + rel1 { + relative, 0.0 0.0; + offset, -25 0; + to, "vol_display"; + } + rel2 { + relative, 0.0 1.0; + offset, 0 0; + to, "vol_display"; + } + + image { + normal, "vol-plus.png"; + } + } + description { + state, "clicked" 0.0; + min, 25 20; + max, 25 20; + + rel1 { + relative, 0.0 0.0; + offset, -25 0; + to, "vol_display"; + } + rel2 { + relative, 0.0 1.0; + offset, 0 0; + to, "vol_display"; + } + + image { + normal, "vol-plus-clicked.png"; + } + } + } + + part { + name, "vol_decr_button"; + mouse_events, 1; + description { + state, "default" 0.0; + min, 29 20; + max, 29 20; + + rel1 { + relative, 0.0 0.0; + offset, -29 0; + to, "vol_incr_button"; + } + rel2 { + relative, 0.0 1.0; + offset, 0 0; + to, "vol_incr_button"; + } + + image { + normal, "vol-minus.png"; + } + } + description { + state, "clicked" 0.0; + min, 29 20; + max, 29 20; + + rel1 { + relative, 0.0 0.0; + offset, -29 0; + to, "vol_incr_button"; + } + rel2 { + relative, 0.0 1.0; + offset, 0 0; + to, "vol_incr_button"; + } + + image { + normal, "vol-minus-clicked.png"; + } + } + } diff --git a/data/themes/streamline/streamline_small_progs.edc b/data/themes/streamline/streamline_small_progs.edc new file mode 100644 index 0000000..706cbdd --- /dev/null +++ b/data/themes/streamline/streamline_small_progs.edc @@ -0,0 +1,216 @@ +/** Minimize funcationlity by digitalfallout **/ + + /* Previous */ + program { + name, "previous_click"; + signal, "mouse,down,1"; + source, "previous_button"; + action, STATE_SET "clicked" 0.0; + transition, LINEAR 0.0; + target, "previous_button"; + } + + program { + name, "previous_unclick"; + signal, "mouse,up,1"; + source, "previous_button"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.25; + target, "previous_button"; + } + program { + name, "previous_click_emission"; + signal, "mouse,up,1"; + source, "previous_button"; + action, SIGNAL_EMIT "playback.prev" "previous_button"; + } + + /* Play */ + program { + name, "play_click"; + signal, "mouse,down,1"; + source, "play_button"; + action, STATE_SET "clicked" 0.0; + transition, LINEAR 0.0; + target, "play_button"; + } + + program { + name, "play_unclick"; + signal, "mouse,up,1"; + source, "play_button"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.25; + target, "play_button"; + } + program { + name, "play_click_emission"; + signal, "mouse,up,1"; + source, "play_button"; + action, SIGNAL_EMIT "playback.play" "play_button"; + } + + /* Pause */ + program { + name, "pause_click"; + signal, "mouse,down,1"; + source, "pause_button"; + action, STATE_SET "clicked" 0.0; + transition, LINEAR 0.0; + target, "pause_button"; + } + + program { + name, "pause_unclick"; + signal, "mouse,up,1"; + source, "pause_button"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.25; + target, "pause_button"; + } + program { + name, "pause_click_emission"; + signal, "mouse,up,1"; + source, "pause_button"; + action, SIGNAL_EMIT "playback.pause" "pause_button"; + } + /* Next */ + program { + name, "next_click"; + signal, "mouse,down,1"; + source, "next_button"; + action, STATE_SET "clicked" 0.0; + transition, LINEAR 0.0; + target, "next_button"; + } + + program { + name, "next_unclick"; + signal, "mouse,up,1"; + source, "next_button"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.25; + target, "next_button"; + } + program { + name, "next_click_emission"; + signal, "mouse,up,1"; + source, "next_button"; + action, SIGNAL_EMIT "playback.next" "next_button"; + } + + + /* Quit */ + program { + name, "quit_click"; + signal, "mouse,down,1"; + source, "quit_button"; + action, STATE_SET "clicked" 0.0; + transition, LINEAR 0.0; + target, "quit_button"; + } + + program { + name, "quit_unclick"; + signal, "mouse,up,1"; + source, "quit_button"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.25; + target, "quit_button"; + } + program { + name, "quit_click_emission"; + signal, "mouse,up,1"; + source, "quit_button"; + action, SIGNAL_EMIT "close" "quit"; + } + /* Volume Button Proggies */ + /* Raise Volume */ + program { + name, "volplus_click"; + signal, "mouse,down,1"; + source, "vol_incr_button"; + action, STATE_SET "clicked" 0.0; + transition, LINEAR 0.0; + target, "vol_incr_button"; + } + program { + name, "volplus_unclick"; + signal, "mouse,up,1"; + source, "vol_incr_button"; + action, STATE_SET "default" 0.0; + transition, LINEAR 0.0; + target, "vol_incr_button"; + } + + program { + name, "vol_incr_sig_wheel1"; + signal, "mouse,wheel,0,-1"; + source, "vol_incr_button"; + action, SIGNAL_EMIT "VOL_INCR" "vol_incr_button"; + } + program { + name, "vol_incr_sig_wheel2"; + signal, "mouse,wheel,0,1"; + source, "vol_incr_button"; + action, SIGNAL_EMIT "VOL_DECR" "vol_decr_button"; + } + + + /** NOTES: All programs MUST have AT LEAST, a NAME, SOURCE (even if "*";), and an ACTION **/ + + program { + name, "vol_incr_sig"; + //signal, "*"; + //source, "volplus_click"; + signal, "mouse,up,1"; + source, "vol_incr_button"; + action, SIGNAL_EMIT "VOL_INCR" "vol_incr_button"; + } + + /* Lower Volume */ + program { + name, "volminus_click"; + signal, "mouse,down,1"; + source, "vol_decr_button"; + action, STATE_SET "clicked" 0.0; + transition, LINEAR 0.0; + target, "vol_decr_button"; + } + program { + name, "volminus_unclick"; + signal, "mouse,up,1"; + source, "vol_decr_button"; + action, STATE_SET "default" 0.0; + transition, LINEAR 0.0; + target, "vol_decr_button"; + } + program { + name, "vol_decr_sig"; + signal, "mouse,up,1"; + source, "vol_decr_button"; + action, SIGNAL_EMIT "VOL_DECR" "vol_decr_button"; + } + + program { + name, "vol_decr_sig_wheel1"; + signal, "mouse,wheel,0,-1"; + source, "vol_decr_button"; + action, SIGNAL_EMIT "VOL_INCR" "vol_incr_button"; + } + + program { + name, "vol_decr_sig_wheel2"; + signal, "mouse,wheel,0,1"; + source, "vol_decr_button"; + action, SIGNAL_EMIT "VOL_DECR" "vol_decr_button"; + } + + /* switch to "large" mode */ + program { + name, "titlebar_dbl_click"; + signal, "mouse,down,1,double"; + source, "background"; + action, SIGNAL_EMIT "SWITCH_GROUP" "euphoria"; + } + diff --git a/data/themes/winter/groups/collapsed.edc b/data/themes/winter/groups/collapsed.edc new file mode 100644 index 0000000..30af652 --- /dev/null +++ b/data/themes/winter/groups/collapsed.edc @@ -0,0 +1,296 @@ + group { + name, "collapsed"; + min, 118 32; + max, 9999 32; + parts { + part { + name, "main"; + mouse_events, 1; + repeat_events, 1; + description { + state, "default" 0.0; + min, 110 32; + max, 110 32; + rel1 { + relative, 0 0; + offset, 0 0; + } + rel2 { + relative, 0 1; + offset, 110 -1; + } + image { + normal, "small-main.png"; + border, 10 2 2 2; + } + } + } //part + part { + name, "left-grad"; + mouse_events, 0; + description { + state, "default" 0.0; + min, 9 32; + max, 9 32; + color, WINTER_COLOR; + rel1 { + to, "main"; + relative, 0 0; + offset, 0 0; + } + rel2 { + to, "main"; + relative, 0 1; + offset, 9 -1; + } + image { + normal, "small-left-grad.png"; + } + } + } //part + part { + name, "right"; + mouse_events, 1; + repeat_events, 1; + description { + state, "default" 0.0; + min, 9 32; + max, 9 32; + rel1 { + relative, 1 0; + offset, -9 0; + } + rel2 { + relative, 1 1; + offset, -1 -1; + } + image { + normal, "small-right.png"; + } + } + } //part + part { + name, "right-grad"; + mouse_events, 0; + description { + state, "default" 0.0; + min, 9 32; + max, 9 32; + color, WINTER_COLOR; + rel1 { + to, "right"; + relative, 0 0; + offset, 0 0; + } + rel2 { + to, "right"; + relative, 1 1; + offset, -1 -1; + } + image { + normal, "small-right-grad.png"; + } + } + } //part + part { + name, "panel"; + mouse_events, 1; + repeat_events, 1; + description { + state, "default" 0.0; + min, 0 30; + max, 9999 30; + rel1 { + to, "main"; + relative, 1 0; + offset, 0 1; + } + rel2 { + to, "right"; + relative, 0 1; + offset, -1 -2; + } + image { + normal, "small-panel.png"; + border, 10 2 2 2; + } + } + } //part + + BUTTON("prev", "small-prev1.png", "small-prev2.png", 16, 14, + "main", 0 1, 31 -17, + "main", 0 1, 47 -3); + BUTTON("rew", "small-rew1.png", "small-rew2.png", 11, 14, + "main", 0 1, 45 -17, + "main", 0 1, 56 -3); + TOGGLE_BUTTON("play", "small-play1.png", "small-play2.png", + "small-pause1.png", "small-pause2.png", 13, 13, + "main", 0 1, 55 -17, + "main", 0 1, 68 -4); + BUTTON("ff", "small-ff1.png", "small-ff2.png", 11, 14, + "main", 0 1, 66 -17, + "main", 0 1, 77 -3); + BUTTON("next", "small-next1.png", "small-next2.png", 16, 14, + "main", 0 1, 75 -17, + "main", 0 1, 91 -3); + + part { + name, "seekerTrough"; + mouse_events, 0; + description { + state, "default" 0.0; + min, 17 4; + max, 9999 4; + rel1 { + to, "main"; + relative, 0 0; + offset, 18 7; + } + rel2 { + to, "main"; + relative, 1 0; + offset, -9 11; + } + image { + normal, "small-seeker-trough.png"; + border, 3 3 2 2; + } + } + } //part + + part { + name, "seekerBar"; + mouse_events, 0; + description { + state, "default" 0.0; + min, 0 2; + max, 9999 2; + color, WINTER_COLOR; + rel1 { + to, "seekerTrough"; + relative, 0 0; + offset, 1 1; + } + rel2 { + to_x, "seeker"; + to_y, "seekerTrough"; + relative, 0 1; + offset, 0 -2; + } + image { + normal, "small-seeker-bar.png"; + border, 3 3 2 2; + } + } + } //part + + part { + name, "seeker"; + type, RECT; + mouse_events, 0; + dragable { + x, 1 1 1; + y, 0 0 0; + confine, "seekerTrough"; + } + description { + state, "default" 0.0; + visible, 0; + min, 1 4; + max, 1 4; + rel1 { + to, "seekerTrough"; + relative, 0 0; + offset, 0 0; + } + rel2 { + to, "seekerTrough"; + relative, 1 1; + offset, -1 -1; + } + } + } //part + + part { + name, "seeker_grabber"; + type, RECT; + mouse_events, 1; + description { + state, "default" 0.0; + visible, 1; + color, 0 0 0 0; + rel1 { + to, "seekerTrough"; + relative, 0 0; + offset, -2 -2; + } + rel2 { + to, "seekerTrough"; + relative, 1 1; + offset, 1 1; + } + } + } //part + + } //parts + + programs { + BUTTON_PROG("prev", "playback.prev") + BUTTON_PROG3("rew", "SEEK_BACK_START", "SEEK_BACK_STOP") + TOGGLE_BUTTON_PROG("play", "playback.play", "playback.pause") + BUTTON_PROG3("ff", "SEEK_FORWARD_START", "SEEK_FORWARD_STOP") + BUTTON_PROG("next", "playback.next") + + program { + name, "switch"; + signal, "mouse,down,1,double"; + source, "main"; + action, SIGNAL_EMIT "SWITCH_GROUP" "euphoria"; + } + program { + name, "seeker-start"; + signal, "mouse,down,1"; + source, "seeker_grabber"; + action, SIGNAL_EMIT "SEEKER_START" ""; + } + program { + name, "seeker-update"; + signal, "mouse,move"; + source, "seeker_grabber"; + action, SIGNAL_EMIT "SEEKER_UPDATE" ""; + } + program { + name, "seeker-stop"; + signal, "mouse,up,1"; + source, "seeker_grabber"; + action, SIGNAL_EMIT "SEEKER_STOP" ""; + } + program { + name, "toggle-playing"; + signal, "PLAYBACK_STATE_PLAYING"; + source, "*"; + action, STATE_SET "toggled" 0.0; + transition, LINEAR 0.0; + target, "play"; + target, "play-2"; + } + program { + name, "toggle-stopped"; + signal, "PLAYBACK_STATE_STOPPED"; + source, "*"; + action, STATE_SET "default" 0.0; + transition, LINEAR 0.0; + target, "play"; + target, "play-2"; + } + program { + name, "toggle-paused"; + signal, "PLAYBACK_STATE_PAUSED"; + source, "*"; + action, STATE_SET "default" 0.0; + transition, LINEAR 0.0; + target, "play"; + target, "play-2"; + } + } //programs + } //group diff --git a/data/themes/winter/groups/euphoria.edc b/data/themes/winter/groups/euphoria.edc new file mode 100644 index 0000000..3a03583 --- /dev/null +++ b/data/themes/winter/groups/euphoria.edc @@ -0,0 +1,54 @@ + group { + name, "euphoria"; + min, 200 300; + max, 99999 99999; + + data { + item, "shaped" "hell yeah"; + } + + script { + public message (Msg_Type:type, id, ...) + { + switch (id) { + case MSG_ID_SET_SONGNAME: { + new buf[128]; + + if (type != MSG_STRING_SET || numargs () < 5) + return; + + getsarg (2, buf, 128); + set_text (PART:"artist_name", buf); + + getsarg (3, buf, 128); + set_text (PART:"song_name", buf); + + getsarg (4, buf, 128); + set_text (PART:"album_name", buf); + } + } + } + } + + parts { +#include "../parts/main.edc" +#include "../parts/playlist.edc" +#include "../parts/buttons.edc" +#include "../parts/volume.edc" +#include "../parts/text.edc" +#include "../parts/seeker.edc" +#include "../parts/ani.edc" + + } //parts + + programs { +#include "../programs/buttons.edc" +#include "../programs/volume.edc" +#include "../programs/playlist.edc" +#include "../programs/seeker.edc" +#include "../programs/text.edc" +#include "../programs/ani.edc" +#include "../programs/switch.edc" + } //programs + + } //group diff --git a/data/themes/winter/groups/playlist_item.edc b/data/themes/winter/groups/playlist_item.edc new file mode 100644 index 0000000..b2c36b1 --- /dev/null +++ b/data/themes/winter/groups/playlist_item.edc @@ -0,0 +1,152 @@ + group { + name, "playlist_item"; + min, 50 15; + max, 9999 15; + parts { + part { + name, "bg"; + type, RECT; + mouse_events, 1; + + description { + state, "default" 0.0; + color, 0 0 0 0; + } + } + part { + name, "title"; + type, TEXT; + mouse_events, 1; + description { + state, "default" 0.0; + color, 0 0 0 128; + rel1 { + relative, 0.0 0.0; + offset, 5 0; + } + rel2 { + to_x, "duration"; + relative, 0.0 1.0; + offset, -5 0; + } + text { + text, "title"; + font, "Vera"; + size, 12; + align, 0.0 0.0; + } + } + description { + state, "selected" 0.0; + color, 0 0 0 255; + rel1 { + relative, 0.0 0.0; + offset, 5 0; + } + rel2 { + to_x, "duration"; + relative, 0.0 1.0; + offset, -5 0; + } + text { + text, "title"; + font, "Vera"; + size, 12; + align, 0.0 0.0; + } + } + } //part + part { + name, "duration"; + type, TEXT; + mouse_events, 1; + description { + state, "default" 0.0; + color, 0 0 0 128; + rel1 { + relative, 1.0 0.0; + offset, -30 0; + } + rel2 { + relative, 1.0 1.0; + offset, -5 -1; + } + text { + text, "00:00"; + font, "Vera"; + size, 12; + min, 1 1; + align, 1.0 0.0; + } + } + description { + state, "selected" 0.0; + color, 0 0 0 255; + rel1 { + relative, 1.0 0.0; + offset, -30 0; + } + rel2 { + relative, 1.0 1.0; + offset, -5 -1; + } + text { + text, "00:00"; + font, "Vera"; + size, 12; + min, 1 1; + align, 1.0 0.0; + } + } + } //part + + } //parts + + programs { + + program { + name, "selected_mouse"; + signal, "mouse,clicked,1"; + source, "*"; + action, SIGNAL_EMIT "PLAYLIST_ITEM_SELECTED" ""; + } + program { + name, "selected"; + signal, "PLAYLIST_ITEM_SELECTED"; + source, ""; + action, STATE_SET "selected" 0.0; + transition, DECELERATE 0.5; + target, "title"; + target, "duration"; + } + program { + name, "unselected"; + signal, "PLAYLIST_ITEM_UNSELECTED"; + source, ""; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.5; + target, "title"; + target, "duration"; + } + program { + name, "play_it"; + signal, "mouse,down,1,double"; + source, "*"; + action, SIGNAL_EMIT "PLAYLIST_ITEM_PLAY" ""; + } + program { + name, "scroll_up"; + signal, "mouse,wheel,0,-1"; + source, "*"; + action, SIGNAL_EMIT "PLAYLIST_SCROLL_UP" ""; + } + program { + name, "scroll_down"; + signal, "mouse,wheel,0,1"; + source, "*"; + action, SIGNAL_EMIT "PLAYLIST_SCROLL_DOWN" ""; + } + + } //programs + + } //group diff --git a/data/themes/winter/images/collapsed.edc b/data/themes/winter/images/collapsed.edc new file mode 100644 index 0000000..3f77092 --- /dev/null +++ b/data/themes/winter/images/collapsed.edc @@ -0,0 +1,21 @@ + image, "small-main.png" LOSSY 98; + image, "small-right.png" LOSSY 98; + image, "small-panel.png" LOSSY 98; + image, "small-left-grad.png" LOSSY 98; + image, "small-right-grad.png" LOSSY 98; + + image, "small-seeker-bar.png" LOSSY 98; + image, "small-seeker-trough.png" LOSSY 98; + + image, "small-prev1.png" LOSSY 98; + image, "small-prev2.png" LOSSY 98; + image, "small-rew1.png" LOSSY 98; + image, "small-rew2.png" LOSSY 98; + image, "small-play1.png" LOSSY 98; + image, "small-play2.png" LOSSY 98; + image, "small-pause1.png" LOSSY 98; + image, "small-pause2.png" LOSSY 98; + image, "small-ff1.png" LOSSY 98; + image, "small-ff2.png" LOSSY 98; + image, "small-next1.png" LOSSY 98; + image, "small-next2.png" LOSSY 98; diff --git a/data/themes/winter/images/euphoria.edc b/data/themes/winter/images/euphoria.edc new file mode 100644 index 0000000..d88345d --- /dev/null +++ b/data/themes/winter/images/euphoria.edc @@ -0,0 +1,46 @@ + image, "main.png" LOSSY 98; + image, "screen.png" LOSSY 98; + image, "bot.png" LOSSY 98; + image, "bot_grad.png" LOSSY 98; + image, "top_grad.png" LOSSY 98; + image, "shad.png" LOSSY 98; + image, "panel.png" LOSSY 98; + image, "prev1.png" LOSSY 98; + image, "prev2.png" LOSSY 98; + image, "rew1.png" LOSSY 98; + image, "rew2.png" LOSSY 98; + image, "play1.png" LOSSY 98; + image, "play2.png" LOSSY 98; + image, "pause1.png" LOSSY 98; + image, "pause2.png" LOSSY 98; + image, "ff1.png" LOSSY 98; + image, "ff2.png" LOSSY 98; + image, "next1.png" LOSSY 98; + image, "next2.png" LOSSY 98; + image, "pl1.png" LOSSY 98; + image, "pl2.png" LOSSY 98; + image, "x1.png" LOSSY 98; + image, "x2.png" LOSSY 98; + + image, "volume.png" LOSSY 98; + image, "vol-dn.png" LOSSY 98; + image, "vol-dn-over.png" LOSSY 98; + image, "vol-dn-clicked.png" LOSSY 98; + image, "vol-dn-border.png" LOSSY 98; + image, "vol-up.png" LOSSY 98; + image, "vol-up-over.png" LOSSY 98; + image, "vol-up-clicked.png" LOSSY 98; + image, "vol-up-border.png" LOSSY 98; + + image, "plus1.png" LOSSY 98; + image, "plus2.png" LOSSY 98; + image, "minus1.png" LOSSY 98; + image, "minus2.png" LOSSY 98; + image, "edit1.png" LOSSY 98; + image, "edit2.png" LOSSY 98; + + image, "seeker_trough.png" LOSSY 98; + image, "seeker_bar.png" LOSSY 98; + image, "seeker_bar_grad.png" LOSSY 98; + + image, "dot.png" LOSSY 98; diff --git a/data/themes/winter/img/bot.png b/data/themes/winter/img/bot.png new file mode 100644 index 0000000..69d35e7 Binary files /dev/null and b/data/themes/winter/img/bot.png differ diff --git a/data/themes/winter/img/bot_grad.png b/data/themes/winter/img/bot_grad.png new file mode 100644 index 0000000..47558b2 Binary files /dev/null and b/data/themes/winter/img/bot_grad.png differ diff --git a/data/themes/winter/img/dot.png b/data/themes/winter/img/dot.png new file mode 100644 index 0000000..eb35304 Binary files /dev/null and b/data/themes/winter/img/dot.png differ diff --git a/data/themes/winter/img/edit1.png b/data/themes/winter/img/edit1.png new file mode 100644 index 0000000..26079b3 Binary files /dev/null and b/data/themes/winter/img/edit1.png differ diff --git a/data/themes/winter/img/edit2.png b/data/themes/winter/img/edit2.png new file mode 100644 index 0000000..eac241e Binary files /dev/null and b/data/themes/winter/img/edit2.png differ diff --git a/data/themes/winter/img/ff1.png b/data/themes/winter/img/ff1.png new file mode 100644 index 0000000..d677ab4 Binary files /dev/null and b/data/themes/winter/img/ff1.png differ diff --git a/data/themes/winter/img/ff2.png b/data/themes/winter/img/ff2.png new file mode 100644 index 0000000..83b3c9d Binary files /dev/null and b/data/themes/winter/img/ff2.png differ diff --git a/data/themes/winter/img/main.png b/data/themes/winter/img/main.png new file mode 100644 index 0000000..fe7048e Binary files /dev/null and b/data/themes/winter/img/main.png differ diff --git a/data/themes/winter/img/minus1.png b/data/themes/winter/img/minus1.png new file mode 100644 index 0000000..33ecf7c Binary files /dev/null and b/data/themes/winter/img/minus1.png differ diff --git a/data/themes/winter/img/minus2.png b/data/themes/winter/img/minus2.png new file mode 100644 index 0000000..ee0ea9d Binary files /dev/null and b/data/themes/winter/img/minus2.png differ diff --git a/data/themes/winter/img/next1.png b/data/themes/winter/img/next1.png new file mode 100644 index 0000000..2cafded Binary files /dev/null and b/data/themes/winter/img/next1.png differ diff --git a/data/themes/winter/img/next2.png b/data/themes/winter/img/next2.png new file mode 100644 index 0000000..b685f3d Binary files /dev/null and b/data/themes/winter/img/next2.png differ diff --git a/data/themes/winter/img/panel.png b/data/themes/winter/img/panel.png new file mode 100644 index 0000000..6f21811 Binary files /dev/null and b/data/themes/winter/img/panel.png differ diff --git a/data/themes/winter/img/pause1.png b/data/themes/winter/img/pause1.png new file mode 100644 index 0000000..ced7813 Binary files /dev/null and b/data/themes/winter/img/pause1.png differ diff --git a/data/themes/winter/img/pause2.png b/data/themes/winter/img/pause2.png new file mode 100644 index 0000000..8538fe4 Binary files /dev/null and b/data/themes/winter/img/pause2.png differ diff --git a/data/themes/winter/img/pl1.png b/data/themes/winter/img/pl1.png new file mode 100644 index 0000000..3a7b17f Binary files /dev/null and b/data/themes/winter/img/pl1.png differ diff --git a/data/themes/winter/img/pl2.png b/data/themes/winter/img/pl2.png new file mode 100644 index 0000000..e538293 Binary files /dev/null and b/data/themes/winter/img/pl2.png differ diff --git a/data/themes/winter/img/play1.png b/data/themes/winter/img/play1.png new file mode 100644 index 0000000..abcc7f6 Binary files /dev/null and b/data/themes/winter/img/play1.png differ diff --git a/data/themes/winter/img/play2.png b/data/themes/winter/img/play2.png new file mode 100644 index 0000000..8a8bbd8 Binary files /dev/null and b/data/themes/winter/img/play2.png differ diff --git a/data/themes/winter/img/plus1.png b/data/themes/winter/img/plus1.png new file mode 100644 index 0000000..631a424 Binary files /dev/null and b/data/themes/winter/img/plus1.png differ diff --git a/data/themes/winter/img/plus2.png b/data/themes/winter/img/plus2.png new file mode 100644 index 0000000..c8f6190 Binary files /dev/null and b/data/themes/winter/img/plus2.png differ diff --git a/data/themes/winter/img/prev1.png b/data/themes/winter/img/prev1.png new file mode 100644 index 0000000..932883c Binary files /dev/null and b/data/themes/winter/img/prev1.png differ diff --git a/data/themes/winter/img/prev2.png b/data/themes/winter/img/prev2.png new file mode 100644 index 0000000..e48de26 Binary files /dev/null and b/data/themes/winter/img/prev2.png differ diff --git a/data/themes/winter/img/rew1.png b/data/themes/winter/img/rew1.png new file mode 100644 index 0000000..3f59c6c Binary files /dev/null and b/data/themes/winter/img/rew1.png differ diff --git a/data/themes/winter/img/rew2.png b/data/themes/winter/img/rew2.png new file mode 100644 index 0000000..69ed157 Binary files /dev/null and b/data/themes/winter/img/rew2.png differ diff --git a/data/themes/winter/img/screen.png b/data/themes/winter/img/screen.png new file mode 100644 index 0000000..bdf3443 Binary files /dev/null and b/data/themes/winter/img/screen.png differ diff --git a/data/themes/winter/img/seeker_bar.png b/data/themes/winter/img/seeker_bar.png new file mode 100644 index 0000000..38908a9 Binary files /dev/null and b/data/themes/winter/img/seeker_bar.png differ diff --git a/data/themes/winter/img/seeker_bar_grad.png b/data/themes/winter/img/seeker_bar_grad.png new file mode 100644 index 0000000..a7d04db Binary files /dev/null and b/data/themes/winter/img/seeker_bar_grad.png differ diff --git a/data/themes/winter/img/seeker_trough.png b/data/themes/winter/img/seeker_trough.png new file mode 100644 index 0000000..a366f5e Binary files /dev/null and b/data/themes/winter/img/seeker_trough.png differ diff --git a/data/themes/winter/img/shad.png b/data/themes/winter/img/shad.png new file mode 100644 index 0000000..7283a13 Binary files /dev/null and b/data/themes/winter/img/shad.png differ diff --git a/data/themes/winter/img/small-ff1.png b/data/themes/winter/img/small-ff1.png new file mode 100644 index 0000000..4f78ac4 Binary files /dev/null and b/data/themes/winter/img/small-ff1.png differ diff --git a/data/themes/winter/img/small-ff2.png b/data/themes/winter/img/small-ff2.png new file mode 100644 index 0000000..b5800ab Binary files /dev/null and b/data/themes/winter/img/small-ff2.png differ diff --git a/data/themes/winter/img/small-left-grad.png b/data/themes/winter/img/small-left-grad.png new file mode 100644 index 0000000..2209bc5 Binary files /dev/null and b/data/themes/winter/img/small-left-grad.png differ diff --git a/data/themes/winter/img/small-main.png b/data/themes/winter/img/small-main.png new file mode 100644 index 0000000..9e6deae Binary files /dev/null and b/data/themes/winter/img/small-main.png differ diff --git a/data/themes/winter/img/small-next1.png b/data/themes/winter/img/small-next1.png new file mode 100644 index 0000000..5663b15 Binary files /dev/null and b/data/themes/winter/img/small-next1.png differ diff --git a/data/themes/winter/img/small-next2.png b/data/themes/winter/img/small-next2.png new file mode 100644 index 0000000..59b1819 Binary files /dev/null and b/data/themes/winter/img/small-next2.png differ diff --git a/data/themes/winter/img/small-panel.png b/data/themes/winter/img/small-panel.png new file mode 100644 index 0000000..f80ded3 Binary files /dev/null and b/data/themes/winter/img/small-panel.png differ diff --git a/data/themes/winter/img/small-pause1.png b/data/themes/winter/img/small-pause1.png new file mode 100644 index 0000000..f822927 Binary files /dev/null and b/data/themes/winter/img/small-pause1.png differ diff --git a/data/themes/winter/img/small-pause2.png b/data/themes/winter/img/small-pause2.png new file mode 100644 index 0000000..953dfed Binary files /dev/null and b/data/themes/winter/img/small-pause2.png differ diff --git a/data/themes/winter/img/small-play1.png b/data/themes/winter/img/small-play1.png new file mode 100644 index 0000000..0fdf71b Binary files /dev/null and b/data/themes/winter/img/small-play1.png differ diff --git a/data/themes/winter/img/small-play2.png b/data/themes/winter/img/small-play2.png new file mode 100644 index 0000000..5b281bc Binary files /dev/null and b/data/themes/winter/img/small-play2.png differ diff --git a/data/themes/winter/img/small-prev1.png b/data/themes/winter/img/small-prev1.png new file mode 100644 index 0000000..8302562 Binary files /dev/null and b/data/themes/winter/img/small-prev1.png differ diff --git a/data/themes/winter/img/small-prev2.png b/data/themes/winter/img/small-prev2.png new file mode 100644 index 0000000..43f507d Binary files /dev/null and b/data/themes/winter/img/small-prev2.png differ diff --git a/data/themes/winter/img/small-rew1.png b/data/themes/winter/img/small-rew1.png new file mode 100644 index 0000000..d619f84 Binary files /dev/null and b/data/themes/winter/img/small-rew1.png differ diff --git a/data/themes/winter/img/small-rew2.png b/data/themes/winter/img/small-rew2.png new file mode 100644 index 0000000..ecd7449 Binary files /dev/null and b/data/themes/winter/img/small-rew2.png differ diff --git a/data/themes/winter/img/small-right-grad.png b/data/themes/winter/img/small-right-grad.png new file mode 100644 index 0000000..28af345 Binary files /dev/null and b/data/themes/winter/img/small-right-grad.png differ diff --git a/data/themes/winter/img/small-right.png b/data/themes/winter/img/small-right.png new file mode 100644 index 0000000..77939a4 Binary files /dev/null and b/data/themes/winter/img/small-right.png differ diff --git a/data/themes/winter/img/small-seeker-bar.png b/data/themes/winter/img/small-seeker-bar.png new file mode 100644 index 0000000..c5c7e3a Binary files /dev/null and b/data/themes/winter/img/small-seeker-bar.png differ diff --git a/data/themes/winter/img/small-seeker-trough.png b/data/themes/winter/img/small-seeker-trough.png new file mode 100644 index 0000000..e55648e Binary files /dev/null and b/data/themes/winter/img/small-seeker-trough.png differ diff --git a/data/themes/winter/img/top_grad.png b/data/themes/winter/img/top_grad.png new file mode 100644 index 0000000..6e0c7b1 Binary files /dev/null and b/data/themes/winter/img/top_grad.png differ diff --git a/data/themes/winter/img/vol-dn-border.png b/data/themes/winter/img/vol-dn-border.png new file mode 100644 index 0000000..608f127 Binary files /dev/null and b/data/themes/winter/img/vol-dn-border.png differ diff --git a/data/themes/winter/img/vol-dn-clicked.png b/data/themes/winter/img/vol-dn-clicked.png new file mode 100644 index 0000000..b006ad7 Binary files /dev/null and b/data/themes/winter/img/vol-dn-clicked.png differ diff --git a/data/themes/winter/img/vol-dn-over.png b/data/themes/winter/img/vol-dn-over.png new file mode 100644 index 0000000..c083454 Binary files /dev/null and b/data/themes/winter/img/vol-dn-over.png differ diff --git a/data/themes/winter/img/vol-dn.png b/data/themes/winter/img/vol-dn.png new file mode 100644 index 0000000..411eb06 Binary files /dev/null and b/data/themes/winter/img/vol-dn.png differ diff --git a/data/themes/winter/img/vol-up-border.png b/data/themes/winter/img/vol-up-border.png new file mode 100644 index 0000000..ab7eb63 Binary files /dev/null and b/data/themes/winter/img/vol-up-border.png differ diff --git a/data/themes/winter/img/vol-up-clicked.png b/data/themes/winter/img/vol-up-clicked.png new file mode 100644 index 0000000..bf7268d Binary files /dev/null and b/data/themes/winter/img/vol-up-clicked.png differ diff --git a/data/themes/winter/img/vol-up-over.png b/data/themes/winter/img/vol-up-over.png new file mode 100644 index 0000000..e62a2f1 Binary files /dev/null and b/data/themes/winter/img/vol-up-over.png differ diff --git a/data/themes/winter/img/vol-up.png b/data/themes/winter/img/vol-up.png new file mode 100644 index 0000000..ce3625c Binary files /dev/null and b/data/themes/winter/img/vol-up.png differ diff --git a/data/themes/winter/img/volume.png b/data/themes/winter/img/volume.png new file mode 100644 index 0000000..936f3ae Binary files /dev/null and b/data/themes/winter/img/volume.png differ diff --git a/data/themes/winter/img/x1.png b/data/themes/winter/img/x1.png new file mode 100644 index 0000000..4ca81a9 Binary files /dev/null and b/data/themes/winter/img/x1.png differ diff --git a/data/themes/winter/img/x2.png b/data/themes/winter/img/x2.png new file mode 100644 index 0000000..e55d1bc Binary files /dev/null and b/data/themes/winter/img/x2.png differ diff --git a/data/themes/winter/macros/macros.inc b/data/themes/winter/macros/macros.inc new file mode 100644 index 0000000..e9f4c2d --- /dev/null +++ b/data/themes/winter/macros/macros.inc @@ -0,0 +1,638 @@ +/* yeah. i know. this file is messy right now. still playing with things... */ + +#define BUTTON(NAME, IMG, IMG2, W, H, REL1_TO, REL1_REL, REL1_OFF, REL2_TO, REL2_REL, REL2_OFF) \ + part { \ + name, NAME; \ + description { \ + state, "default" 0.0; \ + min, W H; \ + max, W H; \ + color, 255 255 255 127; \ + rel1 { \ + to, REL1_TO; \ + relative, REL1_REL; \ + offset, REL1_OFF; \ + } \ + rel2 { \ + to, REL2_TO; \ + relative, REL2_REL; \ + offset, REL2_OFF; \ + } \ + image { \ + normal, IMG; \ + } \ + } \ + description { \ + state, "over" 0.0; \ + min, W H; \ + max, W H; \ + color, 255 255 255 255; \ + rel1 { \ + to, REL1_TO; \ + relative, REL1_REL; \ + offset, REL1_OFF; \ + } \ + rel2 { \ + to, REL2_TO; \ + relative, REL2_REL; \ + offset, REL2_OFF; \ + } \ + image { \ + normal, IMG; \ + } \ + } \ + description { \ + state, "down" 0.0; \ + min, W H; \ + max, W H; \ + color, 255 255 255 255; \ + rel1 { \ + to, REL1_TO; \ + relative, REL1_REL; \ + offset, REL1_OFF; \ + } \ + rel2 { \ + to, REL2_TO; \ + relative, REL2_REL; \ + offset, REL2_OFF; \ + } \ + image { \ + normal, IMG2; \ + } \ + } \ + } + + +#define BUTTON_PROG(NAME, SIG) \ + program { \ + name, NAME"-in"; \ + signal, "mouse,in"; \ + source, NAME; \ + action, STATE_SET "over" 0.0; \ + transition, DECELERATE 0.5; \ + target, NAME; \ + } \ + program { \ + name, NAME"-out"; \ + signal, "mouse,out"; \ + source, NAME; \ + action, STATE_SET "default" 0.0;\ + transition, DECELERATE 0.5; \ + target, NAME; \ + } \ + program { \ + name, NAME"-clicked"; \ + signal, "mouse,clicked,1"; \ + source, NAME; \ + action, SIGNAL_EMIT SIG NAME; \ + } \ + program { \ + name, NAME"-down2"; \ + signal, "mouse,down,1"; \ + source, NAME; \ + action, STATE_SET "down" 0.0; \ + transition, LINEAR 0.0; \ + target, NAME; \ + } \ + program { \ + name, NAME"-up"; \ + signal, "mouse,up,1"; \ + source, NAME; \ + action, STATE_SET "over" 0.0; \ + transition, LINEAR 0.0; \ + target, NAME; \ + } \ + + + + +#define BUTTON2(NAME, IMG, IMG2, IMG3, W, H, REL1_TO, REL1_REL, REL1_OFF, REL2_TO, REL2_REL, REL2_OFF) \ + part { \ + name, NAME; \ + description { \ + state, "default" 0.0; \ + min, W H; \ + max, W H; \ + color, 255 255 255 255; \ + rel1 { \ + to, REL1_TO; \ + relative, REL1_REL; \ + offset, REL1_OFF; \ + } \ + rel2 { \ + to, REL2_TO; \ + relative, REL2_REL; \ + offset, REL2_OFF; \ + } \ + image { \ + normal, IMG; \ + } \ + } \ + description { \ + state, "over" 0.0; \ + min, W H; \ + max, W H; \ + color, WINTER_COLOR; \ + rel1 { \ + to, REL1_TO; \ + relative, REL1_REL; \ + offset, REL1_OFF; \ + } \ + rel2 { \ + to, REL2_TO; \ + relative, REL2_REL; \ + offset, REL2_OFF; \ + } \ + image { \ + normal, IMG; \ + } \ + } \ + description { \ + state, "down" 0.0; \ + min, W H; \ + max, W H; \ + color, WINTER_COLOR; \ + rel1 { \ + to, REL1_TO; \ + relative, REL1_REL; \ + offset, REL1_OFF; \ + } \ + rel2 { \ + to, REL2_TO; \ + relative, REL2_REL; \ + offset, REL2_OFF; \ + } \ + image { \ + normal, IMG2; \ + } \ + } \ + } \ + part { \ + name, NAME"-border"; \ + mouse_events, 0; \ + description { \ + state, "default" 0.0; \ + min, W H; \ + max, W H; \ + color, 255 255 255 255; \ + rel1 { \ + to, REL1_TO; \ + relative, REL1_REL; \ + offset, REL1_OFF; \ + } \ + rel2 { \ + to, REL2_TO; \ + relative, REL2_REL; \ + offset, REL2_OFF; \ + } \ + image { \ + normal, IMG3; \ + } \ + } \ + } + + + + + + + + +#define BUTTON_PROG2(NAME, P1, P2, P3, P4, P5, SIG) \ + program { \ + name, P1; \ + signal, "mouse,in"; \ + source, NAME; \ + action, STATE_SET "over" 0.0; \ + transition, DECELERATE 0.25; \ + target, NAME; \ + } \ + program { \ + name, P2; \ + signal, "mouse,out"; \ + source, NAME; \ + action, STATE_SET "default" 0.0;\ + transition, DECELERATE 0.25; \ + target, NAME; \ + } \ + program { \ + name, P3; \ + signal, "mouse,up,1"; \ + source, NAME; \ + action, SIGNAL_EMIT SIG NAME; \ + } \ + program { \ + name, P4; \ + signal, "mouse,down,1"; \ + source, NAME; \ + action, STATE_SET "down" 0.0; \ + transition, LINEAR 0.0; \ + target, NAME; \ + } \ + program { \ + name, P5; \ + signal, "mouse,up,1"; \ + source, NAME; \ + action, STATE_SET "over" 0.0; \ + transition, LINEAR 0.0; \ + target, NAME; \ + } \ + + + +#define BUTTON_CLIPPED(NAME, IMG, IMG2, W, H, REL1_TO, REL1_REL, REL1_OFF, REL2_TO, REL2_REL, REL2_OFF, CLIP)\ + part { \ + name, NAME; \ + clip_to, CLIP; \ + description { \ + state, "default" 0.0; \ + min, W H; \ + max, W H; \ + color, 255 255 255 127; \ + rel1 { \ + to, REL1_TO; \ + relative, REL1_REL; \ + offset, REL1_OFF; \ + } \ + rel2 { \ + to, REL2_TO; \ + relative, REL2_REL; \ + offset, REL2_OFF; \ + } \ + image { \ + normal, IMG; \ + } \ + } \ + description { \ + state, "over" 0.0; \ + min, W H; \ + max, W H; \ + color, 255 255 255 255; \ + rel1 { \ + to, REL1_TO; \ + relative, REL1_REL; \ + offset, REL1_OFF; \ + } \ + rel2 { \ + to, REL2_TO; \ + relative, REL2_REL; \ + offset, REL2_OFF; \ + } \ + image { \ + normal, IMG; \ + } \ + } \ + description { \ + state, "down" 0.0; \ + min, W H; \ + max, W H; \ + color, 255 255 255 255; \ + rel1 { \ + to, REL1_TO; \ + relative, REL1_REL; \ + offset, REL1_OFF; \ + } \ + rel2 { \ + to, REL2_TO; \ + relative, REL2_REL; \ + offset, REL2_OFF; \ + } \ + image { \ + normal, IMG2; \ + } \ + } \ + } + + + +#define BUTTON_PROG3(NAME, SIG_DN, SIG_UP)\ + program { \ + name, NAME"-in"; \ + signal, "mouse,in"; \ + source, NAME; \ + action, STATE_SET "over" 0.0; \ + transition, DECELERATE 0.5; \ + target, NAME; \ + } \ + program { \ + name, NAME"-out"; \ + signal, "mouse,out"; \ + source, NAME; \ + action, STATE_SET "default" 0.0;\ + transition, DECELERATE 0.5; \ + target, NAME; \ + } \ + program { \ + name, NAME"-down1"; \ + signal, "mouse,down,1"; \ + source, NAME; \ + action, SIGNAL_EMIT SIG_DN NAME; \ + } \ + program { \ + name, NAME"-down2"; \ + signal, "mouse,down,1"; \ + source, NAME; \ + action, STATE_SET "down" 0.0; \ + transition, LINEAR 0.0; \ + target, NAME; \ + } \ + program { \ + name, NAME"-up1"; \ + signal, "mouse,up,1"; \ + source, NAME; \ + action, SIGNAL_EMIT SIG_UP NAME; \ + } \ + program { \ + name, NAME"-up2"; \ + signal, "mouse,up,1"; \ + source, NAME; \ + action, STATE_SET "over" 0.0; \ + transition, LINEAR 0.0; \ + target, NAME; \ + } \ + + + + +#define TOG_BUTTON(NAME, NAME2, IMG, IMG2, IMG3, IMG4, W, H, REL1_TO, REL1_REL, REL1_OFF, REL2_TO, REL2_REL, REL2_OFF) \ + part { \ + name, NAME; \ + description { \ + state, "default" 0.0; \ + min, W H; \ + max, W H; \ + color, 255 255 255 127; \ + rel1 { \ + to, REL1_TO; \ + relative, REL1_REL; \ + offset, REL1_OFF; \ + } \ + rel2 { \ + to, REL2_TO; \ + relative, REL2_REL; \ + offset, REL2_OFF; \ + } \ + image { \ + normal, IMG; \ + } \ + } \ + description { \ + state, "toggled" 0.0; \ + min, W H; \ + max, W H; \ + visible, 0; \ + color, 255 255 255 127; \ + rel1 { \ + to, REL1_TO; \ + relative, REL1_REL; \ + offset, REL1_OFF; \ + } \ + rel2 { \ + to, REL2_TO; \ + relative, REL2_REL; \ + offset, REL2_OFF; \ + } \ + image { \ + normal, IMG; \ + } \ + } \ + description { \ + state, "over" 0.0; \ + min, W H; \ + max, W H; \ + color, 255 255 255 255; \ + rel1 { \ + to, REL1_TO; \ + relative, REL1_REL; \ + offset, REL1_OFF; \ + } \ + rel2 { \ + to, REL2_TO; \ + relative, REL2_REL; \ + offset, REL2_OFF; \ + } \ + image { \ + normal, IMG; \ + } \ + } \ + description { \ + state, "down" 0.0; \ + min, W H; \ + max, W H; \ + color, 255 255 255 255; \ + rel1 { \ + to, REL1_TO; \ + relative, REL1_REL; \ + offset, REL1_OFF; \ + } \ + rel2 { \ + to, REL2_TO; \ + relative, REL2_REL; \ + offset, REL2_OFF; \ + } \ + image { \ + normal, IMG2; \ + } \ + } \ + } \ + part { \ + name, NAME2; \ + description { \ + state, "default" 0.0; \ + min, W H; \ + max, W H; \ + visible, 0; \ + color, 255 255 255 0; \ + rel1 { \ + to, REL1_TO; \ + relative, REL1_REL; \ + offset, REL1_OFF; \ + } \ + rel2 { \ + to, REL2_TO; \ + relative, REL2_REL; \ + offset, REL2_OFF; \ + } \ + image { \ + normal, IMG3; \ + } \ + } \ + description { \ + state, "toggled" 0.0; \ + min, W H; \ + max, W H; \ + color, 255 255 255 127; \ + rel1 { \ + to, REL1_TO; \ + relative, REL1_REL; \ + offset, REL1_OFF; \ + } \ + rel2 { \ + to, REL2_TO; \ + relative, REL2_REL; \ + offset, REL2_OFF; \ + } \ + image { \ + normal, IMG3; \ + } \ + } \ + description { \ + state, "over" 0.0; \ + min, W H; \ + max, W H; \ + color, 255 255 255 255; \ + rel1 { \ + to, REL1_TO; \ + relative, REL1_REL; \ + offset, REL1_OFF; \ + } \ + rel2 { \ + to, REL2_TO; \ + relative, REL2_REL; \ + offset, REL2_OFF; \ + } \ + image { \ + normal, IMG3; \ + } \ + } \ + description { \ + state, "down" 0.0; \ + min, W H; \ + max, W H; \ + color, 255 255 255 255; \ + rel1 { \ + to, REL1_TO; \ + relative, REL1_REL; \ + offset, REL1_OFF; \ + } \ + rel2 { \ + to, REL2_TO; \ + relative, REL2_REL; \ + offset, REL2_OFF; \ + } \ + image { \ + normal, IMG4; \ + } \ + } \ + } + + +#define TOG_BUTTON_PROG(NAME, NAME2, SIG, SIG2) \ + program { \ + name, NAME"-in"; \ + signal, "mouse,in"; \ + source, NAME; \ + action, STATE_SET "over" 0.0; \ + transition, DECELERATE 0.5; \ + target, NAME; \ + } \ + program { \ + name, NAME"-out"; \ + signal, "mouse,out"; \ + source, NAME; \ + action, STATE_SET "default" 0.0;\ + transition, DECELERATE, 0.5; \ + target, NAME; \ + } \ + program { \ + name, NAME"-down1"; \ + signal, "mouse,up,1"; \ + source, NAME; \ + action, SIGNAL_EMIT SIG NAME; \ + } \ + program { \ + name, NAME"-down2"; \ + signal, "mouse,down,1"; \ + source, NAME; \ + action, STATE_SET "down" 0.0 \ + transition, LINEAR, 0.0; \ + target, NAME; \ + } \ + program { \ + name, NAME"-up"; \ + signal, "mouse,up,1"; \ + source, NAME; \ + action, STATE_SET "over" 0.0 \ + transition, LINEAR, 0.0; \ + target, NAME; \ + } \ + program { \ + name, NAME2"-in"; \ + signal, "mouse,in"; \ + source, NAME2; \ + action, STATE_SET "over" 0.0; \ + transition, DECELERATE 0.5; \ + target, NAME2; \ + } \ + program { \ + name, NAME2"-out"; \ + signal, "mouse,out"; \ + source, NAME2; \ + action, STATE_SET "toggled" 0.0;\ + transition, DECELERATE, 0.5; \ + target, NAME2; \ + } \ + program { \ + name, NAME2"-up1"; \ + signal, "mouse,up,1"; \ + source, NAME2; \ + action, SIGNAL_EMIT SIG NAME2; \ + } \ + program { \ + name, NAME2"-down2"; \ + signal, "mouse,down,1"; \ + source, NAME2; \ + action, STATE_SET "down" 0.0 \ + transition, LINEAR, 0.0; \ + target, NAME2; \ + } \ + program { \ + name, NAME2"-up"; \ + signal, "mouse,up,1"; \ + source, NAME2; \ + action, STATE_SET "over" 0.0 \ + transition, LINEAR, 0.0; \ + target, NAME2; \ + } \ + program { \ + name, NAME"-toggle"; \ + signal, "mouse,clicked,1"; \ + source, NAME; \ + action, STATE_SET "toggled" 0.0; \ + transition, LINEAR 0.0; \ + target, NAME; \ + target, NAME2; \ + } \ + program { \ + name, NAME2"-toggle"; \ + signal, "mouse,clicked,1"; \ + source, NAME2; \ + action, STATE_SET "default" 0.0; \ + transition, LINEAR 0.0; \ + target, NAME; \ + target, NAME2; \ + } \ + + + +#define TEST_BUTTON_PROG(NAME, NAME2, SIG, SIG2) \ + program { \ + name, NAME"-toggle"; \ + signal, "mouse,clicked,1"; \ + source, NAME; \ + action, STATE_SET "toggled" 0.0; \ + transition, LINEAR 0.0; \ + target, NAME; \ + target, NAME2; \ + } \ + program { \ + name, NAME2"-toggle"; \ + signal, "mouse,clicked,1"; \ + source, NAME2; \ + action, STATE_SET "default" 0.0; \ + transition, LINEAR 0.0; \ + target, NAME; \ + target, NAME2; \ + } + + diff --git a/data/themes/winter/macros/toggle.inc b/data/themes/winter/macros/toggle.inc new file mode 100644 index 0000000..9a2431a --- /dev/null +++ b/data/themes/winter/macros/toggle.inc @@ -0,0 +1,251 @@ +/* this makes life MUCH easier */ + +#define TOGGLE_BUTTON(NAME, IMG, IMG2, IMG3, IMG4, W, H, REL1_TO, REL1_REL, REL1_OFF, REL2_TO, REL2_REL, REL2_OFF) \ + part { \ + name, NAME"-clip"; \ + type, RECT; \ + mouse_events, 0; \ + description { \ + state, "default" 0.0; \ + visible, 1; \ + rel1 { \ + relative, REL1_REL; \ + offset, REL1_OFF; \ + to, REL1_TO; \ + } \ + rel2 { \ + relative, REL2_REL; \ + offset, REL2_OFF; \ + to, REL2_TO; \ + } \ + color, 255 255 255 128; \ + } \ + description { \ + state, "over" 0.0; \ + visible, 1; \ + rel1 { \ + relative, REL1_REL; \ + offset, REL1_OFF; \ + to, REL1_TO; \ + } \ + rel2 { \ + relative, REL2_REL; \ + offset, REL2_OFF; \ + to, REL2_TO; \ + } \ + color, 255 255 255 255; \ + } \ + } \ + part { \ + name, NAME; \ + clip_to, NAME"-clip"; \ + description { \ + state, "default" 0.0; \ + min, W H; \ + max, W H; \ + visible, 1; \ + color, 255 255 255 255; \ + rel1 { \ + to, REL1_TO; \ + relative, REL1_REL; \ + offset, REL1_OFF; \ + } \ + rel2 { \ + to, REL2_TO; \ + relative, REL2_REL; \ + offset, REL2_OFF; \ + } \ + image { \ + normal, IMG; \ + } \ + } \ + description { \ + state, "toggled" 0.0; \ + min, W H; \ + max, W H; \ + visible, 0; \ + color, 255 255 255 0; \ + rel1 { \ + to, REL1_TO; \ + relative, REL1_REL; \ + offset, REL1_OFF; \ + } \ + rel2 { \ + to, REL2_TO; \ + relative, REL2_REL; \ + offset, REL2_OFF; \ + } \ + image { \ + normal, IMG; \ + } \ + } \ + description { \ + state, "down" 0.0; \ + min, W H; \ + max, W H; \ + color, 255 255 255 255; \ + rel1 { \ + to, REL1_TO; \ + relative, REL1_REL; \ + offset, REL1_OFF; \ + } \ + rel2 { \ + to, REL2_TO; \ + relative, REL2_REL; \ + offset, REL2_OFF; \ + } \ + image { \ + normal, IMG2; \ + } \ + } \ + } \ + part { \ + name, NAME"-2"; \ + clip_to, NAME"-clip"; \ + description { \ + state, "default" 0.0; \ + min, W H; \ + max, W H; \ + visible, 0; \ + color, 255 255 255 0; \ + rel1 { \ + to, REL1_TO; \ + relative, REL1_REL; \ + offset, REL1_OFF; \ + } \ + rel2 { \ + to, REL2_TO; \ + relative, REL2_REL; \ + offset, REL2_OFF; \ + } \ + image { \ + normal, IMG3; \ + } \ + } \ + description { \ + state, "toggled" 0.0; \ + min, W H; \ + max, W H; \ + visible, 1; \ + color, 255 255 255 255; \ + rel1 { \ + to, REL1_TO; \ + relative, REL1_REL; \ + offset, REL1_OFF; \ + } \ + rel2 { \ + to, REL2_TO; \ + relative, REL2_REL; \ + offset, REL2_OFF; \ + } \ + image { \ + normal, IMG3; \ + } \ + } \ + description { \ + state, "down" 0.0; \ + min, W H; \ + max, W H; \ + color, 255 255 255 255; \ + rel1 { \ + to, REL1_TO; \ + relative, REL1_REL; \ + offset, REL1_OFF; \ + } \ + rel2 { \ + to, REL2_TO; \ + relative, REL2_REL; \ + offset, REL2_OFF; \ + } \ + image { \ + normal, IMG4; \ + } \ + } \ + } \ + part { \ + name, NAME"-grabber"; \ + type, RECT; \ + mouse_events, 1; \ + repeat_events, 1; \ + description { \ + state, "default" 0.0; \ + visible, 1; \ + color, 0 0 0 0; \ + rel1 { \ + relative, REL1_REL; \ + offset, REL1_OFF; \ + to, REL1_TO; \ + } \ + rel2 { \ + relative, REL2_REL; \ + offset, REL2_OFF; \ + to, REL2_TO; \ + } \ + } \ + } \ + + + +#define TOGGLE_BUTTON_PROG(NAME, SIG, SIG2) \ + program { \ + name, NAME"-toggle-on"; \ + signal, "mouse,clicked,1"; \ + source, NAME; \ + action, STATE_SET "toggled" 0.0; \ + transition, LINEAR 0.0; \ + target, NAME; \ + target, NAME"-2"; \ + after, NAME"-sig"; \ + } \ + program { \ + name, NAME"-sig"; \ + action, SIGNAL_EMIT SIG NAME; \ + } \ + program { \ + name, NAME"-toggle-off"; \ + signal, "mouse,clicked,1"; \ + source, NAME"-2"; \ + action, STATE_SET "default" 0.0; \ + transition, LINEAR 0.0; \ + target, NAME; \ + target, NAME"-2"; \ + after, NAME"-sig2"; \ + } \ + program { \ + name, NAME"-sig2"; \ + action, SIGNAL_EMIT SIG2 NAME"-2"; \ + } \ + program { \ + name, NAME"-grabber-in"; \ + signal, "mouse,in"; \ + source, NAME"-grabber"; \ + action, STATE_SET "over" 0.0; \ + transition, DECELERATE 0.5; \ + target, NAME"-clip"; \ + } \ + program { \ + name, NAME"-grabber-out"; \ + signal, "mouse,out"; \ + source, NAME"-grabber"; \ + action, STATE_SET "default" 0.0; \ + transition, DECELERATE 0.5; \ + target, NAME"-clip"; \ + } \ + program { \ + name, NAME"-down"; \ + signal, "mouse,down,1"; \ + source, NAME; \ + action, STATE_SET "down" 0.0; \ + transition, LINEAR 0.0; \ + target, NAME; \ + } \ + program { \ + name, NAME"-2-down"; \ + signal, "mouse,down,1"; \ + source, NAME"-2"; \ + action, STATE_SET "down" 0.0; \ + transition, LINEAR 0.0; \ + target, NAME"-2"; \ + } \ + + diff --git a/data/themes/winter/parts/ani.edc b/data/themes/winter/parts/ani.edc new file mode 100644 index 0000000..5962177 --- /dev/null +++ b/data/themes/winter/parts/ani.edc @@ -0,0 +1,49 @@ +#define DOT(NUM, Y1, Y2) \ + part { \ + name, "dot"NUM; \ + description { \ + state, "default" 0.0; \ + min, 3 3; \ + max, 3 3; \ + color, 0 0 0 127; \ + rel1 { \ + to, "screen"; \ + relative, 0 1; \ + offset, 5 Y1; \ + } \ + rel2 { \ + to, "screen"; \ + relative, 0 1; \ + offset, 8 Y2; \ + } \ + image { \ + normal, "dot.png"; \ + } \ + } \ + description { \ + state, "end" 0.0; \ + min, 3 3; \ + max, 3 3; \ + color, 0 0 0 0; \ + rel1 { \ + to, "screen"; \ + relative, .5 1; \ + offset, -3 Y1; \ + } \ + rel2 { \ + to, "screen"; \ + relative, .5 1; \ + offset, 0 Y2; \ + } \ + image { \ + normal, "dot.png"; \ + } \ + } \ + } + +DOT(0, -24, -21) +DOT(1, -20, -17) +DOT(2, -16, -13) +DOT(3, -12, -9) +DOT(4, -8, -5) + diff --git a/data/themes/winter/parts/buttons.edc b/data/themes/winter/parts/buttons.edc new file mode 100644 index 0000000..ffeedf5 --- /dev/null +++ b/data/themes/winter/parts/buttons.edc @@ -0,0 +1,156 @@ + part { + name, "controlArea"; + type, RECT; + description { + state, "default" 0.0; + visible, 0; + min, 120 25; + max, 120 25; + rel1 { + to, "main"; + relative, 0 1; + offset, 0 -59; + } + rel2 { + to, "main"; + relative, 1 1; + offset, -1 -35; + } + } + } //part + +BUTTON("prev", "prev1.png", "prev2.png", 26, 22, + "controlArea", 0 0, 5 0, + "controlArea", 0 1, 31 -1) +BUTTON("rew", "rew1.png", "rew2.png", 17, 22, + "controlArea", 0 0, 32 0, + "controlArea", 0 1, 51 -1) +TOGGLE_BUTTON("play", "play1.png", "play2.png", + "pause1.png", "pause2.png", 20, 22, + "controlArea", 0 0, 51 0, + "controlArea", 0 1, 71 -1) +BUTTON("ff", "ff1.png", "ff2.png", 17, 22, + "controlArea", 0 0, 71 0, + "controlArea", 0 1, 88 -1) +BUTTON("next", "next1.png", "next2.png", 26, 22, + "controlArea", 0 0, 89 0, + "controlArea", 0 1, 117 -1) + + +BUTTON("pl", "pl1.png", "pl2.png", 17, 17, + "main", 1 1, -21 -47, + "main", 1 1, -4 -30) + +BUTTON("x", "x1.png", "x2.png", 15, 15, + "main", 1 1, -20 -27, + "main", 1 1, -5 -12) + + + part { + name, "playlistButtonArea"; + type, RECT; + description { + state, "default" 0.0; + visible, 0; + min, 61 20; + max, 61 20; + rel1 { + to, "playlistPanel"; + relative, 0 1; + offset, 0 -23; + } + rel2 { + to, "playlistPanel"; + relative, 1 1; + offset, -1 -4; + } + } + } //part + +BUTTON_CLIPPED("plus", "plus1.png", "plus2.png", 17, 17, + "playlistButtonArea", 0 0, 3 2, + "playlistButtonArea", 0 0, 20 19, + "playlistClip") +BUTTON_CLIPPED("minus", "minus1.png", "minus2.png", 19, 10, + "playlistButtonArea", 0 0, 21 6, + "playlistButtonArea", 0 0, 40 16, + "playlistClip") +BUTTON_CLIPPED("edit", "edit1.png", "edit2.png", 20, 9, + "playlistButtonArea", 0 0, 39 6, + "playlistButtonArea", 0 0, 59 15, + "playlistClip") + + + + part { + name, "playlistOpenner"; + type, RECT; + repeat_events, 1; + description { + state, "default" 0.0; + visible, 1; + color, 0 0 0 0; + rel1 { + to, "pl"; + relative, 0 0; + offset, 0 0; + } + rel2 { + to, "pl"; + relative, 1 1; + offset, -1 -1; + } + } + description { + state, "open" 0.0; + visible, 0; + color, 0 0 0 0; + rel1 { + to, "pl"; + relative, 0 0; + offset, 0 0; + } + rel2 { + to, "pl"; + relative, 1 1; + offset, -1 -1; + } + } + } //part + + + part { + name, "playlistCloser"; + type, RECT; + repeat_events, 1; + description { + state, "default" 0.0; + visible, 0; + color, 0 0 0 0; + rel1 { + to, "pl"; + relative, 0 0; + offset, 0 0; + } + rel2 { + to, "pl"; + relative, 1 1; + offset, -1 -1; + } + } + description { + state, "open" 0.0; + visible, 1; + color, 0 0 0 0; + rel1 { + to, "pl"; + relative, 0 0; + offset, 0 0; + } + rel2 { + to, "pl"; + relative, 1 1; + offset, -1 -1; + } + } + } //part diff --git a/data/themes/winter/parts/main.edc b/data/themes/winter/parts/main.edc new file mode 100644 index 0000000..a70ca58 --- /dev/null +++ b/data/themes/winter/parts/main.edc @@ -0,0 +1,189 @@ + + part { + name, "main"; + mouse_events, 1; + repeat_events, 1; + description { + state, "default" 0.0; + min, 199 182; + max, 99999 182; + rel1 { + relative, 0 0; + offset, 0 0; + } + rel2 { + relative, 1 0; + offset, -1 182; + } + image { + normal, "main.png"; + border, 10 10 20 10; + } + } + } //part + + part { + name, "top_grad"; + mouse_events, 1; + repeat_events, 1; + description { + state, "default" 0.0; + min, 30 10; + max, 99999 10; + color, WINTER_COLOR; + rel1 { + to, "main"; + relative, 0 0; + offset, 0 0; + } + rel2 { + to, "main"; + relative, 1 0; + offset, -1 10; + } + image { + normal, "top_grad.png"; + border, 10 10 10 10; + } + } + } //part + + part { + name, "screen"; + description { + state, "default" 0.0; + visible, 1; + rel1 { + to, "main"; + relative, 0 0; + offset, 7 17; + } + rel2 { + to, "main"; + relative, 1 0; + offset, -8 101; + } + image { + normal, "screen.png"; + border, 5 5 5 5; + } + } + } + + + part { + name, "bottomConfine"; + mouse_events, 0; + type, RECT; + description { + state, "default" 0.0; + visible, 0; + rel1 { + to, "main"; + relative, 0 1; + offset, 0 -1; + } + rel2 { + relative, 1 1; + offset, -1 -1; + } + } + } //part + + part { + name, "bottom"; + mouse_events, 1; + repeat_events, 1; + //dragable { + // x, 1 0 0; + // y, -1 1 25; + // confine, "bottomConfine"; + //} +/* + description { + state, "default" 0.0; + min, 199 10; + rel1 { + to_x, "main"; + relative, 0 1; + offset, 0 -11; + } + rel2 { + to_x, "main"; + relative, 1 1; + offset, -1 -1; + } + image { + normal, "bot.png"; + border, 0 0 0 0; + } + border, 7 7 0 0; + } +*/ + + + description { + state, "default" 0.0; + min, 199 10; + max, 99999 10; + rel1 { + to, "main"; + relative, 0 1; + offset, 0 -1; + } + rel2 { + to, "main"; + relative, 1 1; + offset, -1 9; + } + image { + normal, "bot.png"; + border, 7 7 0 0; + } + } + description { + state, "open" 0.0; + min, 199 10; + max, 99999 10; + rel1 { + to_x, "main"; + relative, 0 1; + offset, 0 -11; + } + rel2 { + to_x, "main"; + relative, 1 1; + offset, -1 -1; + } + image { + normal, "bot.png"; + border, 7 7 0 0; + } + } + } //part + + part { + name, "bottom_grad"; + mouse_events, 1; + repeat_events, 1; + description { + state, "default" 0.0; + min, 30 10; + max, 99999 10; + color, WINTER_COLOR; + rel1 { + to, "bottom"; + relative, 0 0; + offset, 0 0; + } + rel2 { + to, "bottom"; + relative, 1 1; + offset, -1 -1; + } + image { + normal, "bot_grad.png"; + border, 10 10 10 10; + } + } + } //part diff --git a/data/themes/winter/parts/playlist.edc b/data/themes/winter/parts/playlist.edc new file mode 100644 index 0000000..6f31ce9 --- /dev/null +++ b/data/themes/winter/parts/playlist.edc @@ -0,0 +1,110 @@ + + part { + name, "playlistPanel"; + mouse_events, 1; + description { + state, "default" 0.0; + rel1 { + to, "main"; + relative, 0 1; + offset, 1 0; + } + rel2 { + to, "bottom"; + relative, 1 0; + offset, -2 -1; + } + image { + normal, "panel.png"; + border, 3 3 0 0; + } + } + } //part + + part { + name, "playlist.container"; + type, SWALLOW; + mouse_events, 1; + repeat_events, 1; + clip_to, "playlistClip"; + description { + state, "default" 0.0; + color, 0 0 0 0; + min, 5 5; + rel1 { + to, "playlistPanel"; + relative, 0 0; + offset, 5 5; + } + rel2 { + to_x, "playlistPanel"; + to_y, "playlistButtonArea"; + relative, 1 0; + offset, -6 -5; + } + } + } //part + + part { + name, "playlistGrabber"; + type, RECT; + mouse_events, 1; + repeat_events, 1; + description { + state, "default" 0.0; + color, 0 0 0 0; + rel1 { + to, "playlist.container"; + relative, 0 0; + offset, 0 0; + } + rel2 { + to, "playlist.container"; + relative, 1 1; + offset, -1 -1; + } + } + } // end playlistGrabber + + part { + name, "playlistShadow"; + mouse_events, 1; + clip_to, "playlistClip"; + description { + state, "default" 0.0; + rel1 { + to, "playlistPanel"; + relative, 0 0; + offset, 0 0; + } + rel2 { + to, "playlistPanel"; + relative, 1 0; + offset, -1 5; + } + image { + normal, "shad.png"; + } + } + } //part + + + part { + name, "playlistClip"; + type, RECT; + mouse_events, 1; + description { + state, "default" 0.0; + rel1 { + to, "playlistPanel"; + relative, 0 0; + offset, 0 0; + } + rel2 { + to, "playlistPanel"; + relative, 1 1; + offset, -1 -1; + } + } + } //part + diff --git a/data/themes/winter/parts/seeker.edc b/data/themes/winter/parts/seeker.edc new file mode 100644 index 0000000..cd34af9 --- /dev/null +++ b/data/themes/winter/parts/seeker.edc @@ -0,0 +1,123 @@ + + part { + name, "seekerTrough"; + description { + state, "default" 0.0; + visible, 1; + min, 10 6; + max, 9999 6; + rel1 { + to, "screen"; + relative, 0 1; + offset, 5 7; + } + rel2 { + to, "screen"; + relative, 1 1; + offset, -6 13; + } + image { + normal, "seeker_trough.png"; + border, 5 5 1 1; + } + } + } + + part { + name, "seekerBar"; + description { + state, "default" 0.0; + visible, 1; + min, 0 6; + max, 9999 6; + rel1 { + to, "seekerTrough"; + relative, 0 0; + offset, 0 0; + } + rel2 { + to_x, "seeker"; + to_y, "seekerTrough"; + relative, 0 1; + offset, 0 -1; + } + image { + normal, "seeker_bar.png"; + border, 5 5 1 1; + } + } + } + part { + name, "seekerBarGrad"; + description { + state, "default" 0.0; + visible, 1; + min, 0 6; + max, 9999 6; + color, WINTER_COLOR; + rel1 { + to, "seekerBar"; + relative, 0 0; + offset, 0 0; + } + rel2 { + to, "seekerBar"; + relative, 1 1; + offset, -1 -1; + } + image { + normal, "seeker_bar_grad.png"; + border, 5 5 1 1; + } + } + } + + part { + name, "seeker"; + type, RECT; + dragable { + x, 1 1 1; + y, 0 0 0; + confine, "seekerTrough"; + } + description { + state, "default" 0.0; + visible, 0; + color, 0 0 0 255; + min, 1 6; + max, 1 6; + rel1 { + to, "seekerTrough"; + relative, 0 0; + offset, 0 0; + } + rel2 { + to, "seekerTrough"; + relative, 1 1; + offset, -1 -1; + } + } + } + + part { + name, "seeker_grabber"; + type, RECT; + description { + state, "default" 0.0; + visible, 1; + color, 0 0 0 0; + rel1 { + to, "seekerTrough"; + relative, 0 0; + offset, -2 -2; + } + rel2 { + to, "seekerTrough"; + relative, 1 1; + offset, 1 1; + } + } + } + + + diff --git a/data/themes/winter/parts/text.edc b/data/themes/winter/parts/text.edc new file mode 100644 index 0000000..e413d46 --- /dev/null +++ b/data/themes/winter/parts/text.edc @@ -0,0 +1,141 @@ + part { + name, "artist_name"; + type, TEXT; + mouse_events, 1; + description { + state, "default" 0.0; + visible, 1; + color, 0 0 0 200; + rel1 { + to, "screen"; + relative, 0 0; + offset, 7 7; + } + rel2 { + to, "screen"; + relative, 1 0; + offset, -5 25; + } + text { + text, "artist"; + font, "Vera"; + size, 12; + min, 0 1; + align, 0 0; + } + } + } //artist_name part + + part { + name, "album_name"; + type, TEXT; + mouse_events, 1; + description { + state, "default" 0.0; + visible, 1; + color, 0 0 0 200; + rel1 { + to, "artist_name"; + relative, 0 1; + offset, 0 5; + } + rel2 { + to, "artist_name"; + relative, 1 0; + offset, 0 25; + } + text { + text, "album"; + font, "Vera"; + size, 10; + min, 0 1; + align, 0 0; + } + } + } // album_name part + + part { + name, "song_name"; + type, TEXT; + mouse_events, 1; + description { + state, "default" 0.0; + visible, 1; + color, 0 0 0 200; + rel1 { + to, "album_name"; + relative, 0 1; + offset, 0 5; + } + rel2 { + to, "album_name"; + relative, 1 0; + offset, 0 25; + } + text { + text, "song"; + font, "Vera"; + size, 10; + min, 0 1; + align, 0 0; + } + } + } //part + + part { + name, "player.time"; + type, TEXT; + mouse_events, 1; + description { + state, "default" 0.0; + visible, 1; + color, 0 0 0 200; + rel1 { + to_x, "screen"; + to_y, "song_name"; + relative, 0 1; + offset, 7 5; + } + rel2 { + to, "screen"; + relative, 1 1; + offset, -8 -8; + } + text { + text, "00:00"; + font, "Vera"; + size, 14; + min, 0 1; + align, 1 0; + } + } + } //time_text part + + + part { + name, "vol_display_text"; + type, TEXT; + mouse_events, 1; + description { + state, "default" 0.0; + visible, 1; + color, 0 0 0 200; + rel1 { + to, "volumeBox"; + relative, 0 0; + offset, 2 3; + } + rel2 { + to, "volumeBox"; + relative, 1 1; + offset, -3 -3; + } + text { + text, "100"; + font, "Vera"; + size, 10; + min, 0 0; + align, .5 .5; + } + } + } //part diff --git a/data/themes/winter/parts/volume.edc b/data/themes/winter/parts/volume.edc new file mode 100644 index 0000000..5313fbd --- /dev/null +++ b/data/themes/winter/parts/volume.edc @@ -0,0 +1,30 @@ + part { + name, "volumeBox"; + description { + min, 27 16; + max, 27 16; + rel1 { + to, "controlArea"; + relative, 0 1; + offset, 0 7; + } + rel2 { + to, "controlArea"; + relative, 1 1; + offset, -1 23; + } + image { + normal, "volume.png"; + } + } + } //part + +BUTTON2("vol-dn", "vol-dn.png", "vol-dn-clicked.png", "vol-dn-border.png", + 11, 16, + "volumeBox", 0 0, -10 0, + "volumeBox", 0 1, 0 -1) +BUTTON2("vol-up", "vol-up.png", "vol-up-clicked.png", "vol-up-border.png", + 11, 16, + "volumeBox", 1 0, -1 0, + "volumeBox", 1 1, 10 -1) + diff --git a/data/themes/winter/programs/ani.edc b/data/themes/winter/programs/ani.edc new file mode 100644 index 0000000..b12729b --- /dev/null +++ b/data/themes/winter/programs/ani.edc @@ -0,0 +1,81 @@ +#define DOT_PROG(NUM, S1, S2) \ + program { \ + name, "ani"NUM".1"; \ + action, STATE_SET "end" 0.0; \ + transition, DECELERATE S1; \ + target, "dot"NUM; \ + after, "ani"NUM".2"; \ + } \ + program { \ + name, "ani"NUM".2"; \ + action, STATE_SET "default" 0.0; \ + target, "dot"NUM; \ + transition, LINEAR 0.0; \ + after, "ani"NUM".3"; \ + in, .5 .5; \ + } \ + program { \ + name, "ani"NUM".3"; \ + action, STATE_SET "end" 0.0; \ + transition, DECELERATE S2; \ + target, "dot"NUM; \ + after, "ani"NUM".4"; \ + } \ + program { \ + name, "ani"NUM".4"; \ + action, STATE_SET "default" 0.0; \ + target, "dot"NUM; \ + transition, LINEAR 0.0; \ + after, "ani"NUM".1"; \ + in, .5 .5; \ + } \ + program { \ + name, "ani"NUM".stop"; \ + action, ACTION_STOP; \ + target, "ani"NUM".1"; \ + target, "ani"NUM".2"; \ + target, "ani"NUM".3"; \ + target, "ani"NUM".4"; \ + after, "ani"NUM".reset"; \ + } \ + program { \ + name, "ani"NUM".init"; \ + signal, "show"; \ + source, ""; \ + after, "ani"NUM".stop"; \ + } \ + program { \ + name, "ani"NUM".reset"; \ + action, STATE_SET "default" 0.0; \ + target, "dot"NUM; \ + transition, LINEAR 0.0; \ + /* the following line breaks the animation, since the + * program's execution is delayed by 0.5-1.0 seconds. + * This kinda spoils the effect though :/ + * rewrite with embryo! :) + in, .5 .5;*/ \ + } \ + program { \ + name, "ani"NUM".playing"; \ + signal, "PLAYBACK_STATE_PLAYING"; \ + source, "*"; \ + after, "ani"NUM".1"; \ + } \ + program { \ + name, "ani"NUM".paused"; \ + signal, "PLAYBACK_STATE_PAUSED"; \ + source, "*"; \ + after, "ani"NUM".stop"; \ + } \ + program { \ + name, "ani"NUM".stopped"; \ + signal, "PLAYBACK_STATE_STOPPED"; \ + source, "*"; \ + after, "ani"NUM".stop"; \ + } + +DOT_PROG(0, 1.15, .85) +DOT_PROG(1, .75, 1) +DOT_PROG(2, 1.5, 2.0) +DOT_PROG(3, 1.25, .75) +DOT_PROG(4, 1.0, 1.5) diff --git a/data/themes/winter/programs/buttons.edc b/data/themes/winter/programs/buttons.edc new file mode 100644 index 0000000..3484b8c --- /dev/null +++ b/data/themes/winter/programs/buttons.edc @@ -0,0 +1,38 @@ +BUTTON_PROG("prev", "playback.prev") +//BUTTON_PROG("rew", "SEEK_BACK") +BUTTON_PROG3("rew", "SEEK_BACK_START", "SEEK_BACK_STOP") +//BUTTON_PROG("play", "playback.play") +//BUTTON_PROG("pause", "playback.pause") +TOGGLE_BUTTON_PROG("play", "playback.play", "playback.pause") +//BUTTON_PROG("ff", "SEEK_FORWARD") +BUTTON_PROG3("ff", "SEEK_FORWARD_START", "SEEK_FORWARD_STOP") +BUTTON_PROG("next", "playback.next") + + +BUTTON_PROG("pl", "") +BUTTON_PROG("x", "close") + + +BUTTON_PROG("plus", "file_dialog.open") +BUTTON_PROG("minus", "PLAYLIST_DEL") +BUTTON_PROG("edit", "") + + + program { + name, "play-started"; + signal, "PLAYBACK_STATE_PLAYING"; + source, "*"; + action, STATE_SET "toggled" 0.0; + transition, LINEAR 0.0; + target, "play"; + target, "play-2"; + } + program { + name, "play-stopped"; + signal, "PLAYBACK_STATE_STOPPED"; + source, "*"; + action, STATE_SET "default" 0.0; + transition, LINEAR 0.0; + target, "play"; + target, "play-2"; + } diff --git a/data/themes/winter/programs/playlist.edc b/data/themes/winter/programs/playlist.edc new file mode 100644 index 0000000..57fe6b5 --- /dev/null +++ b/data/themes/winter/programs/playlist.edc @@ -0,0 +1,34 @@ + program { + name, "playlistOpen"; + signal, "mouse,up,1"; + source, "playlistOpenner"; + action, STATE_SET "open" 0.0; + transition, DECELERATE 0.5; + target, "bottom"; + target, "playlistOpenner"; + target, "playlistCloser"; + } + program { + name, "playlistClose"; + signal, "mouse,up,1"; + source, "playlistCloser"; + action, STATE_SET "default" 0.0; + transition, DECELERATE 0.5; + target, "bottom"; + target, "playlistOpenner"; + target, "playlistCloser"; + } + + + program { + name, "scroll_up"; + signal, "mouse,wheel,0,-1"; + source, "playlistGrabber"; + action, SIGNAL_EMIT "PLAYLIST_SCROLL_UP" ""; + } + program { + name, "scroll_down"; + signal, "mouse,wheel,0,1"; + source, "playlistGrabber"; + action, SIGNAL_EMIT "PLAYLIST_SCROLL_DOWN" ""; + } diff --git a/data/themes/winter/programs/seeker.edc b/data/themes/winter/programs/seeker.edc new file mode 100644 index 0000000..bbf2867 --- /dev/null +++ b/data/themes/winter/programs/seeker.edc @@ -0,0 +1,18 @@ + program { + name, "seeker-start"; + signal, "mouse,down,1"; + source, "seeker_grabber"; + action, SIGNAL_EMIT "SEEKER_START" ""; + } + program { + name, "seeker-update"; + signal, "mouse,move"; + source, "seeker_grabber"; + action, SIGNAL_EMIT "SEEKER_UPDATE" ""; + } + program { + name, "seeker-stop"; + signal, "mouse,up,1"; + source, "seeker_grabber"; + action, SIGNAL_EMIT "SEEKER_STOP" ""; + } diff --git a/data/themes/winter/programs/switch.edc b/data/themes/winter/programs/switch.edc new file mode 100644 index 0000000..da96dac --- /dev/null +++ b/data/themes/winter/programs/switch.edc @@ -0,0 +1,6 @@ + program { + name, "switch"; + signal, "mouse,down,1,double"; + source, "main"; + action, SIGNAL_EMIT "SWITCH_GROUP" "collapsed"; + } diff --git a/data/themes/winter/programs/text.edc b/data/themes/winter/programs/text.edc new file mode 100644 index 0000000..29b99fc --- /dev/null +++ b/data/themes/winter/programs/text.edc @@ -0,0 +1,12 @@ + program { + name, "time_toggle"; + signal, "mouse,clicked,1"; + source, "time_text"; + action, SIGNAL_EMIT "TOGGLE_TIME_DISPLAY_MODE" "time_toggle"; + } + program { + name, "repeat_toggle"; + signal, "mouse,clicked,1"; + source, "repeat*"; + action, "SIGNAL_EMIT" "TOGGLE_REPEAT_MODE" "repeat_toggle"; + } diff --git a/data/themes/winter/programs/volume.edc b/data/themes/winter/programs/volume.edc new file mode 100644 index 0000000..512f8f9 --- /dev/null +++ b/data/themes/winter/programs/volume.edc @@ -0,0 +1,3 @@ + +BUTTON_PROG2("vol-dn", "vol-dn.over", "vol-dn.out", "vol-dn.down", "vol-dn.down2", "vol-dn.up", "VOL_DECR") +BUTTON_PROG2("vol-up", "vol-up.over", "vol-up.out", "vol-up.down", "vol-up.down2", "vol-up.up", "VOL_INCR") diff --git a/data/themes/winter/winter.edc b/data/themes/winter/winter.edc new file mode 100644 index 0000000..84b8f5f --- /dev/null +++ b/data/themes/winter/winter.edc @@ -0,0 +1,25 @@ +#define WINTER_BLUE 229 239 255 255 +#define WINTER_GREEN 229 255 239 255 +#define WINTER_RED 255 229 229 255 + +#define WINTER_COLOR WINTER_BLUE + +#include "../common.inc" + +#include "macros/macros.inc" +#include "macros/toggle.inc" + +images { +#include "images/euphoria.edc" +#include "images/collapsed.edc" +} + +fonts { + font, "Vera.ttf" "Vera"; +} + +collections { +#include "groups/euphoria.edc" +#include "groups/collapsed.edc" +#include "groups/playlist_item.edc" +} //collections diff --git a/lib/file_dialog.rb b/lib/file_dialog.rb new file mode 100644 index 0000000..91ecdc7 --- /dev/null +++ b/lib/file_dialog.rb @@ -0,0 +1,66 @@ +require "esmart_file_dialog" + +class FileDialog < Ecore::Evas::SoftwareX11 + def FileDialog.open(eet) + fd = FileDialog.new(eet) { |file| yield file } + fd.show + end + + def initialize(eet) + super() + + setup_ee + + @fd = Esmart::FileDialog.new(evas, eet) do |op| + case op + when :ok + @fd.selections.each do |sel| + yield File.join(@fd.current_directory, sel) + end + when :cancel + close + end + end + + @fd.show + + w, h = @fd.edje.get_size_max + set_size_max(w, h) + + w, h = @fd.edje.get_size_min + set_size_min(w, h) + + resize(w, h) + end + + def close + @bg = nil + @dragger = nil + delete + end + + private + def setup_ee + self.title = "Euphoria File Dialog" + self.borderless = true + + on_pre_render { Edje.thaw } + on_post_render { Edje.freeze } + + on_resize do + x, y, w, h = geometry + + @dragger.resize(w, h) + @bg.resize(w, h) + @fd.resize(w, h) + end + + @bg = Evas::Rectangle.new(evas) + @bg.set_color(89, 94, 97, 255) + @bg.show + + @dragger = Esmart::Draggies.new(self) + @dragger.button = 1 + @dragger.show + end +end diff --git a/lib/playback_status_handler.rb b/lib/playback_status_handler.rb new file mode 100644 index 0000000..dc5c09e --- /dev/null +++ b/lib/playback_status_handler.rb @@ -0,0 +1,17 @@ +# $Id: playback_status_handler.rb,v 1.1 2005/04/24 22:33:15 tsauerbeck Exp $ + +class PlaybackStatusHandler + def initialize(xmms, &block) + @block = block + + @state = xmms.playback_status.wait.value + @block.call(@state) + + xmms.broadcast_playback_status.notifier do |res| + if @state != res.value + @state = res.value + @block.call(@state) + end + end + end +end diff --git a/lib/playlist.rb b/lib/playlist.rb new file mode 100644 index 0000000..6d22e6d --- /dev/null +++ b/lib/playlist.rb @@ -0,0 +1,194 @@ +# $Id: playlist.rb,v 1.30 2006/03/11 19:09:32 tsauerbeck Exp $ + +require "euphoria/playlist_item" + +class Playlist < Array + attr_reader :container + + def initialize(xmms, on_cur_item_changed) + super() + + @xmms = xmms + @on_cur_item_changed = on_cur_item_changed + @ee = nil + @eet = nil + @container = nil + + @xmms.playlist_list.notifier { |res| push(*res.value) } + + begin + @current_pos = @xmms.playlist_current_pos.wait.value + rescue Xmms::Result::ValueError + @current_pos = nil + end + + @xmms.broadcast_playlist_current_pos.notifier do |res| + @current_pos = res.value + + tmp = find { |i| i.hilighted } + tmp.hilighted = false unless tmp.nil? + + current_item.hilighted = true + end + + @xmms.broadcast_playlist_changed.notifier do |res| + case res.value[:type] + when Xmms::Result::PLAYLIST_CHANGED_ADD + self << res.value[:id] + when Xmms::Result::PLAYLIST_CHANGED_REMOVE + # the daemon sends the position of the song, not the + # unique mlib id + delete(self[res.value[:position]]) + when Xmms::Result::PLAYLIST_CHANGED_CLEAR + clear + end + end + + @xmms.broadcast_medialib_entry_changed.notifier do |res| + @xmms.medialib_get_info(res.value).notifier do |res2| + props = res2.value + + find_all { |i| i.id == props[:id] }.each do |item| + item.properties = props + + if current_item && current_item.id == item.id + @on_cur_item_changed.call(item) + end + end + end + end + end + + def current_item + @current_pos && self[@current_pos] + end + + def show(eet, is_separate) + return unless @ee.nil? + + @eet = eet + + if is_separate + setup_ee + else + @ee = Euphoria.instance.ee + @edje = Euphoria.instance.edje + end + + @container = Esmart::Container.new(@edje.evas) + @container.name = "playlist" + @container.direction = Esmart::Container::VERTICAL + @container.spacing = 0 + @container.fill_policy = Esmart::Container::FILL_X + @container.show + + @edje.part("playlist.container").swallow(@container) + + if is_separate + @edje.on_signal("close") do + each { |i| i.hide } + + @edje = nil + @container = nil + @dragger = nil + @ee.delete + @ee = nil + end + end + + @edje.on_signal("drag", "playlist.scrollbar.handle") do + @container.scroll_percent = + @edje.part("playlist.scrollbar.handle"). + get_drag_value.last + end + + if is_separate + @edje.on_signal("file_dialog.open") do + Euphoria.instance.show_file_dialog + end + end + + @edje.on_signal("playlist_item.remove") do + find_all { |i| i.selected }.each do |i| + @xmms.playlist_remove(i.position) + end + end + + each { |i| i.show(eet) } + + current_item && (current_item.hilighted = true) + end + + def <<(id) + push(id) + end + + def push(*args) + args.each do |id| + item = PlaylistItem.new(id, @xmms, self) + super(item) + + item.show(@eet) unless @container.nil? + (item.selected = true) if size == 1 + end + + self + end + + def delete(item) + unless item.is_a?(PlaylistItem) + item = find { |i| i.id == item } + end + + item.hide if item.visible? + super + + # fix up positions of the remaining items + self[item.position..-1].each do |item| + item.position -= 1 + end + end + + def clear + each { |i| i.hide if i.visible? } + super + end + + private + def setup_ee + @ee = Ecore::Evas::SoftwareX11.new + @ee.title = "Euphoria Playlist" + @ee.borderless = true + + @ee.on_pre_render { Edje::thaw } + @ee.on_post_render { Edje::freeze } + + @ee.on_resize do + x, y, w, h = @ee.geometry + + @edje.resize(w, h) + @dragger.resize(w, h) + end + + @dragger = Esmart::Draggies.new(@ee) + @dragger.name = "dragger" + @dragger.button = 1 + @dragger.show + + @edje = Edje::Edje.new(@ee.evas) + @edje.load(@eet, "playlist") + @edje.name = "edje" + @edje.show + + w, h = @edje.get_size_max + @ee.set_size_max(w, h) + + w, h = @edje.get_size_min + @ee.set_size_min(w, h) + + @ee.resize(w, h) + @ee.show + + @ee.shaped = !@edje.data("shaped").nil? + end +end diff --git a/lib/playlist_item.rb b/lib/playlist_item.rb new file mode 100644 index 0000000..2a2deac --- /dev/null +++ b/lib/playlist_item.rb @@ -0,0 +1,126 @@ +# $Id: playlist_item.rb,v 1.21 2006/07/29 01:55:31 tilman Exp $ + +class PlaylistItem + attr_reader :id, :edje, :position, :selected, :hilighted + + def initialize(id, xmms, playlist) + @id = id + @position = playlist.size + + @xmms = xmms + @playlist = playlist + + @edje = nil + @height = 0 + @selected = false + @hilighted = false + + @props = {} + + @xmms.medialib_get_info(id).notifier do |res| + self.properties = res.value + end + end + + def method_missing(method) + @props[method] || "unknown #{method}" + end + + def duration + @props[:duration].to_i / 1000 + end + + def show(eet) + @edje = Edje::Edje.new(@playlist.container.evas) + @edje.load(eet, "playlist_item") + w, @height = @edje.get_size_min + + set_parts_text + + w, h = @edje.get_size_min + @edje.resize(w, h) + + @playlist.container.append_element(@edje) + + self.selected = @selected + + @edje.on_signal("playlist_item.selected") do |sig, src| + next if src == "Euphoria" + + @playlist.each do |item| + item.selected = (item == self) + end + end + + @edje.on_signal("playlist_item.hilighted") do |sig, src| + next if src == "Euphoria" + + @playlist.each do |item| + item.hilighted = (item == self) + end + end + + @edje.on_signal("playlist_item.play") do + @xmms.playlist_set_next(@position).wait + @xmms.playback_tickle.wait + @xmms.playback_start.wait + end + + @edje.on_signal("PLAYLIST_SCROLL_UP", "") do + @playlist.container.scroll(h * 3) + end + + @edje.on_signal("PLAYLIST_SCROLL_DOWN", "") do + @playlist.container.scroll(h * -3) + end + end + + def hilighted=(b) + @hilighted = b + + sig = b ? "hilighted" : "unhilighted" + unless @edje.nil? + @edje.emit_signal("playlist_item.#{sig}", "Euphoria") + end + end + + def selected=(b) + @selected = b + + sig = b ? "selected" : "unselected" + unless @edje.nil? + @edje.emit_signal("playlist_item.#{sig}", "Euphoria") + end + end + + def visible? + # since we don't actually hide the edje, but just delete it, + # we don't need to check @edje.visible? here + !@edje.nil? + end + + def hide + @playlist.container.remove_element(@edje) + @edje.delete + @edje = nil + end + + def properties=(hash) + @props = hash || {} + + set_parts_text unless @edje.nil? + end + + def position=(pos) + @position = pos + set_parts_text unless @edje.nil? + end + + private + def set_parts_text + tmp = (duration == -1) ? "" : + ("%i:%02i" % [duration / 60, duration % 60]) + @edje.part("duration").text = tmp + @edje.part("title").text = "%i %s - %s" % [@position + 1, artist, title] + end +end diff --git a/lib/playtime_updater.rb b/lib/playtime_updater.rb new file mode 100644 index 0000000..7d3e570 --- /dev/null +++ b/lib/playtime_updater.rb @@ -0,0 +1,40 @@ +# $Id: playtime_updater.rb,v 1.4 2005/07/07 16:33:55 tsauerbeck Exp $ + +class PlaytimeUpdater + INTERVAL = 0.25 + + def initialize(xmms, &block) + @xmms = xmms + @block = block + @timer = nil + @current_pos = nil + + on_timer + end + + def enabled=(v) + if !v && !@timer.nil? + @timer.delete + @timer = nil + elsif v + @current_pos = nil + on_timer + + @timer = Ecore::Timer.new(INTERVAL) do + on_timer + true + end + end + end + + private + def on_timer + pltime = @xmms.playback_playtime.wait.value + cur_pos = pltime / 1000 + + if @current_pos != cur_pos + @current_pos = cur_pos + @block.call(@current_pos) + end + end +end diff --git a/lib/slider.rb b/lib/slider.rb new file mode 100644 index 0000000..f05de0f --- /dev/null +++ b/lib/slider.rb @@ -0,0 +1,93 @@ +# $Id: slider.rb,v 1.3 2006/05/13 14:59:17 tilman Exp $ + +class Slider + def initialize(edje, xmms, part, config) + @edje = edje + @xmms = xmms + @part = part + @config = config + @val = nil + + self.value = @xmms.configval_get(config).wait.value + + @edje.on_signal("drag", @part) do + v = on_drag(@edje.part(@part).get_drag_value) + @xmms.configval_set(@config, v).wait unless v.nil? + end + end + + def value=(v) + end + +protected + def on_drag(d) + end +end + +class VolumeSlider < Slider + attr_reader :part, :config + + def initialize(edje, xmms, part) + @edje = edje + @xmms = xmms + @part = part + @val = nil + + self.value = @xmms.playback_volume_get.wait.value + + @edje.on_signal("drag", @part) do + v = on_drag(@edje.part(@part).get_drag_value) + + unless v.nil? + @xmms.playback_volume_set("left", v).wait + @xmms.playback_volume_set("right", v).wait + end + end + end + + def value=(v) + v = (1.0 - (v[:left].to_f / 100.0)).abs + + if !@val || @val != v + @val = v + @edje.part(@part).set_drag_value(0.1, v) + end + end + + def on_drag(d) + ret = nil + v = (1.0 - d[1]).abs + + if @val != v + @val = v + ret = (v * 100).to_i + end + + ret + end +end + +class EqSlider < Slider + attr_reader :part, :config + + def value=(v) + v = (1.0 - v.to_f).abs + + if !@val || @val != v + @val = v + @edje.part(@part).set_drag_value(0.1, v) + end + end + + def on_drag(d) + ret = nil + v = (1.0 - d[1]).abs + + if @val != v + @val = v + ret = v.to_s + end + + ret + end +end diff --git a/lib/volume_box.rb b/lib/volume_box.rb new file mode 100644 index 0000000..0cb1afc --- /dev/null +++ b/lib/volume_box.rb @@ -0,0 +1,42 @@ +# $Id: volume_box.rb,v 1.1 2006/07/29 02:07:04 tilman Exp $ + +class VolumeBox + def initialize(edje, xmms, part) + @edje = edje + @xmms = xmms + @part = part + + self.value = @xmms.playback_volume_get.wait.value + + @edje.on_signal("VOL_INCR") do + unless @vol[:left] == 100 + tmp = @vol[:left] + 1 + @xmms.playback_volume_set("left", tmp).wait + end + + unless @vol[:right] == 100 + tmp = @vol[:right] + 1 + @xmms.playback_volume_set("right", tmp).wait + end + end + + @edje.on_signal("VOL_DECR") do + unless @vol[:left] == 0 + tmp = @vol[:left] - 1 + @xmms.playback_volume_set("left", tmp).wait + end + + unless @vol[:right] == 0 + tmp = @vol[:right] - 1 + @xmms.playback_volume_set("right", tmp).wait + end + end + end + + def value=(v) + unless v.nil? + @vol = v + @edje.part("vol_display_text").text = v[:left].to_s + end + end +end