wxWidgets 2.8.12 FreeBASIC C wrapper
It's not good to break with old structures.
I think it's ok to make a OOP-wrap because it's on code-base in the header and don't affect the wrapper. Add new things to the wrapper will break the compatibility to the original wx-c and this may be a real problem for feature versions. A solution could be overloading the functions but with every new version of wx-c all the changes have to be done again.
For now I'll keep to the last version of the header. Thank you so far.
I think it's ok to make a OOP-wrap because it's on code-base in the header and don't affect the wrapper. Add new things to the wrapper will break the compatibility to the original wx-c and this may be a real problem for feature versions. A solution could be overloading the functions but with every new version of wx-c all the changes have to be done again.
For now I'll keep to the last version of the header. Thank you so far.
-
- Posts: 8586
- Joined: May 28, 2005 3:28
- Contact:
I don't understand you
why you will use the wrong version of wxEvtHandler ?
The addesss of the EventHandler callback was stored in the UserData property
and can be overwritten with your own UserData thats is an critical error:
and what are better ?
wxEvtHandler_proxy(MyButton, @MyEventListener)
wxEvtHandler_Connect(MyButton,EventType)
or the real wxWidget call
wxEvtHandler_Connect(MyButton,EventType,@MyEventHandler)
Again the wc-c project is dead you are talk about the wx.NET C wrapper
(and this wrapper is out of date wxWidget 2.6)
Joshy
why you will use the wrong version of wxEvtHandler ?
The addesss of the EventHandler callback was stored in the UserData property
and can be overwritten with your own UserData thats is an critical error:
and what are better ?
wxEvtHandler_proxy(MyButton, @MyEventListener)
wxEvtHandler_Connect(MyButton,EventType)
or the real wxWidget call
wxEvtHandler_Connect(MyButton,EventType,@MyEventHandler)
Again the wc-c project is dead you are talk about the wx.NET C wrapper
(and this wrapper is out of date wxWidget 2.6)
Joshy
wx-c is part of WX.Net and the latest version is 0.9.2, based on wxWidgets 2.8. The last release was at 2010-07-14. It's just one year and it's not dead.
I want to use the lib provided with this release (at least the code of the bundle). This is what FreeBASICs header did and should do as long as we can't use wxWidgets without any wrapper.
Maybe their eventcall isn't the best solution, but changing it will break with the original code and will break a lot of codes written.
You're doing a wx-c 'fork'...
I want to use the lib provided with this release (at least the code of the bundle). This is what FreeBASICs header did and should do as long as we can't use wxWidgets without any wrapper.
Maybe their eventcall isn't the best solution, but changing it will break with the original code and will break a lot of codes written.
You're doing a wx-c 'fork'...
Or more logical to use the official wxwidgets to ensure future compatibility, well ok I get out ...MOD wrote:wx-c is part of WX.Net and the latest version is 0.9.2, based on wxWidgets 2.8. The last release was at 2010-07-14. It's just one year and it's not dead.
I want to use the lib provided with this release (at least the code of the bundle). This is what FreeBASICs header did and should do as long as we can't use wxWidgets without any wrapper.
Maybe their eventcall isn't the best solution, but changing it will break with the original code and will break a lot of codes written.
You're doing a wx-c 'fork'...
-
- Posts: 8586
- Joined: May 28, 2005 3:28
- Contact:
If i renember me right the first FreeBASIC wx-c headers was from wxc.sourceforge.net
Be open for new things in the world of IT things changing very often. :-)
I'm not a slave from any NET or MONO project we can have our own wxWidgets FB wrapper.
I added wxGLCanvas, wxTimer, wxSound and will add all the missing cool stuff TCPServer, TCPClient ... later.
I fixed some mistakes and made every class safer if(self!=NULL) and so one
i wrote a new 100% compatibe wxEvtHandler.
Now it's your turn would be cool if you support FreeBASIC with your wxDesigner.
Joshy
Be open for new things in the world of IT things changing very often. :-)
I'm not a slave from any NET or MONO project we can have our own wxWidgets FB wrapper.
I added wxGLCanvas, wxTimer, wxSound and will add all the missing cool stuff TCPServer, TCPClient ... later.
I fixed some mistakes and made every class safer if(self!=NULL) and so one
i wrote a new 100% compatibe wxEvtHandler.
Now it's your turn would be cool if you support FreeBASIC with your wxDesigner.
Joshy
http://www.freebasic.net/index.php/deta ... =lib&id=35
It's WX.Nets wrapper not wxc.
It is easier to have the Net-people which update the wrapper and only translate the header than when 1-2 people update a special FB-version.
If you want to provide this new methods maybe it would be an idea to split it up in two libs. The first one just uses the original wx-c methods, the second one the new methods.
It's WX.Nets wrapper not wxc.
It is easier to have the Net-people which update the wrapper and only translate the header than when 1-2 people update a special FB-version.
If you want to provide this new methods maybe it would be an idea to split it up in two libs. The first one just uses the original wx-c methods, the second one the new methods.
-
- Posts: 8586
- Joined: May 28, 2005 3:28
- Contact:
The wx-c lib is uptodate for Linux and Windows now.
buttonarray_object.bas
buttonarray_wx-c.bas
clientdc01_object.bas
clientdc01_wx-c.bas
demo01_wx-c.bas
glcanvas01_wx-c.bas
mdi01_wx-c.bas
menu01_wx-c.bas
sizer01_wc-c.bas
sound01_wc-c.bas
test01_object.bas
test01_wx-c.bas
test02_object.bas
test02_wx-c.bas
test03_wx-c.bas
timer01_wx-c.bas
wstring_2_fb.bas
please test it on your box
pease
Joshy
buttonarray_object.bas
buttonarray_wx-c.bas
clientdc01_object.bas
clientdc01_wx-c.bas
demo01_wx-c.bas
glcanvas01_wx-c.bas
mdi01_wx-c.bas
menu01_wx-c.bas
sizer01_wc-c.bas
sound01_wc-c.bas
test01_object.bas
test01_wx-c.bas
test02_object.bas
test02_wx-c.bas
test03_wx-c.bas
timer01_wx-c.bas
wstring_2_fb.bas
please test it on your box
pease
Joshy
Last edited by D.J.Peters on Jul 12, 2011 16:38, edited 1 time in total.
-
- Posts: 8586
- Joined: May 28, 2005 3:28
- Contact:
I saw that you asked what would be better (not really sure, I had no time to read it) and now it's edited. If it was about the lib: the best way to handle it would be, that the libs provided with wx.Net 0.9.2 would work with FB. This is not as easy because of the underscore in this version. Soon I'll have some sparetime and will look at this problem so that we get header for both windows and linux for this lib without having to compile it by yourself. Any further functions should be done with a second lib, a ext-wx-c-lib. I remember defines in your edited code (WX_CODE_ADVANCED). This could be added to the FB-header so that there will be no problems with the original version of the lib and just small fixes needed for new versions and provide additional functionality.
-
- Posts: 8586
- Joined: May 28, 2005 3:28
- Contact:
You maybe changed the eventhandling but it's not 'pure' wx-c. It's compiled by you (btw I'm not sure if you're allowed to add your name as an autor) with lots of functions, which are not included in the original version.
It's maybe nice to have this but what will happen if the wx.Net people change lot of things in the code? You'll have to do it all again.
(demo01_wx-c.bas isn't compiling properly and why this wxSound-info, this warnings are annoying.)
It's maybe nice to have this but what will happen if the wx.Net people change lot of things in the code? You'll have to do it all again.
(demo01_wx-c.bas isn't compiling properly and why this wxSound-info, this warnings are annoying.)
-
- Posts: 8586
- Joined: May 28, 2005 3:28
- Contact:
Only in this one example the old wxEvtHandler_proxy() was missed.
I hope do you have fun with your destructive comments.
demo01-wx-c.bas
I hope do you have fun with your destructive comments.
demo01-wx-c.bas
Code: Select all
''
'' wxWindows-c example, by dumbledore
''
#define DEBUG
#Include Once "inc/wx.bi"
Const FRAME_W = 500
Const FRAME_H = 400
''
'' ids
''
Enum
ID_FRAME=1
ID_PANEL
ID_CLICKMEBUTTON
ID_EXITBUTTON
ID_DIAG_EXITBUTTON
End Enum
Declare Function app_oninit_cb APICALL () As wxBool
Declare Function app_onexit_cb APICALL () As wxInt
''
'' globals
''
Dim Shared As _wxApp Ptr app
Dim Shared As _wxFrame Ptr frame
Dim Shared As _wxDialog Ptr dialog
'':::::
''
'' main
''
app = wxApp_ctor()
wxApp_RegisterVirtual(app, @app_oninit_cb, @app_onexit_cb)
wxApp_Run
'':::::
''
'' dialog's exit button callback
''
Sub diag_exitbutton_cb APICALL (ByVal event As _wxEvent Ptr,iListener as wxInt)
dprint("diag_exitbutton_cb")
wxDialog_EndModal( dialog, 0 )
End Sub
'':::::
''
'' panel's click-me button callback
''
Sub panel_clickmebutton_cb APICALL (ByVal event As _wxEvent Ptr,iListener as wxInt)
dprint("panel_clickmebutton_cb")
wxDialog_ShowModal( dialog )
end Sub
'':::::
''
'' panel's exit button callback
''
Sub panel_exitbutton_cb APICALL (ByVal event As _wxEvent Ptr,iListener as wxInt)
dprint("panel_exitbutton_cb")
wxWindow_Close( frame, 0 )
End Sub
'':::::
''
'' on init callback
''
Function app_oninit_cb APICALL () As wxBool
dprint("app_oninit_cb")
Dim As Integer ypos, size
'' create the main window
frame = wxFrame_ctor( )
wxFrame_Create(frame,,ID_FRAME, wxString("Welcome to WX-C"), _
200, 200, FRAME_W, FRAME_H, _
wxFRAME_DEFAULT_STYLE, WX_NULL )
'' make a dialog
dialog = wxDialog_ctor( )
wxDialog_Create(dialog, frame, -1, wxString("Press Exit"),_
10, 10, 500, 400, _
wxFRAME_DEFAULT_STYLE, 0 )
'' add widgets to the dialog
size = 27
ypos=1
wxButton_Create(wxButton_ctor(),dialog,,wxString("&Goto") ,405,ypos,85)
ypos += size
wxButton_Create(wxButton_ctor(),dialog,,wxString("&Select"),405,ypos,85)
ypos += size
wxButton_Create(wxButton_ctor(),dialog,,wxString("E&dit") ,405,ypos,85)
ypos += size
wxButton_Create(wxButton_ctor(),dialog,,wxString("&Add") ,405,ypos,85)
ypos += size
Dim As _wxButton Ptr diag_exitbutton = wxButton_ctor( )
wxButton_Create(diag_exitbutton, dialog, ID_DIAG_EXITBUTTON, _
wxString("&Exit"), 405, ypos, 85)
wxEvtHandler_proxy(diag_exitbutton,@diag_exitbutton_cb)
wxEvtHandler_Connect(diag_exitbutton,wxEvent_EVT_COMMAND_BUTTON_CLICKED( ))
Dim As _wxListBox Ptr selector = wxListBox_ctor( )
wxListBox_Create( selector, dialog,,,,400,350,0, LB_SINGLE Or LB_NEED_SB Or LB_HSCROLL)
Dim As _wxFont Ptr font = wxFont_ctor( 10, wxMODERN, wxNORMAL, wxNORMAL, 0, 0, 0 )
wxWindow_SetFont( selector, font )
Dim As Integer i
Dim As _wxArrayString Ptr tempString = wxArrayString_ctor( )
For i = 0 To 15
wxArrayString_Add( tempString, wxString("list item " + Str( i+1 )) )
wxListBox_InsertItems( selector, tempString, i )
wxArrayString_Clear( tempString )
Next i
'' create the main panel
Dim As _wxPanel Ptr panel = wxPanel_ctor( )
wxPanel_Create( panel, frame, ID_PANEL, 0, 0, 0, 0 )
'' create a text widget
'' we're not using this thing for any events so it gets an id of -1
Dim As _wxTextCtrl Ptr text = wxTextCtrl_ctor( )
wxTextCtrl_Create(text, panel,, wxString("Hello from wx-c in fb!"), _
8,8,FRAME_W-24,FRAME_H-200, wxVSCROLL)
wxTextCtrl_SetFont( text, font )
'' make a button (sending a wxsize(-1,-1) means take the default size -
'' you can specify just x or y as -1 if you want the other one to be a fixed size
Dim As _wxButton Ptr panel_clickmebutton = wxButton_ctor( )
wxButton_Create(panel_clickmebutton, panel, ID_CLICKMEBUTTON, _
wxString("show dialog"), FRAME_W\2 - 100, FRAME_H - 60)
'' connect the button to the button event handler sub
wxEvtHandler_proxy(panel_clickmebutton,@panel_clickmebutton_cb)
wxEvtHandler_Connect(panel_clickmebutton,wxEvent_EVT_COMMAND_BUTTON_CLICKED( ))
''
Dim As _wxButton Ptr panel_exitbutton = wxButton_ctor( )
wxButton_Create(panel_exitbutton, panel, ID_EXITBUTTON, _
wxString("Exit"), FRAME_W\2 + 40, FRAME_H - 60)
'' connect the button to the button event handler sub
wxEvtHandler_proxy(panel_exitbutton,@panel_exitbutton_cb)
wxEvtHandler_Connect(panel_exitbutton,wxEvent_EVT_COMMAND_BUTTON_CLICKED( ))
'' center it
wxWindow_CenterOnScreen(frame, wxBOTH )
'' show window
wxWindow_Show(frame)
Function = wxApp_OnInit(app)
End Function
'':::::
''
'' on exit callback
''
Function app_onexit_cb APICALL () As wxInt
dprint("app_onexit_cb")
wxMsgBox(,wxString("Bye Bye..."), wxString("Window Closed!"))
Function = wxApp_OnExit( app )
End Function
No, I think you missunderstood what I'm trying to say. I really appreciate what you've done, it's the first step to get the latest wx-c working with FB. But, everthing you're doing beyond the wx.Net version of wx-c, it's not wx-c anymore. It's a new wrapper for wxWidgets, call it wxFB or what you want, but it's not wx-c anymore.
I also really like your implementations for new widgets but my plan is to have compatible header and a compatible designer for the wx-c version included with wx.Net 0.9.2. This is my first aim, nothing more nothing less. When I'm at this point that their lib works with the designer I'll consider making a extended designer for your new wrapper. This will sure take some time but I think it's exactly what FB needs.
My suggestions:
- first rename the lib so it's clear that it's not wx-c from the wx.Net project
- implement all functions and everything what you thing it's a good idea
- make examples for everything what's beyond the original wx-c functionality
Then we can easily change the designers output and it will support your new lib.
I also really like your implementations for new widgets but my plan is to have compatible header and a compatible designer for the wx-c version included with wx.Net 0.9.2. This is my first aim, nothing more nothing less. When I'm at this point that their lib works with the designer I'll consider making a extended designer for your new wrapper. This will sure take some time but I think it's exactly what FB needs.
My suggestions:
- first rename the lib so it's clear that it's not wx-c from the wx.Net project
- implement all functions and everything what you thing it's a good idea
- make examples for everything what's beyond the original wx-c functionality
Then we can easily change the designers output and it will support your new lib.
-
- Posts: 289
- Joined: Oct 10, 2006 7:19
-
- Posts: 7
- Joined: Jun 04, 2010 12:22
I am trying to xrc for gui design and is at a loss how to get the update the controls such as checklistctrl.
In the below example when i use wxwindow functions to update the controls then they work. but if i try to use the control specific functions they fail.
In python I used to use "xrc.XRCCTRL" but i am not able to find any equivalent to that.
Any help will be great.
xrc file
In the below example when i use wxwindow functions to update the controls then they work. but if i try to use the control specific functions they fail.
In python I used to use "xrc.XRCCTRL" but i am not able to find any equivalent to that.
Any help will be great.
Code: Select all
#Define DEBUG
#Include Once "wx-c/wx.bi"
#Include Once "wx-c/arraystring.bi"
#include Once "wx-c/common.bi"
#Include Once "wx-c/listbox.bi"
#include once "wx-c/window.bi"
Const FRAME_W = 500
Const FRAME_H = 400
''
'' ids
''
Enum
ID_FRAME=1
ID_PANEL
ID_CLICKMEBUTTON
ID_EXITBUTTON
ID_DIAG_EXITBUTTON
End Enum
Declare Function app_oninit_cb APICALL () As wxBool
Declare Function app_onexit_cb APICALL () As wxInt
''
'' globals
''
Dim Shared As _wxApp Ptr app
Dim Shared As _wxDialog Ptr dialog
'':::::
'''
'' main
''
'Dim apps As _wxApp Ptr
app = wxApp_ctor()
wxApp_RegisterVirtual(app, @app_oninit_cb, @app_onexit_cb)
wxApp_Run
'':::::
''
'' dialog's exit button callback
''
Sub diag_exitbutton_cb APICALL (ByVal event As _wxEvent Ptr,iListener as wxInt)
'wxMsgBox(,wxString("Bye Bye...1"), wxString("Window Closed!"))
dprint("diag_exitbutton_cb")
wxWindow_Destroy( dialog)
app_onexit_cb( )
End Sub
'':::::
''
'' on init callback
''
Function app_oninit_cb APICALL () As wxBool
dprint("app_oninit_cb")
Dim As Integer ypos, size
Dim xrc As _wxXmlResource Ptr
'' create the main window
xrc = wxXmlResource_ctorByFilemask(wxString("frmMayaMyAppsClient.xrc"), XRC_USE_LOCALE)
wxXmlResource_InitAllHandlers(xrc)
dialog = wxDialog_ctor( )
wxDialog_Create(dialog,WX_NULL,-1, wxString("Press Exit"),_
10, 10, 500, 400, _
wxDIALOG_DEFAULT_STYLE, 0 ) ' Does not make any difference what type you set as they are overwritten by XRC
wxXmlResource_LoadDialogDlg(xrc, dialog, 0, wxString("frmMain"))
wxWindow_CenterOnScreen(dialog, wxBOTH )
wxEvtHandler_proxy(dialog,@diag_exitbutton_cb)
wxEvtHandler_Connect(dialog,wxEvent_EVT_CLOSE_WINDOW( ))
Dim m_notebook1 As _wxNotebook Ptr
Dim m_clInstalled As _wxCheckListBox Ptr
Dim m_staticText2 As _wxTextCtrl Ptr
m_clInstalled = wxWindow_FindWindowByName(wxString("m_hyperlink1"), dialog)
m_staticText2 = wxWindow_FindWindowByName(wxString("m_staticText2"), dialog)
[b] ' These do not work and result in program crash
'wxTextCtrl_SetValue(m_staticText2, wxString("testing"))
'm_staticText2->SetValue(wxString("test"))
' These works just fine
wxWindow_SetLabel(m_staticText2, wxString("tesT"))
wxWindow_Hide(m_clInstalled)
[/b]
wxWindow_Show(dialog)
Function = wxApp_OnInit(app)
End Function
Function app_onexit_cb APICALL () As wxInt
dprint("app_onexit_cb")
Function = wxApp_OnExit( app )
End
End Function
Code: Select all
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<resource xmlns="http://www.wxwindows.org/wxxrc" version="2.3.0.1">
<object class="wxDialog" name="frmMain">
<style>wxCAPTION|wxCLOSE_BOX|wxMAXIMIZE_BOX|wxMINIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU</style>
<size>600,300</size>
<title>maya Apps Manager Client, Ver: 0.0.1</title>
<centered>1</centered>
<object class="wxBoxSizer">
<orient>wxVERTICAL</orient>
<object class="sizeritem">
<option>1</option>
<flag>wxEXPAND | wxALL</flag>
<border>5</border>
<object class="wxNotebook" name="m_notebook1">
<object class="notebookpage">
<label>Installed Applications</label>
<selected>1</selected>
<object class="wxPanel" name="m_panel1">
<style>wxTAB_TRAVERSAL</style>
<object class="wxBoxSizer">
<orient>wxVERTICAL</orient>
<object class="sizeritem">
<option>1</option>
<flag>wxEXPAND</flag>
<border>5</border>
<object class="wxBoxSizer">
<orient>wxVERTICAL</orient>
<object class="sizeritem">
<option>1</option>
<flag>wxALL|wxEXPAND</flag>
<border>5</border>
<object class="wxCheckListBox" name="m_clInstalled">
<style>wxLB_EXTENDED|wxLB_MULTIPLE|wxLB_NEEDED_SB|wxLB_SORT|wxSTATIC_BORDER</style>
<content>
<item>dummy1</item>
<item>dummy2</item>
</content>
</object>
</object>
</object>
</object>
<object class="sizeritem">
<option>0</option>
<flag>wxEXPAND</flag>
<border>5</border>
<object class="wxBoxSizer">
<orient>wxHORIZONTAL</orient>
<object class="sizeritem">
<option>1</option>
<flag>wxALL</flag>
<border>5</border>
<object class="wxButton" name="m_bUninstallPhysicalApp">
<style>wxNO_BORDER</style>
<label>Uninstall</label>
<default>0</default>
</object>
</object>
<object class="sizeritem">
<option>1</option>
<flag>wxALL</flag>
<border>5</border>
<object class="wxButton" name="m_bRepairPhysicalApp">
<style>wxNO_BORDER</style>
<label>Repair</label>
<default>0</default>
</object>
</object>
</object>
</object>
<object class="sizeritem">
<option>0</option>
<flag>wxALL</flag>
<border>5</border>
<object class="wxStaticText" name="m_staticText2">
<label>MyLabel</label>
<wrap>-1</wrap>
</object>
</object>
</object>
</object>
</object>
<object class="notebookpage">
<label>Available Applications</label>
<selected>0</selected>
<object class="wxPanel" name="m_panel2">
<style>wxTAB_TRAVERSAL</style>
<object class="wxBoxSizer">
<orient>wxVERTICAL</orient>
<object class="sizeritem">
<option>1</option>
<flag>wxEXPAND</flag>
<border>5</border>
<object class="wxBoxSizer">
<orient>wxVERTICAL</orient>
<object class="sizeritem">
<option>1</option>
<flag>wxALL|wxEXPAND</flag>
<border>5</border>
<object class="wxCheckListBox" name="m_clAvailableApps">
<style>wxSTATIC_BORDER</style>
<content />
</object>
</object>
</object>
</object>
<object class="sizeritem">
<option>0</option>
<flag>wxEXPAND</flag>
<border>5</border>
<object class="wxBoxSizer">
<orient>wxHORIZONTAL</orient>
<object class="sizeritem">
<option>1</option>
<flag>wxALL</flag>
<border>5</border>
<object class="wxButton" name="m_bInstallApps">
<style>wxNO_BORDER</style>
<label>Install selected Apps</label>
<default>0</default>
</object>
</object>
<object class="sizeritem">
<option>1</option>
<flag>wxALL</flag>
<border>5</border>
<object class="wxButton" name="m_bReRefreshAvailableAppsList">
<style>wxNO_BORDER</style>
<label>Refresh List</label>
<default>0</default>
</object>
</object>
</object>
</object>
</object>
</object>
</object>
<object class="notebookpage">
<label>Configuration Panel</label>
<selected>0</selected>
<object class="wxPanel" name="m_panel3">
<style>wxTAB_TRAVERSAL</style>
<object class="wxBoxSizer">
<orient>wxVERTICAL</orient>
<object class="sizeritem">
<option>0</option>
<flag>wxEXPAND</flag>
<border>5</border>
<object class="wxBoxSizer">
<orient>wxHORIZONTAL</orient>
<object class="sizeritem">
<option>0</option>
<flag>wxALL|wxALIGN_CENTER_VERTICAL</flag>
<border>5</border>
<object class="wxStaticText" name="m_staticText1">
<label>Packages DB Location:</label>
<wrap>-1</wrap>
</object>
</object>
<object class="sizeritem">
<option>1</option>
<flag>wxALL</flag>
<border>5</border>
<object class="wxFilePickerCtrl" name="m_sqliteDBPicker">
<value></value>
<message>Select the SQLite DB File</message>
<wildcard>*.*</wildcard>
<style>wxFLP_CHANGE_DIR|wxFLP_FILE_MUST_EXIST|wxFLP_OPEN|wxFLP_USE_TEXTCTRL|wxSIMPLE_BORDER</style>
</object>
</object>
<object class="sizeritem">
<option>0</option>
<flag>wxALL|wxALIGN_CENTER_VERTICAL</flag>
<border>5</border>
<object class="wxButton" name="m_bUpdateConfiguration">
<style>wxNO_BORDER</style>
<label>Update</label>
<default>0</default>
</object>
</object>
</object>
</object>
</object>
</object>
</object>
</object>
</object>
<object class="sizeritem">
<option>0</option>
<flag>wxALL|wxALIGN_CENTER_HORIZONTAL</flag>
<border>5</border>
<object class="wxHyperlinkCtrl" name="m_hyperlink1">
<label>Mayank's Home</label>
<url>mayankjohri.wordpress.com</url>
<style>wxHL_DEFAULT_STYLE</style>
</object>
</object>
</object>
</object>
</resource>