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

📄 treectrl.h

📁 wxGTK 是 wxWidgets 的 linux GTK+ (>2.2.3)版本。wxWidgets 是一个跨平台的 GUI 框架
💻 H
📖 第 1 页 / 共 2 页
字号:
/////////////////////////////////////////////////////////////////////////////// Name:        wx/gtk/treectrl.h// Purpose:     wxTreeCtrl class// Author:      Denis Pershin// Modified by:// Created:     08/08/98// RCS-ID:      $Id: treectrl.h,v 1.23 2006/03/28 13:11:09 ABX Exp $// Copyright:   (c) Denis Pershin// Licence:     wxWindows licence/////////////////////////////////////////////////////////////////////////////#ifndef _WX_TREECTRL_H_#define _WX_TREECTRL_H_#include "wx/textctrl.h"#include "wx/imaglist.h"#include <gtk/gtk.h>// the type for "untyped" datatypedef long wxDataType;// fwd declclass  WXDLLIMPEXP_CORE wxImageList;struct wxTreeViewItem;// a callback function used for sorting tree items, it should return -1 if the// first item precedes the second, +1 if the second precedes the first or 0 if// they're equivalentclass WXDLLIMPEXP_CORE wxTreeItemData;typedef int (*wxTreeItemCmpFunc)(wxTreeItemData *item1, wxTreeItemData *item2);// ----------------------------------------------------------------------------// constants// ----------------------------------------------------------------------------// values for the `flags' parameter of wxTreeCtrl::HitTest() which determine// where exactly the specified point is situated:    // above the client area.static const int wxTREE_HITTEST_ABOVE            = 0x0001;    // below the client area.static const int wxTREE_HITTEST_BELOW            = 0x0002;    // in the client area but below the last item.static const int wxTREE_HITTEST_NOWHERE          = 0x0004;    // on the button associated with an item.static const int wxTREE_HITTEST_ONITEMBUTTON     = 0x0010;    // on the bitmap associated with an item.static const int wxTREE_HITTEST_ONITEMICON       = 0x0020;    // in the indentation associated with an item.static const int wxTREE_HITTEST_ONITEMINDENT     = 0x0040;    // on the label (string) associated with an item.static const int wxTREE_HITTEST_ONITEMLABEL      = 0x0080;    // in the area to the right of an item.static const int wxTREE_HITTEST_ONITEMRIGHT      = 0x0100;    // on the state icon for a tree view item that is in a user-defined state.static const int wxTREE_HITTEST_ONITEMSTATEICON  = 0x0200;    // to the right of the client area.static const int wxTREE_HITTEST_TOLEFT           = 0x0400;    // to the left of the client area.static const int wxTREE_HITTEST_TORIGHT          = 0x0800;    // anywhere on the itemstatic const int wxTREE_HITTEST_ONITEM  = wxTREE_HITTEST_ONITEMICON |                                          wxTREE_HITTEST_ONITEMLABEL |                                          wxTREE_HITTEST_ONITEMSTATEICON;#if WXWIN_COMPATIBILITY_2_6    // NB: all the following flags are for compatbility only and will be removed in    //     next versions    // flags for deprecated InsertItem() variant    #define wxTREE_INSERT_FIRST 0xFFFF0001    #define wxTREE_INSERT_LAST  0xFFFF0002#endif// ----------------------------------------------------------------------------// wxTreeItemId identifies an element of the tree. In this implementation, it's// just a trivial wrapper around GTK GtkTreeItem *. It's opaque for the// application.// ----------------------------------------------------------------------------class WXDLLEXPORT wxTreeItemId {public:  // ctors  wxTreeItemId() { m_itemId = NULL; }      // default copy ctor/assignment operator are ok for us  // accessors      // is this a valid tree item?  bool IsOk() const { return m_itemId != NULL; }  // conversion to/from either real (system-dependent) tree item id or  // to "long" which used to be the type for tree item ids in previous  // versions of wxWidgets  // for wxTreeCtrl usage only  wxTreeItemId(GtkTreeItem *itemId) { m_itemId = itemId; }  operator GtkTreeItem *() const { return m_itemId; }  void operator =(GtkTreeItem *item) { m_itemId = item; }protected:  GtkTreeItem *m_itemId;};// ----------------------------------------------------------------------------// wxTreeItemData is some (arbitrary) user class associated with some item. The// main advantage of having this class (compared to old untyped interface) is// that wxTreeItemData's are destroyed automatically by the tree and, as this// class has virtual dtor, it means that the memory will be automatically// freed. OTOH, we don't just use wxObject instead of wxTreeItemData because// the size of this class is critical: in any real application, each tree leaf// will have wxTreeItemData associated with it and number of leaves may be// quite big.//// Because the objects of this class are deleted by the tree, they should// always be allocated on the heap!// ----------------------------------------------------------------------------class WXDLLEXPORT wxTreeItemData : private wxTreeItemId {public:    // default ctor/copy ctor/assignment operator are ok    // dtor is virtual and all the items are deleted by the tree control when    // it's deleted, so you normally don't have to care about freeing memory    // allocated in your wxTreeItemData-derived class    virtual ~wxTreeItemData() { }    // accessors: set/get the item associated with this node    void SetId(const wxTreeItemId& id) { m_itemId = id; }    const wxTreeItemId& GetId() const { return (wxTreeItemId&) m_itemId; }};class WXDLLEXPORT wxTreeCtrl: public wxControl{public:    // creation    // --------    wxTreeCtrl() { Init(); }    wxTreeCtrl(wxWindow *parent, wxWindowID id = wxID_ANY,               const wxPoint& pos = wxDefaultPosition,               const wxSize& size = wxDefaultSize,               long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT,               const wxValidator& validator = wxDefaultValidator,               const wxString& name = "wxTreeCtrl")    {        Create(parent, id, pos, size, style, validator, name);    }    virtual ~wxTreeCtrl();    bool Create(wxWindow *parent, wxWindowID id = wxID_ANY,                const wxPoint& pos = wxDefaultPosition,                const wxSize& size = wxDefaultSize,                long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT,                const wxValidator& validator = wxDefaultValidator,                const wxString& name = "wxTreeCtrl");    // accessors    // ---------        // get the total number of items in the control    virtual unsigned int GetCount() const;        // indent is the number of pixels the children are indented relative to        // the parents position. SetIndent() also redraws the control        // immediately.    unsigned int GetIndent() const;    void SetIndent(unsigned int indent);        // image list: these functions allow to associate an image list with        // the control and retrieve it. Note that the control does _not_ delete        // the associated image list when it's deleted in order to allow image        // lists to be shared between different controls.        //        // The normal image list is for the icons which correspond to the        // normal tree item state (whether it is selected or not).        // Additionally, the application might choose to show a state icon        // which corresponds to an app-defined item state (for example,        // checked/unchecked) which are taken from the state image list.    wxImageList *GetImageList() const;    wxImageList *GetStateImageList() const;    void SetImageList(wxImageList *imageList);    void SetStateImageList(wxImageList *imageList);    // Functions to work with tree ctrl items. Unfortunately, they can _not_ be    // member functions of wxTreeItem because they must know the tree the item    // belongs to for Windows implementation and storing the pointer to    // wxTreeCtrl in each wxTreeItem is just too much waste.    // accessors    // ---------        // retrieve items label    wxString GetItemText(const wxTreeItemId& item) const;        // get the normal item image    int GetItemImage(const wxTreeItemId& item) const;        // get the data associated with the item    wxTreeItemData *GetItemData(const wxTreeItemId& item) const;    // modifiers    // ---------        // set items label    void SetItemText(const wxTreeItemId& item, const wxString& text);        // set the normal item image    void SetItemImage(const wxTreeItemId& item, int image);

⌨️ 快捷键说明

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