123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- /* gfxmenu_view.h - gfxmenu view interface. */
- /*
- * GRUB -- GRand Unified Bootloader
- * Copyright (C) 2008,2009 Free Software Foundation, Inc.
- *
- * GRUB is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * GRUB is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GRUB. If not, see <http://www.gnu.org/licenses/>.
- */
- #ifndef GRUB_GFXMENU_VIEW_HEADER
- #define GRUB_GFXMENU_VIEW_HEADER 1
- #include <grub/types.h>
- #include <grub/err.h>
- #include <grub/menu.h>
- #include <grub/font.h>
- #include <grub/gfxwidgets.h>
- struct grub_gfxmenu_view; /* Forward declaration of opaque type. */
- typedef struct grub_gfxmenu_view *grub_gfxmenu_view_t;
- grub_gfxmenu_view_t grub_gfxmenu_view_new (const char *theme_path,
- int width, int height);
- void grub_gfxmenu_view_destroy (grub_gfxmenu_view_t view);
- /* Set properties on the view based on settings from the specified
- theme file. */
- grub_err_t grub_gfxmenu_view_load_theme (grub_gfxmenu_view_t view,
- const char *theme_path);
- grub_err_t grub_gui_recreate_box (grub_gfxmenu_box_t *boxptr,
- const char *pattern, const char *theme_dir);
- void grub_gfxmenu_view_draw (grub_gfxmenu_view_t view);
- void
- grub_gfxmenu_redraw_menu (grub_gfxmenu_view_t view);
- void
- grub_gfxmenu_redraw_timeout (grub_gfxmenu_view_t view);
- void
- grub_gfxmenu_view_redraw (grub_gfxmenu_view_t view,
- const grub_video_rect_t *region);
- void
- grub_gfxmenu_clear_timeout (void *data);
- void
- grub_gfxmenu_print_timeout (int timeout, void *data);
- void
- grub_gfxmenu_set_chosen_entry (int entry, void *data);
- grub_err_t grub_font_draw_string (const char *str,
- grub_font_t font,
- grub_video_color_t color,
- int left_x, int baseline_y);
- int grub_font_get_string_width (grub_font_t font,
- const char *str);
- /* Implementation details -- this should not be used outside of the
- view itself. */
- #include <grub/video.h>
- #include <grub/bitmap.h>
- #include <grub/bitmap_scale.h>
- #include <grub/gui.h>
- #include <grub/gfxwidgets.h>
- #include <grub/icon_manager.h>
- /* Definition of the private representation of the view. */
- struct grub_gfxmenu_view
- {
- grub_video_rect_t screen;
- int need_to_check_sanity;
- grub_video_rect_t terminal_rect;
- int terminal_border;
- grub_font_t title_font;
- grub_font_t message_font;
- char *terminal_font_name;
- grub_video_rgba_color_t title_color;
- grub_video_rgba_color_t message_color;
- grub_video_rgba_color_t message_bg_color;
- struct grub_video_bitmap *raw_desktop_image;
- struct grub_video_bitmap *scaled_desktop_image;
- grub_video_bitmap_selection_method_t desktop_image_scale_method;
- grub_video_bitmap_h_align_t desktop_image_h_align;
- grub_video_bitmap_v_align_t desktop_image_v_align;
- grub_video_rgba_color_t desktop_color;
- grub_gfxmenu_box_t terminal_box;
- char *title_text;
- char *progress_message_text;
- char *theme_path;
- grub_gui_container_t canvas;
- int double_repaint;
- int selected;
- grub_video_rect_t progress_message_frame;
- grub_menu_t menu;
- int nested;
- int first_timeout;
- };
- #endif /* ! GRUB_GFXMENU_VIEW_HEADER */
|