Patch #2959 2010-03-26 00:26

cryogen

Added wxHyperlinkCtrl to wxSmith.
Download
2959-Added_wxHyperl.patch (9.5 KB)
Category
Plugin::FeatureAdd
Status
Accepted
Close date
2010-08-01 09:50
Assigned to
mortenmacfly
Index: src/plugins/contrib/wxSmith/wxSmith-unix.cbp
===================================================================
--- src/plugins/contrib/wxSmith/wxSmith-unix.cbp    (revision 6195)
+++ src/plugins/contrib/wxSmith/wxSmith-unix.cbp    (working copy)
@@ -456,6 +456,12 @@
         <Unit filename="wxwidgets/defitems/wxshtmlwindow.h">
             <Option target="wxSmithLib" />
         </Unit>
+        <Unit filename="wxwidgets/defitems\wxshyperlinkctrl.cpp">
+            <Option target="wxSmithLib" />
+        </Unit>
+        <Unit filename="wxwidgets/defitems\wxshyperlinkctrl.h">
+            <Option target="wxSmithLib" />
+        </Unit>
         <Unit filename="wxwidgets/defitems/wxslistbook.cpp">
             <Option target="wxSmithLib" />
         </Unit>
Index: src/plugins/contrib/wxSmith/wxSmith.cbp
===================================================================
--- src/plugins/contrib/wxSmith/wxSmith.cbp    (revision 6195)
+++ src/plugins/contrib/wxSmith/wxSmith.cbp    (working copy)
@@ -479,6 +479,12 @@
         <Unit filename="wxwidgets\defitems\wxshtmlwindow.h">
             <Option target="wxSmithLib" />
         </Unit>
+        <Unit filename="wxwidgets\defitems\wxshyperlinkctrl.cpp">
+            <Option target="wxSmithLib" />
+        </Unit>
+        <Unit filename="wxwidgets\defitems\wxshyperlinkctrl.h">
+            <Option target="wxSmithLib" />
+        </Unit>
         <Unit filename="wxwidgets\defitems\wxslistbook.cpp">
             <Option target="wxSmithLib" />
         </Unit>
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/Makefile.am
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/Makefile.am    (revision 6195)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/Makefile.am    (working copy)
@@ -74,7 +74,8 @@
 ./wxssingleinstancechecker.cpp \
 ./wxsstopwatch.cpp \
 ./wxssymbolpickerdialog.cpp \
-./wxsglcanvas.cpp
+./wxsglcanvas.cpp \
+./wxshyperlinkctrl.cpp
 
 noinst_HEADERS = \
 ./wxsgauge.h \
@@ -139,5 +140,6 @@
 ./wxssingleinstancechecker.h \
 ./wxsstopwatch.h \
 ./wxssymbolpickerdialog.h \
-./wxsglcanvas.h
+./wxsglcanvas.h \
+./wxshyperlinkctrl.h
 
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxshyperlinkctrl.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxshyperlinkctrl.cpp    (revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxshyperlinkctrl.cpp    (revision 0)
@@ -0,0 +1,150 @@
+/*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010  Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith 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 General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#include "wxshyperlinkctrl.h"
+#include "wx/hyperlink.h"
+
+
+namespace
+{
+    wxsRegisterItem<wxsHyperlinkCtrl> Reg(_T("HyperlinkCtrl"),wxsTWidget,_T("Standard"),11);
+
+    WXS_ST_BEGIN(wxsHyperlinkCtrlStyles,_T("wxHL_CONTEXTMENU|wxNO_BORDER|wxHL_ALIGN_CENTRE"))
+        WXS_ST_CATEGORY("wxHyperlinkCtrl")
+        WXS_ST(wxHL_CONTEXTMENU)
+        WXS_ST(wxHL_ALIGN_LEFT)
+        WXS_ST(wxHL_ALIGN_RIGHT)
+        WXS_ST(wxHL_ALIGN_CENTRE)
+        WXS_ST_DEFAULTS()
+    WXS_ST_END()
+
+    WXS_EV_BEGIN(wxsHyperlinkCtrlEvents)
+        WXS_EVI(EVT_HYPERLINK,wxEVT_COMMAND_HYPERLINK,wxCommandEvent,Click)
+    WXS_EV_END()
+}
+
+/*! \brief Ctor
+ *
+ * \param Data wxsItemResData*    The control's resource data.
+ *
+ */
+wxsHyperlinkCtrl::wxsHyperlinkCtrl(wxsItemResData* Data):
+    wxsWidget(
+        Data,
+        &Reg.Info,
+        wxsHyperlinkCtrlEvents,
+        wxsHyperlinkCtrlStyles),
+    m_Label(_("http://www.codeblocks.org"))
+{}
+
+/*! \brief Create the initial control.
+ *
+ * \return void
+ *
+ */
+void wxsHyperlinkCtrl::OnBuildCreatingCode()
+{
+    switch ( GetLanguage() )
+    {
+        case wxsCPP:
+        {
+            AddHeader(_T("<wx/hyperlink.h>"),GetInfo().ClassName,hfInPCH);
+
+            #if wxCHECK_VERSION(2, 9, 0)
+            Codef(_T("%C(%W, %I, %t, %t, %P, %S, %T, %N);\n"),m_Label.wx_str(), m_URL.wx_str());
+            #else
+            Codef(_T("%C(%W, %I, %t, %t, %P, %S, %T, %N);\n"),m_Label.c_str(), m_URL.c_str());
+            #endif
+
+            wxString ss = m_NormalColour.BuildCode( GetCoderContext() );
+            #if wxCHECK_VERSION(2, 9, 0)
+            if (!ss.IsEmpty()) Codef(_T("%ASetNormalColour(%s);\n"), ss.wx_str());
+            #el
download for full patch...
cryogen 2010-03-26 00:30

I've been missing this control in wxSmith for some time. Now I need miss it no longer. :-)

cryogen 2010-03-26 02:47

Didn't test well enough, apparently. Fixed bugs.

cryogen 2010-05-16 03:11

Fixed a typo in the default label.