diff options
author | Ray Strode <rstrode@redhat.com> | 2008-05-29 00:02:22 -0400 |
---|---|---|
committer | Ray Strode <rstrode@redhat.com> | 2008-05-29 00:02:22 -0400 |
commit | dd3e2229d73f1f264cb07aab4765196307ac9e97 (patch) | |
tree | 18d039aeef54648af0b149d2152a8d437f4214e4 /src/splash-plugins | |
parent | d76fcfed45401305fbb728d5bdd708df4364b313 (diff) | |
download | plymouth-dd3e2229d73f1f264cb07aab4765196307ac9e97.tar.gz plymouth-dd3e2229d73f1f264cb07aab4765196307ac9e97.tar.xz plymouth-dd3e2229d73f1f264cb07aab4765196307ac9e97.zip |
Drop line editing plugin vtable functions. Use window directly.
There was a sort useless layer of indirection between the
window object and splash plugins. It ended up with
functions like:
void
on_backspace (ply_splash_plugin_t *plugin)
{
plugin->interface->on_backspace (plugin);
}
Since the individual plugins are aware of the window object
anyway, they can register their own on_backspace et al handlers
without going through the ply_splash_plugin_t layer.
Diffstat (limited to 'src/splash-plugins')
-rw-r--r-- | src/splash-plugins/details/plugin.c | 80 | ||||
-rw-r--r-- | src/splash-plugins/fade-in/plugin.c | 79 | ||||
-rw-r--r-- | src/splash-plugins/spinfinity/plugin.c | 95 | ||||
-rw-r--r-- | src/splash-plugins/text/plugin.c | 79 |
4 files changed, 188 insertions, 145 deletions
diff --git a/src/splash-plugins/details/plugin.c b/src/splash-plugins/details/plugin.c index eb16331..48d5ac9 100644 --- a/src/splash-plugins/details/plugin.c +++ b/src/splash-plugins/details/plugin.c @@ -96,6 +96,37 @@ detach_from_event_loop (ply_boot_splash_plugin_t *plugin) ply_trace ("detaching from event loop"); } +void +on_keyboard_input (ply_boot_splash_plugin_t *plugin, + const char *keyboard_input, + size_t character_size) +{ + if (plugin->keyboard_input_is_hidden) + write (STDOUT_FILENO, "•", strlen ("•")); + else + write (STDOUT_FILENO, keyboard_input, character_size); +} + +void +on_backspace (ply_boot_splash_plugin_t *plugin) +{ + write (STDOUT_FILENO, BACKSPACE, strlen (BACKSPACE)); +} + +void +on_enter (ply_boot_splash_plugin_t *plugin, + const char *line) +{ + if (plugin->password_answer_handler != NULL) + { + plugin->password_answer_handler (plugin->password_answer_data, + line); + plugin->keyboard_input_is_hidden = false; + plugin->password_answer_handler = NULL; + write (STDOUT_FILENO, CLEAR_LINE_SEQUENCE, strlen (CLEAR_LINE_SEQUENCE)); + } +} + bool show_splash_screen (ply_boot_splash_plugin_t *plugin, ply_event_loop_t *loop, @@ -106,6 +137,16 @@ show_splash_screen (ply_boot_splash_plugin_t *plugin, assert (plugin != NULL); + ply_window_set_keyboard_input_handler (window, + (ply_window_keyboard_input_handler_t) + on_keyboard_input, plugin); + ply_window_set_backspace_handler (window, + (ply_window_backspace_handler_t) + on_backspace, plugin); + ply_window_set_enter_handler (window, + (ply_window_enter_handler_t) + on_enter, plugin); + plugin->loop = loop; ply_event_loop_watch_for_exit (loop, (ply_event_loop_exit_handler_t) @@ -149,6 +190,10 @@ hide_splash_screen (ply_boot_splash_plugin_t *plugin, ply_trace ("hiding splash screen"); + ply_window_set_keyboard_input_handler (window, NULL, NULL); + ply_window_set_backspace_handler (window, NULL, NULL); + ply_window_set_enter_handler (window, NULL, NULL); + ply_event_loop_stop_watching_for_exit (plugin->loop, (ply_event_loop_exit_handler_t) detach_from_event_loop, @@ -168,38 +213,6 @@ ask_for_password (ply_boot_splash_plugin_t *plugin, plugin->keyboard_input_is_hidden = true; } -void -on_keyboard_input (ply_boot_splash_plugin_t *plugin, - const char *keyboard_input, - size_t character_size) -{ - if (plugin->keyboard_input_is_hidden) - write (STDOUT_FILENO, "•", strlen ("•")); - else - write (STDOUT_FILENO, keyboard_input, character_size); -} - -void -on_backspace (ply_boot_splash_plugin_t *plugin) -{ - write (STDOUT_FILENO, BACKSPACE, strlen (BACKSPACE)); -} - -void -on_enter (ply_boot_splash_plugin_t *plugin, - const char *line) -{ - if (plugin->password_answer_handler != NULL) - { - plugin->password_answer_handler (plugin->password_answer_data, - line); - plugin->keyboard_input_is_hidden = false; - plugin->password_answer_handler = NULL; - write (STDOUT_FILENO, CLEAR_LINE_SEQUENCE, strlen (CLEAR_LINE_SEQUENCE)); - } -} - - ply_boot_splash_plugin_interface_t * ply_boot_splash_plugin_get_interface (void) { @@ -212,9 +225,6 @@ ply_boot_splash_plugin_get_interface (void) .on_boot_output = on_boot_output, .hide_splash_screen = hide_splash_screen, .ask_for_password = ask_for_password, - .on_keyboard_input = on_keyboard_input, - .on_backspace = on_backspace, - .on_enter = on_enter }; return &plugin_interface; diff --git a/src/splash-plugins/fade-in/plugin.c b/src/splash-plugins/fade-in/plugin.c index 2432fb2..4540413 100644 --- a/src/splash-plugins/fade-in/plugin.c +++ b/src/splash-plugins/fade-in/plugin.c @@ -371,6 +371,37 @@ detach_from_event_loop (ply_boot_splash_plugin_t *plugin) ply_window_set_mode (plugin->window, PLY_WINDOW_MODE_TEXT); } +void +on_keyboard_input (ply_boot_splash_plugin_t *plugin, + const char *keyboard_input, + size_t character_size) +{ + if (plugin->password_answer_handler == NULL) + return; + + plugin->entry->number_of_bullets++; + draw_password_entry (plugin); +} + +void +on_backspace (ply_boot_splash_plugin_t *plugin) +{ + plugin->entry->number_of_bullets--; + draw_password_entry (plugin); +} + +void +on_enter (ply_boot_splash_plugin_t *plugin, + const char *text) +{ + plugin->password_answer_handler (plugin->password_answer_data, + text); + plugin->entry->number_of_bullets = 0; + entry_free (plugin->entry); + plugin->entry = NULL; + start_animation (plugin); +} + bool show_splash_screen (ply_boot_splash_plugin_t *plugin, ply_event_loop_t *loop, @@ -381,6 +412,16 @@ show_splash_screen (ply_boot_splash_plugin_t *plugin, assert (plugin->logo_image != NULL); assert (plugin->frame_buffer != NULL); + ply_window_set_keyboard_input_handler (window, + (ply_window_keyboard_input_handler_t) + on_keyboard_input, plugin); + ply_window_set_backspace_handler (window, + (ply_window_backspace_handler_t) + on_backspace, plugin); + ply_window_set_enter_handler (window, + (ply_window_enter_handler_t) + on_enter, plugin); + plugin->loop = loop; ply_event_loop_watch_for_exit (loop, (ply_event_loop_exit_handler_t) detach_from_event_loop, @@ -516,6 +557,10 @@ hide_splash_screen (ply_boot_splash_plugin_t *plugin, { assert (plugin != NULL); + ply_window_set_keyboard_input_handler (window, NULL, NULL); + ply_window_set_backspace_handler (window, NULL, NULL); + ply_window_set_enter_handler (window, NULL, NULL); + if (plugin->loop != NULL) { stop_animation (plugin); @@ -620,37 +665,6 @@ ask_for_password (ply_boot_splash_plugin_t *plugin, show_password_entry (plugin); } -void -on_keyboard_input (ply_boot_splash_plugin_t *plugin, - const char *keyboard_input, - size_t character_size) -{ - if (plugin->password_answer_handler == NULL) - return; - - plugin->entry->number_of_bullets++; - draw_password_entry (plugin); -} - -void -on_backspace (ply_boot_splash_plugin_t *plugin) -{ - plugin->entry->number_of_bullets--; - draw_password_entry (plugin); -} - -void -on_enter (ply_boot_splash_plugin_t *plugin, - const char *text) -{ - plugin->password_answer_handler (plugin->password_answer_data, - text); - plugin->entry->number_of_bullets = 0; - entry_free (plugin->entry); - plugin->entry = NULL; - start_animation (plugin); -} - ply_boot_splash_plugin_interface_t * ply_boot_splash_plugin_get_interface (void) { @@ -662,9 +676,6 @@ ply_boot_splash_plugin_get_interface (void) .update_status = update_status, .hide_splash_screen = hide_splash_screen, .ask_for_password = ask_for_password, - .on_keyboard_input = on_keyboard_input, - .on_backspace = on_backspace, - .on_enter = on_enter }; return &plugin_interface; diff --git a/src/splash-plugins/spinfinity/plugin.c b/src/splash-plugins/spinfinity/plugin.c index f1e9c11..62701b3 100644 --- a/src/splash-plugins/spinfinity/plugin.c +++ b/src/splash-plugins/spinfinity/plugin.c @@ -241,6 +241,45 @@ detach_from_event_loop (ply_boot_splash_plugin_t *plugin) ply_window_set_mode (plugin->window, PLY_WINDOW_MODE_TEXT); } +void +on_keyboard_input (ply_boot_splash_plugin_t *plugin, + const char *keyboard_input, + size_t character_size) +{ + if (plugin->password_answer_handler == NULL) + return; + + plugin->entry->number_of_bullets++; + draw_password_entry (plugin); +} + +void +on_backspace (ply_boot_splash_plugin_t *plugin) +{ + plugin->entry->number_of_bullets--; + draw_password_entry (plugin); +} + +void +on_enter (ply_boot_splash_plugin_t *plugin, + const char *text) +{ + if (plugin->password_answer_handler == NULL) + return; + + plugin->password_answer_handler (plugin->password_answer_data, + text); + + if (plugin->entry != NULL) + { + plugin->entry->number_of_bullets = 0; + entry_free (plugin->entry); + plugin->entry = NULL; + } + + start_animation (plugin); +} + bool show_splash_screen (ply_boot_splash_plugin_t *plugin, ply_event_loop_t *loop, @@ -251,6 +290,16 @@ show_splash_screen (ply_boot_splash_plugin_t *plugin, assert (plugin->logo_image != NULL); assert (plugin->frame_buffer != NULL); + ply_window_set_keyboard_input_handler (window, + (ply_window_keyboard_input_handler_t) + on_keyboard_input, plugin); + ply_window_set_backspace_handler (window, + (ply_window_backspace_handler_t) + on_backspace, plugin); + ply_window_set_enter_handler (window, + (ply_window_enter_handler_t) + on_enter, plugin); + plugin->loop = loop; ply_event_loop_watch_for_exit (loop, (ply_event_loop_exit_handler_t) detach_from_event_loop, @@ -315,6 +364,10 @@ hide_splash_screen (ply_boot_splash_plugin_t *plugin, { assert (plugin != NULL); + ply_window_set_keyboard_input_handler (window, NULL, NULL); + ply_window_set_backspace_handler (window, NULL, NULL); + ply_window_set_enter_handler (window, NULL, NULL); + if (plugin->loop != NULL) { stop_animation (plugin); @@ -418,45 +471,6 @@ ask_for_password (ply_boot_splash_plugin_t *plugin, show_password_entry (plugin); } -void -on_keyboard_input (ply_boot_splash_plugin_t *plugin, - const char *keyboard_input, - size_t character_size) -{ - if (plugin->password_answer_handler == NULL) - return; - - plugin->entry->number_of_bullets++; - draw_password_entry (plugin); -} - -void -on_backspace (ply_boot_splash_plugin_t *plugin) -{ - plugin->entry->number_of_bullets--; - draw_password_entry (plugin); -} - -void -on_enter (ply_boot_splash_plugin_t *plugin, - const char *text) -{ - if (plugin->password_answer_handler == NULL) - return; - - plugin->password_answer_handler (plugin->password_answer_data, - text); - - if (plugin->entry != NULL) - { - plugin->entry->number_of_bullets = 0; - entry_free (plugin->entry); - plugin->entry = NULL; - } - - start_animation (plugin); -} - ply_boot_splash_plugin_interface_t * ply_boot_splash_plugin_get_interface (void) { @@ -468,9 +482,6 @@ ply_boot_splash_plugin_get_interface (void) .update_status = update_status, .hide_splash_screen = hide_splash_screen, .ask_for_password = ask_for_password, - .on_keyboard_input = on_keyboard_input, - .on_backspace = on_backspace, - .on_enter = on_enter }; return &plugin_interface; diff --git a/src/splash-plugins/text/plugin.c b/src/splash-plugins/text/plugin.c index bfa591a..a342fa7 100644 --- a/src/splash-plugins/text/plugin.c +++ b/src/splash-plugins/text/plugin.c @@ -111,6 +111,37 @@ detach_from_event_loop (ply_boot_splash_plugin_t *plugin) ply_trace ("detaching from event loop"); } +void +on_keyboard_input (ply_boot_splash_plugin_t *plugin, + const char *keyboard_input, + size_t character_size) +{ + if (plugin->keyboard_input_is_hidden) + write (STDOUT_FILENO, "•", strlen ("•")); + else + write (STDOUT_FILENO, keyboard_input, character_size); +} + +void +on_backspace (ply_boot_splash_plugin_t *plugin) +{ + write (STDOUT_FILENO, BACKSPACE, strlen (BACKSPACE)); +} + +void +on_enter (ply_boot_splash_plugin_t *plugin, + const char *line) +{ + if (plugin->password_answer_handler != NULL) + { + plugin->password_answer_handler (plugin->password_answer_data, + line); + plugin->keyboard_input_is_hidden = false; + plugin->password_answer_handler = NULL; + write (STDOUT_FILENO, CLEAR_LINE_SEQUENCE, strlen (CLEAR_LINE_SEQUENCE)); + } +} + bool show_splash_screen (ply_boot_splash_plugin_t *plugin, ply_event_loop_t *loop, @@ -119,6 +150,16 @@ show_splash_screen (ply_boot_splash_plugin_t *plugin, { assert (plugin != NULL); + ply_window_set_keyboard_input_handler (window, + (ply_window_keyboard_input_handler_t) + on_keyboard_input, plugin); + ply_window_set_backspace_handler (window, + (ply_window_backspace_handler_t) + on_backspace, plugin); + ply_window_set_enter_handler (window, + (ply_window_enter_handler_t) + on_enter, plugin); + plugin->loop = loop; ply_event_loop_watch_for_exit (loop, (ply_event_loop_exit_handler_t) detach_from_event_loop, @@ -150,6 +191,10 @@ hide_splash_screen (ply_boot_splash_plugin_t *plugin, ply_trace ("hiding splash screen"); + ply_window_set_keyboard_input_handler (window, NULL, NULL); + ply_window_set_backspace_handler (window, NULL, NULL); + ply_window_set_enter_handler (window, NULL, NULL); + if (plugin->loop != NULL) { ply_event_loop_stop_watching_for_exit (plugin->loop, @@ -172,37 +217,6 @@ ask_for_password (ply_boot_splash_plugin_t *plugin, plugin->keyboard_input_is_hidden = true; } -void -on_keyboard_input (ply_boot_splash_plugin_t *plugin, - const char *keyboard_input, - size_t character_size) -{ - if (plugin->keyboard_input_is_hidden) - write (STDOUT_FILENO, "•", strlen ("•")); - else - write (STDOUT_FILENO, keyboard_input, character_size); -} - -void -on_backspace (ply_boot_splash_plugin_t *plugin) -{ - write (STDOUT_FILENO, BACKSPACE, strlen (BACKSPACE)); -} - -void -on_enter (ply_boot_splash_plugin_t *plugin, - const char *line) -{ - if (plugin->password_answer_handler != NULL) - { - plugin->password_answer_handler (plugin->password_answer_data, - line); - plugin->keyboard_input_is_hidden = false; - plugin->password_answer_handler = NULL; - write (STDOUT_FILENO, CLEAR_LINE_SEQUENCE, strlen (CLEAR_LINE_SEQUENCE)); - } -} - ply_boot_splash_plugin_interface_t * ply_boot_splash_plugin_get_interface (void) { @@ -214,9 +228,6 @@ ply_boot_splash_plugin_get_interface (void) .update_status = update_status, .hide_splash_screen = hide_splash_screen, .ask_for_password = ask_for_password, - .on_keyboard_input = on_keyboard_input, - .on_backspace = on_backspace, - .on_enter = on_enter }; return &plugin_interface; |