]>
git.saurik.com Git - wxWidgets.git/blob - contrib/samples/fl/fl_sample2.cpp
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: fl_sample2.cpp
3 // Purpose: Contrib. demo
4 // Author: Aleksandras Gluchovas
5 // Modified by: Sebastian Haase (June 21, 2001)
8 // Copyright: (c) Aleksandras Gluchovas
9 // Licence: wxWindows license
10 /////////////////////////////////////////////////////////////////////////////
12 // For compilers that support precompilation, includes "wx/wx.h".
13 #include "wx/wxprec.h"
23 #include "wx/textctrl.h"
26 #include "wx/fl/controlbar.h"
29 #include "wx/fl/barhintspl.h"
30 #include "wx/fl/hintanimpl.h"
37 class MyApp
: public wxApp
43 class MyFrame
: public wxFrame
46 wxFrameLayout
* mpLayout
;
47 wxWindow
* mpClientWnd
;
49 wxTextCtrl
* CreateTextCtrl( const wxString
& value
);
52 MyFrame( wxWindow
* parent
, const wxChar
*title
);
55 void populateMyFrame();
56 void OnLoad( wxCommandEvent
& event
);
57 void OnStore( wxCommandEvent
& event
);
58 void OnQuit( wxCommandEvent
& event
);
60 bool OnClose(void) { return true; }
65 /***** Implementation for class MyApp *****/
69 bool MyApp::OnInit(void)
71 // wxWidgets boiler-plate:
73 MyFrame
*frame
= new MyFrame(NULL
, _("wxFrameLayout sample"));
75 wxMenu
*file_menu
= new wxMenu
;
77 file_menu
->Append( ID_LOAD
, _("&Load layout") );
78 file_menu
->Append( ID_STORE
, _("&Store layout") );
79 file_menu
->AppendSeparator();
81 file_menu
->Append( ID_QUIT
, _("E&xit") );
83 wxMenuBar
*menu_bar
= new wxMenuBar
;
85 menu_bar
->Append(file_menu
, _("&File"));
88 frame
->CreateStatusBar(3);
89 #endif // wxUSE_STATUSBAR
90 frame
->SetMenuBar(menu_bar
);
94 frame
->populateMyFrame();
99 /***** Immlementation for class MyFrame *****/
101 BEGIN_EVENT_TABLE(MyFrame
, wxFrame
)
102 EVT_MENU( ID_LOAD
, MyFrame::OnLoad
)
103 EVT_MENU( ID_STORE
, MyFrame::OnStore
)
104 EVT_MENU( ID_QUIT
, MyFrame::OnQuit
)
107 MyFrame::MyFrame( wxWindow
* parent
, const wxChar
*title
)
108 : wxFrame( parent
, wxID_ANY
, title
, wxDefaultPosition
,
110 wxCLIP_CHILDREN
| wxMINIMIZE_BOX
| wxMAXIMIZE_BOX
|
111 wxTHICK_FRAME
| wxSYSTEM_MENU
| wxCAPTION
| wxCLOSE_BOX
,
116 void MyFrame::populateMyFrame()
118 mpClientWnd
= CreateTextCtrl( _("Client window") );
120 mpLayout
= new wxFrameLayout( this, mpClientWnd
);
122 /// mpLayout->PushDefaultPlugins();
123 /// mpLayout->AddPlugin( CLASSINFO( cbBarHintsPlugin ) ); // facny "X"es and beveal for barso
124 /// //mpLayout->AddPlugin( CLASSINFO( cbHintAnimationPlugin ) );
126 cbDimInfo
sizes( 80,65, // when docked horizontally
127 80,165, // when docked vertically
128 180,30, // when floated
129 true, // the bar is fixed-size
130 5, // vertical gap (bar border)
131 5 // horizontal gap (bar border)
135 for( int i
= 1; i
<= 10; ++i
)
141 wxSprintf( buf
, wxT("%d"), i
);
142 wxString name
= wxString(wxT("Bar-"));
145 //sizes.mIsFixed = i % 2 > 0; // every fifth bar is not fixed-size
147 if ( !sizes
.mIsFixed
) name
+= wxT(" (flexible)");
148 // mpLayout->AddBar( CreateTextCtrl(name), // bar window
149 mpLayout
->AddBar( new wxTextCtrl(this, wxID_ANY
, name
), // bar window
150 sizes
, i
% MAX_PANES
, // alignment ( 0-top,1-bottom, etc)
151 0, // insert into 0th row (vert. position)
152 0, // offset from the start of row (in pixels)
153 name
// name to refere in customization pop-ups
156 mpLayout
->RecalcLayout(true);
165 // layout is not a window, should be released manually
170 wxTextCtrl
* MyFrame::CreateTextCtrl( const wxString
& value
)
172 wxTextCtrl
* pCtrl
= new wxTextCtrl( this, wxID_ANY
, value
,
173 wxPoint(0,0), wxSize(1,1), wxTE_MULTILINE
);
175 pCtrl
->SetBackgroundColour( wxColour( 255,255,255 ) );
180 void MyFrame::OnLoad( wxCommandEvent
& WXUNUSED(event
) )
182 wxMessageBox(wxT("Hey - you found a BIG question-mark !!"));
185 void MyFrame::OnStore( wxCommandEvent
& WXUNUSED(event
) )
187 wxMessageBox(wxT("Hey - you found another BIG question-mark !!"));
190 void MyFrame::OnQuit( wxCommandEvent
& WXUNUSED(event
) )
192 Show( false ); // TRICK:: hide it, to avoid flickered destruction