From 338a8b929259a16a127e7a57316e87f0d396dcd0 Mon Sep 17 00:00:00 2001
From: vcaesar <vzvway@gmail.com>
Date: Thu, 23 Aug 2018 12:03:55 -0400
Subject: [PATCH] refactoring close_window() allow by pid, window.h [ci skip]

---
 window/window.h | 22 ++++++++++++++++++----
 1 file changed, 18 insertions(+), 4 deletions(-)

diff --git a/window/window.h b/window/window.h
index 12951c6..f7c1b77 100644
--- a/window/window.h
+++ b/window/window.h
@@ -20,6 +20,7 @@ bool IsAxEnabled(bool options);
 MData GetActive(void);
 void initWindow();
 char* get_title_by_hand(MData m_data);
+void close_window_by_Id(MData m_data);
 
 //int findwindow()
 
@@ -538,15 +539,28 @@ void SetTopMost(bool state){
 #endif
 }
 
+void close_main_window (){
+   // Check if the window is valid
+	if (!IsValid()) { return; }
+
+	close_window_by_Id(mData);
+}
+
+void close_window_by_PId(uintptr pid, uintptr isHwnd){
+	MData win = set_hand_pid(pid, isHwnd);
+	close_window_by_Id(win);
+}
+
+
 // CloseWindow
-void CloseWin(void){
+void close_window_by_Id(MData m_data){
 	// Check window validity
 	if (!IsValid()) {return;}
 #if defined(IS_MACOSX)
 	AXUIElementRef b = NULL;
 
 	// Retrieve the close button of this window
-	if (AXUIElementCopyAttributeValue(mData.AxID,
+	if (AXUIElementCopyAttributeValue(m_data.AxID,
 		kAXCloseButtonAttribute, (CFTypeRef*) &b)
 		== kAXErrorSuccess && b != NULL) {
 		// Simulate button press on the close button
@@ -562,11 +576,11 @@ void CloseWin(void){
 	XDismissErrors();
 
 	// Close the window
-	XDestroyWindow(rDisplay, mData.XWin);
+	XDestroyWindow(rDisplay, m_data.XWin);
 
 #elif defined(IS_WINDOWS)
 
-	PostMessage(mData.HWnd, WM_CLOSE, 0, 0);
+	PostMessage(m_data.HWnd, WM_CLOSE, 0, 0);
 #endif
 }