This site works best with JavaScript enabled. Please enable JavaScript to get the best experience from this site.
I want use button clicked events. But how o use Buton::clicked.So. Plz someone givebme a example. How to use it.
My main.cpp code is this:
#include <jni.h>
#include <dlfcn.h>
#include <android/log.h>
#include <stdlib.h>
#include <mcpe.h>
#include <substrate.h>
#include <string>
class GuiElement;
class Gui;
class Touch_TButton;
class MinecraftClient;
MinecraftClient* mcClient;
static void(*Gui_render_real)(void*, float, bool, int, int);
static void(*Touch_TButton_TButton)(Touch_TButton*, int, int, int, int, int, std::string const&, MinecraftClient*);
static void(*GuiElement_render_real)(GuiElement*, MinecraftClient*, int, int);
static void(*Button_render)(Touch_TButton*, MinecraftClient*, int, int);Touch_TButton* btn=(Touch_TButton*) operator new(0x3c);
static void GuiElement_render_hook(GuiElement* guiElement, MinecraftClient* minecraftClient, int i1, int i2)
{
mcClient=minecraftClient;
GuiElement_render_real(guiElement, minecraftClient, i1, i2);
}
static void Gui_render_hook(void* gui, float f, bool b, int i1, int i2)
Touch_TButton_TButton(btn, 2, 5, 10, 100, 25, "add new button", mcClient);
Button_render(btn, mcClient, 50, 50);Gui_render_real(gui, f, b, i1, i2);
JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved)
void* Gui_render=dlsym(RTLD_DEFAULT, "_ZN3Gui6renderEfbii");
void* GuiElement_render = dlsym(RTLD_DEFAULT, "_ZN10GuiElement6renderEP15MinecraftClientii");
Touch_TButton_TButton = (void(*)(Touch_TButton*, int, int, int, int, int, std::string const&, MinecraftClient*))dlsym(RTLD_DEFAULT,"_ZN5Touch7TButtonC2EiiiiiRKSsP15MinecraftClient");
Button_render = (void(*)(Touch_TButton*, MinecraftClient*, int, int)) dlsym(RTLD_DEFAULT,"_ZN6Button6renderEP15MinecraftClientii");
MSHookFunction(Gui_render, (void*) &Gui_render_hook, (void**) &Gui_render_real);
MSHookFunction(GuiElement_render, (void*) & GuiElement_render_hook , (void**) & GuiElement_render_real );
return JNI_VERSION_1_2;
Plz help me guys...
It's C++ code.
It's mcpe addon.
It's not ModPE.
If you wanna use Button::clicked, you should make a separate class for your button that is derived from Touch::TButton. The other way is to hook it and use some function to see if the button clicked is the custom button.
The screen have a callback method you should hook that method.
I want use button clicked events. But how o use Buton::clicked.So. Plz someone givebme a example. How to use it.
My main.cpp code is this:
#include <jni.h>
#include <dlfcn.h>
#include <android/log.h>
#include <stdlib.h>
#include <mcpe.h>
#include <substrate.h>
#include <string>
class GuiElement;
class Gui;
class Touch_TButton;
class MinecraftClient;
MinecraftClient* mcClient;
static void(*Gui_render_real)(void*, float, bool, int, int);
static void(*Touch_TButton_TButton)(Touch_TButton*, int, int, int, int, int, std::string const&, MinecraftClient*);
static void(*GuiElement_render_real)(GuiElement*, MinecraftClient*, int, int);
static void(*Button_render)(Touch_TButton*, MinecraftClient*, int, int);Touch_TButton* btn=(Touch_TButton*) operator new(0x3c);
static void GuiElement_render_hook(GuiElement* guiElement, MinecraftClient* minecraftClient, int i1, int i2)
{
mcClient=minecraftClient;
GuiElement_render_real(guiElement, minecraftClient, i1, i2);
}
static void Gui_render_hook(void* gui, float f, bool b, int i1, int i2)
{
Touch_TButton_TButton(btn, 2, 5, 10, 100, 25, "add new button", mcClient);
Button_render(btn, mcClient, 50, 50);Gui_render_real(gui, f, b, i1, i2);
}
JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved)
{
void* Gui_render=dlsym(RTLD_DEFAULT, "_ZN3Gui6renderEfbii");
void* GuiElement_render = dlsym(RTLD_DEFAULT, "_ZN10GuiElement6renderEP15MinecraftClientii");
Touch_TButton_TButton = (void(*)(Touch_TButton*, int, int, int, int, int, std::string const&, MinecraftClient*))dlsym(RTLD_DEFAULT,"_ZN5Touch7TButtonC2EiiiiiRKSsP15MinecraftClient");
Button_render = (void(*)(Touch_TButton*, MinecraftClient*, int, int)) dlsym(RTLD_DEFAULT,"_ZN6Button6renderEP15MinecraftClientii");
MSHookFunction(Gui_render, (void*) &Gui_render_hook, (void**) &Gui_render_real);
MSHookFunction(GuiElement_render, (void*) & GuiElement_render_hook , (void**) & GuiElement_render_real );
return JNI_VERSION_1_2;
}
Plz help me guys...
It's C++ code.
It's mcpe addon.
It's not ModPE.
If you wanna use Button::clicked, you should make a separate class for your button that is derived from Touch::TButton. The other way is to hook it and use some function to see if the button clicked is the custom button.
The screen have a callback method you should hook that method.