]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/treectrl.cpp
makeg95.env edited for Mingw32/gcc 2.95 compilation; _T not redefined for
[wxWidgets.git] / src / msw / treectrl.cpp
index e51192d9d9e0c7a519710e04f1cc256dd4a9dae7..baad3f6a6e97853fbadeb86cec37ca8976a03897 100644 (file)
@@ -352,7 +352,7 @@ bool wxTreeCtrl::Create(wxWindow *parent,
                                  DFC_BUTTON,
                                  DFCS_BUTTONCHECK | DFCS_CHECKED) )
         {
-            wxLogLastError(T("DrawFrameControl(check)"));
+            wxLogLastError(wxT("DrawFrameControl(check)"));
         }
 
         bmp.SetHBITMAP((WXHBITMAP)hbmpCheck);
@@ -362,7 +362,7 @@ bool wxTreeCtrl::Create(wxWindow *parent,
                                  DFC_BUTTON,
                                  DFCS_BUTTONCHECK) )
         {
-            wxLogLastError(T("DrawFrameControl(uncheck)"));
+            wxLogLastError(wxT("DrawFrameControl(uncheck)"));
         }
 
         bmp.SetHBITMAP((WXHBITMAP)hbmpCheck);
@@ -463,7 +463,7 @@ size_t wxTreeCtrl::GetChildrenCount(const wxTreeItemId& item,
 {
     TraverseCounter counter(this, item, recursively);
 
-    return counter.GetCount();
+    return counter.GetCount() - 1;
 }
 
 // ----------------------------------------------------------------------------
@@ -480,7 +480,7 @@ wxString wxTreeCtrl::GetItemText(const wxTreeItemId& item) const
     if ( !DoGetItem(&tvItem) )
     {
         // don't return some garbage which was on stack, but an empty string
-        buf[0] = T('\0');
+        buf[0] = wxT('\0');
     }
 
     return wxString(buf);
@@ -555,7 +555,7 @@ int wxTreeCtrl::GetItemImage(const wxTreeItemId& item,
     switch ( which )
     {
         default:
-            wxFAIL_MSG( T("unknown tree item image type") );
+            wxFAIL_MSG( wxT("unknown tree item image type") );
 
         case wxTreeItemIcon_Normal:
             mask = TVIF_IMAGE;
@@ -583,7 +583,7 @@ void wxTreeCtrl::SetItemImage(const wxTreeItemId& item, int image,
     switch ( which )
     {
         default:
-            wxFAIL_MSG( T("unknown tree item image type") );
+            wxFAIL_MSG( wxT("unknown tree item image type") );
 
         case wxTreeItemIcon_Normal:
             imageNormal = image;
@@ -659,7 +659,7 @@ void wxTreeCtrl::SetItemData(const wxTreeItemId& item, wxTreeItemData *data)
         }
         else
         {
-            wxFAIL_MSG( T("failed to change tree items data") );
+            wxFAIL_MSG( wxT("failed to change tree items data") );
         }
     }
     else
@@ -676,7 +676,7 @@ void wxTreeCtrl::SetIndirectItemData(const wxTreeItemId& item,
     // to crash too because the code elsewhere supposes that the pointer the
     // wxTreeItemIndirectData has is a real wxItemData and not
     // wxTreeItemIndirectData as well
-    wxASSERT_MSG( !HasIndirectData(item), T("setting indirect data twice?") );
+    wxASSERT_MSG( !HasIndirectData(item), wxT("setting indirect data twice?") );
 
     SetItemData(item, (wxTreeItemData *)data);
 
@@ -768,7 +768,7 @@ wxTreeItemId wxTreeCtrl::GetRootItem() const
 wxTreeItemId wxTreeCtrl::GetSelection() const
 {
     wxCHECK_MSG( !(m_windowStyle & wxTR_MULTIPLE), (WXHTREEITEM)0,
-                 T("this only works with single selection controls") );
+                 wxT("this only works with single selection controls") );
 
     return wxTreeItemId((WXHTREEITEM) TreeView_GetSelection(GetHwnd()));
 }
@@ -830,7 +830,7 @@ wxTreeItemId wxTreeCtrl::GetFirstVisibleItem() const
 
 wxTreeItemId wxTreeCtrl::GetNextVisible(const wxTreeItemId& item) const
 {
-    wxASSERT_MSG( IsVisible(item), T("The item you call GetNextVisible() "
+    wxASSERT_MSG( IsVisible(item), wxT("The item you call GetNextVisible() "
                                       "for must be visible itself!"));
 
     return wxTreeItemId((WXHTREEITEM) TreeView_GetNextVisible(GetHwnd(), (HTREEITEM) (WXHTREEITEM) item));
@@ -838,7 +838,7 @@ wxTreeItemId wxTreeCtrl::GetNextVisible(const wxTreeItemId& item) const
 
 wxTreeItemId wxTreeCtrl::GetPrevVisible(const wxTreeItemId& item) const
 {
-    wxASSERT_MSG( IsVisible(item), T("The item you call GetPrevVisible() "
+    wxASSERT_MSG( IsVisible(item), wxT("The item you call GetPrevVisible() "
                                       "for must be visible itself!"));
 
     return wxTreeItemId((WXHTREEITEM) TreeView_GetPrevVisible(GetHwnd(), (HTREEITEM) (WXHTREEITEM) item));
@@ -1036,7 +1036,7 @@ void wxTreeCtrl::DoExpand(const wxTreeItemId& item, int flag)
                   flag == (TVE_COLLAPSE | TVE_COLLAPSERESET) ||
                   flag == TVE_EXPAND   ||
                   flag == TVE_TOGGLE,
-                  T("Unknown flag in wxTreeCtrl::DoExpand") );
+                  wxT("Unknown flag in wxTreeCtrl::DoExpand") );
 
     // TreeView_Expand doesn't send TVN_ITEMEXPAND(ING) messages, so we must
     // emulate them. This behaviour has changed slightly with comctl32.dll
@@ -1096,7 +1096,7 @@ void wxTreeCtrl::ExpandItem(const wxTreeItemId& item, int action)
 
 void wxTreeCtrl::Unselect()
 {
-    wxASSERT_MSG( !(m_windowStyle & wxTR_MULTIPLE), T("doesn't make sense") );
+    wxASSERT_MSG( !(m_windowStyle & wxTR_MULTIPLE), wxT("doesn't make sense") );
 
     // just remove the selection
     SelectItem(wxTreeItemId((WXHTREEITEM) 0));
@@ -1274,7 +1274,7 @@ static int CALLBACK TreeView_CompareCallback(wxTreeItemData *pItem1,
                                              wxTreeCtrl *tree)
 {
     wxCHECK_MSG( pItem1 && pItem2, 0,
-                 T("sorting tree without data doesn't make sense") );
+                 wxT("sorting tree without data doesn't make sense") );
 
     return tree->OnCompareItems(pItem1->GetId(), pItem2->GetId());
 }
@@ -1341,6 +1341,23 @@ bool wxTreeCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
 
     switch ( hdr->code )
     {
+        case NM_RCLICK:
+       {
+           if ( wxControl::MSWOnNotify(idCtrl, lParam, result) )
+               return TRUE;
+           
+           TV_HITTESTINFO tvhti;
+           ::GetCursorPos(&(tvhti.pt));
+           ::ScreenToClient(GetHwnd(),&(tvhti.pt));
+           if(TreeView_HitTest(GetHwnd(),&tvhti)!=NULL) {
+               if(tvhti.flags & TVHT_ONITEM) {
+                   event.m_item = (WXHTREEITEM) tvhti.hItem;
+                   eventType=wxEVT_COMMAND_TREE_ITEM_RIGHT_CLICK;
+               }
+           }
+           break;
+       }
+       
         case TVN_BEGINDRAG:
             eventType = wxEVT_COMMAND_TREE_BEGIN_DRAG;
             // fall through
@@ -1423,11 +1440,11 @@ bool wxTreeCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
                         break;
 
                     default:
-                        wxLogDebug(T("unexpected code %d in TVN_ITEMEXPAND "
+                        wxLogDebug(wxT("unexpected code %d in TVN_ITEMEXPAND "
                                       "message"), tv->action);
                 }
 
-                bool ing = (hdr->code == TVN_ITEMEXPANDING);
+                bool ing = ((int)hdr->code == TVN_ITEMEXPANDING);
                 eventType = g_events[expand][ing];
 
                 event.m_item = (WXHTREEITEM) tv->itemNew.hItem;