Metadata-Version: 2.1
Name: popui
Version: 0.0.2
Summary: A Python module for creating GUI popups with Dear PyGui and AutoHotkey on Windows
Home-page: https://github.com/KyleTheScientist/popui
Author: KyleTheScientist
Author-email: kylethescientist@gmail.com
Keywords: gui,popup,dearpygui,autohotkey
Classifier: Intended Audience :: Developers
Classifier: Operating System :: Microsoft :: Windows
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Description-Content-Type: text/markdown
Requires-Dist: ahk
Requires-Dist: dearpygui

# popui

A Python module for creating GUI popups with Dear PyGui and AutoHotkey on Windows

## Installation

```bash
pip install popui
```

## Usage

To create a popup, first define a function that builds the GUI:

```python
from popui import Popup

def build(popup: Popup):
    # The add_button method creates a button that will close the popup
    # after the callback function is called, by default.
    popup.add_button('Do something', callback=do_something)
    popup.add_button("Do something (Keep window open)",
                        callback=do_something,
                        close=False)

    # The add_keybind method is a convenience method that adds a keybind
    # to the popup window
    popup.add_keybind('tab', lambda: print('Tabbing'))

    # For more complex GUIs, you can use the `gui` attribute of the popup
    # to create a GUI with the same syntax as Dear PyGui.
    # (See more at https://dearpygui.readthedocs.io/en/latest/index.html)
    with popup as gui:
        gui.add_checkbox(label='Box', callback=do_something)
```

Then, create a `Popup` object with the function and any additional options that
you would typically pass to as arguments to a dearpygui viewport.

```python
popup = Popup('^space', # Control + Space will toggle the popup
              build,
              width=1000,
              height=300,
              decorated=False, # Removes the title bar and close/minimize buttons
              anchor=Popup.ON_MOUSE)

popup.block()
```

The `block` method will block the current thread indefinitely. Pressing the hotkey
will toggle the popup window.


## Application specific popups

You can create a popup that is specific to an application by using the `application`
parameter of the `Popup` class. This will ensure that the popup is only shown when
the specified application is in focus.

The application argument should be in autohotkey title format. For example, to create
a popup that is only shown when Notepad is in focus, you would use the following:


```python
popup = Popup('^space', # Control + Space will toggle the popup
              build,
              width=200,
              height=200,
              anchor=Popup.ON_APP,
              application='ahk_exe notepad.exe')
```

