From: Charlie Brej Date: Tue, 30 Jun 2009 22:38:16 +0000 (+0100) Subject: [script] Add an example progress bar to the example script X-Git-Tag: 0.7.0~121 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cf730d7b07387df3867acc50c3d42f42c500e9df;p=thirdparty%2Fplymouth.git [script] Add an example progress bar to the example script --- diff --git a/src/plugins/splash/script/plugin.c b/src/plugins/splash/script/plugin.c index efb44953..39724fd4 100644 --- a/src/plugins/splash/script/plugin.c +++ b/src/plugins/splash/script/plugin.c @@ -89,9 +89,6 @@ struct _ply_boot_splash_plugin char *script_filename; char *image_dir; - double progress; - double progress_target; - script_state *script_state; script_op *script_main_op; script_lib_sprite_data_t *script_sprite_lib; @@ -122,8 +119,6 @@ create_plugin (ply_key_file_t *key_file) plugin->script_filename = ply_key_file_get_value (key_file, "script", "ScriptFile"); plugin->state = PLY_BOOT_SPLASH_DISPLAY_NORMAL; - plugin->progress = 0; - plugin->progress_target = -1; return plugin; } @@ -153,10 +148,7 @@ static void on_timeout (ply_boot_splash_plugin_t *plugin) { double sleep_time; - double now; - - now = ply_get_timestamp (); - + script_lib_plymouth_on_refresh(plugin->script_state, plugin->script_plymouth_lib); script_lib_sprite_refresh(plugin->script_sprite_lib); @@ -172,10 +164,7 @@ on_boot_progress (ply_boot_splash_plugin_t *plugin, double duration, double percent_done) { - if (plugin->progress_target<0) - plugin->progress = percent_done; - plugin->progress_target = percent_done; - script_lib_plymouth_on_boot_progress(plugin->script_state, plugin->script_plymouth_lib, duration, plugin->progress); + script_lib_plymouth_on_boot_progress(plugin->script_state, plugin->script_plymouth_lib, duration, percent_done); } diff --git a/src/plugins/splash/script/script-lib-sprite.c b/src/plugins/splash/script/script-lib-sprite.c index 76b22825..9d9cf42b 100644 --- a/src/plugins/splash/script/script-lib-sprite.c +++ b/src/plugins/splash/script/script-lib-sprite.c @@ -176,6 +176,7 @@ draw_area (script_lib_sprite_data_t* data, { sprite_t* sprite = ply_list_node_get_data (node); ply_frame_buffer_area_t sprite_area; + if (!sprite->image) continue; if (sprite->remove_me) continue; diff --git a/themes/script/Makefile.am b/themes/script/Makefile.am index add4bb97..50fefae0 100644 --- a/themes/script/Makefile.am +++ b/themes/script/Makefile.am @@ -5,7 +5,9 @@ dist_theme_DATA = \ box.png \ bullet.png \ entry.png \ - lock.png + lock.png \ + progress_box.png \ + progress_bar.png MAINTAINERCLEANFILES = Makefile.in script.plymouth diff --git a/themes/script/progress_bar.png b/themes/script/progress_bar.png new file mode 100644 index 00000000..dd1e747a Binary files /dev/null and b/themes/script/progress_bar.png differ diff --git a/themes/script/progress_box.png b/themes/script/progress_box.png new file mode 100644 index 00000000..c485cfbc Binary files /dev/null and b/themes/script/progress_box.png differ diff --git a/themes/script/script.script b/themes/script/script.script index 1134c37d..72eb8c98 100644 --- a/themes/script/script.script +++ b/themes/script/script.script @@ -166,3 +166,49 @@ fun display_password (prompt, bullets){ } } PlymouthSetDisplayPasswordFunction(display_password); + + + + + + + + + + + +#-----------------------------------------Dialogue stuff -------------------------------- + + + + +progress_box.image = ImageNew("progress_box.png"); +progress_box.sprite = SpriteNew(); +SpriteSetImage(progress_box.sprite, progress_box.image); + +progress_box.x = 400 - ImageGetWidth(progress_box.image) / 2; +progress_box.y = 300 * 1.5 - ImageGetHeight(progress_box.image) / 2; + +SpriteSetX (progress_box.sprite, progress_box.x); +SpriteSetY (progress_box.sprite, progress_box.y); + +progress_bar.original_image = ImageNew("progress_bar.png"); +progress_bar.sprite = SpriteNew(); + +progress_bar.x = 400 - ImageGetWidth(progress_bar.original_image) / 2; +progress_bar.y = 300 * 1.5 - ImageGetHeight(progress_box.image) / 2 + (ImageGetHeight(progress_box.image) - ImageGetHeight(progress_bar.original_image)) / 2; +SpriteSetX (progress_bar.sprite, progress_bar.x); +SpriteSetY (progress_bar.sprite, progress_bar.y); + + +fun progress (duration, progress){ + progress_bar.image = ImageScale(progress_bar.original_image, ImageGetWidth(progress_bar.original_image) * progress, ImageGetHeight(progress_bar.original_image)); + SpriteSetImage (progress_bar.sprite, progress_bar.image); + } + + + + +PlymouthSetBootProgressFunction(progress); + +