]> git.saurik.com Git - wxWidgets.git/commitdiff
Made the RTTI thing an option.
authorRobert Roebling <robert@roebling.de>
Thu, 17 Jun 1999 19:46:17 +0000 (19:46 +0000)
committerRobert Roebling <robert@roebling.de>
Thu, 17 Jun 1999 19:46:17 +0000 (19:46 +0000)
  Added submenus to controls sample.
  Failed at producing tear-off menus.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2819 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

configure.in
docs/gtk/install.txt
docs/wine/install.txt
samples/config/conftest.cpp
samples/controls/controls.cpp
src/gtk/app.cpp
src/gtk/cursor.cpp
src/gtk/menu.cpp
src/gtk1/app.cpp
src/gtk1/cursor.cpp
src/gtk1/menu.cpp

index 46f5a70b65e15ac19fa44b42bdc830795e8d31c9..c631edf60fbbb1baa1aed775afdb0156f4efe802 100644 (file)
@@ -230,6 +230,8 @@ if test $DEBUG_CONFIGURE = 1; then
 
   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
@@ -325,6 +327,8 @@ else
 
   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
@@ -474,12 +478,14 @@ elif test "$wxUSE_DEBUG" = "no"; then
   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
@@ -1379,6 +1385,16 @@ if test "$wxUSE_PROFILE" = "yes" ; then
     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
@@ -1386,15 +1402,6 @@ 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} "
index 1f02ca024e5379aa70f417aa22658ffc64db983e..bec266257b9147c77c2a5130dee90469a3f9bf9c 100644 (file)
@@ -248,6 +248,17 @@ The following options handle the kind of library you want to build.
        --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.
index bd923a3d509373258c08e4aa09d27459732e7dbb..cc53d660ca35229748b2ea284f4947186e1b5740 100644 (file)
@@ -186,6 +186,17 @@ The following options handle the kind of library you want to build.
        --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.
index b5ed3c607ffa250ec5c6eef5dadc20ef448543b5..fe26c3b968a200a14721c7c9ec8538d4a393d9e1 100644 (file)
@@ -141,6 +141,12 @@ int MyApp::OnExit()
 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;
 
index a88d9e49f4331114e85339776e57f2c7b01d9799..fb6ff1c2adc907617573ef712080563ced03bc86 100644 (file)
@@ -164,9 +164,16 @@ bool MyApp::OnInit()
 
     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");
index df4d2f0eb1ed34fb9caac043a85ce74f3dbcb929..f4e7a220a23ce7cbc8106ef516805203e7830dc4 100644 (file)
@@ -44,8 +44,6 @@
 // global data
 //-----------------------------------------------------------------------------
 
-extern wxCursor g_globalCursor;
-
 wxApp *wxTheApp = (wxApp *)  NULL;
 wxAppInitializerFunction wxApp::m_appInitFn = (wxAppInitializerFunction) NULL;
 
@@ -577,9 +575,6 @@ bool wxApp::Initialize()
 
     wxImage::InitStandardHandlers();
 
-    // Not needed, leave it as  default. (KB)
-    // g_globalCursor = wxCursor(wxCURSOR_DEFAULT);
-
     wxModule::RegisterModules();
     if (!wxModule::InitializeModules()) return FALSE;
 
index c4883adbf527b1b4c6a6690323889edf12b7be1a..9335e8c8372fff2291bdcb765a86a9eb49789271 100644 (file)
@@ -64,7 +64,7 @@ wxCursor::wxCursor( int cursorId )
     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;
index a267b1bab811eef8fb74f0deeed0bb1c7fa5e0b1..46b158cce4036b2456b2743b0f725ef1fa2c70cf 100644 (file)
@@ -218,9 +218,13 @@ void wxMenuBar::Append( wxMenu *menu, const wxString &title )
     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 ? */
     
@@ -236,6 +240,16 @@ void wxMenuBar::Append( wxMenu *menu, const wxString &title )
     
     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() );
@@ -845,7 +859,13 @@ void wxMenu::Append( int id, const wxString &item, wxMenu *subMenu, const wxStri
     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 ? */
     
index df4d2f0eb1ed34fb9caac043a85ce74f3dbcb929..f4e7a220a23ce7cbc8106ef516805203e7830dc4 100644 (file)
@@ -44,8 +44,6 @@
 // global data
 //-----------------------------------------------------------------------------
 
-extern wxCursor g_globalCursor;
-
 wxApp *wxTheApp = (wxApp *)  NULL;
 wxAppInitializerFunction wxApp::m_appInitFn = (wxAppInitializerFunction) NULL;
 
@@ -577,9 +575,6 @@ bool wxApp::Initialize()
 
     wxImage::InitStandardHandlers();
 
-    // Not needed, leave it as  default. (KB)
-    // g_globalCursor = wxCursor(wxCURSOR_DEFAULT);
-
     wxModule::RegisterModules();
     if (!wxModule::InitializeModules()) return FALSE;
 
index c4883adbf527b1b4c6a6690323889edf12b7be1a..9335e8c8372fff2291bdcb765a86a9eb49789271 100644 (file)
@@ -64,7 +64,7 @@ wxCursor::wxCursor( int cursorId )
     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;
index a267b1bab811eef8fb74f0deeed0bb1c7fa5e0b1..46b158cce4036b2456b2743b0f725ef1fa2c70cf 100644 (file)
@@ -218,9 +218,13 @@ void wxMenuBar::Append( wxMenu *menu, const wxString &title )
     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 ? */
     
@@ -236,6 +240,16 @@ void wxMenuBar::Append( wxMenu *menu, const wxString &title )
     
     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() );
@@ -845,7 +859,13 @@ void wxMenu::Append( int id, const wxString &item, wxMenu *subMenu, const wxStri
     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 ? */