diff --git a/src/add-ons/tracker/zipomatic/ZipOMaticActivity.cpp b/src/add-ons/tracker/zipomatic/ZipOMaticActivity.cpp index da84f7c9cd..d32ea26918 100644 --- a/src/add-ons/tracker/zipomatic/ZipOMaticActivity.cpp +++ b/src/add-ons/tracker/zipomatic/ZipOMaticActivity.cpp @@ -4,10 +4,12 @@ #include "ZipOMaticActivity.h" Activity::Activity (BRect a_rect, const char * a_name, uint32 a_resizing_mode, uint32 a_flags) -: BBox (a_rect, a_name, a_resizing_mode, a_flags), +: BView (a_rect, a_name, a_resizing_mode, a_flags), m_is_running (false), m_barberpole_bitmap (NULL) { + SetViewColor(B_TRANSPARENT_COLOR); + m_pattern.data[0] = 0x0f; m_pattern.data[1] = 0x1e; m_pattern.data[2] = 0x3c; @@ -33,7 +35,6 @@ Activity::Start() m_is_running = true; Window()->SetPulseRate(100000); SetFlags(Flags() | B_PULSE_NEEDED); - SetViewColor(B_TRANSPARENT_COLOR); Invalidate(); } @@ -51,7 +52,6 @@ Activity::Stop() m_is_running = false; Window()->SetPulseRate(500000); SetFlags(Flags() & (~ B_PULSE_NEEDED)); - SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); Invalidate(); } @@ -73,34 +73,18 @@ Activity::Pulse() m_pattern.data[0] = tmp; - DrawIntoBitmap(); - Invalidate(); } void Activity::Draw(BRect a_rect) { - if (IsRunning()) - { - // draw BBox outline - BBox::Draw(a_rect); - SetDrawingMode(B_OP_COPY); - DrawBitmap(m_barberpole_bitmap); - } - else - { - BBox::Draw(a_rect); - - float string_width = StringWidth("Drop files to zip."); - float view_width = Bounds().Width(); - - MovePenTo ((view_width/2)-(string_width/2),12); - DrawString("Drop files to zip."); - } + DrawIntoBitmap(IsRunning()); + SetDrawingMode(B_OP_COPY); + DrawBitmap(m_barberpole_bitmap); } -void Activity::DrawIntoBitmap (void) +void Activity::DrawIntoBitmap (bool running) { if (m_barberpole_bitmap->Lock()) { @@ -111,8 +95,12 @@ void Activity::DrawIntoBitmap (void) rgb_color color; color.red = 0; color.green = 0; - color.blue = 200; + color.blue = 0; color.alpha = 255; + + if (running) + color.blue = 200; + m_barberpole_bitmap_view->SetHighColor(color); // draw the pole @@ -126,6 +114,7 @@ void Activity::DrawIntoBitmap (void) color.green = 150; color.blue = 150; m_barberpole_bitmap_view->SetHighColor(color); + m_barberpole_bitmap_view->SetDrawingMode(B_OP_OVER); BPoint point_a = m_barberpole_bitmap->Bounds().LeftTop(); BPoint point_b = m_barberpole_bitmap->Bounds().LeftBottom(); point_b.y -= 1; @@ -136,8 +125,6 @@ void Activity::DrawIntoBitmap (void) m_barberpole_bitmap_view->StrokeLine(point_a, point_b); // top - m_barberpole_bitmap_view->SetDrawingMode(B_OP_OVER); - m_barberpole_bitmap_view->SetHighColor(color); point_a = m_barberpole_bitmap->Bounds().LeftTop(); point_b = m_barberpole_bitmap->Bounds().RightTop(); point_b.x -= 1; @@ -161,7 +148,6 @@ void Activity::DrawIntoBitmap (void) m_barberpole_bitmap_view->StrokeLine(point_a, point_b); // bottom - m_barberpole_bitmap_view->SetHighColor(color); point_a = m_barberpole_bitmap->Bounds().LeftBottom(); point_b = m_barberpole_bitmap->Bounds().RightBottom(); m_barberpole_bitmap_view->StrokeLine(point_a, point_b); @@ -194,10 +180,9 @@ void Activity::DrawIntoBitmap (void) LightenBitmapHighColor(& color); m_barberpole_bitmap_view->StrokeRect(a_rect); - m_barberpole_bitmap_view->Flush(); + m_barberpole_bitmap_view->Sync(); + m_barberpole_bitmap->Unlock(); } - - m_barberpole_bitmap->Unlock(); } void Activity::LightenBitmapHighColor (rgb_color * a_color) @@ -217,13 +202,6 @@ void Activity::CreateBitmap (void) m_barberpole_bitmap->AddChild(m_barberpole_bitmap_view); } -void Activity::FrameMoved (BPoint a_point) -{ - delete m_barberpole_bitmap; - CreateBitmap(); - Invalidate(); -} - void Activity::FrameResized (float a_width, float a_height) { delete m_barberpole_bitmap; diff --git a/src/add-ons/tracker/zipomatic/ZipOMaticActivity.h b/src/add-ons/tracker/zipomatic/ZipOMaticActivity.h index 9848105487..c345f1bd80 100644 --- a/src/add-ons/tracker/zipomatic/ZipOMaticActivity.h +++ b/src/add-ons/tracker/zipomatic/ZipOMaticActivity.h @@ -8,7 +8,7 @@ #include #include -class Activity : public BBox +class Activity : public BView { public: Activity (BRect a_rect, const char * a_name, uint32 a_resizing_mode, @@ -21,13 +21,12 @@ class Activity : public BBox bool IsRunning (); virtual void Pulse (); virtual void Draw (BRect a_draw); - virtual void FrameMoved (BPoint a_point); virtual void FrameResized (float a_width, float a_height); protected: void CreateBitmap (void); void LightenBitmapHighColor (rgb_color * a_color); - void DrawIntoBitmap (void); + void DrawIntoBitmap (bool running); bool m_is_running; pattern m_pattern; diff --git a/src/add-ons/tracker/zipomatic/ZipOMaticView.cpp b/src/add-ons/tracker/zipomatic/ZipOMaticView.cpp index 313e40399b..bdea48fa80 100644 --- a/src/add-ons/tracker/zipomatic/ZipOMaticView.cpp +++ b/src/add-ons/tracker/zipomatic/ZipOMaticView.cpp @@ -29,7 +29,7 @@ ZippoView::ZippoView (BRect a_rect) AddChild (m_archive_name_view); BRect ouput_rect (a_rect.left+14, a_rect.top+47, a_rect.right-15, a_rect.top+66); - m_zip_output_view = new BStringView (ouput_rect, "output_text", " ", B_FOLLOW_LEFT_RIGHT); + m_zip_output_view = new BStringView (ouput_rect, "output_text", "Drop files to zip.", B_FOLLOW_LEFT_RIGHT); AddChild (m_zip_output_view); } diff --git a/src/add-ons/tracker/zipomatic/ZipOMaticWindow.cpp b/src/add-ons/tracker/zipomatic/ZipOMaticWindow.cpp index adfa60ca8e..e129e8bb4d 100644 --- a/src/add-ons/tracker/zipomatic/ZipOMaticWindow.cpp +++ b/src/add-ons/tracker/zipomatic/ZipOMaticWindow.cpp @@ -104,6 +104,7 @@ ZippoWindow::MessageReceived (BMessage * a_message) { m_zipper_thread = NULL; zippoview->m_activity_view->Stop(); + zippoview->m_stop_button->SetEnabled(false); zippoview->m_archive_name_view->SetText(" "); if (m_zipping_was_stopped) zippoview->m_zip_output_view->SetText("Stopped"); @@ -119,6 +120,7 @@ ZippoWindow::MessageReceived (BMessage * a_message) m_zipper_thread = NULL; zippoview->m_activity_view->Stop(); + zippoview->m_stop_button->SetEnabled(false); zippoview->m_archive_name_view->SetText(""); zippoview->m_zip_output_view->SetText("Error creating archive"); //CloseWindowOrKeepOpen();