mirror of
https://github.com/eried/portapack-mayhem.git
synced 2024-12-24 23:09:26 -05:00
"At least it builds !"
This commit is contained in:
parent
1b0da68d65
commit
2fcfdba9ea
@ -22,7 +22,7 @@
|
|||||||
PATH_BOOTSTRAP=bootstrap
|
PATH_BOOTSTRAP=bootstrap
|
||||||
PATH_APPLICATION=application
|
PATH_APPLICATION=application
|
||||||
PATH_BASEBAND=baseband
|
PATH_BASEBAND=baseband
|
||||||
PATH_BASEBAND_TX=baseband-tx
|
# PATH_BASEBAND_TX=baseband-tx
|
||||||
|
|
||||||
TARGET=portapack-h1-firmware
|
TARGET=portapack-h1-firmware
|
||||||
|
|
||||||
@ -30,7 +30,7 @@ TARGET_BOOTSTRAP=$(PATH_BOOTSTRAP)/bootstrap
|
|||||||
TARGET_HACKRF_FIRMWARE=hackrf_one_usb_ram
|
TARGET_HACKRF_FIRMWARE=hackrf_one_usb_ram
|
||||||
TARGET_APPLICATION=$(PATH_APPLICATION)/build/application
|
TARGET_APPLICATION=$(PATH_APPLICATION)/build/application
|
||||||
TARGET_BASEBAND=$(PATH_BASEBAND)/build/baseband
|
TARGET_BASEBAND=$(PATH_BASEBAND)/build/baseband
|
||||||
TARGET_BASEBAND_TX=$(PATH_BASEBAND_TX)/build/baseband-tx
|
# TARGET_BASEBAND_TX=$(PATH_BASEBAND_TX)/build/baseband-tx
|
||||||
|
|
||||||
MAKE_SPI_IMAGE=tools/make_spi_image.py
|
MAKE_SPI_IMAGE=tools/make_spi_image.py
|
||||||
MAKE_MODULES_FILE=tools/make_baseband_file.py
|
MAKE_MODULES_FILE=tools/make_baseband_file.py
|
||||||
@ -59,13 +59,13 @@ program: $(TARGET).bin modules
|
|||||||
sleep 1s
|
sleep 1s
|
||||||
hackrf_spiflash -w $(TARGET).bin
|
hackrf_spiflash -w $(TARGET).bin
|
||||||
|
|
||||||
modules: $(TARGET_BASEBAND).bin $(TARGET_BASEBAND_TX).bin
|
modules: $(TARGET_BASEBAND).bin # $(TARGET_BASEBAND_TX).bin
|
||||||
$(MAKE_MODULES_FILE) $(MODULES)
|
$(MAKE_MODULES_FILE) $(MODULES)
|
||||||
cp $(PATH_BASEBAND).bin ../sdcard/$(PATH_BASEBAND).bin
|
cp $(PATH_BASEBAND).bin ../sdcard/$(PATH_BASEBAND).bin
|
||||||
cp $(PATH_BASEBAND_TX).bin ../sdcard/$(PATH_BASEBAND_TX).bin
|
# cp $(PATH_BASEBAND_TX).bin ../sdcard/$(PATH_BASEBAND_TX).bin
|
||||||
|
|
||||||
$(TARGET).bin: modules $(MAKE_SPI_IMAGE) $(TARGET_BOOTSTRAP).bin $(TARGET_HACKRF_FIRMWARE).dfu $(TARGET_BASEBAND).bin $(TARGET_BASEBAND_TX).bin $(TARGET_APPLICATION).bin
|
$(TARGET).bin: modules $(MAKE_SPI_IMAGE) $(TARGET_BOOTSTRAP).bin $(TARGET_HACKRF_FIRMWARE).dfu $(TARGET_BASEBAND).bin $(TARGET_APPLICATION).bin
|
||||||
$(MAKE_SPI_IMAGE) $(TARGET_BOOTSTRAP).bin $(TARGET_HACKRF_FIRMWARE).dfu $(TARGET_BASEBAND_TX).bin $(TARGET_APPLICATION).bin $(TARGET).bin
|
$(MAKE_SPI_IMAGE) $(TARGET_BOOTSTRAP).bin $(TARGET_HACKRF_FIRMWARE).dfu $(TARGET_BASEBAND).bin $(TARGET_APPLICATION).bin $(TARGET).bin
|
||||||
|
|
||||||
$(TARGET_BOOTSTRAP).bin: $(TARGET_BOOTSTRAP).elf
|
$(TARGET_BOOTSTRAP).bin: $(TARGET_BOOTSTRAP).elf
|
||||||
$(CP) -O binary $(TARGET_BOOTSTRAP).elf $(TARGET_BOOTSTRAP).bin
|
$(CP) -O binary $(TARGET_BOOTSTRAP).elf $(TARGET_BOOTSTRAP).bin
|
||||||
|
@ -173,9 +173,6 @@ private:
|
|||||||
TouchDetected,
|
TouchDetected,
|
||||||
};
|
};
|
||||||
|
|
||||||
static float cmx;
|
|
||||||
static float cmy;
|
|
||||||
|
|
||||||
static constexpr uint32_t width_pixels = 240;
|
static constexpr uint32_t width_pixels = 240;
|
||||||
static constexpr uint32_t height_pixels = 320;
|
static constexpr uint32_t height_pixels = 320;
|
||||||
|
|
||||||
@ -183,12 +180,12 @@ private:
|
|||||||
static constexpr size_t touch_count_threshold { 4 };
|
static constexpr size_t touch_count_threshold { 4 };
|
||||||
static constexpr uint32_t touch_stable_bound { 4 };
|
static constexpr uint32_t touch_stable_bound { 4 };
|
||||||
|
|
||||||
static constexpr float calib_x_low = 0.15f;
|
static constexpr float calib_x_low = 0.07f;
|
||||||
static constexpr float calib_x_high = 0.93f;
|
static constexpr float calib_x_high = 0.94f;
|
||||||
static constexpr float calib_x_range = calib_x_high - calib_x_low;
|
static constexpr float calib_x_range = calib_x_high - calib_x_low;
|
||||||
|
|
||||||
static constexpr float calib_y_low = 0.05f;
|
static constexpr float calib_y_low = 0.04f;
|
||||||
static constexpr float calib_y_high = 0.84f;
|
static constexpr float calib_y_high = 0.91f;
|
||||||
static constexpr float calib_y_range = calib_y_high - calib_y_low;
|
static constexpr float calib_y_range = calib_y_high - calib_y_low;
|
||||||
|
|
||||||
// Ensure filter length is equal or less than touch_count_threshold,
|
// Ensure filter length is equal or less than touch_count_threshold,
|
||||||
@ -212,8 +209,6 @@ private:
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
ui::Point raw_point() const ;
|
|
||||||
|
|
||||||
void touch_started() {
|
void touch_started() {
|
||||||
fire_event(ui::TouchEvent::Type::Start);
|
fire_event(ui::TouchEvent::Type::Start);
|
||||||
}
|
}
|
||||||
@ -228,7 +223,7 @@ private:
|
|||||||
|
|
||||||
void fire_event(ui::TouchEvent::Type type) {
|
void fire_event(ui::TouchEvent::Type type) {
|
||||||
if( on_event ) {
|
if( on_event ) {
|
||||||
on_event({ filtered_point(), type, raw_point() });
|
on_event({ filtered_point(), type });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
#include "ymdata.hpp"
|
#include "ymdata.hpp"
|
||||||
|
|
||||||
#include "portapack.hpp"
|
#include "portapack.hpp"
|
||||||
|
#include "audio.hpp"
|
||||||
#include "event_m0.hpp"
|
#include "event_m0.hpp"
|
||||||
|
|
||||||
#include "ui_about.hpp"
|
#include "ui_about.hpp"
|
||||||
@ -73,7 +74,7 @@ void AboutView::on_show() {
|
|||||||
|
|
||||||
transmitter_model.set_tuning_frequency(92200000); // 92.2MHz, change !
|
transmitter_model.set_tuning_frequency(92200000); // 92.2MHz, change !
|
||||||
|
|
||||||
portapack::audio_codec.set_headphone_volume(volume_t::decibel(0 - 99) + wolfson::wm8731::headphone_gain_range.max);
|
audio::headphone::set_volume(volume_t::decibel(0 - 99) + audio::headphone::volume_range().max);
|
||||||
transmitter_model.enable();
|
transmitter_model.enable();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -350,7 +351,7 @@ void AboutView::update() {
|
|||||||
|
|
||||||
// Slowly increase volume to avoid jumpscare
|
// Slowly increase volume to avoid jumpscare
|
||||||
if (headphone_vol < (70<<2)) {
|
if (headphone_vol < (70<<2)) {
|
||||||
portapack::audio_codec.set_headphone_volume(volume_t::decibel((headphone_vol/4) - 99) + wolfson::wm8731::headphone_gain_range.max);
|
audio::headphone::set_volume(volume_t::decibel((headphone_vol/4) - 99) + audio::headphone::volume_range().max);
|
||||||
headphone_vol++;
|
headphone_vol++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
#include "ui_painter.hpp"
|
#include "ui_painter.hpp"
|
||||||
#include "ui_menu.hpp"
|
#include "ui_menu.hpp"
|
||||||
#include "ui_navigation.hpp"
|
#include "ui_navigation.hpp"
|
||||||
#include "m4_startup.hpp"
|
#include "core_control.hpp"
|
||||||
#include "ui_font_fixed_8x16.hpp"
|
#include "ui_font_fixed_8x16.hpp"
|
||||||
|
|
||||||
namespace ui {
|
namespace ui {
|
||||||
|
@ -53,19 +53,9 @@ void MenuItemView::paint(Painter& painter) {
|
|||||||
paint_style.background
|
paint_style.background
|
||||||
);
|
);
|
||||||
|
|
||||||
ui::Color final_item_color = item.color;
|
|
||||||
|
|
||||||
if (final_item_color.v == paint_style.background.v) final_item_color = paint_style.foreground;
|
|
||||||
|
|
||||||
Style text_style {
|
|
||||||
.font = paint_style.font,
|
|
||||||
.background = paint_style.background,
|
|
||||||
.foreground = final_item_color
|
|
||||||
};
|
|
||||||
|
|
||||||
painter.draw_string(
|
painter.draw_string(
|
||||||
{ static_cast<Coord>(r.pos.x + 8), static_cast<Coord>(r.pos.y + (r.size.h - font_height) / 2) },
|
{ r.pos.x + 8, r.pos.y + (r.size.h - font_height) / 2 },
|
||||||
text_style,
|
paint_style,
|
||||||
item.text
|
item.text
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,6 @@ namespace ui {
|
|||||||
|
|
||||||
struct MenuItem {
|
struct MenuItem {
|
||||||
std::string text;
|
std::string text;
|
||||||
ui::Color color;
|
|
||||||
std::function<void(void)> on_select;
|
std::function<void(void)> on_select;
|
||||||
|
|
||||||
// TODO: Prevent default-constructed MenuItems.
|
// TODO: Prevent default-constructed MenuItems.
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
|
|
||||||
#include "portapack.hpp"
|
#include "portapack.hpp"
|
||||||
#include "event_m0.hpp"
|
#include "event_m0.hpp"
|
||||||
|
#include "portapack_persistent_memory.hpp"
|
||||||
#include "splash.hpp"
|
#include "splash.hpp"
|
||||||
|
|
||||||
#include "ui_about.hpp"
|
#include "ui_about.hpp"
|
||||||
@ -299,7 +299,7 @@ BMPView::BMPView(NavigationView& nav) {
|
|||||||
|
|
||||||
button_done.on_select = [this,&nav](Button&){
|
button_done.on_select = [this,&nav](Button&){
|
||||||
nav.pop();
|
nav.pop();
|
||||||
nav.push(new SystemMenuView { nav });
|
nav.push<SystemMenuView>();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -316,7 +316,7 @@ void PlayDeadView::focus() {
|
|||||||
|
|
||||||
PlayDeadView::PlayDeadView(NavigationView& nav, bool booting) {
|
PlayDeadView::PlayDeadView(NavigationView& nav, bool booting) {
|
||||||
_booting = booting;
|
_booting = booting;
|
||||||
persistent_memory::set_playing_dead(0x59);
|
portapack::persistent_memory::set_playing_dead(0x59);
|
||||||
|
|
||||||
add_children({ {
|
add_children({ {
|
||||||
&text_playdead1,
|
&text_playdead1,
|
||||||
@ -329,8 +329,8 @@ PlayDeadView::PlayDeadView(NavigationView& nav, bool booting) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
button_done.on_select = [this,&nav](Button&){
|
button_done.on_select = [this,&nav](Button&){
|
||||||
if (sequence == persistent_memory::playdead_sequence()) {
|
if (sequence == portapack::persistent_memory::playdead_sequence()) {
|
||||||
persistent_memory::set_playing_dead(0);
|
portapack::persistent_memory::set_playing_dead(0);
|
||||||
if (_booting) {
|
if (_booting) {
|
||||||
nav.pop();
|
nav.pop();
|
||||||
nav.push<SystemMenuView>();
|
nav.push<SystemMenuView>();
|
||||||
|
@ -187,8 +187,8 @@ void SetTouchCalibView::focus() {
|
|||||||
|
|
||||||
bool SetTouchCalibView::on_touch(const TouchEvent event) {
|
bool SetTouchCalibView::on_touch(const TouchEvent event) {
|
||||||
if (event.type == ui::TouchEvent::Type::Start) {
|
if (event.type == ui::TouchEvent::Type::Start) {
|
||||||
text_debugx.set(to_string_dec_uint(round(event.rawpoint.x), 4));
|
text_debugx.set(to_string_dec_uint(round(event.point.x), 4));
|
||||||
text_debugy.set(to_string_dec_uint(round(event.rawpoint.y), 4));
|
text_debugy.set(to_string_dec_uint(round(event.point.y), 4));
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -441,6 +441,15 @@ void ModInfoView::focus() {
|
|||||||
|
|
||||||
SetupMenuView::SetupMenuView(NavigationView& nav) {
|
SetupMenuView::SetupMenuView(NavigationView& nav) {
|
||||||
add_items<7>({ {
|
add_items<7>({ {
|
||||||
|
{ "SD card modules", [&nav](){ nav.push<ModInfoView>(); } },
|
||||||
|
{ "Date/Time", [&nav](){ nav.push<SetDateTimeView>(); } },
|
||||||
|
{ "Frequency correction", [&nav](){ nav.push<SetFrequencyCorrectionView>(); } },
|
||||||
|
{ "Antenna Bias Voltage", [&nav](){ nav.push<AntennaBiasSetupView>(); } },
|
||||||
|
{ "Touch screen", [&nav](){ nav.push<SetTouchCalibView>(); } },
|
||||||
|
{ "Play dead", [&nav](){ nav.push<SetPlayDeadView>(); } },
|
||||||
|
{ "UI", [&nav](){ nav.push<SetUIView>(); } },
|
||||||
|
} });
|
||||||
|
/*add_items<7>({ {
|
||||||
{ "SD card modules", ui::Color::white(), [&nav](){ nav.push<ModInfoView>(); } },
|
{ "SD card modules", ui::Color::white(), [&nav](){ nav.push<ModInfoView>(); } },
|
||||||
{ "Date/Time", ui::Color::white(), [&nav](){ nav.push<SetDateTimeView>(); } },
|
{ "Date/Time", ui::Color::white(), [&nav](){ nav.push<SetDateTimeView>(); } },
|
||||||
{ "Frequency correction", ui::Color::white(), [&nav](){ nav.push<SetFrequencyCorrectionView>(); } },
|
{ "Frequency correction", ui::Color::white(), [&nav](){ nav.push<SetFrequencyCorrectionView>(); } },
|
||||||
@ -448,7 +457,7 @@ SetupMenuView::SetupMenuView(NavigationView& nav) {
|
|||||||
{ "Touch screen", ui::Color::white(), [&nav](){ nav.push<SetTouchCalibView>(); } },
|
{ "Touch screen", ui::Color::white(), [&nav](){ nav.push<SetTouchCalibView>(); } },
|
||||||
{ "Play dead", ui::Color::red(), [&nav](){ nav.push<SetPlayDeadView>(); } },
|
{ "Play dead", ui::Color::red(), [&nav](){ nav.push<SetPlayDeadView>(); } },
|
||||||
{ "UI", ui::Color::white(), [&nav](){ nav.push<SetUIView>(); } },
|
{ "UI", ui::Color::white(), [&nav](){ nav.push<SetUIView>(); } },
|
||||||
} });
|
} });*/
|
||||||
on_left = [&nav](){ nav.pop(); };
|
on_left = [&nav](){ nav.pop(); };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
#include "hackrf_hal.hpp"
|
#include "hackrf_hal.hpp"
|
||||||
|
|
||||||
#include "event_m0.hpp"
|
#include "event_m0.hpp"
|
||||||
|
#include "audio.hpp"
|
||||||
#include "ui_alphanum.hpp"
|
#include "ui_alphanum.hpp"
|
||||||
#include "ff.h"
|
#include "ff.h"
|
||||||
#include "hackrf_gpio.hpp"
|
#include "hackrf_gpio.hpp"
|
||||||
@ -204,7 +205,7 @@ void XylosView::journuit() {
|
|||||||
|
|
||||||
upd_message();
|
upd_message();
|
||||||
|
|
||||||
portapack::audio_codec.set_headphone_volume(volume_t::decibel(90 - 99) + wolfson::wm8731::headphone_gain_range.max);
|
audio::headphone::set_volume(volume_t::decibel(90 - 99) + audio::headphone::volume_range().max);
|
||||||
shared_memory.xylos_transmit_done = false;
|
shared_memory.xylos_transmit_done = false;
|
||||||
memcpy(shared_memory.xylosdata, ccirmessage, 21);
|
memcpy(shared_memory.xylosdata, ccirmessage, 21);
|
||||||
transmitter_model.enable();
|
transmitter_model.enable();
|
||||||
@ -326,7 +327,7 @@ XylosView::XylosView(
|
|||||||
[this,&transmitter_model](Message* const p) {
|
[this,&transmitter_model](Message* const p) {
|
||||||
const auto message = static_cast<const TXDoneMessage*>(p);
|
const auto message = static_cast<const TXDoneMessage*>(p);
|
||||||
if (message->n == 25) {
|
if (message->n == 25) {
|
||||||
portapack::audio_codec.set_headphone_volume(volume_t::decibel(0 - 99) + wolfson::wm8731::headphone_gain_range.max);
|
audio::headphone::set_volume(volume_t::decibel(0 - 99) + audio::headphone::volume_range().max);
|
||||||
transmitter_model.disable();
|
transmitter_model.disable();
|
||||||
txing = false;
|
txing = false;
|
||||||
button_txtest.set_style(&style_val);
|
button_txtest.set_style(&style_val);
|
||||||
@ -341,7 +342,7 @@ XylosView::XylosView(
|
|||||||
|
|
||||||
transmitter_model.set_tuning_frequency(xylos_freqs[options_freq.selected_index()]);
|
transmitter_model.set_tuning_frequency(xylos_freqs[options_freq.selected_index()]);
|
||||||
|
|
||||||
portapack::audio_codec.set_headphone_volume(volume_t::decibel(90 - 99) + wolfson::wm8731::headphone_gain_range.max);
|
audio::headphone::set_volume(volume_t::decibel(90 - 99) + audio::headphone::volume_range().max);
|
||||||
|
|
||||||
txing = true;
|
txing = true;
|
||||||
button_txtest.set_style(&style_cancel);
|
button_txtest.set_style(&style_cancel);
|
||||||
@ -362,7 +363,7 @@ XylosView::XylosView(
|
|||||||
char progress[21];
|
char progress[21];
|
||||||
const auto message = static_cast<const TXDoneMessage*>(p);
|
const auto message = static_cast<const TXDoneMessage*>(p);
|
||||||
if (message->n == 25) {
|
if (message->n == 25) {
|
||||||
portapack::audio_codec.set_headphone_volume(volume_t::decibel(0 - 99) + wolfson::wm8731::headphone_gain_range.max);
|
audio::headphone::set_volume(volume_t::decibel(0 - 99) + audio::headphone::volume_range().max);
|
||||||
transmitter_model.disable();
|
transmitter_model.disable();
|
||||||
for (c=0;c<20;c++)
|
for (c=0;c<20;c++)
|
||||||
progress[c] = ' ';
|
progress[c] = ' ';
|
||||||
@ -390,7 +391,7 @@ XylosView::XylosView(
|
|||||||
|
|
||||||
transmitter_model.set_tuning_frequency(xylos_freqs[options_freq.selected_index()]);
|
transmitter_model.set_tuning_frequency(xylos_freqs[options_freq.selected_index()]);
|
||||||
|
|
||||||
portapack::audio_codec.set_headphone_volume(volume_t::decibel(90 - 99) + wolfson::wm8731::headphone_gain_range.max);
|
audio::headphone::set_volume(volume_t::decibel(90 - 99) + audio::headphone::volume_range().max);
|
||||||
|
|
||||||
txing = true;
|
txing = true;
|
||||||
button_transmit.set_style(&style_cancel);
|
button_transmit.set_style(&style_cancel);
|
||||||
|
Binary file not shown.
@ -42,7 +42,6 @@
|
|||||||
|
|
||||||
#include "debug.hpp"
|
#include "debug.hpp"
|
||||||
|
|
||||||
#include "audio.hpp"
|
|
||||||
#include "audio_dma.hpp"
|
#include "audio_dma.hpp"
|
||||||
|
|
||||||
#include "gcc.hpp"
|
#include "gcc.hpp"
|
||||||
|
Binary file not shown.
@ -120,8 +120,6 @@ void BasebandThread::run() {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
delete baseband_buffer;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
BasebandProcessor* BasebandThread::create_processor(const int32_t mode) {
|
BasebandProcessor* BasebandThread::create_processor(const int32_t mode) {
|
||||||
|
@ -1,2 +1 @@
|
|||||||
const char md5_baseband[16] = {0x03,0x77,0xc0,0x0b,0x13,0x5b,0x84,0x72,0x8f,0x4b,0xbb,0x51,0x48,0x54,0x82,0xd3,};
|
const char md5_baseband[16] = {0x4a,0x99,0xbe,0xec,0x29,0x7c,0x61,0xd2,0x1d,0xc1,0xb5,0x5e,0xb4,0x16,0xae,0x5d,};
|
||||||
const char md5_baseband_tx[16] = {0xa3,0xb9,0xd4,0x35,0xb5,0xe0,0x66,0x82,0xac,0x61,0x59,0xa1,0x27,0x36,0x0b,0xfe,};
|
|
||||||
|
@ -255,7 +255,6 @@ struct TouchEvent {
|
|||||||
|
|
||||||
Point point;
|
Point point;
|
||||||
Type type;
|
Type type;
|
||||||
Point rawpoint;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} /* namespace ui */
|
} /* namespace ui */
|
||||||
|
@ -301,7 +301,7 @@ Checkbox::Checkbox(
|
|||||||
) : Widget { { parent_pos, { static_cast<ui::Dim>((8 * length) + 24), 24 } } },
|
) : Widget { { parent_pos, { static_cast<ui::Dim>((8 * length) + 24), 24 } } },
|
||||||
text_ { text }
|
text_ { text }
|
||||||
{
|
{
|
||||||
flags.focusable = true;
|
set_focusable(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Checkbox::set_text(const std::string value) {
|
void Checkbox::set_text(const std::string value) {
|
||||||
@ -325,7 +325,7 @@ bool Checkbox::value() const {
|
|||||||
void Checkbox::paint(Painter& painter) {
|
void Checkbox::paint(Painter& painter) {
|
||||||
const auto r = screen_rect();
|
const auto r = screen_rect();
|
||||||
|
|
||||||
const auto paint_style = (has_focus() || flags.highlighted) ? style().invert() : style();
|
const auto paint_style = (has_focus() || highlighted()) ? style().invert() : style();
|
||||||
|
|
||||||
painter.draw_rectangle({ r.pos.x, r.pos.y, 24, 24 }, style().foreground);
|
painter.draw_rectangle({ r.pos.x, r.pos.y, 24, 24 }, style().foreground);
|
||||||
|
|
||||||
@ -377,12 +377,12 @@ bool Checkbox::on_key(const KeyEvent key) {
|
|||||||
bool Checkbox::on_touch(const TouchEvent event) {
|
bool Checkbox::on_touch(const TouchEvent event) {
|
||||||
switch(event.type) {
|
switch(event.type) {
|
||||||
case TouchEvent::Type::Start:
|
case TouchEvent::Type::Start:
|
||||||
flags.highlighted = true;
|
set_highlighted(true);
|
||||||
set_dirty();
|
set_dirty();
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
case TouchEvent::Type::End:
|
case TouchEvent::Type::End:
|
||||||
flags.highlighted = false;
|
set_highlighted(false);
|
||||||
value_ = not value_;
|
value_ = not value_;
|
||||||
set_dirty();
|
set_dirty();
|
||||||
if( on_select ) {
|
if( on_select ) {
|
||||||
@ -393,37 +393,6 @@ bool Checkbox::on_touch(const TouchEvent event) {
|
|||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
#if 0
|
|
||||||
switch(event.type) {
|
|
||||||
case TouchEvent::Type::Start:
|
|
||||||
flags.highlighted = true;
|
|
||||||
set_dirty();
|
|
||||||
return true;
|
|
||||||
|
|
||||||
case TouchEvent::Type::Move:
|
|
||||||
{
|
|
||||||
const bool new_highlighted = screen_rect().contains(event.point);
|
|
||||||
if( flags.highlighted != new_highlighted ) {
|
|
||||||
flags.highlighted = new_highlighted;
|
|
||||||
set_dirty();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
|
|
||||||
case TouchEvent::Type::End:
|
|
||||||
if( flags.highlighted ) {
|
|
||||||
flags.highlighted = false;
|
|
||||||
set_dirty();
|
|
||||||
if( on_select ) {
|
|
||||||
on_select(*this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
|
|
||||||
default:
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Button ****************************************************************/
|
/* Button ****************************************************************/
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue
Block a user