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

📄 xh_toolb.cpp

📁 linux下的电骡下载程序源码 包含emule协议的应用。
💻 CPP
字号:
/////////////////////////////////////////////////////////////////////////////// Name:        xh_toolb.cpp// Purpose:     XRC resource for wxBoxSizer// Author:      Vaclav Slavik// Created:     2000/08/11// RCS-ID:      $Id: xh_toolb.cpp,v 1.1 2004/03/13 04:01:17 hopeseekr Exp $// Copyright:   (c) 2000 Vaclav Slavik// Licence:     wxWindows licence///////////////////////////////////////////////////////////////////////////// #if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)#pragma implementation "xh_toolb.h"#endif// For compilers that support precompilation, includes "wx.h".#include "wx/wxprec.h"#ifdef __BORLANDC__    #pragma hdrstop#endif#include "wx/xrc/xh_toolb.h"#include "wx/toolbar.h"#include "wx/frame.h"#if wxUSE_TOOLBARwxToolBarXmlHandler::wxToolBarXmlHandler() : wxXmlResourceHandler(), m_isInside(FALSE), m_toolbar(NULL){    XRC_ADD_STYLE(wxTB_FLAT);    XRC_ADD_STYLE(wxTB_DOCKABLE);    XRC_ADD_STYLE(wxTB_VERTICAL);    XRC_ADD_STYLE(wxTB_HORIZONTAL);    XRC_ADD_STYLE(wxTB_3DBUTTONS);    XRC_ADD_STYLE(wxTB_TEXT);    XRC_ADD_STYLE(wxTB_NOICONS);    XRC_ADD_STYLE(wxTB_NODIVIDER);    XRC_ADD_STYLE(wxTB_NOALIGN);}wxObject *wxToolBarXmlHandler::DoCreateResource(){     if (m_class == wxT("tool"))    {        wxCHECK_MSG(m_toolbar, NULL, wxT("Incorrect syntax of XRC resource: tool not within a toolbar!"));                if (GetPosition() != wxDefaultPosition)        {            m_toolbar->AddTool(GetID(),                               GetBitmap(wxT("bitmap"), wxART_TOOLBAR),                               GetBitmap(wxT("bitmap2"), wxART_TOOLBAR),                               GetBool(wxT("toggle")),                               GetPosition().x,                               GetPosition().y,                               NULL,                               GetText(wxT("tooltip")),                               GetText(wxT("longhelp")));        }        else        {                    wxItemKind kind = wxITEM_NORMAL;            if (GetBool(wxT("radio")))                kind = wxITEM_RADIO;            if (GetBool(wxT("toggle")))            {                wxASSERT_MSG( kind == wxITEM_NORMAL,                              _T("can't have both toggleable and radion button at once") );                kind = wxITEM_CHECK;            }                    m_toolbar->AddTool(GetID(),                               GetText(wxT("label")),                               GetBitmap(wxT("bitmap"), wxART_TOOLBAR),                               GetBitmap(wxT("bitmap2"), wxART_TOOLBAR),                               kind,                               GetText(wxT("tooltip")),                               GetText(wxT("longhelp")));        }        return m_toolbar; // must return non-NULL    }        else if (m_class == wxT("separator"))    {        wxCHECK_MSG(m_toolbar, NULL, wxT("Incorrect syntax of XRC resource: separator not within a toolbar!"));        m_toolbar->AddSeparator();        return m_toolbar; // must return non-NULL    }        else /*<object class="wxToolBar">*/    {        int style = GetStyle(wxT("style"), wxNO_BORDER | wxTB_HORIZONTAL);#ifdef __WXMSW__        if (!(style & wxNO_BORDER)) style |= wxNO_BORDER;#endif        XRC_MAKE_INSTANCE(toolbar, wxToolBar)         toolbar->Create(m_parentAsWindow,                         GetID(),                         GetPosition(),                         GetSize(),                         style,                         GetName());        wxSize bmpsize = GetSize(wxT("bitmapsize"));        if (!(bmpsize == wxDefaultSize))            toolbar->SetToolBitmapSize(bmpsize);        wxSize margins = GetSize(wxT("margins"));        if (!(margins == wxDefaultSize))            toolbar->SetMargins(margins.x, margins.y);        long packing = GetLong(wxT("packing"), -1);        if (packing != -1)            toolbar->SetToolPacking(packing);        long separation = GetLong(wxT("separation"), -1);        if (separation != -1)            toolbar->SetToolSeparation(separation);        wxXmlNode *children_node = GetParamNode(wxT("object"));        if (!children_node)           children_node = GetParamNode(wxT("object_ref"));        if (children_node == NULL) return toolbar;        m_isInside = TRUE;        m_toolbar = toolbar;        wxXmlNode *n = children_node;        while (n)        {            if ((n->GetType() == wxXML_ELEMENT_NODE) &&                 (n->GetName() == wxT("object") || n->GetName() == wxT("object_ref")))            {                wxObject *created = CreateResFromNode(n, toolbar, NULL);                wxControl *control = wxDynamicCast(created, wxControl);                if (!IsOfClass(n, wxT("tool")) &&                    !IsOfClass(n, wxT("separator")) &&                    control != NULL)                    toolbar->AddControl(control);            }            n = n->GetNext();        }        m_isInside = FALSE;        m_toolbar = NULL;        toolbar->Realize();        // FIXME: how can I create a toolbar without immediately setting it to the frame?        if (m_parentAsWindow)        {            wxFrame *parentFrame = wxDynamicCast(m_parent, wxFrame);            if (parentFrame)                parentFrame->SetToolBar(toolbar);        }        return toolbar;    }}bool wxToolBarXmlHandler::CanHandle(wxXmlNode *node){    return ((!m_isInside && IsOfClass(node, wxT("wxToolBar"))) ||            (m_isInside && IsOfClass(node, wxT("tool"))) ||             (m_isInside && IsOfClass(node, wxT("separator"))));}#endif

⌨️ 快捷键说明

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