Exemplo n.º 1
0
void browsers::TDTbrowser::OnTELLaddcell(wxString cellname, wxString parentname, int action) {
   wxTreeItemId item, newparent;
   switch (action) {
      case 0: {//new cell
         wxTreeItemId item = AppendItem(GetRootItem(), cellname);
         SetItemTextColour(item,GetItemTextColour(GetRootItem()));
         break;
      }   
      case 1: {//first reference of existing cell
         assert(findItem(cellname, item, GetRootItem()));
         while (findItem(parentname, newparent, GetRootItem())) 
            copyItem(item,newparent);
         DeleteChildren(item);
         Delete(item);
         break;
      }   
      case 2: {//
         assert(findItem(cellname, item, GetRootItem()));
         while (findItem(parentname, newparent, GetRootItem())) 
            copyItem(item,newparent);
         break;
      }
      default: assert(false);
   }
}
Exemplo n.º 2
0
void browsers::CellBrowser::copyItem(const wxTreeItemId item, const wxTreeItemId newparent) {
   wxTreeItemId newitem = AppendItem(newparent, GetItemText(item));
   SetItemImage(newitem, GetItemImage(item,wxTreeItemIcon_Normal), wxTreeItemIcon_Normal);
   SetItemImage(newitem, GetItemImage(item,wxTreeItemIcon_Expanded), wxTreeItemIcon_Expanded);
   SetItemImage(newparent,0,wxTreeItemIcon_Normal);
   SetItemImage(newparent,1,wxTreeItemIcon_Expanded);
   SetItemTextColour(newitem, GetItemTextColour(newparent));
   wxTreeItemIdValue cookie;
   wxTreeItemId child = GetFirstChild(item,cookie);
   while (child.IsOk()) {
      copyItem(child, newitem);
      child = GetNextChild(item,cookie);
   }
}
Exemplo n.º 3
0
// Makes a row exchange places
void wxAdvancedListCtrl::FlipRow(long Row, long NextRow)
{
    if(Row == NextRow)
        return;

    // Retrieve data for the next item
    wxListItem Item1, Item2;
    wxListItem Item1Flipped, Item2Flipped;

    Item1.SetId(Row);
    Item1.SetMask(wxLIST_MASK_TEXT | wxLIST_MASK_DATA | wxLIST_MASK_IMAGE);

    Item2.SetId(NextRow);
    Item2.SetMask(wxLIST_MASK_TEXT | wxLIST_MASK_DATA | wxLIST_MASK_IMAGE);

    Item1Flipped.SetId(NextRow);
    Item1Flipped.SetMask(wxLIST_MASK_TEXT | wxLIST_MASK_DATA
                         | wxLIST_MASK_IMAGE);

    Item2Flipped.SetId(Row);
    Item2Flipped.SetMask(wxLIST_MASK_TEXT | wxLIST_MASK_DATA
                         | wxLIST_MASK_IMAGE);

    // Due to bugs/limitations with wxWidgets, certain stuff needs to be
    // physically taken from the list control as GetItem is finicky
    wxColour Item1Colour = GetItemTextColour(Row);
    wxColour Item2Colour = GetItemTextColour(NextRow);
    wxInt32 Item1State = GetItemState(Row, wxLIST_STATE_SELECTED
                                      | wxLIST_STATE_FOCUSED);
    wxInt32 Item2State = GetItemState(NextRow, wxLIST_STATE_SELECTED
                                      | wxLIST_STATE_FOCUSED);

    // Flip the data for columns.
    for (wxInt32 ColumnCounter = 0;
            ColumnCounter < GetColumnCount();
            ++ColumnCounter)
    {
        Item1.SetColumn(ColumnCounter);
        GetItem(Item1);

        Item2.SetColumn(ColumnCounter);
        GetItem(Item2);

        // Do the flip
        // Set data for the first item
        Item2Flipped.SetImage(Item2.GetImage());
        Item2Flipped.SetData(Item2.GetData());
        Item2Flipped.SetText(Item2.GetText());

        // Now the second
        Item1Flipped.SetImage(Item1.GetImage());
        Item1Flipped.SetData(Item1.GetData());
        Item1Flipped.SetText(Item1.GetText());

        // Set them
        Item1Flipped.SetColumn(ColumnCounter);
        SetItem(Item1Flipped);

        Item2Flipped.SetColumn(ColumnCounter);
        SetItem(Item2Flipped);
    }

    // Due to bugs/limitations with wxWidgets, certain stuff needs to be
    // physically taken from the list control as GetItem is finicky
    SetItemState(NextRow, Item1State, wxLIST_STATE_SELECTED
                 | wxLIST_STATE_FOCUSED);
    SetItemState(Row, Item2State, wxLIST_STATE_SELECTED
                 | wxLIST_STATE_FOCUSED);
    SetItemTextColour(NextRow, Item1Colour);
    SetItemTextColour(Row, Item2Colour);
}