From: Vladimir 'phcoder' Serbinenko Date: Tue, 29 Dec 2009 16:33:35 +0000 (+0100) Subject: merge gfxmenu into gfxmenu+mulitterm X-Git-Tag: 1.98~93^2~20 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5fab62c06e628d3b96af62325efb58de19b397c9;p=thirdparty%2Fgrub.git merge gfxmenu into gfxmenu+mulitterm --- 5fab62c06e628d3b96af62325efb58de19b397c9 diff --cc gfxmenu/gui_list.c index 68f19a3a6,c55cfd85c..e2e0965ed --- a/gfxmenu/gui_list.c +++ b/gfxmenu/gui_list.c @@@ -530,29 -513,30 +513,30 @@@ list_set_property (void *vself, const c /* Set necessary information that the gfxmenu view provides. */ static void list_set_view_info (void *vself, - const char *theme_path, - grub_gfxmenu_model_t menu) + grub_gfxmenu_view_t view) { list_impl_t self = vself; - grub_gfxmenu_icon_manager_set_theme_path (self->icon_manager, theme_path); - self->menu = menu; + grub_gfxmenu_icon_manager_set_theme_path (self->icon_manager, + view->theme_path); + self->view = view; } + static struct grub_gui_component_ops list_comp_ops = + { + .destroy = list_destroy, + .get_id = list_get_id, + .is_instance = list_is_instance, + .paint = list_paint, + .set_parent = list_set_parent, + .get_parent = list_get_parent, + .set_bounds = list_set_bounds, + .get_bounds = list_get_bounds, + .get_minimal_size = list_get_minimal_size, + .set_property = list_set_property + }; + static struct grub_gui_list_ops list_ops = { - .component_ops = - { - .destroy = list_destroy, - .get_id = list_get_id, - .is_instance = list_is_instance, - .paint = list_paint, - .set_parent = list_set_parent, - .get_parent = list_get_parent, - .set_bounds = list_set_bounds, - .get_bounds = list_get_bounds, - .get_preferred_size = list_get_preferred_size, - .set_property = list_set_property - }, .set_view_info = list_set_view_info }; diff --cc gfxmenu/view.c index 938e41979,414541dda..5008b105b --- a/gfxmenu/view.c +++ b/gfxmenu/view.c @@@ -116,8 -146,23 +116,8 @@@ grub_gfxmenu_view_destroy (grub_gfxmenu grub_free (view->progress_message_text); grub_free (view->theme_path); if (view->canvas) - view->canvas->ops->component.destroy (view->canvas); + view->canvas->component.ops->destroy (view->canvas); grub_free (view); - - set_text_mode (); - destroy_terminal (); -} - -/* Sets MESSAGE as the progress message for the view. - MESSAGE can be 0, in which case no message is displayed. */ -static void -set_progress_message (grub_gfxmenu_view_t view, const char *message) -{ - grub_free (view->progress_message_text); - if (message) - view->progress_message_text = grub_strdup (message); - else - view->progress_message_text = 0; } static void diff --cc include/grub/gui.h index 605242da6,873d29e76..9cfbdde81 --- a/include/grub/gui.h +++ b/include/grub/gui.h @@@ -71,11 -70,44 +70,43 @@@ struct grub_gui_container_op struct grub_gui_list_ops { - struct grub_gui_component_ops component_ops; void (*set_view_info) (void *self, - const char *theme_path, - grub_gfxmenu_model_t menu); + grub_gfxmenu_view_t view); }; + typedef grub_uint32_t grub_fixed_unsigned_t; + #define GRUB_FIXED_1 0x10000 + + static inline unsigned + grub_fixed_ufu_divide (grub_uint32_t a, grub_fixed_unsigned_t b) + { + return (a << 16) / b; + } + + static inline grub_fixed_unsigned_t + grub_fixed_fuf_divide (grub_fixed_unsigned_t a, grub_uint32_t b) + { + return a / b; + } + + static inline unsigned + grub_fixed_ufu_multiply (grub_uint32_t a, grub_fixed_unsigned_t b) + { + return (a * b) >> 16; + } + + static inline unsigned + grub_fixed_to_unsigned (grub_fixed_unsigned_t in) + { + return in >> 16; + } + + static inline grub_fixed_unsigned_t + grub_unsigned_to_fixed (unsigned in) + { + return in << 16; + } + struct grub_gui_component { struct grub_gui_component_ops *ops;