1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
%%
%% %CopyrightBegin%
%%
%% Copyright Ericsson AB 2008-2024. All Rights Reserved.
%%
%% Licensed under the Apache License, Version 2.0 (the "License");
%% you may not use this file except in compliance with the License.
%% You may obtain a copy of the License at
%%
%% http://www.apache.org/licenses/LICENSE-2.0
%%
%% Unless required by applicable law or agreed to in writing, software
%% distributed under the License is distributed on an "AS IS" BASIS,
%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
%% See the License for the specific language governing permissions and
%% limitations under the License.
%%
%% %CopyrightEnd%
%%
<<EXPORT:wxPrintout new/2,new/3 wxPrintout:EXPORT>>
<<wxPrintout
-doc(#{equiv => new/3}).
-spec new(Title::string(), OnPrintPage::function()) -> wxPrintout:wxPrintout().
new(Title, OnPrintPage) ->
new(Title, OnPrintPage, []).
-doc """
Constructor.
Creates a `m:wxPrintout` object with a callback fun and optionally other
callback funs. The `This` argument is the `m:wxPrintout` object reference to
this object
Notice: The callbacks may not call other processes.
""".
-spec new(Title::string(), OnPrintPage, [Option]) ->
wxPrintout:wxPrintout() when
OnPrintPage :: fun((wxPrintout(), Page::integer()) -> boolean()),
Option ::{onPreparePrinting, fun((wxPrintout()) -> ok)} |
{onBeginPrinting, fun((wxPrintout()) -> ok)} |
{onEndPrinting, fun((wxPrintout()) -> ok)} |
{onBeginDocument, fun((wxPrintout(), StartPage::integer(), EndPage::integer()) -> boolean())} |
{onEndDocument, fun((wxPrintout()) -> ok)} |
{hasPage, fun((wxPrintout(), Page::integer()) -> ok)} |
{getPageInfo, fun((wxPrintout()) ->
{MinPage::integer(), MaxPage::integer(),
PageFrom::integer(), PageTo::integer()})}.
new(Title, OnPrintPage, Opts) when is_list(Title), is_function(OnPrintPage), is_list(Opts) ->
OnPrintPageId = wxe_util:get_cbId(OnPrintPage),
MOpts = fun({onPreparePrinting, F},Acc) when is_function(F) ->
[{onPreparePrinting, wxe_util:get_cbId(F)}|Acc];
({onBeginPrinting, F},Acc) when is_function(F) ->
[{onBeginPrinting, wxe_util:get_cbId(F)}|Acc];
({onEndPrinting, F},Acc) when is_function(F) ->
[{onEndPrinting, wxe_util:get_cbId(F)}|Acc];
({onBeginDocument, F},Acc) when is_function(F) ->
[{onBeginDocument, wxe_util:get_cbId(F)}|Acc];
({onEndDocument, F},Acc) when is_function(F) ->
[{onEndDocument, wxe_util:get_cbId(F)}|Acc];
({hasPage, F},Acc) when is_function(F) ->
[{hasPage, wxe_util:get_cbId(F)}|Acc];
({getPageInfo, F},Acc) when is_function(F) ->
[{getPageInfo,wxe_util:get_cbId(F)}|Acc]
end,
OptsMod = lists:foldl(MOpts, [], Opts),
Title_UC = unicode:characters_to_binary(Title),
Op = ~s,
wxe_util:queue_cmd(Title_UC, OnPrintPageId, OptsMod, ?get_env(), Op),
wxe_util:rec(Op).
wxPrintout>>
|