Ticket #1455: patch5.diff

File patch5.diff, 3.7 KB (added by tropics, 20 years ago)

patch v1

  • UsersListCtrl.cpp

     
    5253    ON_COMMAND(ID_USERVIEWCONTEXT_KICK, OnContextmenuKick)
    5354    ON_WM_CONTEXTMENU()
    5455    //}}AFX_MSG_MAP
     56    ON_WM_SIZE()
    5557END_MESSAGE_MAP()
    5658
    5759/////////////////////////////////////////////////////////////////////////////
     
    6264    if (CListCtrl::OnCreate(lpCreateStruct) == -1)
    6365        return -1;
    6466   
    65     InsertColumn(0,"Connected users",LVCFMT_LEFT,1000);
     67    InsertColumn(0,"ID",LVCFMT_RIGHT,-1,0);
     68    InsertColumn(1,"Account",LVCFMT_LEFT,-1,1);
     69    InsertColumn(2,"IP",LVCFMT_RIGHT,-1,2);
     70    AutoResizeColumns();
     71
    6672    return 0;
    6773}
    6874
     75void CUsersListCtrl::AutoResizeColumns()
     76{
     77    SetColumnWidth(0,LVSCW_AUTOSIZE_USEHEADER);
     78    SetColumnWidth(1,LVSCW_AUTOSIZE_USEHEADER);
     79    SetColumnWidth(2,LVSCW_AUTOSIZE_USEHEADER);
     80}
     81
    6982void CUsersListCtrl::ProcessConnOp(int op, const t_connectiondata &connectionData)
    7083{
    7184    if (op == USERCONTROL_CONNOP_ADD)
    7285    {
    73         CString str;
     86        CString str_id;
     87        str_id.Format("%06d",connectionData.userid);
     88        int index = InsertItem(GetItemCount(), str_id);
    7489        if (connectionData.user == "")
    75             str.Format("(not logged in) (%06d)",connectionData.userid);
     90            SetItemText(index,1,"(not logged in)");
    7691        else
    77             str.Format("%s (%06d)", connectionData.user, connectionData.userid);
    78         int index = InsertItem(GetItemCount(), str);
     92            SetItemText(index,1,connectionData.user);
     93        SetItemText(index,2,connectionData.ip);
    7994        t_connectiondata *pData = new t_connectiondata;
    8095        *pData = connectionData;
    8196        SetItemData(index, (DWORD)pData);
     97        AutoResizeColumns();
    8298
    8399        if (GetItemCount() == 1)
    84100            m_pOwner->SetIcon();
     
    92108            {
    93109                *pData = connectionData;
    94110
    95                 CString str;
     111                CString str_id;
     112                str_id.Format("%06d",connectionData.userid);
     113                SetItemText(i,0,str_id);
    96114                if (connectionData.user=="")
    97                     str.Format("(not logged in) (%06d)",connectionData.userid);
     115                    SetItemText(i,1,"(not logged in)");
    98116                else
    99                     str.Format("%s (%06d)",connectionData.user,connectionData.userid);
    100                 SetItemText(i,0,str);
     117                    SetItemText(i,1,connectionData.user);
     118                AutoResizeColumns();
     119
    101120                break;
    102121            }
    103122        }
     
    111130            {
    112131                delete pData;
    113132                DeleteItem(i);
     133                AutoResizeColumns();
    114134                break;
    115135            }
    116136        }
     
    257277        break;
    258278    }
    259279    return TRUE;
    260 }
    261  No newline at end of file
     280}
     281
     282void CUsersListCtrl::OnSize(UINT nType, int cx, int cy)
     283{
     284    CListCtrl::OnSize(nType, cx, cy);
     285
     286    AutoResizeColumns();
     287}
  • UsersListCtrl.h

    
          
     
    4242// Operationen
    4343public:
    4444    BOOL ParseUserControlCommand(unsigned char *pData, DWORD dwDataLength);
     45    void AutoResizeColumns();
    4546
    4647// Überschreibungen
    4748    // Vom Klassen-Assistenten generierte virtuelle Funktionsüberschreibungen
     
    6364    //}}AFX_MSG
    6465
    6566    DECLARE_MESSAGE_MAP()
     67public:
     68    afx_msg void OnSize(UINT nType, int cx, int cy);
    6669};
    6770
    6871
  • UsersView.cpp

     
    9595   
    9696    CMainFrame *pMainFrame = (CMainFrame *)AfxGetMainWnd();
    9797    m_pListCtrl=new CUsersListCtrl(pMainFrame);
    98     m_pListCtrl->Create(LVS_NOSORTHEADER|LVS_REPORT|WS_CHILD | WS_VISIBLE | LVS_SHOWSELALWAYS|LVS_SHAREIMAGELISTS|WS_VSCROLL|LVS_NOCOLUMNHEADER,CRect(0,0,0,0),this,0);
     98    m_pListCtrl->Create(LVS_NOSORTHEADER|LVS_REPORT|WS_CHILD | WS_VISIBLE | LVS_SHOWSELALWAYS|LVS_SHAREIMAGELISTS|WS_VSCROLL,CRect(0,0,0,0),this,0);
    9999   
    100100    return 0;
    101101}