Home » Extra libraries, Code snippets, applications etc. » U++ users applications in progress and useful code snippets, including reference examples! » Mouse over button example -"catch me if you can..."
Mouse over button example -"catch me if you can..." [message #1908] |
Sun, 26 March 2006 13:48  |
 |
fudadmin
Messages: 1321 Registered: November 2005 Location: Kaunas, Lithuania
|
Ultimate Contributor Administrator |
|
|
#include <CtrlLib/CtrlLib.h>
//this demonstrates how to install some useful callbacks... :)
class MoButton : public Button {
bool wasHere;
public:
typedef MoButton CLASSNAME;
Callback WhenMouseEnter, WhenMouseLeave;
virtual void MouseEnter(Point p, dword f) {wasHere=true; WhenMouseEnter();}
virtual void MouseLeave();
void SetWasNotHere() {wasHere=false;}
MoButton(){;}
~MoButton(){;}
};
void MoButton::MouseLeave() {
if (wasHere){
ReleaseCapture(); //do I really need this?
wasHere=false;
WhenMouseLeave();
}
}
class App : public TopWindow {
MoButton opener;
TopWindow info;
public:
typedef App CLASSNAME;
void openerIn();
void openerOut();
void openerFix();
App();
};
void App::openerIn(){
info.BottomPosZ(5, 200).HSizePos(200, 200); //use it here if you want to adjust according to button pos...
if(!info.IsOpen()) { info.Open(); opener.SetFocus(); }
}
void App::openerOut(){
if(info.IsOpen()) { info.Close(); }
}
void App::openerFix(){
if(info.IsOpen()) { info.SetFocus(); opener.SetWasNotHere(); }
}
App::App() {
Add(opener.TopPosZ(5, 50).LeftPos(10, 250));
opener.SetLabel("opener test Button Mouse-In Mouse-Out");
info.Title("Catch me if you can!... :)");
opener.WhenMouseEnter = THISBACK(openerIn);
opener.WhenMouseLeave = THISBACK(openerOut);
opener.WhenPush = THISBACK(openerFix);
OpenMain();
Sizeable().Zoomable();
Title("Mouse Over Button");
}
GUI_APP_MAIN
{
App().Run();
}
feel free to critisize and improve...
[Updated on: Tue, 18 April 2006 01:26] Report message to a moderator
|
|
|
Goto Forum:
Current Time: Sat Apr 26 08:32:48 CEST 2025
Total time taken to generate the page: 0.00483 seconds
|