mirror of
https://github.com/google/pebble.git
synced 2025-07-06 14:50:41 -04:00
Import of the watch repository from Pebble
This commit is contained in:
commit
3b92768480
10334 changed files with 2564465 additions and 0 deletions
111
src/fw/shell/system_theme.h
Normal file
111
src/fw/shell/system_theme.h
Normal file
|
@ -0,0 +1,111 @@
|
|||
/*
|
||||
* Copyright 2024 Google LLC
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "applib/fonts/fonts.h"
|
||||
#include "applib/platform.h"
|
||||
#include "applib/preferred_content_size.h"
|
||||
|
||||
//! System Theme Text Style is a font collection used to unify text styles across the system.
|
||||
//! It contains a variety of different font sizes for use in an application, each meant for a
|
||||
//! distinct class of use cases. Each font type will resize based on the user's preferences.
|
||||
//! Consumers should attempt to have a complete mapping of their font types to the system style.
|
||||
|
||||
typedef enum TextStyleFont {
|
||||
//! Header is for metadata text that gives extra context for the user, such as which application
|
||||
//! a notification belongs to, or who sent a message. It is smaller than the body copy when
|
||||
//! readable, but always bold.
|
||||
TextStyleFont_Header,
|
||||
#if !RECOVERY_FW
|
||||
//! Title is for prominent text that is usually the title or name of the content, giving context
|
||||
//! for the user such as the subject line of an email. It is comparable to the body, but
|
||||
//! always bold.
|
||||
TextStyleFont_Title,
|
||||
//! Body is for body text that can be long stretches of text, such as the body of an email.
|
||||
TextStyleFont_Body,
|
||||
#endif
|
||||
//! Subtitle is for subtitle text that should be prominent, such as the title of a section in a
|
||||
//! larger content matter. Subtitle can also be used when the title should be large, but not
|
||||
//! prominent. It is comparable to the title, but not bold for the Larger theme.
|
||||
TextStyleFont_Subtitle,
|
||||
//! Caption is for a contextual description text of a subject in a larger content matter.
|
||||
//! It is usually smaller than the footer.
|
||||
TextStyleFont_Caption,
|
||||
//! Footer is for metadata text that the user may be interested in after consuming the main
|
||||
//! content, such as age of a notification. It is smaller than the body copy.
|
||||
TextStyleFont_Footer,
|
||||
//! For titles of menu cells that identify an item of a list.
|
||||
TextStyleFont_MenuCellTitle,
|
||||
//! For subtitles of menu cells that provide auxiliary information about an item of a list.
|
||||
TextStyleFont_MenuCellSubtitle,
|
||||
#if !RECOVERY_FW
|
||||
//! Time Header Numbers is used specially by Timeline to display content time in extra bold e.g.
|
||||
//! 4:06 AM. It is comparable to the title.
|
||||
TextStyleFont_TimeHeaderNumbers,
|
||||
#endif
|
||||
//! Time Header Words is used in conjunction with its numbers counterpart for AM PM. The size is
|
||||
//! significantly smaller than the numbers counterpart to display AM PM in capitals.
|
||||
TextStyleFont_TimeHeaderWords,
|
||||
//! Pin Subtitle is for subtitle text where the text box is small used specially by Timeline.
|
||||
//! It is smaller than the title and is not bold.
|
||||
TextStyleFont_PinSubtitle,
|
||||
//! Paragraph Header is for text that describes the content of a body paragraph. The size is
|
||||
//! smaller than both Body and Header.
|
||||
TextStyleFont_ParagraphHeader,
|
||||
|
||||
TextStyleFontCount
|
||||
} TextStyleFont;
|
||||
|
||||
|
||||
//! @param font The desired font class to obtain a font key of.
|
||||
//! @return The font key of the font class using the user's preferred content size.
|
||||
const char *system_theme_get_font_key(TextStyleFont font);
|
||||
|
||||
//! @param content_size The desired content size.
|
||||
//! @param font The desired font class to obtain a font key of.
|
||||
//! @return The font key of the given content size and font class.
|
||||
const char *system_theme_get_font_key_for_size(PreferredContentSize size, TextStyleFont font);
|
||||
|
||||
//! @param font The desired font class to obtain a font of.
|
||||
//! @return The font of the font class using the user's preferred content size.
|
||||
GFont system_theme_get_font(TextStyleFont font);
|
||||
|
||||
//! @param content_size The desired content size.
|
||||
//! @param font The desired font class to obtain a font of.
|
||||
//! @return The font of the given content size and font class.
|
||||
GFont system_theme_get_font_for_size(PreferredContentSize size, TextStyleFont font);
|
||||
|
||||
//! @param font The desired font class for which to obtain a font for the runtime platform's default
|
||||
//! size.
|
||||
//! @return The font of the given font class for the runtime platform's default size.
|
||||
GFont system_theme_get_font_for_default_size(TextStyleFont font);
|
||||
|
||||
//! @param content_size The user's desired content size.
|
||||
void system_theme_set_content_size(PreferredContentSize content_size);
|
||||
|
||||
//! @return The user's preferred content size.
|
||||
PreferredContentSize system_theme_get_content_size(void);
|
||||
|
||||
//! @return The default content size for the current runtime platform
|
||||
PreferredContentSize system_theme_get_default_content_size_for_runtime_platform(void);
|
||||
|
||||
//! @param size The \ref PreferredContentSize to convert from the host to the current runtime
|
||||
//! platform
|
||||
//! @return The input \ref PreferredContentSize converted from the host to the current runtime
|
||||
//! platform
|
||||
PreferredContentSize system_theme_convert_host_content_size_to_runtime_platform(
|
||||
PreferredContentSize size);
|
Loading…
Add table
Add a link
Reference in a new issue