]> git.ipfire.org Git - thirdparty/plymouth.git/commitdiff
[script] Add an example progress bar to the example script
authorCharlie Brej <cbrej@cs.man.ac.uk>
Tue, 30 Jun 2009 22:38:16 +0000 (23:38 +0100)
committerCharlie Brej <cbrej@cs.man.ac.uk>
Tue, 30 Jun 2009 22:38:16 +0000 (23:38 +0100)
src/plugins/splash/script/plugin.c
src/plugins/splash/script/script-lib-sprite.c
themes/script/Makefile.am
themes/script/progress_bar.png [new file with mode: 0644]
themes/script/progress_box.png [new file with mode: 0644]
themes/script/script.script

index efb44953cfe5bd000f48ddb6be5ea33c5800826a..39724fd4242433f8e986eb18287cbe4d71210189 100644 (file)
@@ -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);  
 }
 
 
index 76b22825d291904806e5156ccfa43c980ecc2ece..9d9cf42bb09fb219090c88f945d15a6588eabc8b 100644 (file)
@@ -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;
 
index add4bb97a1e2014ee37008ea25a35b0c9fabd08f..50fefae08c0bc2d81bbba698e44a936e4b1fdd96 100644 (file)
@@ -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 (file)
index 0000000..dd1e747
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 (file)
index 0000000..c485cfb
Binary files /dev/null and b/themes/script/progress_box.png differ
index 1134c37d00765c7e4c50924ffeed13a8fc15934f..72eb8c98f5d27cdd42503a8bd30c9554a10e3492 100644 (file)
@@ -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);
+
+