Home » U++ Library support » U++ Library : Other (not classified elsewhere) » Keyboard shortcut
Re: Keyboard shortcut [message #21763 is a reply to message #21760] |
Thu, 04 June 2009 15:10 |
Sender Ghost
Messages: 301 Registered: November 2008
|
Senior Member |
|
|
Hello, Sam.
I can provide you some example.
HideMenuExample.h:
#ifndef _HideMenuExample_HideMenuExample_h
#define _HideMenuExample_HideMenuExample_h
#include <CtrlLib/CtrlLib.h>
using namespace Upp;
class HideMenuExample : public TopWindow {
public:
typedef HideMenuExample CLASSNAME;
HideMenuExample();
FrameRight<Button> btn;
MenuBar menu;
// Bars
void MainBar(Bar& bar);
void FileBar(Bar& bar);
// GUI Events
void OnHideMenu();
void OnHideButton();
void OnButtonClick();
// Input Events
virtual bool Key(dword key, int count);
// Methods
String ShowButtonLabel(bool show) { if (show) return "Hide button"; else return "Show button"; }
};
#endif
HideMenuExample.cpp:
#include "HideMenuExample.h"
HideMenuExample::HideMenuExample()
{
Title("Hide menu example");
MaximizeBox().MinimizeBox().Sizeable().CenterScreen();
btn.SetLabel("?");
btn.WhenPush = THISBACK(OnButtonClick);
AddFrame(menu);
//AddFrame(TopSeparatorFrame());
menu.Set(THISBACK(MainBar));
menu.AddFrame(btn);
SetRect(0, 0, 640, 480);
}
void HideMenuExample::MainBar(Bar& bar)
{
bar.Add("File", THISBACK(FileBar));
}
void HideMenuExample::FileBar(Bar& bar)
{
bar.Add("Hide this menu", THISBACK(OnHideMenu)).Key(K_CTRL_H);
bar.Add(ShowButtonLabel(btn.IsVisible()), THISBACK(OnHideButton)).Key(K_CTRL_B);
bar.MenuSeparator();
bar.Add("Exit", THISBACK(Close)).Key(K_CTRL_Q);
}
void HideMenuExample::OnHideMenu()
{
menu.Show(!menu.IsVisible());
}
void HideMenuExample::OnHideButton()
{
btn.Show(!btn.IsVisible());
}
void HideMenuExample::OnButtonClick()
{
PromptOK("Clicked");
}
bool HideMenuExample::Key(dword key, int count)
{
if (!menu.IsVisible())
{
if (key == K_CTRL_H)
{
OnHideMenu();
return true;
}
else if (key == K_CTRL_Q)
{
Close();
//return true;
}
}
return TopWindow::Key(key, count);
}
GUI_APP_MAIN
{
HideMenuExample().Run();
}
[Updated on: Thu, 04 June 2009 15:54] Report message to a moderator
|
|
|
Goto Forum:
Current Time: Sat Jun 08 07:11:56 CEST 2024
Total time taken to generate the page: 0.02190 seconds
|