From 84adefa331c4159d432d22840663c38f155cd4c1 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Fri, 20 Nov 2009 14:54:40 +0000 Subject: The R13B03 release. --- lib/wx/api_gen/wx_extra/wxPrintout.erl | 102 +++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 lib/wx/api_gen/wx_extra/wxPrintout.erl (limited to 'lib/wx/api_gen/wx_extra/wxPrintout.erl') diff --git a/lib/wx/api_gen/wx_extra/wxPrintout.erl b/lib/wx/api_gen/wx_extra/wxPrintout.erl new file mode 100644 index 0000000000..be8f2e2fa5 --- /dev/null +++ b/lib/wx/api_gen/wx_extra/wxPrintout.erl @@ -0,0 +1,102 @@ +%% +%% %CopyrightBegin% +%% +%% Copyright Ericsson AB 2008-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% +%% +<> + +< wxPrintout:wxPrintout() +%% @doc @equiv new(Title, OnPrintPage, []) +new(Title, OnPrintPage) -> + new(Title, OnPrintPage, []). + +%% @spec (Title::string(), OnPrintPage::function(), [Option]) -> wxPrintout:wxPrintout() +%% Option = {onPreparePrinting, OnPreparePrinting::function()} | +%% {onBeginPrinting, OnBeginPrinting::function()} | +%% {onEndPrinting, OnEndPrinting::function()} | +%% {onBeginDocument, OnBeginDocument::function()} | +%% {onEndDocument, OnEndDocument::function()} | +%% {hasPage, HasPage::function()} | +%% {getPageInfo, GetPageInfo::function()} +%% @doc Creates a wxPrintout object with a callback fun and optionally other callback funs.
+%%
OnPrintPage(This,Page) -> boolean() 
+%%
OnPreparePrinting(This) -> term()   
+%%
OnBeginPrinting(This) -> term()   
+%%
OnEndPrinting(This) -> term()   
+%%
OnBeginDocument(This,StartPage,EndPage) -> boolean()  
+%%
OnEndDocument(This) -> term()  
+%%
HasPage(This,Page)} -> boolean()   
+%%
GetPageInfo(This) -> {MinPage:.integer(), MaxPage::integer(), PageFrom::integer(), PageTo::integer()}  
+%% The This argument is the wxPrintout object reference to this object +%%
NOTE: The callbacks may not call other processes. +new(Title, OnPrintPage, Opts) when is_list(Title), is_function(OnPrintPage), is_list(Opts) -> + OnPrint = fun([This,Page]) -> + Bool = OnPrintPage(This,Page), + <<(wxe_util:from_bool(Bool)):32/?UI>> + end, + OnPrintPageId = wxe_util:get_cbId(OnPrint), + MOpts = fun({onPreparePrinting, F},Acc) when is_function(F) -> + Fun = fun([This]) -> + F(This), + <<>> + end, + [<<1:32/?UI,(wxe_util:get_cbId(Fun)):32/?UI>>|Acc]; + ({onBeginPrinting, F},Acc) when is_function(F) -> + Fun = fun([This]) -> + F(This), + <<>> + end, + [<<2:32/?UI,(wxe_util:get_cbId(Fun)):32/?UI>>|Acc]; + ({onEndPrinting, F},Acc) when is_function(F) -> + Fun = fun([This]) -> + F(This), + <<>> + end, + [<<3:32/?UI,(wxe_util:get_cbId(Fun)):32/?UI>>|Acc]; + ({onBeginDocument, F},Acc) when is_function(F) -> + Fun = fun([This,S,E]) -> + BegD = F(This,S,E), + <<(wxe_util:from_bool(BegD)):32/?UI>> + end, + [<<4:32/?UI,(wxe_util:get_cbId(Fun)):32/?UI>>|Acc]; + ({onEndDocument, F},Acc) when is_function(F) -> + Fun = fun([This]) -> + F(This), + <<>> + end, + [<<5:32/?UI,(wxe_util:get_cbId(Fun)):32/?UI>>|Acc]; + ({hasPage, F},Acc) when is_function(F) -> + Fun = fun([This,Page]) -> + HasP = F(This,Page), + <<(wxe_util:from_bool(HasP)):32/?UI>> + end, + [<<6:32/?UI,(wxe_util:get_cbId(Fun)):32/?UI>>|Acc]; + ({getPageInfo, F},Acc) when is_function(F) -> + Fun = fun([This]) -> + {Min,Max,PF,PT} = F(This), + <> + end, + [<<7:32/?UI,(wxe_util:get_cbId(Fun)):32/?UI>>|Acc] + end, + BinOpt = list_to_binary(lists:foldl(MOpts, [<<0:32>>], Opts)), + Title_UC = unicode:characters_to_binary([Title,0]), + wxe_util:call(~s, << (byte_size(Title_UC)):32/?UI,Title_UC/binary, + 0:(((8- ((4+byte_size(Title_UC)) band 16#7)) band 16#7))/unit:8, + OnPrintPageId:32/?UI, + BinOpt/binary>>). + +wxPrintout>> -- cgit v1.2.3