]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/treectrl/treetest.cpp
Use generic collapsible pane for wxUniv based builds.
[wxWidgets.git] / samples / treectrl / treetest.cpp
index 1357cfd5f6a3ff07509c68e7c3a2491cb48eb211..3af468f4418c90da48bdd6079d3cf6b135410577 100644 (file)
@@ -477,7 +477,7 @@ void MyFrame::OnDumpSelected(wxCommandEvent& WXUNUSED(event))
     wxArrayTreeItemIds array;
 
     size_t count = m_treeCtrl->GetSelections(array);
-    wxLogMessage(wxT("%u items selected"), count);
+    wxLogMessage(wxT("%u items selected"), unsigned(count));
 
     for ( size_t n = 0; n < count; n++ )
     {
@@ -790,9 +790,9 @@ void MyTreeCtrl::AddItemsRecursively(const wxTreeItemId& idParent,
         {
             // at depth 1 elements won't have any more children
             if ( hasChildren )
-                str.Printf(wxT("%s child %d"), wxT("Folder"), n + 1);
+                str.Printf(wxT("%s child %u"), wxT("Folder"), unsigned(n + 1));
             else
-                str.Printf(wxT("%s child %d.%d"), wxT("File"), folder, n + 1);
+                str.Printf(wxT("%s child %u.%u"), wxT("File"), unsigned(folder), unsigned(n + 1));
 
             // here we pass to AppendItem() normal and selected item images (we
             // suppose that selected image follows the normal one in the enum)
@@ -890,17 +890,22 @@ void MyTreeCtrl::DoToggleIcon(const wxTreeItemId& item)
     SetItemImage(item, image, wxTreeItemIcon_Selected);
 }
 
+void MyTreeCtrl::LogEvent(const wxChar *name, const wxTreeEvent& event)
+{
+    wxTreeItemId item = event.GetItem();
+    wxString text;
+    if ( item.IsOk() )
+        text << _T('"') << GetItemText(item).c_str() << _T('"');
+    else
+        text = _T("invalid item");
+    wxLogMessage(wxT("%s(%s)"), name, text.c_str());
+}
 
 // avoid repetition
 #define TREE_EVENT_HANDLER(name)                                 \
 void MyTreeCtrl::name(wxTreeEvent& event)                        \
 {                                                                \
-    wxLogMessage( wxT("%s from:"), wxT(#name) );                 \
-    wxTreeItemId item = event.GetItem();                         \
-    if (item.IsOk())                                             \
-        wxLogMessage( GetItemText(item) );                       \
-    else                                                         \
-        wxLogMessage(wxT("invalid item"));                       \
+    LogEvent(_T(#name), event);                                  \
     SetLastItem(wxTreeItemId());                                 \
     event.Skip();                                                \
 }
@@ -1180,13 +1185,14 @@ void MyTreeCtrl::OnContextMenu(wxContextMenuEvent& event)
 {
     wxPoint pt = event.GetPosition();
     wxTreeItemId item;
-    if ( !HasFlag(wxTR_MULTIPLE) )
-        item = GetSelection();
     wxLogMessage(wxT("OnContextMenu at screen coords (%i, %i)"), pt.x, pt.y);
 
     // check if event was generated by keyboard (MSW-specific?)
     if ( pt.x == -1 && pt.y == -1 ) //(this is how MSW indicates it)
     {
+        if ( !HasFlag(wxTR_MULTIPLE) )
+            item = GetSelection();
+
         // attempt to guess where to show the menu
         if ( item.IsOk() )
         {
@@ -1203,6 +1209,7 @@ void MyTreeCtrl::OnContextMenu(wxContextMenuEvent& event)
     else // event was generated by mouse, use supplied coords
     {
         pt = ScreenToClient(pt);
+        item = HitTest(pt);
     }
 
     ShowMenu(item, pt);
@@ -1283,6 +1290,6 @@ void MyTreeItemData::ShowInfo(wxTreeCtrl *tree)
                  Bool2String(tree->IsSelected(GetId())),
                  Bool2String(tree->IsExpanded(GetId())),
                  Bool2String(tree->IsBold(GetId())),
-                 tree->GetChildrenCount(GetId()),
-                 tree->GetChildrenCount(GetId(), false));
+                 unsigned(tree->GetChildrenCount(GetId())),
+                 unsigned(tree->GetChildrenCount(GetId(), false)));
 }