123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467 |
- // InitList.cpp
- //
- #include "stdafx.h"
- #include "resource.h"
- #include VIEWCLASS_HEADER_FILE
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
- int VIEWCLASS::m_nColWidths[6] = { 8, 14, 12, 9, 12, 9 }; // sixty-fourths
- ///////////////////////////////////////////////////////////////////////////////
- // InitListCtrl
- void VIEWCLASS::InitListCtrl(CXListCtrl * pList)
- {
- ASSERT(pList);
- if (!pList)
- return;
- // set column width according to window rect
- CRect rect;
- pList->GetWindowRect(&rect);
- int w = rect.Width() - 2;
- TCHAR * lpszHeaders[] = { _T("Enable"),
- _T("Item"),
- _T("Pct"),
- _T("Status"),
- _T("City"),
- _T("Population"),
- NULL };
- int i;
- int total_cx = 0;
- LV_COLUMN lvcolumn;
- memset(&lvcolumn, 0, sizeof(lvcolumn));
- w = w - ::GetSystemMetrics(SM_CXVSCROLL); // width of vertical scroll bar
- // add columns
- for (i = 0; ; i++)
- {
- if (lpszHeaders[i] == NULL)
- break;
- lvcolumn.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH;
- lvcolumn.fmt = (i == 1) ? LVCFMT_LEFT : LVCFMT_CENTER;
- lvcolumn.fmt = (i == 5) ? LVCFMT_RIGHT : lvcolumn.fmt;
- lvcolumn.pszText = lpszHeaders[i];
- lvcolumn.iSubItem = i;
- lvcolumn.cx = (lpszHeaders[i+1] == NULL) ? w - total_cx - 2 : (w * m_nColWidths[i]) / 64;
- total_cx += lvcolumn.cx;
- pList->InsertColumn(i, &lvcolumn);
- }
- #if 0 // -----------------------------------------------------------
- // create the image list from bitmap resource
- VERIFY(pList->m_cImageList.Create(13, 13, ILC_COLOR24, 3, 1));
- CBitmap bm;
- bm.LoadBitmap(IDB_CHECKBOXES);
- pList->m_cImageList.Add(&bm, RGB(255, 0, 255));
- pList->m_HeaderCtrl.SetImageList(&pList->m_cImageList);
- #endif // -----------------------------------------------------------
- // iterate through header items and attach the image list
- HDITEM hditem;
- for (i = 0; i < pList->m_HeaderCtrl.GetItemCount(); i++)
- {
- hditem.mask = HDI_IMAGE | HDI_FORMAT;
- pList->m_HeaderCtrl.GetItem(i, &hditem);
- hditem.fmt |= HDF_IMAGE;
- if (i == 0 || i == 3)
- hditem.iImage = XHEADERCTRL_UNCHECKED_IMAGE;
- else
- hditem.iImage = XHEADERCTRL_NO_IMAGE;
- pList->m_HeaderCtrl.SetItem(i, &hditem);
- }
- memset(&lvcolumn, 0, sizeof(lvcolumn));
- // set the format again - must do this twice or first column does not get set
- for (i = 0; ; i++)
- {
- if (lpszHeaders[i] == NULL)
- break;
- lvcolumn.mask = LVCF_FMT | LVCF_SUBITEM;
- lvcolumn.fmt = (i == 1) ? LVCFMT_LEFT : LVCFMT_CENTER;
- lvcolumn.fmt = (i == 5) ? LVCFMT_RIGHT : lvcolumn.fmt;
- lvcolumn.iSubItem = i;
- pList->SetColumn(i, &lvcolumn);
- }
- }
- ///////////////////////////////////////////////////////////////////////////////
- // FillListCtrl
- void VIEWCLASS::FillListCtrl(CXListCtrl * pList)
- {
- static TCHAR * szCityNames[] =
- {
- _T("Tokyo"),
- _T("Mexico City"),
- _T("Seoul"),
- _T("New York"),
- _T("Sao Paulo"),
- _T("Bombay"),
- _T("Delhi"),
- _T("Shanghai"),
- _T("Los Angeles"),
- _T("Osaka"),
- _T("Jakarta"),
- _T("Calcutta"),
- _T("Cairo"),
- _T("Manila"),
- _T("Karachi"),
- _T("Moscow"),
- _T("Buenos Aires"),
- _T("Dacca"),
- _T("Rio de Janeiro"),
- _T("Beijing"),
- _T("London"),
- _T("Tehran"),
- _T("Istanbul"),
- _T("Lagos"),
- _T("Shenzhen"),
- _T("Paris"),
- _T("Chicago"),
- _T("Canton"),
- _T("Chungking"),
- _T("Wuhan"),
- _T("Lima"),
- _T("Bangkok"),
- _T("Bogota"),
- _T("Washington"),
- _T("Nagoya"),
- _T("Madras"),
- _T("Lahore"),
- _T("Hong Kong"),
- _T("Johannesburg"),
- _T("San Francisco"),
- _T("Bangalore"),
- _T("Kinshasa"),
- _T("Taipei"),
- _T("Hyderabad"),
- _T("Tientsin"),
- _T("Dallas"),
- _T("Philadelphia"),
- _T("Santiago"),
- _T("Detroit"),
- _T("Ruhr"),
- _T("Boston"),
- _T("Khartoum"),
- _T("Ahmadabad"),
- _T("Belo Horizonte"),
- _T("Madrid"),
- _T("Baghdad"),
- _T("Miami"),
- _T("Houston"),
- _T("Ho Chi Minh City"),
- _T("Toronto"),
- _T("St. Petersburg"),
- _T("Atlanta"),
- _T("Alexandria"),
- _T("Caracas"),
- _T("Singapore"),
- _T("Riyadh"),
- _T("Shenyang"),
- _T("Rangoon"),
- _T("Poona"),
- _T("Guadalajara"),
- _T("Sydney"),
- _T("Chittagong"),
- _T("Kuala Lumpur"),
- _T("Berlin"),
- _T("Algiers"),
- _T("Porto Alegre"),
- _T("Abidjan"),
- _T("Monterrey"),
- _T("Phoenix"),
- _T("Casablanca"),
- _T("Milan"),
- _T("Barcelona"),
- _T("Ankara"),
- _T("Recife"),
- _T("Seattle"),
- _T("Busan"),
- _T("Melbourne"),
- _T("Surat"),
- _T("Montreal"),
- _T("Brasília"),
- _T("Pyongyang"),
- _T("Sian"),
- _T("Athens"),
- _T("Durban"),
- _T("Fortaleza"),
- _T("Nanking"),
- _T("Salvador"),
- _T("Medellin"),
- _T("Harbin"),
- _T("Minneapolis"),
- NULL
- };
- static TCHAR * szCityPopulations[] =
- {
- _T("34,200,000"),
- _T("22,800,000"),
- _T("22,300,000"),
- _T("21,900,000"),
- _T("20,200,000"),
- _T("19,850,000"),
- _T("19,700,000"),
- _T("18,150,000"),
- _T("18,000,000"),
- _T("16,800,000"),
- _T("16,550,000"),
- _T("15,650,000"),
- _T("15,600,000"),
- _T("14,950,000"),
- _T("14,300,000"),
- _T("13,750,000"),
- _T("13,450,000"),
- _T("13,250,000"),
- _T("12,150,000"),
- _T("12,100,000"),
- _T("12,000,000"),
- _T("11,850,000"),
- _T("11,500,000"),
- _T("11,100,000"),
- _T("10,700,000"),
- _T("9,950,000"),
- _T("9,750,000"),
- _T("9,550,000"),
- _T("9,350,000"),
- _T("9,100,000"),
- _T("8,550,000"),
- _T("8,450,000"),
- _T("8,350,000"),
- _T("8,150,000"),
- _T("8,050,000"),
- _T("7,600,000"),
- _T("7,550,000"),
- _T("7,400,000"),
- _T("7,400,000"),
- _T("7,250,000"),
- _T("7,100,000"),
- _T("7,000,000"),
- _T("6,950,000"),
- _T("6,700,000"),
- _T("6,350,000"),
- _T("6,000,000"),
- _T("6,000,000"),
- _T("5,900,000"),
- _T("5,800,000"),
- _T("5,800,000"),
- _T("5,700,000"),
- _T("5,650,000"),
- _T("5,600,000"),
- _T("5,600,000"),
- _T("5,600,000"),
- _T("5,550,000"),
- _T("5,550,000"),
- _T("5,400,000"),
- _T("5,400,000"),
- _T("5,400,000"),
- _T("5,250,000"),
- _T("5,100,000"),
- _T("5,000,000"),
- _T("4,700,000"),
- _T("4,650,000"),
- _T("4,550,000"),
- _T("4,550,000"),
- _T("4,500,000"),
- _T("4,450,000"),
- _T("4,350,000"),
- _T("4,350,000"),
- _T("4,300,000"),
- _T("4,300,000"),
- _T("4,200,000"),
- _T("4,150,000"),
- _T("4,150,000"),
- _T("4,100,000"),
- _T("3,950,000"),
- _T("3,900,000"),
- _T("3,850,000"),
- _T("3,850,000"),
- _T("3,800,000"),
- _T("3,750,000"),
- _T("3,750,000"),
- _T("3,750,000"),
- _T("3,700,000"),
- _T("3,700,000"),
- _T("3,700,000"),
- _T("3,650,000"),
- _T("3,600,000"),
- _T("3,600,000"),
- _T("3,600,000"),
- _T("3,500,000"),
- _T("3,500,000"),
- _T("3,500,000"),
- _T("3,500,000"),
- _T("3,500,000"),
- _T("3,450,000"),
- _T("3,400,000"),
- _T("3,400,000"),
- NULL
- };
- /////////////////////////////////////////////////////////////////
- /////////////////////////////////////////////////////////////////
- //
- // Note - the string arrays must persist for life of list control
- //
- /////////////////////////////////////////////////////////////////
- /////////////////////////////////////////////////////////////////
- // a list of some of my favorite things - note that this list
- // is not sorted
- m_sa1.RemoveAll();
- m_sa1.Add(_T("banana"));
- m_sa1.Add(_T("strawberry"));
- m_sa1.Add(_T("tangerine"));
- m_sa1.Add(_T("cherry"));
- m_sa1.Add(_T("plum"));
- m_sa1.Add(_T("cranberry"));
- m_sa1.Add(_T("blueberry"));
- m_sa1.Add(_T("lime"));
- m_sa1.Add(_T("pear"));
- m_sa1.Add(_T("lemon"));
- m_sa1.Add(_T("orange"));
- m_sa1.Add(_T("peach"));
- m_sa1.Add(_T("apple"));
- m_sa1.Add(_T("raspberry"));
- m_sa1.Add(_T("grape"));
- // a list of some more of my favorite things
- m_sa2.RemoveAll();
- m_sa2.Add(_T("Aidi"));
- m_sa2.Add(_T("Akbas"));
- m_sa2.Add(_T("Ariegeois"));
- m_sa2.Add(_T("Boerboel"));
- m_sa2.Add(_T("Boolomo"));
- m_sa2.Add(_T("Borzoi"));
- m_sa2.Add(_T("Broholmer"));
- m_sa2.Add(_T("Caniche"));
- m_sa2.Add(_T("Charplaninatz"));
- m_sa2.Add(_T("Drok"));
- m_sa2.Add(_T("Elo"));
- m_sa2.Add(_T("Farou"));
- m_sa2.Add(_T("Godo"));
- m_sa2.Add(_T("Groenendael"));
- m_sa2.Add(_T("Hahoavu"));
- m_sa2.Add(_T("Heidewachtel"));
- m_sa2.Add(_T("Hovawart"));
- m_sa2.Add(_T("Juzak"));
- m_sa2.Add(_T("Kai"));
- m_sa2.Add(_T("Kangal"));
- m_sa2.Add(_T("Karabash"));
- m_sa2.Add(_T("Kishu"));
- m_sa2.Add(_T("Kuvasz"));
- m_sa2.Add(_T("Landseer"));
- m_sa2.Add(_T("Levesque"));
- m_sa2.Add(_T("Licaon"));
- m_sa2.Add(_T("Maliki"));
- m_sa2.Add(_T("Mechelaar"));
- m_sa2.Add(_T("Mirigung"));
- m_sa2.Add(_T("Mudi"));
- m_sa2.Add(_T("Noggum"));
- m_sa2.Add(_T("Ocherese"));
- m_sa2.Add(_T("Phalene"));
- m_sa2.Add(_T("Pocadan"));
- m_sa2.Add(_T("Podhalan"));
- m_sa2.Add(_T("Poitevin"));
- m_sa2.Add(_T("Saluki"));
- m_sa2.Add(_T("Samojedskaja"));
- m_sa2.Add(_T("Samoyed"));
- m_sa2.Add(_T("Spion"));
- m_sa2.Add(_T("Stichelhaar"));
- m_sa2.Add(_T("Taygan"));
- m_sa2.Add(_T("Telomian"));
- m_sa2.Add(_T("Tornjak"));
- m_sa2.Add(_T("Virelade"));
- m_sa2.Add(_T("Warrigal"));
- pList->LockWindowUpdate(); // ***** lock window updates while filling list *****
- pList->DeleteAllItems();
- CString str = _T("");
- int nItem, nSubItem;
- // insert the items and subitems into the list
- for (nItem = 0; nItem < 50; nItem++)
- {
- for (nSubItem = 0; nSubItem < 6; nSubItem++)
- {
- str = _T("");
- if (nSubItem == 0) // checkbox
- str = _T(" ");
- else if (nSubItem == 1) // combo
- str = _T("");
- else if (nSubItem == 2) // progress
- str = _T("Complete");
- else if (nSubItem == 3) // checkbox
- str = _T("OK");
- else if (nSubItem == 4) // city name
- str = szCityNames[nItem];
- else if (nSubItem == 5) // city population
- str = szCityPopulations[nItem];
- // show background coloring
- if (nSubItem == 0)
- pList->InsertItem(nItem, str);
- else if (nItem == 0 && nSubItem == 4)
- pList->SetItemText(nItem, nSubItem, str, RGB(0,0,0), RGB(210,221,244));
- else if (nItem == 3 && nSubItem == 1)
- pList->SetItemText(nItem, nSubItem, str, RGB(0,0,0), RGB(255,230,162));
- else if (nItem == 8 && nSubItem == 3)
- pList->SetItemText(nItem, nSubItem, str, RGB(0,0,0), RGB(194,209,166));
- else if (nItem == 1 && nSubItem == 2)
- pList->SetItemText(nItem, nSubItem, str, RGB(0,0,0), RGB(247,202,202));
- else
- pList->SetItemText(nItem, nSubItem, str);
- if (nSubItem == 1 && ((nItem & 1) == 1))
- pList->SetComboBox(nItem, nSubItem,
- TRUE, // enable combobox
- &m_sa1, // pointer to persistent CStringArray
- 5, // size of dropdown
- 0, // initial combo selection
- TRUE); // sort CStringArray
- if (nSubItem == 1 && ((nItem & 1) == 0))
- pList->SetComboBox(nItem, nSubItem,
- TRUE, // enable combobox
- &m_sa2, // pointer to persistent CStringArray
- 10, // size of dropdown
- 3, // initial combo selection
- TRUE); // sort CStringArray
- if (nSubItem == 0 || nSubItem == 3)
- pList->SetCheckbox(nItem, nSubItem, 1);
- if (nSubItem == 4)
- pList->SetEdit(nItem, nSubItem);
- }
- }
- #ifndef NO_XLISTCTRL_TOOL_TIPS
- // set tool tips in second row
- nItem = 1;
- for (nSubItem = 0; nSubItem < 6; nSubItem++)
- {
- str.Format(_T("This is %d,%d"), nItem, nSubItem);
- pList->SetItemToolTipText(nItem, nSubItem, str);
- }
- #endif
- pList->UnlockWindowUpdate(); // ***** unlock window updates *****
- }
|