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

📄 foldpanelbartest.cpp

📁 很牛的GUI源码wxWidgets-2.8.0.zip 可在多种平台下运行.
💻 CPP
字号:
/////////////////////////////////////////////////////////////////////////////// Name:        foldpanelbartest.cpp// Purpose:// Author:      Jorgen Bodde// Modified by: ABX - 19/12/2004 : possibility of horizontal orientation//                               : wxWidgets coding standards// Created:     18/06/2004// RCS-ID:      $Id: foldpanelbartest.cpp,v 1.5 2005/03/29 18:03:57 ABX Exp $// Copyright:   (c) Jorgen Bodde// Licence:     wxWindows licence/////////////////////////////////////////////////////////////////////////////#include "wx/wxprec.h"#ifdef __BORLANDC__    #pragma hdrstop#endif#ifndef WX_PRECOMP    #include "wx/wx.h"#endif#include "wx/foldbar/foldpanelbar.h"#include "foldtestpanel.h"// ----------------------------------------------------------------------------// resources// ----------------------------------------------------------------------------// the application icon (under Windows and OS/2 it is in resources)#include "sample.xpm"// ----------------------------------------------------------------------------// MyApp Class// ----------------------------------------------------------------------------class MyApp : public wxApp{public:    virtual bool OnInit();};// ----------------------------------------------------------------------------// MyAppFrame Class// ----------------------------------------------------------------------------class MyAppFrame : public wxFrame{public:    MyAppFrame(const wxString& title,               const wxPoint& pos = wxDefaultPosition,               const wxSize& size = wxDefaultSize,               long style = wxDEFAULT_FRAME_STYLE);private:    void OnQuit(wxCommandEvent& event);    void OnAbout(wxCommandEvent& event);    void OnOrientation(wxCommandEvent& event);    // extra handlers for the bar, to show how it works    void OnCollapseMe(wxCommandEvent &event);    void OnExpandMe(wxCommandEvent &event);private:    wxMenuBar *CreateMenuBar();    void CreateFoldBar(bool vertical = true);    wxFoldPanelBar *m_pnl;private:    DECLARE_EVENT_TABLE()};// ----------------------------------------------------------------------------// constants// ----------------------------------------------------------------------------enum{    // menu items    FoldPanelBarTest_Quit = wxID_EXIT,    FoldPanelBarTest_About = wxID_ABOUT,    ID_COLLAPSEME = wxID_HIGHEST,    ID_EXPANDME,    FoldPanelBarTest_Horizontal,    FoldPanelBarTest_Vertical};// ----------------------------------------------------------------------------// event tables and other macros for wxWidgets// ----------------------------------------------------------------------------BEGIN_EVENT_TABLE(MyAppFrame, wxFrame)    EVT_MENU(FoldPanelBarTest_Quit,       MyAppFrame::OnQuit)    EVT_MENU(FoldPanelBarTest_About,      MyAppFrame::OnAbout)    EVT_MENU(FoldPanelBarTest_Horizontal, MyAppFrame::OnOrientation)    EVT_MENU(FoldPanelBarTest_Vertical,   MyAppFrame::OnOrientation)    EVT_BUTTON(ID_COLLAPSEME,             MyAppFrame::OnCollapseMe)    EVT_BUTTON(ID_EXPANDME,               MyAppFrame::OnExpandMe)END_EVENT_TABLE()IMPLEMENT_APP(MyApp)// ============================================================================// implementation// ============================================================================// ----------------------------------------------------------------------------// MyApp Implementation// ----------------------------------------------------------------------------bool MyApp::OnInit(){    MyAppFrame *frame = new MyAppFrame(_T("FoldPanelBarTest wxWidgets Test Application"));    SetTopWindow(frame);    frame->Show(true);    return true;}// ----------------------------------------------------------------------------// MyAppFrame Implementation// ----------------------------------------------------------------------------MyAppFrame::MyAppFrame(const wxString& title, const wxPoint& pos, const wxSize& size, long style)       : wxFrame(NULL, wxID_ANY, title, pos, size, style), m_pnl(NULL){    SetIcon(wxIcon(sample_xpm));    SetMenuBar(CreateMenuBar());    CreateFoldBar();    CreateStatusBar(2);    SetStatusText(_T("Welcome to wxWidgets!"));}wxMenuBar *MyAppFrame::CreateMenuBar(){    wxMenu *menuFile = new wxMenu;    menuFile->Append(FoldPanelBarTest_Horizontal, _T("&Horizontal\tAlt-H"));    menuFile->Append(FoldPanelBarTest_Vertical, _T("&Vertical\tAlt-V"));    menuFile->AppendSeparator();    menuFile->Append(FoldPanelBarTest_Quit, _T("E&xit\tAlt-X"), _T("Quit this program"));    wxMenu *helpMenu = new wxMenu;    helpMenu->Append(FoldPanelBarTest_About, _T("&About...\tF1"), _T("Show about dialog"));    wxMenuBar *value = new wxMenuBar();    value->Append(menuFile, _T("&File"));    value->Append(helpMenu, _T("&Help"));    return value;}void MyAppFrame::CreateFoldBar(bool vertical){    if (vertical)        SetSize(200,500);    else        SetSize(900,200);    wxFoldPanelBar *bar = new wxFoldPanelBar(this,                                             wxID_ANY,                                             wxDefaultPosition,                                             wxDefaultSize,                                             wxFPB_DEFAULT_STYLE | ( vertical ? wxFPB_VERTICAL : wxFPB_HORIZONTAL ) ,                                             wxFPB_COLLAPSE_TO_BOTTOM);    wxFoldPanel item = bar->AddFoldPanel(_T("Test me"), false);    bar->AddFoldPanelWindow(item, new wxButton(item.GetParent(), ID_COLLAPSEME, _T("Collapse Me")));    item = bar->AddFoldPanel(_T("Test me too!"), true);    bar->AddFoldPanelWindow(item, new wxButton(item.GetParent(), ID_EXPANDME, _T("Expand first one")));    bar->AddFoldPanelSeperator(item);    bar->AddFoldPanelWindow(item, new FoldTestPanel(item.GetParent(), wxID_ANY));    bar->AddFoldPanelSeperator(item);    bar->AddFoldPanelWindow(item, new wxTextCtrl(item.GetParent(), wxID_ANY, _T("Comment")), wxFPB_ALIGN_WIDTH, wxFPB_DEFAULT_SPACING, 20);    item = bar->AddFoldPanel(_T("Some opinions ..."), false);    bar->AddFoldPanelWindow(item, new wxCheckBox(item.GetParent(), wxID_ANY, _T("I like this")));    if( vertical)    {        // do not add this for horizontal for better presentation        bar->AddFoldPanelWindow(item, new wxCheckBox(item.GetParent(), wxID_ANY, _T("And also this")));        bar->AddFoldPanelWindow(item, new wxCheckBox(item.GetParent(), wxID_ANY, _T("And gimme this too")));    }    bar->AddFoldPanelSeperator(item);    bar->AddFoldPanelWindow(item, new wxCheckBox(item.GetParent(), wxID_ANY, _T("Check this too if you like")));    if( vertical)    {        // do not add this for horizontal for better presentation        bar->AddFoldPanelWindow(item, new wxCheckBox(item.GetParent(), wxID_ANY, _T("What about this")));    }    item = bar->AddFoldPanel(_T("Choose one ..."), false);    bar->AddFoldPanelWindow(item, new wxStaticText(item.GetParent(), wxID_ANY, _T("Enter your comment")));    bar->AddFoldPanelWindow(item, new wxTextCtrl(item.GetParent(), wxID_ANY, _T("Comment")), wxFPB_ALIGN_WIDTH, wxFPB_DEFAULT_SPACING, 20);    if (m_pnl) m_pnl->Destroy();    m_pnl = bar;    wxSize size = GetClientSize();    m_pnl->SetSize( 0, 0, size.GetWidth(), size.GetHeight() );}void MyAppFrame::OnQuit(wxCommandEvent& WXUNUSED(event)){    // true is to force the frame to close    Close(true);}void MyAppFrame::OnAbout(wxCommandEvent& WXUNUSED(event)){    wxString msg;    msg.Printf( _T("This is the About dialog of the FoldPanelBarTest application.\n")                _T("Welcome to %s"), wxVERSION_STRING);    wxMessageBox(msg, _T("About FoldPanelBarTest"), wxOK | wxICON_INFORMATION, this);}void MyAppFrame::OnOrientation(wxCommandEvent& event){    CreateFoldBar(event.GetId()==FoldPanelBarTest_Vertical);}void MyAppFrame::OnCollapseMe(wxCommandEvent &WXUNUSED(event)){    wxFoldPanel item = m_pnl->Item(0);    m_pnl->Collapse(item);}void MyAppFrame::OnExpandMe(wxCommandEvent &WXUNUSED(event)){    m_pnl->Expand(m_pnl->Item(0));    m_pnl->Collapse(m_pnl->Item(1));}

⌨️ 快捷键说明

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