From bcf9f8a123fb39ca905b9ace61c551f6a9e1cf26 Mon Sep 17 00:00:00 2001 From: Nishi Date: Mon, 14 Sep 2026 03:22:51 +0900 Subject: [PATCH] update --- bindgen.cc | 2 ++ include/MwCXX/Widget/All.h | 2 ++ include/MwCXX/Widget/Chart.h | 30 ++++++++++++++++ include/MwCXX/Widget/Clock.h | 27 ++++++++++++++ include/MwCXX/Widget/ComboBox.h | 5 ++- include/MwCXX/Widget/Frame.h | 2 ++ include/MwCXX/Widget/Tab.h | 1 + objs.mk | 2 +- src/widget/chart.cc | 63 +++++++++++++++++++++++++++++++++ src/widget/clock.cc | 37 +++++++++++++++++++ src/widget/combobox.cc | 39 ++++++++++++++++++-- src/widget/frame.cc | 8 +++++ src/widget/tab.cc | 11 ++++++ 13 files changed, 225 insertions(+), 4 deletions(-) create mode 100644 include/MwCXX/Widget/Chart.h create mode 100644 include/MwCXX/Widget/Clock.h create mode 100644 src/widget/chart.cc create mode 100644 src/widget/clock.cc diff --git a/bindgen.cc b/bindgen.cc index 0ec1ab8..56c9b38 100644 --- a/bindgen.cc +++ b/bindgen.cc @@ -41,6 +41,8 @@ static std::string get_ctype(typeinfo type, int name = 1, int do_ptr = 1) { ret += "int"; } else if(type.type == "short") { ret += "short"; + } else if(type.type == "double") { + ret += "double"; } else if(type.type == "string") { ret += "MwCXX::String"; } else if(type.type == "pixmap") { diff --git a/include/MwCXX/Widget/All.h b/include/MwCXX/Widget/All.h index 56d6aa3..f4f06f1 100644 --- a/include/MwCXX/Widget/All.h +++ b/include/MwCXX/Widget/All.h @@ -4,7 +4,9 @@ #include #include #include +#include #include +#include #include #include #include diff --git a/include/MwCXX/Widget/Chart.h b/include/MwCXX/Widget/Chart.h new file mode 100644 index 0000000..71210e8 --- /dev/null +++ b/include/MwCXX/Widget/Chart.h @@ -0,0 +1,30 @@ +#ifndef __MWCXX_WIDGET_CHART_H__ +#define __MWCXX_WIDGET_CHART_H__ + +#include +#include + +#include + +namespace MwCXX { + class Chart : public MwCXX::Base { + protected: + virtual void RegisterHandlers(); + + public: + Chart(MwWidget widget, MwCXX::Base* parent = NULL); + Chart(MwCXX::String name, MwCXX::Base* parent, int x, int y, unsigned int width, unsigned int height); + + int GetType(); + void SetType(int value); + int GetMinValue(); + void SetMinValue(int value); + int GetMaxValue(); + void SetMaxValue(int value); + + int Set(int index, MwCXX::String text, double value, MwCXX::String color); + void Delete(int index); + }; +}; // namespace MwCXX + +#endif diff --git a/include/MwCXX/Widget/Clock.h b/include/MwCXX/Widget/Clock.h new file mode 100644 index 0000000..f7a79d4 --- /dev/null +++ b/include/MwCXX/Widget/Clock.h @@ -0,0 +1,27 @@ +#ifndef __MWCXX_WIDGET_CLOCK_H__ +#define __MWCXX_WIDGET_CLOCK_H__ + +#include +#include + +#include + +namespace MwCXX { + class Clock : public MwCXX::Base { + protected: + virtual void RegisterHandlers(); + + public: + Clock(MwWidget widget, MwCXX::Base* parent = NULL); + Clock(MwCXX::String name, MwCXX::Base* parent, int x, int y, unsigned int width, unsigned int height); + + int GetHour(); + void SetHour(int value); + int GetMinute(); + void SetMinute(int value); + int GetSecond(); + void SetSecond(int value); + }; +}; // namespace MwCXX + +#endif diff --git a/include/MwCXX/Widget/ComboBox.h b/include/MwCXX/Widget/ComboBox.h index 96f96d0..d1f5228 100644 --- a/include/MwCXX/Widget/ComboBox.h +++ b/include/MwCXX/Widget/ComboBox.h @@ -24,7 +24,10 @@ namespace MwCXX { void (*ComboBoxChangedHandler)(MwCXX::ComboBox* widget, int value); - void Add(); + void Add(int index, MwCXX::String text); + MwCXX::String Get(int index, MwCXX::String text); + void Delete(int index); + void Reset(); }; }; // namespace MwCXX diff --git a/include/MwCXX/Widget/Frame.h b/include/MwCXX/Widget/Frame.h index a430c0c..5ac32f4 100644 --- a/include/MwCXX/Widget/Frame.h +++ b/include/MwCXX/Widget/Frame.h @@ -19,6 +19,8 @@ namespace MwCXX { void SetHasBorder(int value); int GetInverted(); void SetInverted(int value); + MwLLPixmap GetIconPixmap(); + void SetIconPixmap(MwLLPixmap value); }; }; // namespace MwCXX diff --git a/include/MwCXX/Widget/Tab.h b/include/MwCXX/Widget/Tab.h index ed996ea..7b39eb5 100644 --- a/include/MwCXX/Widget/Tab.h +++ b/include/MwCXX/Widget/Tab.h @@ -24,6 +24,7 @@ namespace MwCXX { MwCXX::Base* Add(MwCXX::String name); MwCXX::Base* GetFrame(MwCXX::String name); + void Focus(MwCXX::String name); }; }; // namespace MwCXX diff --git a/objs.mk b/objs.mk index 9e9e8b4..1d3b35f 100644 --- a/objs.mk +++ b/objs.mk @@ -1 +1 @@ -OBJS += src/dialog/colorpicker.o src/dialog/filechooser.o src/dialog/directorychooser.o src/dialog/messagebox.o src/widget/baseauto.o src/widget/box.o src/widget/button.o src/widget/calendar.o src/widget/checkbox.o src/widget/entry.o src/widget/frame.o src/widget/image.o src/widget/label.o src/widget/listbox.o src/widget/menu.o src/widget/numberentry.o src/widget/scrollbar.o src/widget/submenu.o src/widget/viewport.o src/widget/window.o src/widget/progressbar.o src/widget/radiobox.o src/widget/combobox.o src/widget/treeview.o src/widget/subwindow.o src/widget/table.o src/widget/tab.o src/widget/opengl.o src/widget/vulkan.o +OBJS += src/dialog/colorpicker.o src/dialog/filechooser.o src/dialog/directorychooser.o src/dialog/messagebox.o src/widget/baseauto.o src/widget/box.o src/widget/button.o src/widget/calendar.o src/widget/chart.o src/widget/checkbox.o src/widget/clock.o src/widget/entry.o src/widget/frame.o src/widget/image.o src/widget/label.o src/widget/listbox.o src/widget/menu.o src/widget/numberentry.o src/widget/scrollbar.o src/widget/submenu.o src/widget/viewport.o src/widget/window.o src/widget/progressbar.o src/widget/radiobox.o src/widget/combobox.o src/widget/treeview.o src/widget/subwindow.o src/widget/table.o src/widget/tab.o src/widget/opengl.o src/widget/vulkan.o diff --git a/src/widget/chart.cc b/src/widget/chart.cc new file mode 100644 index 0000000..b22c992 --- /dev/null +++ b/src/widget/chart.cc @@ -0,0 +1,63 @@ +#include + +MwCXX::Chart::Chart(MwWidget widget, MwCXX::Base* parent) : MwCXX::Base(widget, parent) { + this->RegisterHandlers(); +} + +MwCXX::Chart::Chart(MwCXX::String name, MwCXX::Base* parent, int x, int y, unsigned int width, unsigned int height) : MwCXX::Base(MwChartClass, name, parent, x, y, width, height) { + this->RegisterHandlers(); +} + +int MwCXX::Chart::GetType() { + return (int)MwGetInteger(this->widget, MwNtype); +} + +void MwCXX::Chart::SetType(int value) { + MwSetInteger(this->widget, MwNtype, (int)value); +} + +int MwCXX::Chart::GetMinValue() { + return (int)MwGetInteger(this->widget, MwNminValue); +} + +void MwCXX::Chart::SetMinValue(int value) { + MwSetInteger(this->widget, MwNminValue, (int)value); +} + +int MwCXX::Chart::GetMaxValue() { + return (int)MwGetInteger(this->widget, MwNmaxValue); +} + +void MwCXX::Chart::SetMaxValue(int value) { + MwSetInteger(this->widget, MwNmaxValue, (int)value); +} + +void MwCXX::Chart::RegisterHandlers() { +} + +int MwCXX::Chart::Set(int index, MwCXX::String text, double value, MwCXX::String color) + { + int out; + + MwVaWidgetExecute(this->widget, "mwChartSet", &out, index, +#ifdef MWCXX_USE_C_STRING + text +#else + text.c_str() +#endif +, value, +#ifdef MWCXX_USE_C_STRING + color +#else + color.c_str() +#endif + ); + + return out; +} + +void MwCXX::Chart::Delete(int index) + { + MwVaWidgetExecute(this->widget, "mwChartDelete", NULL, index ); +} + diff --git a/src/widget/clock.cc b/src/widget/clock.cc new file mode 100644 index 0000000..bc39d42 --- /dev/null +++ b/src/widget/clock.cc @@ -0,0 +1,37 @@ +#include + +MwCXX::Clock::Clock(MwWidget widget, MwCXX::Base* parent) : MwCXX::Base(widget, parent) { + this->RegisterHandlers(); +} + +MwCXX::Clock::Clock(MwCXX::String name, MwCXX::Base* parent, int x, int y, unsigned int width, unsigned int height) : MwCXX::Base(MwClockClass, name, parent, x, y, width, height) { + this->RegisterHandlers(); +} + +int MwCXX::Clock::GetHour() { + return (int)MwGetInteger(this->widget, MwNhour); +} + +void MwCXX::Clock::SetHour(int value) { + MwSetInteger(this->widget, MwNhour, (int)value); +} + +int MwCXX::Clock::GetMinute() { + return (int)MwGetInteger(this->widget, MwNminute); +} + +void MwCXX::Clock::SetMinute(int value) { + MwSetInteger(this->widget, MwNminute, (int)value); +} + +int MwCXX::Clock::GetSecond() { + return (int)MwGetInteger(this->widget, MwNsecond); +} + +void MwCXX::Clock::SetSecond(int value) { + MwSetInteger(this->widget, MwNsecond, (int)value); +} + +void MwCXX::Clock::RegisterHandlers() { +} + diff --git a/src/widget/combobox.cc b/src/widget/combobox.cc index b7d50df..0d4bad7 100644 --- a/src/widget/combobox.cc +++ b/src/widget/combobox.cc @@ -35,8 +35,43 @@ void MwCXX::ComboBox::RegisterHandlers() { this->ComboBoxChangedHandler = NULL; } -void MwCXX::ComboBox::Add() +void MwCXX::ComboBox::Add(int index, MwCXX::String text) { - MwVaWidgetExecute(this->widget, "mwComboBoxAdd", NULL ); + MwVaWidgetExecute(this->widget, "mwComboBoxAdd", NULL, index, +#ifdef MWCXX_USE_C_STRING + text +#else + text.c_str() +#endif + ); +} + +MwCXX::String MwCXX::ComboBox::Get(int index, MwCXX::String text) + { + char* out; + + MwVaWidgetExecute(this->widget, "mwComboBoxGet", &out, index, +#ifdef MWCXX_USE_C_STRING + text +#else + text.c_str() +#endif + ); + +#ifdef MWCXX_USE_C_STRING + return out; +#else + return MwCXX::String(out); +#endif +} + +void MwCXX::ComboBox::Delete(int index) + { + MwVaWidgetExecute(this->widget, "mwComboBoxDelete", NULL, index ); +} + +void MwCXX::ComboBox::Reset() + { + MwVaWidgetExecute(this->widget, "mwComboBoxReset", NULL ); } diff --git a/src/widget/frame.cc b/src/widget/frame.cc index ad1286a..de08da4 100644 --- a/src/widget/frame.cc +++ b/src/widget/frame.cc @@ -24,6 +24,14 @@ void MwCXX::Frame::SetInverted(int value) { MwSetInteger(this->widget, MwNinverted, (int)value); } +MwLLPixmap MwCXX::Frame::GetIconPixmap() { + return (MwLLPixmap)MwGetVoid(this->widget, MwNiconPixmap); +} + +void MwCXX::Frame::SetIconPixmap(MwLLPixmap value) { + MwSetVoid(this->widget, MwNiconPixmap, (MwLLPixmap)value); +} + void MwCXX::Frame::RegisterHandlers() { } diff --git a/src/widget/tab.cc b/src/widget/tab.cc index 8ff1b4d..09aae38 100644 --- a/src/widget/tab.cc +++ b/src/widget/tab.cc @@ -57,3 +57,14 @@ MwCXX::Base* MwCXX::Tab::GetFrame(MwCXX::String name) return out; } +void MwCXX::Tab::Focus(MwCXX::String name) + { + MwVaWidgetExecute(this->widget, "mwTabFocus", NULL, +#ifdef MWCXX_USE_C_STRING + name +#else + name.c_str() +#endif + ); +} +