private void UpdateWindowFromProfile(XPathNavigator navWindow) { string hierID = navWindow.SelectSingleNode("@HierID").Value; string[] numbers = hierID.Split(new char[] { '.' }, StringSplitOptions.RemoveEmptyEntries); int[] ordinals = new int[numbers.Length]; for (int i = 0, iMax = ordinals.Length; i < iMax; i++) { ordinals[i] = int.Parse(numbers[i]) - 1; } TreeNodeCollection treeNodes = TV_WINDOW_TREE.Nodes; TreeNode tNode = null; int nTopOrdinal = ordinals.Length - 1; for (int i = 0, iMax = ordinals.Length; i < iMax; i++) { if (ordinals[i] >= treeNodes.Count) { throw new Exception("A window with hierarchical ID '" + hierID + "' not found"); } tNode = treeNodes[ordinals[i]]; if (i < nTopOrdinal) { treeNodes = tNode.Nodes; } } if (tNode != null) { tNode.Checked = true; Window win = (Window)tNode.Tag; win.Refresh(); win.PosX = SRWE_Utility.SAFE_String_2_Int(navWindow.SelectSingleNode("@PosX").Value, win.PosX); win.PosY = SRWE_Utility.SAFE_String_2_Int(navWindow.SelectSingleNode("@PosY").Value, win.PosY); win.Width = SRWE_Utility.SAFE_String_2_Int(navWindow.SelectSingleNode("@Width").Value, win.Width); win.Height = SRWE_Utility.SAFE_String_2_Int(navWindow.SelectSingleNode("@Height").Value, win.Height); win.Style = (uint)SRWE_Utility.SAFE_HexString_2_Int(navWindow.SelectSingleNode("@Style").Value, (int)win.Style); win.ExStyle = (uint)SRWE_Utility.SAFE_HexString_2_Int(navWindow.SelectSingleNode("@ExStyle").Value, (int)win.ExStyle); win.ApplyChanges(); } }
private void UpdateWindowStyles(bool exStyles) { if (exStyles) { m_states = (m_states | States.UpdateWindowExStyle) ^ States.UpdateWindowExStyle; } else { m_states = (m_states | States.UpdateWindowStyle) ^ States.UpdateWindowStyle; } if (TV_WINDOW_TREE.SelectedNode == null) { return; } Window win = (Window)TV_WINDOW_TREE.SelectedNode.Tag; if (exStyles) { win.ExStyle = (uint)SRWE_Utility.SAFE_HexString_2_Int(EDT_WSEX_HEX.Text, (int)win.ExStyle); foreach (DataRow dr in m_dtWS_EX.Rows) { dr[1] = (win.ExStyle & (uint)dr[0]) != 0; } } else { win.Style = (uint)SRWE_Utility.SAFE_HexString_2_Int(EDT_WS_HEX.Text, (int)win.Style); foreach (DataRow dr in m_dtWS.Rows) { dr[1] = (win.Style & (uint)dr[0]) != 0; } } win.ApplyChanges(); }