Changeset 419


Ignore:
Timestamp:
04/05/08 19:28:08 (12 years ago)
Author:
Eoin
Message:

Factored out base code for adding and editing items in ListViews?. Made the NewTorrent? Tracker ListView? editable.

Location:
trunk
Files:
4 added
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/res/Halite.rc

    r403 r419  
    1111#define ID_TRACKER_BEGIN                        16000 
    1212#define ID_TLVM_BEGIN                           17000 
     13#define ID_NTTLVM_BEGIN                         18000 
    1314 
    1415#define ID_HAL_MAIN_LISTVIEW_BEGIN      30000 
     
    2728#include "../src/AddTorrentDialog.hpp" 
    2829#include "../src/NewTorrentDialog.hpp" 
     30#include "../src/NewTorrentTrackerLV.hpp" 
    2931#include "../src/ConfigOptions.hpp" 
    3032#include "../src/ProgressDialog.hpp" 
     
    285287//    LISTBOX         IDC_NEWT_LISTTRACKERS,4,57,221,52,WS_TABSTOP|WS_VSCROLL|LBS_NOINTEGRALHEIGHT|LBS_SORT 
    286288    LTEXT           "Enter the tracker URLs for the torrent.",IDC_NEWTORRENT_TRACKERS_TEXT,4,32,221,11,SS_WORDELLIPSIS|SS_CENTERIMAGE 
    287     EDITTEXT        IDC_NEWT_TRACKER,4,42,193,12,ES_AUTOHSCROLL 
    288     PUSHBUTTON      "Add",IDC_NEWT_ADDTRACKER,202,41,23,13 
     289    EDITTEXT        IDC_NEWT_TRACKER,4,42,160,12,ES_AUTOHSCROLL|NOT WS_VISIBLE 
     290    EDITTEXT        IDC_NEWT_TRACKERTIER,170,42,25,12,ES_AUTOHSCROLL|ES_NUMBER|NOT WS_VISIBLE 
     291    PUSHBUTTON      "Add",IDC_NEWT_ADDTRACKER,202,41,23,13,NOT WS_VISIBLE 
    289292END 
    290293 
     
    427430 
    428431IDD_TRACKEDIT DIALOGEX 0,0,186,50 
    429 STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SETFONT | DS_FIXEDSYS | WS_VISIBLE | WS_BORDER | WS_CAPTION | WS_DLGFRAME | WS_POPUP | WS_SYSMENU 
     432STYLE DS_SETFONT | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME 
    430433EXSTYLE WS_EX_TOOLWINDOW 
    431434CAPTION "Add New Tracker" 
     
    496499        MENUITEM SEPARATOR 
    497500        MENUITEM "Delete",ID_TLVM_DELETE 
     501    END 
     502END 
     503 
     504IDR_NEWT_TRACKERLV_MENU MENU 
     505BEGIN 
     506    POPUP "_POPUP_" 
     507    BEGIN 
     508        MENUITEM "New",ID_NTTLVM_NEW 
     509        MENUITEM "Edit",ID_NTTLVM_EDIT 
     510        MENUITEM "Delete",ID_NTTLVM_DELETE 
    498511    END 
    499512END 
  • trunk/res/resource.h

    r386 r419  
    272272#define HAL_INF                                                 40203 
    273273#define HAL_HALITE                                              40204 
     274#define IDR_NEWT_TRACKERLV_MENU                 40300 
    274275 
    275276#ifndef HAL_NA 
  • trunk/sln/Halite/Halite.vcproj

    r409 r419  
    560560                        </File> 
    561561                        <File 
     562                                RelativePath="..\..\src\NewTorrentTrackerLV.cpp" 
     563                                > 
     564                        </File> 
     565                        <File 
    562566                                RelativePath="..\..\src\stdAfx.cpp" 
    563567                                > 
     
    994998                        </File> 
    995999                        <File 
     1000                                RelativePath="..\..\src\NewTorrentTrackerLV.hpp" 
     1001                                > 
     1002                        </File> 
     1003                        <File 
    9961004                                RelativePath="..\..\src\ProgressDialog.hpp" 
    9971005                                > 
     
    11141122                                <File 
    11151123                                        RelativePath="..\..\src\WTLx\EditHilight.hpp" 
     1124                                        > 
     1125                                </File> 
     1126                                <File 
     1127                                        RelativePath="..\..\src\WTLx\GenericAddDialog.hpp" 
     1128                                        > 
     1129                                </File> 
     1130                                <File 
     1131                                        RelativePath="..\..\src\WTLx\GenericAddListView.hpp" 
    11161132                                        > 
    11171133                                </File> 
  • trunk/src/HaliteWindow.cpp

    r404 r419  
    150150        UISetCheck(IDR_TRAY_MENU, 1);    
    151151         
    152         TBBUTTONINFO tbinfo = { sizeof(TBBUTTONINFO) }; 
    153         tbinfo.dwMask = TBIF_STATE; 
    154         tbinfo.fsState = TBSTATE_INDETERMINATE; 
    155         ::SendMessage(hWndToolBar, TB_SETBUTTONINFO, ID_FILE_NEW, (LPARAM)&tbinfo); 
     152//      TBBUTTONINFO tbinfo = { sizeof(TBBUTTONINFO) }; 
     153//      tbinfo.dwMask = TBIF_STATE; 
     154//      tbinfo.fsState = TBSTATE_INDETERMINATE; 
     155//      ::SendMessage(hWndToolBar, TB_SETBUTTONINFO, ID_FILE_NEW, (LPARAM)&tbinfo); 
    156156 
    157157        // Register UIEvents and the timer for the monitoring interval 
     
    472472LRESULT HaliteWindow::OnFileNew(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled) 
    473473{ 
    474         WTLx::CRadioPaneDialog newTorrent;       
     474        NewTorrentDialog newTorrent;     
    475475    newTorrent.DoModal(); 
    476476 
  • trunk/src/NewTorrentDialog.cpp

    r397 r419  
    100100        WMB_END() 
    101101 
    102 #define NEWTORRENT_TRACKERS_LAYOUT \ 
    103         WMB_HEAD(WMB_COLNOMIN(_exp), WMB_COL(_auto)), \ 
    104                 WMB_ROW(_auto,  IDC_NEWTORRENT_TRACKERS_TEXT, _r), \ 
    105                 WMB_ROW(_auto,  IDC_NEWT_TRACKER, IDC_NEWT_ADDTRACKER), \ 
    106                 WMB_ROWNOMAX(_exp|50,   IDC_NEWT_LISTTRACKERS,  _r), \ 
    107         WMB_END() 
    108  
    109102#define NEWTORRENT_BUTTONS_LAYOUT \ 
    110103        WMB_HEAD(WMB_COLNOMIN(_exp), WMB_COL(_auto), WMB_COL(_auto)), \ 
     
    135128 
    136129#define NEWTORRENT_TRACKERS_LAYOUT \ 
    137         WMB_HEAD(WMB_COLNOMIN(_exp), WMB_COL(_auto)), \ 
    138                 WMB_ROW(_auto,  IDC_NEWTORRENT_TRACKERS_TEXT, _r), \ 
    139                 WMB_ROW(_auto,  IDC_NEWT_TRACKER, IDC_NEWT_ADDTRACKER), \ 
    140                 WMB_ROWNOMAX(_exp|50,   IDC_NEWT_LISTTRACKERS,  _r), \ 
     130        WMB_HEAD(WMB_COLNOMIN(_exp), WMB_COL(_auto), WMB_COL(_auto)), \ 
     131                WMB_ROW(_auto,  IDC_NEWTORRENT_TRACKERS_TEXT, _r, _r), \ 
     132/*              WMB_ROW(_auto,  IDC_NEWT_TRACKER, IDC_NEWT_TRACKERTIER, IDC_NEWT_ADDTRACKER), */\ 
     133                WMB_ROWNOMAX(_exp|50,   IDC_NEWT_LISTTRACKERS,  _r, _r), \ 
    141134        WMB_END() 
    142135 
  • trunk/src/NewTorrentDialog.hpp

    r403 r419  
    2020#define HAL_FILES_LISTVIEW_ADV                  ID_NEWTORRENT_BEGIN+11 
    2121#define HAL_NEW_PANE_DLG                                ID_NEWTORRENT_BEGIN+12 
     22#define IDC_NEWT_TRACKERTIER                    ID_NEWTORRENT_BEGIN+13 
    2223//#define IDC_PROG_CANCEL                 ID_NEWTORRENT_BEGIN + 2 
    2324//#define IDC_PROG_PROGRESS               ID_NEWTORRENT_BEGIN + 3 
     
    3233#include "ListViewEdit.hpp" 
    3334#include "HaliteSortListViewCtrl.hpp" 
     35#include "NewTorrentTrackerLV.hpp" 
    3436 
    3537 
     
    199201        LRESULT onInitDialog(HWND, LPARAM) 
    200202        {        
    201                 editList_.SubclassWindow(GetDlgItem(IDC_NEWT_LISTTRACKERS));     
    202  
    203                 editList_.AddColumn(L"Col 1", 0); 
    204                 editList_.AddColumn(L"Col 2", 1); 
    205  
    206                 int itemPos = editList_.AddItem(0, 0, L"Yoke 1", 0); 
    207                 editList_.SetItemText(itemPos, 1, L"Thingy 2"); 
    208  
    209                 itemPos = editList_.AddItem(0, 0, L"Stuff 3", 0); 
    210                 editList_.SetItemText(itemPos, 1, L"Empty 4"); 
     203                trackerList_.Attach(GetDlgItem(IDC_NEWT_LISTTRACKERS));  
    211204 
    212205                return 0; 
     
    216209         
    217210private: 
    218         WTLx::CEditListViewCtrl editList_; 
     211        NewTorrent_TrackerListViewCtrl trackerList_; 
    219212}; 
    220213 
     
    304297    void OnShowWindow(BOOL bShow, UINT nStatus) 
    305298    { 
     299        resizeClass::DlgResize_Init(false, true, WS_CLIPCHILDREN); 
     300 
    306301                hal::event().post(shared_ptr<hal::EventDetail>( 
    307302                        new hal::EventMsg(L"NewTorrentDialog::OnShowWindow()")));        
     
    318313            ModifyStyle(0, WS_THICKFRAME, 0); 
    319314            Center(); 
    320  
    321             resizeClass::DlgResize_Init(false, true, WS_CLIPCHILDREN); 
    322315        } 
    323316 
  • trunk/src/advtabs/TrackerAddDialog.hpp

    r395 r419  
    77#pragma once 
    88 
    9 #include "DdxEx.hpp" 
     9#include "GenericAddDialog.hpp" 
    1010 
    1111class TrackerAddDialog : 
    1212        public CDialogImpl<TrackerAddDialog>, 
    13     public CWinDataExchangeEx<TrackerAddDialog> 
     13        public WTLx::GenericAddDialog<TrackerAddDialog, IDD_TRACKEDIT>, 
     14        public CDialogResize<TrackerAddDialog>, 
     15        public CWinDataExchangeEx<TrackerAddDialog> 
    1416{ 
    15 protected: 
     17public: 
    1618        typedef TrackerAddDialog thisClass; 
    17         typedef CDialogImpl<TrackerAddDialog> baseClass; 
     19        typedef WTLx::GenericAddDialog<thisClass, IDD_TRACKEDIT> genericBaseClass; 
     20        typedef CDialogResize<thisClass> resizeClass; 
    1821         
    1922public: 
    2023        TrackerAddDialog(wstring title, hal::TrackerDetail& tracker) : 
    21                 title_(title), 
     24                genericBaseClass(title, "genericAddDlgs/AddTracker", "AddTracker"), 
    2225                tracker_(tracker) 
    2326        {} 
    24          
    25         enum { IDD = IDD_TRACKEDIT }; 
    2627 
    2728    BEGIN_MSG_MAP_EX(TrackerAddDialog) 
    28         MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) 
    29                 MSG_WM_CLOSE(OnClose)    
    30                 COMMAND_ID_HANDLER_EX(IDOK, OnOk) 
    31                 COMMAND_ID_HANDLER_EX(IDCANCEL, OnCancel) 
     29                CHAIN_MSG_MAP(resizeClass) 
     30                CHAIN_MSG_MAP(genericBaseClass) 
    3231    END_MSG_MAP() 
    3332 
     
    3534                DDX_EX_STDWSTRING(IDC_TRACKER_EDIT_URL, tracker_.url); 
    3635        DDX_INT(IDC_TRACKER_EDIT_TIER, tracker_.tier) 
    37     END_DDX_MAP() 
    38          
    39         LRESULT OnInitDialog(...) 
    40         { 
    41                 SetWindowText(title_.c_str()); 
    42                 CenterWindow(); 
    43                 BOOL retval =  DoDataExchange(false); 
    44                  
    45                 return TRUE; 
    46         } 
    47          
    48         void OnClose() 
    49         { 
    50                 DoDataExchange(true); 
    51                 EndDialog(0); 
    52         } 
     36    END_DDX_MAP()        
    5337 
    54         void OnCancel(...) 
    55         { 
    56                 DoDataExchange(true); 
    57                 EndDialog(0); 
    58         } 
    59  
    60         void OnOk(...) 
    61         { 
    62                 DoDataExchange(true); 
    63                 EndDialog(1); 
    64         } 
    65  
    66         BOOL PreTranslateMessage(MSG* pMsg) 
    67         { 
    68                 return this->IsDialogMessage(pMsg); 
    69         } 
    70          
    71         void onCancel(UINT, int, HWND hWnd) 
    72         { 
    73          
    74         } 
     38        BEGIN_DLGRESIZE_MAP(thisClass) 
     39                DLGRESIZE_CONTROL(IDC_TRACKER_EDIT_URL, DLSZ_SIZE_X) 
     40                DLGRESIZE_CONTROL(IDC_TRACKER_EDIT_TIER, DLSZ_MOVE_X) 
     41                DLGRESIZE_CONTROL(IDOK, DLSZ_MOVE_X|DLSZ_MOVE_Y) 
     42                DLGRESIZE_CONTROL(IDCANCEL, DLSZ_MOVE_X|DLSZ_MOVE_Y) 
     43        END_DLGRESIZE_MAP() 
    7544 
    7645private: 
  • trunk/src/advtabs/TrackerListView.cpp

    r397 r419  
    5757} 
    5858 
    59 void TrackerListViewCtrl::enterNewTracker() 
     59void TrackerListViewCtrl::newItem() 
    6060{ 
    6161        hal::TrackerDetail tracker(L"", 0);      
     
    7171} 
    7272 
    73 LRESULT TrackerListViewCtrl::OnDoubleClick(int i, LPNMHDR pnmh, BOOL&) 
    74 { 
    75 //      enterNewTracker(); 
    76  
    77          
    78                 LPNMITEMACTIVATE lpnmitem = (LPNMITEMACTIVATE)pnmh; 
    79                 LVHITTESTINFO hit; 
    80  
    81                 hit.pt = lpnmitem->ptAction; 
    82                 SubItemHitTest(&hit); 
    83  
    84                 HAL_DEV_MSG(wformat(L"OnDoubleClick %1% %2%") % hit.iItem % hit.iSubItem); 
    85  
    86         return 0; 
    87 } 
    88  
    89 LRESULT TrackerListViewCtrl::OnNew(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled) 
    90 { 
    91         enterNewTracker(); 
    92          
    93         return 0; 
    94 } 
    95  
    96 LRESULT TrackerListViewCtrl::OnEdit(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled) 
     73void TrackerListViewCtrl::editItem(int index) 
    9774{ 
    9875        array<wchar_t, MAX_PATH> buffer; 
    99         int index = manager().selectedIndex(); 
    100          
     76 
    10177        GetItemText(index, 0, buffer.elems, buffer.size()); 
    10278        hal::TrackerDetail tracker(wstring(buffer.elems), 0); 
     
    12096                listEdited_(); 
    12197        }        
    122         return 0; 
    12398} 
    12499 
    125 LRESULT TrackerListViewCtrl::OnDelete(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled) 
     100void TrackerListViewCtrl::deleteItem(int index) 
    126101{ 
    127         DeleteItem(manager().selectedIndex()); 
     102        DeleteItem(index); 
    128103        listEdited_(); 
    129          
    130         return 0; 
    131104} 
    132105 
  • trunk/src/advtabs/TrackerListView.hpp

    r389 r419  
    55//          http://www.boost.org/LICENSE_1_0.txt) 
    66 
    7 #define ID_TLVM_BEGIN           11000 
    8 #define ID_TLVM_NEW             ID_TLVM_BEGIN + 1 
    9 #define ID_TLVM_EDIT            ID_TLVM_BEGIN + 2 
    10 #define ID_TLVM_DELETE          ID_TLVM_BEGIN + 3 
    11 #define ID_TLVM_PRIMARY         ID_TLVM_BEGIN + 4 
     7#define ID_TLVM_BEGIN                   17000 
     8#define ID_TLVM_NEW                     ID_TLVM_BEGIN + 1 
     9#define ID_TLVM_EDIT                    ID_TLVM_BEGIN + 2 
     10#define ID_TLVM_DELETE                  ID_TLVM_BEGIN + 3 
     11#define ID_TLVM_PRIMARY                 ID_TLVM_BEGIN + 4 
    1212 
    1313#ifndef RC_INVOKED 
     
    2121#include "../HaliteSortListViewCtrl.hpp" 
    2222 
     23#include "GenericAddListView.hpp" 
     24 
    2325class TrackerListViewCtrl : 
    2426        public CHaliteSortListViewCtrl<TrackerListViewCtrl>, 
    2527        public hal::IniBase<TrackerListViewCtrl>, 
     28        public WTLx::GenericAddListView<TrackerListViewCtrl, ID_TLVM_NEW, ID_TLVM_EDIT, ID_TLVM_DELETE>, 
    2629        private boost::noncopyable 
    2730{ 
    28  
    2931        typedef hal::IniBase<TrackerListViewCtrl> iniClass; 
    3032        typedef CHaliteSortListViewCtrl<TrackerListViewCtrl> listClass; 
     33        typedef WTLx::GenericAddListView<TrackerListViewCtrl, ID_TLVM_NEW, ID_TLVM_EDIT, ID_TLVM_DELETE> genericAddlistClass; 
    3134 
    3235        friend class listClass; 
     
    5962        BEGIN_MSG_MAP_EX(TrackerListViewCtrl) 
    6063                MSG_WM_DESTROY(OnDestroy) 
    61  
    62                 COMMAND_ID_HANDLER(ID_TLVM_NEW, OnNew) 
    63                 COMMAND_ID_HANDLER(ID_TLVM_EDIT, OnEdit) 
    64                 COMMAND_ID_HANDLER(ID_TLVM_DELETE, OnDelete) 
    6564                COMMAND_ID_HANDLER(ID_TLVM_PRIMARY, OnPrimary) 
    6665 
    67                 REFLECTED_NOTIFY_CODE_HANDLER(NM_DBLCLK, OnDoubleClick) 
    68  
     66                CHAIN_MSG_MAP(genericAddlistClass) 
    6967                CHAIN_MSG_MAP(listClass) 
    7068                DEFAULT_REFLECTION_HANDLER() 
     
    8280    } 
    8381 
    84         LRESULT OnDoubleClick(int i, LPNMHDR pnmh, BOOL&); 
    85         LRESULT OnNew(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); 
    86         LRESULT OnEdit(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); 
    87         LRESULT OnDelete(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); 
    8882        LRESULT OnPrimary(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); 
     83 
     84        void newItem(); 
     85        void editItem(int); 
     86        void deleteItem(int); 
    8987 
    9088        void attachEditedConnection(boost::function<void ()> fn) { listEdited_.connect(fn); } 
Note: See TracChangeset for help on using the changeset viewer.