亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? menu.h

?? 浙江大學的悟空嵌入式系統模擬器
?? H
字號:
///////////////////////////////////////////////////////////////////////////////
// Name:        wx/univ/menu.h
// Purpose:     wxMenu and wxMenuBar classes for wxUniversal
// Author:      Vadim Zeitlin
// Modified by:
// Created:     05.05.01
// RCS-ID:      $Id: menu.h,v 1.1 2005/03/16 06:50:11 kehc Exp $
// Copyright:   (c) 2001 SciTech Software, Inc. (www.scitechsoft.com)
// Licence:     wxWindows licence
///////////////////////////////////////////////////////////////////////////////

#ifndef _WX_UNIV_MENU_H_
#define _WX_UNIV_MENU_H_

#ifdef __GNUG__
    #pragma interface "univmenu.h"
#endif

#if wxUSE_ACCEL
    #include "wx/accel.h"
#endif // wxUSE_ACCEL

#include "wx/dynarray.h"

// fwd declarations
class WXDLLEXPORT wxMenuInfo;
WX_DECLARE_OBJARRAY(wxMenuInfo, wxMenuInfoArray);

class WXDLLEXPORT wxMenuGeometryInfo;
class WXDLLEXPORT wxPopupMenuWindow;
class WXDLLEXPORT wxRenderer;

// ----------------------------------------------------------------------------
// wxMenu
// ----------------------------------------------------------------------------

class WXDLLEXPORT wxMenu : public wxMenuBase
{
public:
    // ctors and dtor
    wxMenu(const wxString& title, long style = 0)
        : wxMenuBase(title, style) { Init(); }

    wxMenu(long style = 0) : wxMenuBase(style) { Init(); }

    virtual ~wxMenu();

    // called by wxMenuItem when an item of this menu changes
    void RefreshItem(wxMenuItem *item);

    // does the menu have any items?
    bool IsEmpty() const { return !GetMenuItems().GetFirst(); }

    // show this menu at the given position (in screen coords) and optionally
    // select its first item
    void Popup(const wxPoint& pos, const wxSize& size,
               bool selectFirst = TRUE);

    // dismiss the menu
    void Dismiss();

    // override the base class methods to connect/disconnect event handlers
    virtual void Attach(wxMenuBarBase *menubar);
    virtual void Detach();

    // implementation only from here

    // do as if this item were clicked, return TRUE if the resulting event was
    // processed, FALSE otherwise
    bool ClickItem(wxMenuItem *item);

    // process the key event, return TRUE if done
    bool ProcessKeyDown(int key);

#if wxUSE_ACCEL
    // find the item for the given accel and generate an event if found
    bool ProcessAccelEvent(const wxKeyEvent& event);
#endif // wxUSE_ACCEL

protected:
    // implement base class virtuals
    virtual bool DoAppend(wxMenuItem *item);
    virtual bool DoInsert(size_t pos, wxMenuItem *item);
    virtual wxMenuItem *DoRemove(wxMenuItem *item);

    // common part of DoAppend and DoInsert
    void OnItemAdded(wxMenuItem *item);

    // called by wxPopupMenuWindow when the window is hidden
    void OnDismiss(bool dismissParent);

    // return true if the menu is currently shown on screen
    bool IsShown() const;

    // get the menu geometry info
    const wxMenuGeometryInfo& GetGeometryInfo() const;

    // forget old menu geometry info
    void InvalidateGeometryInfo();

    // return either the menubar or the invoking window, normally never NULL
    wxWindow *GetRootWindow() const;

    // get the renderer we use for drawing: either the one of the menu bar or
    // the one of the window if we're a popup menu
    wxRenderer *GetRenderer() const;

#if wxUSE_ACCEL
    // add/remove accel for the given menu item
    void AddAccelFor(wxMenuItem *item);
    void RemoveAccelFor(wxMenuItem *item);
#endif // wxUSE_ACCEL

private:
    // common part of all ctors
    void Init();

    // the exact menu geometry is defined by a struct derived from this one
    // which is opaque and defined by the renderer
    wxMenuGeometryInfo *m_geometry;

    // the menu shown on screen or NULL if not currently shown
    wxPopupMenuWindow *m_popupMenu;

#if wxUSE_ACCEL
    // the accel table for this menu
    wxAcceleratorTable m_accelTable;
#endif // wxUSE_ACCEL

    // it calls out OnDismiss()
    friend class wxPopupMenuWindow;
    DECLARE_DYNAMIC_CLASS(wxMenu)
};

// ----------------------------------------------------------------------------
// wxMenuBar
// ----------------------------------------------------------------------------

class WXDLLEXPORT wxMenuBar : public wxMenuBarBase
{
public:
    // ctors and dtor
    wxMenuBar(long WXUNUSED(style) = 0) { Init(); }
    virtual ~wxMenuBar();

    // implement base class virtuals
    virtual bool Append( wxMenu *menu, const wxString &title );
    virtual bool Insert(size_t pos, wxMenu *menu, const wxString& title);
    virtual wxMenu *Replace(size_t pos, wxMenu *menu, const wxString& title);
    virtual wxMenu *Remove(size_t pos);

    virtual void EnableTop(size_t pos, bool enable);
    virtual bool IsEnabledTop(size_t pos) const;

    virtual void SetLabelTop(size_t pos, const wxString& label);
    virtual wxString GetLabelTop(size_t pos) const;

    virtual void Attach(wxFrame *frame);
    virtual void Detach();

    // get the next item for the givan accel letter (used by wxFrame), return
    // -1 if none
    //
    // if unique is not NULL, filled with TRUE if there is only one item with
    // this accel, FALSE if two or more
    int FindNextItemForAccel(int idxStart,
                             int keycode,
                             bool *unique = NULL) const;

    // called by wxFrame to set focus to or open the given menu
    void SelectMenu(size_t pos);
    void PopupMenu(size_t pos);

#if wxUSE_ACCEL
    // find the item for the given accel and generate an event if found
    bool ProcessAccelEvent(const wxKeyEvent& event);
#endif // wxUSE_ACCEL

    // called by wxMenu when it is dismissed
    void OnDismissMenu(bool dismissMenuBar = FALSE);

protected:
    // common part of all ctors
    void Init();

    // event handlers
    void OnLeftDown(wxMouseEvent& event);
    void OnMouseMove(wxMouseEvent& event);
    void OnKeyDown(wxKeyEvent& event);
    void OnKillFocus(wxFocusEvent& event);

    // process the mouse move event, return TRUE if we did, FALSE to continue
    // processing as usual
    //
    // the coordinates are client coordinates of menubar, convert if necessary
    bool ProcessMouseEvent(const wxPoint& pt);

    // called when the menu bar loses mouse capture - it is not hidden unlike
    // menus, but it doesn't have modal status any longer
    void OnDismiss();

    // draw the menubar
    virtual void DoDraw(wxControlRenderer *renderer);

    // menubar geometry
    virtual wxSize DoGetBestClientSize() const;

    // has the menubar been created already?
    bool IsCreated() const { return m_frameLast != NULL; }

    // "fast" version of GetMenuCount()
    size_t GetCount() const { return m_menuInfos.GetCount(); }

    // get the (total) width of the specified menu
    wxCoord GetItemWidth(size_t pos) const;

    // get the rect of the item
    wxRect GetItemRect(size_t pos) const;

    // get the menu from the given point or -1 if none
    int GetMenuFromPoint(const wxPoint& pos) const;

    // refresh the given item
    void RefreshItem(size_t pos);

    // refresh all items after this one (including it)
    void RefreshAllItemsAfter(size_t pos);

    // hide the currently shown menu and show this one
    void DoSelectMenu(size_t pos);

    // popup the currently selected menu
    void PopupCurrentMenu(bool selectFirst = TRUE);

    // hide the currently selected menu
    void DismissMenu();

    // do we show a menu currently?
    bool IsShowingMenu() const { return m_menuShown != 0; }

    // we don't want to have focus except while selecting from menu
    void GiveAwayFocus();

    // the array containing extra menu info we need
    wxMenuInfoArray m_menuInfos;

    // the current item (only used when menubar has focus)
    int m_current;

private:
    // the last frame to which we were attached, NULL initially
    wxFrame *m_frameLast;

    // the currently shown menu or NULL
    wxMenu *m_menuShown;

    // should be showing the menu? this is subtly different from m_menuShown !=
    // NULL as the menu which should be shown may be disabled in which case we
    // don't show it - but will do as soon as the focus shifts to another menu
    bool m_shouldShowMenu;

    // it calls out ProcessMouseEvent()
    friend class wxPopupMenuWindow;

    DECLARE_EVENT_TABLE()
    DECLARE_DYNAMIC_CLASS(wxMenuBar)
};

#endif // _WX_UNIV_MENU_H_

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
豆国产96在线|亚洲| ㊣最新国产の精品bt伙计久久| 91精品国产入口在线| 欧美精品一区二区三| 一区二区三区在线视频观看| 国产资源精品在线观看| 欧美性受极品xxxx喷水| 中文天堂在线一区| 国内一区二区视频| 日韩一区二区视频在线观看| 一级精品视频在线观看宜春院| 精品在线观看免费| 欧美乱妇15p| 一区二区三区高清不卡| 成人的网站免费观看| 日韩欧美一区电影| 视频在线观看国产精品| 日本韩国精品在线| 亚洲精品免费一二三区| heyzo一本久久综合| 国产欧美日韩久久| 国产一区二区0| 精品电影一区二区| 久久国产夜色精品鲁鲁99| 国产精品影音先锋| 一级日本不卡的影视| 91一区二区三区在线播放| 国产喂奶挤奶一区二区三区| 国产精品亚洲一区二区三区在线 | 日韩成人一区二区| 精品视频全国免费看| 亚洲一二三四在线| 欧美亚洲综合色| 一级做a爱片久久| 欧美日韩日日夜夜| 日韩精品亚洲专区| 欧美一区二区三区视频免费播放| 日韩激情视频网站| 欧美大片日本大片免费观看| 久久精品国产99国产精品| 精品精品欲导航| 国产一区二区不卡| 亚洲视频免费看| 欧美在线|欧美| 日本成人超碰在线观看| 欧美电影免费观看完整版| 精品一区二区三区香蕉蜜桃| 久久久久久久久久久黄色| 国产成人av电影在线观看| 17c精品麻豆一区二区免费| 日本精品视频一区二区| 午夜精品久久久久影视| 欧美一区二区三区系列电影| 国产乱理伦片在线观看夜一区 | 欧美成人高清电影在线| 日本成人在线电影网| 日韩精品一区二区三区视频| 国产精品888| 亚洲精品中文字幕乱码三区| 欧美日韩一本到| 久久国产精品99精品国产| 久久久久国产免费免费| 不卡一卡二卡三乱码免费网站| 夜夜嗨av一区二区三区网页| 日韩视频中午一区| 亚洲欧洲日韩在线| 91福利在线免费观看| 日韩精品三区四区| 精品99一区二区三区| 99久久精品99国产精品| 免费观看在线色综合| 国产精品美女久久福利网站| 这里只有精品99re| 成a人片亚洲日本久久| 久久草av在线| 一区二区三区精品在线观看| 久久理论电影网| 欧美高清性hdvideosex| 成人app下载| 国内一区二区视频| 亚洲一区二区免费视频| 欧美激情一区二区三区| 欧美一区二区三区喷汁尤物| 99国产精品久久久久| 久久成人免费网| 亚洲午夜一区二区| 国产精品美女久久福利网站| 精品国产乱码久久久久久1区2区| 91久久精品午夜一区二区| 风间由美一区二区av101| 免费在线观看成人| 一区二区三区中文免费| 国产精品入口麻豆九色| 精品国产一区二区三区久久久蜜月 | 久久久天堂av| 日韩一区二区三免费高清| 日本精品一区二区三区四区的功能| 激情六月婷婷久久| 一区二区三区四区激情| 国产精品欧美久久久久无广告 | 久久―日本道色综合久久| 欧美久久久一区| 欧美综合在线视频| 91一区二区三区在线观看| 国产成人午夜视频| 国产麻豆午夜三级精品| 久久精品免费看| 麻豆91精品视频| 日韩中文字幕一区二区三区| 制服丝袜成人动漫| 欧美日韩综合不卡| 在线观看成人小视频| av亚洲产国偷v产偷v自拍| 久久99在线观看| 久久精品国产第一区二区三区| 日韩经典中文字幕一区| 视频在线观看一区二区三区| 日精品一区二区三区| 午夜亚洲福利老司机| 亚洲成人你懂的| 日韩中文字幕一区二区三区| 麻豆国产精品官网| 激情综合色播五月| 国产美女在线观看一区| 国产成人精品免费视频网站| 国模大尺度一区二区三区| 另类专区欧美蜜桃臀第一页| 久久精品理论片| 国产精品456露脸| 国产91精品露脸国语对白| av一本久道久久综合久久鬼色| 91极品美女在线| 8v天堂国产在线一区二区| 日韩女优毛片在线| 国产欧美一区二区精品秋霞影院| 国产精品视频九色porn| 一个色妞综合视频在线观看| 日本最新不卡在线| 国产精品18久久久久久久久久久久| 粉嫩蜜臀av国产精品网站| 99久久免费国产| 91超碰这里只有精品国产| 精品剧情在线观看| 亚洲人吸女人奶水| 免费三级欧美电影| 成人永久aaa| 欧美日韩国产综合一区二区| 日韩欧美专区在线| 日韩一区在线免费观看| 亚洲一区二区三区三| 免费av成人在线| 高清shemale亚洲人妖| 91麻豆国产精品久久| 精品毛片乱码1区2区3区| 亚洲欧洲国产日本综合| 日韩精品三区四区| 97久久超碰精品国产| 91精品国产综合久久久蜜臀图片 | 欧美日韩在线一区二区| 狠狠色伊人亚洲综合成人| 91蝌蚪porny| 国产午夜精品一区二区三区四区| 亚洲六月丁香色婷婷综合久久| 麻豆一区二区在线| 欧美亚洲图片小说| 亚洲国产电影在线观看| 日韩电影在线看| 成人不卡免费av| 欧美夫妻性生活| 中文一区二区完整视频在线观看| 亚洲va欧美va人人爽午夜| 不卡的电视剧免费网站有什么| 91精品国产综合久久精品图片| 中文幕一区二区三区久久蜜桃| 美国精品在线观看| 欧美日韩一区二区不卡| 欧美国产一区二区在线观看| 老色鬼精品视频在线观看播放| 欧美调教femdomvk| 中文字幕亚洲精品在线观看| 国产精品综合二区| 日韩一级黄色片| 天天色 色综合| 91在线视频在线| 国产校园另类小说区| 美女mm1313爽爽久久久蜜臀| 欧美日韩日本视频| 一区二区三区国产精品| 97久久久精品综合88久久| 精品精品国产高清一毛片一天堂| 午夜国产精品影院在线观看| 在线观看精品一区| 伊人性伊人情综合网| 99视频在线精品| 久久久久99精品一区| 国产福利精品导航| 欧美高清在线一区| 成人国产精品免费网站| 久久蜜臀精品av| 精品亚洲porn|