diff options
author | Luke Song <songwalker@google.com> | 2017-07-13 15:10:35 -0700 |
---|---|---|
committer | Luke Song <songwalker@google.com> | 2017-07-19 22:46:54 +0000 |
commit | 1d540dd0f44c1c7d40878f6a7bb447e85e6207ad (patch) | |
tree | 3ca4ac0f5adece8b82b03e531e874b8106a7b989 /healthd/healthd_draw.h | |
parent | d4f4a3fcf9bd63d8ba555b62944576045cb02bfc (diff) | |
download | system_core-1d540dd0f44c1c7d40878f6a7bb447e85e6207ad.tar.gz system_core-1d540dd0f44c1c7d40878f6a7bb447e85e6207ad.tar.bz2 system_core-1d540dd0f44c1c7d40878f6a7bb447e85e6207ad.zip |
healthd: restructure healthd_mode_charger
Refactor drawing code into separate class, and allow for split screen
drawing with offset.
Cherry picked from commit 7f386dcab98b4a2827b5ffe29d7d3de7637841c0
Bug: 63541890
Test: Verify charging mode animation
Change-Id: I6c089460f55b8c2f75f4aa3153a5736f6f434b51
Diffstat (limited to 'healthd/healthd_draw.h')
-rw-r--r-- | healthd/healthd_draw.h | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/healthd/healthd_draw.h b/healthd/healthd_draw.h new file mode 100644 index 000000000..6a6ba7655 --- /dev/null +++ b/healthd/healthd_draw.h @@ -0,0 +1,75 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * 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. + */ + +#ifndef HEALTHD_DRAW_H +#define HEALTHD_DRAW_H + +#include <linux/input.h> +#include <minui/minui.h> + +#include "animation.h" + +using namespace android; + +class HealthdDraw { + public: + // Configures font using given animation. + HealthdDraw(animation* anim); + virtual ~HealthdDraw(); + + // Redraws screen. + void redraw_screen(const animation* batt_anim, GRSurface* surf_unknown); + + // Blanks screen if true, unblanks if false. + virtual void blank_screen(bool blank); + + protected: + virtual void clear_screen(); + + // returns the last y-offset of where the surface ends. + virtual int draw_surface_centered(GRSurface* surface); + // Negative x or y coordinates center text. + virtual int draw_text(const GRFont* font, int x, int y, const char* str); + + // Negative x or y coordinates position the text away from the opposite edge + // that positive ones do. + virtual void determine_xy(const animation::text_field& field, + const int length, int* x, int* y); + + // Draws battery animation, if it exists. + virtual void draw_battery(const animation* anim); + // Draws clock text, if animation contains text_field data. + virtual void draw_clock(const animation* anim); + // Draws battery percentage text if animation contains text_field data. + virtual void draw_percent(const animation* anim); + // Draws charger->surf_unknown or basic text. + virtual void draw_unknown(GRSurface* surf_unknown); + + // Pixel sizes of characters for default font. + int char_width_; + int char_height_; + + // Width and height of screen in pixels. + int screen_width_; + int screen_height_; + + // Device screen is split vertically. + const bool kSplitScreen; + // Pixels to offset graphics towards center split. + const int kSplitOffset; +}; + +#endif // HEALTHD_DRAW_H |