aboutsummaryrefslogtreecommitdiffstats
path: root/lib/wx/examples/demo/ex_sizers.erl
diff options
context:
space:
mode:
Diffstat (limited to 'lib/wx/examples/demo/ex_sizers.erl')
-rw-r--r--lib/wx/examples/demo/ex_sizers.erl436
1 files changed, 436 insertions, 0 deletions
diff --git a/lib/wx/examples/demo/ex_sizers.erl b/lib/wx/examples/demo/ex_sizers.erl
new file mode 100644
index 0000000000..2cc6efd503
--- /dev/null
+++ b/lib/wx/examples/demo/ex_sizers.erl
@@ -0,0 +1,436 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+
+-module(ex_sizers).
+
+-behaviour(wx_object).
+
+%% Client API
+-export([start/1]).
+
+%% wx_object callbacks
+-export([init/1, terminate/2, code_change/3,
+ handle_info/2, handle_call/3, handle_event/2]).
+
+-include_lib("wx/include/wx.hrl").
+
+-record(state,
+ {
+ parent,
+ config
+ }).
+
+start(Config) ->
+ wx_object:start_link(?MODULE, Config, []).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+init(Config) ->
+ wx:batch(fun() -> do_init(Config) end).
+
+do_init(Config) ->
+ Parent = proplists:get_value(parent, Config),
+ Panel = wxPanel:new(Parent, []),
+
+ %% Setup sizers
+ MainSizer = wxBoxSizer:new(?wxVERTICAL),
+ Sizer = wxStaticBoxSizer:new(?wxVERTICAL, Panel,
+ [{label, "wxSizer"}]),
+
+ Choices = ["Vertical Example",
+ "Horizontal Example",
+ "Add A Strechable",
+ "More Than One Strechable",
+ "Weighting Factor",
+ "Edge Affinity",
+ "Spacer",
+ "Centering In Avalible Space",
+ "Simple Border",
+ "East And West Border",
+ "North And South Border",
+ "Box In Box",
+ "Boxes Inside A Border",
+ "Border In A Box",
+ "Simple Grid",
+ "More Grid Features",
+ "Flexible Grid",
+ "Grid With Alignment",
+ "Proportional Resize With Alignments"],
+
+ ListBox = wxListBox:new(Panel, ?wxID_ANY, [{choices, Choices}]),
+ wxListBox:connect(ListBox, command_listbox_doubleclicked),
+
+ %% Add to sizers
+ wxSizer:add(Sizer, ListBox, [{flag, ?wxEXPAND}]),
+ wxSizer:add(MainSizer, Sizer, [{flag, ?wxEXPAND}, {proportion, 1}]),
+
+ wxPanel:setSizer(Panel, MainSizer),
+ {Panel, #state{parent=Panel, config=Config}}.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Async Events are handled in handle_event as in handle_info
+handle_event(#wx{event = #wxCommand{type = command_listbox_doubleclicked,
+ cmdString = Choice}},
+ State = #state{}) ->
+ create_example(State#state.parent, Choice),
+ {noreply, State};
+handle_event(Ev = #wx{}, State = #state{}) ->
+ demo:format(State#state.config, "Got Event ~p\n", [Ev]),
+ {noreply, State}.
+
+%% Callbacks handled as normal gen_server callbacks
+handle_info(Msg, State) ->
+ demo:format(State#state.config, "Got Info ~p\n", [Msg]),
+ {noreply, State}.
+
+handle_call(Msg, _From, State) ->
+ demo:format(State#state.config, "Got Call ~p\n", [Msg]),
+ {reply,{error, nyi}, State}.
+
+code_change(_, _, State) ->
+ {stop, ignore, State}.
+
+terminate(_Reason, _State) ->
+ ok.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Local functions
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+create_example(Parent, Example) ->
+ Frame = wxFrame:new(Parent, ?wxID_ANY, Example,
+ [{style, ?wxDEFAULT_FRAME_STYLE bor ?wxFRAME_FLOAT_ON_PARENT}]),
+ wxFrame:center(Frame),
+ Panel = wxPanel:new(Frame, []),
+ Sizer =
+ case Example of
+ "Proportional Resize With Alignments" ->
+ proportional_resize_with_alignments(Panel);
+ "Grid With Alignment" ->
+ grid_with_alignment(Panel);
+ "Flexible Grid" ->
+ flexible_grid(Panel);
+ "More Grid Features" ->
+ more_grid_features(Panel);
+ "Simple Grid" ->
+ simple_grid(Panel);
+ "Border In A Box" ->
+ border_in_a_box(Panel);
+ "Boxes Inside A Border" ->
+ boxes_inside_a_border(Panel);
+ "Box In Box" ->
+ box_in_box(Panel);
+ "East And West Border" ->
+ east_and_west_border(Panel);
+ "North And South Border" ->
+ north_and_south_border(Panel);
+ "Simple Border" ->
+ simple_border(Panel);
+ "Centering In Avalible Space" ->
+ centering_in_avalible_space(Panel);
+ "Spacer" ->
+ spacer(Panel);
+ "Edge Affinity" ->
+ edge_affinity(Panel);
+ "Weighting Factor" ->
+ weighting_factor(Panel);
+ "More Than One Strechable" ->
+ more_than_one_strechable(Panel);
+ "Add A Strechable" ->
+ add_a_strechable(Panel);
+ "Vertical Example" ->
+ vertical(Panel);
+ "Horizontal Example" ->
+ horizontal(Panel)
+ end,
+ wxPanel:setSizer(Panel, Sizer),
+ wxSizer:fit(Sizer, Panel),
+ wxFrame:createStatusBar(Frame),
+ wxFrame:setStatusText(Frame, "Resize window to see how the sizers respond.."),
+ wxFrame:fit(Frame),
+ wxFrame:show(Frame).
+
+create_box(Parent) ->
+ Win = wxWindow:new(Parent, ?wxID_ANY, [{style, ?wxBORDER_SIMPLE},
+ {size, {50,25}}]),
+ wxWindow:setBackgroundColour(Win, ?wxWHITE),
+ Win.
+
+
+vertical(Parent) ->
+ Sizer = wxBoxSizer:new(?wxVERTICAL),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ Sizer.
+
+
+horizontal(Parent) ->
+ Sizer = wxBoxSizer:new(?wxHORIZONTAL),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ Sizer.
+
+add_a_strechable(Parent) ->
+ Sizer = wxBoxSizer:new(?wxHORIZONTAL),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 1}, {flag, ?wxEXPAND}]),
+ Sizer.
+
+more_than_one_strechable(Parent) ->
+ Sizer = wxBoxSizer:new(?wxHORIZONTAL),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 1}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 1}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 1}, {flag, ?wxEXPAND}]),
+ Sizer.
+
+weighting_factor(Parent) ->
+ Sizer = wxBoxSizer:new(?wxHORIZONTAL),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 3}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 1}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 1}, {flag, ?wxEXPAND}]),
+ Sizer.
+
+edge_affinity(Parent) ->
+ Sizer = wxBoxSizer:new(?wxHORIZONTAL),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 1}, {flag, ?wxALIGN_TOP}]),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 1}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 1}, {flag, ?wxALIGN_CENTER}]),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 1}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 1}, {flag, ?wxALIGN_BOTTOM}]),
+ Sizer.
+
+spacer(Parent) ->
+ Sizer = wxBoxSizer:new(?wxHORIZONTAL),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer, 60,20, [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 1}, {flag, ?wxEXPAND}]),
+ Sizer.
+
+centering_in_avalible_space(Parent) ->
+ Sizer = wxBoxSizer:new(?wxVERTICAL),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer, 0,0, [{proportion, 1}]),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 0}, {flag, ?wxALIGN_CENTER}]),
+ wxSizer:add(Sizer, 0,0, [{proportion, 1}]),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ Sizer.
+
+simple_border(Parent) ->
+ Sizer = wxBoxSizer:new(?wxHORIZONTAL),
+ Win = create_box(Parent),
+ wxWindow:setSize(Win, 80,80),
+ wxSizer:add(Sizer, Win, [{proportion, 1}, {flag, ?wxEXPAND bor ?wxALL},
+ {border, 15}]),
+ Sizer.
+
+east_and_west_border(Parent) ->
+ Sizer = wxBoxSizer:new(?wxHORIZONTAL),
+ Win = create_box(Parent),
+ wxWindow:setSize(Win, 80,80),
+ wxSizer:add(Sizer, Win, [{proportion, 1}, {flag, ?wxEXPAND bor ?wxEAST bor ?wxWEST},
+ {border, 15}]),
+ Sizer.
+
+north_and_south_border(Parent) ->
+ Sizer = wxBoxSizer:new(?wxHORIZONTAL),
+ Win = create_box(Parent),
+ wxWindow:setSize(Win, 80,80),
+ wxSizer:add(Sizer, Win, [{proportion, 1}, {flag, ?wxEXPAND bor ?wxNORTH bor ?wxSOUTH},
+ {border, 15}]),
+ Sizer.
+
+
+box_in_box(Parent) ->
+ Sizer = wxBoxSizer:new(?wxVERTICAL),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+
+ Sizer2 = wxBoxSizer:new(?wxHORIZONTAL),
+ wxSizer:add(Sizer2, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer2, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer2, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer2, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+
+ Sizer3 = wxBoxSizer:new(?wxVERTICAL),
+ wxSizer:add(Sizer3, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer3, create_box(Parent), [{proportion, 2}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer3, create_box(Parent), [{proportion, 1}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer3, create_box(Parent), [{proportion, 1}, {flag, ?wxEXPAND}]),
+
+ wxSizer:add(Sizer2, Sizer3, [{proportion, 1}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer, Sizer2, [{proportion, 1}, {flag, ?wxEXPAND}]),
+
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ Sizer.
+
+boxes_inside_a_border(Parent) ->
+ Border = wxBoxSizer:new(?wxHORIZONTAL),
+ Sizer = add_a_strechable(Parent),
+ wxSizer:add(Border, Sizer, [{proportion, 1}, {flag, ?wxEXPAND bor ?wxALL},
+ {border, 15}]),
+ Border.
+
+border_in_a_box(Parent) ->
+ InsideBox = wxBoxSizer:new(?wxHORIZONTAL),
+
+ Sizer2 = wxBoxSizer:new(?wxHORIZONTAL),
+ wxSizer:add(Sizer2, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer2, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer2, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer2, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer2, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+
+ wxSizer:add(InsideBox, Sizer2, [{proportion, 0}, {flag, ?wxEXPAND}]),
+
+ Border = wxBoxSizer:new(?wxHORIZONTAL),
+ wxSizer:add(Border, create_box(Parent), [{proportion, 1}, {flag, ?wxEXPAND bor ?wxALL}]),
+ wxSizer:add(InsideBox, Border, [{proportion, 1}, {flag, ?wxEXPAND bor ?wxALL},
+ {border, 20}]),
+
+
+ Sizer3 = wxBoxSizer:new(?wxVERTICAL),
+ wxSizer:add(Sizer3, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer3, create_box(Parent), [{proportion, 2}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer3, create_box(Parent), [{proportion, 1}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer3, create_box(Parent), [{proportion, 1}, {flag, ?wxEXPAND}]),
+
+ wxSizer:add(InsideBox, Sizer3, [{proportion, 1}, {flag, ?wxEXPAND}]),
+
+ OutsideBox = wxBoxSizer:new(?wxVERTICAL),
+ wxSizer:add(OutsideBox, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(OutsideBox, InsideBox, [{proportion, 1}, {flag, ?wxEXPAND}]),
+ wxSizer:add(OutsideBox, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ OutsideBox.
+
+simple_grid(Parent) ->
+ GridSizer = wxGridSizer:new(3, 3, 2, 2),
+
+ wxSizer:add(GridSizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(GridSizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(GridSizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(GridSizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(GridSizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(GridSizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(GridSizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(GridSizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(GridSizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ GridSizer.
+
+more_grid_features(Parent) ->
+ GridSizer = wxGridSizer:new(3, 3, 1, 1), % rows, cols, vgap, hgap
+
+ Sizer = wxBoxSizer:new(?wxVERTICAL),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(Sizer, create_box(Parent), [{proportion, 1}, {flag, ?wxEXPAND}]),
+
+ GridSizer2 = wxGridSizer:new(2, 2, 4, 4),
+ wxSizer:add(GridSizer2, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(GridSizer2, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(GridSizer2, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(GridSizer2, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+
+ wxSizer:add(GridSizer, create_box(Parent), [{proportion, 0}, {flag, ?wxALIGN_RIGHT bor ?wxALIGN_BOTTOM}]),
+ wxSizer:add(GridSizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(GridSizer, create_box(Parent), [{proportion, 0}, {flag, ?wxALIGN_LEFT bor ?wxALIGN_BOTTOM}]),
+ wxSizer:add(GridSizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(GridSizer, create_box(Parent), [{proportion, 0}, {flag, ?wxALIGN_CENTER}]),
+ wxSizer:add(GridSizer, Sizer, [{proportion, 0}, {flag, ?wxEXPAND bor ?wxALL},
+ {border, 10}]),
+ wxSizer:add(GridSizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(GridSizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(GridSizer, GridSizer2, [{proportion, 0}, {flag, ?wxEXPAND bor ?wxALL},
+ {border, 4}]),
+ GridSizer.
+
+
+flexible_grid(Parent) ->
+ FlexGridSizer = wxFlexGridSizer:new(3, 3, 2, 2), % rows, cols, vgap, hgap
+ wxSizer:add(FlexGridSizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(FlexGridSizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(FlexGridSizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(FlexGridSizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(FlexGridSizer, 175, 50, []),
+ wxSizer:add(FlexGridSizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(FlexGridSizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(FlexGridSizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+ wxSizer:add(FlexGridSizer, create_box(Parent), [{proportion, 0}, {flag, ?wxEXPAND}]),
+
+ wxFlexGridSizer:addGrowableRow(FlexGridSizer, 0),
+ wxFlexGridSizer:addGrowableRow(FlexGridSizer, 2),
+ wxFlexGridSizer:addGrowableCol(FlexGridSizer, 1),
+ FlexGridSizer.
+
+grid_with_alignment(Parent) ->
+ GridSizer = wxGridSizer:new(3, 3, 2, 2), % rows, cols, vgap, hgap
+
+ wxSizer:add(GridSizer, create_box(Parent),
+ [{proportion, 0}, {flag, ?wxALIGN_TOP bor ?wxALIGN_LEFT}]),
+ wxSizer:add(GridSizer, create_box(Parent),
+ [{proportion, 0}, {flag, ?wxALIGN_TOP bor ?wxALIGN_CENTER_HORIZONTAL}]),
+ wxSizer:add(GridSizer, create_box(Parent),
+ [{proportion, 0}, {flag, ?wxALIGN_TOP bor ?wxALIGN_RIGHT}]),
+ wxSizer:add(GridSizer, create_box(Parent),
+ [{proportion, 0}, {flag, ?wxALIGN_CENTER_VERTICAL bor ?wxALIGN_LEFT}]),
+ wxSizer:add(GridSizer, create_box(Parent),
+ [{proportion, 0}, {flag, ?wxALIGN_CENTER}]),
+ wxSizer:add(GridSizer, create_box(Parent),
+ [{proportion, 0}, {flag, ?wxALIGN_CENTER_VERTICAL bor ?wxALIGN_RIGHT}]),
+ wxSizer:add(GridSizer, create_box(Parent),
+ [{proportion, 0}, {flag, ?wxALIGN_BOTTOM bor ?wxALIGN_LEFT}]),
+ wxSizer:add(GridSizer, create_box(Parent),
+ [{proportion, 0}, {flag, ?wxALIGN_BOTTOM bor ?wxALIGN_CENTER_HORIZONTAL}]),
+ wxSizer:add(GridSizer, create_box(Parent),
+ [{proportion, 0}, {flag, ?wxALIGN_BOTTOM bor ?wxALIGN_RIGHT}]),
+ GridSizer.
+
+proportional_resize_with_alignments(Parent) ->
+ GridSizer = wxGridSizer:new(3, 3, 2, 2), % rows, cols, vgap, hgap
+
+ wxSizer:add(GridSizer, create_box(Parent),
+ [{proportion, 0}, {flag, ?wxSHAPED bor ?wxALIGN_TOP bor ?wxALIGN_LEFT}]),
+ wxSizer:add(GridSizer, create_box(Parent),
+ [{proportion, 0}, {flag, ?wxSHAPED bor ?wxALIGN_TOP bor ?wxALIGN_CENTER_HORIZONTAL}]),
+ wxSizer:add(GridSizer, create_box(Parent),
+ [{proportion, 0}, {flag, ?wxSHAPED bor ?wxALIGN_TOP bor ?wxALIGN_RIGHT}]),
+ wxSizer:add(GridSizer, create_box(Parent),
+ [{proportion, 0}, {flag, ?wxSHAPED bor ?wxALIGN_CENTER_VERTICAL bor ?wxALIGN_LEFT}]),
+ wxSizer:add(GridSizer, create_box(Parent),
+ [{proportion, 0}, {flag, ?wxSHAPED bor ?wxALIGN_CENTER}]),
+ wxSizer:add(GridSizer, create_box(Parent),
+ [{proportion, 0}, {flag, ?wxSHAPED bor ?wxALIGN_CENTER_VERTICAL bor ?wxALIGN_RIGHT}]),
+ wxSizer:add(GridSizer, create_box(Parent),
+ [{proportion, 0}, {flag, ?wxSHAPED bor ?wxALIGN_BOTTOM bor ?wxALIGN_LEFT}]),
+ wxSizer:add(GridSizer, create_box(Parent),
+ [{proportion, 0}, {flag, ?wxSHAPED bor ?wxALIGN_BOTTOM bor ?wxALIGN_CENTER_HORIZONTAL}]),
+ wxSizer:add(GridSizer, create_box(Parent),
+ [{proportion, 0}, {flag, ?wxSHAPED bor ?wxALIGN_BOTTOM bor ?wxALIGN_RIGHT}]),
+ GridSizer.
+