#pragma once #include #include class PulseModel; class AudioDevice; class DeviceWidget; class TQVBoxLayout; class TQPushButton; class TmixPopup : public TQWidget { TQ_OBJECT public: explicit TmixPopup( PulseModel *model, TQWidget *parent = 0 ); // Position relative to tray icon and show, or hide if already visible. void toggleAt( const TQPoint &trayGlobalPos, const TQSize &traySize ); // True for ~300ms after hiding — prevents re-show on the same click. bool justHidden() const; signals: void showMixerRequested(); protected: void hideEvent( TQHideEvent *e ); void wheelEvent( TQWheelEvent *e ); private slots: void onDefaultOutputChanged( AudioDevice *dev ); private: void setDevice( AudioDevice *dev ); PulseModel *m_model; DeviceWidget *m_devWidget; TQVBoxLayout *m_layout; TQTime m_hideTime; };