diff options
author | Dan Gudmundsson <[email protected]> | 2014-01-14 13:17:25 +0100 |
---|---|---|
committer | Dan Gudmundsson <[email protected]> | 2014-01-21 16:04:26 +0100 |
commit | 6459bb3e5c82cdd5474bdd77d8aff3a12ce88910 (patch) | |
tree | b6e69430f8827bef89871efdb7681a5e418960d9 /lib/wx/c_src/wxePrintout.cpp | |
parent | cdd8d5daadc29a128e7c671e705a3e3ad32c7ecb (diff) | |
download | otp-6459bb3e5c82cdd5474bdd77d8aff3a12ce88910.tar.gz otp-6459bb3e5c82cdd5474bdd77d8aff3a12ce88910.tar.bz2 otp-6459bb3e5c82cdd5474bdd77d8aff3a12ce88910.zip |
wx: Refactor C++ code
Try to clean up the files a bit
Diffstat (limited to 'lib/wx/c_src/wxePrintout.cpp')
-rw-r--r-- | lib/wx/c_src/wxePrintout.cpp | 243 |
1 files changed, 0 insertions, 243 deletions
diff --git a/lib/wx/c_src/wxePrintout.cpp b/lib/wx/c_src/wxePrintout.cpp deleted file mode 100644 index fc8782ba95..0000000000 --- a/lib/wx/c_src/wxePrintout.cpp +++ /dev/null @@ -1,243 +0,0 @@ -/* - * %CopyrightBegin% - * - * Copyright Ericsson AB 2008-2013. 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% - */ - -#include <wx/wx.h> -#include "wxe_impl.h" -#include "wxe_return.h" -#include "gen/wxe_macros.h" -#include "gen/wxe_derived_dest.h" - -/* *****************************************************************/ -/* Special Class impls */ - -#define INVOKE_CALLBACK_INIT(port, callback, class_str) \ - { \ - wxeMemEnv * memenv = ((WxeApp *) wxTheApp)->getMemEnv(port); \ - wxeReturn rt = wxeReturn(WXE_DRV_PORT, memenv->owner, false); \ - rt.addInt(callback); \ - rt.addRef(((WxeApp *) wxTheApp)->getRef((void *)this, memenv), class_str); - -#define INVOKE_CALLBACK_END(port, args) \ - rt.endList(1 + (args)); \ - rt.addAtom("_wx_invoke_cb_"); \ - rt.addTupleCount(3); \ - rt.send(); \ - handle_event_callback(WXE_DRV_PORT_HANDLE, memenv->owner); \ - } - -#define INVOKE_CALLBACK(port, callback, class_str) \ - INVOKE_CALLBACK_INIT(port, callback, class_str); \ - INVOKE_CALLBACK_END(port, 0) - -/* *****************************************************************/ -/* Printing special */ - -wxEPrintout::~wxEPrintout() { - clear_cb(port, onPrintPage); - clear_cb(port, onPreparePrinting); - clear_cb(port, onBeginPrinting); - clear_cb(port, onEndPrinting); - clear_cb(port, onBeginDocument); - clear_cb(port, onEndDocument); - clear_cb(port, hasPage); - clear_cb(port, getPageInfo); - - ((WxeApp *)wxTheApp)->clearPtr(this); -} - -bool wxEPrintout::OnBeginDocument(int startPage, int endPage) -{ - if(onBeginDocument) { - INVOKE_CALLBACK_INIT(port, onBeginDocument, "wxPrintout"); - rt.addInt(startPage); - rt.addInt(endPage); - INVOKE_CALLBACK_END(port, 2); - if(((WxeApp *) wxTheApp)->cb_buff) { - int res = * (int*) ((WxeApp *) wxTheApp)->cb_buff; - driver_free(((WxeApp *) wxTheApp)->cb_buff); - ((WxeApp *) wxTheApp)->cb_buff = NULL; - return res; - } - } - return wxPrintout::OnBeginDocument(startPage,endPage); -} - -void wxEPrintout::OnEndDocument() -{ - if(onEndDocument) { - INVOKE_CALLBACK(port, onEndDocument, "wxPrintout"); - } else { - wxPrintout::OnEndDocument(); - } -} - -void wxEPrintout::OnBeginPrinting() -{ - - if(onBeginPrinting) { - INVOKE_CALLBACK(port, onBeginPrinting, "wxPrintout"); - } else { - wxPrintout::OnBeginPrinting(); - } -} - -void wxEPrintout::OnEndPrinting() -{ - - if(onEndPrinting) { - INVOKE_CALLBACK(port, onEndPrinting, "wxPrintout"); - } else { - wxPrintout::OnEndPrinting(); - } -} - -void wxEPrintout::OnPreparePrinting() -{ - - if(onPreparePrinting) { - INVOKE_CALLBACK(port, onPreparePrinting, "wxPrintout"); - } else { - wxPrintout::OnPreparePrinting(); - } -} - -bool wxEPrintout::HasPage(int page) -{ - - if(hasPage) { - INVOKE_CALLBACK_INIT(port, hasPage, "wxPrintout"); - rt.addInt(page); - INVOKE_CALLBACK_END(port, 1); - if(((WxeApp *) wxTheApp)->cb_buff) { - int res = * (int*) ((WxeApp *) wxTheApp)->cb_buff; - driver_free(((WxeApp *) wxTheApp)->cb_buff); - ((WxeApp *) wxTheApp)->cb_buff = NULL; - return res; - } - } - return wxPrintout::HasPage(page); -} - -bool wxEPrintout::OnPrintPage(int page) -{ - INVOKE_CALLBACK_INIT(port, onPrintPage, "wxPrintout"); - rt.addInt(page); - INVOKE_CALLBACK_END(port, 1); - if(((WxeApp *) wxTheApp)->cb_buff) { - int res = * (int*) ((WxeApp *) wxTheApp)->cb_buff; - driver_free(((WxeApp *) wxTheApp)->cb_buff); - ((WxeApp *) wxTheApp)->cb_buff = NULL; - return res; - } - return FALSE; -} - -void wxEPrintout::GetPageInfo(int *minPage, int *maxPage, int *pageFrom, int *pageTo) -{ - if(getPageInfo) { - INVOKE_CALLBACK(port, getPageInfo, "wxPrintout"); - if(((WxeApp *) wxTheApp)->cb_buff) { - char * bp = ((WxeApp *) wxTheApp)->cb_buff; - *minPage = *(int *) bp; bp += 4; - *maxPage = *(int *) bp; bp += 4; - *pageFrom = *(int *) bp; bp += 4; - *pageTo = *(int *) bp; bp += 4; - driver_free(((WxeApp *) wxTheApp)->cb_buff); - ((WxeApp *) wxTheApp)->cb_buff = NULL; - } - } - wxPrintout::GetPageInfo(minPage, maxPage, pageFrom, pageTo); -} - -/* *****************************************************************/ -// ListCtrl with callbacks for VIRTUAL_TABLES - -wxString EwxListCtrl::OnGetItemText(long item, long col) const { - if(onGetItemText) { - INVOKE_CALLBACK_INIT(port, onGetItemText, "wxListCtrl"); - rt.addInt(item); - rt.addInt(col); - INVOKE_CALLBACK_END(port, 2); - if(((WxeApp *) wxTheApp)->cb_buff) { - char * bp = ((WxeApp *) wxTheApp)->cb_buff; - wxString str = wxString(bp, wxConvUTF8); - driver_free(((WxeApp *) wxTheApp)->cb_buff); - ((WxeApp *) wxTheApp)->cb_buff = NULL; - return str; - } - } - return wxT("OnGetItemText not correctly defined"); -} - -wxListItemAttr* EwxListCtrl::OnGetItemAttr(long item) const { - if(onGetItemAttr) { - INVOKE_CALLBACK_INIT(port, onGetItemAttr, "wxListCtrl"); - rt.addInt(item); - INVOKE_CALLBACK_END(port, 1); - char * bp = ((WxeApp *) wxTheApp)->cb_buff; - wxeMemEnv * memenv = ((WxeApp *) wxTheApp)->getMemEnv(port); - if(bp) { - wxListItemAttr * result = (wxListItemAttr *)((WxeApp *) wxTheApp)->getPtr(bp, memenv); - driver_free(((WxeApp *) wxTheApp)->cb_buff); - ((WxeApp *) wxTheApp)->cb_buff = NULL; - return result; - } - } - return NULL; -} - -int EwxListCtrl::OnGetItemImage(long item) const { - return OnGetItemColumnImage(item, 0); -} - -int EwxListCtrl::OnGetItemColumnImage(long item, long col) const { - if(onGetItemColumnImage) { - INVOKE_CALLBACK_INIT(port, onGetItemColumnImage, "wxListCtrl"); - rt.addInt(item); - rt.addInt(col); - INVOKE_CALLBACK_END(port, 2); - if(((WxeApp *) wxTheApp)->cb_buff) { - int res = * (int*) ((WxeApp *) wxTheApp)->cb_buff; - driver_free(((WxeApp *) wxTheApp)->cb_buff); - ((WxeApp *) wxTheApp)->cb_buff = NULL; - return res; - } - } - return -1; -} - -EwxListCtrl::~EwxListCtrl() { - clear_cb(port, onGetItemText); - clear_cb(port, onGetItemAttr); - clear_cb(port, onGetItemColumnImage); - ((WxeApp *)wxTheApp)->clearPtr(this); -} -// tools - -void clear_cb(ErlDrvTermData port, int callback) -{ - if(callback > 0) { - wxeMemEnv * memenv = ((WxeApp *) wxTheApp)->getMemEnv(port); - wxeReturn rt = wxeReturn(WXE_DRV_PORT, memenv->owner, false); - rt.addAtom("wx_delete_cb"); - rt.addInt(callback); - rt.addTupleCount(2); - rt.send(); - } -} |