static void EQResize (int pid) { ProcessSerialNumber psn; GetProcessForPID(pid, &psn); SetFrontProcessWithOptions(&psn, kSetFrontProcessFrontWindowOnly); AXValueRef temp; CGPoint windowPosition; AXUIElementRef frontMostApp; AXUIElementRef frontMostWindow; frontMostApp = AXUIElementCreateApplication(pid); AXUIElementSetAttributeValue(frontMostApp, kAXFrontmostAttribute, kCFBooleanTrue); // make application frontmost AXUIElementCopyAttributeValue(frontMostApp, kAXFocusedWindowAttribute, (CFTypeRef *)&frontMostWindow); AXUIElementSetAttributeValue(frontMostWindow, kAXMainAttribute, kCFBooleanTrue); // make window frontmost AXUIElementCopyAttributeValue(frontMostWindow, kAXPositionAttribute, (CFTypeRef *)&temp); AXValueGetValue(temp, kAXValueCGPointType, &windowPosition); CFRelease(temp); windowPosition.x = 0; windowPosition.y = -33; temp = AXValueCreate(kAXValueCGPointType, &windowPosition); AXUIElementSetAttributeValue(frontMostWindow, kAXPositionAttribute, temp); CFRelease(temp); CFRelease(frontMostWindow); CFRelease(frontMostApp); }
static AXUIElementRef getFrontMostApp () { pid_t pid; ProcessSerialNumber psn; GetFrontProcess(&psn); GetProcessPID(&psn, &pid); return AXUIElementCreateApplication(pid); }
/* NOTE(koekeishiya): For compatibility with current Kwm code * TODO: Remove. */ ax_observer AXLibConstructObserver(pid_t PID, ObserverCallback Callback) { ax_observer Observer = {}; AXObserverCreate(PID, Callback, &Observer.Ref); Observer.AppRef = AXUIElementCreateApplication(PID); return Observer; }
ax_application AXLibConstructApplication(pid_t PID, std::string Name) { ax_application Application = {}; Application.Ref = AXUIElementCreateApplication(PID); GetProcessForPID(PID, &Application.PSN); Application.Name = Name; Application.PID = PID; return Application; }
CFTypeRef getFrontMostWindowTitle(pid_t pid) { AXUIElementRef app; CFTypeRef windowTitle; CFTypeRef temp; app = AXUIElementCreateApplication(pid); // check for nulls AXUIElementCopyAttributeValue(app, kAXFocusedWindowAttribute, (CFTypeRef *)&temp ); AXUIElementCopyAttributeValue( temp, kAXTitleAttribute, (CFTypeRef *)&windowTitle ); return windowTitle; }
void CreateApplicationNotifications() { DestroyApplicationNotifications(); if(KWMFocus.Window) { KWMFocus.Application = AXUIElementCreateApplication(KWMFocus.Window->PID); if(!KWMFocus.Application) return; AXError Error = AXObserverCreate(KWMFocus.Window->PID, FocusedAXObserverCallback, &KWMFocus.Observer); if(Error == kAXErrorSuccess) { DEBUG("CREATE NOTIFICATIONS") AXObserverAddNotification(KWMFocus.Observer, KWMFocus.Application, kAXWindowMiniaturizedNotification, NULL); AXObserverAddNotification(KWMFocus.Observer, KWMFocus.Application, kAXWindowMovedNotification, NULL); AXObserverAddNotification(KWMFocus.Observer, KWMFocus.Application, kAXWindowResizedNotification, NULL); AXObserverAddNotification(KWMFocus.Observer, KWMFocus.Application, kAXTitleChangedNotification, NULL); CFRunLoopAddSource(CFRunLoopGetCurrent(), AXObserverGetRunLoopSource(KWMFocus.Observer), kCFRunLoopDefaultMode); } } }
/** Get the front most app - Parameter pid: front most pid (use swift to get this) - Returns: `AXUIElementRef` of front most app */ static AXUIElementRef getFrontMostApp(pid_t pid) { return AXUIElementCreateApplication(pid); }