DEFAULT_wxUSE_OPTIMISE=no
DEFAULT_wxUSE_PROFILE=no
+ DEFAULT_wxUSE_NO_RTTI=no
+ DEFAULT_wxUSE_NO_EXCEPTIONS=no
DEFAULT_wxUSE_DEBUG_FLAG=yes
DEFAULT_wxUSE_DEBUG_INFO=yes
DEFAULT_wxUSE_DEBUG_GDB=yes
DEFAULT_wxUSE_OPTIMISE=yes
DEFAULT_wxUSE_PROFILE=no
+ DEFAULT_wxUSE_NO_RTTI=no
+ DEFAULT_wxUSE_NO_EXCEPTIONS=no
DEFAULT_wxUSE_DEBUG_FLAG=no
DEFAULT_wxUSE_DEBUG_INFO=no
DEFAULT_wxUSE_DEBUG_GDB=no
DEFAULT_wxUSE_DEBUG_INFO=no
fi
-WX_ARG_ENABLE(debug_flag, [ --enable-debug_flag set __WXDEBUG__ flag (recommended for developers!)], wxUSE_DEBUG_FLAG)
-WX_ARG_ENABLE(debug_info, [ --enable-debug_info create code with debugging information], wxUSE_DEBUG_INFO)
-WX_ARG_ENABLE(debug_gdb, [ --enable-debug_gdb create code with extra GDB debugging information], wxUSE_DEBUG_GDB)
-WX_ARG_ENABLE(debug_cntxt, [ --enable-debug_cntxt use wxDebugContext], wxUSE_DEBUG_CONTEXT)
-WX_ARG_ENABLE(mem_tracing, [ --enable-mem_tracing create code with memory tracing], wxUSE_MEM_TRACING)
-WX_ARG_ENABLE(profile, [ --enable-profile create code with profiling information], wxUSE_PROFILE)
+WX_ARG_ENABLE(debug_flag, [ --enable-debug_flag set __WXDEBUG__ flag (recommended for developers!)], wxUSE_DEBUG_FLAG)
+WX_ARG_ENABLE(debug_info, [ --enable-debug_info create code with debugging information], wxUSE_DEBUG_INFO)
+WX_ARG_ENABLE(debug_gdb, [ --enable-debug_gdb create code with extra GDB debugging information], wxUSE_DEBUG_GDB)
+WX_ARG_ENABLE(debug_cntxt, [ --enable-debug_cntxt use wxDebugContext], wxUSE_DEBUG_CONTEXT)
+WX_ARG_ENABLE(mem_tracing, [ --enable-mem_tracing create code with memory tracing], wxUSE_MEM_TRACING)
+WX_ARG_ENABLE(profile, [ --enable-profile create code with profiling information], wxUSE_PROFILE)
+WX_ARG_ENABLE(no_rtti, [ --enable-no_rtti create code without RTTI information], wxUSE_NO_RTTI)
+WX_ARG_ENABLE(no_exceptions, [ --enable-no_exceptions create code without exceptions information], wxUSE_NO_EXCEPTIONS)
dnl ---------------------------------------------------------------------------
dnl --disable-gui will build only non-GUI part of wxWindows
PROFILE="-pg"
fi
+if test "$GCC" = yes ; then
+ if test "$wxUSE_NO_RTTI" = "yes" ; then
+ WXDEBUG_DEFINE="$WXDEBUG_DEFINE -fno-rtti"
+ fi
+ if test "$wxUSE_NO_EXCEPTIONS" = "yes" ; then
+ WXDEBUG_DEFINE="$WXDEBUG_DEFINE -fno-exceptions"
+ fi
+fi
+
+
CXXFLAGS=`echo "${CXXFLAGS}" | sed "s/\-O.//g" `
CFLAGS=`echo "${CFLAGS}" | sed "s/\-O.//g" `
if test "$wxUSE_OPTIMISE" = "no" ; then
else
if test "$GCC" = yes ; then
OPTIMISE="-O2"
-
- save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -fno-rtti -fno-exceptions"
- AC_TRY_COMPILE(
- [], [int some_variable = 0;],
- WXDEBUG_DEFINE="$WXDEBUG_DEFINE -fno-rtti -fno-exceptions",
- )
- CFLAGS="$save_CFLAGS"
-
case "${host}" in
i586-*-*|i686-*-* )
OPTIMISE="${OPTIMISE} "
--enable-profile Add profiling info to the object
files. Currently broken, I think.
+ --enable-no_rtti Enable compilation without creation of
+ C++ RTTI information in object files.
+ This will speed-up compilation and reduce
+ binary size.
+
+ --enable-no_rtti Enable compilation without creation of
+ C++ exception information in object files.
+ This will speed-up compilation and reduce
+ binary size. Also fewer crashes during the
+ actual compilation...
+
--enable-mem_tracing Add built-in memory tracing.
--enable-dmalloc Use the dmalloc memory debugger.
--enable-profile Add profiling info to the object
files. Currently broken, I think.
+ --enable-no_rtti Enable compilation without creation of
+ C++ RTTI information in object files.
+ This will speed-up compilation and reduce
+ binary size.
+
+ --enable-no_rtti Enable compilation without creation of
+ C++ exception information in object files.
+ This will speed-up compilation and reduce
+ binary size. Also fewer crashes during the
+ actual compilation...
+
--enable-mem_tracing Add built-in memory tracing.
--enable-dmalloc Use the dmalloc memory debugger.
MyFrame::MyFrame()
: wxFrame((wxFrame *) NULL, -1, "wxConfig Demo")
{
+ // submenu
+ wxMenu *sub_menu = new wxMenu( wxMENU_TEAROFF );
+ sub_menu->Append(Minimal_About, "&About", "About this sample");
+ sub_menu->Append(Minimal_About, "&About", "About this sample");
+ sub_menu->Append(Minimal_About, "&About", "About this sample");
+
// menu
wxMenu *file_menu = new wxMenu;
frame->SetIcon( wxICON(mondrian) );
+ // submenu
+ wxMenu *sub_menu = new wxMenu( wxMENU_TEAROFF );
+ sub_menu->Append(MINIMAL_ABOUT, "&About", "About this sample");
+ sub_menu->Append(MINIMAL_ABOUT, "&About", "About this sample");
+ sub_menu->Append(MINIMAL_ABOUT, "&About", "About this sample");
+
wxMenu *file_menu = new wxMenu;
file_menu->Append(MINIMAL_ABOUT, "&About\tF1");
file_menu->Append(MINIMAL_QUIT, "E&xit\tAlt-X", "Quit controls sample");
+ file_menu->Append( 0, "&Submenu", sub_menu );
wxMenuBar *menu_bar = new wxMenuBar( wxMB_DOCKABLE );
menu_bar->Append(file_menu, "&File");
// global data
//-----------------------------------------------------------------------------
-extern wxCursor g_globalCursor;
-
wxApp *wxTheApp = (wxApp *) NULL;
wxAppInitializerFunction wxApp::m_appInitFn = (wxAppInitializerFunction) NULL;
wxImage::InitStandardHandlers();
- // Not needed, leave it as default. (KB)
- // g_globalCursor = wxCursor(wxCURSOR_DEFAULT);
-
wxModule::RegisterModules();
if (!wxModule::InitializeModules()) return FALSE;
GdkCursorType gdk_cur = GDK_LEFT_PTR;
switch (cursorId)
{
- case wxCURSOR_DEFAULT: gdk_cur = GDK_ARROW; break;
+ case wxCURSOR_DEFAULT: gdk_cur = GDK_LEFT_PTR; break;
case wxCURSOR_HAND: gdk_cur = GDK_HAND1; break;
case wxCURSOR_CROSS: gdk_cur = GDK_CROSSHAIR; break;
case wxCURSOR_SIZEWE: gdk_cur = GDK_SB_H_DOUBLE_ARROW; break;
entry.accelerator = (gchar*) NULL;
entry.callback = (GtkItemFactoryCallback) NULL;
entry.callback_action = 0;
- entry.item_type = (m_style & wxMB_TEAROFF || menu->GetStyle() &
- wxMENU_TEAROFF) ?
- "<Tearoff>" : "<Branch>";
+
+/*
+ if ((m_style & wxMB_TEAROFF) || (menu->GetStyle() & wxMENU_TEAROFF))
+ entry.item_type = "<Tearoff>";
+ else
+*/
+ entry.item_type = "<Branch>";
gtk_item_factory_create_item( m_factory, &entry, (gpointer) this, 2 ); /* what is 2 ? */
gtk_menu_item_set_submenu( GTK_MENU_ITEM(menu->m_owner), menu->m_menu );
+/*
+ if ((m_style & wxMB_TEAROFF) || (menu->GetStyle() & wxMENU_TEAROFF))
+ {
+ entry.item_type = "<Tearoff>";
+ tmp.Remove( 0, 6 );
+ tmp.Append( _T("/tearoff") );
+ strcpy( buf, tmp.mb_str() );
+ gtk_item_factory_create_item( m_factory, &entry, (gpointer) this, 2 );
+ }
+*/
#else
menu->m_owner = gtk_menu_item_new_with_label( str.mb_str() );
entry.path = buf;
entry.callback = (GtkItemFactoryCallback) 0;
entry.callback_action = 0;
- entry.item_type = (m_style & wxMENU_TEAROFF) ? "<Tearoff>" : "<Branch>";
+
+/*
+ if (m_style & wxMENU_TEAROFF)
+ entry.item_type = "<Tearoff>";
+ else
+*/
+ entry.item_type = "<Branch>";
gtk_item_factory_create_item( m_factory, &entry, (gpointer) this, 2 ); /* what is 2 ? */
// global data
//-----------------------------------------------------------------------------
-extern wxCursor g_globalCursor;
-
wxApp *wxTheApp = (wxApp *) NULL;
wxAppInitializerFunction wxApp::m_appInitFn = (wxAppInitializerFunction) NULL;
wxImage::InitStandardHandlers();
- // Not needed, leave it as default. (KB)
- // g_globalCursor = wxCursor(wxCURSOR_DEFAULT);
-
wxModule::RegisterModules();
if (!wxModule::InitializeModules()) return FALSE;
GdkCursorType gdk_cur = GDK_LEFT_PTR;
switch (cursorId)
{
- case wxCURSOR_DEFAULT: gdk_cur = GDK_ARROW; break;
+ case wxCURSOR_DEFAULT: gdk_cur = GDK_LEFT_PTR; break;
case wxCURSOR_HAND: gdk_cur = GDK_HAND1; break;
case wxCURSOR_CROSS: gdk_cur = GDK_CROSSHAIR; break;
case wxCURSOR_SIZEWE: gdk_cur = GDK_SB_H_DOUBLE_ARROW; break;
entry.accelerator = (gchar*) NULL;
entry.callback = (GtkItemFactoryCallback) NULL;
entry.callback_action = 0;
- entry.item_type = (m_style & wxMB_TEAROFF || menu->GetStyle() &
- wxMENU_TEAROFF) ?
- "<Tearoff>" : "<Branch>";
+
+/*
+ if ((m_style & wxMB_TEAROFF) || (menu->GetStyle() & wxMENU_TEAROFF))
+ entry.item_type = "<Tearoff>";
+ else
+*/
+ entry.item_type = "<Branch>";
gtk_item_factory_create_item( m_factory, &entry, (gpointer) this, 2 ); /* what is 2 ? */
gtk_menu_item_set_submenu( GTK_MENU_ITEM(menu->m_owner), menu->m_menu );
+/*
+ if ((m_style & wxMB_TEAROFF) || (menu->GetStyle() & wxMENU_TEAROFF))
+ {
+ entry.item_type = "<Tearoff>";
+ tmp.Remove( 0, 6 );
+ tmp.Append( _T("/tearoff") );
+ strcpy( buf, tmp.mb_str() );
+ gtk_item_factory_create_item( m_factory, &entry, (gpointer) this, 2 );
+ }
+*/
#else
menu->m_owner = gtk_menu_item_new_with_label( str.mb_str() );
entry.path = buf;
entry.callback = (GtkItemFactoryCallback) 0;
entry.callback_action = 0;
- entry.item_type = (m_style & wxMENU_TEAROFF) ? "<Tearoff>" : "<Branch>";
+
+/*
+ if (m_style & wxMENU_TEAROFF)
+ entry.item_type = "<Tearoff>";
+ else
+*/
+ entry.item_type = "<Branch>";
gtk_item_factory_create_item( m_factory, &entry, (gpointer) this, 2 ); /* what is 2 ? */