]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/menu.cpp
typo fix
[wxWidgets.git] / src / gtk / menu.cpp
index 630bd5d1b3579000cc96f78647c4be263ad248eb..9f8004024621c945631536f2eff7a6d30a77172f 100644 (file)
@@ -55,14 +55,12 @@ static wxString GetGtkHotKey( const wxMenuItem& item );
 
 static wxString wxReplaceUnderscore( const wxString& title )
 {
-    const wxChar *pc;
-
     // GTK 1.2 wants to have "_" instead of "&" for accelerators
     wxString str;
-    pc = title;
-    while (*pc != wxT('\0'))
+
+    for ( wxString::const_iterator pc = title.begin(); pc != title.end(); ++pc )
     {
-        if ((*pc == wxT('&')) && (*(pc+1) == wxT('&')))
+        if ((*pc == wxT('&')) && (pc+1 != title.end()) && (*(pc+1) == wxT('&')))
         {
             // "&" is doubled to indicate "&" instead of accelerator
             ++pc;
@@ -83,7 +81,6 @@ static wxString wxReplaceUnderscore( const wxString& title )
 
             str << *pc;
         }
-        ++pc;
     }
 
     // wxPrintf( wxT("before %s after %s\n"), title.c_str(), str.c_str() );
@@ -140,13 +137,11 @@ IMPLEMENT_DYNAMIC_CLASS(wxMenuBar,wxWindow)
 
 void wxMenuBar::Init(size_t n, wxMenu *menus[], const wxString titles[], long style)
 {
-    // the parent window is known after wxFrame::SetMenu()
-    m_needParent = false;
     m_style = style;
-    m_invokingWindow = (wxWindow*) NULL;
+    m_invokingWindow = NULL;
 
-    if (!PreCreation( (wxWindow*) NULL, wxDefaultPosition, wxDefaultSize ) ||
-        !CreateBase( (wxWindow*) NULL, -1, wxDefaultPosition, wxDefaultSize, style, wxDefaultValidator, wxT("menubar") ))
+    if (!PreCreation( NULL, wxDefaultPosition, wxDefaultSize ) ||
+        !CreateBase( NULL, -1, wxDefaultPosition, wxDefaultSize, style, wxDefaultValidator, wxT("menubar") ))
     {
         wxFAIL_MSG( wxT("wxMenuBar creation failed") );
         return;
@@ -157,12 +152,12 @@ void wxMenuBar::Init(size_t n, wxMenu *menus[], const wxString titles[], long st
     if (style & wxMB_DOCKABLE)
     {
         m_widget = gtk_handle_box_new();
-        gtk_container_add( GTK_CONTAINER(m_widget), GTK_WIDGET(m_menubar) );
-        gtk_widget_show( GTK_WIDGET(m_menubar) );
+        gtk_container_add(GTK_CONTAINER(m_widget), m_menubar);
+        gtk_widget_show(m_menubar);
     }
     else
     {
-        m_widget = GTK_WIDGET(m_menubar);
+        m_widget = m_menubar;
     }
 
     PostCreation();
@@ -823,7 +818,7 @@ void wxMenuItem::SetText( const wxString& str )
         gtk_accelerator_parse( (const char*) oldbuf, &accel_key, &accel_mods);
         if (accel_key != 0)
         {
-            gtk_widget_remove_accelerator( GTK_WIDGET(m_menuItem),
+            gtk_widget_remove_accelerator(m_menuItem,
                                         m_parentMenu->m_accel,
                                         accel_key,
                                         accel_mods );
@@ -833,7 +828,7 @@ void wxMenuItem::SetText( const wxString& str )
     {
         // if the accelerator was taken from a stock ID, just get it back from GTK+ stock
         if (wxGetStockGtkAccelerator(stockid, &accel_mods, &accel_key))
-            gtk_widget_remove_accelerator( GTK_WIDGET(m_menuItem),
+            gtk_widget_remove_accelerator( m_menuItem,
                                            m_parentMenu->m_accel,
                                            accel_key,
                                            accel_mods );
@@ -846,7 +841,7 @@ void wxMenuItem::SetText( const wxString& str )
         gtk_accelerator_parse( (const char*) buf, &accel_key, &accel_mods);
         if (accel_key != 0)
         {
-            gtk_widget_add_accelerator( GTK_WIDGET(m_menuItem),
+            gtk_widget_add_accelerator( m_menuItem,
                                         "activate",
                                         m_parentMenu->m_accel,
                                         accel_key,
@@ -858,7 +853,7 @@ void wxMenuItem::SetText( const wxString& str )
     {
         // if the accelerator was taken from a stock ID, just get it back from GTK+ stock
         if (wxGetStockGtkAccelerator(stockid, &accel_mods, &accel_key))
-            gtk_widget_remove_accelerator( GTK_WIDGET(m_menuItem),
+            gtk_widget_remove_accelerator( m_menuItem,
                                            m_parentMenu->m_accel,
                                            accel_key,
                                            accel_mods );
@@ -1020,6 +1015,8 @@ wxMenu::~wxMenu()
    {
        // see wxMenu::Init
        gtk_widget_unref( m_menu );
+       g_object_unref( m_accel );
+       
        // if the menu is inserted in another menu at this time, there was
        // one more reference to it:
        if ( m_owner )
@@ -1164,7 +1161,7 @@ bool wxMenu::GtkAppend(wxMenuItem *mitem, int pos)
         gtk_accelerator_parse( (const char*) buf, &accel_key, &accel_mods);
         if (accel_key != 0)
         {
-            gtk_widget_add_accelerator (GTK_WIDGET(menuItem),
+            gtk_widget_add_accelerator (menuItem,
                                         "activate",
                                         m_accel,
                                         accel_key,
@@ -1176,7 +1173,7 @@ bool wxMenu::GtkAppend(wxMenuItem *mitem, int pos)
     {
         // if the accelerator was taken from a stock ID, just get it back from GTK+ stock
         if (wxGetStockGtkAccelerator(stockid, &accel_mods, &accel_key))
-            gtk_widget_add_accelerator( GTK_WIDGET(menuItem),
+            gtk_widget_add_accelerator( menuItem,
                                         "activate",
                                         m_accel,
                                         accel_key,