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);
}
Exemple #2
0
static AXUIElementRef getFrontMostApp ()
{
    pid_t pid;
    ProcessSerialNumber psn;

    GetFrontProcess(&psn);
    GetProcessPID(&psn, &pid);
    return AXUIElementCreateApplication(pid);
}
Exemple #3
0
/* 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;
}
Exemple #4
0
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;
}
Exemple #5
0
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;
}
Exemple #6
0
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);
}