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

📄 gmenu.c

📁 Graphviz - Graph Drawing Programs from AT&T Research and Lucent Bell Labs See doc/build.html for
💻 C
字号:
/* $Id: gmenu.c,v 1.3 2006/06/27 12:43:47 ellson Exp $ $Revision: 1.3 $ *//* vim:set shiftwidth=4 ts=8: *//***********************************************************      This software is part of the graphviz package      **                http://www.graphviz.org/                 **                                                         **            Copyright (c) 1994-2004 AT&T Corp.           **                and is licensed under the                **            Common Public License, Version 1.0           **                      by AT&T Corp.                      **                                                         **        Information and Software Systems Research        **              AT&T Research, Florham Park NJ             ***********************************************************//* Lefteris Koutsofios - AT&T Labs Research */#include "common.h"#include "g.h"#include "gcommon.h"#include "mem.h"#define WMU widget->u.mint GMcreatewidget (    Gwidget_t *parent, Gwidget_t *widget, int attrn, Gwattr_t *attrp) {    int ai;    for (ai = 0; ai < attrn; ai++) {        switch (attrp[ai].id) {        case G_ATTRUSERDATA:            widget->udata = attrp[ai].u.u;            break;        default:            Gerr (POS, G_ERRBADATTRID, attrp[ai].id);            return -1;        }    }    if (!(widget->w = CreatePopupMenu ())) {        Gerr (POS, G_ERRCANNOTCREATEWIDGET);        return -1;    }    WMU->count = 0;    return 0;}int GMsetwidgetattr (Gwidget_t *widget, int attrn, Gwattr_t *attrp) {    int ai;    for (ai = 0; ai < attrn; ai++) {        switch (attrp[ai].id) {        case G_ATTRUSERDATA:            widget->udata = attrp[ai].u.u;            break;        default:            Gerr (POS, G_ERRBADATTRID, attrp[ai].id);            return -1;        }    }    return 0;}int GMgetwidgetattr (Gwidget_t *widget, int attrn, Gwattr_t *attrp) {    int ai;    for (ai = 0; ai < attrn; ai++) {        switch (attrp[ai].id) {        case G_ATTRUSERDATA:            attrp[ai].u.u = widget->udata;            break;        default:            Gerr (POS, G_ERRBADATTRID, attrp[ai].id);            return -1;        }    }    return 0;}int GMdestroywidget (Gwidget_t *widget) {    DestroyMenu (widget->w);    return 0;}int GMmenuaddentries (Gwidget_t *widget, int en, char **ep) {    int ei;    for (ei = 0; ei < en; ei++)        AppendMenu (widget->w, MF_ENABLED | MF_STRING, WMU->count++, ep[ei]);    return 0;}int GMmenudisplay (Gwidget_t *parent, Gwidget_t *widget) {    MSG msg;    POINT p;    UINT flag;    /* FIXME not only right button */    menupoped = TRUE;    menuselected = -1;    GetCursorPos (&p);    if (GetAsyncKeyState (VK_LBUTTON) < 0)        flag = TPM_LEFTALIGN | TPM_LEFTBUTTON;    else        flag = TPM_LEFTALIGN | TPM_RIGHTBUTTON;    TrackPopupMenu (widget->w, flag, p.x, p.y, 0, parent->w, NULL);    PostMessage (parent->w, WM_COMMAND, 999, 0);    if (!GetMessage(&msg, parent->w, WM_COMMAND, WM_COMMAND))        panic1 (POS, "GMmenudisplay", "exit code in GetMessage");    TranslateMessage(&msg);    DispatchMessage(&msg);    Gpopdownflag = TRUE;    return menuselected;}

⌨️ 快捷键说明

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