Re: Ugh! I am having trouble visualizing sizers.
- Posted by vmars Jul 05, 2009
- 1146 views
BTW: I have made some headway on my (guess I could say 'our') pgm.
The main prob was with these two statements:
add_sizer_to_sizer( panlbox, panlboxt, 1, wx_or_all(wxALIGN_LEFT & wxALIGN_TOP), 0 )
add_sizer_to_sizer( panlbox, panlboxm, 1, wx_or_all(wxALIGN_LEFT & wxALIGN_TOP), 0 )
Not sure why, but they cause the pgm to go Krazy.
Anyways, most things are solved, except for Positioning top & mid buttons.
What I want to do is put button 1&3 on left side, and button 2&4 on right side of parent panel.
Any tips are greatly appr...
Thanks! ...V
--[include statements] include wxeud.e without warning --[constants] constant Red = create( wxColour, {#FF,#00,#00} ) --[create the controls] constant main = create( wxFrame, {0, -1, "TXTool", -1, -1, 501, 501} ), panl = create( wxPanel, main ), panltop = create( wxPanel, panl ), --{ panl, -1, "topPanl", -1, -1, -1, 21} ), topbutton01 = create( wxButton, {panltop, new_id(), "topbutton01", -1, -1, 201, 31} ), topbutton02 = create( wxButton, {panltop, new_id(), "topbutton02", -1, -1, 201, 31} ), scrollwin = create( wxScrolledWindow, {panl, new_id(), -1, -1, -1, 499, 119} ), panlmid = create( wxPanel, panl ), midbutton01 = create( wxButton, {panlmid, new_id(), "midbutton01", -1, -1, 201, 31} ), midbutton02 = create( wxButton, {panlmid, new_id(), "midbutton02", -1, -1, 201, 31} ), txted = create( wxRichTextCtrl, {panl, new_id(), "Enter Text Here", -1, -1, 501, 249} ), --[and create these Sizer Controls] panlbox = create( wxBoxSizer, {wxVERTICAL} ), panlboxt = create( wxBoxSizer, {wxHORIZONTAL} ), panlboxm = create( wxBoxSizer, {wxHORIZONTAL} ), scrollbox = create( wxBoxSizer, {wxVERTICAL} ), button_grid = create( wxFlexGridSizer, { 6, 8, 5, 5 }) --[end of create controls] --[this Window sets upon this SIZER] add_window_to_sizer( panlboxt, topbutton01, 0, wxSHAPED, 0 ) add_window_to_sizer( panlboxt, topbutton02, 0, wxSHAPED, 0 ) add_window_to_sizer( panlbox, panltop, 0, wxGROW, 0 ) add_window_to_sizer( panlbox, scrollwin, 1, wxGROW, 0 ) add_window_to_sizer( panlbox, panlmid, 0, wxGROW, 0 ) add_window_to_sizer( panlboxm, midbutton01, 0, wxGROW, 0 ) add_window_to_sizer( panlboxm, midbutton02, 0, wxGROW, 0 ) add_window_to_sizer( panlbox, txted, 0, wxGROW, 0 ) --[this SIZER sets upon this SIZER] add_sizer_to_sizer( scrollbox, button_grid, 1, wxGROW, 0 ) --add_sizer_to_sizer( panlbox, panlboxt, 1, wx_or_all(wxALIGN_LEFT & wxALIGN_TOP), 0 ) --add_sizer_to_sizer( panlbox, panlboxm, 1, wx_or_all(wxALIGN_LEFT & wxALIGN_TOP), 0 ) --http://wxeuphoria.sourceforge.net/sfdocs/CONTROL.html#SET_SIZE --set_size ( atom win, integer cx, integer cy ) --move ( atom win, integer x, integer y ) --[] --[event handlers and other code] set_scrollbars( scrollwin, 20, 20, 50, 50, 0, 0, 0 ) set_back_color( scrollwin, Red ) atom tempbtn for i = 1 to 6 do for j = 1 to 8 do --90,60 tempbtn = create( wxButton, {scrollwin, -1, sprintf("Button %dx%d", i & j), 0, 0, 100, 30} ) add_window_to_sizer( button_grid, tempbtn, 1, wxGROW, 0 ) end for --j end for --i --[this Sizer sets upon this Window] set_sizer( panl, panlbox ) set_sizer( panltop, panlboxt ) set_sizer( panlmid, panlboxm ) set_sizer( scrollwin, scrollbox ) --First, set the window to anything but what you ultimately want: --frameWin = create(wxFrame,{0,1,PROGRAM_TITLE,-1,-1,901,601}), -- off by 1 --Then, do this: set_size( main, 500,500 ) -- set to what you really want set_size( panl, 500,500 ) set_size( panltop, -1, 20 ) set_size( topbutton01, 200, 20 ) set_size( topbutton02, 200, 20 ) --set_size( scrollwin, 500, 150 ) set_size( midbutton01, 30, 50 ) set_size( midbutton02, 30, 50 ) set_size( panlmid, 30, -1 ) set_size( main, 500,500 ) wxMain( main ) --Thanks for your help!