ply_throbber_t *throbber;
ply_progress_bar_t *progress_bar;
ply_label_t *label;
+ ply_label_t *message_label;
ply_rectangle_t box_area, lock_area, logo_area, bar_area;
} view_t;
"throbber-");
view->progress_bar = ply_progress_bar_new ();
view->label = ply_label_new ();
+ view->message_label = ply_label_new ();
+ ply_label_set_text (view->message_label, "");
+ ply_label_show (view->message_label, view->display, 10, 10);
return view;
}
ply_throbber_free (view->throbber);
ply_progress_bar_free (view->progress_bar);
ply_label_free (view->label);
+ ply_label_free (view->message_label);
free (view);
}
ply_progress_bar_draw_area (view->progress_bar,
pixel_buffer, x, y, width, height);
}
+ ply_label_draw_area (view->message_label,
+ pixel_buffer,
+ x, y, width, height);
}
static void
}
}
+static void
+show_message (ply_boot_splash_plugin_t *plugin,
+ const char *message)
+{
+ ply_trace ("Showing message '%s'", message);
+ ply_list_node_t *node;
+ node = ply_list_get_first_node (plugin->views);
+ while (node != NULL)
+ {
+ ply_list_node_t *next_node;
+ view_t *view;
+
+ view = ply_list_node_get_data (node);
+ next_node = ply_list_get_next_node (plugin->views, node);
+ ply_label_set_text (view->message_label, message);
+ ply_pixel_display_draw_area (view->display, 10, 10,
+ ply_label_get_width (view->message_label),
+ ply_label_get_height(view->message_label));
+ node = next_node;
+ }
+}
+
static void
display_normal (ply_boot_splash_plugin_t *plugin)
{
unpause_views (plugin);
}
+static void
+display_message (ply_boot_splash_plugin_t *plugin,
+ const char *message)
+{
+ show_message (plugin, message);
+}
+
ply_boot_splash_plugin_interface_t *
ply_boot_splash_plugin_get_interface (void)
{
.display_normal = display_normal,
.display_password = display_password,
.display_question = display_question,
+ .display_message = display_message,
};
return &plugin_interface;