📄 fl_sample2.cpp
字号:
/////////////////////////////////////////////////////////////////////////////// Name: fl_sample2.cpp// Purpose: Contrib. demo// Author: Aleksandras Gluchovas// Modified by: Sebastian Haase (June 21, 2001)// Created: 24/11/98// RCS-ID: $Id: fl_sample2.cpp,v 1.8 2006/03/31 18:06:49 ABX Exp $// Copyright: (c) Aleksandras Gluchovas// Licence: wxWindows license/////////////////////////////////////////////////////////////////////////////// For compilers that support precompilation, includes "wx/wx.h".#include "wx/wxprec.h"#ifdef __BORLANDC__#pragma hdrstop#endif#ifndef WX_PRECOMP#include "wx/wx.h"#endif#include "wx/textctrl.h"// fl headers#include "wx/fl/controlbar.h"// plugins used#include "wx/fl/barhintspl.h"#include "wx/fl/hintanimpl.h"#define ID_LOAD 102#define ID_STORE 103#define ID_QUIT 104class MyApp: public wxApp{public: bool OnInit(void);};class MyFrame: public wxFrame{protected: wxFrameLayout* mpLayout; wxWindow* mpClientWnd; wxTextCtrl* CreateTextCtrl( const wxString& value );public: MyFrame( wxWindow* parent, const wxChar *title ); ~MyFrame(); void populateMyFrame(); void OnLoad( wxCommandEvent& event ); void OnStore( wxCommandEvent& event ); void OnQuit( wxCommandEvent& event ); bool OnClose(void) { return true; } DECLARE_EVENT_TABLE()};/***** Implementation for class MyApp *****/IMPLEMENT_APP (MyApp)bool MyApp::OnInit(void){ // wxWidgets boiler-plate: MyFrame *frame = new MyFrame(NULL, _("wxFrameLayout sample")); wxMenu *file_menu = new wxMenu; file_menu->Append( ID_LOAD, _("&Load layout") ); file_menu->Append( ID_STORE, _("&Store layout") ); file_menu->AppendSeparator(); file_menu->Append( ID_QUIT, _("E&xit") ); wxMenuBar *menu_bar = new wxMenuBar; menu_bar->Append(file_menu, _("&File"));#if wxUSE_STATUSBAR frame->CreateStatusBar(3);#endif // wxUSE_STATUSBAR frame->SetMenuBar(menu_bar); frame->Show(true); SetTopWindow(frame); frame->populateMyFrame(); return true;}/***** Immlementation for class MyFrame *****/BEGIN_EVENT_TABLE(MyFrame, wxFrame) EVT_MENU( ID_LOAD, MyFrame::OnLoad ) EVT_MENU( ID_STORE, MyFrame::OnStore ) EVT_MENU( ID_QUIT, MyFrame::OnQuit )END_EVENT_TABLE()MyFrame::MyFrame( wxWindow* parent, const wxChar *title ) : wxFrame( parent, wxID_ANY, title, wxDefaultPosition, wxSize( 700, 500 ), wxCLIP_CHILDREN | wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxRESIZE_BORDER | wxSYSTEM_MENU | wxCAPTION | wxCLOSE_BOX, wxT("freimas") ){}void MyFrame::populateMyFrame(){ mpClientWnd = CreateTextCtrl( _("Client window") ); mpLayout = new wxFrameLayout( this, mpClientWnd ); /// mpLayout->PushDefaultPlugins(); /// mpLayout->AddPlugin( CLASSINFO( cbBarHintsPlugin ) ); // facny "X"es and beveal for barso /// //mpLayout->AddPlugin( CLASSINFO( cbHintAnimationPlugin ) ); cbDimInfo sizes( 80,65, // when docked horizontally 80,165, // when docked vertically 180,30, // when floated true, // the bar is fixed-size 5, // vertical gap (bar border) 5 // horizontal gap (bar border) ); // drop-in 20 bars for( int i = 1; i <= 10; ++i ) { wxSleep(1); wxYield(); // CHECK! wxChar buf[4]; wxSprintf( buf, wxT("%d"), i ); wxString name = wxString(wxT("Bar-")); name += buf; //sizes.mIsFixed = i % 2 > 0; // every fifth bar is not fixed-size if ( !sizes.mIsFixed ) name += wxT(" (flexible)"); // mpLayout->AddBar( CreateTextCtrl(name), // bar window mpLayout->AddBar( new wxTextCtrl(this, wxID_ANY, name), // bar window sizes, i % MAX_PANES, // alignment ( 0-top,1-bottom, etc) 0, // insert into 0th row (vert. position) 0, // offset from the start of row (in pixels) name // name to refere in customization pop-ups ); mpLayout->RecalcLayout(true); // Layout(); // Refresh(); }}MyFrame::~MyFrame(){ // layout is not a window, should be released manually if ( mpLayout ) delete mpLayout;}wxTextCtrl* MyFrame::CreateTextCtrl( const wxString& value ){ wxTextCtrl* pCtrl = new wxTextCtrl( this, wxID_ANY, value, wxPoint(0,0), wxSize(1,1), wxTE_MULTILINE ); pCtrl->SetBackgroundColour( wxColour( 255,255,255 ) ); return pCtrl;}void MyFrame::OnLoad( wxCommandEvent& WXUNUSED(event) ){ wxMessageBox(wxT("Hey - you found a BIG question-mark !!"));}void MyFrame::OnStore( wxCommandEvent& WXUNUSED(event) ){ wxMessageBox(wxT("Hey - you found another BIG question-mark !!"));}void MyFrame::OnQuit( wxCommandEvent& WXUNUSED(event) ){ Show( false ); // TRICK:: hide it, to avoid flickered destruction Close(true);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -