X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ec873c943d71f0d5f13e3398557071448cda6c23..a4027e74873007e3430af3bd77019bcab76f6c04:/wxPython/contrib/activex/wxie/wxActiveXFrame.cpp diff --git a/wxPython/contrib/activex/wxie/wxActiveXFrame.cpp b/wxPython/contrib/activex/wxie/wxActiveXFrame.cpp deleted file mode 100644 index ff6ddcbd84..0000000000 --- a/wxPython/contrib/activex/wxie/wxActiveXFrame.cpp +++ /dev/null @@ -1,284 +0,0 @@ -/* - wxActiveX Library Licence, Version 3 - ==================================== - - Copyright (C) 2003 Lindsay Mathieson [, ...] - - Everyone is permitted to copy and distribute verbatim copies - of this licence document, but changing it is not allowed. - - wxActiveX LIBRARY LICENCE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - This library is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public Licence as published by - the Free Software Foundation; either version 2 of the Licence, or (at - your option) any later version. - - This library is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library - General Public Licence for more details. - - You should have received a copy of the GNU Library General Public Licence - along with this software, usually in a file named COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA. - - EXCEPTION NOTICE - - 1. As a special exception, the copyright holders of this library give - permission for additional uses of the text contained in this release of - the library as licenced under the wxActiveX Library Licence, applying - either version 3 of the Licence, or (at your option) any later version of - the Licence as published by the copyright holders of version 3 of the - Licence document. - - 2. The exception is that you may use, copy, link, modify and distribute - under the user's own terms, binary object code versions of works based - on the Library. - - 3. If you copy code from files distributed under the terms of the GNU - General Public Licence or the GNU Library General Public Licence into a - copy of this library, as this licence permits, the exception does not - apply to the code that you add in this way. To avoid misleading anyone as - to the status of such modified files, you must delete this exception - notice from such code and/or adjust the licensing conditions notice - accordingly. - - 4. If you write modifications of your own for this library, it is your - choice whether to permit this exception to apply to your modifications. - If you do not wish that, you must delete the exception notice from such - code and/or adjust the licensing conditions notice accordingly. -*/ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- -// For compilers that support precompilation, includes "wx/wx.h". -#if defined(__WXGTK__) || defined(__WXMOTIF__) - #include "wx/wx.h" -#endif -#include "wx/wxprec.h" -#include "wx/filedlg.h" -#include "wx/textdlg.h" -#include "wxActiveXFrame.h" -#include -using namespace std; -#include "wx/splitter.h" -#include "wx/textctrl.h" -#include "wx/clipbrd.h" -#include - -enum -{ - // menu items - MENU_GETTYPEINFO = 700, - MENU_INVOKEMETHOD, - MENU_TEST -}; - -BEGIN_EVENT_TABLE(wxActiveXFrame, wxFrame) - EVT_MENU(MENU_GETTYPEINFO, wxActiveXFrame::OnGetTypeInfo) - EVT_MENU(MENU_INVOKEMETHOD, wxActiveXFrame::OnInvokeMethod) - EVT_MENU(MENU_TEST, wxActiveXFrame::OnTest) -END_EVENT_TABLE() - - -wxActiveXFrame::wxActiveXFrame(wxWindow *parent, wxString title) : - wxFrame(parent, -1, title) -{ - // create a menu bar - wxMenu *xMenu = new wxMenu("", wxMENU_TEAROFF); - - xMenu->Append(MENU_GETTYPEINFO, "Get Type Info", ""); - xMenu->Append(MENU_INVOKEMETHOD, "Invoke Method (no params)", ""); - xMenu->Append(MENU_TEST, "Test", "For debugging purposes"); - - // now append the freshly created menu to the menu bar... - wxMenuBar *menuBar = new wxMenuBar(); - menuBar->Append(xMenu, "&ActiveX"); - - // ... and attach this menu bar to the frame - SetMenuBar(menuBar); - - wxSplitterWindow *sp = new wxSplitterWindow(this); - X = new wxActiveX(sp, title, 101); - - textLog = new wxTextCtrl(sp, -1, "", wxPoint(0,0), wxDefaultSize, wxTE_MULTILINE | wxTE_READONLY); - - sp->SplitHorizontally(X, textLog, 0); - - // conenct all events - for (int i = 0; i < X->GetEventCount(); i++) - { - const wxActiveX::FuncX& func = X->GetEventDesc(i); - const wxEventType& ev = RegisterActiveXEvent((DISPID) func.memid); - Connect(101, ev, (wxObjectEventFunction) OnActiveXEvent); - }; -} - -wxString VarTypeAsString(VARTYPE vt) -{ -#define VT(vtype, desc) case vtype : return desc - - if (vt & VT_BYREF) - vt -= VT_BYREF; - - if (vt & VT_ARRAY) - vt -= VT_ARRAY; - - switch (vt) - { - VT(VT_SAFEARRAY, "SafeArray"); - VT(VT_EMPTY, "empty"); - VT(VT_NULL, "null"); - VT(VT_UI1, "byte"); - VT(VT_I1, "char"); - VT(VT_I2, "short"); - VT(VT_I4, "long"); - VT(VT_UI2, "unsigned short"); - VT(VT_UI4, "unsigned long"); - VT(VT_INT, "int"); - VT(VT_UINT, "unsigned int"); - VT(VT_R4, "real(4)"); - VT(VT_R8, "real(8)"); - VT(VT_CY, "Currency"); - VT(VT_DATE, "wxDate"); - VT(VT_BSTR, "wxString"); - VT(VT_DISPATCH, "IDispatch"); - VT(VT_ERROR, "SCode Error"); - VT(VT_BOOL, "bool"); - VT(VT_VARIANT, "wxVariant"); - VT(VT_UNKNOWN, "IUknown"); - VT(VT_VOID, "void"); - VT(VT_PTR, "void *"); - VT(VT_USERDEFINED, "*user defined*"); - - default: - { - wxString s; - s << "Unknown(" << vt << ")"; - return s; - }; - }; - -#undef VT -}; - -#define ENDL "\r\n" - - -void OutFunc(wxString& os, const wxActiveX::FuncX& func) -{ - os << VarTypeAsString(func.retType.vt) << " " << func.name << "("; - for (unsigned int p = 0; p < func.params.size(); p++) - { - const wxActiveX::ParamX& param = func.params[p]; - if (param.IsIn() && param.IsOut()) - os << "[IN OUT] "; - else if (param.IsIn()) - os << "[IN] "; - else if (param.IsIn()) - os << "[OUT] "; - os << VarTypeAsString(param.vt) << " " << (param.isPtr ? "*" : "") << param.name; - if (p < func.params.size() - 1) - os << ", "; - }; - os << ")" << ENDL; -}; - -void wxActiveXFrame::OnGetTypeInfo(wxCommandEvent& event) -{ - wxString os; - - int i =0; - os << - "Props" << ENDL << - "=====" << ENDL; - for (i = 0; i < X->GetPropCount(); i++) - { - wxActiveX::PropX prop = X->GetPropDesc(i); - os << VarTypeAsString(prop.type.vt) << " " << prop.name << "("; - if (prop.CanSet()) - { - os << VarTypeAsString(prop.arg.vt); - }; - os << ")" << ENDL; - - }; - os << ENDL; - - os << - "Events" << ENDL << - "======" << ENDL; - for (i = 0; i < X->GetEventCount(); i++) - OutFunc(os, X->GetEventDesc(i)); - os << ENDL; - - os << - "Methods" << ENDL << - "=======" << ENDL; - for (i = 0; i < X->GetMethodCount(); i++) - OutFunc(os, X->GetMethodDesc(i)); - os << ENDL; - - - if (wxTheClipboard->Open()) - { - wxDataObjectSimple *wo = new wxTextDataObject(os); - wxTheClipboard->SetData(wo); - wxTheClipboard->Flush(); - wxTheClipboard->Close(); - }; - - wxMessageBox(os, "Type Info", wxOK, this); -}; - -void wxActiveXFrame::OnInvokeMethod(wxCommandEvent& event) -{ - //wxTextEntryDialog dlg(this, "Method"); - //if (dlg.ShowModal() == wxID_OK) - // X->CallMethod(dlg.GetValue()); -}; - -void wxActiveXFrame::OnTest(wxCommandEvent& event) -{ - // flash testing - wxVariant args[] = {0L, "http://www.macromedia.com/support/flash/ts/documents/java_script_comm/flash_to_javascript.swf"}; - X->CallMethod("LoadMovie", args); - //X->Prop("Movie") = "http://www.macromedia.com/support/flash/ts/documents/java_script_comm/flash_to_javascript.swf"; - - // mc cal testing - //X->Prop("year") = 1964L; - //X->Prop("Value") = wxDateTime::Now(); - - // pdf testing - //wxVariant file = "C:\\WINNT\\wx2\\docs\\pdf\\dialoged.pdf"; - //X->CallMethod("LoadFile", &file); -}; - -void wxActiveXFrame::OnActiveXEvent(wxActiveXEvent& event) -{ -#ifdef UNICODE - wostringstream os; -#else - ostringstream os; -#endif - - os << (const wxChar *) event.EventName() << wxT("("); - - for (int p = 0; p < event.ParamCount(); p++) - { - os << - (const wxChar *) event.ParamType(p) << wxT(" ") << - (const wxChar *) event.ParamName(p) << wxT(" = ") << - (const wxChar *) (wxString) event[p]; - if (p < event.ParamCount() - 1) - os << wxT(", "); - }; - os << wxT(")") << endl; - wxString data = os.str().c_str(); - textLog->AppendText(data); -}; -