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

📄 menu.c

📁 ReactOS是一些高手根据Windows XP的内核编写出的类XP。内核实现机理和API函数调用几乎相同。甚至可以兼容XP的程序。喜欢研究系统内核的人可以看一看。
💻 C
字号:
/* ------------- menu.c ------------- */

#include "dflat.h"

static struct DfPopDown *FindCmd(DF_MBAR *mn, int cmd)
{
    DF_MENU *mnu = mn->PullDown;
    while (mnu->Title != (void *)-1)    {
        struct DfPopDown *pd = mnu->Selections;
        while (pd->SelectionTitle != NULL)    {
            if (pd->ActionId == cmd)
                return pd;
            pd++;
        }
        mnu++;
    }
    return NULL;
}

char *DfGetCommandText(DF_MBAR *mn, int cmd)
{
    struct DfPopDown *pd = FindCmd(mn, cmd);
    if (pd != NULL)
        return pd->SelectionTitle;
    return NULL;
}

BOOL DfIsCascadedCommand(DF_MBAR *mn, int cmd)
{
    struct DfPopDown *pd = FindCmd(mn, cmd);
    if (pd != NULL)
        return pd->Attrib & DF_CASCADED;
    return FALSE;
}

void DfActivateCommand(DF_MBAR *mn, int cmd)
{
    struct DfPopDown *pd = FindCmd(mn, cmd);
    if (pd != NULL)
        pd->Attrib &= ~DF_INACTIVE;
}

void DfDeactivateCommand(DF_MBAR *mn, int cmd)
{
    struct DfPopDown *pd = FindCmd(mn, cmd);
    if (pd != NULL)
        pd->Attrib |= DF_INACTIVE;
}

BOOL isActive(DF_MBAR *mn, int cmd)
{
    struct DfPopDown *pd = FindCmd(mn, cmd);
    if (pd != NULL)
        return !(pd->Attrib & DF_INACTIVE);
    return FALSE;
}

BOOL DfGetCommandToggle(DF_MBAR *mn, int cmd)
{
    struct DfPopDown *pd = FindCmd(mn, cmd);
    if (pd != NULL)
        return (pd->Attrib & DF_CHECKED) != 0;
    return FALSE;
}

void DfSetCommandToggle(DF_MBAR *mn, int cmd)
{
    struct DfPopDown *pd = FindCmd(mn, cmd);
    if (pd != NULL)
        pd->Attrib |= DF_CHECKED;
}

void DfClearCommandToggle(DF_MBAR *mn, int cmd)
{
    struct DfPopDown *pd = FindCmd(mn, cmd);
    if (pd != NULL)
        pd->Attrib &= ~DF_CHECKED;
}

void DfInvertCommandToggle(DF_MBAR *mn, int cmd)
{
    struct DfPopDown *pd = FindCmd(mn, cmd);
    if (pd != NULL)
        pd->Attrib ^= DF_CHECKED;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -