From c2c1e4c72582ca478af6357bf8ba0febe563418b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20A=C3=9Fmus?= Date: Mon, 6 Nov 2006 00:24:07 +0000 Subject: [PATCH] * added scroll view around canvas in Haiku version * used new layout features in StyleView for Haiku version git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19212 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/apps/icon-o-matic/MainWindow.cpp | 14 ++++++- src/apps/icon-o-matic/gui/StyleView.cpp | 51 ++++++++++++++++++++++--- 2 files changed, 57 insertions(+), 8 deletions(-) diff --git a/src/apps/icon-o-matic/MainWindow.cpp b/src/apps/icon-o-matic/MainWindow.cpp index 954380b76e..aa3218c614 100644 --- a/src/apps/icon-o-matic/MainWindow.cpp +++ b/src/apps/icon-o-matic/MainWindow.cpp @@ -624,8 +624,18 @@ MainWindow::_CreateGUI(BRect bounds) layout->AddView(topSideView, 1, 0); // canvas view - fCanvasView = new CanvasView(BRect(0, 0, 200, 200)); - layout->AddView(fCanvasView, 1, 1); + BRect canvasBounds = BRect(0, 0, 200, 200); + fCanvasView = new CanvasView(canvasBounds); + + // scroll view around canvas view + canvasBounds.bottom += B_H_SCROLL_BAR_HEIGHT; + canvasBounds.right += B_V_SCROLL_BAR_WIDTH; + ScrollView* canvasScrollView + = new ScrollView(fCanvasView, SCROLL_VERTICAL | SCROLL_HORIZONTAL + | SCROLL_NO_FRAME | SCROLL_VISIBLE_RECT_IS_CHILD_BOUNDS, + canvasBounds, "canvas scroll view", + B_FOLLOW_NONE, B_WILL_DRAW | B_FRAME_EVENTS); + layout->AddView(canvasScrollView, 1, 1); // views along the top diff --git a/src/apps/icon-o-matic/gui/StyleView.cpp b/src/apps/icon-o-matic/gui/StyleView.cpp index 63cc2f64f2..e875cef168 100644 --- a/src/apps/icon-o-matic/gui/StyleView.cpp +++ b/src/apps/icon-o-matic/gui/StyleView.cpp @@ -8,6 +8,11 @@ #include "StyleView.h" +#if __HAIKU__ +# include "GridLayout.h" +# include "GroupLayout.h" +# include "SpaceLayoutItem.h" +#endif #include #include #include @@ -40,7 +45,11 @@ enum { // constructor StyleView::StyleView(BRect frame) +#ifdef __HAIKU__ + : BView("style view", 0), +#else : BView(frame, "style view", B_FOLLOW_LEFT | B_FOLLOW_TOP, 0), +#endif fCommandStack(NULL), fCurrentColor(NULL), fStyle(NULL), @@ -49,10 +58,6 @@ StyleView::StyleView(BRect frame) { SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); - frame.OffsetTo(B_ORIGIN); - frame.InsetBy(5, 5); - frame.bottom = frame.top + 15; - // style type BMenu* menu = new BPopUpMenu(""); BMessage* message = new BMessage(MSG_SET_STYLE_TYPE); @@ -61,6 +66,18 @@ StyleView::StyleView(BRect frame) message = new BMessage(MSG_SET_STYLE_TYPE); message->AddInt32("type", STYLE_TYPE_GRADIENT); menu->AddItem(new BMenuItem("Gradient", message)); + +#ifdef __HAIKU__ + BGridLayout* layout = new BGridLayout(5, 5); + SetLayout(layout); + + fStyleType = new BMenuField( "Style Type", menu, NULL); + +#else + frame.OffsetTo(B_ORIGIN); + frame.InsetBy(5, 5); + frame.bottom = frame.top + 15; + fStyleType = new BMenuField(frame, "style type", "Style Type", menu, true); AddChild(fStyleType); @@ -70,7 +87,7 @@ StyleView::StyleView(BRect frame) fStyleType->MenuBar()->GetPreferredSize(&width, &height); fStyleType->MenuBar()->ResizeTo(width, height); fStyleType->ResizeTo(frame.Width(), height + 6); - +#endif // __HAIKU__ // gradient type menu = new BPopUpMenu(""); @@ -87,6 +104,27 @@ StyleView::StyleView(BRect frame) message->AddInt32("type", GRADIENT_CONIC); menu->AddItem(new BMenuItem("Conic", message)); +#if __HAIKU__ + fGradientType = new BMenuField("Gradient Type", menu, NULL); + + fGradientControl = new GradientControl(new BMessage(MSG_SET_COLOR), + this); + + layout->AddItem(BSpaceLayoutItem::CreateVerticalStrut(3), 0, 0, 4); + layout->AddItem(BSpaceLayoutItem::CreateHorizontalStrut(3), 0, 1, 1, 3); + + layout->AddItem(fStyleType->CreateLabelLayoutItem(), 1, 1); + layout->AddItem(fStyleType->CreateMenuBarLayoutItem(), 2, 1); + + layout->AddItem(fGradientType->CreateLabelLayoutItem(), 1, 2); + layout->AddItem(fGradientType->CreateMenuBarLayoutItem(), 2, 2); + + layout->AddView(fGradientControl, 1, 3, 2); + + layout->AddItem(BSpaceLayoutItem::CreateHorizontalStrut(3), 3, 1, 1, 3); + layout->AddItem(BSpaceLayoutItem::CreateVerticalStrut(3), 0, 4, 4); + +#else // __HAIKU__ frame.OffsetBy(0, fStyleType->Frame().Height() + 6); fGradientType = new BMenuField(frame, "gradient type", "Gradient Type", menu, true); @@ -110,8 +148,9 @@ StyleView::StyleView(BRect frame) fGradientControl->MoveTo(frame.left, frame.top); AddChild(fGradientControl); - fGradientControl->SetEnabled(false); +#endif // __HAIKU__ + fGradientControl->SetEnabled(false); fGradientControl->Gradient()->AddObserver(this); }