16e645865SJonas Sundström #ifndef _ZIPOMATIC_WINDOW_H 26e645865SJonas Sundström #define _ZIPOMATIC_WINDOW_H 3926f5ddfSshatty 46e645865SJonas Sundström 5f99cf572SJonas Sundström #include <Button.h> 6*714236b8SJonas Sundström #include <List.h> 7*714236b8SJonas Sundström #include <Rect.h> 8f99cf572SJonas Sundström #include <StringView.h> 96e645865SJonas Sundström #include <Window.h> 10926f5ddfSshatty 11f99cf572SJonas Sundström #include "ZipOMaticActivity.h" 126e645865SJonas Sundström #include "ZipperThread.h" 136e645865SJonas Sundström 14926f5ddfSshatty 15*714236b8SJonas Sundström enum direction { 16*714236b8SJonas Sundström up, 17*714236b8SJonas Sundström down, 18*714236b8SJonas Sundström left, 19*714236b8SJonas Sundström right 20*714236b8SJonas Sundström }; 21*714236b8SJonas Sundström 22*714236b8SJonas Sundström 23926f5ddfSshatty class ZippoWindow : public BWindow 24926f5ddfSshatty { 25926f5ddfSshatty public: 26*714236b8SJonas Sundström ZippoWindow(BList windowList, 27*714236b8SJonas Sundström bool keepOpen = false); 286e645865SJonas Sundström ~ZippoWindow(); 296e645865SJonas Sundström 306e645865SJonas Sundström virtual void MessageReceived(BMessage* message); 316e645865SJonas Sundström virtual bool QuitRequested(); 32926f5ddfSshatty 336e645865SJonas Sundström bool IsZipping(); 342680698bSJonas Sundström void StopZipping(); 35926f5ddfSshatty 36926f5ddfSshatty private: 37926f5ddfSshatty 386e645865SJonas Sundström void _StartZipping(BMessage* message); 396e645865SJonas Sundström void _CloseWindowOrKeepOpen(); 40926f5ddfSshatty 41*714236b8SJonas Sundström void _FindBestPlacement(); 42*714236b8SJonas Sundström void _OffsetRect(BRect* rect, direction whereTo); 43*714236b8SJonas Sundström void _OffscreenBounceBack(BRect* rect, 44*714236b8SJonas Sundström direction* primaryDirection, 45*714236b8SJonas Sundström direction secondaryDirection); 46*714236b8SJonas Sundström BRect _NearestRect(BRect goalRect, BRect a, BRect b); 47*714236b8SJonas Sundström 48*714236b8SJonas Sundström BList fWindowList; 49*714236b8SJonas Sundström 50f99cf572SJonas Sundström Activity* fActivityView; 51f99cf572SJonas Sundström BStringView* fArchiveNameView; 52f99cf572SJonas Sundström BStringView* fZipOutputView; 53f99cf572SJonas Sundström BButton* fStopButton; 54f99cf572SJonas Sundström 556e645865SJonas Sundström ZipperThread* fThread; 56*714236b8SJonas Sundström BString fArchiveName; 57926f5ddfSshatty 58*714236b8SJonas Sundström bool fKeepOpen; 596e645865SJonas Sundström bool fZippingWasStopped; 604dc60882SJonas Sundström int32 fFileCount; 61926f5ddfSshatty 626e645865SJonas Sundström BInvoker* fWindowInvoker; 63926f5ddfSshatty }; 64926f5ddfSshatty 656e645865SJonas Sundström #endif // _ZIPOMATIC_WINDOW_H 666e645865SJonas Sundström 67