[erlang-questions] wxStaticText resizing
eigenfunction
emeka_1978@REDACTED
Fri Mar 9 22:16:15 CET 2012
I am starting to fall in love with wxWerlang.
Thanks a lot.
Am Donnerstag, 8. März 2012 08:54:27 UTC+1 schrieb Dan Gudmundsson:
>
> You want the actual font size to change?
>
> If so you will have to write that yourself there is no such
> functionality in wx that I'm aware of.
>
> Something like this:
>
> go() ->
> wx:new(),
> Parent = wxFrame:new(wx:null(), ?wxID_ANY, "Foobar"),
> %% wxFrame:connect(Parent, close_window),
> Panel = wxPanel:new(Parent, []),
>
> %% Setup sizers
> TextSizer = wxBoxSizer:new(?wxVERTICAL),
> ClockText = wxStaticText:new(Panel,1,"00 : 00 :
> 00",[{style,?wxALIGN_CENTER}]),
>
> %% Add to sizers
> wxSizer:add(TextSizer,ClockText,[{flag,?wxEXPAND},{proportion,0}]),
> DrawArea = wxPanel:new(Panel, [{style, ?wxFULL_REPAINT_ON_RESIZE}]),
> wxSizer:add(TextSizer,DrawArea,[{flag,?wxEXPAND},{proportion,1}]),
> Fonts = create_fonts(),
> wxPanel:connect(DrawArea, paint, [{callback, fun(Ev, _) ->
> draw(Ev, Fonts) end}]),
> wxPanel:setSizer(Panel,TextSizer),
> wxFrame:show(Parent).
>
> create_fonts() ->
> [wxFont:new(Sz, ?wxFONTFAMILY_DEFAULT, ?wxFONTSTYLE_NORMAL,
> ?wxFONTWEIGHT_NORMAL) ||
> Sz <- lists:reverse([8, 10, 12, 14, 16, 18, 24, 28, 40, 48, 60])].
>
> draw(#wx{obj=Panel}, Fonts) ->
> DC = wxPaintDC:new(Panel),
> Sz = {W,H} = wxWindow:getClientSize(Panel),
> wxDC:drawRectangle(DC, {3,3,W-6, H-6}),
> Str = "00 : 00 : 00",
> Pos = set_font(Fonts, Str, DC, Sz),
> wxDC:drawText(DC, Str, Pos),
> wxPaintDC:destroy(DC).
>
> set_font([Font|Fs], Str, DC, Sz = {MaxW, MaxH}) ->
> wxDC:setFont(DC, Font),
> case wxDC:getTextExtent(DC, Str) of
> {W,H} when W < MaxW, H < MaxH ->
> {(MaxW - W) div 2, (MaxH - H) div 2};
> _ ->
> set_font(Fs, Str, DC, Sz)
> end;
> set_font([], _, _, _) ->
> {0,0}.
>
> /Dan
>
> On Wed, Mar 7, 2012 at 5:03 PM, eigenfunction <emeka_1978@REDACTED>
> wrote:
> > I have a static text centered in a panel. When i resize the panel, i
> > would like the text to resize as well. This is my code:
> >
> > wxFrame:connect(Parent, close_window),
> > Panel = wxPanel:new(Parent, []),
> >
> > %% Setup sizers
> > TextSizer = wxBoxSizer:new(?wxVERTICAL),
> > ClockText = wxStaticText:new(Panel,1,"00 : 00 : 00",[{style,?
> > wxALIGN_CENTER}]),
> >
> > %% Add to sizers
> > wxSizer:add(TextSizer,ClockText,[{flag,?wxEXPAND},{proportion,
> > 1}]),
> >
> > wxPanel:setSizer(Panel,TextSizer),
> > wxFrame:show(Parent)
> >
> > _______________________________________________
> > erlang-questions mailing list
> > erlang-questions@REDACTED
> > http://erlang.org/mailman/listinfo/erlang-questions
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20120309/8d84b30f/attachment.htm>
More information about the erlang-questions
mailing list