#pragma once #include #include #include "../model/audiodevice.h" class PulseModel; class KTabWidget; class TQHBoxLayout; class TQWidgetStack; class TQToolButton; class DevicesPage; class TQResizeEvent; class MixerWindow : public TDEMainWindow { TQ_OBJECT public: explicit MixerWindow( PulseModel *model, TQWidget *parent = 0 ); ~MixerWindow() {} struct Tab { TQWidget *scroll; TQWidget *page; TQHBoxLayout *layout; int count; }; protected: bool queryClose(); bool eventFilter( TQObject *obj, TQEvent *e ); void showEvent( TQShowEvent *e ); private slots: void onDeviceAdded( AudioDevice *dev ); void onDeviceRemoved( AudioDevice *dev ); void onDefaultOutputChanged( AudioDevice *dev ); void showAbout(); void showPreferences(); void applySettings(); void quit(); void onAppAboutToQuit(); void toggleDevices(); private: Tab &tabForCategory( AudioDevice::Category cat ); void rebuildView(); void updateDevicesButton(); void repositionDevicesBtn(); PulseModel *m_model; KTabWidget *m_tabs; class PreferencesDlg *m_prefsDlg; TQWidgetStack *m_outerStack; TQWidgetStack *m_stack; TQWidget *m_allPage; TQWidget *m_allStrip; TQHBoxLayout *m_allLayout; int m_allCount; class TmixTray *m_tray; TQToolButton *m_devicesBtn; DevicesPage *m_devicesPage; bool m_devicesInTabs; // true = DevicesPage is a tab in m_tabs bool m_quitting; Tab m_output; Tab m_input; Tab m_playback; Tab m_recording; TQMap m_widgets; };