Okay a couple of things that might help.
The debugger works in .ino and .cpp but not currently in .h files.
Normally it is expect that a .h simply includes the prototypes and the .cpp the code.
Other user might find this useful. I would avoid using the far pointers. If you want your classes to be static (onloy ever one instance then please say because there are other ways to do that.
Right click the project and select "Add>New Arduino Class and Header". At the prompt that appears enter "MyButtonClass" and click OK
Look at the .cpp and .h that have been created. You will find that in your loop() you can use this code:-
void setup()
{
MyButton.init();
}
Note that at the bottom of each file the MyButton object is created. The header shows it as an "extern" prototype you won't need these entries if you create the object in the same code file where it is to be used.
For example we could create a second instance of the class called MyButton2 in the .ino code like this:-
MyButtonClass MyButton2;
void setup()
{
MyButton2.init();
}
If I declare and add one to variable "i" in the MyButtonClass::init() method of the .cpp and add a debug breakpoint the debugger stops on the line of code after MyButton.init() has been hit.
#include "MyButtonClass.h"
int i;
void MyButtonClass::init()
{
i++;
}