MediaWiki API result

This is the HTML representation of the JSON format. HTML is good for debugging, but is unsuitable for application use.

Specify the format parameter to change the output format. To see the non-HTML representation of the JSON format, set format=json.

See the complete documentation, or the API help for more information.

{
    "batchcomplete": "",
    "continue": {
        "gapcontinue": "SDK:Arrange_Controls",
        "continue": "gapcontinue||"
    },
    "warnings": {
        "main": {
            "*": "Subscribe to the mediawiki-api-announce mailing list at <https://lists.wikimedia.org/postorius/lists/mediawiki-api-announce.lists.wikimedia.org/> for notice of API deprecations and breaking changes."
        },
        "revisions": {
            "*": "Because \"rvslots\" was not specified, a legacy format has been used for the output. This format is deprecated, and in the future the new format will always be used."
        }
    },
    "query": {
        "pages": {
            "6822": {
                "pageid": 6822,
                "ns": 0,
                "title": "SDK",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "{{LocationMain|category=LocationSDKSpecial|specific=}}\n<div class=\"rightmenu\">\n__TOC__\n</div>\n== The SDK ==\n\nVectorworks (http://www.vectorworks.net) provides an open architecture that allows developers to supplement or replace existing Vectorworks functionality. From the user\u2019s perspective, these new tools, menu commands, and objects are indistinguishable from those built into Vectorworks. As such, they are first class solutions for the user. \n\nThe SDK (https://www.vectorworks.net/en-US/support/custom/sdk/sdkdown) provides OS independent functionality for accessing the application routines. Also, it provides functions for creating OS independent User Interface for your plug-ins.\n\n== The SDK for beginners ==\n\n*[[SDK:Tutorial]]\n*[[SDK:Tutorial Module Main]]\n*[[SDK:Tutorial An Extension Implementation]]\n*[[SDK:Tutorial A Menu Command]]\n\n== Basics ==\n\nThe Vectorworks SDK uses the C++ language to develop extension functionality. To develop SDK plug-ins for Vectorworks, you will need the following tools:\n\n* Vectorworks 2014:\n** MS Visual Studio 2012 for MS Windows XP and later.\n** A [[how_to_modify_xcode452_for_vectorworks2014_development|modified Xcode 4.5.2]] for Mac OS X 10.6.0 and later. \n\n* Vectorworks 2013:\n** MS Visual Studio 2005 for MS Windows XP and later.\n** Xcode 3.2 for Mac OS X 10.6.0 and later.\n\nBefore you begin, you should review [[SDK:The Vectorworks Environment|the Vectorworks environment]].\n\nThe Vectorworks SDK provides [[SDK:Types|some specific types]]. A developer should use the recommended types. Here is a short list of most commonly used types:\n*[[SDK:MCObjectHandle|MCObjectHandle]]\n*[[SDK:TXString|TXString]]\n*[[SDK:TXStringArray|TXStringArray]]\n*[[SDK:WorldPt|WorldPt]]\n*[[SDK:WorldPt3|WorldPt3]]\n*[[SDK:TransformMatrix|TransformMatrix]]\n\n== Working with the SDK ==\n\n* [[SDK:Using the SDK|Using the SDK]]\n* [[Vectorworks Scripting#Installing Scripts|Installing Scripts and Plug-ins]]\n\n== Plug-ins Modules ==\n\nVectorworks plug-in is a dynamic library on Windows and a specific type bundle on Mac. \n\nOn launch time Vectorworks enumerates the 'Plug-ins' folder next to the application for dynamic libraries (or bundles). Also, Vectorworks traverses shortcuts (aliases) placed in the folder hierarchy.\n\nEach Plug-in module is a [[VCOM:VCOM (Vectorworks Component Object Model)]] provider library. This library provides one or many VCOM implementation of standard interfaces for the different extensions.\n\n[[SDK:Plug-in_Module|More information on the topic see here]].\n\n== Layout Manager ==\n\n[[SDK:Layout Manager]]\n\n== VWFC ==\n\n[[SDK:VectorWorks Foundation Classes]]\n\n== Version Information ==\n\n*[[SDK:Vectorworks 2024 Development|Vectorworks 2024]]\n*[[SDK:Vectorworks 2023 Development|Vectorworks 2023]]\n*[[SDK:Vectorworks 2022 Development|Vectorworks 2022]]\n*[[SDK:Vectorworks 2021 Development|Vectorworks 2021]]\n*[[SDK:Vectorworks 2020 Development|Vectorworks 2020]]\n*[[SDK:Vectorworks 2019 Development|Vectorworks 2019]]\n*[[SDK:Vectorworks 2018 Development|Vectorworks 2018]]\n*[[SDK:Vectorworks 2017 Development|Vectorworks 2017]]\n*[[SDK:Vectorworks 2016 Development|Vectorworks 2016]]\n*[[SDK:Vectorworks 2015 Development|Vectorworks 2015]]\n*[[SDK:Vectorworks 2014 Development|Vectorworks 2014]]\n*[[SDK:Vectorworks 2013 Development|Vectorworks 2013]]\n*[[SDK:Vectorworks 2012 Development|Vectorworks 2012]]\n*[[SDK:Vectorworks 2011 Development|Vectorworks 2011]]\n*[[SDK:Vectorworks 2010 Development|Vectorworks 2010]]\n*[[SDK:Vectorworks 2009 Development|Vectorworks 2009]]\n\n[[Category:SDK]]"
                    }
                ]
            },
            "6823": {
                "pageid": 6823,
                "ns": 0,
                "title": "SDK:Add TabPane handler class",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "{{LocationMain|category=LocationSDKSpecial|specific=}}\n<div class=\"rightmenu\">\n__TOC__\n</div>\nHere are the steps describing how to create a class which will handle events for a tab pane of a tab control. \nYou have to create one class for each tab pane in your tab control. \n\nCreate class for the tab pane:\n\n== Create class ==\nInherit [[VectorWorks:VWUI:VWTabPaneCtrl|VWTabPaneCtrl]] class. Note that the class defines a event dispatch map. The parent dialog will pass the messages and this class will have the opportunity to handle the events in a proper way. Also you may also use the DDX mechanism ([[SDK:Working with Dynamic Data Exchange (DDX)|Dynamic Data Exchange (DDX)]] ) \n\n<code lang=\"cpp\">\n//////////////////////////////////////////////////////////////////////////\n// MyTabPane1.h\nclass CMyTabPane1 : public VWFC::VWUI::VWTabPaneCtrl\n{\npublic:\n                            CMyTabPane1();\n    virtual                 ~CMyTabPane1();\n\n// events\nprotected:\n    virtual void            OnSetUpEvent();\n    virtual void            OnUpdateUI();\n    virtual void            OnDDXInitialize();\n\n// events dispatcher map\nprotected:\n   DEFINE_EVENT_DISPATH_MAP;\n\n// DDX variables\nprotected:\n\n// local data\nprivate:\n\n};\n</code>\n\n<code lang=\"cpp\">\n//////////////////////////////////////////////////////////////////////////\n// MyTabPane1.cpp\n\n#include \"MyTabPane1.h\"\n\nEVENT_DISPATCH_MAP_BEGIN( CMyTabPane1 );\nEVENT_DISPATCH_MAP_END;\n\nCMyTabPane1::CMyTabPane1()\n{\n    // TODO: init DDX variables\n}\n\nCMyTabPane1::~CMyTabPane1()\n{\n}\n\nvoid CMyTabPane1::OnDDXInitialize()\n{\n     // TODO: attach DDX variables to the controls\n}\n\nvoid CMyTabPane1::OnSetUpEvent()\n{\n}\n\nvoid CMyTabPane1::OnUpdateUI()\n{\n     // TODO: update dialog UI state\n}\n</code>\n\n== Add variables ==\n\nAdd variables for each of the tab pane classes in your dialog class definition.\n\nThese variables are actually instances of the tab panes. Note that in the following example there are two tab pane classes <b>CMyTabPane1</b> and <b>CMyTabPane2</b>.\n\n<code lang=\"cpp\">\n//////////////////////////////////////////////////////////////////////////\nclass CMyDialog : public VWFC::VWUI::VWDialog\n{\npublic:\n                            CMyDialog();\n    virtual                 ~CMyDialog();\n\npublic:\n    virtual bool            CreateDialogLayout();\n\n// events\nprotected:\n    virtual void            OnSetUpEvent();\n    virtual void            OnDDXInitialize();\n\n// dispatch map\nprotected:\n    DEFINE_EVENT_DISPATH_MAP;\n\nprivate:\n    CMyTabPane1            fTheTabPane1;\n    CMyTabPane2            fTheTabPane2;\n};\n</code>\n\n== Tell the dialog ==\nTell the dialog that there are two tab panes to carry about. \n\nIn the constructor of the dialog you have to attach the instances of the tab panes in the dialog. That way the dialog will send the messages to the tab pane classes for processing. \n\n<b>Note</b> As you can see there is no place which each tab pane is attaches to it's parent tab control. That's because the messages from the tab panes are send by VectorWorks directly to the dialog and have nothing to do with the tab pane. Here is why the tab pane classes will receive all the message from the dialog. It is tab pane class' responsibility to handle appropriate events from the controls which are within the tab pane.\n\n<code lang=\"cpp\">\n//////////////////////////////////////////////////////////////////////////\n// The constructor of 'CMyDialog'\nCMyDialog::CMyDialog()\n{\n    this->AddTabPaneControl( & fTheTabPane1 );\n    this->AddTabPaneControl( & fTheTabPane2 );\n}\n</code>\n\n\n== See Also ==\n\n[[SDK:Creating handler class for VectorScript layout dialog]] | \n[[SDK:Creating handler class for manual layout dialog]] | \n[[SDK:Working with Dynamic Data Exchange (DDX)]]\n\n[[Category:SDK|Add TabPane handler class]]\n[[Category:VWUI|Add TabPane handler class]]\n[[Category:Layout Manager|Add TabPane handler class]]"
                    }
                ]
            }
        }
    }
}