1
0
Эх сурвалжийг харах

move controls around based on a group or not so the move to group options don't show if it's not a group

git-svn-id: svn://svn.code.sf.net/p/ditto-cp/code/trunk@786 595ec19a-5cb4-439b-94a8-42fb3063c22c
sabrogden 10 жил өмнө
parent
commit
e1d5c6299c
2 өөрчлөгдсөн 37 нэмэгдсэн , 4 устгасан
  1. 4 4
      CP_Main.rc
  2. 33 0
      CopyProperties.cpp

+ 4 - 4
CP_Main.rc

@@ -642,7 +642,7 @@ BEGIN
     LTEXT           "Main Types",IDC_STATIC_1,7,7,80,8
 END
 
-IDD_COPY_PROPERTIES DIALOGEX 0, 0, 277, 291
+IDD_COPY_PROPERTIES DIALOGEX 0, 0, 277, 282
 STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
 CAPTION "Copy Properties"
 FONT 8, "MS Shell Dlg", 400, 0, 0x1
@@ -653,8 +653,8 @@ BEGIN
     COMBOBOX        IDC_COMBO1,73,91,197,128,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     LISTBOX         IDC_COPY_DATA,7,205,263,43,LBS_SORT | LBS_NOINTEGRALHEIGHT | LBS_EXTENDEDSEL | WS_VSCROLL | WS_TABSTOP
     PUSHBUTTON      "Delete",IDC_DELETE_COPY_DATA,6,248,42,12
-    DEFPUSHBUTTON   "OK",IDOK,163,270,50,14
-    PUSHBUTTON      "Cancel",IDCANCEL,220,270,50,14
+    DEFPUSHBUTTON   "OK",IDOK,163,261,50,14
+    PUSHBUTTON      "Cancel",IDCANCEL,220,261,50,14
     LTEXT           "Item Title",IDC_STATIC_TITLE,7,108,168,8
     LTEXT           "Date Added",IDC_STATIC_DATE,8,38,43,13,SS_CENTERIMAGE
     LTEXT           "Hot Key",IDC_STATIC_HOT_KEY,7,7,35,13,SS_CENTERIMAGE
@@ -962,7 +962,7 @@ BEGIN
         LEFTMARGIN, 7
         RIGHTMARGIN, 270
         TOPMARGIN, 7
-        BOTTOMMARGIN, 284
+        BOTTOMMARGIN, 275
     END
 
     IDD_ABOUT, DIALOG

+ 33 - 0
CopyProperties.cpp

@@ -193,6 +193,39 @@ void CCopyProperties::LoadDataFromCClip(CClip &Clip)
 		::ShowWindow(::GetDlgItem(m_hWnd, IDC_HOTKEY_MOVE_TO_GROUP), SW_HIDE);
 		::ShowWindow(::GetDlgItem(m_hWnd, IDC_CHECK_WIN_MOVE_TO_GROUP), SW_HIDE);
 		::ShowWindow(::GetDlgItem(m_hWnd, IDC_HOT_KEY_GLOBAL_MOVE_TO_GROUP), SW_HIDE);
+
+		CRect anchorRect;
+		::GetWindowRect(::GetDlgItem(m_hWnd, IDC_STATIC_HOT_KEY_MOVE_TO_GROUP), &anchorRect);
+		ScreenToClient(&anchorRect);
+		
+
+		HWND hwnd = ::GetTopWindow(this->GetSafeHwnd());
+		// while we have a valid hwnd, 
+		// loop through all child windows
+		while (hwnd)
+		{
+			CRect rect;
+			::GetWindowRect(hwnd, &rect);
+			ScreenToClient(&rect);
+
+			if(rect.top > anchorRect.bottom)
+			{
+				::MoveWindow(hwnd, rect.left, 
+					rect.top - (anchorRect.Height()+4), rect.Width(), 
+					rect.Height(), TRUE);
+			}
+
+			// do something with the hwnd
+			// and get the next child control's hwnd
+			hwnd = ::GetNextWindow(hwnd, GW_HWNDNEXT);
+		}
+
+		CRect rect2;
+		::GetWindowRect(m_hWnd, &rect2);
+
+		::MoveWindow(m_hWnd, rect2.left, 
+				rect2.top, rect2.Width(), 
+				rect2.Height() - (anchorRect.Height()+4), TRUE);
 	}
 }