📄 sgrsoftkeytoolbox.cpp
字号:
//
// SGRSoftkeyToolbox.cpp
//
// This source code was automatically
// generated by SophiaFramework 3.0.
//
#include "SGRSoftkeyToolbox.hpp"
#include "SGRSoftkeyWindow.hpp"
#define DIALOG_MARGIN (12)
#define MENU_MARGIN (2)
#define LABEL_SELECT ("慖戰")
#define LABEL_CLOSE ("暵偠傞")
// 夋柺偐傜僜僼僩僉乕傪彍偄偨晹暘偺嬮宍傪曉偡
SFXRectangle SGRSoftkeyToolbox::GetWindowPosition(Void)
{
SGRSoftkeyWindowPtr softkey;
SFXRectangle result(SFRApplication::GetInstance()->GetContentWorld());
if ((softkey = SGRSoftkeyWindow::GetInstance()) != null) {
result.SubBottom(softkey->GetBaseBound().GetHeight());
}
return result;
}
// 僟僀傾儘僌偺埵抲傪寁嶼偡傞
SFXRectangle SGRSoftkeyToolbox::GetDialogPosition(SFXMarginConstRef margin, SInt16 height)
{
SGRSoftkeyWindowPtr softkey;
SFXRectangle rect(SFRApplication::GetInstance()->GetContentWorld());
SFXRectangle result(0, 0, 0, 0);
result.SetSize(rect.GetWidth() - DIALOG_MARGIN * 2 - margin.GetLeft() - margin.GetRight(), height);
result.Offset(SFXGrid(rect.GetSize() - result.GetSize()) / 2);
result.Inflate(margin);
result.AddY(margin.GetTop() - margin.GetBottom());
if ((softkey = SGRSoftkeyWindow::GetInstance()) != null) {
result.SubY(softkey->GetBaseBound().GetHeight());
}
return result;
}
// 僥僉僗僩儊僯儏乕偺嬮宍傪寁嶼偡傞
SFXRectangle SGRSoftkeyToolbox::GetMenuPosition(SInt16 limit)
{
SGRSoftkeyWindowPtr softkey;
SFXRectangle rect(SFRApplication::GetInstance()->GetContentWorld());
SInt16 height;
SFXRectangle result(0, 0, 0, 0);
height = SFXGraphics::GetFontHeight(AEE_FONT_NORMAL) + MENU_MARGIN;
if ((softkey = SGRSoftkeyWindow::GetInstance()) != null) {
rect.SubBottom(softkey->GetBaseBound().GetHeight());
}
result.SetSize(rect.GetWidth() * 3 / 4, height * limit);
result.Inflate(SFRTextMenu::GetMargin());
result.SetOrigin(0, 0);
result.Offset(SFXGrid(rect.GetSize() - result.GetSize()));
return result;
}
SFCError SGRSoftkeyToolbox::OpenStandardDialog(SFRDialogPtr dialog, SFRHandlerSPP procedure, VoidPtr reference)
{
SGRSoftkeyWindowPtr softkey;
SFCError error(SFERR_NO_ERROR);
if ((error = dialog->static_catch()) == SFERR_NO_ERROR) {
if ((error = dialog->RegisterHandler(SREVT_DIALOG, HANDLER_BEFORE, procedure, reference)) == SFERR_NO_ERROR) {
SGRSoftkeyWindow::Initialize(dialog);
if ((softkey = SGRSoftkeyWindow::GetInstance()) != null) {
if ((error = softkey->Register(dialog, SGRSoftkeyWindow::SOFTKEY_3, LABEL_SELECT)) == SFERR_NO_ERROR) {
dialog->SetReference(softkey->Bind(dialog));
}
}
}
}
if (error != SFERR_NO_ERROR) {
::delete dialog;
}
return error;
}
Void SGRSoftkeyToolbox::CloseStandardDialog(SFRDialogPtr dialog)
{
SGRSoftkeyWindow::Terminate(dialog);
dialog->DialogHandler();
return;
}
SFCError SGRSoftkeyToolbox::OpenCustomDialog(SFRDialogPtr dialog, SFRHandlerSPP procedure, VoidPtr reference)
{
SFCError error(SFERR_NO_ERROR);
if ((error = dialog->static_catch()) == SFERR_NO_ERROR) {
error = dialog->RegisterHandler(SREVT_DIALOG, HANDLER_BEFORE, procedure, reference);
}
if (error != SFERR_NO_ERROR) {
::delete dialog;
}
return error;
}
Void SGRSoftkeyToolbox::CloseCustomDialog(SFRDialogPtr dialog)
{
dialog->DialogHandler();
return;
}
SFCError SGRSoftkeyToolbox::OpenStandardMenu(SFRMenuPtr menu, SFRHandlerSPP procedure, VoidPtr reference)
{
SGRSoftkeyWindowPtr softkey;
SFCError error(SFERR_NO_ERROR);
if ((error = menu->static_catch()) == SFERR_NO_ERROR) {
if ((error = menu->RegisterHandler(SREVT_MENU, HANDLER_BEFORE, procedure, reference)) == SFERR_NO_ERROR) {
if ((error = menu->RegisterHandler(static_cast<SFCEventEnum>(SGRSoftkeyWindow::USEREVT_SOFTKEY), HANDLER_AFTER, OnSoftkeySHP, menu)) == SFERR_NO_ERROR) {
SGRSoftkeyWindow::Initialize(menu);
if ((softkey = SGRSoftkeyWindow::GetInstance()) != null) {
if ((error = softkey->Register(menu, SGRSoftkeyWindow::SOFTKEY_2, LABEL_CLOSE)) == SFERR_NO_ERROR) {
if ((error = softkey->Register(menu, SGRSoftkeyWindow::SOFTKEY_3, LABEL_SELECT)) == SFERR_NO_ERROR) {
menu->SetReference(softkey->Bind(menu));
}
}
}
}
}
}
return error;
}
Void SGRSoftkeyToolbox::CloseStandardMenu(SFRMenuPtr menu)
{
SGRSoftkeyWindow::Terminate(menu);
menu->MenuHandler();
return;
}
Bool SGRSoftkeyToolbox::OnSoftkeySHP(SFXEventConstRef event, VoidPtr reference)
{
SFRMenuPtr menu;
switch (event.GetP16()) {
case SGRSoftkeyWindow::SOFTKEY_2:
menu = static_cast<SFRMenuPtr>(reference);
menu->Invoke(SFXEvent(SREVT_MENU, SRP16_CANCEL, reinterpret_cast<UInt32>(menu)));
break;
}
return true;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -