More code moved to the theme

This commit is contained in:
Bertrand Songis
2019-10-04 11:45:31 +02:00
parent 447534137d
commit 1da95fdcdd
9 changed files with 32 additions and 81 deletions
Binary file not shown.

Before

Width:  |  Height:  |  Size: 254 B

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 297 B

After

Width:  |  Height:  |  Size: 3.5 KiB

-1
View File
@@ -93,7 +93,6 @@ endforeach()
add_gui_src(fullscreen_dialog.cpp)
add_gui_src(confirm_dialog.cpp)
add_gui_src(message_dialog.cpp)
add_gui_src(timeedit.cpp)
add_gui_src(curve.cpp)
add_gui_src(sourcechoice.cpp)
+5
View File
@@ -56,4 +56,9 @@
#include "coloredit.h"
#include "draw_functions.h"
inline void POPUP_INFORMATION(const char * str)
{
new MessageDialog("Message", str);
}
#endif // _LIBOPENUI_H_
-39
View File
@@ -1,39 +0,0 @@
/*
* Copyright (C) OpenTX
*
* Based on code named
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program 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.
*/
#include "message_dialog.h"
#include "static.h"
MessageDialog::MessageDialog(const char * title, const char * message):
Dialog(title, {50, 73, LCD_W - 100, LCD_H - 146})
{
new StaticText(this, {0, height() / 2, width(), PAGE_LINE_HEIGHT}, message, CENTERED);
}
#if defined(HARDWARE_KEYS)
void MessageDialog::onKeyEvent(event_t event)
{
TRACE_WINDOWS("%s received event 0x%X", getWindowDebugString().c_str(), event);
if (event == EVT_KEY_BREAK(KEY_EXIT) || event == EVT_KEY_BREAK(KEY_ENTER)) {
deleteLater();
}
}
#endif
-40
View File
@@ -1,40 +0,0 @@
/*
* Copyright (C) OpenTX
*
* Based on code named
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program 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.
*/
#ifndef _MESSAGE_DIALOG_H_
#define _MESSAGE_DIALOG_H_
#include "dialog.h"
class MessageDialog: public Dialog {
public:
MessageDialog(const char * title, const char * message);
#if defined(HARDWARE_KEYS)
void onKeyEvent(event_t event) override;
#endif
};
inline void POPUP_INFORMATION(const char * str)
{
new MessageDialog("Message", str);
}
#endif // _MESSAGE_DIALOG_H_
+24
View File
@@ -25,6 +25,14 @@ const BitmapBuffer * ThemeBase::asterisk = NULL;
const BitmapBuffer * ThemeBase::question = NULL;
const BitmapBuffer * ThemeBase::busy = NULL;
const uint8_t LBM_FOLDER[] = {
#include "mask_folder.lbm"
};
const uint8_t LBM_DROPDOWN[] = {
#include "mask_dropdown.lbm"
};
std::list<ThemeBase *> & getRegisteredThemes()
{
static std::list<ThemeBase *> themes;
@@ -154,6 +162,22 @@ void ThemeBase::drawCheckBox(BitmapBuffer * dc, bool value, bool focus) const
}
}
void ThemeBase::drawChoice(BitmapBuffer * dc, ChoiceBase * choice, const char * str) const
{
LcdFlags textColor;
if (choice->isEditMode())
textColor = TEXT_INVERTED_COLOR;
else if (choice->hasFocus())
textColor = TEXT_INVERTED_BGCOLOR;
else if (!str || str[0] == '\0')
textColor = CURVE_AXIS_COLOR;
else
textColor = TEXT_COLOR;
dc->drawText(FIELD_PADDING_LEFT, FIELD_PADDING_TOP, str[0] == '\0' ? "---" : str, textColor);
dc->drawBitmapPattern(choice->getRect().w - 20, (choice->getRect().h - 11) / 2, choice->getType() == CHOICE_TYPE_FOLDER ? LBM_FOLDER : LBM_DROPDOWN, textColor);
}
void ThemeBase::drawSlider(BitmapBuffer * dc, int vmin, int vmax, int value, const rect_t & rect, bool edit, bool focus) const
{
int val = limit(vmin, value, vmax);
+2
View File
@@ -84,6 +84,8 @@ class ThemeBase: public Theme
void drawCheckBox(BitmapBuffer * dc, bool value, bool focus) const override;
void drawChoice(BitmapBuffer * dc, ChoiceBase * choice, const char * str) const override;
void drawSlider(BitmapBuffer * dc, int vmin, int vmax, int value, const rect_t & rect, bool edit, bool focus) const override;
void drawPageHeader(BitmapBuffer * dc, const PageHeader * page) const override;