OSDN Git Service

2012/01/18 23:37:27
authorqwerty2501 <riot313@gmail.com>
Wed, 18 Jan 2012 14:37:27 +0000 (23:37 +0900)
committerqwerty2501 <riot313@gmail.com>
Wed, 18 Jan 2012 14:37:27 +0000 (23:37 +0900)
nlite.suo
nlite/nlite_commentWrite.cpp
nlite/nlite_commentWrite.h
nlite/nlite_commentview.cpp

index 51fc55f..6f6cafe 100644 (file)
Binary files a/nlite.suo and b/nlite.suo differ
index cc5c3ee..1dbf9aa 100644 (file)
@@ -18,34 +18,36 @@ const static UINT_PTR INIT_COMMENTWRITE_MAXLENGTH = 60;
 
 
 const ComentColor GENERALUSER_COMMENT_COLORLIST[] = {
-       {TEXT("white"),0xFFFFFF},
-       {TEXT("red"),0xFF0000},
-       {TEXT("pink"),0xFF8080},
-       {TEXT("orange"),0xFFC000},
-       {TEXT("yellow"),0xFFFF00},
-       {TEXT("green"),0x00FF00},
-       {TEXT("cyan"),0x00FFFF},
-       {TEXT("blue"),0x0000FF},
-       {TEXT("purple"),0xC000FF},
-       {TEXT("black"),0x000000}
+       {TEXT("white"),RGB(0xFF,0xFF,0xFF)},
+       {TEXT("red"),RGB(0xFF,0x00,0x00)},
+       {TEXT("pink"),RGB(0xFF,0x80,0x80)},
+       {TEXT("orange"),RGB(0xFF,0xC0,0x00)},
+       {TEXT("yellow"),RGB(0xFF,0xFF,0x00)},
+       {TEXT("green"),RGB(0x00,0xFF,0x00)},
+       {TEXT("cyan"),RGB(0x00,0xFF,0xFF)},
+       {TEXT("blue"),RGB(0x00,0x00,0xFF)},
+       {TEXT("purple"),RGB(0xC0,0x00,0xFF)},
+       {TEXT("black"),RGB(0x00,0x00,0x00)}
 };
 
 const ComentColor PREMIUM_COMMENT_COLORLIST[] = {
-       {TEXT("white2"),0xCCCC99},
-       {TEXT("red2"),0xCC0033},
-       {TEXT("pink2"),0xFF33CC},
-       {TEXT("orange2"),0xFF6600},
-       {TEXT("yellow2"),0x999900},
-       {TEXT("green2"),0x00CC66},
-       {TEXT("cyan2"),0x00CCCC},
-       {TEXT("blue2"),0x3399FF},
-       {TEXT("purple2"),0x6633CC},
-       {TEXT("black2"),0x666666}
+       {TEXT("white2"),RGB(0xCC,0xCC,0x99)},
+       {TEXT("red2"),RGB(0xCC,0x00,0x33)},
+       {TEXT("pink2"),RGB(0xFF,0x33,0xCC)},
+       {TEXT("orange2"),RGB(0xFF,0x66,0x00)},
+       {TEXT("yellow2"),RGB(0x99,0x99,0x00)},
+       {TEXT("green2"),RGB(0x00,0xCC,0x66)},
+       {TEXT("cyan2"),RGB(0x00,0xCC,0xCC)},
+       {TEXT("blue2"),RGB(0x33,0x99,0xFF)},
+       {TEXT("purple2"),RGB(0x66,0x33,0xCC)},
+       {TEXT("black2"),RGB(0x66,0x66,0x66)}
 };
 
-static VOID addCommentColorList(CComboBox &combo,LPVOID * colorList,UINT_PTR length);
+template<typename T>
+static VOID addItemList(CComboBox &combo,T * colorList,UINT_PTR length);
 
-static VOID addCommentColorList(CComboBox &combo,LPVOID * colorList,UINT_PTR length){
+template<typename T>
+static VOID addItemList(CComboBox &combo,T * colorList,UINT_PTR length){
 
        UINT_PTR startItemcount = combo.GetCount();
        for(UINT_PTR index = startItemcount; index < length;index++){
@@ -69,13 +71,15 @@ LRESULT CCommentWriteWindow::OnCreate(LPCREATESTRUCT lpReateStruct){
 
        commentPosBox.Create(m_hWnd,0,WC_COMBOBOX,WS_CHILD | WS_VISIBLE | CBS_DROPDOWNLIST ,0,COMMENTPOS_BOX);
        commentSizeBox.Create(m_hWnd,0,WC_COMBOBOX,WS_CHILD | WS_VISIBLE | CBS_DROPDOWNLIST,0,COMMENTSIZE_BOX);
-       commentColorBox.Create(m_hWnd,0,WC_COMBOBOX,WS_CHILD | WS_VISIBLE | CBS_DROPDOWNLIST  ,0,COMMENTCOLOR_BOX);
+       commentColorBox.Create(m_hWnd,0,WC_COMBOBOX,WS_CHILD | WS_VISIBLE  | CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED        ,0,COMMENTCOLOR_BOX);
        anonymousButton.Create(m_hWnd,0,WC_BUTTON,WS_CHILD | WS_VISIBLE | BS_CHECKBOX,0,ANONYMOUS_BUTTON);
        comment.Create(m_hWnd,0,WC_EDIT,WS_CHILD | WS_VISIBLE | WS_BORDER,0,COMMENT_EDIT);
        commentWriteButton.Create(m_hWnd,0,WC_BUTTON,WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,0,COMMENTWRITE_BOTTON);
        commentPosBox.SetFont(AtlGetDefaultGuiFont());
        commentSizeBox.SetFont(AtlGetDefaultGuiFont());
        commentColorBox.SetFont(AtlGetDefaultGuiFont());
+
+       
        anonymousButton.SetWindowTextW(ANONYMOUS_BOTTONSTRING);
        anonymousButton.SetFont(AtlGetDefaultGuiFont());
        comment.SetFont(AtlGetDefaultGuiFont());
@@ -84,9 +88,8 @@ LRESULT CCommentWriteWindow::OnCreate(LPCREATESTRUCT lpReateStruct){
        commentWriteButton.SetFont(AtlGetDefaultGuiFont());
        comment.SetWindowTextW(TEXT(""));
        
-       addCommentColorList(commentColorBox,(LPVOID*)GENERALUSER_COMMENT_COLORLIST,ARRAY_LENGTH(GENERALUSER_COMMENT_COLORLIST));
+       addItemList(commentColorBox,GENERALUSER_COMMENT_COLORLIST,ARRAY_LENGTH(GENERALUSER_COMMENT_COLORLIST));
        
-       commentColorBox.SetItemData(0,12);
        CFont font;
        font = AtlGetDefaultGuiFont();
        CPaintDC pdc(*this);
@@ -141,13 +144,68 @@ VOID CCommentWriteWindow::ChangeSize(SIZE &size){
        //\83T\83C\83Y\95Ï\8dX\8f\88\97\9d
        commentPosBox.MoveWindow(COMMENTWRITEWINDOW_SEPARATEFSIZE.left,COMMENTWRITEWINDOW_SEPARATEFSIZE.top, commentPosBoxSize.cx,commentWriteHeight  - (COMMENTWRITEWINDOW_SEPARATEFSIZE.top + COMMENTWRITEWINDOW_SEPARATEFSIZE.bottom),TRUE);
        commentSizeBox.MoveWindow((COMMENTWRITEWINDOW_SEPARATEFSIZE.left * 2) + COMMENTWRITEWINDOW_SEPARATEFSIZE.right + commentPosBoxSize.cx, COMMENTWRITEWINDOW_SEPARATEFSIZE.top, commentSizeBoxSize.cx,commentWriteHeight - (COMMENTWRITEWINDOW_SEPARATEFSIZE.top + COMMENTWRITEWINDOW_SEPARATEFSIZE.bottom),TRUE);
-       commentColorBox.MoveWindow((COMMENTWRITEWINDOW_SEPARATEFSIZE.left * 3) + (COMMENTWRITEWINDOW_SEPARATEFSIZE.right * 2) + commentPosBoxSize.cx + commentSizeBoxSize.cx,COMMENTWRITEWINDOW_SEPARATEFSIZE.top,commentColorBoxSize.cx,commentWriteHeight - (COMMENTWRITEWINDOW_SEPARATEFSIZE.top + COMMENTWRITEWINDOW_SEPARATEFSIZE.bottom),TRUE);
+       commentColorBox.MoveWindow((COMMENTWRITEWINDOW_SEPARATEFSIZE.left * 3) + (COMMENTWRITEWINDOW_SEPARATEFSIZE.right * 2) + commentPosBoxSize.cx + commentSizeBoxSize.cx,COMMENTWRITEWINDOW_SEPARATEFSIZE.top,commentColorBoxSize.cx, commentWriteHeight - (COMMENTWRITEWINDOW_SEPARATEFSIZE.top + COMMENTWRITEWINDOW_SEPARATEFSIZE.bottom),TRUE);
        anonymousButton.MoveWindow((COMMENTWRITEWINDOW_SEPARATEFSIZE.left * 4) + (COMMENTWRITEWINDOW_SEPARATEFSIZE.right * 3) + commentPosBoxSize.cx + commentSizeBoxSize.cx + commentColorBoxSize.cx ,COMMENTWRITEWINDOW_SEPARATEFSIZE.top,commentAnonymousButtonSize.cx,commentWriteHeight - (COMMENTWRITEWINDOW_SEPARATEFSIZE.top + COMMENTWRITEWINDOW_SEPARATEFSIZE.bottom),TRUE);
        comment.MoveWindow((COMMENTWRITEWINDOW_SEPARATEFSIZE.left * 5) + (COMMENTWRITEWINDOW_SEPARATEFSIZE.right * 4) + commentPosBoxSize.cx + commentSizeBoxSize.cx + commentColorBoxSize.cx + commentAnonymousButtonSize.cx,COMMENTWRITEWINDOW_SEPARATEFSIZE.top,size.cx - (COMMENTWRITEWINDOW_SEPARATEFSIZE.left + (COMMENTWRITEWINDOW_SEPARATEFSIZE.right * 2) + commentWriteButtonSize.cx + ((COMMENTWRITEWINDOW_SEPARATEFSIZE.left * 5) + (COMMENTWRITEWINDOW_SEPARATEFSIZE.right * 4) + commentPosBoxSize.cx + commentSizeBoxSize.cx + commentColorBoxSize.cx + commentAnonymousButtonSize.cx)),commentWriteHeight - (COMMENTWRITEWINDOW_SEPARATEFSIZE.top + COMMENTWRITEWINDOW_SEPARATEFSIZE.bottom),TRUE);
        commentWriteButton.MoveWindow(size.cx - (commentWriteButtonSize.cx),COMMENTWRITEWINDOW_SEPARATEFSIZE.top,commentWriteButtonSize.cx - COMMENTWRITEWINDOW_SEPARATEFSIZE.right,commentWriteHeight - (COMMENTWRITEWINDOW_SEPARATEFSIZE.top + COMMENTWRITEWINDOW_SEPARATEFSIZE.bottom),TRUE);        
        return;
 }
 
+VOID CCommentWriteWindow::OnDrawItem(UINT wParam,LPDRAWITEMSTRUCT lParam){
+       
+       if(lParam->hwndItem == commentColorBox.m_hWnd && commentColorBox.GetCount() > 0){
+               
+               UINT_PTR itemNo = 0;
+               if(lParam->itemID == ((UINT)-1)){
+                       INT_PTR curselNo = commentColorBox.GetCurSel();
+
+                       itemNo = curselNo == -1 ? 0 : curselNo;
+
+               } else {
+                       itemNo = lParam->itemID;
+
+               }
+               CDCHandle dcHandle = lParam->hDC;
+               
+               ComentColor *commentColor = (ComentColor *)commentColorBox.GetItemDataPtr(itemNo);
+
+               
+               
+               CBrush brush;
+               CPen cpen;
+
+               brush.CreateSolidBrush(commentColor->color);
+               
+               dcHandle.SelectBrush(brush);
+               dcHandle.SelectPen((HPEN)::GetStockObject(BLACK_PEN));
+               dcHandle.Rectangle(lParam->rcItem.left,lParam->rcItem.top,lParam->rcItem.right,lParam->rcItem.bottom);
+               
+       }
+
+       return;
+}
+
+VOID CCommentWriteWindow::OnMeasureItem(UINT wParam,LPMEASUREITEMSTRUCT lParam){
+
+       switch(lParam->CtlID){
 
+       case COMMENTCOLOR_BOX:
+               {
+                       SIZE itemSize;
+                       CPaintDC pdc(*this);
+                       pdc.SelectFont(AtlGetDefaultGuiFont());
+                       LPCTSTR sample = TEXT(" ");
+                       ::GetTextExtentPoint32(pdc,sample,_tcslen(sample),&itemSize);
+                       lParam->itemHeight = itemSize.cy;
+
+               }
+               break;
+
+       }
+
+       
+
+       return;
+}
 
 }
\ No newline at end of file
index 0bfef79..e113abf 100644 (file)
@@ -13,7 +13,7 @@ namespace nlite{
        ///
        ///\88ê\94Ê\89ï\88õ\83R\83\81\83\93\83g\90F\83\8a\83X\83g
        ///
-       extern const ComentColor GENERALUSER_COMMENT_COLORLIST[];
+       extern const  ComentColor GENERALUSER_COMMENT_COLORLIST[];
 
        ///
        ///\83v\83\8c\83~\83A\83\80\89ï\88õ\83R\83\81\83\93\83g\90F\83\8a\83X\83g
@@ -57,6 +57,8 @@ namespace nlite{
                        MSG_WM_SIZING(OnSizing)
                        MSG_WM_PAINT(OnPaint)
                        MSG_WM_SIZE(OnSize)
+                       MSG_WM_DRAWITEM(OnDrawItem)
+                       MSG_WM_MEASUREITEM(OnMeasureItem)
                END_MSG_MAP()
 
 
@@ -79,6 +81,10 @@ namespace nlite{
 
                VOID ChangeSize(SIZE &size);
 
+               VOID OnDrawItem(UINT wParam,LPDRAWITEMSTRUCT lParam);
+
+               VOID OnMeasureItem(UINT wParam,LPMEASUREITEMSTRUCT lParam);
+
        };
 
 }
\ No newline at end of file
index 2d17482..b20be69 100644 (file)
@@ -550,8 +550,8 @@ VOID CCommentListWindow::OnPaint(HDC in_hdc){
 
        RECT clientRect;
        
-       this->GetClientRect(&clientRect);
-       
+       self.GetClientRect(&clientRect);
+       clientRect.bottom -= commentViewConstant::HEADER_HAIGHT;
 
        this->GetWindowRect(&windowRect);
        windowRect.right -= windowRect.left;
@@ -632,6 +632,8 @@ VOID CCommentListWindow::OnSize(UINT wParam, _WTYPES_NS::CSize &windowSize){
        if(scrollFlag == TRUE){
                self.SendMessageW(WM_VSCROLL,MAKELONG(SB_BOTTOM,0),0);
        }
+
+       this->Invalidate();
        
        return;
 }