2N/A * GRUB -- GRand Unified Bootloader 2N/A * Copyright (C) 2008 Free Software Foundation, Inc. 2N/A * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. 2N/A * GRUB is free software: you can redistribute it and/or modify 2N/A * it under the terms of the GNU General Public License as published by 2N/A * the Free Software Foundation, either version 3 of the License, or 2N/A * (at your option) any later version. 2N/A * GRUB is distributed in the hope that it will be useful, 2N/A * but WITHOUT ANY WARRANTY; without even the implied warranty of 2N/A * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 2N/A * GNU General Public License for more details. 2N/A * You should have received a copy of the GNU General Public License 2N/A/* Construct a new box widget using ABSPATTERN to find the pixmap files for 2N/A it, storing the new box instance at *BOXPTR. 2N/A The '*' then gets substituted with the various pixmap names that the 2N/A /* Prefix: Get the part before the '*'. */ 2N/A /* Suffix: Everything after the '*' is the suffix. */ 2N/A/* Construct a new box widget using PATTERN to find the pixmap files for it, 2N/A storing the new widget at *BOXPTR. PATTERN should be of the form: 2N/A pixmap names that the widget uses. 2N/A Important! The value of *BOXPTR must be initialized! It must either 2N/A (1) Be 0 (a NULL pointer), or 2N/A (2) Be a pointer to a valid 'grub_gfxmenu_box_t' instance. 2N/A In this case, the previous instance is destroyed. */ 2N/A /* Check arguments. */ 2N/A /* If no pixmap pattern is given, then just create an empty box. */ 2N/A "styled box missing theme directory");
2N/A /* Resolve to an absolute path. */ 2N/A /* Create the box. */ 2N/A/* Set the specified property NAME on the view to the given string VALUE. 2N/A The caller is responsible for the lifetimes of NAME and VALUE. */ 2N/A "%s:%d:%d unknown property `%s'",
2N/A /* Eat characters up to the newline. */ 2N/A while (c != -
1 && c !=
'\n');
2N/A /* Index of the first character of the identifier in p->buf. */ 2N/A /* Next index after the last character of the identifer in p->buf. */ 2N/A /* Capture the start of the identifier. */ 2N/A /* Scan for the end. */ 2N/A /* Read as a quoted string. 2N/A The quotation marks are not included in the expression value. */ 2N/A /* Skip opening quotation mark. */ 2N/A /* Skip the terminating quotation mark. */ 2N/A /* The parentheses are included in the expression value. */ 2N/A while (c != -
1 && c !=
')');
2N/A /* Read as a single word -- for numeric values or words without 2N/A /* The end of the theme file has been reached. */ 2N/A/* Read a GUI object specification from the theme file. 2N/A Any components created will be added to the GUI container PARENT. */ 2N/A /* Inform the component about the theme so it can find its resources. */ 2N/A /* Add the component as a child of PARENT. */ 2N/A "%s:%d:%d expected `{' after object type name `%s'",
2N/A /* Check whether the end has been encountered. */ 2N/A /* Skip the closing brace. */ 2N/A /* Skip comments. */ 2N/A /* Check whether this component is a container. */ 2N/A /* Read the sub-object recursively and add it as a child. */ 2N/A /* After reading the sub-object, resume parsing, expecting 2N/A another property assignment or sub-object definition. */ 2N/A "%s:%d:%d attempted to add object to non-container",
2N/A "%s:%d:%d expected `=' after property name `%s'",
2N/A /* Handle the property value. */ 2N/A /* General property handling. */ 2N/A /* Read the property name. */ 2N/A /* Skip whitespace before separator. */ 2N/A /* Read separator. */ 2N/A "%s:%d:%d missing separator after property name `%s'",
2N/A /* Skip whitespace after separator. */ 2N/A /* Get the value based on its type. */ 2N/A /* String value (e.g., '"My string"'). */ 2N/A /* If theme_set_string results in an error, grub_errno will be returned 2N/A "%s:%d:%d property value invalid; " 2N/A "enclose literal values in quotes (\")",
2N/A/* Set properties on the view based on settings from the specified 2N/A /* Skip comments (lines beginning with #). */ 2N/A /* Find the first non-whitespace character. */ 2N/A /* Handle the content. */ 2N/A /* Set the new theme path. */