⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sgrsoftkeytoolbox.cpp

📁 一个基于BREW上的WEB service程序,通过扫描图书的条形码,登陆WEB站点,利用SOAP-RPC来查询图书信息.
💻 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 + -