add stuff

git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@207 b9cfdab3-6d41-4d17-bbe4-086880011989
This commit is contained in:
NishiOwO
2025-10-07 15:42:47 +00:00
parent 2129cf9cb8
commit 34cf7a4330
11 changed files with 100 additions and 2 deletions

View File

@@ -8,6 +8,7 @@ namespace MwOO {
class Menu : public MwOO::Base {
public:
Menu(const char* widget_name, MwOO::Base* parent, int x, int y, int w, int h);
MwMenu Add(MwMenu menu, const char* name);
};
} // namespace MwOO

View File

@@ -8,6 +8,9 @@ namespace MwOO {
class OpenGL : public MwOO::Base {
public:
OpenGL(const char* widget_name, MwOO::Base* parent, int x, int y, int w, int h);
void MakeCurrent(void);
void* GetProcAddress(const char* name);
void SwapBuffer(void);
};
} // namespace MwOO

View File

@@ -8,6 +8,7 @@ namespace MwOO {
class ScrollBar : public MwOO::Base {
public:
ScrollBar(const char* widget_name, MwOO::Base* parent, int x, int y, int w, int h);
int GetVisibleLength(void);
void SetAreaShown(int value);
int GetAreaShown(void);
void SetValue(int value);

View File

@@ -8,6 +8,7 @@ namespace MwOO {
class SubMenu : public MwOO::Base {
public:
SubMenu(const char* widget_name, MwOO::Base* parent, int x, int y, int w, int h);
void Appear(MwMenu menu, MwPoint* point);
};
} // namespace MwOO

View File

@@ -8,6 +8,11 @@ namespace MwOO {
class Vulkan : public MwOO::Base {
public:
Vulkan(const char* widget_name, MwOO::Base* parent, int x, int y, int w, int h);
void EnableExtension(void);
void EnableLayer(void);
void Configure(void);
void* GetField(MwVulkanField field, MwErrorEnum* out);
VkBool32 Supported(void);
};
} // namespace MwOO

View File

@@ -5,3 +5,6 @@
MwOO::Menu::Menu(const char* widget_name, MwOO::Base* parent, int x, int y, int w, int h) : MwOO::Base(MwMenuClass, widget_name, parent, x, y, w, h){
}
MwMenu MwOO::Menu::Add(MwMenu menu, const char* name){
return MwMenuAdd(this->widget, menu, name);
}

View File

@@ -5,3 +5,12 @@
MwOO::OpenGL::OpenGL(const char* widget_name, MwOO::Base* parent, int x, int y, int w, int h) : MwOO::Base(MwOpenGLClass, widget_name, parent, x, y, w, h){
}
void MwOO::OpenGL::MakeCurrent(void){
MwOpenGLMakeCurrent(this->widget);
}
void* MwOO::OpenGL::GetProcAddress(const char* name){
return MwOpenGLGetProcAddress(this->widget, name);
}
void MwOO::OpenGL::SwapBuffer(void){
MwOpenGLSwapBuffer(this->widget);
}

View File

@@ -5,6 +5,9 @@
MwOO::ScrollBar::ScrollBar(const char* widget_name, MwOO::Base* parent, int x, int y, int w, int h) : MwOO::Base(MwScrollBarClass, widget_name, parent, x, y, w, h){
}
int MwOO::ScrollBar::GetVisibleLength(void){
return MwScrollBarGetVisibleLength(this->widget);
}
void MwOO::ScrollBar::SetAreaShown(int value){
MwSetInteger(this->widget, MwNareaShown, value);
}

View File

@@ -5,3 +5,6 @@
MwOO::SubMenu::SubMenu(const char* widget_name, MwOO::Base* parent, int x, int y, int w, int h) : MwOO::Base(MwSubMenuClass, widget_name, parent, x, y, w, h){
}
void MwOO::SubMenu::Appear(MwMenu menu, MwPoint* point){
MwSubMenuAppear(this->widget, menu, point);
}

View File

@@ -5,3 +5,18 @@
MwOO::Vulkan::Vulkan(const char* widget_name, MwOO::Base* parent, int x, int y, int w, int h) : MwOO::Base(MwVulkanClass, widget_name, parent, x, y, w, h){
}
void MwOO::Vulkan::EnableExtension(void){
MwVulkanEnableExtension(this->widget);
}
void MwOO::Vulkan::EnableLayer(void){
MwVulkanEnableLayer(this->widget);
}
void MwOO::Vulkan::Configure(void){
MwVulkanConfigure(this->widget);
}
void* MwOO::Vulkan::GetField(MwVulkanField field, MwErrorEnum* out){
return MwVulkanGetField(this->widget, field, out);
}
VkBool32 MwOO::Vulkan::Supported(void){
return MwVulkanSupported(this->widget);
}

View File

@@ -44,8 +44,12 @@ foreach my $f (@files) {
$f =~ /^(.+)\.h$/;
my $name = $1;
my @props = ();
my $name = $1;
my @props = ();
my @methods = ();
my @omethods = ();
my @names = ();
my @args = ();
open(IN, "include/Mw/Widget/$f");
while (my $l = <IN>) {
@@ -54,6 +58,34 @@ foreach my $f (@files) {
if ($l =~ /%prop[ \t]+(.+)$/) {
@props = split(/[ \t]+/, $1);
}
elsif ($l =~
/^MWDECL[ \t]+(.+)[ \t]+Mw${name}([^ \t]+)[ \t]*\([^,\)]+(?:,(.*))?\);$/
)
{
my $arg = $3;
my $ret = $1;
my $nam = $2;
$arg =~ s/^[ \t]+//;
$arg =~ s/[ \t]+$//;
if (!$arg) {
$arg = "void";
}
push(@methods, "$ret $nam($arg)");
push(@omethods, "$ret MwOO::${name}::$nam($arg)");
push(@names, $nam);
my @al = split(/[ \t]*,[ \t]*/, $arg);
my $i = 0;
foreach my $dummy (@al) {
$al[$i] =~ s/^.+[ \t]+([^ \t]+)$/\1/g;
$i++;
}
push(@args, join(", ", @al));
}
}
close(IN);
@@ -71,6 +103,10 @@ foreach my $f (@files) {
" ${name}(const char* widget_name, MwOO::Base* parent, int x, int y, int w, int h);\n"
);
foreach my $m (@methods) {
print(OUT " $m;\n");
}
foreach my $prop (@props) {
my $type = "";
my %hash = ();
@@ -108,6 +144,24 @@ foreach my $f (@files) {
print(OUT "}\n");
print(OUT "\n");
my $i = 0;
foreach my $m (@omethods) {
print(OUT "$m\{\n");
if ($m =~ /^void[ \t]+/) {
print(OUT " Mw${name}" . $names[$i]);
}
else {
print(OUT " return Mw${name}" . $names[$i]);
}
if ($args[$i] eq "void") {
print(OUT "(this->widget);\n");
}
else {
print(OUT "(this->widget, " . $args[$i] . ");\n");
}
print(OUT "}\n");
$i++;
}
foreach my $prop (@props) {
my $type = "";
my $typename = "";