Global Properties
Version från den 23 september 2024 kl. 06.44 av Admin (diskussion | bidrag) (→7.3.4 Komponentkonstruktion)
Globala Egenskaper
Format
Globala egenskaper specificeras med det enkla formatet:
name1: value1 name2: "värde som kan innehålla mellanslag" name3: #88F
I detta exempel tilldelas name3 ett färgvärde.
Lista över Globala Egenskaper
- title-text: Specifierar texten som visas i det övre centrala området på skärmen som en titel.
- title-font: Definierar typsnittet som används för titeln längst upp på skärmen.
- title-color: Definierar färgen på titelmeddelandet.
- message-font: För närvarande oanvänd. Lämnas för bakåtkompatibilitet.
- message-color: För närvarande oanvänd. Lämnas för bakåtkompatibilitet.
- message-bg-color: För närvarande oanvänd. Lämnas för bakåtkompatibilitet.
- desktop-image: Specifierar bilden som används som bakgrund. Den kommer att skalas för att passa skärmstorleken eller proportionellt skalas beroende på skalningsmetoden.
- desktop-image-scale-method': Specifierar skalningsmetoden för desktop-image`. Alternativ är "stretch", "crop", "padding", "fitwidth", "fitheight". "stretch" för att passa skärmstorleken. Annars proportionell skalning av en del av desktop-image till en del av skärmen. "crop" proportionellt skalas en del av desktop-image för att passa skärmstorleken. "padding" hela desktop-image kommer att finnas inom skärmen. "fitwidth" för att passa desktop-images bredd till skärmens bredd. "fitheight" för att passa desktop-images höjd till skärmens höjd. Standard är "stretch".
- desktop-image-h-align: Specifierar den horisontella justeringen av desktop-image om desktop-image-scale-method inte är lika med "stretch". Alternativ är "left", "center", "right". Standard är "center".
- desktop-image-v-align: Specifierar den vertikala justeringen av desktop-image om desktop-image-scale-method inte är lika med "stretch". Alternativ är "top", "center", "bottom". Standard är "center".
- desktop-color: Specifierar färgen för bakgrunden om desktop-image inte är specificerad.
- terminal-box: Specifierar filnamnmönstret för de stilade boxsegmenten som används för kommandoradens terminalfönster. Till exempel, terminal-box: terminal_*.png kommer att använda bilderna "terminal_c.png" som mittområdet, "terminal_n.png" som norra (övre) kanten, "terminal_nw.png" som nordvästra (övre vänstra) hörnet, etc. Om bilden för något segment inte hittas, kommer den helt enkelt att lämnas tom.
- terminal-border: Specifierar kantbredden för terminalfönstret.
- terminal-left: Specifierar den vänstra koordinaten för terminalfönstret.
- terminal-top: Specifierar den övre koordinaten för terminalfönstret.
- terminal-width: Specifierar bredden på terminalfönstret.
- terminal-height: Specifierar höjden på terminalfönstret.
Komponentkonstruktion
Större anpassningsmöjligheter ges av komponenter. Ett träd av komponenter bildar användargränssnittet. Containers är komponenter som kan innehålla andra komponenter, och det finns alltid en enda rotkomponent som är en instans av en canvas container.
Komponenter skapas i temafilen genom att prefixa komponenttypen med ett '+' tecken:
+ label { text="GRUB" font="aqui 11" color="#8FF" }
Egenskaper för en komponent specificeras som name = value (mellanrum runt tokens är valfria och ignoreras) där value kan vara:
- ett enda ord (t.ex. align = center, color = #FF8080),
- en citerad sträng (t.ex. text = "Hello, World!"), eller
- en tuple (t.ex. preferred_size = (120, 80)).
Lista över Komponenter
Följande är en lista över komponenterna och de egenskaper de stödjer.
- label: En etikett som visar en rad text.
* id: Sätts till "__timeout__" för att visa den tid som har gått till en automatisk start av standardinmatningen. * text: Texten som ska visas. Om id är satt till "__timeout__" och ingen text-egenskap är satt, kommer antalet sekunder att visas. Om den är satt till "@KEYMAP_SHORT@", "@KEYMAP_MIDDLE@" eller "@KEYMAP_LONG@" visas fördefinierad hotkey-information. * font: Typsnittet som används för textvisning. * color: Textfärgen. * align: Den horisontella justeringen av texten inom komponenten. Alternativ är "left", "center" och "right". * visible: Sätts till "false" för att dölja etiketten.
- image: En komponent som visar en bild. Bilden skalas för att passa komponenten.
* file: Den fullständiga sökvägen till bildfilen som ska laddas.
- progress_bar: Visar en horisontellt orienterad framstegsindikator. Den kan renderas med enkla solida fyllda rektanglar, eller med ett par pixmap-stilade boxar.
* id: Sätts till "__timeout__" för att visa den tid som har gått till en automatisk start av standardinmatningen. * fg_color: Förgrundsfärgen för enkel solid färg rendering. * bg_color: Bakgrundsfärgen för enkel solid färg rendering. * border_color: Kantfärgen för enkel solid färg rendering. * text_color: Textfärgen. * bar_style: Specifikation av den stilade boxramen för framstegsindikatorn. Exempel: "progress_frame_*.png". Om värdet är lika med "highlight_style" kommer inga stilade boxar att visas. * highlight_style: Specifikation av den stilade boxen för det markerade området av framstegsindikatorn. Denna box kommer att användas för att måla endast det markerade området av stapeln, och kommer att ökas i storlek när stapeln närmar sig slutförandet. Exempel: "progress_hl_*.png". Om värdet är lika med "bar_style" kommer inga stilade boxar att visas. * highlight_overlay: Om detta alternativ är satt till "true" kommer sidorna av highlight-boxens boxar (varje slice förutom mitten) att överlagra ram-boxens boxar. Och mittenboxens slice av highlight-boxen kan röra sig hela vägen (från topp till botten), och ritas på mittenboxens slice av ram-boxen. På så sätt kan vi göra en framstegsindikator med runda kanter så att det inte finns något fritt utrymme från highlight till ram i topp- och botten scrollbarpositioner. Standard är "false". * font: Typsnittet som används för framstegsindikatorn. * text: Texten som ska visas på framstegsindikatorn. Om framstegsindikatorns ID är satt till "__timeout__" och värdet av denna egenskap är satt till "@TIMEOUT_NOTIFICATION_SHORT@", "@TIMEOUT_NOTIFICATION_MIDDLE@" eller "@TIMEOUT_NOTIFICATION_LONG@", kommer GRUB att uppdatera denna egenskap med ett informativt meddelande när timeouten närmar sig.
- circular_progress: Visar en cirkulär framstegsindikator. Utseendet på denna komponent bestäms av två bilder: den center bilden och tick bilden. Centerbilden är vanligtvis större och kommer att ritas i mitten av komponenten. Runt omkretsen av en cirkel inom komponenten kommer tick-bilden att ritas ett visst antal gånger, beroende på komponentens egenskaper.
* id: Sätts till "__timeout__" för att visa den tid som har gått till en automatisk start av standardinmatningen. * center_bitmap: Filnamnet på bilden som ska ritas i mitten av komponenten. * tick_bitmap: Filnamnet på bilden som ska ritas för tickmarkeringar. * num_ticks: Antalet ticks som utgör en hel cirkel. * ticks_disappear: Booleskt värde som anger om tickmarkeringar ska gradvis visas eller gradvis försvinna när value närmar sig end. Specificera "true" eller "false". Standard är "false". * start_angle: Positionen för den första tickmarkeringen som ska visas eller försvinna. Mätt i "parrots", 1 "parrot" = 1 / 256 av hela cirkeln. Använd värden "xxx deg" eller "xxx °" för att ställa in vinkeln i grader.
- boot_menu: Visar GRUB:s startmeny. Den tillåter att välja objekt och köra dem.
* item_font: Typsnittet som används för menyalternativens titlar. * selected_item_font: Typsnittet som används för det valda menyalternativet, eller "inherit" (standard) för att använda item_font även för det valda menyalternativet. * item_color: Färgen som används för menyalternativens titlar. * selected_item_color: Färgen som används för det valda menyalternativet, eller "inherit" (standard) för att använda item_color även för det valda menyalternativet. * icon_width: Bredden på menyalternativets ikoner. Ikoner skalas till angiven storlek. * icon_height: Höjden på menyalternativets ikoner. * item_height: Höjden på varje menyalternativ i pixlar. * item_padding: Mängden utrymme i pixlar som lämnas på varje sida av menyalternativets innehåll. * item_icon_space: Utrymmet mellan ett objekts ikon och titeltexten, i pixlar. * item_spacing: Mängden utrymme som lämnas mellan menyalternativ, i pixlar. * menu_pixmap_style: Bildfilmönstret för menyramens stilade box. Exempel: "menu_*.png" (detta kommer att använda bilder som "menu_c.png", "menu_w.png", "menu_nw.png", etc.) * item_pixmap_style: Bildfilmönstret för objektens stilade box. * selected_item_pixmap_style: Bildfilmönstret för den valda objektets highlight-stilade box. * scrollbar: Booleskt värde som anger om scrollbar ska ritas om ram och tum-stilade boxar är konfigurerade. * scrollbar_frame: Bildfilmönstret för hela scrollbarens ram. Exempel: "scrollbar_*.png" * scrollbar_thumb: Bildfilmönstret för scrollbarens tum (delen av scrollbar som rör sig när scrollning sker). Exempel: "scrollbar_thumb_*.png" * scrollbar_thumb_overlay: Om detta alternativ är satt till "true" kommer scrollbar tumens sidor (varje slice förutom mitten) att överlagra scrollbar ramens sidor. Och mittenboxens slice av scrollbar_thumb kan röra sig hela vägen (från topp till botten), och ritas på mittenboxens slice av scrollbar ram. På så sätt kan vi göra en scrollbar med runda kanter så att det inte finns något fritt utrymme från tum till ram i topp- och botten scrollbarpositioner. Standard är "false". * scrollbar_slice: Menyramens stilade boxens slice där scrollbar kommer att ritas. Möjliga värden är "west", "center", "east" (standard). "west" - scrollbar kommer att ritas i västra slice (högerjusterad). "east" - scrollbar kommer att ritas i östra slice (vänsterjusterad). "center" - scrollbar kommer att ritas i mitten slice. Obs: i fallet med "center" slice: # Om scrollbar ska ritas, kommer startmenyns bredd minskas med scrollbarens bredd och scrollbar ritas på högra sidan av mitten slice. # Om scrollbar inte ska ritas, är startmenyns bredd bredden av mitten slice. # Vi behöver inte nödvändigtvis ha menyramens pixmap box för att visa scrollbar.
* scrollbar_left_pad: Vänster scrollbarpadding i pixlar. Oanvänd om scrollbar_slice är "west". * scrollbar_right_pad: Höger scrollbarpadding i pixlar. Oanvänd om scrollbar_slice är "east". * scrollbar_top_pad: Övre scrollbarpadding i pixlar. * scrollbar_bottom_pad: Nedre scrollbarpadding i pixlar. * visible: Sätts till "false" för att dölja startmenyn.
- canvas: Canvas är en container som tillåter manuell placering av komponenter inom den. Den ändrar inte positionerna på dess barnkomponenter. Den tilldelar alla barnkomponenter deras föredragna storlekar.
- hbox: hbox containern lägger ut sina barn från vänster till höger, och ger varje sin föredragna bredd. Höjden på varje barn sätts till maximum av de föredragna höjderna för alla barn.
- vbox: vbox containern lägger ut sina barn från topp till botten, och ger varje sin föredragna höjd. Bredden på varje barn sätts till maximum av de föredragna breddarna för alla barn.
Gemensamma Egenskaper
Följande egenskaper stöds av alla komponenter:
- left: Avståndet från containerns vänstra kant till objektets vänstra kant i någon av tre format:
* x: Värde i pixlar * p%: Procent * p%+x: En blandning av båda
- top: Avståndet från containerns övre kant till objektets övre kant i samma format.
- width: Objektets bredd i samma format.
- height: Objektets höjd i samma format.
- id: Identifieraren för komponenten. Detta kan vara vilken godtycklig sträng som helst. ID:t kan användas av skript för att referera till olika komponenter i GUI-komponentträdet. För närvarande finns det ett speciellt ID-värde som GRUB känner igen:
* "__timeout__": Komponenten med detta ID kommer att uppdateras av GRUB och kommer att indikera tid som har gått till en automatisk start av standardinmatningen. Påverkade komponenter: label, circular_progress, progress_bar.